Next.jsと組み合わせる永続化のAPIって何が一般的でしょう?

僕が開発するなら何でもいいんですが、フィヨルドブートキャンプのJavascriptコース最終盤のカリキュラムで生徒の方もスクラムで開発するものになるので、そこで使う技術はカリキュラムとしても用意する必要があります。

考え方としては、Javascriptのプログラマーとして就職したら遭遇するよくある構成がいいなと思っています。

Next.jsを使うというのは決定していて、DB・API部分の選択肢が豊富で迷っちゃいます。

  • Firebase(ちょっとしたサイトならいいが、しっかりしたサービスだと避けるイメージ)
  • OpenAPI(サーバーサイドがガッツリし過ぎ感)
  • GraphQL(最有力か?)

みなさんは何を使ってますかね〜?

ヘッドホンを伸ばしたらバキッと一部壊れちゃいました。

妻が目立たないテープで縛ってくれたので騙し騙し使っていきます…。

Image from Gyazo

最近のrailsでのパスワード認証gemって何使ってます?

The Ruby Tool BoxのWeb Authentiationカテゴリーを参照。

devise

やってくれることは多いがカスタマイズしづらいので嫌う人も多い。俺はこれ使ってる。 しかし登場から時間が経ち、railsの仕様に追従していくにつれて初期の設計に無理がきてる感。特にrails7からはさらに。

sorcery

やってくれることは少ないが、カスタマイズしやすい。bootcampのアプリはこれを使ってる。(確か @hrysd が入れた) リニューアル版sorcery(sorcery-rework)が別リポジトリで進んでるが、当分完成しそうにな。

authlogic

使ったことないけどちょっと古い感?

clearance

使ったことないけどちょっと古い感2

railsの基本機能を使って自作

これが多いのかも?

個人的には認証などのセキュリティが大きく絡むところはなるべくgemなどみんなが見ている(セキュリティパッチがすぐ入りやすい)ところのを使いたいな〜と思っております。

みなさんのプロジェクトではどんな感じでしょう? 温度感が知りたい感。

railsの6系最新(6.1.4.4)とrubyの最新(3.1.0)にアップグレードするときに対応してないgemにPRを送る作業をやっています。

bootcampのrails 6.1.4.4

https://github.com/fjordllc/bootcamp/pull/4101

pgのwarningが残ってる。(こういうところも粘り強く対応できるようになっていきたい)

bootcampのruby 3.1.0

https://github.com/fjordllc/bootcamp/pull/4108

@ima1zumiさんが3.0.2にアップデートする作業を初めてくれて、そこに乗る形でやりとりさせていただいてました。3.0.3だと起きるけど3.1.0では起きない問題があったので一気に上げちゃう方針に。こういうところも粘り強く(略

おかげでCI通ったようなのであと一歩。

sorcery-jwt

https://github.com/hayfever/sorcery-jwt/pull/14

sorcery-jwtはdependencyの設定を変えないと最新のsorceryで使うことができない。sorcery-jwt自体、リニューアル後(予定)の新sorceryではcore pluginになる予定だそうで、こちらのgemをもうupdateする気はないのかもしれない。とりあえずforkして対応してるけど、メールを送ってみる予定。

ActiveFlag

https://github.com/kenn/active_flag/pull/19

これはbundlerのバージョンによるものだった。

今後

ruby 3.1.0にできたら次はrails 7.0.1に上げる作業をやる予定。こっちも色々PRに必要になるでしょう。

ActiveFlagのテストでrequire 'set'が必要かもという問題。

人によって結果が違うのなぜかな〜という状態だったんですが、(実行していただいた方々ありがとうございます)

bundler 2.2.8でrequire 'set'がなくなったのが原因だそうです。

https://github.com/kenn/active_flag/pull/19#issuecomment-1025093171

Image from Gyazo

この行。

https://github.com/rubygems/rubygems/pull/4297/files#diff-04ae823e98259f697c78d2d0b4eab0ced6a83a84a986578703eb2837d6db1a32L4

ほぼ標準といえるようなgemから依存がなくなるとこういうことが起きるんですね。setについて他のライブラリでも似たようなこと起きてるかもしれません。環境を示すときはbundlerのバージョンも示した方がいいんだなと勉強になりました。

ボランティア開発者が「反乱」。もっとオープンソースに還元されるべき?(山口健太) - 個人 - Yahoo!ニュース

これいろんな意見がありますよね。オープンソース・オープンソースコミュニティ大好きなので開発者・ユーザーにとって良い方向に進むといいなと思います。

それとは別に、オープンソース開発者の義務について思うこと。

OSSに好き勝手に要望を出すことは良いと思う。

「だったら自分でやれよ」って言っちゃうとフィードバックが無くなっちゃうので。

それと同時にOSSコミッターが持つ最大の権利が、

「要望を無視すること」

かな〜と思いました。(要望を「反論する」「却下する」ではなく「無視する」)

「好き勝手に要望を出すのはOK」ただしコミッタは「スルーする権利」を持つ。

好き勝手な要望に全部向き合わないといけないのではコミッターの体が持たないんじゃないかな〜と思います。

この「スルーする」っていうのっていろんな場面で強力な選択肢だと思ってます。

重要なOSSのコミッターの方々には利益を得て欲しいと思うと同時に、負担が減ればいいな〜と切に思います。

先週作ったPRにコメント欄でリマインド。

Update requirements for sorcery by komagata · Pull Request #14 · hayfever/sorcery-jwt

railsアプリをruby3.0.3にアップデートする作業で、ActiveFlagのto_humanメソッドが落ちる。ActiveFlagにPRを作ろうかと思いgemのrake testをするとエラーが起きるのでまずそれを治すPRを作った。

'require' is needed by komagata · Pull Request #19 · kenn/active_flag

railsアプリのその部分、ruby3.1.0にすると起きないので調査する気力がダウン…。

その調査の途中で見つけたfixtureデータの不正をPRして時間切れ。

テストデータが不正だったのを修正 by komagata · Pull Request #4033 · fjordllc/bootcamp

引越しのための物の整理をしていたら昔のデータのCD-ROMを見つけました。そこに消失したとおもていた昔のこのブログ(昔はホームページの日記だった)の画像データが残っていたので、いくつか画像を復旧してみました。

OSを大インストール - komagataのブログ

Redhat9のインストール方法なんて誰も欲してないと思いますが…。

少し作業すると左肩が痛くなるようになって半年ほど経ちます。

何もやってない状態でも左上でに力が入ってるのが原因だと思います。今のキーボードだと手首の上あたりを支点にしてキーを打つ指を支えてる感じなので変な力が入っています。そこでパームレストあればいいのかもと思いました。

丁度良い厚みがわからないのでまずは段ボールでプロトタイプを作ってみました。

ss

薄めの段ボールを四枚重ねた厚さが丁度良さそう。

ss

ぴったりで良い感じです!

Image from Gyazo

ネットの何かで、

「すぐに見た方がいい映画No.1」

「どのタイミングでも見ても面白い」

「リテラシーとして見た方がいいとかじゃなくて、純粋に娯楽として面白い」

というのを見たので、Amazonプライムビデオでレンタルして見ました。

結果、めっちゃ面白い。

古くて長くて冗長な映画なんじゃないかってイメージだったけど、見たら3時間ぐらいあるのに無駄なシーンがなくてテンポ良く見れた。それに画質もHDリマスターか何かのおかげで全然綺麗で見やすかった。

人との会話や漫画や映画などいろんなもので引用やパロディーされてる元ネタがこれか〜って箇所が腐るほどあってそれを探すのも面白い。

2と3もすぐ見よう。