#define _(x) #x char *c = _( #include "file" );
OpenMeta の将来と Mountain Lion
OpenMeta とは Mac OS X 上でファイルのタグ付けを実現する非標準規格。この規格の将来性を危ぶむ声が上がっている:OpenMeta’s Future « Macdrifter、Openmeta standard and Mountain Lion? / Problems & Questions / Discussion Area - Cocoatech Support
曰く、 OpenMeta に準拠したタグ付けアプリケーションは最近付けたタグの履歴を共用のフォルダに保存しているのだが、 Mountain Lion においてサンドボックス化されたアプリケーションはアクセスできるフォルダが制限されるため、タグの履歴の共有も不可能になるとのこと。 App Store で入手できるタグ付けアプリケーションのいくつかは、すでにタグの履歴を個別に保持しているという。
タグ自体はファイルの拡張属性に保存されるため将来に渡って消える心配はないと書かれているが、ここでSnow Leopard において OpenMeta のタグデータが消える可能性があったのを思い出した。拡張属性に配慮していないアプリケーション(大部分はそうである)がファイルに書き込みを行うと、拡張属性が消えてしまうというもの(追記:Mountain Lion においてこの挙動が改善されているかどうかは未検証)。 OpenMeta はタグデータをバックアップする仕組みを定めているためタグが消えても復旧できるのだが、このバックアップデータもまた共用のフォルダに保存されている。
ということは、 Mountain Lion においてはタグの履歴のみならずタグのバックアップデータも各タグ付けアプリケーションが個別に保持することになる。これでは複数のタグ付けアプリケーションの併用が不便になるだろう。
タグデータそのものが使えなくなってしまうことは(近い将来のうちには)ないにせよ、 OpenMeta の先行きは暗いかもしれない。
SSH ポート転送して 2ch に書き込む手順
書き込み規制されているローカルホストから規制されていないリモートホストに SSH で接続してポート転送し、 2ch に書き込む手順を書いておく。ここではスレの URL が http://hoge.2ch.net/test/read.cgi/ita/12345 だとする。
- httpd などがローカルホストの80番ポートを使っているなら切る
- /etc/hosts に
127.0.0.1 hoge.2ch.netと書く sudo ssh -L 80:hoge.2ch.net:80 -i /path/to/your/.ssh/id_rsa $remotehost- http://hoge.2ch.net/test/read.cgi/ita/12345 を開く
これでいける。
ホスト名が一致しないと(たとえばhttp://localhost/test/read.cgi/ita/12345 を開くと)スレを開く時点で403が返る。
また80番ポート以外を使うと(たとえば8080番を転送して http://hoge.2ch.net:8080/test/read.cgi/ita/12345 を開くと)書き込み時のリファラチェックで弾かれる。
Mission Control の仮想デスクトップ番号が取得できない
デスクトップの番号を表示するだけの他愛ないアプリを作ろうとしたのだが。
(Snow Leopard までの)Spaces で現在の仮想デスクトップ番号を取得する方法はある:objective c - Detecting when a space changes in Spaces in Mac OS X - Stack Overflow
が、 Lion の Mission Control になってからうまくいかなくなった(参照:rdar://9241430: kCGWindowWorkspace returns seemingly random numbers)。
次善の策として Dock のウィンドウ ID を使う方法を思い付いた。 Dock のウィンドウは各仮想デスクトップに1つずつ存在し、それらのウィンドウ ID は連番になっている。そこで、仮想デスクトップ1の Dock ウィンドウ ID を取得しておき、現在の仮想デスクトップの Dock ウィンドウ ID と比較すれば、現在の仮想デスクトップ番号が割り出せる寸法だ。しか、仮想デスクトップを追加・削除したりアプリケーションをフルスクリーン化したりすると Dock のウィンドウ ID が変動し連番ではなくなってしまう。
どうにも使えないので詰まっている。さっさと API を直してもらいたい。
「ボスが来た」機能のアイディア
職務中に使うのが不適切なソフトウェアやいかがわしいゲームについていることがある緊急避難モード、いわゆる「ボスが来た」機能。その起動を特定のキーに割り振ると、緊急事態に慌てていてうまく押せないことがある。
そこで、任意の複数のキーの同時押しを「ボスが来た」グローバルホットキーに設定できるといいのではないか。誤操作を防ぐため、4〜5キー同時かつ修飾キーを除く判定にするとよいだろう。キーボードをざっと撫でれば発動するので便利だと思う。
Xcode 4.3 にしてから? git-svn が使えない→解決した
実のところ因果関係は定かではないが Homebrew で入れた Git の git-svn が使えなくなった。 Perlbrew で入れた Perl のライブラリに SVN/Core.pm がないと言われる。
Subversion の Perl バインディングをインストールすべく brew install svn --perl したが、 Perl バインディングのビルドでコケた。
システム標準の Perl には SVN/Core.pm が入っているので、いったん Perlbrew をオフにして Git をインストールし直した。 perlbrew switch-off; brew rm git; brew install git 。これで git-svn が使えるようになった。
メールの誤字脱字を防止するシステムを考えた
送信ボタンを押したら、メール本文に誤字を紛れ込ませてユーザーに提示する。誤字を目 grep で探し出して修正し、その結果が原文と一致すれば、メールを送信することができる。この過程で、原文にある誤字脱字も見つけられると思う。
日付っぽい文字列や人名っぽい文字列は、重要な情報だと考えられるので、優先的に書き換えるようにする。