プログラミングっぽいネタだけどMacの話なのでこっちに書きます。

僕はちゃんとしたプログラミングの勉強をしたことがないので、いつも行き当たりばったりでサイト作り始めます。でもさすがにこういうのの非効率性が分かってきたので、最初に必要なデータベースのテーブル数くらいを大まかに決めることにしました。そんでそのイメージ図みたいのを描くのにMindNodeというアプリケーションを使ってみた。

MindNodeはマインドマップを描くためのソフトです。マインドマップの描き方とか知らないし、キャンペーンかなんかで安かったのでとりあえず買っておいたソフトですが、思いの外良い感じに描けました。

そんでこれをThe Hit Listでアウトライン風に書き下してみた。

開発の初期段階でやることが視覚化できてとっても良いと思いました。

それにしてもThe Hit ListはiPhoneアプリ出なさそうですね。Google Groups のユーザーフォーラムでは「出す出す詐欺」の作者にみんなあきれ果ててThingsに戻ったり別のソフトを物色してるみたい。

The Hit List自体はとてもUIも機能もとても良くできているだけに大変残念ですね。

Pocket WiFi

せっかくMacBook Pro持ってるのに外で使わないのもったいない、しかし外で使うためにはやっぱり回線が必要だ! というわけでSoftBank版のPocket WiFi、C01HWを買いました。

家にいるとついついいろんな誘惑に負けてしまってプログラミングの勉強がはかどらないので、一念発起してPocket WiFiを買い、自分にハッパをかけることで屋外で勉強できたらいいかなと思いました。

昨日早速スターバックスでMacBookおっぴろげてみました。勉強はあまりはかどらなかったですが、家にいたらきっとむふふな動画見たり酒飲んだりしてだらだらしていたであろう時間に、少しでもテキストが進んだので買った甲斐はあったかなと思います。

最近は土日どっちかは外で映画見てるので、映画の上映待ってる細切れの時間とかに少しでもプログラミング出来たらとても良いかなと思ってます。週末少しもコード書かないと忘れること多いし。

ところで、買って半年以上経つのに本格的にMacBook Proを持ち出して使うのは昨日が初めてだったのですが、MacBook黒に比べて

  • バッテリーのもちが良い
  • 15インチディスプレー(1440 × 900)だとやっぱ快適
  • 薄いのでバッグへの出し入れがスムース

でした。先週出た最新のMBPはもっとバッテリー駆動時間伸びてるらしいし、しかも値段下がってるし、いい時代になったもんですね。LED Cinemaがもうちょいレート反映した値段になってくれたら良いのにな。

なんか一個前の記事でTextMateマンセーみたいな記事を書いてますけど、Coda悪くはないです。というか素晴らしいです。

特に良いと思うのが、FTPクライアント機能を内蔵してるところ。普通のFTPクライアントでちまちまファイルを上げる作業は結構面倒くさいです。特にサーバーのタイムゾーンの設定がローカルのタイムゾーンと異なってたりすると、FTPクライアント上で表示される最終更新時刻が全然あてにならなくてどのファイルをアップロードすればよいのか分からなくなります。こういうとき、Codaでファイルを編集していると非常に幸せになれます。

Codaには「サイト」という機能があって、ここにFTPの情報を登録しておくとグラフィカルな感じで一覧表示してくれて、非常にシャレオツです。

1120_Coda_1.png

例えばいまサイトからportal shit!を開いたとします。するとこんな感じになる。

1120_Coda_2.png

www.portalshit.net にFTP接続しています。サイドバーに「ローカル」と「リモート」とあるのが分かるかと思います。「ローカル」を選ぶとローカルのファイルを編集でき、「リモート」を選ぶとリモートのファイルを直接編集できます。

1120_Coda_3.png

ローカルの index.php を適当に編集してみましょう。

1120_Coda_4.png

するとこんな感じで編集中のファイルには印がつく。でもまぁこんなのはよくある機能です。Codaが便利なのはここからで、ここでローカルのファイルを保存するとファイル名の横に矢印がつきます。

1120_Coda_5.png

index.php の横に矢印がついています。この矢印をクリックするとローカルで編集したファイルをリモートにアップロードしてくれるのです。これが便利。どのファイルがローカルで更新済みでどのファイルをリモートにアップロードすべきかが一目瞭然です。

加えて、「削除」「すべてを公開」なんてのが index.php の下部にありますが、こいつもすこぶる便利なんです。例えば index.php の他に複数のファイルをローカルで更新したとする。全部アップロードしなければならないのですが、ディレクトリを複数またいでいると面倒くさかったりする。しかしCodaの「すべてを公開」という機能は、矢印付きのファイルをアップロードしてくれるのです(「削除」を押すとすべての「矢印」を削除します)。非常に賢いですね。

こんなに便利なのになぜRails書くときはTextMateを使うのか。Bundles機能が便利だとかいろいろ理由はあるんですけど、このFTPクライアント機能はRails向きじゃないんですよね。Ruby on RailsはWEBrickという開発サーバーをローカルで起動してそこを見ながら開発していくので、HTMLなどの静的ファイルをぽんぽんサーバーにアップロードしていくのとは事情が異なる。CakePHPはPHPが動くなら素のApacheでテストできるので(Passengerとかいらない)、Codaで作業しながらぽんぽんアップロードしていっても問題ないわけです。だからCodaがベストマッチだった。BakeするときくらいしかTerminal.appは使わないし。

まとめると、Codaは非常に素晴らしいテキストエディターだとは思いますが、HTMLのマークアップやJavaScript、PHPなどのプログラミングには向いているものの、ハードにごりごりプログラムを書く用途には現状あんまり向いていないと感じます。もうちょいプログラマー向けに進化したら(Terminal機能を内蔵するのではなく、Terminal.appとの連携やフレームワーク特有のコマンドのサポートなど)、とても良いのではないかと思います。

しかしHTMLやCSS書くのがメインで、ときどきPHPも触るみたいな方には打って付けのエディターだと思います。$99の価値はあると個人的には感じます。

CakePHPとかRailsでサイトを作るときはModel View Controllerを頻繁に行ったり来たりします。Vimは確かに素晴らしいのですが、複数のファイルを一括で開いてあちこち編集するのはさすがに苦行に近いものがあります。CodaとかTextMateはサイドにDrawerがあってファイルをブラウズしながらタブでじゃんじゃんファイルを開いていけるのでかなり便利です。Codaの例ですが、こんな感じ。

1119_coda_1.png

CakePHPでなんか作ってるときはCoda一辺倒でした。とにかく使いやすい。タブ機能だけじゃなく、ファイルを「分割ウィンドウで開く」という機能があって、例えばModelを左に、Controllerを真ん中に、Viewを右に開いて各々を突き合わせながらコードを書くことができます。

1119_coda_3.png

この機能は重宝しました。こんな感じ。

1119_coda_2.png

RailsもCodaで書こうかと思ったんだけど、弱点がある。それはRuby on Railsのシンタックスに弱いことです。まったく対応してない訳じゃないけど、.html.erb形式のファイルの色分けがいけてない。メソッドの補完とかは結構やってくれるんだけど、それよか他にやることあるんじゃね? って感じですね。

結局、RailsはTextMateで書くことにしました。

TextMateのなんとも素晴らしいところはBundles機能。これすごいですね。いま開いてるファイルのViewやModelにBundlesメニューから一発で飛んでけたり。

あとTermina.appとの連携とかKey Bindingsとか。これでマルチバイト文字にネイティブで対応してくれてたら言うことなしなんだけど。

MacはUnixとして使うと便利

IMG_0287

Macはシャレオツパソコンとして使うだけじゃもったいない。一応UnixなのでUnixとしても使える。

Unixコマンドが気持ちいい

  • 「○×は使用中のため削除できません」とか警告が出るファイルも sudo rm -f <ファイル名> と打てば消せる。ストレスフリー。

  • 10分後にシャットダウンさせるとかも楽ちん

    出かけなきゃいけないけどまだDropboxの同期が終わってなくて電源落とせない、みたいなときは、 sudo shutdown -h +n とか打つとn分後にシャットダウンする。nのところに10を入れて実行すれば10分後にシャットダウンする。便利。

きっかけ

GitやVim、サーバー環境構築などでTerminal.appを多用するようになった。

  • Git

    • とにかく便利。プログラミングしてなくても、htmlやcssのバージョン管理もできる。『入門git』という本を読んでるけど、著者はこの本自体をGitを使ってバージョン管理しながら書いたらしい。ちょっとUnixの操作に慣れれば劇的に快適な文書のバージョン管理環境がゲットできる。共同作業で使うんじゃなく一人でやるんでも便利。
  • Vim

    • 最初はとっつきにくかったけど、慣れたらとても使いやすい。さすがにhtml書くときはグラフィカルなエディターを使うけど(Espressoで全裸コーディングとか)、プログラムを書くときはvimの割合が増えた。Terminalとの行ったり来たりが楽だし、そもそもGitを使ってたら git commit -a のときにVimが自動で開くし必然的に使う機会が増える。

MacPortsは神

MacPortsのリポジトリは結構頻繁に更新されてる。新しいバージョンをインストールするために自分でリポジトリ追加したりしなくていいし、とにかくパッケージ管理が楽。個人的に自宅サーバーやるんだったら古いMacにMacPortsで環境つくる。

というわけで

iTunesとSafari専用マシンとしてだけMacを使うのはもったいないです。良かったらUnixとしても使ってあげてください。

Snow LeopardになってもUnixとしてのOS Xには大きな変化がないので以下の本がオススメです。僕も毎日拾い読みしてます。

この前TwistarをFluid.appでアプリケーション化してみたら快適だったという記事を書いたけど、ふぁぼったーも同様にやってみた。ふぁぼったーはデフォルトでj, kでスクロールできないけどFluidはUserscriptを使えるので、0xFFからSafari用のLDRizeやoAutoPagerizeをダウンロードしてスクリプトフォルダに入れることで同様の使い勝手を実現できる。こんな感じ。

1111_favotter_fluid1.png

あとは好みでユーザースタイルシートを書いてやればオッケー。僕は幅を320pxにして以下のような感じにしてる。

1111_favotter_fluid2.png

暇があったらもうちょいかっこよい感じに書き直す予定。Userstyles.orgに上げてるのでまねしたい方はご自由にお使い下さい。

[ふぁぼったーをFluidで使うためのCSS userstyles.org](http://userstyles.org/styles/25566 “ふぁぼったーをFluidで使うためのCSS userstyles.org”)

無限インターネッツしてたらxGesturesの1.75が出てることを知り、早速ダウンロードしてインストールしてみた。ところが起動しない。「古いやつと置き換えますか?」とダイアログが出てOKをクリックしたあとSystem Preference.appが落ちてしまう。

マウスジェスチャーが使えないとあらゆるネットストーキング行為に支障が出るので、諦めてVer 1.74に戻そうと探し回るもどこにも見つからず。開発元のダウンロードリンク http://alum.hampshire.edu/~bjk02/xGestures/download_files/xgestures175.dmghttp://alum.hampshire.edu/~bjk02/xGestures/download_files/xgestures174.dmg と書き換えてみても、落ちてくるのは1.75のみ。日本語環境がまずいのかなと思ってOSの言語環境を英語にしてインストールすることも試してみたけど効果なし。

ダメ元でいったんxGesturesをアンインストール(AppZapperを使った)し、再度入れ直したらちゃんと入った。入れ直しインストール時に「xGestures.appはどこやねん?」みたいな警告が出るが、ここで適切なxGestures.appのパスを教えてあげないとまた起動しなくなってしまう。こいつはxGestures.prefPaneの中に格納されてるので探すのにコツがいる。今回特別に、ポータルシットをごらんの皆様だけにxGestures.appのありかをお教えしましょう。ユーザーディレクトリへのインストールを選んだ場合、xGestures.appのパスは /Users/ユーザー名/Library/PreferencePanes/xGestures.prefPane/Contents/Resources/xGestures.app となります。

この方法だと一回アンインストールするので、保存しておいたマウスジェスチャーの設定とかは消えるけど致し方なしでしょう。こういうのがめんどい人はVer 1.76が出るまでおとなしくしてた方がよさげです。