結論 Use Option as Meta key にチェックを入れる。
» Read More昨日のポスト 2024年改訂版) データ変換を Writer Monad 的に処理する を書いていて気づいたのですが、 パーサーコンビネーターのこれ 改善版2024)kotlin でパーサーコンビネータを実装する 【おまけ】 HtmlBlock の改良 って monad なんじゃないの? monad にすればいいのでは? このパーサーの問題点は HtmlBlock がハードコーディングされていて、差し換えできないこと。 AbstractBlock のような abstract クラスを使うことで差し換え可能にできるのだが、 monad としてこれを実装すれば、もっとシンプルに HtmlBlock 部分の差し換えが実現できる気がしてきた。
ただ、monad となると モナド則 を満たしてないとモナドじゃない、とかの話もあるので、 ここではあくまで、モナド的に実装したら、その問題が解決しました、といったレベルの話です。
» Read Moreデータ変換を Writer Monad 的に処理する その1というポストを一年くらい前に書いたのだが、 今時点で最新の kotlin で作動させようとしたところ、 このコードが作動しなくなっていた。
» Read MoreKotlin で Maybe その3をベースにさらに修正した。 Maybe を monad にする覚え書き。
» Read Morebox.com の個人アカウントで OAuth2 を使って、ファイルをアップロードして新規作成/更新/ファイルリストの取得を試した。 言語は Node.js、もう非推奨らしい。(詳細はこちら https://github.com/box/box-node-sdk)
box.com といえば基本企業が対象なのだろう。個人アカウントの場合での情報が見つからず四苦八苦した。 とくに、ネットにある情報をみると「管理者に承認してもらうためにリクエストを出す」というプロセスの説明が出てくるのだが、 個人アカウントの場合、管理者へのリクエストとか出せない。 そして結論としては、そのプロセスは(個人アカウントでは)不要。 自分の個人アカウントで管理しているクラウドファイルストレージにAPIアクセスするのだから、 たしかに承認とかいらない。 個人アカウントと企業アカウントでできることが異なるようなのだが、その違いも良くわからなかった。 個人ユーザーとか端から相手にしていないのだろう。
» Read Moreそもそも OAuth2 で認証する場合は、管理者への承認プロセスとかはもともと不要だった気がする。
自分用のちょっとしたライブラリを local maven に publish しておくと便利。 その方法とそれを使う方法。
» Read More以前に QuickJS を WebAssembly に変換して ブラウザ上で使う というポストを書いたのですが、 その後、もっと良いガイド Running self-hosted QuickJS in a browser があったので、こちらの方法でやり直します。
この方法であれば、 https://github.com/justjake/quickjs-emscripten を使うことで、emcc コマンドが不要。 自分で emscripten をインストールしなくてよいので助かる。
» Read More新しく Chromebook を入手したので、執筆環境を構築中。 ローエンドのマシンですが、出たばかりの機種だからなのか(メモリが DDR5, WiFi 6E をはじめとして...) ものすごくキビキビ動きます。やる気が出る(たぶん)。
» Read Moreorg.json で JSON 操作するコードを書いていたが Kotlin/JS ではこれは使えない。 そのかわりに Serialization JSON を使った。
» Read More以前のメモ
もうこれ何度目?とにかく macbook air m1 に GNU Emacs 28.2 をインストールしたのでメモる。
» Read Moreいつからかファンあたりからカチャカチャという音が出るようになってしまった。 ファンが回っていないときは音が出ないのでファンが原因だと思うのだが。 裏蓋をあけてファンを取り出し、エアダスターを噴射してみる。 そのときは異音は出ないので、ファン以外に原因があるのだろうか?と思ったり。 それでもそうやってファンのホコリを払ってもやはり同じように異音が出る。
ファンが原因かそれ以外か?この状態ではらちがあかない。 交換部品を購入することにした。 幸い Amazon で入手できる。 AliExpress でも取り扱いはある。Amazon の半額程度で入手できるが敷居が高いのであきらめる。 到着まで2週間程度かかったが入手することができた。
しかし、残念ながらはずれを引いてしまったようだ。
» Read Moreこのエントリーは 改善版2024)kotlin でパーサーコンビネータを実装する【追伸】 の続きです。
この方法を使ってパースした場合、 最後にHTMLを出力する段階で HtmlBlock をまとめるコードがあるのですが、 やっていることは同じ種類の HtmlBlock を一つにしているだけです。 しかし、 HtmlBlock を sealed class として用意しているので、それを まとめる だけの操作をするのにもこれだけのコードを書く必要があります。
» Read More