DHHとApple
もともと20年来のMacユーザーでTextMate原人であったDHHだが、HEYアプリが何度もAppStoreでリジェクトされた出来事を通じてか、次第にApple反転アンチ化してきた。
元々オルタネイティブな嗜好を持つDHHだったが、脱クラウド運動などの、近年の彼らのビックテックとの闘争にもつながっている。
年初あたりから自社の支給端末であったMacBookのリプレイスを検討し始め、Windows+WSL2やVSCode*1 、そしてLinuxデスクトップの利用を模索し始めていた。
最終的にUbuntuデスクトップを「安住の地」とし、そのセットアップの知見をすべてOmakubに込めたのだ。
エディタをNeovimに*2、スマホもSamsungに乗り換え*3、そしてFrameworkのラップトップを購入。
「ラップトップ買ってきましたUbuntu環境構築エントリ」を実行可能なOSSで公開してしまう男、それがDHH。
Omakubの概要
Omakubは、ウェブ開発向けのデスクトップ環境を自動で構成してくれる「オマカセUbuntuセットアップツール」だ。
オマカセ(Omakase)という言葉は、アメリカの寿司レストランでシェフにコース料理の選定を丸投げするスタイルを指す*4。
Omakubが寿司屋の大将のように、新鮮なドキュメントツールがありますよとObsidianをデフォルトでインストールしてくる。
さらにちゃっかりHEYやBasecampも組み込まれてくる。
Omakubは、Linuxディストリビューションや他のセットアップフレームワークとは異なり、セットアップそのものを提供するツールだ。
その構造は、AnsibleやHomebrew Cask、古のPuppetベースのBoxen*5を彷彿とさせるが、大きな違いは「ノーコンフィギュレーション」にある。
ユーザーは最低限の対話シェルで応答するだけで、x86_64なUbuntu(GNOME環境)が決め打ちされ、シェルスクリプトがもりもりと実行される仕組みだ。
インストールするアプリケーションからデスクトップのテーマや具体的な設定まで全て決まっており、ユーザーはほぼ手間なく環境を構築できるというコンセプトを持つ。
欲しいものを追加で入れたり、不要なものは外すこともできるが、基本的にはOmakubが提供する環境を受け入れることが前提だ。
実際のセットアップ体験
ちょうど家でゴロゴロしていたら「Linuxデスクトップ・・作りてえ・・」という気分になったので、実際にセットアップを試みた。
DHH信者の私にとっては推しのインフルエンサーがプロデュースするECサイトで服を買うような感覚だ。
まず、格安のmini PC(Intel Celeron 2コアというヤマダ電機で埃をかぶっていそうなマシン)を購入し、USBメモリにUbuntuのISOファイルを焼いてBIOSから起動、SSDにUbuntuをクリーンインストールした。
その後、wget経由でシェルからOmakubを実行して自動セットアップを進めたが、期待に反して完全自動とはいかなかった。
途中でdockerグループへの追加に失敗して止まり、手動で追加して再実行する必要があった。
さらに、GNOME Shell Extensionsのインストール時にも確認ダイアログが表示され、エンターキーを連打して進めなければならなかった。
PS:全くお勧めではないですけど格安mini PCはこれです。
デスクトップ環境の評価
何はともあれ無事セットアップ成功して結果として、macOS風のデスクトップができあがった。ヤッター pic.twitter.com/ujyVlCL0pE
— laiso 🩻 (@laiso) 2024年11月11日
かつてのLinuxデスクトップのmacOS風テーマはどこか統一感に欠け、「これじゃない」感が強かったが、おそらくUbuntuやGNOMEコミュニティのデベロッパーたちの長年の努力によって、現在はかなり洗練されているものになっていて、驚かされた。
macOSそのものではないが、代わりとなる美しいデスクトップ環境(DE)に仕上がっており、Omakubが提供するオルタナティブとして十分に魅力的だと思う。
このことからOmakubは(DHHがそうであったように)長年Macでウェブ開発していたような開発者層の乗り換え先として意図していると思われる。
開発環境の構成
Omakubのコアとなるインストールアプリケーションは、主にCLIオペレーションとウェブの開発環境の構築に焦点を当てている。
まず、ターミナルエミュレータとして「Alacritty」が導入され、シェルやTUIツールのウィンドウ基板(btopとか)として利用される。
また、画面分割に「Zellij」が導入され、Alacritty内で子ウィンドウを管理する(screenやtmuxの代替となる)。
エディタは「Neovim」が採用されており、ほぼLazyVimそのままだ。
DHH自体はIDEやコード補完をいっさい使わないらしい*6。ル・マンレーサーにCopilotは不要なのだ(助手席がないからな)。
さらに、デスクトップアプリが存在しない場合はGoogle Chromeのショートカットが作成される。
ビックテックはゆるせねえがChromeショートカットは便利でPWA最高(Firefoxにはこの機能がなかった)。
開発ツールとしては、デフォルトでRailsとNode.jsがMise経由で入る。Rustはrustupから、PHPはapt経由で入る。最新版のみだが、必要ならMiseで手動で追加すればいい。
データベースにはMySQLとRedisを用い、ホストでアプリケーションを実行しながらDBのみDockerコンテナで起動する開発スタイルになってる。
さあ、あなたもOmakubを始めよう。
*1:VSCode + WSL makes Windows awesome for web development
*3:I'm using a Samsung S24+ https://x.com/dhh/status/1811381052826407423
*5:Boxen使わなくても許されるのは2012年までだよね #Mac - Qiita
*6:But I also don't use it like an IDE. I don't like intellisense or autocomplete for Ruby. https://x.com/dhh/status/1829947253462876616