ときに、 巨大になる可能性のある文字列とか画像(バイナリデータ)を返したいなどの理由により、 関数が返す値として InputStream を使いたくなることがある。
そんなときは PipedInputStream と PipedOutputStream を使えば解決できるのだが、 そのとき PipedInputStream を読む処理と PipedOutputStream を書く処理は 別々のスレッドでなければいけない、という制約がある。
Javaなら普通に Thread をつくって対処してもよいのであろうが、 Kotlinには Coroutines があるので、それを使って解決する方法を調べた。
» Read Moreスクリプトとして Kotlin を使うエントリーは何回か書いたのですが、 現時点での最新の v1.9.22 であらためて使い方を復習します。
コマンドラインで Kotlin を使う方法は ここ https://kotlinlang.org/docs/command-line.html に書いてあります。
» Read MoreAndroid Studio を起動するのが億劫なので、 コマンドラインだけで開発できる環境をつくろうとしている。 そこで避けて通れないのがテスト環境。
Robolectric で SQLiteOpenHelper のテスト方法 を書き残します。
» Read Moreなんとなく避けてきた Termux を試した。 簡単に導入できた。
まず emacs での執筆環境を整えようとしたが、 いきなり Caps Lock を Ctrl にする方法がわからなくてあきらめそうになった。 もう物理的にはじめから Ctrl キーが正しい位置( A キーの隣り)にある HHKB を買うべきなのかとも考えはじめた。 しかし、結論としては Galaxy Tab S8+ Book Cover Keyboard は、 普通に Android の設定から Caps Lock を Ctrl に変更することができた。 (そのほかのいくつかのキーも設定変更できるようだが、詳しくは見ていない。)
» Read More無印のスタッキングシェルフ の内側にラブリコを使って柱をたて そこに付属のVESAマウント用のプレートを設置し、ASUS Mini PC(PN42) を設置した。
» Read More少し前に 特定のディレクトリ以下全部のファイルとディレクトリをリストにするというエントリーを書いたのですが、 その応用です。
» Read Moreいままで Spring Boot 経由で H2 Database Engine を使って個人的なメモを保存してきたが、 データベース部分だけを切り離して別モジュールにできないか、と考え始めた。 コネクションプールは Spring Boot の内部でも使用されているらしい HikariCP を使う。 おいおい FTS の機能も使ってみたいので、 データベースは SQLite を選択する。
» Read More今回は emacs keybindings などを実現するための下準備として キーボードショートカットへの対応方法を調べます。
たとえば、 Ctrl + S したら検索(または保存処理)を実行、などという 機能を実現するために、そのキーイベントに反応させるには どうしたらいいかを調べます。
» Read More前回 Markdown Preview を追加したときに、bold や italic の マークアップは問題なくレンダリングできたのですが、 たとえば、リストアイテムのマークアップを入れると 意図通り作動しなくなっていました。
この問題を解決します。
» Read More前回 から 引き続き作業していきます。
今回は、Markdown Preview を追加しようと思います。
方針として、現状は Editor での編集結果を textarea へ渡していましたが、 それをやめて、代わりに React の Preview コンポーネントへ渡し Markdown テキストを良い感じにレンダリングさせます。
今回作成する React Preview コンポーネントは、 lexical のエディタ(LexicalComposer)を editable false の状態にして使います。 幸い、lexical は Markdownテキスト のレンダリングに最初から対応しているので、 それを活用します。
» Read More