tokuhirom's blog
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が変えた世界 (岩波科学ライブラリー)
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 をクリアした
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)
Rust から NSLog を呼びたい
Mac OS においてデバッグするときには、NSLog を呼ばないととにかくやりづらい、というときがあります(InputMethodKit を使った開発をするときなどが特にそうです)。 そんなときには
2023-02-04(Sat)
オープンなかな漢字変換エンジン 0.2 リリースのお知らせ
オープンなかな漢字変換エンジンを開発しているということを先日お知らせしました。 そのあと、順調に開発が推移しまして、いい感じにいろいろな機能が盛り込まれました。日本のOSSでは29日に定期リリース
2023-01-29(Sun)
Rust で整数を漢数字に変換したいよー
こんな感じで実装できる。真面目にやればもうちょいちゃんと書けるけどこんな感じで。。 ```rust use std::cmp::min; const NUMS: [&str; 10] = ["",
2023-01-27(Fri)
最近またLinux用の日本語IMEを作っている
**本件は mozc の ut がどうこうとかは関係なくて、ふと linux desktop を使おうと昨年末に思いまして、昨年末からちまちまやってます** かな漢字変換って作るの難しいのかなぁ
2023-01-16(Mon)
lindera-cli を試す
Rust で書かれた形態素解析機の lindera には CLI もある。 ```shell cargo install lindera-cli --features ipadic ``` のよう
2023-01-09(Mon)
cargo test で fork させたい
cargo test はプロセスを共有する。これではテストをしづらいケースがある。例えば C のライブラリのラッパーなどの場合、初期化関数を何回も呼んではいけないケースがある。 rusty-fo
2023-01-05(Thu)
rust の split_once が便利だった。
最近、趣味で僕が書いてるプログラムでは split を 2 こまでしたいというケースが多くて、以下のように書いていた。 ```rust fn main() { let s = "foo ba
2022-12-30(Fri)
Rust の FFI で C の callback に closure を渡したい
↑の記事で丁寧に解説されているので、読むと良い。 ポイントとしては、rust は `extern "C"` された静的な関数しか FFI 対象に渡すことができないということ。そして、closur
2022-12-26(Mon)
rust で `*mut u8` から `&[u8]` を求める
FFI などで `*mut u8` な pointer と `i32` な size が得られたときに、そこから `&[u8]` というスライスにしないと rust 側では扱いづらい。 そういう場合に
2022-12-25(Sun)
jumpapp を i3 に適用して一発でアプリにフォーカスをあてる on Linux
[jumpapp]( というコマンドがある。これを使うと該当のウィンドウが起動していなければ起動し、起動していればフォアグラウンドにもってくることができる。 僕の場合は i3wm を使っているので、
2022-12-23(Fri)
linux desktop で slack app がうまくログインできないときは frantz をためそう
linux desktop で slack app を使おうとしてもログイン後に browser から戻ってくるところでなんかうまくいかなくてログインできないことがある。 そういう場合は、Frantz
2022-12-22(Thu)
ライフゲエムを実装した
2022-12-22(Thu)
arch linux で使うのに最適な twitter クライアントを探す
最近色々ある twitter ですが、なんだかんだ twitter クライアントを起動しておきたいなと思っている今日この頃なので、、 最初は CawBird を使っていたが、vim keybind
2022-12-22(Thu)
Obsidian を linux で使うとウィンドウに枠がつかないとき(i3 などの場合)
2022-12-22(Thu)
i3wm でスクショを取る設定
を参考に設定。 PrtScn で選択した領域をスクショできるだけでまぁいいかなという気がしたので以下の設定だけ入れました。 ``` bindsym Print exec --no-startu
2022-12-21(Wed)
xremap を使い始めた
2022-12-21(Wed)
archlinux で fcitx5 で特定のアプリ(chromeなど)で日本語入力できないとき
``` pacman -S fcitx5-im ``` とする。fcitx5-gtk や fcitx5-qt などがインストールされて問題が解決する。
2022-12-19(Mon)
arch linux を入れる 2022年版
久々に arch linux を使おうかな、と思いまして。なんかもうプライベートで使うマシン、mac じゃなくていいなーって気分が高まりすぎてる。 archlinux の利点は、pacman で管理で
2022-12-19(Mon)
Mount & Blade Ⅱ Bannerlord のキャンペーンをクリアした
シミュレーションゲーム。アクション要素もあるが、途中からめんどくさくてほぼアクションパート飛ばしていた。 序盤は盗賊を狩って、あとは鍛冶で金を稼いで、という感じ。 序盤に鍛冶が得意な人と医学が得意な
2022-12-13(Tue)
Ultimate hacking keyboard を買った。これは Ultimate かも?
2022-12-12(Mon)
kotlin 1.7.21 にアップグレードしようとしたら謎エラーになるケースの対応方法
kotlin 1.7.10 から 1.7.21 にアップグレードしようとしたら以下の謎エラーが出る怪奇現象が発生していた。 ``` e: java.lang.NoSuchMethodError:
2022-11-29(Tue)
Boot 3 というか micrometer の新しいやつが Exemplar 使えてめっちゃ良さそう。
tracing(zipkin とか) を使っていても、トラブルシューティングのタイミングで開くのって億劫で、なかなか開くことがなかった。 が、micrometer Observaiton を使うと
2022-11-29(Tue)
kweb の router では KVar を意識しよう
kweb の router においては、 ```kotlin path("/entry/{id}") {params -> val id = params["id"]!!.value
2022-11-24(Thu)
冒険ダンジョン村2
Android でプレイしました。 2週間ぐらいかけて75年目ぐらいまでやって、全村星5、周辺地域住民コンプ、街ガイド検定コンプまでやった。 ちまちま動くのが可愛いというカイロソフトの安定感があるゲ
2022-11-21(Mon)
kweb でファイルアップロードをハンドリングしたい
kweb を使ってインタラクティブなサイトを作っているときに、ファイルをアップロードする機能が欲しくなることがある。 そういう場合は KwebPlugin を継承して実装すればよい。appServer
2022-11-18(Fri)
Rogue with dead というゲームをクリアした
2022-11-16(Wed)
Kotlin でかんたんにインタラクティブなウェブアプリを書ける kweb とは結局なんなのか?
一般的なウェブアプリというのは、クライアントサイドを JS で書いて、サーバーサイドを kotlin 等の別の言語で書く、といったアプローチが一般的です。 このアプローチになるのは、基本的にクライアン
2022-11-15(Tue)
kweb で再利用可能なコンポーネントを使いたいばあいは kweb.state.Component を実装する
kweb でサイトを作っている場合、複数画面で再利用可能なパーツが出来上がる時がある。そういう場合は、kweb.state.Component を継承させれば良い。 このブログで使っている編集
2022-11-12(Sat)
selenium で処理を待つときは WebDriverWait を使う
kweb のテストケースが Awaitility 使ってたのでそれをそれを参考にテストを書いていたのだが問題が発生した。 ```kotlin driver.get("
2022-11-12(Sat)
blog の管理画面を kweb で作り直した
作り直したので、k8s にデプロイするところまで完了。 もともと、/ 以下に読者が読むページ、 /admin/ 以下に 管理画面という構成の一つのサービスだったのだが、kweb で管理画面を作ろうと
2022-11-11(Fri)
Integrate kweb and spring-boot
kweb provides the document to integrate spring-boot. But in my opinion, it's bit complex and trick
2022-11-09(Wed)
Blog を SSL にした
let's encrypt で certbot で複数ドメインでやるのめんどくさくて だけ TLS 対応しているという状況を長らく続けていたのだが、k8s 化するついでに対応。 を参考
2022-11-07(Mon)
blog に syntax highlight 機能をつけた
prism.js がナウいのかどうかはよくわからないけれど、とりあえず入れた。markdown のレンダリングに使っている flexmark が prism.js で使うように languag
2022-11-03(Thu)
Prev
Next