gem installしたgemのパスを知りたい

gemのインストール場所は、$ gem environment の出力結果の INSTALLATION DIRECTORY で分かる。

❯ gem environment  
RubyGems Environment:
  - RUBYGEMS VERSION: 3.2.3
  - RUBY VERSION: 3.0.0 (2020-12-25 patchlevel 0) [x86_64-darwin19]
  - INSTALLATION DIRECTORY: /Users/mi/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0
  - USER INSTALLATION DIRECTORY: /Users/mi/.gem/ruby/3.0.0
  - RUBY EXECUTABLE: /Users/mi/.rbenv/versions/3.0.0/bin/ruby
  - GIT EXECUTABLE: /usr/local/bin/git
  - EXECUTABLE DIRECTORY: /Users/mi/.rbenv/versions/3.0.0/bin
  - SPEC CACHE DIRECTORY: /Users/mi/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/mi/.rbenv/versions/3.0.0/etc
  - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-darwin-19
  - GEM PATHS:
     - /Users/mi/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0
     - /Users/mi/.gem/ruby/3.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/mi/.rbenv/versions/3.0.0/bin
     - /usr/local/Cellar/rbenv/1.1.2/libexec
     - /Users/mi/.rbenv/plugins/ruby-build/bin
     - /usr/local/Cellar/vim/8.2.1600/bin
     - /Users/mi/.rbenv/shims
     - /Users/mi/.rbenv/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin

$ gem environment gemdir でも分かる

/Users/mi/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0

URI#escape と URI#unescape は Ruby 3.0.0 から削除された

タイトルの通り、 URI.escapeURI.unescapeRuby 3.0.0 から削除されました。長い間非推奨となっていましたが、ついに 3.0.0 で削除されました。

代わりに ERB::Util.#url_encode , CGI.escape , URI.encode_www_form , WEBrick::HTTPUtils.#escape_form , WEBrick::HTTPUtils.#escape などの使用を検討してください。

削除のPRはこちら。

github.com

URI.encode_www_form はこちら。

docs.ruby-lang.org

はじめての自作キーボードを作る(2)遊舎工房でmeishi2ビルド編

はじめに

この記事は2020年ふりかえりアドベントカレンダー 15日目です。書いているのは12月18日です。昨日の記事は はじめての自作キーボードを作る(1)情報収集編 - いまブログです。

あらすじ

自作キーボードのさわり心地を確かめることと、meishi2キットを作るために遊舎工房に向かいました。

遊舎工房

秋葉原にある自作キーボード専門店です。

yushakobo.jp

自作キーボードグッズがものすごくたくさんあります!!魅力的なキーボードやグッズが多くて店内じっくり見てると時間がすごい勢いで飛んでいきます。

店内の様子はこの動画がとても参考になります。

www.youtube.com

meishi2 キットを作る

meishi2 キットを購入するときに、キースイッチとキーキャップを自由に選ぶことが出来ます。

店舗にはキーテスターがあり、様々なキースイッチで好きなだけ試し打ちができます。 また、展示されている自作キーボードキットで打ち心地を試すことも出来ます。

キースイッチについてはこちらの記事がとても参考になりました。

メカニカルキースイッチの好みの話 - 自作キーボード温泉街の歩き方

色々押してみて、これらのスイッチでmeishi2を組んでみることにしました。

  • Gateron milky black
    • 展示されていた Corne Cherry で使われていてしっくりきたので試してみました。
  • Kalih box brown
    • 茶軸を試してみたかったので。
  • Gateron silent red
    • 赤軸・静音も1つ試してみたかったので。
  • Kalih speed silver
    • 最大限軽くするとどうなるのか試してみたかったので。

というかんじで選びました。

キーキャップはバラ売りしているものを買いました。

実際に作ってみる

meishi2 キーボードを購入し、店員さんに工作机を使いたいことを伝えます。2020年現在は2時間で500円で、はんだなどの消耗品も利用できます。

自作キーボードは作者の方がビルドガイドを作ってくれているため、そちらを見ながら作業します。

meishi2 キットは初心者にも分かりやすいよう丁寧に解説してくれているので大体これを見ながら作業できます。

biacco42.hatenablog.com

はんだ付けはなんとかできましたが、ProMicroへの書き込みがうまくいかずハマりました。

原因は2つあり、1つはProMicroが奥までしっかり刺さっていなかったこと、もう1つは書き込みがなぜかうまくいかなかったことでした。リセットボタン何回押してもハンダ温め直してもうまくいかず悩んでいましたが、店員さんにRSTとGNDをピンセットでショートしてもらって書き込みができるようになりました。

QMKファームウェアの書き込みができない – 遊舎工房サポートサイト

完成

f:id:imaizumimr:20201219040326j:plain

出来ました!2時間以内に終わって良かったです。

できあがるとしみじみと眺めてしまいます。これを作ったんだなぁ…と。あと押すのが楽しくて連打してしまいますね。

このあと作った勢いで Corne Cherry と 遊舎工房のはんだ付けセットと、Gateron milky blackと、適当なキーキャップを購入して作成意欲を高めていきました。

つづく

はじめての自作キーボードを作る(1)情報収集編

はじめに

この記事は2020年ふりかえりアドベントカレンダー 14日目です。書いているのは12月18日です。昨日の記事は 2020年買って良かったもの - いまブログ です。

きっかけ

内定したので就職が決まるまでに何をやりたいかな、と思ったときに自作キーボードを作りたいな!!と思い情報収集をはじめることにしました。

最初に読んだもの

(ダウンロード版)自作キーボードカタログ 2020 - 自キ温泉街販売所 - BOOTH

めちゃくちゃ参考になりました。これを見て40%キーボードがどんなものかわかるようになりました。こういうカタログは見ているだけでも楽しいです。

あと付録としてキーボード原寸大シートが付属しているため、大きさのイメージをつけやすくて良かったです。

Corne Cherry こんなに小さいのかー!と思いました。

念願の分割キーボード ErgoDash mini をつくった - kasumi∞blog

フィヨルドブートキャンプの先輩のブログ。フィヨルドブートキャンプのミートアップ(オンライン)で自作キーボードいいですよ!入門してから1ヶ月くらいで作れました!と仰っていたのもあって作りたくなりました。

これから自作キーボードを始め、遊舎工房に行くあなたへ - takkanm’s blog

遊舎工房に行く前に読みました。悩んだら店員さんに聞こうと勇気が出ました。

komagataのブログ

フィヨルドブートキャンプのメンターのkomagataさんも自作キーボードを作っているので参考にしました。

あたりをつける

自作キーボードカタログ、遊舎工房のサイトを眺めて自分の欲しいキーボードを考えました。

割れている物を使いたかったので、

  • Lily58 pro
  • claw44
  • corne cherry

を候補にしました。HHKBからの乗り換えなので40%に慣れられるか不安で60%がいいかなぁとか考えていました。

はんだづけへの不安

はんだ付けは中学生以来やったことがなく不安だったので、まずは遊舎工房でmeishi2 キットを組んでみて考えることにしました。

meishi2 キットは4キーのキーボードなので初心者にぴったりです。meishi2 キット | 遊舎工房

遊舎工房には工作室があり、はんだ付けキットを借りたり、困ったときに店員さんに相談することができるので初心者にやさしいです。

その他

  • キースイッチは実店舗で押してから考えることにしました。
  • キーキャップもイメージが沸かなかったので店舗で考えることにしました。

つづく

おまけ

この文章はCorne Cherry で書いています。記号と矢印以外は慣れてきました。

2020年買って良かったもの

はじめに

この記事は2020年ふりかえりアドベントカレンダー 13日目です。昨日の記事は Rails Girls Gathering Japanに参加 - いまブログ です。

こんにちは。趣味は買い物の ima1zumi です。2020年もそろそろ終わりが近いので、買って良かったものリストでもつくってみようと思います。「これ悪くはないけどもうちょっと考えて買ったほうが良かったな」と思っているやつも紹介しようと思っていたのですが、思ったより記事が長くなってしまったのでそちらについては気が向いたら書きます。

軽く前提

2020年は働いておらず、ずっと家でプログラミングスクール(FJORD BOOT CAMP)の学習をしていました。ほとんどの時間を画面の前で過ごしています。

買ってよかったもの

購入して良かった!これがない生活には戻りたくない!と思っているものたちです。

1. トラベラーズノート レギュラーサイズ

www.tfa-onlineshop.com

手帳探しの果てにたどり着いた相棒(のはず)です。2020年10月頃から使用中。

私は万年筆ユーザーで文字を書くことが好きなので、紙の手帳はずっと使っています。スタンダードなタイプの手帳は大体試しました。その結果月間ブロックタイプ、週間レフトタイプ、週間バーチカルタイプ、1日1ページタイプで予定を管理することには合わないということが分かっています。また、月間ブロックで予定を管理すると Google カレンダーとの二重管理になり予定管理が崩壊するので、月間ブロックは予定管理用として使わないことにしました。

これまでの使用感として、週間ブロックタイプ、変形週間ブロックタイプ、1日2ページタイプ(フランクリンプランナー)はわりと良かったので、自分にとって書くスペースが広い方がいいということが分かっています。しかし1日に書くスペースが限られていると、時々めちゃくちゃ書きたくなったときに「続きはこちらのメモページへ…」となりページが飛び飛びになるのが不満でした。

メインの筆記具が万年筆で、かつ文字が大きめ(5mm方眼には収まらない)なので、手帳自体の大きさはバイブルサイズ以上必要だということも分かりました。また、トモエリバーやthin paperといった手帳向けの薄い紙は書き心地がそれほどよくないので、あまり好みではありませんでした。手帳本体の薄さは求めておらず、できれば MDノート や ニーモシネ や ノーブルノートの紙 といった厚めの紙を使いたいという気持ちもありました。

去年「手帳に予定管理機能を求めてないんだからMDノートでバレットジャーナルにすればよくね?」と思いMDノート(A5・無地)も使っていたのですが、なぜだかしっくりこなかったんですよね…おそらく無地で日付がないと自分にとっては逆に書きにくいと分かりました。しかも手で日付を書くのは嫌でした。日付を書きたくないくらいなので、バレットジャーナルも続きませんでした。

2020年10月頃に来年の手帳のことを考えていてネットの海を彷徨っていると、トラベラーズノートを見かけました。A5は大きすぎる、でもバイブルサイズ以上の大きさは欲しい、と思っていた自分にとってぴったりのサイズのように見えました。また、紙質もMDノートと同じ用紙ということで安心して使えることがわかりました。こういった細いタイプのノートを使ったことがないのでそこは少し不安でしたが、リフィルだけなら気軽にチャレンジできるのでとりあえずリフィル(日記タイプ)を買ってみることにしました。このリフィルはナンバリングしてあり1日1ページっぽく扱えるので、日付問題も解決できるだろうと思いとりあえず使い始めることにしました。

www.tfa-onlineshop.com

使ってみるとサイズがめちゃくちゃちょうど良かったんです!幅が狭く適度な地点で折り返せる、余白が目立たないのが書きやすいと分かりました。不満もなく使い続けられたので、カバーを買うことにしました。その際にメインのリフィルは日記タイプから方眼タイプにしました。方眼タイプの方が1ページに収まらない日も安心だからです。日付を手書きで書きたくないという問題は日付印を買うことで解決しました。

www.tfa-onlineshop.com

ちなみに、公式のトラベラーズノートのカバーは革です。革製品は好きなんですが、文具屋で見かける傷だらけのトラベラーズノートを見るとちょっとなぁ…と思って今まで手を出せずにいました。ですが東京駅限定モデルがかわいかったので、傷がつくデメリットを上回り購入する動機になりました。私が使っているトラベラーズノートも、傷は入っていますがデザインがかわいいのでヨシとしています。最近ちょっと乾燥が気になってきたので、ラナパーというレザートリートメントを塗りました。しっとりしてより可愛らしくなったと思います。

これが手帳探しの旅の果てになることを祈っています。

2. ディスプレイ

フリマアプリで DELL の 27 インチ 4K モニタを購入しました。3万円くらいでした。

特に問題なく使えています。画面が広いと何かと便利です。特に何かの資料を見ながら書物をするときには無いと困ります。画質にも満足しています。

最近もう1枚ディスプレイが欲しくなってきました。

3. トラックボール

私が購入したのはこちらですが、今は新しいモデルが出ているのでそちらでもよさそうです。

これを使う前は AppleMagic Mouse 2 を使っていました。mac ならではの便利モーションをたくさん発動できて便利だったのですが、いかんせんマウスの形状が薄いためよく手首が疲れてしまっていました。1日の終わりに手首を振って疲れを取ろうとする日が増えたため、手首に優しいというトラックボールを使い始めました。一瞬で慣れました。運命でした。トラックボールなしの生活には戻りたくありません。人差し指タイプとか別のタイプも気になっています。

個人的な難点は USB を1枠使うことです。 Magic Mouse は USB 枠を使わないのでよかったんですが…。使用している PC が macbook 12インチ なので USB type-C ポートが1枠しかなくてUSBは常に取り合いになっているのでつらいです。あと、縦横スクロールできるときに横スクロールする方法がわからなかったので2ボタンを横スクロールに当てました。

4. 薄い財布

superclassic.jp

電子マネー決済メインにしようと思って財布を薄くしました。自然とポイントカードが絞られ、いろいろスッキリしました。この財布以外にも薄い財布はいろいろあるので興味がある方は探してみればいいんじゃないかと思います。私は薄い財布のブッテーロレザーバージョンを使っているのですが、革の雰囲気も好みです。

難点はこの財布を使っているとときおりじっと見つめられることと、財布を開いたときにお札が丸見えになることです。小銭はあまり入らないので、極稀に小銭入れが閉まらなくなって困ることがありますが、意識的に小銭を消費していればそれほど困らなかったです。

5. ブラジェクのガラス爪やすり

私は自分の爪の形があまり好きではないんですが、twitter で「1年爪のメンテしてたらキレイな爪の形になったよ!」というツイートをみかけて私もそうなりたいと思って購入しました。すごく綺麗にやすりがけできます。一度使うと戻れなくなる。

乾いたまま使うと粉が散るので濡らして使ってます。

6. iwakiのダブルウォールグラス

寒い季節はコーヒーを淹れても一瞬でアイスコーヒーになってしまうのが嫌で購入しました。保温タンブラーはなんとなく好きじゃないのでダブルウォールにしてちょっとでもぬくもりをとどめておきたいと思い買いました。温かみを感じる温度で飲み切ることができ、満足しています。

ダブルウォールグラスは体積が大きくなりがちで持ちにくいので、取っ手があるととっても便利です。

これは食洗機対応ではありますが、ダブルウォールグラスは脆く食洗機にかけるのが怖いので手洗いしています。

7. グノーシア

グノーシア|オンラインコード版

グノーシア|オンラインコード版

  • 発売日: 2020/06/02
  • メディア: Software Download

やって良かったゲームです。本当に…。

実プレイ時間3日くらいで終わる軽めのゲームなので、年末年始にぜひ。

8. コスメデコルテのフェイスパウダー

10 misty beige を使っています。ちょいマットより。

これをはたくと自然に顔色がよくなり、自分の顔面の状態への満足度が高くなります。あと日焼け止め塗ったり汗かくような場所でのテカリ防止にもなります。

自然にトーンを上げてくれるので、ちゃんとメイクをするほどではないけどちょっと何かしたい日にぴったりです。手軽だし塗るたびに満足するのでお得な感じがします。他のフェイスパウダーに比べて高いのですが、粉がかなり多いのでそういう理由もあるのかなと思います。

www.cosmedecorte.com

9. キッチンペーパーホルダー

あるべきものがあるべき場所にあるのは幸福だということが分かりました。おおむね片手で切れます。

10. エビオス錠

飲んでいるとお腹の調子がいいので欠かせなくなりました。

おまけ

今年は自作キーボードキット Corne Cherry を買ったのですが、まだ組み立てていないので選考外にしています。楽しみです。

Rails Girls Gathering Japanに参加した感想

はじめに

この記事は2020年ふりかえりアドベントカレンダー 12日目です。昨日の記事は Rubyで文字コードを扱うコードを書くときに便利なメソッド集 - Qiita です。

Rails Girls Gathering Japan とは

Rails Girlsとはより多くの女性がプログラミングに親しみ、アイデアを形にできる技術を身につける手助けをするコミュニティです。 世界各国で開かれており、日本では Rails Girls Japan として各県で開催されています。

Rails Girls - Japanese

今回は Rails Girls Japanとして初めてのオンラインイベントとなる Rails Girls Gathering Japan が zoom で開催されました。「Rails Girls Effect」というテーマの LT 会でした。

Rails Girls Gathering Japan - railsgirls-japan | Doorkeeper

LTの感想

どれも素敵な発表でした! Rails Girls が素敵なコミュニティだということがよくわかりました。聞いているうちに「私もこれからやっていくぞ!」という元気をいただいて、参加してよかったなぁと思いました。 運営の皆様、登壇者の皆様、素敵な機会をいただきありがとうございました。

いくつかピックアップして感想を書きます。

『RailsGirlsが私にくれたもの』harukusさん

speakerdeck.com

この発表で特に印象に残っているのが、「コミュニティに居るだけでは参加しているとは言えないんじゃないか。フィヨルドブートキャンプのアプリでコミュニケーションをとったり、ミートアップで他の受講生と話したり、自分からアクションを起こすことがコミュニティに参加するということなんじゃないか」というところです。本当にそのとおりだと思います。

少し話は変わりますが、全てがオンラインで開催されるようになって、良くも悪くも「見るだけ」「聞くだけ」しやすくなったと思います。コロナ以前は、例えばフィヨルドブートキャンプのミートアップであれば立食での懇親会があり、その場にいれば否が応でも自分からアクションを起こす機会がありました。

それがオンラインのミートアップになると、アクションを起こさなくても結構その場に居られるというか、なにか話さなきゃ!話したい!と思うことは少なくなったように感じます。私のような人見知りにはそれは結構ありがたいと同時に、なんとなく全然喋らない状態になってしまうこともあります。話したくないわけではないんですが、腰が重くなってしまうというか。。オンラインはアクションを起こさなくても情報がたくさん届くため満足してしまいがちなのかな、と思います。

でも、そんなオンラインでも勇気を出してアクションを起こすと楽しいんです!分からないところを質問したり、雑談タイムで雑談したり、地域Rubyコミュニティで話したりLTしたりするのは楽しいことです。自分の考えが人に届いて、誰かが返答してくれるのは素敵なことだと思います。はるかすさんが意識的にアクションを起こしているのすごくいいなぁと思い、私もどんどんアクション起こしていくぞー!と思いました。

『これ好き!から始める世界』べこさん

speakerdeck.com

べこさんのこれ好き!楽しい!続けたい!が溢れててめちゃくちゃ良かったです。

始めることに年齢は関係ないし、長期的に見て続けていければいいんだし、やりたくなったら再開したらいいんだし、っていう言葉にすごく励まされました。

最近細く長くやっていきたいなぁと思っています。今はフィヨルドブートキャンプ生で時間があるのでやりたいことを楽しくできているのですが、働き始めると余裕がなくなりそうですこし不安に思っています。慣れない生活、分からないことがいっぱい、今までのように平日日中ゆったり学習はできない、となると自分はちょっと凹みそうだな、と心配していました。

ですが今日のべこさんのLTで、いっときお休みしても、再開したら続けていることと同じ!と聞いて、入社してしばらくは慣れることに精一杯でも、また慣れてきたらやりたいことやればいいじゃない〜ってちょっと落ち着いた気持ちになれました。続けていきたい気持ちを後押ししてくれるような元気をもらってとってもありがたかったです。ありがとうございます。

まとめ

とりあえずやっていきとして積んでいるキーボードを組んでいこうと思います!

reline のテストを実行

はじめに

この記事は2020年ふりかえりアドベントカレンダー 11日目です。これを書いているのは12月14日ですが、あまり気にしないことにしました。昨日の記事は サロゲートペアとRubyのStringについての覚書 - いまブログ です。

先日 Ruby の標準添付ライブラリの reline に PR を送って無事マージされました。

reline のテストについて教えていただいたので書き残しておきます。

reline の概要

reline は GNU readline を Ruby で再実装したライブラリです。 Ruby の標準添付ライブラリとして Ruby 同梱されています。

github.com

reline のテスト

rake testrake test_yamatanooroti で実行できます。

rake test

rake test を実行すると RakefileENCODING_LIST に定義されているエンコーディングでテストが実行されます。とても便利です。

❯ rake test

Test Encoding: Shift_JIS
Loaded suite -e
Started
...........................................................................................................................................
.............................................................................................................
Finished in 0.291866 seconds.
-------------------------------------------------------------------------------------------------------------------------------------------
248 tests, 2670 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
-------------------------------------------------------------------------------------------------------------------------------------------
849.71 tests/s, 9148.03 assertions/s

Test Encoding: EUC-JP
Loaded suite -e
Started
...........................................................................................................................................
.............................................................................................................
Finished in 0.256047 seconds.
-------------------------------------------------------------------------------------------------------------------------------------------
248 tests, 2670 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
-------------------------------------------------------------------------------------------------------------------------------------------
968.57 tests/s, 10427.77 assertions/s

Test Encoding: UTF-8
Loaded suite -e
Started
...........................................................................................................................................
...............................................................................................................
Finished in 0.232133 seconds.
-------------------------------------------------------------------------------------------------------------------------------------------
250 tests, 2710 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
-------------------------------------------------------------------------------------------------------------------------------------------
1076.97 tests/s, 11674.34 assertions/s

Test Encoding: Windows-31J
Loaded suite -e
Started
...........................................................................................................................................
.............................................................................................................
Finished in 0.235805 seconds.
-------------------------------------------------------------------------------------------------------------------------------------------
248 tests, 2670 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
-------------------------------------------------------------------------------------------------------------------------------------------
1051.72 tests/s, 11322.92 assertions/s

rake test_yamatanooroti

yamatanooroti というgemを使い、仮想端末上でテストを実行します。

github.com

yamatanooroti を使うには、 libvterm 、gem vterm をインストールします。

$ brew install libvterm
$ gem install vterm

rake test_yamatanooroti でテストを実行できます。