MagicaVoxelの.voxファイルを読む

https://github.com/ephtracy/voxel-model/blob/master/MagicaVoxel-file-format-vox.txt を参考にしてMagicaVoxelの.vox形式のファイルをスクリプトで読んだ。 少ないバイト数でreadを呼ぶのはシステムコールを多用していて遅そうだったり、PACKというチャ…

手元の自作pythonライブラリを競プロでも活用したいのでツールを作った

概要 競プロなど単一のファイル提出が求められるケースに対応するために、手元の複数ファイルにまたがるpythonコードを組み合わせて単一の提出ファイルを作成するコマンドラインツールsinglueを作成しています。 2022年9月21日時点のバージョン(v0.1.5)での…

pipxでpython3.9依存のツールを利用できるようにした

背景 python3.8がシステムのデフォルトの環境だがpython3.9に依存する自作CLIツール(https://github.com/kawagh/singlue)をグローバルに扱いたかった。 前提の環境 OS $ uname -sv Linux #49~20.04.1-Ubuntu SMP Thu Aug 4 19:15:44 UTC 2022 pipx(https://g…

テストの存在するディレクトリを指定してpytestの実行を速める

多くのファイルを含むディレクトリが存在するとpytestがその中も探していてテストの完了が遅くなっていた。 poetryでプロジェクトを管理しているのでpyproject.tomlに以下のようにテストの存在するパスを明示すると遅くなっていたのが解決した。 [tool.pytes…

vimの選択範囲のテキストを外部コマンドに渡す

選択範囲のテキストをレジスタを経由してvimscriptの変数とし、その変数の出力を一時ファイルにリダイレクトして外部コマンドを実行することで実現できる。 その一例として、VisualモードでDOT言語のコードを選択した状態で以下の関数を呼び出して表現される…

シェルの補完で大文字小文字の区別無く効くようにする

.bashrcに以下の行を追加する。 cat r<Tab>で cat README.mdといった具合に補完されるようになる。 bind 'set completion-ignore-case on'</tab>

Androidアプリ内チュートリアル作成の取り組み

新規でアプリをインストールした際に下のように画面を表示できるようにしたいと思っています。 実装手順 LaunchedEffect()とdelay()でmutableState(チュートリアルを画像の集まりと考えてsceneと呼んでいる)を一定時間おきに進める そのmutableStateを提供す…

mermaid-cliで出力したsvgファイルにテキストが表示されない場合の対応

問題 ローカルにインストールしたmermaid-cliで出力するsvgファイルでテキストが表示されない問題があった。 graph TD; A-->B; B-->C; C-->A; 対応 config.jsonを以下のように作成してそれを引き渡すと解決した。 { "flowchart": { "htmlLabels": false } } …

JetpackComposeで状態変化が画面に反映されない書き方

JetpackComposeに触れる中でViewModelに保持させた状態の変化が画面に即時で反映されない場合があったのでそのコードを記します。 package jp.kawagh.learn_recompose import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableSta…

JetpackComposeでアナログ時計の作成

drawCanvasのシンプルなお題としてアナログ時計の作成に取り組みました。 @Composable fun Clock() { val hour = LocalTime.now().hour val minute = LocalTime.now().minute val shortDegree = minute * 6f val longDegree = (hour % 12 + minute / 60) * 3…

opencvの型スタブファイル(.pyi)を取得する

関数の定義などをエディタが提供する補完で参照しながらコーディングをしていますが、opencvなどの元々pythonで書かれていないライブラリだったりはその情報が得られず苦労していました。 その折に、以下のissueを見つけました。 このissueが紐づくリポジト…

JetpackComposeで上下左右のドラッグ、スワイプ操作の検知

コード(成功例) コード(失敗例) 参考 コード(成功例) 下記コードでドラッグ操作のx軸y軸の距離で大きい方向にテキストを書き換えられます。 @Composable fun Drag() { var state by remember { mutableStateOf("-") } Box( modifier = Modifier .fillMaxSize…

マークダウン試し書き

h1 h2 h3 h1_2 h4 h5 h6 h1 h2 h3 h1_2 h4 h5 h6 - - - - - print("test") チルダ2取り消し線 アスタリスク2強調 引用