CoreServicesUIAgent

$ defaults write com.apple.LaunchServices LSQuarantine -bool NO
$ reboot

最近(精神的な)調子が悪いのでOSをLionにしました。

DVDに焼いたり、Bootable USBを作ったりなんだりして予想通りグダグダと余計な時間を取られました。クリーンインストールしたい方で特に拘りがない方はコレを買うのが時間もかからず楽だと思います。

OS X Lion USBメモリ版 - Apple Store (Japan)

OS X Lion USBメモリ版 - Apple Store (Japan)

Aquaの水滴っぽいデザインが鳴りを潜め、凹凸の減ったUIが気分良いです。

一番嬉しかったのはSystem localeをenにしてる時でも今まではTime Zoneが日本であれば時計が日本語表示だったんですが、それがSystem locale依存になったところです。

SystemUIServer

Screencastとか撮ってる時気になってたんですよね。

Lingr Hat

githubを"Lingr"で検索してたらdrikinさんのLingr HatというLingrクライアントを発見。面白かったのでbuildしてFluidから乗り換えましたw

デザイナーにオススメのMacでのRubyの簡単な設定方法。(何故MacのGEM_HOMEはユーザー別のが先に無いのか - komagata

Snow Leopard, bashというデフォルト状態から、GEM_HOMEを設定するだけ。

~/.bash_profileというファイルに下記を書いてターミナルを再起動してください。

export GEM_HOME=~/.gem/ruby/1.8

これでsudoとかrvmとか無しで好きなrubygemが使えます。railsとかsinatraも使えるよ。

$ gem install sinatra

よくわからなくなってしまったら~/.gemフォルダを削除すれば無かったことにできます。

Let's enjoy ruby and rubygems!

DTermからGUIアプリを立ち上げるには$ open -a /Applications/Safari.appとかする必要があって面倒なので~/.macappにそれぞれのアプリをopenするスクリプトを作るスクリプトを書いてみた。

#!/usr/bin/env ruby

require 'fileutils'

def e(path) path.gsub(/[ ()]/) {|s| "\\#{s}"} end

FileUtils.rm_rf("#{ENV['HOME']}/.macapp")
FileUtils.mkdir("#{ENV['HOME']}/.macapp")

Dir.glob('/Applications/{,Utilities/}*.app') do |path|
  script = "#{ENV['HOME']}/.macapp/#{path.split('/').last}"
  open(script, 'w') {|f| f.write(<<-EOS) }
#!/bin/sh
open -a #{e(path)}
  EOS
  FileUtils.chmod(0755, script)
end

Make symlink from Mac GUI Apps. — Gist

~/.macappにPATHを通せば$ Safari.appみたいな感じで立ち上がるようになる。(DTerm等のGUIの場合は/etc/launchd.confに書く必要がある

理想のランチャー道は遠いな・・・。

ちゃんと書く場合はleiningenでproject作った方が楽だけど、手元で手軽にclojureしたい場合の為にsystem-wideにインストールする。

$ brew install clojure-contrib
# ~/.zshrc
export CLASSPATH=$CLASSPATH:/Users/komagata/homebrew/Cellar/clojure-contrib/1.2.0/clojure-contrib.jar

clojureも依存で入る。バージョンは2011/06/25現在だと1.2.0。ついでにちょっとした起動スクリプトもcljって名前で入れてくれる。

% clj
Clojure 1.2.0
user=> (+ 1 2 3)
6

引数無しだとreplが立ち上がる。

;; unk.clj
(println "unk")
% clj unk.clj
unk

スクリプトを渡せば実行される。

clojure.mainが標準入力からスクリプトを受け取れれば

#!clj
(println "unk")

って書けそうだけど、無理。

  • leiningen = rubygems + bundler
  • clojars.org = rubygems.org
  • nailgun = SWANK
  • vimclojure = SLIME

Clojure + Leiningen

leiningen入れるとclojureも入る。

% curl -O https://raw.github.com/technomancy/leiningen/stable/bin/lein
% chmod +x lein
% lein repl
Using JLine for console I/O; install rlwrap for optimum experience.
REPL started; server listening on localhost:29973.

rlwrap入れたほうが良いと出るので入れる。

% brew install rlwrap
% lein repl
REPL started; server listening on localhost:58951.
user=> 1234
1234
user=> (+ 1 2)
3
user=> (exit)

うん。

VimClojure

vimの場合はVimClojureというのが定番ぽい。VimClojureはSyntax Highlightingとかだけでも使えるんだけど、NailgunというCLで言えばSWANK的なものへのインターフェースが同伴されていて、clojureファイルを開くと同時にNailgun Serverに接続することが出来る。

Nailgun ServerもClientも別個にインストールする必要がある。

% vi ~/.vimrc
Bundle 'VimClojure'
let vimclojure#WantNailgun = 1
let vimclojure#NailgunClient = "ng"
:BundleInstall

Nailgun Client

% brew install nailgun

ngコマンドが使えるようになる。(上記のNailgunClientで指定してるのがコレ)

Nailgun Server

% lein plugin install org.clojars.autre/lein-vimclojure 1.0.0

lein plugin install xxx versionはleinのプラグインをインストールするのであって、ライブラリを入れてる訳じゃない。両方共clojars.orgにホストされてるので混同しないようにする。(依存ライブラリはproject.cljに書いて後述するlein depsで入れる)

lein helpするとlein vimclojureというサブコマンドが増えてる。

helloworld

% lein new helloworld
% cd helloworld
% tree
.
├── README
├── classes
├── lib
├── project.clj
├── src
│   └── helloworld
│       └── core.clj
└── test
    └── helloworld
        └── test
            └── core.clj
% lein deps

project.cljに書かれてるライブラリ(clojure処理系自身を含む)を取ってきてlibに入れてくれる。

% lein vimclojure
NGServer started on 127.0.0.1, port 2113.
% vi src/helloworld/core.clj

Terminal — vim — 80×24

あとはreplが開いてSLIMEみたいに評価できる。

リモートホストにssh public keyを簡単に登録するコマンドssh-copy-id。

$ brew install ssh-copy-id
$ ssh-copy-id komagata@foo.bar.com
$ ssh komagata@foo.bar.com

ヒャッハー

リモートホストに鍵登録するワンライナーをいつも忘れるのでCommand-Line-Fuを検索しにいったら見つけた。homebrewにあるなら使ってもいいかなー。

滅多に見ないんですが、HDD残り容量どうなってるのかなと見てみたら・・・

% df -h
Filesystem                     Size   Used  Avail Capacity  Mounted on
/dev/disk0s2                  113Gi   96Gi   17Gi    86%    /

結構ヤバくね?

何が容量食ってるのか分からなかったので可視化ツールのGrandPerspectiveを使ってみた。

/ - 00:52:14

大昔にCDイメージ化したMac OS Xがデカイ。こんなん要らないよ。これ容量少ないMacBook Airとかには便利ですねー。

Terminal — screen — 236×52

Macにdefaultで入ってるgemは何でユーザー別の場所が/Library/Ruby/Gems/1.8より後にあるんだろう?この順番が逆でさえあれば普通にみんなsudo無しでgem入れてもシステムが汚れなくて良いと思うんだけどなあ・・・。