Podcast 消化 (→ 技術的内容は文字か映像で)
API Showdown: REST vs. GraphQL vs. gRPC – Which Should You Use?
Web を支える技術 を読んだ後、むしろ RESTful ではない API が分からんということで、GraphQL と gPRC の公式チュートリアルを軽く読んでみました。
-
GraphQL
型表現 (scheme) とクエリのテンプレート言語みたいな感じ? -
gPRC
Proto file でデータ・関数を定義すると、各言語のバインディングを作ってくれる。非同期もやってくれる?
全然分かってない ですね。それから podcast を聞いてみました。それぞれの API の用途を熱く語ってくれた気がしますが、全然頭に入ってこない。雰囲気だけ楽しみました。
相応のインプットが無いと、 pocast を味わい尽くすのは難しそうです。
Dart and Crafting Interpreters | CppCast
Robert Nysrom のコンテンツは楽しんできました。ローグライク、 model/view 分離、自作言語、オブジェクト指向、エッセイなど……。アイドル的存在ですね。
大学をドロップアウトしたのでプログラミング言語の授業を取っていない話とか、言語やゲーム開発にハマっている様子を聞きました。間違いを消す言語はリポジトリを見ても面白くなかったのですが、今回開発者視点の話が聞けてめちゃくちゃ面白かったです。これは話のネタとして楽しいんだ。
そして Dart と Flutter 。ホットリロードができるのは本当にずるいと思います。。 Dart はもともと AltJS として宣伝されていた気がしますし、 Haruberk が作れるくらいしっかりした言語だったはずですが、いつの間にか Flutter が有名になって幸せそうだなと思います。
Crafting Interpreters は僕の最初の Rust コード (loxrs) のネタになってくれました。 Wren は Luxe Engine のスクリプト言語です。良いものを作ってたくさんの人に幸せを貯めたんだなという印象です。
あまりしっかりと音声を聞けていないけれど、聴きたい 20% だけ吸収できればいいかな……
早くもネタ切れで Bob に逃げました。 10 億ドルの失敗ですっかりお馴染みの例の件 in Dart です。
Nullable は union のサブセットだから簡単なんだぜ! とのことですが、本当? コード大好きな Bob も、理論的な内容を相当勉強している様子が感じられました。やっぱり理論が要る気がするな……
タレント (?) ばかりに注目してしまう。。
Dart は Flutter 向けにチューニングされるべきで、 Flutter のコードを例に late
キーワードが出て来ました。メリットは色々ありますが、何と言ってもコードが良くなる! 誰もがニッコリのユーザに寄り添った結論で、やはり彼がアイドルなのか……
最近のハイライト:
- REST が Rust にしか聞こえない (母音の違いが分からない)
- Nullable が noble にしか聞こえない (l が聞き取れない)
2011 年の記事
骨振動イヤホンで音声を、スピーカーで音楽を聴きます。
何個か podcast を聞いたのですが、何も情報を掴めませんでした。リスニングが下手すぎます。公式サイトを眺めた方がリターンが大きいですが、音声コンテンツからも何か吸収したい。どうしよう。
Zenn個人開発の限界に挑んだ話 - devsumi 2021
僕は Zenn のスクラップが大好きです。これは 13 枚目のスクラップなので、すっかりツイ廃ですね。ブログを書く実力は無いけれど、ツイートしても面白くないもので、スクラップは救済的な存在です。
スクラップに関して、 UI の不具合報告を出したことがあります。永遠にそのままだろうと思っていたら、一瞬で直していただきました。
そこで なんか普通のサービスとは違うぞ と気付いたものでした。 来年は本の章立てを階層化できるようになっていると思います 。作者や管理会社の思う一番善い形に向かい続けるんだろうと思います。たぶん謎の事情により変化しなくなることはないです。
動画の内容としては、 レッドオーシャン 、猫ちゃん、技術的トピックが印象に残りました。 UI が凄いと思うのですが、 UI の話は全く無かったです。
Episode 13 - John Wiegley on Categories and Compilers
やりました! 見つけました。目指すべき † 𝒯𝓇𝓊ℯ 𝒩ℯ𝓇𝒹 † 像を更新する時が来たようです。
目次に並ぶのは Haskell, Nix, Emacs, Coq. これが教養! 見るからの数学強者ですが、 CS も Haskell も履修したわけではないらしく、後天的な Haskell プログラマとして大活躍しているようです。
それは use-package の作者 (John Wiegley 氏) でした。数学やを自身の言葉とし、プログラムの意味を表すことを生業とする……いや分かりませんが、そんな雰囲気のことを言っていました。
Haskell の遅延評価が好みだそうです。明らかに低レイヤ強者とはスタイルが違いますし、関数型言語のユーザの中でも趣向が分かれることを教えてくれます。
カテゴリが物事の中心だし、 Coq は有用で、 Haskell は機能的。数学があれば、 Haskell で何でも実現できると言わんばかりの強さ! 数 % でも取り込むべきだと感じさせてくれました。学べば圏論が考えの基本になったりするんでしょうかね。
ベーシック圏論 は 大学 2 年生で読むらしい ですね。圏論は DB を理解するのにすら死ぬほど役に立つぜ! と言っている人もいる。ほんとかい。。
僕はより nerdy な趣向を抱えたいだけなので、 Haskell を起点に記事や本を探そうと思います。まず Category theory for programmers が見つかりました。
Optionals and errors in Haskell & Rust - Monads by example | Context Free
特に新規情報は無かったものの、説明が上手かったです。
-
Maybe
モナドの>>=
演算子は Rust のand_then
に相当する flat map. - Haskell の
Either
は慣習的に左辺が error.
do
記法は flat map のチェインなんですが、 guard なんかが early return 風に読めるのが面白いなと思います。
Podcast や Youtube は、知識が無いと分からない一方で、知識があると既知の確認になりがちです。謎の会話を眺めてモチベーションを高めるか、豆が喋ってる動画ぐらいがちょうどいいのかな。。
Youtube (音声のみ)
iPhone で Youtube アプリに繋ぐのが面倒になったので。
クリックで開閉
ダウンロード
tt-dlp で音声ダウンロードします:
#!/usr/bin/env bash
IFS=$'\n\t'
while : ; do
echo -n '> '
read url
if [ "$url" = "quit" ] ; then
break;
fi
yt-dlp \
-f 'ba' -x --audio-format mp3 "$url" \
--embed-thumbnail \
> /dev/null 2>&1 &
done
echo downloading..
wait
id3tag
でアーティストとアルバムを設定します:
#!/usr/bin/env bash
id3tag --artist=yt --album=yt *.mp3
iPhone で再生
iTunes でプレイバックを記録するように設定します:
この画像は何だろう。サムネイルをつけ忘れた時は、 iTunes が謎の画像を自動設定してくれます。
最後に mac と iphone の音声データを Finder から同期します。設定すれば Wifi で繋がるようになるので簡単です:
これで iPhone の Music から Youtube 音声を気軽に聴くことができるようになりました。再生位置も保存されます。
2. 仕事よりブログが大事、ブログは自分の子供 | fukabori.fm
噂の fukabori.fm を聴いてみました。 1.25 倍速
ブログはいいぞ、という話しか覚えていません……。それが面白い部分だからいいんでしょうか。継続的に技術ブログを更新/購読できたら、作者も読者も一定以上のレベルに到達できそうだと思いました。
僕もブログを読むのは好きです。技術ブログは煩雑な内容になりがちなので、一度 Zenn スクラップに流しておいて、一番面白いところだけブログで組み立て直したら良いと思います。ちゃんとブログを作ろうかな。
Zig Roadmap 2023 - Andrew Kelly
本当に内容を覚えていないのですが、コントリビュータの紹介でスターを迎えるように拍手が鳴るのが良かったです。成功しそうな雰囲気があります。
Interview with Carter Anderson (Bevy) | Rust Game Dev
Bevy Engine と言えば、魔法的に綺麗な API と強力な拡張性が特徴的です。
Bevy の Entity-Component-System は、ある面で最も進んだ実装です。 Bevy ECS のストレージ種別は archetype と sparse set の良いとこ取りです。 API は、 Rust の型システムの上で、時にハックを使いながら上手に作っています。
アクティブな Bevy ユーザは、 Bevy プラグインのコードを読み前から把握しています。たとえば 2D グラフィクスを強化するライブラリなら、 extract / queue フェーズを追加するものだと予想できます。バージョンアップの度に次々と API /実装が良くなっていくことも感じられるでしょう。
Bevy の作者が Godot のファンなのは有名な話です。 Devlog が Youtube に上がっていたりします。いよいよシーン管理やエディタの実装も進んでいくはずですし、情報量たっぷりなブログを含めて今後が楽しみです。僕としては、今後も Bevy の更新をパク……ダイレクトに取り込んで自分のフレームワークを育てることになると思います。
iPhone ローカル音源プレイヤー探し (惨敗)
標準アプリはダメなのですよね:
要項 | Music | (Audio) Books |
---|---|---|
ファイル毎に再生位置を記憶する | [x] | [ ] |
再生速度を変更する | [ ] | [x] |
バックグラウンド再生ができる | [x] | [x] |
AppStore 流浪の旅が始まりました。しかし GUI アプリの発掘は徒労に終わることが約束されています! やはりパソコンしかない……。
cmus
は再生位置を保存してくれないはずなので、別の CLI 音楽プレイヤーを探してみます。
373 仲間を増やすにはまず進んで与えよ、という話 | ドングリFM
耳が痛い!
僕はドキュメント性でツールを選んで来ました。コンテンツ性で人が選ばれるという面も大いに感じます。面白くてためになる文章を発信できる人なら、腕に間違いなく、今後も益をもたらすでしょうね。
取り急ぎ、ブログやスクラップをまともなコンテンツにしていきたい所ですが……
ebook の読み上げ
ネタ切れです。もう Lex Fridman くらいしかアテがありません。でも長くて途中で飽きちゃうのですよね。
一旦 ebook の読み上げに逃げて『積み本消化』に移行します。