Macのタイル型ウィンドウマネージャDivvyがステキ

こないだMBPをOSから綺麗さっぱりクリーンインストールした際に、@氏が一時期騒いでいたDivvyというものを導入してみました。
f:id:tochikuji:20130210000850p:plain

Divvyは画面をタイル型に分割してそのタイル部分にアクティブなウィンドウをその大きさにリサイズしてくれるという品。
f:id:tochikuji:20130209234040p:plain
これを
f:id:tochikuji:20130209234405p:plain
こうすると
f:id:tochikuji:20130209234507p:plain
こうなって
f:id:tochikuji:20130209234833p:plain
こんなことが簡単にできる素敵っぷり

もちろんDivvyは作業中ショートカットキー一発で呼び出せて
f:id:tochikuji:20130209235054p:plain
よく使う分割比(左右1:1とか)はDivvyをホットキーで呼び出したあとにもう一発ホットキーでリサイズ可能。
f:id:tochikuji:20130209235407p:plain
更にその動作自体をグローバルなショートカットにできるのでアプリケーションによってMaximizeの動作が違うMacちゃんに大変お誂え向きなものとなっています。

僕は<C-S-Space>にDivvyの呼び出しを割り当てて50%上下左右に<hjkl>を… そしてどこからでも<C-S-m>でウィンドウを画面いっぱいに最大化 なんて設定にしています。

Divvyは有料($14.00)ですが、Demo版が機能無制限(たぶん)で使えて、起動時と時たまに購入を促すポップアップが出るくらいでまずはどれだけ便利かためしてみるのもアリかなーと。
AppStoreでも購入できてこれなら複数台のMacで同一ライセンスを使いまわせるのでいいかも。
ちなみにWindows版も同価格で出ているようです。

Divvy、薦めた人みんな面白いように絶賛するしAppStoreで\1200という価格分には働いてくれると思います。

タッチペン?無ければ作ればいいじゃない

The new iPad,購入しました。
やっぱりiPadはこの大画面が強みですよね。手書きメモアプリもこの大画面のおかげでキャンバスを広く使うことができて大変重宝してます。そう、iPadならね。

手書きメモを使うにあたって、やっぱり文字や図は指じゃ書きにくいものです。
f:id:tochikuji:20120325224058j:plain
ほら、こんなに汚い。
そこで、便利なのがタッチペン。でもタッチペンは一本1000円やら2000円やら、それに先端がゴム製のものが多くて画面に引っかかって書きにくいといいます。
じゃあ、タッチペンを作ってしまおうという話です。

必要なのは
f:id:tochikuji:20120325224438j:plain
・ペン(軸)
・アルミホイル(巻きます)
・テープ(貼ります)
・導電スポンジ (ICを買ったときに刺さってるアレです)
・お好みですずめっき線
・MBP(作業台)
だけです。

先ず、鉛筆の場合には先端を平らにしておきましょう。ペン先は重要です。
f:id:tochikuji:20120325224706j:plain

ではその先に導電スポンジを巻いてペン先にするわけですが、この作業が重要です。
ペン先に使う導電スポンジは、細切れにして先端に折って付けるやり方と、正方形に切って被せる方法があります。
細切れにするとペン先がスマートで作るのも簡単ですが、角度によって複数点反応してしまうこともあるので被せるやり方をおすすめします。
巻く前に導電スポンジは平たく潰しておくとやりやすいです。
f:id:tochikuji:20120325224837j:plain

ペン先に導電スポンジをかぶせてきつく締めます。その後、根本を余さなかったときにはすずめっき線を導電スポンジにさして下に出しておきましょう。
そしてペン先の形を整えてぎゅーっと、スポンジが破けない程度にペン先に密着させます。
そしてぐらぐらしないようにペンの方も巻き込む形で巻いておきます。
f:id:tochikuji:20120325225124j:plain

アルミホイルをすずめっき線から根本ぐらいの長さに合わせて切っておきましょう。幅は2〜3巻出来れば結構です。
軸に密着するようにぴっちり巻いたら根本、特にすずめっき線と十分に密着するようにテープで巻きます。
わしゃわしゃしないようにしっかり巻きましょうね。
もった時にアルミホイルが緩んできてしまうようであればその部分にテープを巻いても結構です。
f:id:tochikuji:20120325225755j:plain
f:id:tochikuji:20120325230312j:plain

追記。アルミホイルの上に全体的にテープを巻いてしまっても普通に反応しました。
ただ、厚さは一巻きぐらいにしておかないと反応しないです。
よって完成形は以下のように。
こっちのほうがきれいでいいですね。テープを選べば市販のものよりオシャレになるかもしれませんね。
f:id:tochikuji:20120326025820j:plain

このタッチペンを使って手書きメモを書いてみました。
f:id:tochikuji:20120325230401j:plain
あまり違いもないように見えますが、まあ書きやすいです。
今度はwrittenのスペルも間違ってないですし、これもタッチペンのおかげだと思います。

ペン先から手元までの抵抗値を測ってみました。
f:id:tochikuji:20120325230556j:plain
まあ十分な値だと思います。

ペン先にスポンジ質のものを使っているおかげでゴム特有の引っ掛かりもないですし、大変軽い書き心地です!
今日日のビジネスシーンでiPadと自作タッチペンを使ってメモをとっている姿はとても輝かしくステキなものであると思います!
f:id:tochikuji:20120325230801j:plain

NSRegularExpressionのめも

Obj-Cで正規表現が使えるNSRegularExpressionですがその際に少し引っかかったところがあるのでめも。
NSRegularExpressionの詳しい使い方についてはここには書いてないので別の所を見てくださいね。

NSRegularExpression* regexpattern =
[NSRegularExpression regularExpressionWithPattern:@"\"\\\\\s?(\w++)\""
options:0
error:&error];

とまあ""で囲われた//から始まる文字列をキャプチャするだけの何の訳にも立たなそうな正規表現ですが、記事にはうってつけなので。
この正規表現このままでは動かないんです。
見ればわかるのですがNSRegularExpressionの正規表現パターンっていうのはNSString型なのでその中の\(バックスラッシュ)はNSStringでのエスケープシーケンスとして認識されてしまうので、
実際にこのコードで渡る正規表現パターンは

"\\s?(w++)"

になるんですね。
これだと\一個にしかマッチしないし空白文字を期待する\sはただのsという文字になってしまいます。

そのためこいつを期待通りに走らせるためにはこんな感じに

regularExpressinWithPattern:@"\"\\\\\\\\\\s?(\\w++)\""

\を使う場合にはNSStringとしてのエスケープを回避するために、もう一個つけるわけなんですが、
最初の"のエスケープはNSStringのデリミタとしてのエスケープのため必要ないと。
でもってその後の\\\\\\\\はパターンとして渡るのが\\\\、まあ要するに\\にマッチしますよと。
そしてメタ文字の\sは\\sに、\wも同様。
うむ。実にややこしい。

要するにですね、NSRegularExpressionはパターンがNSStringなのがすべての元凶だと。そういう事なんですね。