hotoolong's blog

プログラムのことやエンジニアリングに関することを記事にしています。

2022年を振り返って

あけましておめでとうございます。 2023年になりました。 日が経つのは早いです。

COVID-19以降世界が大きく変わってきた印象が強いですが、 2022年振り返っても歴史的なことが起こっていますね。 ロシアのウクライナ侵攻、安倍元総理が銃撃されたり、1ドル150円を超える円安と侵攻の影響による物価高 個人的にはあまり大きな出来事もなく平穏に過ごせたのかと思います。

私が思う2022年一番の出来事は ChatGPT の台頭です。

画像生成AIとかチャットAIとかいろいろブレイクスルーが近い将来起こりそうな期待感が持てたのが大きですが、 ChartGPTは使ってみて、日本語などは違和感なく読める文章が返ってきます。 これ自体でもすごいことなのです。 ただ、情報の信憑性や正しさは専門性が高くないと全然というケースがあります。それにしてもそれっぽい回答が返ってくる印象です。 Googleで検索した結果として多くの情報から探すのと近い将来置き換わる可能性もありそうなので、Googleも警戒しているようです。

https://www.businessinsider.com/google-management-issues-code-red-over-chatgpt-report-2022-12

現在のChatGPTはGPT-3が使われていて次期バージョンとしてGPT-3.5はリリースされているので、それに置き換わるかもしれないです。 そしてGPT4が開発中ということで更に人間味のある応答ができる期待感があります。

コーディングの支援ツールとしてGitHub Copilotがありますが、 コーディングも自動かされてきているが収益化するほどのサービスとしてはまだ難しかったのかkiteが撤退しました。

https://www.kite.com/blog/product/kite-is-saying-farewell/

コードの予測には背景が必要になりそうなので、コード支援でできる範囲としてはまだまだ難しい段階なのかと思いますが、 テストコードを自動作成などの分野では今でも活用できそうできそうで期待が持てます。

DeepLeaning周りの情報はあまり追ってなかったのですが、 2023年は更に大きなブレイクスルーが起こるのではないかという期待と 専門性のある分野でfine tuningされたものが出現したときにプログラマの仕事はどれくらい脅かされるのは気になるところです。 2017年に将棋の電王戦で名人がコンピュータに負けて、それ以後コンピュータ将棋で人間を遥かに凌駕する強さを繰り出してますが、 それに近いようなこと起こりそうなそんな感覚です。

特に専門性が高くて正解が既にある情報での活用が進みそうで、弁護士への相談やお医者さんへの診断などはAIが答えてくれるサービスなどは 法的な問題をクリアすれば、近い将来見られるかもしれないです。 2023年も注目していこうかと思います。

記事内の誤り、誤字脱字等は気軽に twitter @hotoolong にリプライしていただけると嬉しいです。

大型書店の閉店が相次ぐ

以前ツイートしたりしていたのですが、大型書店が次々と閉店します。

以前から閉店してもおかしくはないとは思いつつこのタイミングで閉店していくのは残念です。 特に秋葉原有隣堂にはよく行ってたのでエンジニアリング周りの物理本を確認できる代わりのお店があればいいのですが、 IT系の書籍が置いている本屋さんでもエンジニアリング周りの本が充実している書店はかなり少ないので、これからどんどん少なくなりそうです。

本屋さんでその書店のECサイトを経由して購入させて書店への貢献ができると仕組みなどがあればまだ良かったのかもしれないですが、これからの本屋さんの存在意義が問われていくのかもしれないですね。

記事内の誤り、誤字脱字等は気軽に twitter @hotoolong にリプライしていただけると嬉しいです。

WF-1000XM4 をやめて HUAWEI Eyewearを使ってみることに

WF-1000XM4 を愛用してたのですが、ここ数ヶ月でノイズキャンセリングありで 右耳が2時間ほど左耳が3時間ほどしか電池が持たなくなってしまい。ほぼ使い物にならなくなっていました。

商品ページでは 最大8時間(NCオン) / 最大12時間(NCオフ) https://www.sony.jp/headphone/products/WF-1000XM4/index.html とあるので、 購入時は 8時間ほど持っていたかもしれないです。 そんなに充電しなくても長持ちしていたような記憶があります。

サポートから修理をしようと https://www.sony.jp/support/repair/repair_price_online.html で確認すると 23,100円(税込) になっている。 1年は過ぎているので保証は効かなさそうですが、1年ちょっとでこれはないかな..

最近はNCもかなり弱くなってきたのではないか思うほどで BOSEのヘッドホン(QuietComfort 35 wireless headphones II )をつけたときの方がノイズキャンセリングが効いてる印象です。

仕事中はWF-1000XM4を使っていたのですが、電池が持たなくなってしまって最近はヘッドホンをつけて作業していましたが、 メガネをかけてヘッドホンをするとメガネの縁が押さえつけられて辛さを感じることもあったので作業しやすいイヤホンを探してしました。

そんなときにドリキンさんのYouTubeを見ていると HUAWEI Eyewear が紹介されていてかなり良さそうだったので早速オンワードに買いに行くことにしました。 https://youtu.be/cuSbYgddCqg

これのいいところは 耳に出た音と逆位相の波長を出して打ち消そうとしている点で これはノイズキャンセリングと逆でノイズを消すのではなく、出力してる音を消すというのが面白いところです。

Huaweiの製品ページ https://consumer.huawei.com/jp/wearables/huawei-eyewear/

OWNDAYSのページ https://www.owndays.com/jp/ja/news/huawei

まだ使いはじめたばかりですごくいい感じで使えそうです。

記事内の誤り、誤字脱字等は気軽に twitter @hotoolong にリプライしていただけると嬉しいです。

fish shellのプロンプトにフルディレクトリ名の出力が設定で変更できるようになっていた

fish 3.4.0からプロンプトにフルのディレクトリ名を表示できるようになっていました。

以前のブログで prompt_pwd を上書きして フルのディレクトリを表示していたのですが、設定だけでできるようになりました。 ありがたい。

以前PRを投げていたのですが、

https://github.com/fish-shell/fish-shell/pull/7414

fahoさんに

すみません、ここで複数の変数を使う必要はないと思います。$fish_prompt_pwd_dir_lengthを使うか、もっと複雑な動作をさせたい場合は独自の関数を使用してください。

rejectされてしまったのですが、

その後 fahoさんが以下のPRで自分が間違っていたという内容の謝罪してくれて対応してくれていました。

https://github.com/fish-shell/fish-shell/pull/8208

ありがたや〜 これで

set -g fish_prompt_pwd_full_dirs 2

などとすると 2つのフルパスが表示されるようになります。

記事内の誤り、誤字脱字等は気軽に twitter @hotoolong にリプライしていただけると嬉しいです。

RubyKaigi2022にリモートで参加してきた

久しぶりの更新です。 今年はRubyKaigiは現地での参加を予定していたのですが、8月のCOVID-19感染者数が結構跳ね上がってしまったのでリモートでの参加としてみました。

個人的な見どころとしては

  • ブラウザでのRuby実行(WebAssembly)
  • パフォーマンス改善
  • デバッカ周りの改善
  • 開発体験の向上

毎年未来への希望を感じさせてくれる。 途中で通信が途絶える発表もあったのでYouTubeで動画が上がったら再度見直したい。 来年は松本ということで現地に行けるといいな。

記事内の誤り、誤字脱字等は気軽に twitter @hotoolong にリプライしていただけると嬉しいです。

リモートワーク環境を考える

1年以上ブログを書いておらず、すっかり書き方を忘れてしまっています。

イントロ

リモートワーク環境を少しずつ改善していったのを フリーランスとして働いてリモートワークでの仕事でやっている手前,環境を少しずつ改善して行けているのかと思い、現状をまとめておこうかなと思っています。

ヘッドホンからイヤホンへ

それまで使っていたのが BOSEのヘッドホン(QuietComfort 35 wireless headphones II)を使っていたがイヤーパッドで蒸れて夏場きつくなってきたのでイヤホンを考えてました。 https://www.bose.co.jp/ja_jp/products/headphones/over_ear_headphones/quietcomfort-35-wireless-ii.html#v=qc35_ii_black

条件として リモート会議で 使えそな イヤホンを探す

候補1

WF-1000XM4 最大8時間(NCオン) / 最大12時間(NCオフ) https://www.sony.jp/headphone/products/WF-1000XM4/index.html

候補2

AirPods Pro https://www.apple.com/jp/airpods/ AirPods (第3世代) 比較してた時には発売されてなかった 6時間になっているのでかなり改善されている

候補3 Bose QuietComfort® Earbuds バッテリー持続時間: 最大6時間

バッテリー駆動時間はSONYのが一番だったのでそれで対応することにして、購入してみました。 リモート会議では耐えられなさそうなレビューもあったのだが、、 実際に使ってみるとかなり聞き取り辛いと会議中に何度が言われたので、マイクを変えることにしました。

マイクを変える

いろいろ考えたのですが当時はコンバータを考えると大変そうだったのでUSBで接続できるものを探しました。

RODE Microphones ロードマイクロフォンズ NT-USB Mini USBマイク NTUSBMINI https://amzn.to/3dLjKE0

使ってみてますが、結構良さそうです。

まとめ

ということで今はこのセットで使っています。 マイクの接続が何故かブラウザで認識されなくなるケースがあるので、ちょっと不便を感じるときはありますが概ねいい感じで使っています。

記事内の誤り、誤字脱字等は気軽に twitter のアカウント @hotoolong にリプライしていただけると嬉しいです。

パーフェクトRuby on Rails 【増補改訂版】を読んで

イントロ

パーフェクト Ruby on Rails 【増補改訂版】を読みました。 Rails本の中では異質な量と質ではないかとおもいます。

誰が読むべきか

  • 最近のRailsをキャッチアップしたい方
  • Railsをある程度は長く使っている方
  • よりRailsを理解したい方

Rails初心者の人もRoute, MVC周りの基礎的な理解をしている状態で読むことで理解が進みそうです。 というのも章立てがわかりやすく、掻い摘んで自分がほしい情報を手に入れやすい構成になっているからです。 逆に基本的なところは詳細に記載されてないので別の本などで知識を得るのが良さそうです。

良かったところ

正直たくさんあるのですが、特によかったのは以下になります。

  • Rackに関して
  • Webpacker
  • Early Hints
  • CSP対応
  • ActiveStorage
  • 秘密情報の取扱い方
  • searchkickを使った検索機能
  • RuboCopの活用方法
  • Stimulusの機能説明
  • Docker
  • GitHub Actions

特に秘密情報の取り扱いは過去バージョンからの歴史があるのでまとめられているのがとても参考になりました。
上記にとりあげている内容は自分が持っている知識をアップデートできる内容になっているのでこれから業務でも活かしていけそうです。

記載してほしかったところ

とても質も高い内容がおおくて参考になるのですが、個人的に知りたかったこともありました。

  • APIに関するgemの活用方法
  • GraphQL
  • デバックに関して
  • like文のサニタイズ

APIとしてサーバを立てるケースは少し触れられていたのですが、 jsonapi-serializer を使った serialized 周りの処理に関してあると嬉しかったなとおもいました。 
GraphQLに関しては出てこなかったです。この辺は少し触れてくれるといいのかと思いました。
デバッグに関してもpryもしくはirbでのbindingして実施する方法があると嬉しかったです。
ここまでの3点に関してはgem の機能説明になってしまいそうなので、少し方向性がずれてしまうと感じて外していたのかもしれません。
最後のlike文の記載が 2-2-2 モデル同士のリレーション であったのですが、サニタイズの処理がなかったので追加してほしかったなとおもいました。
随分前に以下のような記事も書いているので気になる方は確認してみてください。
hotoolong.hatenablog.com

総括

すごくボリュームがあるのですが、中身が濃くて参考になる内容が多く読み応えがありました。
あー読むのに時間かかったw
初心者向けではないのは明らかなのですが、Railsの書籍には入門書から先に進むときに見るべき本としてはいい道標になりそうです。
Rails6系になり機能がとても増えているのでキャッチアップできていなかった機能もこれを一読することである程度網羅的に知識を得ることができた本でした。
Rails初心者であっても本書の構成が章によって別々の機能説明になっているのでつまみ食いできて、わからなかったところは飛ばしてわかるようになるまで見ていけば徐々に力がついてきそうだなという内容になっています。
著者の皆様には感謝が大きいです。ありがとうございました。

gihyo.jp