MacOSX

Mailのフィード登録はURIエンコードが必要

PubSubフレームワークのテストのため、Mailにフィードを追加してみて気がついたのですが日本語はうまくないですね。例えば、テクノラティのウォッチリストのフィードは"http://feeds.technorati.jp/search/福田総理"といったようになるわけですが、これをそのままMailのフィードに追加使用とすると何も反応しません。

LeopardのPubSubフレームワーク

Leopardで追加された新しいフレームワークPubSub.FrameWorkをようやく触ってみました。気に入ったFeedリーダーがなく、NSXMLDocumentクラスなんかをひねくり回してそれらしきものを作成したこともあったのですが、フィードの多すぎるバージョンに対応した実装は、手間暇がかかるうえ大して面白くもない作業なので中断(挫折)していたんです。

Cocoa Browser SN+

CocoaのリファレンスはXCodeからももちろん参照できるんですが、リファレンスウィンドウがXCodeアプリケーションのウィンドウの一部なので切り替えが面倒です。僕の場合、どうしてもクセでコマンド+タブでウィンドウを切り替えようとしてしまうのでこれまで結構ストレス溜まってました。スクリプトの都合...なんかでウィンドウを半分にしたり移動したりという手も使ったり、SafariでADCのページを開いておいたりと色々試したんですが、昨日いいもの見つけちゃいました。CocoaAPI参照用のCocoa Browser SNというツール。これだと独立したアプリなのでコマンド+タブで切り替えができるしスティッキー機能がとっても便利。古くからあるようですがまったく知りませんでした。なんて便利!

僕としてはクラス名やプロトコル名での検索機能も欲しかったので第2カラムでも検索できる機能を追加しました。せっかくなので、公開(ライセンス:GNU GPLv2)しときます。下記からダウンロードしてください。ちなみに3.1ベースですのでLeopardオンリーです。)

ほしたかのり氏・Satoshi Numata氏に感謝いたします。

スクリーンショット

CoreData - 既存のモデルに項目を追加するのは大変

CoreDataプログラミングでは、ビジュアルツールでモデルを作成しそれをインタフェースにドロップするというお気楽プログラミングが可能ですが、モデルに項目を追加する場合ちょっと大変です。あるエンティティにたった一つプロパティを追加したかっただけなんですが...

XCodeでSpotlightインポーターをバンドルする方法

SpotLightインポーターのデプロイは

  • MyApp.app/Contents/Library/Spotlight
  • /Library/Spotlight
  • ${HOME}/Library/Spotlight

のいづれかに配置するわけですが、MyApp.app配下以外に配置するとなると別途インストーラ作成するなどの手間がかかるので通常はアプリケーションにバンドルします。バンドルするにはターミナルから

Leopardのアドレスブックが復元できない!?

in

年賀状の季節しか使わないアドレスブック。そろそろバックアップから復元しようかと思い、実行すれどまったくリストアできず。何度やってもダメ。朝の貴重な時間を無駄にしました。

ユーザ/ライブラリ/ApplicationSupport/AddressBookを削除してリストアすれば良いようです。クリーンインストールした人は危ないようです。

使っていた宛名職人、いい加減古くなりすぎたのでバージョンアップするか、別のソフトを探すが思案中。しかし、未だに年賀状を書く自分が愛おしいかも...疎遠になった人ほど年賀状が必要だよね。

(参考)http://docs.info.apple.com/article.html?artnum=306482-ja

NSTextViewの文字列を取得する。from Tiger to Leopard

NSTextViewから入力した書式付きのドキュメントを単なるテキストとして取り出す処理を、Tiger時代に、

NSTextStorage* textStorage = 
  [[NSTextStorage alloc] initWithRTF:aTextViewObj documentAttributes:nil];
[textStorage string];

みたいな感じで処理していてちゃんと動作していた(と思う)はずなんですが、Leopardに移行してみたらこれがちゃんと取り出せていません。Leopardで作成したドキュメントは上記のコードでもちゃんと取り出せるのですが、Tigerで作成していたドキュメントは上記のやり方ではnilとなってしまいます。該当のTextViewを例えば改行を入れるなどして編集し直して保存すればうまくいくのですが....

Tigerで保存したNSTextViewフィールドのダンプをとってみるとどうも書式情報が失われているような気がします。(あきらかにデータ量が少ない)仕方がないので、RTF決めうちは止めて

NSTableViewに追加した項目をすぐに編集可能状態にする方法(CoreData)

バグ修正ついでに、前から気になっていた箇所を修正。項目をNSTableViewに一覧表示しているのですが、新規に追加した項目を編集するときいちいちカラムをダブルクリックしなきゃいけないのが面倒なんです。項目を追加した時は普通すぐにデフォルトでセットされた値を編集するのだから、追加した時点でダブルクリックしないですぐに編集できるように変更したい!こんなこと簡単だと思っていたのですがプチハマリ。

NSTableViewを編集可能状態にするのはNSTableView editColumn: row: withEvent: select:だというのはあらかじめ調べてあったし、フレームワークにまかせきりの実装でも追加した時はちゃんと追加した項目が選択された状態になっていたので、ArrayControllerクラスで選択されている行にeditColumnメッセージを送信するだけでよいとタカをくくっていたのですが、

Leopardのdoxygenでリンクエラー

Leopardへの移行のタイミングでDoxygenが1.5.4にバージョンアップされてましたので早速インストール。GUI版のバイナリもありましたがコマンド派なもので...ところが、いざmakeをしてみると、謎のリンクエラー。lcrt1.10.5.oがないよとか言ってくる。

Leopardのターミナルがとっても便利になった

Terminalで作業中、間違ってcmd+Tしたらなんと....タブ化されました。

メニューなんか見たことなかったけれど、よく見ると[シェル]メニューが....。色も付くんだ。グループ化というのもあった。めちゃ便利そー。

viで日本語も入力できるし。OSX v5にしてようやく...という感じだけど、とてもうれしいです。

移行完了。またタイプミスだぁ。

早起きして地道に移行。ようやく移行完了。途中、SourceForgeのレポジトリにアクセスできなくてスワッLeopardのバグか!?などど思っていたら単にコマンドの入力ミス。historyだったので何度やってもPermission deniedばっかであれやこれや設定を見直したり新しく認証キーまで登録したり...多いに無駄な時間を使いました。も少し気の利いたメッセージを出して欲しいもんだ。

LeopardのRuby関連環境

金曜に届きました!Leopard。なにやかやでようやく昨日の早朝インストールしました。Miniに変えたばかりでアップデートインストールにしようかとも思ったのですが、後々面倒が起こりそうなのでクリーンインストールしました。まだ、セットアップは完全じゃありませんが、今後は必要になるたびものを入れていくというスタンスでいこうかな。

気になる開発関連の環境ですが、付属のXCodeをインストールした状態で

Leopard、とうとう正式発表!

in

どうせ使えないとわかっているiPhoneなんかのためにリリースが遅れていたLeopardがとうとう正式発表されました。速攻、予約しました。とはいっても、(僕にとっての)目玉の機能はあんまりなくって便利そうだなと思っているのはStackくらい。ホントは派手なギミックはいらないんですけどね。むしろ、OSのバージョンアップよりも開発環境のほうが気になるところ。XCodeが大幅に機能強化されるらしいので、いくつかの自作アプリがきちんとmakeできるか心配、いや楽しみですけどね。いづれにせよ、待ち遠しいぃー。

Apple Store(Japan)

Loepard

in

WWDCから約一週間、ようやくそろそろLeopardに関する情報もこなれてきてなんか10月が待ち遠しぃ。そろそろ古くなりつつある現行PPCをMacMiniに買い換えようという目論んでいる僕としてはなんとかLeppard発売までMacMiniがラインアップから消えないで欲しいと願うばかり。なんとな発売直前に姿を消しそうな予感もあるんですが....

fink入れました(Lighttpd1.5の準備)

Lighty1.5の./configureでglib2関係のエラーがでて、必要なライブラリを個々にインストールするのがだんだん面倒になってとうとうfink入れちゃいました。これまで、なんとなく導入を躊躇っていたんですけどまあ、あるものは使えってことでライブラリのインストールなんかに時間とられるのも何だし。

finkの導入自体は簡単でダウンロードしたパッケージをインストールするだけ。最後に「シェルに一行追加するよ」ってアナウンスがあるけどOKで終了。.bash_profileに/sw/bin/init.shが追加されます。あとは、必要なライブラリをコマンドラインでインストールするだけみたい。ライブラリに依存関係があればちゃんと関連を示して、これもインストールするよって言ってくれます。簡単・楽ちんです。もっと早く使えば良かった。

コンテンツの配信