oinume journal

Scratchpad of what I learned

Bashの起動を高速化した

最近Bashを起動する速度がどんどん遅くなっているなと感じたので、Claude Codeに高速化を依頼した。

パフォーマンスの可視化

まず手始めに、Bash起動時に何に時間がかかっているのかをわかるようにしてもらった(PR)。

以下のようにBASH_PROFILE_PROFILING=1 bash -lで起動することで、以下のようにどこに時間がかかっているかが計測可能になる。

BASH_PROFILE_PROFILING=1 bash -l
[profile]      1 ms (+   1 ms) prompt/history
[profile]     48 ms (+  47 ms) brew --prefix
[profile]     49 ms (+   1 ms) .bash_local
[profile]    118 ms (+  69 ms) bash-completion
[profile]   1361 ms (+1243 ms) bash-it
[profile]   1401 ms (+  40 ms) fzf
[profile]   1402 ms (+   1 ms) bash-powerline
[profile]   1403 ms (+   1 ms) tmuxinator
[profile]   1404 ms (+   1 ms) completion (git)
[profile]   1410 ms (+   6 ms) google-cloud-sdk
[profile]   1505 ms (+  95 ms) rbenv
[profile]   1516 ms (+  11 ms) JDK (java_home)
[profile]   1917 ms (+ 401 ms) nvm
[profile]   1947 ms (+  30 ms) mise
[profile]   1970 ms (+  23 ms) wtp
[profile]   1980 ms (+  10 ms) direnv
[profile]   1981 ms (+   1 ms) nvm bash_completion
[profile]   1982 ms (+   1 ms) ===== TOTAL =====

高速化

とりあえず bash-it が遅すぎるのでこれを読み込まないようにした。これだけど 1243ms 速くなり、体感的にもかなり快適になった。

次に遅いのがnvm関連。ちょうどmiseに移行しようと思っていたので、移行を済ませてnvmを読み込まないようにした。これで400ms速くなった。

同様にrbenvもmiseに移行して消せるので削除。

まとめ

そんなこんなで色々削って起動時間が 1982ms -> 273ms になり爆速になりましたとさ

mineoに乗り換えて1年経った

スマホのSIMをMVNOのmineoに切り替えて1年以上が経って、かなり満足しているのでここにその良さを書いておく。mineoの前は、新規契約はストップしているOCNモバイルONEを使っていた。

mineoに切り替えた理由

  • 新規契約をストップしていることから、OCNモバイルONEには将来性がなさそう
  • mineoは以前も契約していたことがあり、速度制限がある状態でも1.5Mbps(当時は1Mbpsだったかも?)の速度が出ることは知っていた
  • 価格的には日本通信も候補に上がったけど、DoCoMoではなくauの回線を使いたかったのでmineoに決めた

自分のユースケース

週3,4は通勤しているので主にその隙間時間で以下をやっている。mineoに切り替えてからは月に30GBぐらいのギガを使っている。

  1. ストリーミングで音楽を聴く
  2. YouTubeを見る
  3. 移動中にテザリングでPC作業をする
  4. Podcastを聴く
  5. SNSを見る
  6. Kindleなどで本を読む

mineoにしてどうだったか

OCNモバイルONEは10GB / 月の容量しかなかったので通勤中にYouTubeを観ることは不可能だったけど、mineoにしてからは移動中に動画を見れるようになったので生活が大きく変わった。Netflixも見たいものがあれば事前にダウンロードする必要があったけど、これもストリーミングで再生できるようになったので便利になった。

また、速度制限がある状態でもテザリングでなんとか作業できるため、移動中にやれることの幅が広がったように思う。

さらに、2026年3月から速度制限状態でも最大で1.5 -> 3Mbps出るようになり1、より快適になった。自分は 15GB / 月のプランを契約しているけど、速度制限がある状態でもほとんど用が済んでしまうため、ギガが毎月半分以上使い切れていないという状態になっている。

というわけで

よほど改悪されない限りは、ずっとmineoでいこうと思うほどに快適です。

Claude Codeの設定の差分を吸収するsettings.jsonの管理方法

背景

会社のPCと個人PCでClaude Codeを使っているのだけど、

  • 会社PCではAPI Keyによる従量課金方式
  • 個人PCはサブスクのProプラン

となっている。permissionsの設定などで秘伝のタレ化している ~/.claude/settings.json は共通化して管理したいが、会社PCの ~/.claude/settings.json にはAPIキーやその他会社環境固有の環境変数を定義する必要があるため、会社PCと個人PCで発生する差分をどうにかしたい。

まとめ

  • macOSの場合は、PC固有の設定を /Library/Application\ Support/ClaudeCode/managed-settings.json に保存する
  • 共通の設定は dotfiles リポジトリ内で settings.json を管理

このやり方でうまいこと差分を吸収できたよ、というただそれだけの記事。

参考リンク: Claude Code settings - Claude Code Docs

Apple Developer Programに加入せずにReact Native(expo)でiOSアプリを実機にインストール

「こんなアプリがほしい」と思ってExpoで作ってみたものを実機にインストールして使ってみたかった。調べたらApple Developer Programのお布施を払わなくてもインストールする方法があったのでメモ。

必要なもの

手順

expoはexpo prebuildコマンドでネイティブのコードを生成できるので、これを使ってXcodeでアプリを実機にインストールする。

npx expo prebuild

次にこの投稿に書いてある設定をする

なお、上の投稿では6.で以下のように書かれているが、

Build bundle with npx expo export:embed --entry-file='node_modules/expo/AppEntry.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios'

自分の場合は以下のように--entry-fileを修正する必要があった。

npx expo export:embed --entry-file='node_modules/expo-router/entry.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios'

あと依存ライブラリがインストールされずにビルドに失敗していたので、以下を実行する必要があるかもしれない

cd ios
pod install

2026年1月時点での作業環境

マシン&OS

  • メインPCはmacOS
  • VPSではUbuntu

アプリ

  • Browser: ChromeたまにSafari
  • IDE: IntelliJ IDEA
  • Editor: VScode。コードを書くときはIntelliJで、ちょっとしたテキストの編集をする際はVScode
  • Terminal: iTerm + tmux + fzf
    • tmuxがちゃんと動くならGhosttyに乗り換えたいかも
    • fzf, tmuxは10年以上使ってる気がする
  • Shell: Bash
    • 昔はZsh使っていたがカスタマイズが面倒になってBashにした
  • Coding Agent: Claude Code, たまにCodex。去年はCursorを使っていたが最近は使ってない
  • Launcher: Raycast
  • タスク管理: Reminder
  • パスワード管理: 1Password
  • その他: Homerow, Giphy

メモアプリ

去年はObsidianを使ってみたが、あまり馴染まずで結局macOSのメモアプリ+Notionに戻った。Notionはスマホからの編集が絶望的にやりにくいので、一時的にメモアプリに書いて、長期で保存する必要があるメモをNotionに入れるスタイル。Notionのデータベースは情報を整理するのには向いているので、長期記憶のデータベースとして活用している

Hot Key

Raycastを使って以下のHot keyを割り当てている。どこかに書いておかないと忘れて使わなくなるものがあるのでメモ

  • Ctrl + Cmd + c: クリップボード履歴
  • Ctrl + Cmd + s: 開いているウィンドウ一覧
  • Ctrl + 5: Homerow起動
  • Ctrl + Cmd + 1: (Chrome上のみ)1Password起動