近頃の macports + ruby では +nosuffix variant が廃止されている

macportsrails の事例をググる

sudo port install ruby19 +nosuffix

などの例がたくさん出てくるが今月の以下の変更から流儀が変わっている(variants による制御は廃止のよう)。

https://trac.macports.org/changeset/103918/trunk/dports/lang/ruby19/Portfile

$ sudo port install ruby20
$ sudo port select ruby
Available versions for ruby:
	none (active)
	ruby20
$ sudo port select ruby ruby20
Selecting 'ruby20' for 'ruby' succeeded. 'ruby20' is now active.

https://github.com/kimuraw/macports-port-select-ruby が取り込まれた模様。

MacにEmacs 24をインストールしてみた

(わけあってMac Ports使い)

$ git clone http://git.savannah.gnu.org/cgit/emacs.git
$ git co emacs-24
$ sudo port install autoconf automake  jpeg libungif libpng tiff
$ cd emacs
$ ./autogen.sh
$ env CPPFLAGS='-I/opt/local/include' CFLAGS='-I/opt/local/include' ./configure --with-ns
$ make
$ make install
# emacs を終了
$ mv /Applications/Emacs.app /Applications/Emacs-23.app
$ mv nextstep/Emacs.app /Applications/Emacs.app

なお、何が違うのかはまだわかっておりません。

はかどる話(主にmac)

アプリの切り替え、起動

エディタ、ブラウザ、ターミナルとかで仕事してるとアプリケーションの切り替えが頻繁で面倒ですね。Web開発者とかではブラウザを2つ3つぐらい区別して立ち上げる人もたくさんいるのではないでしょうか。筆者も3つぐらいブラウザを使い分けて開発してます。

アプリケーションの切り替えをDockやexposeやCommand+TabでやるのはかったるいのでQuickSilverのtriggersをみんな使ったらいいと思います*1

「open Firefox」という設定をしておけば、「すでに起動しているFirefoxに切り替える or 起動していなければ起動」という動作をします。

設定のやり方はわかばマークのMacの備忘録 : Quicksilver/ Triggers の説明(2)を見るのがわかりやすいですね。
何をtriggerに割り当てるかですがCommand+Shift+[A-Z]あたりは個人的にはアプリ内であまり使わないので自分はCommand+Shift+[A-Z]を割り当てています。Command+Shiftを潰したくない場合はCommand+Control+[A-Z]とかですかね。

設定例

  • Command+Shift+E
  • Commans+Shift+S
  • Commans+Shift+I
    • Open iTerm
  • Commans+Shift+L

iTermのtriggerが便利だった話

  • データの集計
  • バックアップ
  • たくさんのデータのコピー/移動
  • とても時間のかかるmake test
  • たくさんのサーバにdeploy

などのように処理時間のかかる処理をやっていて、終わったときや、意図せずコケたときにnotifyしてほしいケースって結構あるとおもうんですが、

iTermのtriggerという設定があって*2

  1. DONE という文字列が出てきたら
  2. growlに通知

という設定をやっておくといいです。必要なのはechoコマンドだけなのでローカルだろうが開発サーバだろうが本番環境だろうが、マシンごとにセットアップをせずに簡単に通知ができるので楽です。

とても時間のかかるしょり ; echo "DONE"

ってやるだけです。簡単ですね!

セットアップスクリプトなどにもいれておくとよさそうです。

*1:QuickSilverといえばランチャーというイメージが強いかもしれませんが、ランチャーとしてはQuickSilverはもう使っていなくてAlfredを使っています。

*2:今のところtest-releaseのみの機能らしい

mysqldump でカジュアルにデータのコピー

MySQL Casual Advent Calendar 2011 22日目の記事です。

いろんなAdvent Calendarの敷居を下げたり、下げ過ぎたりしているid:k12uです。

実はいろんなことに使えるみんな大好きmysqldump。

あるhost.db.tableのデータの一部を他のhost.db.table にカジュアルに移したいといったケースのために大変重宝しております。

意外とあまり知られていない "-w" オプションを使うことでSQLでおなじみの絞り込みができます。

-w 'row_id = 111' #重要です

このような感じでデータの出力を確認し、OKならパイプで直接 mysqlコマンドに食わせることで簡単にデータコピーできます。

さてこんな便利な mysqldump ですがオプションを調べようとしてターミナルでmysqldump --help と打とうものなら大量のメッセージが流れて・・・という人も多いんじゃないでしょうか。

そこで筆者がよく使うオプションをまとめてみました。選ぶ基準も説明も筆者の思いつきという大変なカジュアル具合です。

  • --compact
    • カジュアル的にはよくわからない><表示を抑制できるので大変カジュアルです。
  • -n, --no-create-db
    • create database 文を出力しないようになります。
  • -t, --no-create-info
    • create table 文を出力しないようになります。
  • -d, --no-data
    • data (insert文) を出力しないようにします
  • -w, --where=name
    • where の絞り込み条件を指定します。

しっかりちゃんと機能のあるデータコピーをやりたい場合はDBIx::Replicateなどを使うとよいと思いますが、
簡単な例であれば「mysqldumpコマンドからのmysqlにパイプでズッキューン!」でなんとかなるし簡単だよ!という話でした。

今日も大変カジュアルでしたね!

明日は永遠の新人@Spring_MTさんです。

mac の環境変数

自分用メモ。

ログインセッションに環境変数をsetする

http://d.hatena.ne.jp/a666666/20090113/1231814426

launchd経由のプロセスに環境変数をsetする

http://stackoverflow.com/questions/135688/setting-environment-variables-in-os-x/588442#588442

個別のアプリに設定する方法はBKっぽい気がするから避けている。

git-svn で svn の branch に dcommit する

(これはいい加減な情報でした。参考にしないほうがよいかと思います。)

ぐぐって一発で出てこなかったのでメモる。

(git svn clone した時点で存在していたbranchに)

$ git checkout remotes/new_development
$ git merge new_development
$ git svn dcommit --dry-run
Committing to http://host/path_to/branches/new_development ...



かわりにこちらを。
http://trac.parrot.org/parrot/wiki/git-svn-tutorial