Home About
mac terminal で emacs を使うときに meta-f, meta-b ができない問題の解決

結論 Use Option as Meta key にチェックを入れる。

mac-terminal-use-option-as-meta-key

» Read More
改善版2024)kotlin でパーサーコンビネータを実装する monad的に解決する

昨日のポスト 2024年改訂版) データ変換を Writer Monad 的に処理する を書いていて気づいたのですが、 パーサーコンビネーターのこれ 改善版2024)kotlin でパーサーコンビネータを実装する 【おまけ】 HtmlBlock の改良 って monad なんじゃないの? monad にすればいいのでは? このパーサーの問題点は HtmlBlock がハードコーディングされていて、差し換えできないこと。 AbstractBlock のような abstract クラスを使うことで差し換え可能にできるのだが、 monad としてこれを実装すれば、もっとシンプルに HtmlBlock 部分の差し換えが実現できる気がしてきた。

ただ、monad となると モナド則 を満たしてないとモナドじゃない、とかの話もあるので、 ここではあくまで、モナド的に実装したら、その問題が解決しました、といったレベルの話です。

» Read More
2024年改訂版) データ変換を Writer Monad 的に処理する

データ変換を Writer Monad 的に処理する その1というポストを一年くらい前に書いたのだが、 今時点で最新の kotlin で作動させようとしたところ、 このコードが作動しなくなっていた。

» Read More
Kotlin で Maybe その4

Kotlin で Maybe その3をベースにさらに修正した。 Maybe を monad にする覚え書き。

» Read More
box.com の API を使った(覚え書き)

box.com の個人アカウントで OAuth2 を使って、ファイルをアップロードして新規作成/更新/ファイルリストの取得を試した。 言語は Node.js、もう非推奨らしい。(詳細はこちら https://github.com/box/box-node-sdk

box.com といえば基本企業が対象なのだろう。個人アカウントの場合での情報が見つからず四苦八苦した。 とくに、ネットにある情報をみると「管理者に承認してもらうためにリクエストを出す」というプロセスの説明が出てくるのだが、 個人アカウントの場合、管理者へのリクエストとか出せない。 そして結論としては、そのプロセスは(個人アカウントでは)不要。 自分の個人アカウントで管理しているクラウドファイルストレージにAPIアクセスするのだから、 たしかに承認とかいらない。 個人アカウントと企業アカウントでできることが異なるようなのだが、その違いも良くわからなかった。 個人ユーザーとか端から相手にしていないのだろう。

そもそも OAuth2 で認証する場合は、管理者への承認プロセスとかはもともと不要だった気がする。

» Read More
Gradle を使ってライブラリプロジェクトを作成して local maven に publish、それをアプリケーションプロジェクトで使う(覚え書き)

自分用のちょっとしたライブラリを local maven に publish しておくと便利。 その方法とそれを使う方法。

» Read More
QuickJS を ブラウザ上で使う(その2)

以前に QuickJS を WebAssembly に変換して ブラウザ上で使う というポストを書いたのですが、 その後、もっと良いガイド Running self-hosted QuickJS in a browser があったので、こちらの方法でやり直します。

この方法であれば、 https://github.com/justjake/quickjs-emscripten を使うことで、emcc コマンドが不要。 自分で emscripten をインストールしなくてよいので助かる。

» Read More
Chromebook Linux に emacs をセットアップ migemo インストール

Chromebook

新しく Chromebook を入手したので、執筆環境を構築中。 ローエンドのマシンですが、出たばかりの機種だからなのか(メモリが DDR5, WiFi 6E をはじめとして...) ものすごくキビキビ動きます。やる気が出る(たぶん)。

» Read More
Kotlin multiplatform で Kotlin/JS するときに JSON を扱う

org.json で JSON 操作するコードを書いていたが Kotlin/JS ではこれは使えない。 そのかわりに Serialization JSON を使った。

以前のメモ

» Read More
MacBook Air M1 に Emacs のセットアップ再び(備忘録)

もうこれ何度目?とにかく macbook air m1 に GNU Emacs 28.2 をインストールしたのでメモる。

» Read More
Thinkpad X1 Nano (Gen1)のファンから異音 / BIOS画面に入る方法

いつからかファンあたりからカチャカチャという音が出るようになってしまった。 ファンが回っていないときは音が出ないのでファンが原因だと思うのだが。 裏蓋をあけてファンを取り出し、エアダスターを噴射してみる。 そのときは異音は出ないので、ファン以外に原因があるのだろうか?と思ったり。 それでもそうやってファンのホコリを払ってもやはり同じように異音が出る。

Thinkpad X1 Nano Fan

ファンが原因かそれ以外か?この状態ではらちがあかない。 交換部品を購入することにした。 幸い Amazon で入手できる。 AliExpress でも取り扱いはある。Amazon の半額程度で入手できるが敷居が高いのであきらめる。 到着まで2週間程度かかったが入手することができた。

しかし、残念ながらはずれを引いてしまったようだ。

» Read More
改善版2024)kotlin でパーサーコンビネータを実装する 【おまけ】 HtmlBlock の改良

このエントリーは 改善版2024)kotlin でパーサーコンビネータを実装する【追伸】 の続きです。

この方法を使ってパースした場合、 最後にHTMLを出力する段階で HtmlBlock をまとめるコードがあるのですが、 やっていることは同じ種類の HtmlBlock を一つにしているだけです。 しかし、 HtmlBlock を sealed class として用意しているので、それを まとめる だけの操作をするのにもこれだけのコードを書く必要があります。

» Read More