Kogin - 津軽こぎん刺しと南部菱刺し用図案描写ソフト

津軽こぎん刺しと南部菱刺し用図案描写専用ソフトです。 https://github.com/hanya/kogin ダウンロードはリリースより https://github.com/hanya/kogin/releases お試し用のウェブ版は以下より https://hanya.github.io/kogin/src/index.html 図案例 Koginで…

○さいたまメーカー

平仮名一文字 + さいたまのような語でゴロのいいものを探す時に。 ○さいたまメーカー

Rust で重み付き抽選

重み付き抽選とは、ゲームのアイテムドロップの判定などに使われる選択手法です。それぞれの選択率がリンゴ (50%)、みかん (20%)、柿 (20%)の場合、この確率に従って乱数で選びます。Rust では rand クレートの WeightedIndex や rand_distr クレートの Weig…

RPi pico ハードウェア

Rpi pico の回路図をみながらパッドに引き出されていないピンなどを調べる。 Pico データシート https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf Pico 回路図 https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf#%5B%7B%22num%22%3A2…

GDB Python スクリプトでビットを表示

gdb

マイコンではレジスタでビットフラグが多用されているが、慣れていないと gdb の x コマンドでメモリの値を読み出してもどのビットがセットされているか分かりにくい。GDB Python スクリプトでなんとかできそうだったが情報が少なかったので残しておく。Pyth…

bs2_default_padded_checksummed.S の作り方

2nd ブートファイルをフラッシュの先頭に置いてブートさせる場合、pico-sdk 以外から bs2_default_padded_checksummed.S ファイルを使用したい場合があります。 以下のようにしてビルドできます。 cd pico-sdk mkdir build cd build cmake .. #cd src/rp2_co…

RP2040 PIO レジスタと Pico SDK 覚え書き

詳細はデータシート参照のこと https://datasheets.raspberrypi.org/rp2040/rp2040-datasheet.pdf https://raspberrypi.github.io/pico-sdk-doxygen/group__hardware__pio.html レジスタと対応する SDK の関数たち。 レジスタと関連なし CTRL FSTAT FDEBUG F…

RP2040 PIO 覚え書き

RP2040 データシートを読んだまとめ https://datasheets.raspberrypi.org/rp2040/rp2040-datasheet.pdf元の文書は改変配布禁止ですので翻訳はできません。ただの覚え書きです。レジスタタイプについての説明は Appendix A: Register Field Types にある。目…

KiCAD ポリゴン中の円弧

KiCAD 6ではポリゴン中に円弧を入れられるようになりました。 これまでのポリゴンは xy 座標の連続で指定していましたが、円弧の座標を書くのは大変でした。6では3点指定で円弧を入れられます。6ではまだGUIから利用できません(7で予定あり)。以下のようにす…

KiCAD アクションプラグインの作成

KiCAD 5 からアクションプラグインとして Python スクリプトを Pcbnew のツール - 外部スクリプトから実行できます。そのプラグインの作り方を見てみます。以下の文章を参考にしてください。 アドオンパッケージ作成 https://dev-docs.kicad.org/en/addons/ …

COSMO 25番刺しゅう糸の色を検索

刺しゅう糸の色のおよその当たりをつけるために検索できるページを作成。 https://hanya.github.io/cosmo_search/ RGB値を入力するとカタログから抽出した色範囲で検索します。 RGB値の比較では検索結果がいまいちだったのでXYZおよびLab色空間でも比較、検…

マイコンの静電容量タッチセンサーピン数メモ

相互容量式静電容量検出可能なマイコンの検出ピン数メモピンは通信(I2CやUARTなど)やVBUS検出で1-2本程度利用できる数が減少 RX130 USB なし 1.8-5.5V Package CTSU MPN LQFP100 36 R5F5130 LQFP80 36 LQFP64 32 LQFP48 24 RX140 USB なし 1.8-5.5VROM 128KB…

rand_xorshift crate を使う

Rust の rand クレートはゲームなどでは遅く、他の疑似乱数生成器を使います。 rand_xorshift は Xorshift を実装しており、生成速度や周期の点で大抵のゲームでは十分です。 最近は rand_pcg など PCG も人気のようです、使い方は同じです。クレート依存性…

Mozc に新しい元号「令和」を追加する方法

4/1 具体的な編集方法を追記。 Mozc に新しい元号を追加するには、以下のファイルに変更が必要です。 src/rewriter/date_rewriter.cc, 日付変換 「今日」などで変換したときに表示される元号入りの日時を追加します。 date_rewriter.cc の L1242 辺りに追加…

Haikuports 野良レシピ

Haikuports 自作のレシピです。Haiku で利用できます。オフィシャルレポジトリに投げる予定はありません。 HaikuPorts の使い方を参考にビルドしてください。 ricty_diminished フォント Haikuports からリリースされている mozc パッケージに Mozc UT 辞書…

Haiku OS のインプットメソッド

インプットメソッド関連の環境は OS ごとに異なるため、一つでも対応するのは大変な作業です。大抵、詳しいドキュメントが見つからずに苦労します。 ここでは Haiku OS のインプットメソッドを実装するにあたって必要ことをすべて説明します。Haiku OS rev52…

Haiku OS 自作キーボードレイアウト

キーボードレイアウトファイルを /boot/home/config/non-packaged/data/KeyboardLayouts に配置すると、Preference -> Keymap のレイアウトメニューで選択できます。 HHKB HHKB JP Japanese 108

Haiku OS アプリケーションのローカライズ

Haiku OS アプリケーションを C++ で実装したときにローカライズを提供する方法について説明します。 公式で提供する方法以外にも po ファイルを使った方法などがあります。ここでは、標準 API による方法について述べます。 シグネチャ プログラムなどにシ…

pkgman の使い方

pkgman コマンドで Haiku OS のソフトなどを含むパッケージを管理できます。 GUI でパッケージ管理を行う HaikuDepot もあります。 HaikuPorts でソフトをビルドしてテストしていると、HaikuDepot を使って行うのが面倒になってきます。そこでコマンドライン…

HaikuPorts のレシピを書くときの注意点

HaikuPorts のレシピを書いて haikuports に取り込んでもらいましょう。 レシピのガイドラインに従っていないレシピは容赦なく修正指示がくるので、最初からガイドラインに沿ってレシピを書きましょう。 レシピの各項目の説明も参照してください。レシピ中で…

HaikuPorts のレシピを読む

HaikuPorts ではプログラムやフォントなどをパッケージ化するためのプロジェクトです。 Haiku OS 用にソフトを移植したり、フォントをまとめてインストールできるようにしたければ、レシピを書きましょう。 HaikuPorts ではソフトなどをレシピとして管理して…

HaikuPorts の使い方

Haiku OS にソフトを移植するプロジェクトが HaikuPorts です。ですが、移植ではなく最初から Haiku OS 用に書かれたソフトも管理しています。 HaikuPorts はソフトの情報やビルド方法を記載したレシピ群 haikuports とそのレシピを読み込んでビルドを行う h…

Haiku OS のキーマップ

Haiku OS のキーマップは独自のフォーマットで定義されており、バイナリフォーマットへ変換して利用します。以下のディレクトリに OS に含まれているキーマップファイルがあります。これを元に独自のキーマップを作成します。 https://github.com/haiku/haik…

内装ギア自転車用GD値およびチェーン長計算

内装ギア自転車用GD値およびチェーン長計算機を公開しました。 https://hanya.github.io/bicycle_data/

fcitx-mozc 候補ウィンドウの表示を変更

fcitx-mozc で日本語変換していますが、候補ウィンドウが色々と気に入りません。そこで、以下のように改造してみました。候補番号、候補、補足を分離して表示します。 入力変換中のテキストの左端と候補の左端が揃うように候補ウィンドウが表示されます。無…

mozc_emacs_helper を使う

mozc_emacs_helper は emacs から mozc を使用するための外部プログラム。 sudo apt-get install emacs-mozc-binemacs-mozc-bin パッケージは emacs への依存がないので emacs がまるごと付いてきたりしない。mozc_emacs_helper プログラムとのやり取りは S …

mbed USB クラスを使用してコントロールリクエスト経由でデータを送信

USB のコントロールリクエストはベンダー独自のコマンドを送信できます。 さらに、セットアップステージに続いてデータを送信または受信できます。データのパケットサイズは通信速度ごとに規定されており、low-speed 8 bytes、full-speed 64 bytes です。セ…

KiCAD PCBnew マクロ

自作した KiCAD PCBnew マクロの紹介。 多角形 keepout エリア描写 テキストプロパティ変更 PyShell にマクロ実行タブを追加 多角形 keepout エリア描写 https://gist.github.com/hanya/27931f7bb6d21957ac05指定した位置に与えた半径の円に内接する多角形で…

FreeType の異体字セレクタ機能を使用

OpenType フォントのcmapテーブルに platform: 0, encoding: 5 のテーブルがあれば、異体字[1]のための別のグリフを利用できるかもしれない。文字のデータベースもある[4]。1: http://www.unicode.org/reports/tr37/ 4: http://www.unicode.org/ivd/対応はフ…

Python ctypes で char * を読む

Python ctypes モジュールは C で書かれたライブラリにアクセスできる。しかしポインタ周りが分かりにくい。 freetype-py (Python - FreeType) で OpenType フォントのグリフ置換テーブル (GSUB, Glyph Substitution Table) を読み込もうとしたときの記録。F…