いや、訂正。まだ覚えてないw

自分がガシガシ書いてるのCrystalやわ……こっちはリレーのコードだ。

CrystalのI18n対応、ひとまずこのshardsに落ち着いた。
github.com/TechMagister/i18n.c

あと、HTTP::HandlerについてはAmberで使われているcitrine-i18nを使わせてもらうことにした。
github.com/amberframework/citr

だが、MastodonもPleromaも、Activityを送ってくる時にAccept-Languageをつけてこないので役に立たないw

MastodonはActivityにcontent付ける時contentMapで使用言語の情報をよこすので、それを利用。

Pleromaは特に情報がないので拾えず。

私、Crystal(言語)を覚えて、その知識を使ってRubyを読み書きしているというヘンな人なんですが、なんやこれ、型が指定されてないじゃん!とかしょっちゅう思うわけです。

records = []

とか書いてあると、

records = [] of String

って書かないとダメだろ!とか思ってしまうw

コーディングスタイルの点で言うと、GoとかCrystalをはじめとする最近の言語は、最初からフォーマッタが付いていて統一してくれるのよね。

crystal tool format src/hoge.cr

道具には設計思想があって、道具を決めた時点でそれも込みで選んでいる。基本的にそれに乗っかった方がスムースに事が運ぶので、合わせられるモノはあわせてしまった方がいい。

そういや、FediverseにCrystal勢(言語)おらんのかなー。出向いていくの面倒なんだよなぁw

最近、Crystal(言語)が馴染んできて、非常に心地よくコードが書けるので気に入っている。

型があって、実行時にnullで死ぬようなところは事前にエラーになるので、コンパイルが通ればだいたいちゃんと動く。

もう少し慣れて、第一言語に持って行きたいな。

Qrunchにもう一個書いた。

Mastodon本家のpub-relay動かそうとしてハマっている人多いので、そういう人にこれ見せてあげて。

Crystalでbio_newが無いとかエラーでる場合の対処(openssl_ext)
noellabo.qrunch.io/logs/KgdoPu

Crystal 0.27.1がリリースされたのですが、HTTP::ClientでSSLエラーになる不具合が出ておりまして、解決するまで0.27.0でやり過ごしたい今日この頃です。不用意にアップデートすると死ぬので気をつけましょう。
noellabo.qrunch.io/logs/80mAxM

Crystal 0.26.1、rootでコンパイルできるけど、pub-relayユーザーでやるとEND_OF_STACKで落ちる。
github.com/crystal-lang/crysta

まぁ、rootでビルドすればいいっちゃいいんだけど……。

自分でCrystalをビルドし直すのしんどいので、修正版はやくくれー。

のえる@DTP鯖管 によるおすすめ:

DTP-Mstdn.jp

DTP-Mstdn.jpは、DTP・デザイン・印刷に関わる人々のためのMastodonインスタンスです。

特定分野の専門インスタンスですので、日々のつぶやき、耳寄りな情報の共有、ディスカッション、質問とその回答、役立つスクリプトなど、他では投稿しづらい内容も、思う存分トゥートしましょう!

また、普段使いのインスタンスとしてもご活用ください!
Mastodonは相互に繋がっており、DTP-Mstdn.jpを通じて世界中のインスタンスにアクセスできます。