デジタルな大掃除3

Vagrant + Chef Soloで遊んでいたらMacBook Proディスク容量(256GB)が残り20GBとちょっと心配になってきた。実際には遊んでいるわけじゃなく必要に応じて作っているので容量を空けるためHDDの大掃除を慣行。

参考: ハードディスクの空き容量が極端に少なくなる場合の対処方法

仮想環境で4, 50GB, PDFと音楽ファイルで30GBくらい使っているんだけどそれは特に触れないまま70GB程度空き容量を作ることができた。地道にやってくだけで結構空くんだなぁ。

使っていないアプリを削除

AppZapperをで使っていないアプリをどんどん削除していく。AppZapperは昔からアプリのアンインストールに活用している。昔から使っているので他に無料の代替ツールがあるのかよくわかっていないけどアプリ本体だけでなく設定ファイルなどもまとめて削除してくれる便利なツールである。

使ってないファイルを削除

一年使ってないファイルをバックアップして消していく。地道。

使っていないDashのドキュメントを削除

プログラミング開発でDashというドキュメント検索ツールを使っている。調子にのっていろんなドキュメントを入れていたけど結構サイズを使っているようだ。一旦今必要なさそうなドキュメントは削除した。

使っていないAndroid SDKを削除

なんかバージョンアップの度に入れているといくつものバージョンのSDKを入れたままになっている。最低限必要なバージョンだけ残して削除。爆速シミュレータでも物足りなくて結局実機を使ったりするのでシステムイメージも消してみたり。

berkshelfの罠

sudo du -g -x -d 5 / | awk '$1 >= 5{print}' で検索したら ~/.berkshelf が何故か5GB以上あって調べいてくと罠があった。

berkshelfはChefのcookbookの依存関係を解決してくれるツールだけど、ファイルを~/.berkshelfに保存している。自分で書いてたcookbookももれなく保存されていた。

VagrantでChefのレシピを書いてためしていたんだけど、ある時レシピの検証の効率化のため大きいサイズのファイルをcookbookに置いていた。(Vagrantfileが存在するディレクトリが仮想環境では/vagrantに配置されるのを利用していた)

その巨大なファイルももれなく~/.berkshelfにコピーされていたようだ。通りでなんかProvisioningが遅いなぁと思っていた。

Vagrantでberkshelfをつかう時はcookbookに大きなファイルを置かないでVagrantの同期フォルダも別のディレクトリに置いた方が良さそうだ。もしくはchefignoreを使えばいいのかもしれない。

余談:SSDが高い

最初、さすがにHDDのためにMacBook Proを買い換えるのはやり過ぎなのでHDDを換装するということを考えたが換装するSSDが高すぎてひいた。

秋葉館 MacBook Pro Retinaディスプレイ SSD

512GBだと7万もする。Mac mini買えるやん・・・、Mac mini買ってオーディオファイルやらPDF転送マシンにしたらええやん・・・と思って諦めた。薄型ラップトップの辛い所である。

OS X Mavericksを二週間くらい使った感想

OS X Mavericksが出てから二週間くらい経つ。今のところ問題はおきていない。

もともとアップグレードして何が良くなるの?って感じだけどいまのところ体験できているのは

  • ハードディスクの空き容量が増えた気がする
  • マルチディスプレイ対応便利
  • Finderタブあんま使いこなしてない
  • Safariが便利になっているかも

といったところ。正直なところAppleがサイトなどで公開している新機能はほとんど使っていない。(フォルダのタグ付けとか、追加されたアプリとか)

ハードディスク

15GBくらい空きが増えた気がする。人(環境)によって差があり50GBも空いたという人もいるようだ。概ね10GBくらいは空くようだ。PowerPCを省いたときは説明がつくが今回は一体何を削ったんだろう。

マルチディスプレイ対応

アプリのメニュバーが全てのディスプレイに表示されるようになった。(これを可能にするアプリもあって昔入れていたこともあった)実はメニューバーじゃなくてDockもついてくる。便利だ。

マウスのカーソルでアクティブなディスプレイを判定しているようだ。アクティブな方にDockが出たりする。

ちょっと気になっているのはウインドウが2つのディスプレイにまたがっている時に、非アクティブなディスプレイで何も表示されないことがあるところだ。これは狙ってやっているのかバグなのかよくわからないがウインドウのサイズや位置を調節してあげないといけないことがたまにある。

アプリの互換

キーボードのキーの割り当てを変更するDoubleCommandが動かなくなった。最近更新されていないようなので KeyRemap4MacBook に切り替えることにした。KeyRemap4MacBookは日本の方が開発しているらしくMavericksにも対応している素敵なアプリだ。もともとやりたいのは Home/End キーを文書全体から行の最初と最後に変更するだけだけど。

VMware Fusion 5上のUbuntuは一応動いてはいた。しかし今キャンペーン中なのでVMware Fusion 6 Professionalにとりあえずアップグレードした。

開発に使っている以下のツールで今のところ作業に支障をきたす問題は起きていない。いずれも最新版を使っている。

  • XCode
  • Android Studio
  • Sublime Text2
  • PhpStorm
  • Fireworks CS
  • Evernote
  • Kobito.app
  • Dash
  • VMware Fusion Professional

Finderの話

Finderがタブ使えるようになったんだけどあまり使いこなせていない。

結局ファイルコピーとかで使うときは両ウインドウ見えていた方がいいので別のウインドウで立ち上げる。慣れとは恐ろしいものですぐに Cmd + Nを押してしまい Cmd + T を押さない。

というかタブ使えること自体を最近は忘れてた。タブ機能嬉しい!と思っていたのに不思議だ。

Safariの話

iOSと同じくOS XにもOSにTwitterアカウントなどを紐付けることができる(システム環境設定 > インターネットアカウント)。これをSafariが参照してくれているらしくタイムラインのつぶやきでURLがあるものだけを抜き出して一覧にして表示する機能がある。こういうアプリをRubyMotionで作ろうと思っていたのだが先にやられてしまった。しかしPocketに入れるだけなどまだ作るための動機は若干残っている。

あとiCloudの設定が必要だけど、デバイスをまたいでSafariのタブの共有ができるようになっている。これはChromeでもできていたけど結局iOSではSafariをそのまま使っているのでこれが有効活用できる。実際にRSSやらSNSやらでiPhoneでページを開いて気になっていたけど割り込みで放置していたものがMacから引き継いで読んだり、調べたりできるので便利。

MacではメインブラウザにはChromeを使っているがこの2つの機能にはSafariを並用して使う価値がある。

iBooksの話

iBooksが OSXに導入された。それまでiTunesで管理していたものがiBooksで移行された。

iOSデバイスへの転送はiPhotoと似たような並用になる。自炊したPDFをiBooksで取り込み、転送はiTunesと2つのアプリを使わないといけないので転送時は少し手間になった。といってもたまにしかしない作業なので概ねiBooksのように特化したアプリになってくれたのはありがたい。サイドバーでフィルタできるようになったり地味に便利になっている。

その他の気になること

MavericksというかXcode 5の話になるのかもしれないが、Xcode 5ではPreferencesからXcode Command Line Toolsがインストールできず、必要なタイミングでApp Storeにナビゲートされたりした。

Xcode Command Line ToolsはHomebrewなどに影響があるのでbrew doctorを実行して確認しておいた方がいいだろう。自分の場合はbrew upgradeを実行したらXcode Command Line Toolsが無いよ。と言われて気がついた。

なので開発者の人はその辺りもチェックしておくと良いと思われ。App Storeから明示的にインストールできるのかは不明だが、https://developer.apple.com/downloads/index.action あたりからはダウンロードできる。

まとめ

ディスクが空いた以外はこれはすごいという機能があるわけじゃないのだが、地味に良い機能がいろいろあってアップグレードする価値はあったと思う。これが無料で使えるのは素晴らしい。

押入れにあったMac Book Airにも入れて新たな役割をあげたりしている。

Pebbleアプリ開発のためHomebrewのPython環境整理

Pebbleは自分でWatchアプリを開発することができる。PebbleのSDKかツールがPythonに依存しているようだ。OS Xの場合Install Pebble SDK on Mac OS Xにセットアップガイドがある。

ガイド通りに順調に進めていって sudo easy_install pip あたりで「ん?」と思ったのだが手順ではシステムのPythonを使うようである。OS Xには標準でPythonやRubyがなどのプログラミング言語がインストールされている。

しかし自分の環境ではPythonをはHomebrewから入れていてしかも、何か環境がおかしかったのを放置していたので整理。

結論からいうと環境がおかしかったのは一部のファイルのパーミッションがおかしいという pip fails to upgrade distribute and pip にある問題だったので

cd /usr/local/Cellar/python/2.7.5/bin
chmod u+w easy_install* pip*

で解決した。

HomebrewにおけるPythonの注意事項は Homebrew and Python にまとまっている。Homebrewの場合Python formulaがpipを入れてくれるので手順の sudo easy_install pip は不要である。というかsudoで何かやるとファイルの所有者がおかしくなるおそれがあるので注意が必要。

またHomebrewでは pip install --user が無効にされている。Homebrew自体がユーザ権限で使えるので--userオプションは不要と判断して、依存モジュールのインストールは

pip install -r Pebble/sdk/requirements.txt

で行った。

まとめるとHomebrewの場合、「Download and install SDK dependencies」の件は

brew install python
brew install freetype
cd ~/pebble-dev/PebbleSDK-1.12/
pip install -r Pebble/sdk/requirements.txt

で良いのではなかろうか。

Retina MacBook Pro 15買ったあとに13inch発表されたけど後悔していない

この記事はMid 2012時のモデルのお話

一ヶ月前にRetina MacBook Pro 15に購入し、その直後にまさかのRetina MacBook Pro 13-inchがiPad miniと共に発表されたが悔しくないもんねと強がるためのエントリー。

最初にRetina MacBook Proが発表されたときは13-inchがあるなら買おうと思っていたが15-inchだけだったのでスルーした。その後、ディスプレイを大きくして作業効率を上げたいならディスプレイ買えばいいじゃんということでDELL U2713HMが届いたので初めてのWQHD(2560×1440)環境を整えた のエントリーにあるようにディスプレイを購入した。

WebやiOSの開発くらいならまぁギリギリMac Book Air 13で耐えられるのだがEclipse 4.2が重くてヤル気が消えるレベルだったのでスペックを上げたくなった。これが15-inchを購入するきっかけ。

それまで使っていたMac Book Airがメモリ4GBで、最新モデルは8GBなのでAirを買い換えるという案もあったのだがこうなったら最強スペックにしてすべての作業効率をあげてしまえということで最強のRetina Mac Book Pro 15-inchを購入した。

Retina MacBook Pro 15は重くない

クラムシェルモードで使っていたのでRetinaにしないという選択肢もあったがのだが決めてになったのは重さ。

MBA 13 MBP 13 Retina MBP 13 MBP 15 Retina MBP 15
1.35 kg 2.06 kg 1.62 kg 2.56 kg 2.02 kg

Retina MBP 15は思っている以上に軽い。重さはRetinaじゃないMBP 13と同等で以前はこれを持ち歩いていたこともあるためとくに重いと感じることはない。最近はiPad miniも持ち歩いているが全く問題になっていない。

Airや13-inchのRetina MBPと比べれば相対的には重いが、絶対的には重くてやってられないという感じはない。

Retina MacBook Pro 15は内部ディスプレイでも戦える

Retina MacBook Pro 13 Retina MacBook Pro 15
1,680 x 1,050 1,920 x 1,200

VAIO Zは1920×1080だったからMac Book 13を使っていた時の最大の不満は解像度だった。VAIO ZにMacを載せろと何回も思ったことだ。しかしついにそれを上回る解像度を手に入れた。フォントも美しいし(ウェブで見る画像が粗くなることは多いが)家でもクラムシェルじゃなくてそのまま使うケースが結構増えた。

Retina MacBook Pro 15は戦える

大事なことなので2回言いました。

Retina MacBook Pro 13 Retina MacBook Pro 15
2.5GHzデュアルコアIntel Core i5プロセッサ 2.6GHzクアッドコアIntel Core i7プロセッサ
8GB 16GB
Intel HD Graphics 4000 Intel HD Graphics 4000, NVIDIA GeForce GT 650M

Retina MacBook Pro 13は最強にはならない。Retina MacBook Pro 13で十分な人はそれでいいが、最強を求めるなら15inchが必要になる。

コアプロセッサとメモリが増えたということでHomebrewでウェブサーバを構築するのをやめてVMware Fusion + Ubuntuの構成でサーバを構築している。その上でXcodeとEclipseを起動しても全然問題ない。さらにminecraftのようなゲームを起動しても問題ない。Mission Controlの使いがいがあるというもの。

もともと13-inchくらいのスペックで十分だと思っていたが、スペックはあったらあったで使えるものだ。ビルドが速いだけでも嬉しい。そういうわけなので強がりでもなく13-inchのRetinaが出てもあんまり悔しくないし、むしろ最初に13-inchが出なくてよかったんじゃないかとすら感じる。

Retina MacBook Pro 15は持ち運ぶ開発PCとしては最高のラップトップです。

homebrewでパーミッションにちょっとはまる

MacPortsとhomebrewを微妙に併用していたが、新しく買ったMacBook Airでは完全にhomebrew一筋に切り替えようとしてみた。

homebrewのインストール(https://github.com/mxcl/homebrew/wiki/installation)に書いてある通りであり別にインストールは問題なく動作するのだがbrew updateを唱えた瞬間以下のようなエラーになる。

error: unable to unlink old '.gitignore' (Permission denied)
error: unable to unlink old 'README.md' (Permission denied)
fatal: Could not reset index file to revision 'FETCH_HEAD'.
rm: .git: Permission denied
Error: Failure while executing: rm -rf .git

homebrewはsudoを使わなくても動作する。MacPortsでは/opt/localだったがhomebrewではデフォルトは/usr/localにプログラムをインストールする。で、homebrewでは/usr/localに対してstaffグループの所有権を与えておき、

sudo dscl /Local/Default -append /Groups/staff GroupMembership $USER

によって実行ユーザをstaffグループに追加しておくので、実行ユーザでは/usr/localへの書き込みはstaffグループ権限によって行え、sudoなしで実行できる。

じゃぁ、なんでパーミッションでおこられるのよと思って権限を調べてみると、/usr/localroot:wheel権限になっていた。もともとhomebrewをインストールする前にこの状態になっているとhomebrewのインストールスクリプトでは/usr/local/binなどはstaffグループにしてくれるものの、/usr/localの権限までは変更してくれない様子。それでインストール時に/usr/local直下のファイル(.gitignoreとかREADME.mdとか.gitとか)は所有者がroot:wheelのまま引き継がれたりしている。

というわけで実行ユーザで/usr/local/binへの書き込みはできるのでbrew installは動いたりするけど、/usr/local直下のファイル(.git)にアクセスできないのでbrew updateがこけると。

sudo chgrp staff /usr/local

でインストールしなおして、とりあえず解決した。仕組みをよく理解しないまま使うのはよくないと反省。

案の定MacPortsで苦しむ

MacPorts 1.8.0にあげてから、Leopard -> Snow Leopardをアップデートしたんだけどやっぱり不安的中でMacPortsが動かない。

dlopen(/opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib, 10): no suitable image found.  Did find: /opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib: mach-o, but wrong architecture    while executing"load /opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib"    ("package ifneeded Pextlib 1.0" script)    invoked from within"package require Pextlib 1.0"    (file "/opt/local/bin/port" line 40)

どうもSnow Leopardはモジュールが別っぽいので本家から1.8.0をインストールしなおした。

そしたらもっとひどい状態になった。

can't read "build.cmd": Failed to locate 'make'

makeすらできない・・・
Snow Leopard, fresh install, can’t install any ports
https://trac.macports.org/ticket/21062
によるとSnow LeopardのDiskからXcodeを入れ直すと良いらしい。

やってみた。port -vくらいは動くようになった。

が、apache2の更新とかするとやっぱりエラーになってしまう。

もうどうにもこうにもなので、全部消してMacPorts入れ直した。インストールログをwikiに残しておいた良かった。

Snow Leopard < ATOK 2009

Snow Leopard

あ…ありのまま 起こった事を話すぜ!

LeopardからSnow Leopardへのアップデートは3,300円。冷静にアプリの互換性を調べていたらATOK2007が動かないかもしれないということが判明した。

http://www.justsystems.com/jp/os/macosx/#osx6
JustSystemによるとATOK2009 for Macへのダウンロード版の優待アップデートは4,725円。つまりSnow Leopardよりも高い。2年粘れることを考えればこれから始まるMacの月額サービス(300円)よりは安いと思いATOK 2009 for Macを購入した。

な… 何を言ってるのか わからねーと思うが
おれも何をされたのかわからなかった…
頭がどうにかなりそうだった…

Parallels Desktop + Adobe

WindowsアプリがMacで開発できないのは仕方ないが、デザインツールが使えないのはしんどい。

Adobe Web Standard CS4を持っているけど、これがWindowsライセンスでMacでは使えない。世の中にはちょこちょこMac/Windows両方いけるのがあるんだけどな。AdobeでもFlex Builderは両方使える。

XP Proのライセンスが一個余っているのでParallels Desktop買ってXPとFireworksいれようかなぁ・・・Expression Blend(Sketchflow)も使いたいし。

とりあえずCore 2 Duo様でどれくらいパフォーマンスがでるのか試用版で試してみよう。

iBook G4->MacBook Pro(5) MacPortsのmysql5 +serverはもう古いらしい

WebでMacPortsでMAMPの構築ネタを探すと、

sudo port install apache2
sudo port install mysql5 +server
sudo port install php5 +apache2 +mysql5 +pear

phpのvariantは多少増減するにせよこんな感じのおまじないがあるわけで、実際にこの指定でiBookにはインストールしていたわけなので何も考えずに今回もこれでインストールしていた。

でありきたりなおまじないなので、ちゃんと出力とかを見ていなくて実際にテーブルいれるかーってときにmysqlがうまく起動できなくて、なんか設定見落としてるのかもしれないと思い入れ直し。

出力を注意して見てるとmysql5 +serverはもう古くてmysql5-serverを使いなさいとか言われてた。

# port variants mysql5
mysql5 has the variants:
server: Obsolete; install mysql5-server port instead
universal: Build for multiple architectures

インストール進捗を見ていなかったので正直これが原因だったのかよくわからないのだが、とりあえず今後のおまじないはこれを使おう。

sudo port install apache2
sudo port install mysql5 mysql5-server
sudo port install php5 +apache2 +mysql5 +pear

一応無事インスコできた。

iBook G4->Macbook Pro(2) GMTから抜け出せない

MacBook Proの時計が狂ってると思って設定を見てみるとNTPから時間を取るようにちゃんとなっていてずれているわけではなく、GMT(世界標準時間)になっているということだった。

タイムゾーンをGMTから東京に変えても、変えてもGMTに戻ってしまう。同じ悩みの人がいた。

http://www.tamura-online.com/blog/2009/05/macbook-3–.html
移行アシスタントを使うと発生する問題らしい。ここに書いてあるように
sudo rm -rf /private/etc/localtime
を実行したところ直った。