@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Duolingo 再開

イタリア語を始めた。いま一番ファンなプロ自転車選手がイタリア人なので。秋冬の興行イベントでもし来日して生で見るチャンスがあれば、イタリア語で声援の一つも送りたい。的な理由。まあ来ないだろうし、そのワンチャンスのためにイタリア語を学ぶ必要はない、もしくは不足だけど。

前回は「読めない文字を読めるようになれたらいいな」と思って韓国語をやってみたが、そんな動機では言語を学ぶには弱く、三ヶ月ほどでやめてしまった(ビズメイツを始めたタイミングで、時間配分をし直した。Bizmates の有料会員になった - @kyanny's blog

#crystallang

前々から気になっていた The Crystal Programming Language を細々と試してみている。

やはり静的型付けのコンパイル型言語を一つくらいはしっかり使えるようになりたい、しかし Rust はやはりだいぶ難しそうだし、書き慣れてる Ruby に型*1とコンパイラがあったらなあ・・と、それ Crystal じゃん、と思って、ダメもとで気軽に試してみようと意を決して(?)やり始めてみた。

チュートリアルとかで文法を学んでも実際に使う(その言語で何かしらプログラムを書く)機会が継続的にないと身につかない。しかし syntax にもライブラリにも無知で不慣れな言語を日々の雑多な仕事を片付けるために使うのは結構厳しい(yak shaving が過ぎるし、一定の時間内に仕事を片付けられるものの完成に至らないこともしばしば)。なので syntax については Ruby にそっくり*2ならそこのオーバーヘッドを無視できるから学習曲線をなだらかにできるのでは?という目論み。

brew install crystal したら python をインストールしているのに気づいたので何事かと思ったら、crystal が依存している llvm の依存のようだった。

dependency management - Easy way to have Homebrew list all package dependencies - Stack Overflow

❯ brew deps --tree --installed crystal
crystal
├── bdw-gc
├── gmp
├── libevent
│   └── openssl@1.1
│       └── ca-certificates
├── libyaml
├── llvm
│   └── python@3.10
│       ├── gdbm
│       ├── mpdecimal
│       ├── openssl@1.1
│       │   └── ca-certificates
│       ├── readline
│       ├── sqlite
│       │   └── readline
│       └── xz
├── openssl@1.1
│   └── ca-certificates
├── pcre
└── pkg-config

*1:Ruby3 から型書けるようになったけども

*2:に、現時点ではまだ見えている

Bizmates Program: Level 3 Rank B Lesson 16: Finalizing your decision

よく喋る女性トレーナーと。今日はスモールトークのネタになるような話題も特にない日だったので、仕事のチームミーティングであった雑談の個人的に面白いと思ったやつ(fish is meat / Japanese eat fish in breakfast)を長々と話した。正直相手は何の話かよくわからなかったと思うし全く面白くもなかったと思うが辛抱強く聞いてくれた。彼女は「他の生徒とも食べ物の話をして〜(痛風の話だったらしい)」というとき another client と言っていて、やはりまだあんまオンライン英語講師業に慣れてない感じが伺えた(ビズメイツは「trainer を teacher ではなく business partner と思ってください」と言っている、のであれ?むしろ student より client であってるのか?わかんなくなってきた)

Lesson 16 の冒頭から。MyStage 若干ネットワーク状況がよくないのか、ずっとネット回線が不安定ですと出てていつ切れるか心配だったけど切れなかった。ダイアログ読み上げの半分くらい、相手のターンで読み始めるのに数秒のラグがあって回線遅延っぽかった。しかしすぐに戻ってほぼ違和感ないリアルタイム会話が成り立った。Biz Tips とかも含めての話では、unlearn が大事だという話を彼女がしていて、なるほど確かになと思った。

Try の途中で彼女がしゃっくりをし始めたりして、どうぞ水飲んでと言ったら水筒がもう空で、残り3分弱で「(下の階に)汲みに行っていいですよ」とはとっさには言えなかった。このレッスンの Try は予習でも割と手応えがあったのでスムーズに説明できて、「私このレッスンでそこまで考えて言及した生徒あなたが初めてよ」と言われた。

Lesson 16 の Try まで終わり、次は Act から。明日はミスター流暢を予約した。

  • goat
  • gout
  • Price of the rent, location
  • transportation
  • environment and safety
  • ease of access to ...
  • infrastructure
  • facilities
  • filing /fay-ling/
  • I need to consider whether or not I'm being impulsive with filing the complaint.
  • hiccups
  • it might hurt my credibility and chances for better opportunities
  • Bizmates Program: Level 3 Rank B Lesson 16: Finalizing your decision Act PArt

Re: I'm as shocked as you, but the Darklang backend rewrite is actually complete

blog.darklang.com

Dark という「専用プログラミング言語で書く必要があるが秒でデプロイできる Heroku」みたいなプラットフォーム*1のバックエンドを Ocaml から F# で全部書き直した話。

リライトの主たる理由は「Ocaml ライブラリ少なすぎて自分たちで書くのに疲れた」的なあれっぽいが、では F# はライブラリいっぱいあるのか?(.NET ファミリーだからいっぱいあるのかも?)など動機はピンとこなかった。Rust ならまだわかるが。

2020年の8月から2022年の6月まで2年弱を要した。記事には月単位の進捗が記録されていて、途中「投資家にメールした」とか「新バージョンのロールアウトが失敗して切り戻した」とか内容が生々しい。

開発者の Paul Biggar は CircleCI の創業者で、Dark をローンチしたとき面白いことをやってるなと思って少し触ってみたが、オールドタイプな脳ではうまく使いこなせなかった。用途も特に思いつかなかった。

これはこれとして、Dark のコンセプトが面白いと思うのは、DevOps エンタープライズ市場のプレイヤーをラディカルな方法でディスラプトしようとしているように感じられるからだ。

What is Dark?

Dark is a new way of building serverless backends. Just code your backend, with no infra, framework or deployment nightmares.

クラウド時代になって自らハードウェアを管理する必要はなくなり、DevOps ツールによって仮想化されたサーバーインフラの管理も容易になってきたが、アプリケーションのデプロイはまだバックエンドの難しさの大きな部分を占めている。モダンな DevOps ツールは高度すぎてむしろある面では昔のやり方よりも扱いが難しくなっているとも思う*2

もちろんベンダー各社そこの難しさはわかっていて色々やっているが、「デプロイそのものを無くそう」という発想まで進歩したものはあまりないように思う。FaaS にせよ Edge Functions みたいなのにせよ、なんだかんだ「コードをプロダクションにデプロイ(配置)する」というステップは明確にある。Dark はそれを無くそうとしている、ように見える。見えた。

Dark の Web IDE 的なものを2年前に少し触ってみた感想としては、テキストエディタや IDE でコードを書くプログラミングよりも Scratch (プログラミング言語) - Wikipedia とかに似ている、という印象だった。キャンバス上にプログラムの部品となるブロック・コンポーネントを配置していって、コンポーネントに対して処理内容をちょろちょろっと書いて線でつなげたりしてアプリケーションを「組み立てて」いく感じ。

あの手のユーザーインターフェースはプログラミングっぽいことをやるコンソールゲーム(カルネージハート)でも踏襲されていて、あのゲームはプログラミング(コーディング)をしたことがない大勢のゲーマーに実質すごいプログラムをたくさん作らせたと思う。ニンテンドースイッチのプログラミングのゲームソフトの方がなおそうかもしれない。

などと考えると、HTML タグを「手打ち」していたインターネット老人会な人々は眉をひそめそうだけど、案外ああいうインターフェースの方が大勢の人々にとってはとっつきやすくて使いやすいのかもしれず、となると Dark にも明るい未来が待っている・・・かどうかは知らないが頑張ってほしい。

*1:だったと思う、たしか

*2:Kubernetes のコントロールプレーンがクラッシュしたとき自力で直せる人だけが石を投げなさい

iOS 15 の集中モード

iPhone、iPad、iPod touch で集中モードを使う - Apple サポート (日本)

スマートアクティベーションという、AI™️が適切なタイミングで集中モードを自動的に有効化してくれる機能があるが、これをオンにしてみたところ日中ずっと「パーソナル」集中モードが有効になりっぱなしで、通知に煩わされないのはいいのだけど、これ「モード」である必要ある?と思った。通知をオフにするのとは違うので、まあ集中モードが無用とは言わないが、逆にいつなら集中モードをオフにしていいんだ?