Monthly report 2017-11
2017-11 の日記。
ニュース・知ったこと
Mastodon日本語メタフォーラム 開設 (2017-11-13)
- Mastodon日本語メタフォーラム
- Mastodon日本語メタフォーラム - mstdn.jp on The Edge (新規トピック通知 bot)
-
Mastodonの開発・運用に関する話題を日本語でするためのフォーラムを作りました
https://discourse.mstdn.jp/— @nullkal@mstdn.jp, , https://mstdn.jp/@nullkal/98996047020704862
日本の超大手インスタンスである mstdn.jp の管理人、ぬるかる氏が開設した日本語フォーラム。 疑問とか要望っぽいのはあるけど issue 立てるほどでも……とか、宣伝・自慢したいとか、そんな感じの話ができる。
Firefox Quantum リリース (2017-11-14)
- Mac、PC、Linux 向け新高速ブラウザー | Firefox
-
🔥 新エンジン搭載で爆速化
📉 Chrome より 30% 省メモリー
🎨 洗練されたデザイン
🕶 強力プライベートブラウジング
⚙️ 豊富な拡張機能とテーマ
📱 スマホやタブレットと同期
🚪 ブラウザー乗り換えも簡単
💕 開発元は非営利法人Firefox Quantum、誕生。
https://www.mozilla.org/ja/firefox— @mozillajp@twitter.com, , Twitter
Rust のコード等も組み込まれている、 Quantum CSS (Stylo) が有効化された安定リリース。 内部だけでなく、 UI 等も刷新された。
私は Firefox beta を使っているので数週間前から恩恵に与っていた。 内部エンジンが変わったから何なんだという感想を持つ人もあるかもしれないが、ユーザにとって(わかりやすく)直接的に嬉しいのは、マルチプロセス対応とかだろうか。
『見上げてごらん、夜空の星を』 英語版 発表 (2017-11-17)
- A Sky Full of Stars | MoeNovel
-
We are excited to announce A Sky Full Of Stars is coming in December! The starry sky spreads far and wide overhead... A story full of love, comedy, & excitement follows our protagonist & his stargazing friends as they grow together.
http://moenovel.com/a-sky-full-of-stars
http://store.steampowered.com/app/745960/A_Sky_Full_of_Stars— @Moenovel@twitter.com, , Twitter 【みあげて】ころげてに続き『見上げてごらん、夜空の星を』が世界へ羽ばたきます!! 平たく言うとスチーム移植されます。自分の書いたものを海外の人に遊んでいただけるなんて数年前は想像もしてなかったので、驚くやら嬉しいやら。 #夜空の星を
http://moenovel.com/a-sky-full-of-stars— @asta_konno@twitter.com, , Twitter
OP曲とかテーマ曲とか非常に好きなので気になっていたゲーム。 翻訳されるくらいなんだから面白いのだろう。 そのうちやってみたい。
『ものべの -happy end-』 中国語版 発表 (2017-11-17)
- 茂伸奇谈-happy end- 中文官方网站
-
突然ですが「 ものべの-happy end-」の中国語版が発表されました! HIKARI FIELD様より、簡体字・繁体字で販売されます! 中国語だと「茂伸奇谈」となるようです。公式サイトには翻訳ムービーもありますので、是非ご確認下さい!! http://hikarifield.co.jp/mnbn/
— @news_lose@twitter.com, , Twitter
すごい。めでたい。 しかし英語じゃなくて中国語か…… もっとも、英語で出たところであのシナリオを英語でやられて私が理解できるとも思えないが。
はやくクリアして『まいてつ』やりたい……(最近エヨゲ自体起動してない顔)
Rust 1.22 (と 1.22.1) リリース (2017-11-22)
- Announcing Rust 1.22 (and 1.22.1) - The Rust Programming Language Blog
- プログラミング言語 Rust
- rust-lang/rust: A safe, concurrent, practical language.
Option
に対して ?
演算子を使えるようになったのが目玉機能かな。
このリリースとは直接関係ないが、 rls-preview が rustup からインストールできるようになったりとか、 WebAssembly へのコンパイルができるようになったりとか、最近いろいろ面白い。 これからの進歩も楽しみだ。
diesel crate の v0.99.0 がリリース (2017-11-29)
- diesel-rs/diesel: A safe, extensible ORM and Query Builder for Rust
-
Diesel 0.99.0 has been released! (It's like 1.0 except that it's not)
https://github.com/diesel-rs/diesel/releases/tag/v0.99.0— @dieselframework@twitter.com, , Twitter Release v0.99.0 (It's basically 1.0 except it's not) · diesel-rs/diesel
https://github.com/diesel-rs/diesel/releases/tag/v0.99.0いつぞやの Linux みたいなバージョニングだなwww
— @lo48576@mastodon.cardina1.red, , https://mastodon.cardina1.red/@lo48576/99088588052348458 Linux - Wikipedia
https://ja.wikipedia.org/wiki/Linux#.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E9.96.8B.E7.99.BA.E3.81.AE.E9.81.8D.E6.AD.B4
Index of /Linux.old/kernel/
http://www.oldlinux.org/Linux.old/kernel/Linus が「もう95%完成したやろwww」っていきなり 0.95 に上げたら、その後大変苦労したとかいう話を思い出した
— @lo48576@mastodon.cardina1.red, , https://mastodon.cardina1.red/@lo48576/99088599770296782
パブリック活動
lazy-init crate へプルリク出した(マージされた)
- khuey/lazy-init
- lazy-init - Cargo: packages for Rust
- Some refactoring by lo48576 · Pull Request #1 · khuey/lazy-init
- Add `Default` impls by lo48576 · Pull Request #2 · khuey/lazy-init
-
Some refactoring by lo48576 · Pull Request #1 · khuey/lazy-init
https://github.com/khuey/lazy-init/pull/1
Add `Default` impls by lo48576 · Pull Request #2 · khuey/lazy-init
https://github.com/khuey/lazy-init/pull/2クッソショボいプルリクを発動した
— @lo48576@mastodon.cardina1.red, , https://mastodon.cardina1.red/@lo48576/98973726417849141 `Default` の実装が本命で、リファクタリングはオマケ
— @lo48576@mastodon.cardina1.red, , https://mastodon.cardina1.red/@lo48576/98973728116255828 両方とも merge された 🎉
— @lo48576@mastodon.cardina1.red, , https://mastodon.cardina1.red/@lo48576/98984987563930163
やったね。
lazy-init は、スレッドセーフな遅延初期化を実現するライブラリ。 静的サイトジェネレータで「スレッド間で共有されうるファイルコンテント(ただし実際使うかはわからないので読み込みは遅延させたい)」みたいなオブジェクトが欲しかったところ、これを見付けた。
似たようなものとして std::sync::Once
が標準ライブラリにもあるが、これは初期化済フラグがグローバルなものなので、動的にポコポコ生み出すオブジェクトには使えない。
シングルトンを作りたいとかハードウェアを初期化したりといった用途で使うものだ。
coco crate へドキュメントの誤字修正のプルリク出した(マージされた)
- stjepang/coco: Concurrent collections (deprecated in favor of Crossbeam)
- Fix typo: `s/Attemps/Attempts/` by lo48576 · Pull Request #19 · stjepang/coco
- https://mastodon.cardina1.red/@lo48576/99003430797812718
内容について特に語ることはない。
deprecated って言ってるしどうしようか悩んだが、まあちょくちょく更新されてるっぽいので投げとくかということになった。
Gentoo wiki の「ローカライゼーション/ガイド」記事を翻訳した
- ローカライゼーション/ガイド - Gentoo Wiki
-
typo 修正のついでに gentoo wiki の翻訳をしている
— @lo48576@mastodon.cardina1.red, , https://mastodon.cardina1.red/@lo48576/99052287342886803 ローカライゼーション/ガイド - Gentoo Wiki
https://wiki.gentoo.org/wiki/Localization/Guide/ja
ついでということで、未翻訳だった部分を全部翻訳しといた— @lo48576@mastodon.cardina1.red, , https://mastodon.cardina1.red/@lo48576/99052504633053193
twitter で typo を発見したというツイートを見たので、
そういえば、いつぞや LINGUAS
から L10N
に引っ越せよ〜みたいなアナウンスがあったなぁと思いながら翻訳。
こういった技術文書は、特にプログラミング分野ではそうだが、往々にして英語に苦労する初心者/初学者は翻訳できるほど記事の内容に精通しておらず、内容を理解している人々はもはや英語で十分なので翻訳されている必要がないという、ニーズのミスマッチが大きい。 布教したければ、わかりきった内容の記事でも積極的に翻訳していくことが必要だ。
気持ちとしては未翻訳部分を発見次第気軽に訳したいのだが、英語に堪能でないので片手間でやれるほど簡単ではないというのが厄介。
handlebars-rust crate に issue 立てたら修正してもらえた
- sunng87/handlebars-rust: Rust templating with Handlebars
- handlebars - Cargo: packages for Rust
- Require `Sync` for `cause` of `RenderError` · Issue #194 · sunng87/handlebars-rust
エラー型がマルチスレッドを視野に入れてそうな設計だったのに微妙に使えない感じになっていたので issue を立てて聞いてみたところ、意図した状況ではなかったらしく、問題ない形に修正された。
これは static site generator で使おうとしていたライブラリなのだが、後述の進捗を優先的にやることになったため、はてさて、いつになれば handlebars を使う段階までくるやら。
strum crate に issue 立てた
- Peternator7/strum: A small rust library for adding custom derives to enums
- strum - Cargo: packages for Rust
- ToString: implement `Display`, std doc says "`ToString` shouldn't be implemented directly" · Issue #12 · Peternator7/strum
昔プルリクを出したこともある crate で、これは enum を文字列と相互変換するコードを自動生成する proc macro 。
ToString
trait を実装していたが format!("{}", some_enum)
のようにしても使えなかったので、おかしいと思って調べてみたところ、 ToString
を直接実装するのは望ましくない、 Display
を先に実装しろというお告げがちゃんと標準ライブラリの ToString
のドキュメントに書いてあった。
これが意図したものか意図せぬものか不明だが、変更するにしても derive する名前とか属性名の変更をした方が良さそうだし、 breaking change になると思ったのでプルリクにせず issue を立ててみた次第。
進展はなく、返答待ち。
私的活動
opaque_typedef crate を作りはじめた (2017-11-29)
static site generator を書くためのライブラリを作りたかったのだが、 strong typedef (opaque typedef) 相当のことを Rust でしたいとき[0]あまりにボイラープレートが多いため、こりゃもうコード生成するしかねえな!という気持ちになり実装を開始した。 手応えはあるので、遠からず公開できそう。
これが一段落したら、今度は str
と String
のような、 slice と owned buffer の間の変換とかいい感じの trait の自動実装とかをする proc macro も実装したい。
そもそもそれが本来の目的なので、 opaque_typedef はその単純版というか、シンプルな部分を逃がしただけの実装に過ぎない。
考え事
プルリクを出すレベル
ドキュメントの typo 修正のプルリク、そんなことで contributor 増やしてしまうかと思うとちょっと申し訳ない気分になるので、 issue で済ますかプルリク出すか悩む
contributor が増えると何が問題かというと、プロジェクトのライセンス変更とかで contributor の合意が必要になったりするのでアレ(まあ doc typo fix くらいは無視できるのかもしれないけど、そのあたりはライセンスのプロではないので詳しく知らない)
doc comment はコードじゃないし、 typo fix なら著作権みたいなのも発生しなそうだし、無視できる気はする
GitHub の Ricty リポジトリ閉鎖騒動 - Togetter を思い出していた。
雑感
- 進捗していくぞ〜
- 研究……アッアッ
- (Advent Calendar の準備が全然できてない顔)