<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="http://okajima.air-nifty.com/b/">
<title>人生を書き換える者すらいた。</title>
<link>http://okajima.air-nifty.com/b/</link>
<description>ソフトウェア作家兼投機家・岡嶋大介の日記</description>
<dc:language>ja-JP</dc:language>
<dc:creator></dc:creator>
<dc:date>2008-07-18T21:46:35+09:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.typepad.com/?v=1.0" />


<items>
<rdf:Seq><rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/07/iphone_577f.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/07/post_bcfd.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/07/tx_iphone_f414.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/06/objectpeephole_12f5.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/06/fieldaccessexce_ca0f.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/06/net_d191.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/05/post_950a.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/05/post_e9f8.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/05/paul_graham.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/05/10_65d2.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/05/rails_97d4.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/05/post_c63e.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/04/post_31d7.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/04/tactico430_eda7.html" />
<rdf:li rdf:resource="http://okajima.air-nifty.com/b/2008/04/post_ede8.html" />
</rdf:Seq>
</items>

</channel>

<item rdf:about="http://okajima.air-nifty.com/b/2008/07/iphone_577f.html">
<title>iPhoneと単体テスト環境構築メモ</title>
<link>http://okajima.air-nifty.com/b/2008/07/iphone_577f.html</link>
<description>　iPhone上での開発について自分用のメモを兼ねて公開。 　Appleは規約に...</description>
<content:encoded>&lt;p&gt;　iPhone上での開発について自分用のメモを兼ねて公開。&lt;br /&gt;
　Appleは規約においてiPhone Development Centerで入手したすべての情報は機密であるから公開してはならない、としているので、技術情報をポンポンWebに載せたりはできない。（参考：&lt;a href=&quot;http://subtech.g.hatena.ne.jp/y_yanbe/20080622/1214165879&quot;&gt;ここ&lt;a/&gt;など）&lt;br /&gt;
　ここに書く内容はGoogleで検索してApple以外のサイトで得られた情報と、自分のXCodeでの動作実験をまとめただけのものであることをあらかじめお断りしておきます。&lt;/p&gt;

&lt;p&gt;　今回取り組んだのは、XCode上で単体テストをする環境整備。まだまだプラットフォーム自体知らないことがたくさんあるのでこれはぜひとも必要だ。単体テスト環境とiPhone実機では挙動が異なる点が見つかってアセるシーンも将来たぶんあるだろうけど、まずはここから。&lt;/p&gt;

&lt;p&gt;　その大まかな手順は以下のとおり。&lt;/p&gt;

&lt;p&gt;(1) 新規にターゲットを作成し、種類はCocoaの&quot;Unit Test Bundle&quot;を選択。&lt;br /&gt;
(2) 参照するフレームワークにSenTestingKit.frameworkを追加。パスは/Developer/Library/Frameworks以下にあるものが正しく、/Developer/SDKs/...以下にあるものではNGなので注意。（実はここで１時間以上ハマってた）&lt;br /&gt;
(3) 適当にテストケースを書く。テストケースを記述したクラスは(1)で作成したターゲットにのみ含まれるようにする。テストの書き方はxUnit系列と概ね一緒で、SenTestingKitでWebを検索すればサンプルはいろいろ見つかる。&lt;br /&gt;
(4) ターゲットの設定で、リンクカテゴリにある「実行パスの検索パス」を$(DEVELOPER_LIBRARY_DIR)/Frameworksに設定。（意味のよくわからない訳語だが、英語版のXCodeではrunpath search pathだそうである）&lt;br /&gt;
(5) ターゲットをビルドする。このときプラットフォームをMac OS Xにしないといけない。iPhoneのままだとi386プロセッサでは動かない云々のエラーが出る。テストはMacOS上で動くのだからこの設定は当然なのだけど、iPhoneとMacOSのそれぞれのCocoaで挙動が異なる部分がある場合は困ることになるので注意。&lt;br /&gt;
(6) ここまですると、コンパイルが通ると同時にテストが走るようになる。STAssertTrue(false, @&quot;hoge&quot;)みたいな確実に失敗するテストを試しに書けば、実行されているかどうか確認できる。&lt;/p&gt;

&lt;p&gt;　ここまでで第一段階は終わり。ビルドと同時にテストが走るのはよいのだが、それだとテストが失敗する場合にデバッグできず路頭に迷うので、次にその設定をする。これについてすごく役立ったのは&lt;a href=&quot;http://chanson.livejournal.com/119578.html&quot;&gt;ここ&lt;/a&gt;。&lt;/p&gt;

&lt;p&gt;(7) XCodeのメニューから、プロジェクト - 新規カスタム実行ファイル を選び、/Developer/Tools/otestを選択。名前は適当につける。&lt;br /&gt;
(8) 引数と環境変数を次のように設定&lt;br /&gt;
&lt;img alt=&quot;Screem1_2&quot; title=&quot;Screem1_2&quot; src=&quot;http://okajima.air-nifty.com/photos/uncategorized/2008/07/18/screem1_2.png&quot; border=&quot;0&quot;  /&gt;&lt;br /&gt;
３番目の引数は(1)で作成したターゲットの名前 + &quot;.octest&quot;（このディレクトリ内にビルドした内容が置かれる）である。&lt;br /&gt;
ちなみに、２番目の引数の All のかわりに TestCaseClassName/methodName とすると特定のテストのみを実行できる。&lt;br /&gt;
(9) さらに、上の画面の&quot;一般&quot;タブで作業ディレクトリを「ビルドプロダクトディレクトリ」にする。&lt;br /&gt;
(10) ターゲットのGCCの設定で、GCをsupportedにする。iPhoneではGCはサポートされないが、otestはGC環境がないと動かない。（ということは、retain/releaseがちゃんとできていることを確認するテストに影響が出る。ここはぜひとも今後解決したい）&lt;/p&gt;

&lt;p&gt;　これで、(7)で作ったものをアクティブ実行可能ファイルに選択し、XCodeの実行 - デバッグを選択するとテストケースがデバッガのもとで走るようになる。&lt;/p&gt;

&lt;p&gt;　あとはコードをガリガリ書いてテスト－修正サイクルを回していくだけだぜ！&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-07-18T21:46:35+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/07/post_bcfd.html">
<title>主夫生活</title>
<link>http://okajima.air-nifty.com/b/2008/07/post_bcfd.html</link>
<description>　実は妻が妊娠しております。 　まだ初期の段階で、子供の体長は1.4cmだそうで...</description>
<content:encoded>&lt;p&gt;　実は妻が妊娠しております。&lt;br /&gt;
　まだ初期の段階で、子供の体長は1.4cmだそうで。いったいこの先どんな体験が待ち構えているやら。&lt;/p&gt;

&lt;p&gt;　最近つわりがひどいので、料理・掃除・洗濯はほぼすべて僕がやっているのだが、通常の仕事に加えてこれをこなすのはなかなか大変だ。さらには、妻の仕事（某有名小学校の教員です）まで手伝わされる始末で、作文の代筆をさせられたよ！　そろそろ学期末だし通知表づくりも始まるんだろうな...&lt;/p&gt;

&lt;p&gt;　タイミングよくというか、iPhone向けの作業が同時に始まったので、最近のパターンは昼間はオフィスでWindows使って通常の仕事、夕方まだ明るいうちに帰宅して買い物と晩飯づくり、その後Macを立ち上げてiPhoneがらみの作業、となってます。iPhoneに本当に集中できるのは妻が寝たあとの時間だけなので、あまり長くない。&lt;br /&gt;
　こうやって複数のことを同時に進めるのは、集中力が分散して本来あまり良くないんだが今回ばかりは仕方ないかなあ。二正面作戦は、日数をかけたわりに気がつくとあまり成果が上がっていない、となりがちなので。&lt;/p&gt;

&lt;p&gt;　ところで、iPhoneはたいへん面白い。ときには.NETやJavaでは考えられないような泥臭い作業も必要で、不便であることは間違いないんだが、それを「かわいい」と思ってしまう不思議な魅力がある。昔C++でガリガリ書いていた頃の記憶が呼び覚まされるぜ。&lt;br /&gt;
　これでとうとう俺もマカーの仲間入りか...&lt;br /&gt;
&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-07-15T18:36:41+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/07/tx_iphone_f414.html">
<title>TX, iPhoneなど</title>
<link>http://okajima.air-nifty.com/b/2008/07/tx_iphone_f414.html</link>
<description>　まず「はっちゅう君TX」についてコメント。 　今日になって公式にアナウンスが出...</description>
<content:encoded>&lt;p&gt;　まず「はっちゅう君TX」についてコメント。&lt;br /&gt;
　今日になって公式にアナウンスが出たみたいだけども、いったん終了になること自体は実はけっこう前から決まっていたことでした。製品としてつづいていくには、こちらで作っているクライアント側のソフトの機能はもちろんのこと、サーバ側で提供している機能、開発のコストなどもろもろの問題をすべてクリアし、ユーザ・クリック証券・僕がそれぞれ満足できるものにしていかないといけないのでね。&lt;/p&gt;

&lt;p&gt;　僕としては後日の再開を目指していて、それに向けた具体的な追加/改良機能プランもあるけれども、Tacticoプロジェクト全体としては他にも複数の案件が並走してるし、大前提としてクリック証券と前向きな合意に至れなければ再開はできないので、実際今後どうなるかは不透明です。&lt;/p&gt;

&lt;p&gt;　でもまあ今まで使ってた人からすると連載マンガの打ち切りのように見えるので、その点は大変申し訳ないと思います。&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
　一方、最近はiPhone版Tacticoの開発が本格化しつつあります。といってもPCとiPhoneでは環境が全く違うので、移植といっても単純なソースコードの書き換えだけでは終わらない点が多くあり、悩みどころ。まだiPhoneに関することは知らないことが山ほどあるのでひとつひとつ実験して解決していくのが新鮮で、非常に楽しい。これまでのキャリアでも屈指のワクワク感がある。&lt;br /&gt;
　このレベルのワクワク感は、僕の経験ではi386、Scheme、Javaくらいしかなかった。たぶんもっと仕事が進んでいくと、容易に解決できない問題や不可解な挙動に悩まされることも出てくるのは確実なのでワクワクなんて言っていられないと思うけれども...&lt;br /&gt;
　いまのところ、PC上のアプリと決定的に異なる点は、&lt;/p&gt;

&lt;p&gt;* 画面が小さいことを考慮しないといけない。でもフルカラーは出るし、１ピクセルの大きさはPCと大差ない。&lt;br /&gt;
* ネット接続が不安定であることを前提にしないといけない。地下鉄の中で使うかもしれないので。&lt;br /&gt;
* 一瞬で状態を保存してアプリ終了することができないといけない。iPhoneなので、常に電話がかかってくる割り込みが発生しうる。&lt;br /&gt;
* マウスもキーボードもない。タッチできるのみ。&lt;/p&gt;

&lt;p&gt;　の４つ。&lt;br /&gt;
　iPhoneがどれくらいの存在感を持つデバイスになるかは分からないけれども、少なくとも携帯端末のアプリ&quot;開発環境&quot;としては革命的だ。&lt;/p&gt;

&lt;p&gt;　あと相場はかなり危機的だね。そろそろ、去年の８月に匹敵する（もしかするとそれ以上の）パニックが来そうな気がしてならない。&lt;br /&gt;
　本当にいま恐ろしい（しかもいつか起きるのは確実）のは原油バブルの崩壊だ。これが来たらオイルマネーの萎縮 -&gt; いくつかの金融機関破綻 -&gt; 世界恐慌 というのはありそうなシナリオだ。&lt;/p&gt;

&lt;p&gt;　うかつなタイミングでプットを売ると即死しかねない環境だよ...&lt;br /&gt;
&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-07-08T18:29:10+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/06/objectpeephole_12f5.html">
<title>ObjectPeepHole公開ほか</title>
<link>http://okajima.air-nifty.com/b/2008/06/objectpeephole_12f5.html</link>
<description>　ちょっと更新の間が開いてしまった。 　最近もドタバタとしてて、妻の祖母の葬儀で...</description>
<content:encoded>&lt;p&gt;　ちょっと更新の間が開いてしまった。&lt;br /&gt;
　最近もドタバタとしてて、妻の祖母の葬儀で急遽石川県に行ったり（地方だと移動だけでも時間も金もかかりますね）、自宅に友人を計８人呼んで飲んだり（料理の準備はわりと大変だが外で飲むより遥かに楽しい）、久々に服役中の某友人を刑務所に訪問したりがあった。&lt;/p&gt;

&lt;p&gt;　服役の罪状は株のインサイダー取引である。奴とは以前は一緒にTacticoプロジェクトをやる予定であったのだけれど、突然の逮捕で戦線離脱となったのは相当な痛手だった。本人は幸い今でも仕事の意欲は失ってなかったので（体はむちゃくちゃ痩せてたのが気になったけど）、しっかり刑期満了を待つしかないね。悪事に手を染めたのは問題だけど、仕事の能力はあるし性格的にも僕は気にっている奴だから。&lt;/p&gt;

&lt;p&gt;　しかしシャバに出てくるのは早くても次のワールドカップの頃なのでまだかなり先だ。&lt;br /&gt;
　いまだ裁判が長引きそうなホリエモンも同様だけど、能力があって年齢的にもバリバリ活動できる人を長期間拘束する刑は賛成しかねる。刑を受けること自体は必要だと思うが、時間的拘束を避けることはできんものかね。&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
　さて、一方仕事がらみでは、ちょっとしたツールをリリースしました。&lt;br /&gt;
　名前は&lt;b&gt;ObjectPeepHole&lt;/b&gt;といって、&lt;a href=&quot;http://objectpeephole.sourceforge.net/objectpeephole_ja.html&quot;&gt;詳しい内容はSourceForgeのここ&lt;/a&gt;です。ついでに&lt;a href=&quot;http://objectpeephole.sourceforge.net/objectpeephole_en.html&quot;&gt;英語版&lt;/a&gt;の記事も書きました。あとでNUnit本家でも紹介メールを打ってみるつもり。&lt;br /&gt;
　一方、日本語のメーリングリストで紹介に適切なところが見つからなかった。なんか関連したコミュニティを知っている人がいたら教えて下さい。 &lt;/p&gt;

&lt;p&gt;　完全にエンジニア向けのツールなので素人にはわからいだろうけど、.NETでユニットテストの効率を高めたいと思っている人には興味を持ってもらえるのではないかと思います。特にGUIのテストの自動化にはかなり便利です。すでに自分でもこれを実際に使って、Tacticoのテストの自動化カバー率を上げる作業に取り組んでいます。&lt;/p&gt;

&lt;p&gt;　動的にクラスを作り、ILインストラクションを吐いてコードを動的生成するテクニックを使っています。作ってみて思ったけど、これは.NETがJavaに対して最も優れている機能かもね。&lt;/p&gt;

&lt;p&gt;　このアイデアを１年早く思いついていたら、自分の仕事時間を２週間分くらいは節約できていたろうなあ。&lt;/p&gt;

&lt;p&gt;　なんかどっちも時間を節約する話になってしまった。とにかく今はやるべきことがありすぎていくら時間があっても足らずあせってるのよ。&lt;br /&gt;
&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-06-20T17:23:44+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/06/fieldaccessexce_ca0f.html">
<title>FieldAccessExceptionでハマる</title>
<link>http://okajima.air-nifty.com/b/2008/06/fieldaccessexce_ca0f.html</link>
<description>　相場はとうとう5/16につけた高値を堂々超えてきた！今日陰線を引くのは気になる...</description>
<content:encoded>&lt;p&gt;　相場はとうとう5/16につけた高値を堂々超えてきた！今日陰線を引くのは気になるが、当面上昇基調くさい。でもその前にちょっとだけ下落してくれると嬉しいな。コールの売りポジを縮めたい。&lt;/p&gt;

&lt;p&gt;　さて前回書いた件で、動的にクラスを作るテクニックに取り組んでみたはよいものの、いざ実行してみたらFieldAccessExceptionが出てうまくいかない。&lt;br /&gt;
　本当にこの手のセキュリティがらみの問題にぶつかると資料が乏しくて難儀する。分野的にマイナーなのでWebで調べてもヒット数が少ないし...。過去にもJavaのセキュリティで何時間も悪戦苦闘して結局お手上げだったことがあった。&lt;/p&gt;

&lt;p&gt;　まあセキュリティ関係のAPIは、何を許して何を許さないかを柔軟に決められなくてはいけないし、典型的な使い方であれば簡便にできること、パフォーマンスに影響を出さないこと、などを考えるとAPIが複雑になるのは仕方ないとは思う。&lt;br /&gt;
　一般的にどんなAPIでも、設計者は全体を統一的に無駄なく記述できることを目指すのに対し、その結果抽象度が高くなりすぎて学習が困難になる、というのはよく見られることだ。「俺のしたいことはこんな単純なのに、なぜこんな面倒な手順を踏まなければならんのだ」とライブラリに対して思ったことは多くある。&lt;br /&gt;
　数年前でもJ2EEには複雑でクラスのリストを見ただけでげんなりするのがいっぱいあったが、きっと最近はさらにそうなのだろうな。抽象度と学習のしやすさのトレードオフは将来もずっとソフトウェアにとって重要なテーマだと思う。&lt;/p&gt;

&lt;p&gt;　一応、今回の件については、動的アセンブリから自分のアセンブリのメソッドを呼ぶように回流させることで問題は回避できることはわかっているけれども、当初の予定の手法で実装できれば格好いいので方法をMS本家のフォーラムで問い合わせてみた。うまい回答が得られればそっちでいこう。&lt;/p&gt;

&lt;p&gt;　しかしMSILレベルでコードを書くのは短いものであってもドキドキする。このレイヤだと型チェックがないので、int型の変数にstringを入れるのも自在である。それでもVisualStudioのデバッガはそういう事態も想定しているらしい動きをするのでなかなか流石。&lt;/p&gt;

&lt;p&gt;　一方MSDNのドキュメントはVS2008になってクソになった。フィルタを&quot;.NET&quot;にすると.NETの重要な機能のかなりの割合がフィルタから外されてしまうし、かといって全項目にすると項目が多すぎるし、検索をすればローカルのHDDだけを対象にしてすらGoogleで検索するより時間がかかる。ドキュメントはVS2005のを使おうかな...&lt;br /&gt;
&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-06-06T14:56:31+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/06/net_d191.html">
<title>.NETのイベント強制発生と動的型生成</title>
<link>http://okajima.air-nifty.com/b/2008/06/net_d191.html</link>
<description>今日は純粋に技術的な話題。 .NET（とくにWindows Forms)において...</description>
<content:encoded>&lt;p&gt;今日は純粋に技術的な話題。&lt;/p&gt;

&lt;p&gt;.NET（とくにWindows Forms)においては、ふつう外部のイベントを強制的に発生させることはできないことになっている。いろいろぐぐっても特に情報はない。&lt;br /&gt;
でも、リフレクションを使えば何とかなるのでは？　と思い立って、この前の週末にちょっと予備調査としてSystem.Windows.Forms.dllをディスアセンブラにかけて解析してみた。（サンデープログラミングとしては格好のネタだ）&lt;br /&gt;
　その結果十分いけそうという感触を得たので、今後隙をみてこの機能を使うライブラリを整備していくつもり。&lt;/p&gt;

&lt;p&gt;これで何がやりたいかというと、GUIアプリケーションをNUnitでテストするカバー率を上げるのだ。ドラッグ＆ドロップ系統やMouseEnter/Leaveというイベントを自在に発行できればテストは圧倒的にやりやすくなる。&lt;/p&gt;

&lt;p&gt;ちなみに、OnMouseEnter等のprotectedメソッドをリフレクションを使って直接呼ぶのは、自分のイベントハンドラだけでなくWindows.Forms内の実装も実行されてしまい、副作用の危険が大である。あくまでも自分でくっつけたdelegateだけを呼ぶのがポイント。&lt;/p&gt;

&lt;p&gt;さらに、このテクニックと、動的な型生成(System.Reflection.Emitにある一連の機能)を組み合わせるとテストコードの記述性は新しい次元になる。&lt;/p&gt;

&lt;p&gt;動的な型生成はJavaにはないのでJUnitにこのアイデアを使うのは無理かなあ。型生成は面白いんだが、メソッドの定義はMSILを直接使わなくちゃいけないので、足し算ひとつするんでも&lt;/p&gt;

&lt;p&gt;            g.Emit(OpCodes.Ldarg_1);&lt;br /&gt;
            g.Emit(OpCodes.Ldarg_2);&lt;br /&gt;
            g.Emit(OpCodes.Add);&lt;/p&gt;

&lt;p&gt;　こんな感じである。&lt;/p&gt;

&lt;p&gt;　ある程度出来上がったらちゃんと使い方をまとめて公開する予定です。NUnitの人たちにもアナウンスしたいのでドキュメントは英語でも書かないと...&lt;br /&gt;
&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-06-03T19:42:37+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/05/post_950a.html">
<title>今日はやなものを３つ見た</title>
<link>http://okajima.air-nifty.com/b/2008/05/post_950a.html</link>
<description>　今日はやなことが多い。 ●相場 　今日は一転急騰かよ！　なんか先物だけ盛り上が...</description>
<content:encoded>&lt;p&gt;　今日はやなことが多い。&lt;/p&gt;

&lt;p&gt;●相場&lt;br /&gt;
　今日は一転急騰かよ！　なんか先物だけ盛り上がってる相場のようにも見えるが...&lt;br /&gt;
　こういうカオスなのはやりにくい。せっかく昨日下落に備えて身構えてたのに損したよ。&lt;/p&gt;

&lt;p&gt;●&lt;a href=&quot;http://www.atmarkit.co.jp/news/200805/28/ipa.html&quot;&gt;「10年は泥のように働け」「無理です」――今年も学生と経営者が討論&lt;/a&gt;&lt;br /&gt;
　ソフトウェアの世界で、「つくる」能力のピークはかなり広めに見ても25～40歳というところ。その大事な時期を泥のように働けと言うことのできる人間がいるというのが既に信じられない。このジジイたちは若者のやる気をそぐ発言をして何が楽しいのだろう？&lt;br /&gt;
　一昨日のPaul Grahamとは天地の差だ。まあそういう会社に僕が行くことはないだろうし、行ったところで３日でと持たないだろうからあんまし関係ないといえばそうなんだが。&lt;br /&gt;
　でも、本来優秀な人が、生活のためにやむなくこういう会社に縛られていることの社会的逸失利益がどれだけ莫大かと思うと悲しい。&lt;/p&gt;

&lt;p&gt;●株価データ&lt;br /&gt;
　今後のTacticoのため、過去の株価データの入手について調べてみた。&lt;a href=&quot;http://www.tse.or.jp/market/service/data/guideline.pdf&quot;&gt;紹介された情報&lt;/a&gt;(PDF)によると、東証から直接日足データを買うと１か月あたり75600円。１か月で？まじ？　年間だと約90万、10年だと900万か...とんでもないな。&lt;br /&gt;
　創作物でもなんでもない、コンピュータで作れるただのデータなのにこの商売は腹立たしい。少なくともこれを素直に買うことはできないなあ。くそー東証め。&lt;br /&gt;
&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-05-29T15:24:45+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/05/post_e9f8.html">
<title>【相場】へんな下げ</title>
<link>http://okajima.air-nifty.com/b/2008/05/post_e9f8.html</link>
<description>　後場の急落は驚いた。こういうはっきりした理由のない動きはいやらしい。 　じつは...</description>
<content:encoded>&lt;p&gt;　後場の急落は驚いた。こういうはっきりした理由のない動きはいやらしい。&lt;br /&gt;
　じつはここ数日、&lt;/p&gt;

&lt;p&gt;月曜の急落を見て上へは行きづらくなったと判断してコールの売りを積み上げる&lt;br /&gt;
→昨日の予想以上の反発でいきなり苦境&lt;br /&gt;
→今朝も最初続伸だったので鬱になるがアメ高・円安のわりには低い気配だなと思って少し耐えると決断&lt;/p&gt;

&lt;p&gt;　という流れだったのでこの急落は嬉しい。下落で困るポジションは少なめだったし。&lt;/p&gt;

&lt;p&gt;　でもいまざっと集計すると、コールの売りが主体だったのでIV上昇の影響のため実は大して儲かってない...くやしいのう。&lt;/p&gt;

&lt;p&gt;　しかし、チャートの形としては、明日の日経がそれなりに下げるようなら、3/17を底に続いてきた反発基調の流れが完全に断たれることになるので相場はなかなか重要な分岐点にきた。明日の終値が13650以下なら80%、13550以下なら99%の確率で方向転換のサインと読んでいる。&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-05-28T15:12:54+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/05/paul_graham.html">
<title>Paul Graham</title>
<link>http://okajima.air-nifty.com/b/2008/05/paul_graham.html</link>
<description>あいかわらずPaul Grahamはいいことを言うなあ。翻訳も御苦労さまです。 ...</description>
<content:encoded>&lt;p&gt;&lt;a href=&quot;http://d.hatena.ne.jp/lionfan/20080526&quot;&gt;あいかわらずPaul Grahamはいいことを言う&lt;/a&gt;なあ。翻訳も御苦労さまです。&lt;/p&gt;

&lt;p&gt;この内容は僕がふだん思っていることをかなり代弁してくれている。&lt;br /&gt;
いやもう、一度「自由に仕事をする」味を体験すると抜けられないよ。サラリーマン時代は、もらっている給料の半分は「我慢料」、あとの半分が仕事の実質的な価値に対する報酬、という感じだったが今や我慢量はゼロである。もちろん総額も当時よりでかい。&lt;/p&gt;

&lt;p&gt;さらに、気分の乗らない日は平日の昼間でも映画観たりゲームしたり自由にできるし、余暇の使い方も妻に合わせられるので関係もたいへん良好。（余談だが、ちょっと前に日本人のセックスの回数の統計を見たが、僕らはその３倍はヤッていた！）&lt;/p&gt;

&lt;p&gt;もちろん全面的に良いことばかりではなく、仕事での収入の安定性という点ではサラリーマンのほうが遙かに優れているし、もし自分にそれなりの蓄えと相場での運用スキルがなければ今頃Googleとかでチョロチョロ働いていた可能性は大だし、今後もろもろの企みが失敗してまたサラリーマンに戻ってつまらない生活をしてしまうことだってありうる。&lt;/p&gt;

&lt;p&gt;でも何が幸せか、ということを考えると、この記事が言うようにサラリーマンとして働いたら負けなのは確かだ。ソフトウェア以外の分野なら別だとは思うけれども。&lt;/p&gt;

&lt;p&gt;自分の子供が中学生ぐらいになったらPaul Grahamの名著&lt;a href=&quot;http://www.amazon.co.jp/gp/product/4274065979?ie=UTF8&amp;tag=daisukeokajim-22&amp;linkCode=as2&amp;camp=247&amp;creative=1211&amp;creativeASIN=4274065979&quot;&gt;ハッカーと画家 &lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.jp/e/ir?t=daisukeokajim-22&amp;l=as2&amp;o=9&amp;a=4274065979&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;はぜひ読ませたい。これはまだずいぶんと先の話ではあるが、そのときでも時代遅れにはなってないない内容だろうと思う。&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-05-27T22:45:59+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/05/10_65d2.html">
<title>結婚してはいけない10のオンナ を見て</title>
<link>http://okajima.air-nifty.com/b/2008/05/10_65d2.html</link>
<description>結婚してはいけない10のオンナを見て思った。 【ギーク女】 ギークとは、ネットや...</description>
<content:encoded>&lt;p&gt;&lt;a href=&quot;http://news.nifty.com/cs/headline/detail/gendai-05018527/1.htm&quot;&gt;結婚してはいけない10のオンナ&lt;/a&gt;を見て思った。&lt;/p&gt;

&lt;div style=&quot;background-color:lightgray&quot;&gt;    【ギーク女】
    ギークとは、ネットやPCオタクのこと。
    いまや、ブログやプロフ(プロフィルサイト)の流行で、女のギークも増殖中。日がな一日、ネット三昧の妻。家の中がどんよりする。&lt;/div&gt;

&lt;p&gt;　それはただのネット中毒だよ！ギークじゃないよ！&lt;/p&gt;

&lt;p&gt;　これで思い出したけど、実は、昔は&quot;本物のギーク&quot;と結婚したいと思っていたんですよ僕は。&lt;br /&gt;
　一緒に酒飲みながら、ガーベジコレクタのアルゴリズムによる得失やら今後のIDEに求められる機能やらを語れたらどんなにいいだろうと。&lt;/p&gt;

&lt;p&gt;　でも、そういう話題には明確な結論はないにもかかわらず、どうしても宗教じみた論争になりがちだ。それだけの話ができるなら当然仕事上のプライドを賭けての論争になってしまうだろうから、もしそんな女がいたならば必ず不毛な争いが生まれるだろうからやめといたほうがいいだろうとある時から考えが変わった。&lt;/p&gt;

&lt;p&gt;　結婚相手は、性格や価値観や生きている世界がそれなりに近い必要はあるが、あまりに近いのも問題なので適度な距離があるのがよい。僕も妻の仕事のことは大してわかっていないけど、それがよいのだ。今はわりと理想的な距離を保っているので本当にそう思う。&lt;/p&gt;

&lt;p&gt;　でも残念なのは、今日仕事で起きたことを話そうにもマニアックすぎて理解してもらえないことかなあ。平日の話題がいまひとつ乏しい感じはある。&lt;br /&gt;
&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-05-20T21:45:37+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/05/rails_97d4.html">
<title>Railsをいじってみた</title>
<link>http://okajima.air-nifty.com/b/2008/05/rails_97d4.html</link>
<description>　やっぱりblog更新すると2ch含め反応があるので楽しいな。なので今日も書いて...</description>
<content:encoded>&lt;p&gt;　やっぱりblog更新すると2ch含め反応があるので楽しいな。なので今日も書いてみようかな。&lt;/p&gt;

&lt;p&gt;　まず「はっちゅう君TX」ですが、順調にいけば今週末に新しいのが出ます。でもまだβ。&lt;br /&gt;
　でもまあ僕はβと正式版に特に差があるとは思っていないです。どんなソフトウェアでもユーザがいるなら更新すべき個所は常にたくさんあるだろうし、そうであるならβであろうと正式のバージョンがついていようと後続があるのは確かなわけです。だから、たとえばMixiにログインするとロゴの脇に「βversion」と書いてあるのと同じ意味において、Tacticoもずっとβです。&lt;/p&gt;

&lt;p&gt;　さて、今日は通常の仕事の合間をぬって人もすなるRuby on Railsとやらをいじってみました。本だけはすでに読んでいたがいじるのは初めて。&lt;br /&gt;
　だが、開発用WebサーバであるWEBrickを動かすと外部からのアクセスは受け付けないのだな。これがWEBrickの標準的な挙動なのかRailsがそう設定しているのかはわからないが、最初はもっとローレベルの設定の問題だと思ってhosts.allowファイルやらiptablesコマンドやらとともにえらく長い時間格闘しちまった。Rails自体を触るのは次の機会に。&lt;/p&gt;

&lt;p&gt;　サーバサイドで株価を分析するのをやるかもわからないし、やるとしてもWebインタフェース部分をRailsでやるかどうかも不明だけど、もともとが実験的なものなんだし流行りもので固めてみるつもり。どんな技術も一度はちゃんとした規模のものを作らないと理解はできないので。&lt;/p&gt;

&lt;p&gt;　あと最近の相場は難しいね。昨日うっかりソニーを空売りして昨日のうちに撤収したけど、持ち越していたら死んでいたぜ。一方先物・オプションの方は相変わらず好調で、昨日デルタを上に強気に傾けたのが成功し、５月中旬にして年初来のパフォーマンス+20%を達成。単純計算なら年+50%を狙えるが、そういつも順調に行くわけはないのでヤバい臭いを感じたら退却して様子見に入りたい。まあこれも好調なときはいつも同じことを思っていて、いつも結局上手くは逃げられないんだけど...&lt;br /&gt;
&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-05-15T22:27:04+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/05/post_c63e.html">
<title>迷っている</title>
<link>http://okajima.air-nifty.com/b/2008/05/post_c63e.html</link>
<description>　データゲット版Tacticoを出して２週間ほど経ちました。ゴールデンウィークは...</description>
<content:encoded>&lt;p&gt;　&lt;a href=&quot;http://www.lagarto.co.jp/tactico&quot;&gt;データゲット版Tactico&lt;/a&gt;を出して２週間ほど経ちました。ゴールデンウィークはここ数年では一番休んだので実質は１週間くらいかな。&lt;/p&gt;

&lt;p&gt;　当面の最大の課題は足元の地道な作業だ。バグフィックスといくつかの機能追加（特にOmegaChartから削除した機能で反響が予想以上に大きかったやつは復活を急ぐ）、それにここ最近とにかく動かすことを優先するあまりテストケース整備が相当遅れてるのでこれも何とかしないといけない。何しろ「はっちゅう君TX」固有の機能ともあわせるとソースコードサイズは11万行を超えてきた。&lt;/p&gt;

&lt;p&gt;　でもそういうのばっかりだとストレスフルであるので、並行してもっと本質的な進化を狙うことも進めるつもり。&lt;/p&gt;

&lt;p&gt;　それは&lt;b&gt;全銘柄のスクリプトによるリアルタイムスクリーニング&lt;/b&gt;。&lt;/p&gt;

&lt;p&gt;　これは既存のツールにはなく、かつ多くのトレーダーが望むものだと思うけどどうでしょう。場中に突然噴くのをいち早くとらえたり、デカい約定があったのを通知したりするのは便利なはず。最近自分のトレーディングでも利益が出ているのは先物・オプションばっかりで個別株はさっぱりだから、その辺を何とかしたい動機もある。&lt;/p&gt;

&lt;p&gt;　これを実現するにあたり最初の決断ポイントは、&lt;/p&gt;

&lt;p&gt;* クライアント側で完結させるシステムを最初にリリースする&lt;br /&gt;
* 最初からサーバで分析する仕組みをこしらえる&lt;/p&gt;

&lt;p&gt;　のどちらを選択するかだ。&lt;br /&gt;
　最初からサーバで動くようにしたほうが分析性能がよいし、さらにモバイル分野に手を出すにも有利だが、開発が大変になるのは確かだ。予想以上に時間がかかったり（まあ大抵はそうなっちゃんだが）、重要な機能をあきらめざるを得ないことになったりという危険があるので、開発計画としてはハイリスクな賭けになってしまうんだよなあ...&lt;/p&gt;

&lt;p&gt;　何かこのリスクをヘッジする手はないものか。でもどっちの方針にするかくらいはあと２～３週間くらいでは決めないとなあ。&lt;br /&gt;
&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-05-14T22:48:08+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/04/post_31d7.html">
<title>データゲット版リリースです</title>
<link>http://okajima.air-nifty.com/b/2008/04/post_31d7.html</link>
<description>　やっとこさリリースまでこぎつけました。 　Webサイトはこちらです。 　なんか...</description>
<content:encoded>&lt;p&gt;　やっとこさリリースまでこぎつけました。&lt;br /&gt;
　&lt;a href=&quot;http://www.lagarto.co.jp/tactico/&quot;&gt;Webサイトはこちら&lt;/a&gt;です。&lt;/p&gt;

&lt;p&gt;　なんか最近、相場全体も上向きな雰囲気になってきたし、また大きな株ブームでも起きないかなあ。&lt;/p&gt;

&lt;p&gt;　まだまだ後続でやるべきことはいくらでもあるので休憩はそこそこにして前進します。&lt;br /&gt;
&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-04-30T19:33:12+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/04/tactico430_eda7.html">
<title>Tacticoは4/30公開</title>
<link>http://okajima.air-nifty.com/b/2008/04/tactico430_eda7.html</link>
<description>　予定より遅れたものの、通常版Tacticoは４月３０日に公開します。 　あと細...</description>
<content:encoded>&lt;p&gt;　予定より遅れたものの、通常版Tacticoは４月３０日に公開します。&lt;br /&gt;
　あと細かい修正やドキュメント整備はいくらか必要なものの、今日で主要なところはほぼ完了して準備が整いました。&lt;/p&gt;

&lt;p&gt;　機能面ではOmegaChartと同等以上になっていると思います。でもデータの入手元（データ・ゲット社）が有料であることと、いちおうOmegaChartもまだ使えているので移行はゆっくりしたものになりそうかな。まあ皆さんも時機をみて移行していただければと思います。&lt;/p&gt;

&lt;p&gt;　ソフトウェア自体は無償で、データ入手以外では費用はかかりません。&lt;br /&gt;
　ソースコードも公開しますが、構造を整理したいところがまだわりとあるのと、クリック証券固有の機能に関わる部分が混在しないことをちゃんと確認しないといけないことから、少し日程を遅らせます。&lt;/p&gt;

&lt;p&gt;　なお、株価データのフォーマットはOmegaChartとTacticoで完全互換にしてあるので、独自にツールを書いたりしている人はそのまま使い続けることも比較的容易でしょう。&lt;/p&gt;

&lt;p&gt;　次にやりたい大きなネタとしては、&lt;/p&gt;

&lt;p&gt;* データゲット社のリアルタイムデータへの対応&lt;br /&gt;
* モバイル環境に進出するならどういう形にするかを考える&lt;br /&gt;
* (Tacticoとは直接関係ないが)非同期処理が多用されるソフトウェアの新しい設計手法のアイデアがあるので有効性をみてみる&lt;/p&gt;

&lt;p&gt;　がある。いくら時間があっても足りないなあ。&lt;br /&gt;
&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-04-26T15:17:18+09:00</dc:date>
</item>
<item rdf:about="http://okajima.air-nifty.com/b/2008/04/post_ede8.html">
<title>友人の結婚式</title>
<link>http://okajima.air-nifty.com/b/2008/04/post_ede8.html</link>
<description>　自分の結婚式から３週間、新婚旅行から帰って１週間というタイミングだが、一昨日の...</description>
<content:encoded>&lt;p&gt;　自分の結婚式から３週間、新婚旅行から帰って１週間というタイミングだが、一昨日の土曜は友人の結婚式に呼ばれた。&lt;br /&gt;
　奴は中学・高校６年一緒で、卒業生の４割が現役で東大に行く進学校としてはたいへん珍しく、漫画の道に進んだ。その後もずっと年２～３回は飲みにいく間柄ではあったけど、おたがいこういう近接したタイミングで結婚することになるとはなあ。&lt;br /&gt;
　高校のころは毎日一緒にゲームばっかりしてた（当時はスト２の全盛期である）し、渋谷のゲームセンターに入り浸ってた頃が懐かしい。奴はそのころから授業中に漫画ばかり描いていた。僕は奴よりは真面目に授業は聞いていたけど、面白くないやつはさぼって別のことをしてた。PC-98のBIOSコールの本とか。さすがに当時は相場はやってません。&lt;/p&gt;

&lt;p&gt;　なので列席者もその業界の人が多くいるわけだけれども、神の座っているテーブルがあったのでこれだけ自慢させてくれ！&lt;br /&gt;
&lt;img class=&quot;image-full&quot; alt=&quot;Kami_2&quot; title=&quot;Kami_2&quot; src=&quot;http://okajima.air-nifty.com/photos/uncategorized/2008/04/14/kami_2.jpg&quot; border=&quot;0&quot;  /&gt;&lt;/p&gt;

&lt;p&gt;　&lt;b&gt;荒木飛呂彦&lt;/b&gt;先生だ！　実は僕のオフィスにもジョジョは揃っていてTacticoの開発の合間に読みながら休憩しとります。秋元治、森田まさのりも言わずと知れた人物だし、見れただけでも感激。強引にでもサインもらってくりゃよかったかな。&lt;/p&gt;

&lt;p&gt;　荒木先生はWebでときどき見るこの画像のとおりの顔だった。&lt;br /&gt;
&lt;a href=&quot;http://okajima.air-nifty.com/photos/uncategorized/2008/04/14/araki_2.jpg&quot;&gt;&lt;img class=&quot;image-full&quot; alt=&quot;Araki_2&quot; title=&quot;Araki_2&quot; src=&quot;http://okajima.air-nifty.com/photos/uncategorized/2008/04/14/araki_2.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;　波紋使いはいつまでも若いってのは本当なんだなあ。&lt;br /&gt;
&lt;/p&gt;</content:encoded>


<dc:creator>okajima</dc:creator>
<dc:date>2008-04-14T13:50:34+09:00</dc:date>
</item>


</rdf:RDF>
