2006-01-01から1年間の記事一覧

大掃除

引越してまだ半年であまり汚れてなかったこともあり、さほど時間をかけずに済みました*1。 そこで、3.2 のバグを直すついでに C++ 用のテストフレームワークを調べてみました。 CppUnit http://sourceforge.net/projects/cppunit Boost Test Library http://…

今年を振り返って

年賀状も出したので、今年を振り返ってみます。 1 月:SKK 辞書のリファクタリングに着手しロード時間を短縮、Universal Binary への対応にも着手 2 月:複数辞書に対応、Cocoa Bindings へ移行 3 月:SKK 自動更新辞書を実装し、外部 skkserv 辞書にも対応…

Leopard Developer Application Technologies Overview

この前と同じシリーズですね。 http://developer.apple.com/leopard/overview/apptech.html Cocoa 向けに、Scripting Bridge というものが追加されるようです。これを使うと、Scriptable なアプリケーションを Objective-C からも簡単操作できるようになりま…

結婚式 & 披露宴

昨日は結婚式と披露宴でした。いやーもーホントに疲れました。でも、皆さんにお祝いしてもらってとても良かったです。自分で書くのもナニですが、結婚式と披露宴はやったほうがいいですね。ケジメというか、節目というか、大人の仲間入りというか。大切だと…

Leopard Developer Tools Overview

http://developer.apple.com/leopard/overview/tools.html 公開されましたね。主なトピックは以下の通り。 Xcode 3.0 コードエディタを大幅に改善ハイライトや補完がより高速・正確に。普段は emacs ばかり使ってますが、気になるところです。 編集・ビルド…

クラス図

UTF-8 を簡単に使えるようなクラスを考えていたのですが、結局のところ std::string のままでいいんじゃないかという気がしてきました。文字列を分解する時の区切り文字は ASCII 範囲だし、見出し語をマッチさせる時にはバイトの塊として扱うだけです。とな…

文字コード変換ファンクタ

重い腰を上げて、文字コード変換用のファンクタを書いてみました。世の中に出回っている C++ 用のライブラリをいくつか調べてみたのですが、どれもしっくりこなかったので、gauche の文字コード変換部分を拝借して自作しました。unsigned char を一文字受け…

SKKEnvironment2

見直していたらずいぶん抜けがあることに気付いたので、修正してみました。まだ抜けがあるかも。 辞書をハンドリングする部分を抽象化して、共通インタフェース(検索、補完、単語登録、単語削除)を定義しておけば、汎用的なエンジンになりそうです。SKKEnvir…

SKKEnvironment

GenericStateMachine を使ってアウトラインコードを書きながら、状態遷移図も書いてます。大分まとまってきました。なるべく時計まわりに遷移が進むように配置しています。再帰的な単語登録に入る時にコンテキスト*1をスタックに push し、抜ける時に pop し…

D & E

今年もとうとう 10 月です。年月の経過するスピードが、どんどん加速していくのを痛感します。だからと言って「時間がない!!!」とばかり言っているのはある意味、自分の無能さを証明しているようなものです。だから、今やるべき価値あることを、粛々と進める…

Generic State Machine Library for C++

C++ 向けの状態機械ライブラリを開発するプロジェクトを立てました。 http://statemachinecxx.sourceforge.jp/ 『Generic State Machine Library for C++』なんて書くと、なんだか超汎用的で偉そうな感じですが、中身は全然そんなことはなくて、ヘッダーファ…

電子辞書

SII の SR-ME7200 という電子辞書を購入しました。 http://www.sii.co.jp/cp/products/english/srme7200/index.html 電子辞書は初体験なのですが、あまりの快適さに驚きました。久々に頭をガツンと殴られたような、衝撃的な体験です。今までどれほどの時間を…

再帰的な関数定義

新エンジンの状態遷移を関数でハンドリングするにあたって、再帰的な関数定義がうまくできずに悩んでいたのですが、まさにそのものズバリの実装を見つけました。 http://www.gotw.ca/gotw/057.htm テストコードを書いてみます。 #include <iostream> struct Status; ty</iostream>…

IM 飲み会

MacUIM の谷津さんに誘われて、InputMethod な飲み会に顏を出してきました。 メンバーは OpenVanilla の開発者で WWDC 帰りの劉(りゅう)さん、OS X や *BSD 方面で活躍されている原岡さん、UIM メンテナの加藤さん、MacUIM の谷津さん、諏訪の 5 人。ほぼ全…

WWDC 2006 終了

いろんなところで言われてますが、全体的に今回の WWDC は肩透かしのような印象がありますね。Leopard はリリース時期も遅くなりそうだし、なんとなく「実は開発が難航してるのか?」と心配になります。WWDC の開催が遅れると聞いた時には、何か大きなネタを…

新居*1に合わせて、机を注文しました。KOKUYO の Delphi というオフィス家具です。これで集中してコードを書く環境ができそうです。次はやっぱり椅子ですね。座り心地の良いものにするか、あるいは、短時間しか座れないような固い椅子にすべきか。ゆらゆらと…

入力モードを整理する(3)

前回の続きです、と言いたいのですが、あれから随分と日が経ってしまったこともあり、いろいろぐちゃぐちゃこねくりまわして考えが変わった部分もあり、その経緯をまたおさらいしていくのはちょっとつらいなということもあり(そうです言い訳ですごめんなさい…

1024 突破

ついにというか、ようやくというか、AquaSKK 3.0 のダウンロード数が 1024 を超えていたことに気付きました。わーいわーい、嬉しいな♪ 皆様のご愛顧に感謝します。今後ともよろしくお願いします。次は 2048 ですね ;-)

今後の開発スケジュール

先月は引越し & 仕事のトラブルでヘトヘトでした。それと、個人的なことですが、入籍しました。式は今年の秋ごろを予定しています。なので、AquaSKK の開発に使える時間は一段と減りそうです。式の準備のことを考えると、とても憂鬱になりますね。とほほ。 …

static 変数の呪い

恥ずかしながら、メンバー関数内で定義した static 変数「も」インスタンス間で共有されるということを知りませんでした。 #include <iostream> class base { void func_private() { static int i = 0; std::cerr << "private=" << i ++ << ", "; } protected: static </iostream>…

入力モードを整理する(2)

前回は入力コンテキストを単語登録とみなしてひとまとめにする、というところまで行きました。この考えを推し進めて、インタフェースに落とし込んでみることにします。 class SKKContext; class SKKEnvironment { SKKContext base_; std::stack<SKKContext> stack_; publ</skkcontext>…

Will Cocoa kill Carbon?

ADC のメーリングリスト、carbon-dev が熱く盛り上がりました。発端は、Apple のエンジニアです。 OK, but keep in mind that Objective C is probably the most common language being used today to provide new system services in Mac OS X. It will bec…

Apple Store の CRM 戦略

Intel Mac mini を購入した時のことです。Apple Store セールスコンサルタント(以下、S 嬢)の方から電話連絡がありました。一瞬、「不具合で出荷延期か?」と嫌な予感が頭をよぎりましたが、意外にも、.mac 割引キャンペーンのことでした。 どういうことかと…

入力モードを整理する(1)

AquaSKK の入力モードを整理してみたいと思い立ちました。なんとなく、整理できそうな予感が芽生えてきたのです ;-) まず最初に、大きく二つの動作モードに分けてみます。一つは確定モードで、もう一つは変換モードです。つまり「▽」が表示されているかどう…

Apple Human Interface Guidelines

ADC には、ユーザーインタフェースに関する優れたガイドラインが用意されています。Part I を読むだけでも充分参考になるのですが、個人的に「同感」というところを紹介してみたいと思います*1。 Apply the 80 Percent Solution During the design process, …

Intel Mac 対応のポイント

3.0 で Intel Mac に対応しましたが、コーディング上のポイントを簡単にまとめておきます。AquaSKK はアプリケーションに密着して動作するコンポーネント部分と、それらとメッセージ通信して変換などを行なうサーバー部分に大きくわかれています。 1. コンポ…

3.0 リリース

ぐったり。今回は変更量が多かったので、リリースにも神経を使いました。もう疲れ切ってしまったので、詳細についてはまた今度。週末は本業のリリースで徹夜します。ぬはは。

Objective-C Mac OS X プログラミング

Objective-C Mac OS Xプログラミング作者: 荻原剛志出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/04/07メディア: 大型本 クリック: 94回この商品を含むブログ (24件) を見る買いました。Objective-C については趣味で 3 年、日数換算したら数ヶ…

酔っ払い

うわー、昨日の日記はひどいですね。酔っぱらうとこんな恥ずかしいことを書いてしまうのか、僕は。まあ、ご機嫌だったことだけは良くわかります ;-)今日は若干二日酔いです。気をつけよっと。

Boot Camp は誰を鍛えるのか?

そりゃもちろん、Windows ユーザーですよね ;-) さすがに Apple はうまいネーミングを考えるなぁと感心します。 それはさておき、今日は後輩の結婚式でした。おめでたい席が久々だったのも多分に影響してると思うのですが、とても良い結婚式 & 披露宴で、思…