2025年10月15日水曜日

いまさら helix_five_rows_jis をビルドしようとしているあなたへ

2025/10/15 時点のビルド方法

  1. QMK Toolbox インストール

  2. QMK MSYS インストール(以降、QMK MSYS 上で作業)

  3. QMK Firmware をクローン

    • コミット: 9315172190 にスイッチ
  4. keyboards/helix/rev2/keymaps/keyboards/helix/rev2/keymapshelix_five_rows_jis をフォルダごとコピー

  5. command.h の編集

    diff --git a/tmk_core/common/command.h b/tmk_core/common/command.h
    index d9d89ba0f1..f44b3f7bc3 100644
    --- a/tmk_core/common/command.h
    +++ b/tmk_core/common/command.h
    @@ -16,7 +16,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
     */
    
     #ifndef COMMAND_H
    -#define COMMAND
    +#define COMMAND_H
    
     /* FIXME: Add doxygen comments for the behavioral defines in here. */
  6. rules.mk の編集

    diff --git a/rules.mk b/rules.mk
    index 084b5db..3fb420c 100644
    --- a/rules.mk
    +++ b/rules.mk
    @@ -30,7 +30,7 @@ endef
     # you can edit follows 7 Variables
     #  jp: 以下の7つの変数を必要に応じて編集します。
     HELIX_ROWS = 5              # Helix Rows is 4 or 5
    -OLED_ENABLE = yes           # OLED_ENABLE
    +OLED_ENABLE = no           # OLED_ENABLE
     LOCAL_GLCDFONT = no         # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
     LED_BACK_ENABLE = no        # LED backlight (Enable WS2812 RGB underlight.)
     LED_UNDERGLOW_ENABLE = no   # LED underglow (Enable WS2812 RGB underlight.)

残念ながら OLED はあきらめねばならない。

参考資料

2025年10月11日土曜日

コンテナ内で Codex を、 Plus アカウントとして使う

てこずったのでメモ。

前提

  • コンテナ内に codex の実行環境が整っていること
  • コンテナ内に curl がインストールされていること

手順

  1. コンテナ内で codex を起動
  2. 1. Sign in with ChatGPT Usage included with Plus, Pro, and Team plans を選択
  3. 表示された URL に、ホストのブラウザでアクセス
  4. ログイン/Codex にサインインする
  5. 「正常に接続できませんでした」となるので、ブラウザのアドレス欄をコピー
  6. コンテナ内で curl -L '<「5.」でコピーしたアドレス>' を実行
  7. コンテナ内で Codex にログイン完了

以上。

2025年8月25日月曜日

Vim のマクロで気持ち良くなった話 - Java フィールドから SQL の SELECT 定義を作成編

Java Bean でエンティティ的なものを作って、そのフィールド値を(ほぼ)全部 SELECT で撮ってきたいと思う場面は多いと思います。

ざっくりやってみたら意外とうまくいったので記録。

User.java

public class User {
  /**
   * 氏名
   */
  private String name;
  /**
   * グループ ID
   */
  private Integer groupId;
  /**
   * Role ID
   */
  private Long roleId;
  /**
   * 住所
   */
  private String address;
  /**
   * 電話番号
   */
  private String phoneNumber;
}

最初のコメントの始まりにカーソルを合わせ、以下キーストロークをうつと、フィールド名だけを抽出できる。

これを q に保存して @q で全部フィールド名だけを抽出する。

VjjdvWWhx$r,j

すると、こうなる。

public class User {
  name,
  groupId,
  roleId,
  address,
  phoneNumber,
}

後は lower snake case にすればいいので、対象のフィールドの行で以下キーストロークを実行。

^ve:s/\C\([A-Z]\)/_\1/g<Enter>veuj

これも q に記録して、対象行で @q していく。

すると以下のようになる。

public class User {
  name,
  group_id,
  role_Id,
  address,
  phone_number,
}

後は先頭と末尾を SELECT 文ににしてケツカンマを削除。

select
  name,
  group_id,
  role_Id,
  address,
  phone_number
from
  "user";

OK, 以上。

以下、似たようなことをやっている動画です。