Archive for December, 2006

2006のおわり

December 31st, 2006  |  Published in Uncategorized

地味なようでいろいろあった2006年もおわりです。元気で来年を迎えられてほんとうによかった。

Tags: review

rtm.rb : Remember the Milk をRubyから

December 30th, 2006  |  Published in hack

rtm.rb というRubyのライブラリを作り始めました。 素人なので、コメント頂けるとうれしいです。

Requirements

Remember the MilkのAPIキーとShared Secret。ここから 申請できます。

Repository

svn checkout svn://rubyforge.org/var/svn/rtmilk

Motivation

Remember the Milkで管理しているタスクを、名刺サイズのカードに、きれいに一覧印刷したいなぁと思ったのがそもそものはじめでした。それでAPIをいろいろ触っているうちにライブラリにしようかと。

簡単な使用例

example/get.rb というサンプルをつけました。

#

simple example for rtm.rb



$LOAD_PATH << File.dirname(FILE) + '/../lib' require 'rtmilk'

-------------------------------------------------------------------


API_KEY and SHARED_SECRET are required.



# API_KEY = 'aaa' SHARED_SECRET = 'bbb'
RTM::API.init(API_KEY, SHARED_SECRET)

-------------------------------------------------------------------


get auth url for read



# frob = RTM::Auth::GetFrob.new.invoke url = RTM::API.get_auth_url('read', frob)
puts 'access, login, and authenticate following uri on your browser,' puts 'then hit return to continue' puts ' ' + url
gets
res = RTM::Auth::GetToken.new(frob).invoke token = res[:token] RTM::API.token = token

-------------------------------------------------------------------


get all lists



# # lists = RTM::List.alive_all lists.each { |l| puts l['name'] }

-------------------------------------------------------------------


get all tasks



#

tasks = RTM::Tasks.new


tasks.each { |t| puts t.name }



SoFar

  • 認証周り
  • Listの一覧の取得
  • Taskの一覧の取得
  • Listを追加
  • Taskを追加
  • Taskを削除

ToDo

  • ドキュメント
  • サンプル
  • 残りのAPI
  • 使用例ビデオをYouTubeにアップ

感想

はじめてオンラインコード管理システム (RubyForge) を使ってみています。ちょっと新鮮。

Tags: ,

Synergy 1.3.1 on OSX

December 28th, 2006  |  Published in hack

デュアルディスプレイの代わりに、Synergyを使って2つのMacで開発しています。そういうときに便利なのが、 Synergy。片方につなげているキーボードとマウスで、両方のマシンを操作できてとっても便利。

なのですが、最新版をとってくるとサーバ/クライアント共に起動すらしません。gdbでちょっと追ってみたところ、SIGBUSになって死んでいました。しかしシンボルがないので、どこで落ちているかは分かりません。

やれやれと思いながら、SourceForgeからCVSでソースをとってきて、Xcodeでビルドしてみることに。そしたら今度は10.2.8のSDKがないよと怒られました。慣れないXcodeで、SDKのパスを10.4uにし、コンパイル。エラーもなくUniversalBinaryができてほっとします。

そしてgdbをXcodeから起動し、様子を見ます。グラフィカルな表示に感激しつつ、落ちる行を見ると、

COSXKeyState.cpp:797

CFMutableStringRef mcfString =
     CFStringCreateMutableCopy(kCFAllocatorDefault, 0, cfString);

でした。APIマニュアルを見つつ、cfStringが怪しいと睨み、cfStringをセットしている

// convert to unicode
CFStringRef cfString
   = CFStringCreateWithCStringNoCopy(kCFAllocatorDefault,
                        str, GetScriptManagerVariable(smKeyScript),
                        kCFAllocatorNull);

を調べてみたところ、どうも GetScriptManagerVariable(smKeyScript) が怪しそうな感触。

ここでエンコードを取得しようという意図のようなのですが、実際に返される値は1でした。その結果、正しくCFStringがつくられず、落ちるという現象のようです。 適切なエンコードを渡したら、うまくいくのでは?

ということで、パッチをつくってみました。 一番下につけます。

これで、うまく動作するようになりました。

Report

パッチを本家に送ろうと、SourceForgeを見ていたら、[ 1541747 ] MAC OSX synergec BUS error patch というそのままこの現象やん! というパッチが既にありました… otz

教訓

手を動かす前に、よく調べよ。


とはいっても、XcodeでC++アプリをデバッグする経験値がちょこっと上がったので、これはこれで良しとします。

COSXKeyState.cpp.diff

diff -u -r1.11 COSXKeyState.cpp
--- lib/platform/COSXKeyState.cpp       23 Mar 2006 06:03:20 -0000      1.11
+++ lib/platform/COSXKeyState.cpp       28 Dec 2006 08:55:11 -0000
@@ -784,10 +784,13 @@
                str[0] = static_cast(c);
                str[1] = 0;

  • long enc_ = GetScriptManagerVariable(smKeyScript);
  • CFStringEncoding enc = (1 == enc_) ? kCFStringEncodingUnicode : enc_; + // convert to unicode CFStringRef cfString = CFStringCreateWithCStringNoCopy(kCFAllocatorDefault,
  • str, GetScriptManagerVariable(smKeyScript),
  •                                                 str, enc,
                                                    kCFAllocatorNull);
    
            // convert to precomposed
    

                
Tags:

X’mas 2006

December 25th, 2006  |  Published in Uncategorized

我が家でクリスマスでした。

また一つ素敵な思い出ができました。

Tags:

.Netすごい

December 21st, 2006  |  Published in Uncategorized

と、C++で書き始めていたのですが、よそみをして.Netも試してみることにしました。

このあたりを参考にして書き始めてみたのですが、これはすごい。ものすごい簡単に書けます。 その昔、Delphiでしょうもないアプリを作っていた頃を思い出しました。 イベントドリブンなGUIアプリをつくるときってこうやってたよなーと。

クラスライブラリの使い方も簡単そうだし、C++なんてやめて.Net/C#でいろいろやってみようと思います。

W-ZERO3アプリ開発をMacBookで

December 21st, 2006  |  Published in Uncategorized

Intel Macを買ってまずやりたかったのが、Parallels上のWindowsにVisualStudioをインストールしてWindowsMobileの開発環境を整えることでした。

W-ZERO3のアプリをつくってみたかったのです。こんなにいろんなことができそうなデバイスなのに、Palmみたくぐっとくるアプリが少ないので、なんかつくれないかなぁとずっと思っていたので。

C#とかしらないので、ひとまず慣れ親しんだC++で書き始めてみました。

VisualStudioの評価版の期限内でどれだけのものができるかが勝負です。

Tags: ,

縦GNU screen

December 18th, 2006  |  Published in 日常

GNU screenを愛用しています。 C-a S で水平方向にウィンドウを分割できるのがとても便利で、上にVim、下にGDBとかやるとものすごい生産性なわけですが、昨今のディスプレイは横長です。 なので、縦方向に分割できるようになると便利なもんだろうと思い、ちょちょいとHackすればみんな幸せになるんじゃない? とやりかけてみました。

ちょっと待てよ、と先に調べてみることに。そしたら、 [screen-devel] vertical split という、それそのままやん!なパッチが… otz やっぱりみんな考えることは同じなのですね。

手元でパッチあててみよっと。

JPTA::第5回シリコンバレーツアーに応募した

December 18th, 2006  |  Published in Uncategorized

JPTA::第5回シリコンバレーツアー に参加の応募をしてみました。 友達の輪を広げるのです。

1000文字のエッセイによってふるいにかけられるとのこと。原稿用紙2枚半。 前日に書く内容をまとめて、締め切り1時間前から一気に書き上げました。 submitしたのは、23:58という締め切り2分前でした。ぎりぎりすぎ。 情熱は込められたんじゃないかと思っています。

ちょっと困ったのは、文字数カウンタのあるエディタを持っていなかったこと。 Google Docsでなんとかできるだろうとタカをくくっていたのですが、 Google DocsはどうやらASCII文字以外はカウントしてくれないみたいで焦りました。 けっきょく、miというテキストエディタの力を借りてなんとか。

20/119 ということで、6人に1人という倍率です。 どうなるかな。


伝えることのできる文章を書くために、この本で練習しています。まだまだ努力は足りませんが、少しはマシになっているとよいな。

posted with amazlet on 06.12.18
バーバラ ミント Barbara Minto 山崎 康司 グロービスマネジメントインスティテュート
ダイヤモンド社
売り上げランキング: 8514
おすすめ度の平均: 4.5
4 ビジネスマンのステップアップに最適
4 このシリーズは読むべき
4 一定の効果があると思う
Tags:

ダイヤモンドシティ・ミューに行ってきた

December 16th, 2006  |  Published in Uncategorized

志村けん氏による東村山音頭で有名な東村山市にほど近いところに最近できた、シネマコンプレックスダイヤモンドシティ・ミューに行ってきました。

風の噂では、駐車場が4,000台規模だとか、そこに至るまでに10kmの渋滞があるとかいうものすごい騒ぎとのこと。マイカーのない我々は、モノレール→送迎バス(無料)と乗り継いでいきました。

戦利品

ホウロウのケトル。 IHでも使えるのがグッドなのです。

よくしなります。晴れた日にふとんをしばくのです。


映画は見ませんでしたが、一日中歩き回ってきたのでした。すごかった。

Binary2.0 カンファレンス 2006

December 15th, 2006  |  Published in Uncategorized

Binary2.0 カンファレンス 2006 に家からネット中継にて参加しています。

高林さんが意外と普通のひとで驚いています。

19:20

激しくHello World

アリアリで58Bですかー。

3,000行で自作VirtualMachineMonitor

どこかでお会いした覚えのある人です。

20:30

getcontext

知らなかったー。

メモリバリアとLockFree Synchronization

すごい参考になった。 マルチコアとかオウトオブオーダーとかロックしないスレッド間同期。

21:15 Lightning Talks

みんな大好きWiiリモコン。

  • PS3 + Wii : 実機デモがすごかっこよかった。
  • サイボウズラボ系 : 一見ネタっぽいけど、実はすごいアイデアなあたりが流石。
  • g新部さん : GNU USB。
  • ASCII1.0 : ほのぼのやなぁ。

終わり

IRCでちょこちょこ発言しつつ、VLCでネット中継をコタツで見ておりました。ネット中継ってほんとにいいなぁ。遠くまで行かなくていいし、ご飯食べながらでいいし。

参加されていた方、スタッフの方、おつかれさまでした。次回は現場に行きたいなぁ。

Tags: