MacOSX固有のコマンドqlmanageでいろんなファイルのサムネールをほいほい作る。

以前に、MacOSXでコマンドで画像のサイズを確認したり、画像のプレビューを見たりできるよという記事を以前に紹介しました。

http://firegoby.theta.ne.jp/archives/2268

MacのGUIアプリの機能にはコマンドでアクセスできるものがあります。

MacOSXにはQuick Lookという機能があって、このQuick Lookを使うといろんなファイルのプレビューが瞬時に表示されます。

で、MacOSXは正統派UNIXなので、GUIベースのアプリケーションの機能にコマンドでアクセスできることがあります。

今回はQuick Lookに含まれるqlmanageというコマンドを使って、いろんなファイル形式のサムネールを作成する方法をご紹介します。

qmanageを使ってWord2010ファイルのサムネールを作る。

以前の記事ではqlmanageコマンドを使用して画像ファイルのプレビューを開く方法をご紹介しましたが、qlmanageが扱えるファイル形式にはOffice2010の.docxや.pdfなどの文書ファイルも含まれます。

そしてqlmanageには、それらのファイルのサムネールを生成する機能もあります。

qlmanage -t /path/to/xxx.docx -s 400 -o ~/Desktop/

上記の例は、/path/to/xxx.docx のサムネイルを、400px で、デスクトップに保存してねという意味です。

コマンドに成功すると以下のようなメッセージが出ます。

Done producing thumbnails

ここで指定できるファイル形式はQuick Lookで開ける全てのファイル形式で、サイズは縦横の長いほうが指定されたサイズになるよう出力されます。

実際に出力した結果のサムネイルは以下のような感じです。

イライラするぐらい重い画像ファイルのサムネイルもPhotoshopを起動するよりも早くサムネイルが作れちゃいますので、せっかちな方にはおすすめです。

頻繁に使うテクニックではありませんが、便利なので覚えておいて損はないと思います。

Macのターミナルから画像などを超簡単にプレビューする方法

私は、WordPressのプラグインやテーマなどの開発は、/Library/Webserver内に構築したバーチャルホスト上でvimなどのターミナル上のCUIでごりごり作業をしています。

成果物はこまめにSubversionやGitにコミットしておけば、本番作業への移行も楽ですし、お客さんのところでデモをする際にもネット環境が不要なので、この作業環境を気に入っています。

しかーし、CUIでの作業で面倒なのが画像が関連する作業で、CSSなどの編集で画像のサイズを見たい時などに、いちいちディレクトリを掘っていって右クリックとかは面倒です。

そこで、これらをコマンドラインで超簡単に行う方法をご紹介します。

コマンドラインから画像を超簡単にプレビューする

ホームディレクトリ内にある.bash_profileに以下の行を追加してください。

alias ql='qlmanage -p "$@" >& /dev/null'

以上が完了してTerminal.appを再起動してから、ターミナル上で以下のようなコマンドを入力してください。

ql path/to/image.png

すると以下のような画像のプレビューが見られます。

コマンドラインから超簡単に画像のサイズを調べる

画像のプレビューと同じ要領で、.bash_profileに以下の行を追加してください。

alias imgsize="mdls -name kMDItemPixelWidth -name kMDItemPixelHeight"

Terminal.appを再起動後、コマンドを入力すると画像のサイズが調べられます。

$ imgsize img/login_logo.png
kMDItemPixelHeight = 127 // 画像の高さ
kMDItemPixelWidth  = 414 // 画像の横幅

その他の便利なコマンド

以上のテクニックは、bashにエイリアスというショートカットのようなものをつくって、めんどくさいパラメータの指定を省略できるようにしています。

私は他にも以下のようなエイリアスを設定しています。

カレントディレクトリ以下の.DS_Storeを削除する。

alias delmacfile="find . -name \".DS_Store\" -exec rm -f {} \;"

rsyncで.DS_Storeや.svnを除外する。

alias rsync="rsync -avz --exclude=\".svn\" --exclude=\".DS_Store\""

svn addやsvn delをまとめて処理する。

alias svndel="svn st | grep '^!' | sed -e 's/\![ ]*/svn del /g' | sh"
alias svnadd="svn st | grep '^?' | sed -e 's/\?[ ]*/svn add /g' | sh"

などなど。

ほかにも便利なコマンドがあればぜひ教えてください。

iPhoneの過去のGPSデータを表示するiPhoneTracker

本日、TechCrunchに以下のような記事が掲載されソーシャルメディア上で話題になりました。

http://jp.techcrunch.com/archives/20110420surprise-your-iphone-is-tracking-your-every-move/

TechCrunch によるとiOS4からiPhone内にGPS情報が恒久的に保存されており、幸いAppleに送信されているわけではないが、ちょっと気味が悪い。とのことです。

この記事をツイートしたところ、親しいフォロワーさんから。

こんなものが、、、「iPhoneTracker」http://petewarden.github.com/iPhoneTracker/ QT: @miya0001: Phoneには過去の位置情報が逐一記録されていることが判明” http://bit.ly/g11iow

iPhoneTrackerってなんぞや?

早速試す。

iPhoneTrackerとはGitHub上で公開されているオープンソースのプロジェクトで成果物がMac用のアプリとしてダウンロード出来るようになっています。

そこで、早速試してみました。

ヒエー気持ち悪い。

操作性が悪くて、アプリとしてはいまいちですが、見事に私の行動履歴を見ることができました。

アプリ下部にあるスクロールバーを操作すると日付を絞り込んでGPSデータを閲覧できます。

最も古い日付は2010年の6月17日。ぐぐってみたらiOS4の公開は6月21日?

タイミング的には、よくわからないですが、キモイということで、インストールはオウンリスクでお願いします。

http://petewarden.github.com/iPhoneTracker/

 

iPhone+iTunesでエラー。「シンクサービスからデータクラス情報を読み込めません。」

たぶん、Xcodeをアップデートしてからだと思うんですが、MacでiPhoneを同期しようとすると「シンクサービスからデータクラス情報を読み込めません。」とエラーが出るようになった。

対処方法

Google先生に聞いたら以下のような方法で解決するらしき情報があったので、実際にためしてみたところ、見事に解決しました。

iTunes:Mac OS X で Apple Mobile Device Service を削除および再インストールする方法

  1. iPhone、iPad、または iPod と Mac の接続を解除します。
  2. Finder で「アプリケーション」フォルダの iTunes を探し、ゴミ箱にドラッグします。
  3. 「iTunes」アイコンをゴミ箱に移動します。
  4. 「移動」 > 「フォルダへ移動」の順に選択します。
  5. /System/Library/Extensions と入力し、「移動」をクリックします。
  6. AppleMobileDevice.kext というファイルを見つけ、ゴミ箱にドラッグします。
  7. 「移動」 > 「フォルダへ移動」の順に選択します。
  8. /Library/Receipts/ と入力し、「移動」をクリックします。
  9. AppleMobileDeviceSupport.pkg というファイルを見つけ、ゴミ箱にドラッグします。認証するよう求められたら、管理者パスワードで認証します。
    注意:このファイルは、Mac OS X v10.6 以降では表示されない場合があります。表示されない場合は、次の手順に進みます。
  10. コンピュータを再起動します。
  11. 「Finder」 > 「ゴミ箱を空にする」を選択して、コンピュータを再起動します。
  12. 現在のバージョンの iTunes をダウンロードしてインストールします。
  13. デバイスを Mac に再度接続し、iTunes を起動します。

Mac(Snow Leopard)でWeb開発環境

今回の記事は、Mac で Apache + MySQL + PHP の環境を作る方法について。

簡単に環境を作りたい場合は、MAMP という選択肢もありかもしれないが、個人的には以下の理由で好きではない。

  • 多様な本番環境に設定を合わせられるほど柔軟じゃない。
  • 無駄な学習コストが発生するように思える。
  • 特定のプラットホームやパッケージへの依存度を減らしておきたい。

と、余談はさておき、Mac を使用した開発環境の構築。

以下は、かなり私の独断と偏見。
あと、あくまでも開発環境を前提としており、本番環境を前提としていない。

Apache の設定

Apache の設定は、意外と簡単。
Webmin や MAMP などのGUI からはさっさと卒業しましょう。

ユーザー、グループの変更

たとえば、PHPやCGIからファイルに書き込みをしたりする際に、対象となるファイルやディレクトリにパーミッションを 707 などとしておく必要があると思うが、開発環境ではこの作業は面倒なので、私はApache のユーザーそのものをかえている。

こうしておくことで、パーミッションの変更が不要になり、たとえば WordPress では自動アップグレードも動作するようになる。

/etc/apache2/httpd.conf の128行目付近の以下の行を変更

User foo
Group staff

User に指定する foo の部分は Mac にログインする際のユーザー名。
Group の値は、staff でいいとおもう。

この設定をしておけば、Mac のファインダー上で作成したファイルやディレクトリと同じユーザー、グループで Apache が動作するので何かと便利になる。(SuExec に近いイメージ?)

念のため、以下のディレクトリのオーナーを変更しておく。
(foo の部分は置き換えて!)

sudo chown -R foo:staff /Library/WebServer

バーチャルホストの設定

バーチャルホストを設定すれば複数のサイトを構築でき、設定もサイト毎に可能なので、レンタルサーバーなどの設定に柔軟にあわせることができる。

開発環境のバーチャルホストでは、ポートベースのバーチャルホストが簡単で手っ取り早い。

以下のサンプルは、ポート番号 9001 のバーチャルホストの例。

まずは、バーチャルホスト用のディレクトリを作成する。

mkdir /Library/WebServer/vhost9001

このソースをコピペして、例えば “9001.conf” のようなファイル名で /etc/apache2/other 以下に設置するとポート 9001 のバーチャルホストができあがる。

NameVirtualHost *:9001
Listen 9001
<VirtualHost *:9001>
    DocumentRoot "/Library/WebServer/vhost9001"
    <Directory "/Library/WebServer/vhost9001">
        Options All
        AllowOverride All
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

確認するには、ブラウザで、http://127.0.0.1:9001/ にアクセスする。
あくまでも開発環境なので、とりあえず Options とか AllowOverride の値は気にしない(笑)

もし、違うポート番号のバーチャルホストを追加するには、上記のソースを違うファイルにコピーして、 9001 を 9002 等に変更すればOK。

MySQLのインストール

これは、もっと簡単。
本家で Mac 用のバイナリが配布されているので、それをインストールする。

MySQL :: Download MySQL Community Server

たくさんあって分かりにくいかもしれないが、使用している OS の.dmg をダウンロードすれば、インストーラーでインストールでき、システム環境設定で起動停止や自動起動の設定も行える。

ユーザーやパスワードの設定は臨機応変に。
データベース名も含めて単純に本番環境に合わせるのがいいと思う。

PHP の設定

Mac では PHP はプリインストールで、Snow Leopard にインストールされているバージョンの PHP は日本語にも対応しているので特に変更する必要はない。

が、もし変更する場合は、以下のように .htaccess で変更するのがオススメ。

php_value display_errors 1

こうすることで、多様な本番環境に柔軟に合わせることができる。

MacOSでGitHub – ファイルの更新からコミット

前回及び前々回に続いてGitHubについて。

今回はいよいよファイルを更新して、レポジトリに反映するところまでを行う。

GitのcloneとSubversionのチェックアウト

ローカルやテストサーバーなどにファイルをダウンロードして、更新作業を行うには、Subversionでは、チェックアウトという操作を行い作業ディレクトリを作成する。

そして、Gitではこれとよく似た操作でcloneという操作を行う。

では、このcloneとsubversionのチェックアウトは何が違うのか?

両者の最も大きな違いは、cloneの結果得られたローカルの作業ディレクトリ内には、レポジトリの全ての修正履歴が含まれている点にある。

したがって、サーバーへのアクセスができないときでも、履歴が参照できたりする!これはエライ!

実際にcloneを行って作業ディレクトリを作成する

ターミナルでデスクトップ上等に任意のディレクトリを作成する。

mkdir ~/Desktop/WorkDir
cd ~/Desctop/WorkDir

この後、cloneを行うためのコマンドを入力するのだが、そのためのリポジトリのパスをあらかじめ調べておく。

リポジトリのパスは、前回の記事で作成したforkの画面上に記載されている。

forkをしたリポジトリは、”Read+Write Access”となっていることに注目。

では、実際にこのパスをコマンドにコピペして使用する。

git clone git@github.com:user/path/to/repos.git

以上を実行すると、カレントディレクトリ内に作業ディレクトリが作成される。

commitしてpush

作業ディレクトリ内に作成された、ファイルを修正したらリポジトリに修正内容を反映する。

それには、以下の操作を行う。

1)追加したファイルや修正したファイルをGitの索引に追加する。

git add file.txt

file.txtというのが修正したファイル。
これに該当するコマンドは、Subversionにはない。

2)コミットする

git commit -m “hogeをhugaした”

これは、コマンドのフォーマットは、Subversionとにているが、この時点ではサーバーのリポジ鳥に反映されていないことが、大きく違う。

なので、以下のコマンドを実行して、”なかった事にする”ことができる。これもエライ!

git reset --soft HEAD^

3)サーバーに反映する

コミットした結果をリポジトリに反映するには、以下のコマンドを実行する。

git push

以上で修正した結果が、forkに反映される。

もし、forkに反映されたものをマスターに反映してもらいたいなら、メール等でマスターのオーナーにお願いすると、反映してもらえるかもしれない。

というわけで、gitについてはここまで。

ちなみに、Gitコマンドについては以下のサイトがわかりやすくまとまっていた。

Gitを使いこなすための20のコマンド – SourceForge.JP Magazine : オープンソースの話題満載

MacOSでGitHub – 既存のプロジェクトをForkする

前の記事に続けて、GitHubについて。

タイトルでは、「MacOSで」とあるが、今回はOSはどれでも同じ。

GitHubについてさらに詳しく

GitHubとは、分散リポジトリのクラウドサービスで、簡単に言うとSubversionが高機能になったシステム(git)のWebサービスである。

では、gitとは何かと言うと、Linuxを開発したリーナス・トーバルズさんが開発したバージョン管理システムで、彼に言わせるとCVSやSubversionは最悪らしい。(笑)

何が最悪なのかは、私の技術レベルではよくわからないが、要はSubversionみたいなバージョン管理システムがGitで、そのレポジトリをオンラインで共有出来るようにしたサービスがGitHubだと考えるとわかりやすい。

今回やりたい事

今回は、WordPressの某テーマファイルを日本語化するに当たり、私以外の方がすでにGitHubでリポジトリを作成しており、そこでメンテナンスをしていた。(感謝!)

ところが、現在の最新バージョンのテーマファイルに対応していなかったので、それを引き継いで修正したいと考えた。

既存のリポジトリをForkする

既存のリポジトリを引き継ぐには、Forkという機能を使用する。

これは、Subversionで言うところのブランチと似ているが、もとのリポジトリにアクセス権が無くても出来ることとか、あとでメインのリポジトリ(マスターと呼ぶ)にマージすることもできる(これはマスターにアクセス権が必要)など、ややブランチとはニュアンスが違う。

実際にForkするには?

引き継ぎたいリポジトリの画面を開いて(例えばこれ)、右上にある「Fork」をクリックする。

これだけの操作で、既存のリポジトリのForkが完了して、コミットができるようになる。

もちろん、Forkしたものは削除もできる。
削除するには、さきほどのForkボタンの左側にある「Admin」ボタンをクリックして、「Delete this repository」をクリックする。

Subversionでブランチを作る手間を考えると、ここまでは簡単。

というわけで、今回はここまで。

MacOSでGitHub – アカウントの作成から初期設定まで

今日、GitHubというサービスを始めて使った。

Githubとは、分散リポジトリのクラウドサービスで、まあ、簡単に言うとオープンなSubversionって感じ?

ちょうど「株式会社はてなの開発戦略」というプレゼンテーションで紹介されていたので、以下のとおりご紹介。

アカウントを作成する

GitHubには0.3GBまで保存できる無料アカウントが用意されており、他にもディスク容量等によって、いくつかのプランがある。(フリーミアムなのだ!)

無料アカウントを作成するには、以下のページで登録する。

アカウントの詳細を登録する

ここまでの作業でとりあえずログインはできるようになるが、以下のページでURLや名前などの公開情報や、ファイルをコミットするための公開鍵を設定できる。

公開鍵は後述するので、とりあえず、それ以外の情報を登録しておく。

ちなみに、このページで「Email」を登録すると公開されてしまうので要注意!

Your Account – GitHub

公開鍵の作成

以降はMacOSXのターミナルでの作業が中心。

まず、ターミナルで以下のコマンドを入力して公開鍵を作成する。
パスフレーズの入力を求められるので、任意のパスフレーズを入力するか、パスフレーズが不要な場合は、そのままEnter。

ssh-keygen

上記のコマンドを入力すると、.sshというディレクトリが作成され、その中にid_rsaというファイル名の秘密鍵と、id_rsa.pubというファイル名の公開鍵が作成される。

この公開鍵をGitHubに登録するには、以下のコマンドを実行して出力された文字列をコピペして、「SSH Public Keys」のページで登録する。

cat .ssh/id_rsa.pub

gitコマンドのインストールと設定

GitHubは分散リポジトリのウェブサービスなので、ファイルをコミットしたりチェックアウトするためのコマンドが用意されている。

MacOSXでは、MacPortsで提供されているのでそれを利用してインストールする。

MacPortsがまだインストールされていない場合はこの記事をご参照。

sudo port install git-core +gitweb +svn

とっても優しい github の使い方 – ¬¬日常日記 によると、以下のコマンドも実行しておいたほうがいいらしい。

git config --global user.name "Your Name"
git config --global user.email you@example.com

以上、とりあえず、今回はここまで。

iPhoneシュミレーターを使ってウェブサイトをテストする

自分のウェブサイトがiPhoneでどのように表示されるかどうかを確認するには、いちいちiPhone実機で確認するよりも、Xcodeに付属しているシュミレーターを使用した方が手っ取り早い。

Xcodeのダウンロード

ご存じない方のために、Xcodeは、以下のサイトから無償でダウンロードできる。

iPhoneシュミレーターの起動

意外とどこにも書いていないので、わたしも最近まではXcode経由で起動していたのだが、Xcodeをインストールすると、iPhoneシュミレーターは以下のパスに.appがある。

/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications

iPhone Simulator.appをDockに登録しておけば、さら幸せに。

シュミレーターを起動すると、iPhone内のSafariを起動してURLを入力すれば、以下のように普通にウェブサイトが表示されてめでたしめでたし。

あとは、グラブでキャプチャすれば、顧客へのプレゼンもバッチリ。

MacでSMCリセットを行う

先日、愛用しているMacBook ProでBluetoothマウスの接続がいきなり解除された。

電池切れかと思いきや、電池を交換してもダメ。
あれ?とおもっているうちに、Bluetoothキーボードもつながっていないことに気がついた。

さっそくシステム環境設定を開いてみると、あるはずの「Bluetooth」が消えてるじゃん!

というわけで、いろいろ調べた結果、SMC (System Management Controller)というのをリセットすれば良いことを発見した。

SMC (System Management Controller)のリセット

アップルのサポートによると以下のような感じ。

Intel-based Macs:SMC (System Management Controller) のリセット

私のMacBook Proは、バッテリーが取り外しできないタイプのものなので、以下のような手順で行った。

  1. コンピュータを終了します。
  2. MagSafe 電源アダプタを電源に接続し、まだ接続されていない場合は Mac に接続します。
  3. 内蔵キーボードの左側にある「shift-control-option」キーを押しながら電源ボタンを押します。
  4. すべてのキーと電源ボタンを同時に放します。
  5. 電源ボタンを押してコンピュータを起動します。注意:SMC をリセットしたときに、MagSafe 電源アダプタの LED は、状態をそのまま維持するか、一時的に消灯します。

あまり、意味もなくやると良くないと思うので、ハードウエア廻りで不具合が発生した時以外は、試さないようにしましょう。