tokuhirom's blog
  • The endpoint を組み立てた
    最近は keyball44 を利用しているわけだが、親指周りにキーがもっと多かったら便利なのかなぁと思い、YMGWorks さんの The endpoint を booth で購入し、試してみた。
    2024-05-13(Mon)
  • Keyball44 に横スクロール用のボタンを設置すると便利
    こんなパッチをファームウェアに当てた。 完全に自分用なので雑。 Special Key Code の 16 を押下している間だけ、スクロールモードに入ると同時に HORIZONTAL
    2024-04-18(Thu)
  • reactor-netty の Connection prematurely closed BEFORE response
    公式ドキュメントにトラブルシューティングの方法がまとまっている。
    2024-03-25(Mon)
  • HTML の pre を折り返したい
    HTML の pre 要素を利用して表示させているときに、通常は長い行があっても折り返されない。 折り返したい場合は以下のようにする。 ```css .wrap { white-spa
    2024-03-22(Fri)
  • gradle の detekt と detektMain の違い
    gradle の detekt と detektMain の違い
    2024-03-18(Mon)
  • rustmigemo と surrogate pair と
    rustmigemo という、migemo を rust で実現できる便利な crate がある。 これを利用しようとしたところ、入力文字列として "h" とか "s" を入れたときに、panic
    2024-03-11(Mon)
  • Codemirror6 で @codemirror/lang-legacy-modes と @codemirror/lang-markdown を組み合わせる
    Codemirror6 では、一部のメジャーなプログラミング言語はサポートされているが、5時代にはサポートされていたのに6ではサポートされていないプログラミング言語も多い。 そういったプログ
    2024-02-29(Thu)
  • tauri 2.0.0 beta1 に移行した
    tauri 2.0.0 beta1 が出た。今後は大きい breaking changes はなさそうってことなので、移行してみる。 趣味で作ってるメモアプリを tauri 2.0.0 beta1
    2024-02-06(Tue)
  • heapdive 0.1.0を出した
    CI がコケてる事に気づいたので諸々修正した。 - Java 21, 17 でCIするようにした - Java 21 でビルド出来ない問題を修正した。 - その他、依存関係のアップデ
    2024-02-01(Thu)
  • MeetNote2 - Zoom を録音して文字起こしして要約する Mac 用のアプリを作ってみた
    MeetNote2 - Zoom を録音して文字起こしして要約する Mac 用のアプリを作ってみた
    2024-01-31(Wed)
  • enter キーで submit させつつ、IME の確定では submit させない方法
    oninput を使うのが良さそう? ```svelte <script lang="ts"> import {emit} from "@tauri-apps/api/event
    2024-01-25(Thu)
  • Rust で Mac の API を直接触るアプリを作る場合は apple-sys を使うのが良いかも
    Rust で Mac のアプリを作りたい場合、Mac OS の API を直接触りたくなることが多々ある。 いや、僕が書きたいアプリがそういうアプリばかりだというだけかもしれないというか、完
    2024-01-17(Wed)
  • KeyScripten.app:マクロの未来を切り開くプログラマブルキーボードシステム
    KeyScripten.app:マクロの未来を切り開くプログラマブルキーボードシステム
    2024-01-15(Mon)
  • Keyballを中心に自作キーボードを3個作った話
    Keyballを中心に自作キーボードを3個作った話
    2024-01-10(Wed)
  • boa が面白い
    boa は pure rust で書かれた JS Interperter である。組み込みがとにかく容易で依存もないので、プログラミング言語を rust に組み込む場合には、第一の選択肢になり
    2024-01-05(Fri)
  • tauri で system tray アプリなどで、ウィンドウを閉じたら終了されてしまうとき
    tauri で system tray app を作っていて、設定画面を作った。設定画面を閉じたらアプリが終了する怪現象が発生した。 SystemTray周りのドキュメントを読んだら、普
    2024-01-03(Wed)
  • QMK firmware の開発メモ
    ## QMKファームウェアを開発するには、どうするべきか `brew install qmk/qmk/qmk` とすると、qmk がインストールできる。これは、めちゃくちゃ時間かかる 。数時間
    2023-12-25(Mon)
  • QMK で増井さんの Dynamic Macro を実装してみた
    Keyboard のファームウェアとして、QMK が有名なわけだけど、その上で増井さんの Dynamic Macro を実装してみた。1ファイルのCライブラリとして実装してるので、自分のファー
    2023-12-25(Mon)
  • screencapturekit-rs がpanic!するのを直した
    何故か panic! していたところがあったので、ちゃんと Result を返すように修正した。
    2023-12-14(Thu)
  • screencapturekit-rs に音声キャプチャ機能をつけた話
    pull-request を出しただけで、まだマージされてないんだけど。 最近のMacでは、ScreenCaptureKit というのがあって、任意のウィンドウの画面をキャプチャしたり、音声
    2023-12-08(Fri)
  • Java 21 からは `new URL(String)` は deprecated
    今後は `URI.toURL` を利用せよとのこと。
    2023-11-30(Thu)
  • Kotlin で GUI アプリを作るならやっぱり jetpack compose for desktop
    Kotlin で GUI アプリを作るならやっぱり jetpack compose for desktop
    2023-11-29(Wed)
  • Kotlin で Mac の window list を得る
    方法を探したが、結局 ProcessBuilder プロセスで AppleScript を実行するのが正攻法っぽい。 ```kotlin import java.io.BufferedRead
    2023-11-24(Fri)
  • Kotlin multiplatform で生成するコードでは、application block にすべてのコードが入っているので注意。
    Jetpack compose for desktop でアプリケーションを書く場合、 で最初のコードを生成すると思うのだが、こいつが生成するコードには少し癖がある。 ```kotlin f
    2023-11-24(Fri)
  • Jetpack Compose for Desktop で Caused by: java.lang.ClassNotFoundException: javax.naming.NamingException って言われるとき
    アプリが完成したなぁ、とおもっていざ `./gradlew packageDmg` したとき。 ``` Caused by: java.lang.ClassNotFoundException:
    2023-11-22(Wed)
  • Kotlin で数字を3桁区切りで区切ってコンマを入れる
    整数値を3桁区切りでコンマを入れるためには、NumberFormatクラスを使用することができます。以下は、Kotlinでの例です。 ```kotlin import java.text.Nu
    2023-11-07(Tue)
  • ローラーマウスモバイルの COPY/PASTEをリマップする
    [ローラーマウスモバイル]のCOPY/PASTEボタン、COPY/PASTE に使いたい感じは全くしないので、[Karabiner Elements]でリマップする。 ~/.config/kar
    2023-11-06(Mon)
  • Hello, world レベルの JVM を作った
    Java エンジニアなら JVM を実装してみたほうがいいなぁ、ということで簡単に。 * Class file の仕様を呼んで `data class` に詰め込んでいく。 * 実行してく
    2023-10-18(Wed)
  • libs.versions.toml に記載されているが利用されていないバージョン番号を探す
    長年システムを運用していると、`libs.versions.toml` に記載があるが存在しないシステムが発生することがある。これを検出したい。 ```python import toml
    2023-10-16(Mon)
  • ナベアツは数字がでかくなるほどアホになる割合がアップする
     ナベアツは数字がでかくなるほどアホになる割合がアップする
    2023-10-11(Wed)
  • 2つのディレクトリの jar ファイルを比較するスクリプト
    ChatGPT、こういうのの生成はやたら得意なので、ChatGPT で生成した。 こういう単純なスクリプトは手で書くより早いよねぇ。 ```python import os import
    2023-10-10(Tue)
  • Pebble という Java のテンプレートエンジンが Jinja2 みたいで良い
    最近、コードをテンプレートで生成するのに mustache を使っていたのだが、表現力がしょぼすぎて辛かったので pebble にしてみた。Jinja2 みたいな感じで使いやすい。 mu
    2023-10-04(Wed)
  • StarField 一周目クリア
    Bethesdaゲームを順当に宇宙に移したな〜という感想。 いつも通りシステムに対する説明がたりてなかったりするけど十分面白い。
    2023-09-21(Thu)
  • gradle が遅いなと思ったら gradle-profiler を使おう
    gradle が遅いなと思ったら gradle-profiler を使おう
    2023-09-18(Mon)
  • let's plot kotlin で X 軸を YearMonth にしたときにソートされないよって場合
    epoch millis にして `scaleXDateTime` するのが良さそう
    2023-09-14(Thu)
  • JDK の JIT の様子を眺める方法 6選
    JDK の JIT の様子を眺める方法について考える。 実際には **現代のサーバーサイドエンジニアリングでは JDK の JIT がパフォーマンスイシューの原因になっているケースは極めて少ない
    2023-09-14(Thu)
  • 自作ブログの構成更新
    k8s を趣味でも使うか、、と思ってこのブログでも DigitalOcean の k8s を使うようにしてみたのだが、DigitalOcean への月々の支払いが $100/mo とかになってきて、さ
    2023-08-17(Thu)
  • Remnant 2 クリア
    Remnant 2 をクリア。難易度はサバイバー。サバイバーでも十分すぎるぐらいに難しい。特にボス。ラスボスとラビリンスがキツかった。。 ソウル系のTPSというやつ。 かなりゲームバランス良く
    2023-08-17(Thu)
  • kravis をやめて letsPlot に移行した
    どちらも ggplot2 を意識したインターフェース。 というか kravis は ggplot2 の wrapper なので、ggplot2 の実装をそのまま使えて便利っちゃ便利。 一方で、
    2023-08-02(Wed)
  • Spring の @Scheduled は 1つのスレッドで動く。
    Spring の @Scheduled はデフォルトでは1つのスレッドで動くので、必要ならば `spring.task.scheduling.pool.size` を設定してプールサイズを
    2023-07-31(Mon)
  • fsmonitor のソケットが原因で generateGitProperties がエラーになる
    ``` > java.io.IOException: Cannot snapshot .git/fsmonitor--daemon.ipc: not a regular file ```
    2023-07-26(Wed)
  • SparkSQL で暗黙の型変換を抑制する
    automatic type coercing が起きると期待しない結果になることがある。 ``` select if('-999999999999' < 0, true, false) as
    2023-07-14(Fri)
  • 大規模言語モデルは新たな知能か――ChatGPTが変えた世界 (岩波科学ライブラリー)
    大規模言語モデルは新たな知能か――ChatGPTが変えた世界 (岩波科学ライブラリー)
    2023-06-27(Tue)
  • OkHttp3 では GET request に content-body が送れない
    elasticsearch/opensearch 等では GET request に content-body をつける必要があるが、OkHttp3 では対応していない。強い気持ちがあるようだ
    2023-06-19(Mon)
  • diablo4 のストーリーをやった
    ネクロマンサーでレベル50まで。 tier1でやった。 楽しかった。エクスプロージョンが使いこなせると楽しくなったかなー。
    2023-06-16(Fri)
  • Java の ByteBuffer の endian は big endian がデフォルト
    一般的なプログラミング言語に慣れていると「普通に考えたらデフォルトは machine native だろ」って考えがちだけど、Java の Byte buffer は big endian がデフォル
    2023-06-15(Thu)
  • Exposed を試した
    普段は mybatis を使うことが多いのだが、Prototyping する機会があり、たまには Exposed など使ってみることにした。 Exposed は JetBrains 製なので kot
    2023-06-05(Mon)
  • 自分の Blog admin site を書き直した
    Kweb がどうも日本語入力がうまくいかなくなったので諦めて普通の Ktor ウェブアプリに戻した。 機能的にはほぼ同じだがシンプルになった。Kweb で少しシンプルに書けるかなーと思ったのだが、そ
    2023-06-05(Mon)
  • magic research をクリアした
    magic research をクリアした
    2023-06-02(Fri)
  • blog を更新しようとしたら、落ちた。
    なんか知らんけど、 blog を更新しようとしたら落ちた。 kweb が kotlin-logging の 4 beta に依存してて、 class not found な状態に。悲しい。 しょうが
    2023-06-02(Fri)
  • Marvel's Spider-Man: Miles Morales
    PS5でクリア。 正当な拡張コンテンツという感じ。Spider man 2 も発売決定してるのでそれも楽しみですね。
    2023-06-02(Fri)
  • Watchdogs 1/2 クリア
    Watchdogs LEGION をクリアしてから youtube のレビューなどを見たところ、以下のような意見が散見された。 * ロンドンは道が狭いからカーチェイスが楽しくない * ストーリーが薄
    2023-06-01(Thu)
  • Watchdogs Legion クリア
    寄り道しながら27時間ぐらいでクリア。 - 街中の人を採用できるというのが斬新だが、キャラに思い入れしにくいというのは本当にそう。 - 今後の AI 技術の発達によって、音声合成・会話合成がより進
    2023-05-01(Mon)
  • krangl が deprecate されていた
    kotlin の dataframe 的なライブラリである [krangl]( が deprecate されていた。 [kotlinx.dataframe]( が後継なので、これを利用するようにする
    2023-04-12(Wed)
  • BioHazard RE:4 クリア
    神ゲーだと思う。Atomic Heart でがっかりした直後だから余計にそう思うのかも。。 STANDARD 28.2時間 で B。Window gaming PC で Steam 版をクリア。弾がな
    2023-04-06(Thu)
  • freemarker の js_string の歴史
    freemarker の js_string がどのような変遷をたどってきたのかをまとめてみた。 ## 2.3 Date of release: 2004-June-15 > New bui
    2023-04-06(Thu)
  • Java 9 以後での InputStream を String にするやり方
    commons-io で `IOUtils.toString(inputStream, StandardCharsets.UTF_8)` としているケースは、Java 9 以後なら `new Stri
    2023-04-05(Wed)
  • OpenAPI の enum を使いこなす
    openapi-generator で enum を制御するにはこのへんを参照。 `x-enum-varnames`: 変数名 `x-enum-descriptions`: descriptio
    2023-04-03(Mon)
  • openapi-generator の custom generator を gradle plugin から使う
    openapi-generator は ServiceLoader で generator を探すので、CLASSPATH に custom generator を突っ込むことができれば良いです。
    2023-03-29(Wed)
  • openapi-geneartor の java generator で NantokaAllOf.java が大量にできる件
    AbstractJavaCodeGen あたりを継承して以下のようにメソッドを上書きすれば抑制できる。 ```java @Override public boolean getUse
    2023-03-28(Tue)
Prev
Next
© tokuhirom