2006-12-31

2006年のまとめ

今年もあと少ししか残っていないので,まとめをしてみます。


  • 25歳になった
    • とうとう四捨五入して30歳。
    • いい加減に人生プランを考えとかんと。
  • 技術的なことよりもコンサル的なことに興味が出てきた
    • 飽くまで技術のほうが好きなんだけど,それを今後続けていくには企画とかコンサル的なことを知らなければダメかなと思っています。
    • ちょうど企画系の仕事に異動になったし,30歳になったときにガリガリ企画開発できるようにがんばってスキルを付けておこうかな。
    • でもその間に技術系のスキルが落ちちゃっても嫌なので,なんか個人的に開発したい。
  • また太ったorz
    • これについては年明けに改めてまとめをする。
    • 今度は本気だよ(`・ω・´)
  • 英語を勉強する
    • 今年の前半は結構がんばってたけど,最近は停滞気味。
    • たまに職場に英語の電話が掛かってくるけど,そのたびにパニクってしまうのをなんとかしたい。
    • 1月にTOEICを受験する予定なので,それに向けてぼちぼち勉強してます。
    • 来年は目標を決めてもうちょっとカチッと勉強を進めようと思います。
  • 引っ越しをした
    • これはあとでまとめエントリ書きます。


現在正月休みで実家に帰省中です。暇なので「ヒューマン2.0」という本を読んでました。その中でシリコンバレーのいろんな働き方のスタイルが紹介されていて,その中に「ポートフォリオワーカー」というのがありまして,自分はこれやりたいです。自分は「プログラミングが大好きだけど会社ではパワーポイントとにらめっこしてる」という人間で,これを何とかしたい。とりあえず来年の前半までに何かのWebアプリを出したいなー。


それでは皆さん,よいお年を。

2006-12-16

引っ越し準備

今日,引っ越しをするので,さっきまで荷造りをしてました。
狭い部屋だったけど,結構荷物があるもんだなー。

引っ越し先は1駅隣りのところだからあんまり場所としては変わらないけど,今よりも大分部屋が広くなる(というか今が狭すぎる?)。いろいろと家具を買わなきゃだなー。

ネット接続の手続きの関係上,24日までネットが見れません。メールもチェックできないのであしからず。まぁ会社でチェックすればよいんだけど。


とりあえず荷造りをしてて思ったこと。
まず荷造りする前に出来るだけ物を捨てること。荷造りしながらどれを捨てようかと考えてると,いつまで経っても荷造りが終わりません!

では。

2006-12-11

D902iSのバッテリーを交換しに行った

重要なお知らせ : 三菱電機製携帯電話「FOMA D902i」対応の電池パック「D06」の一部取替・回収のお知らせ | お知らせ | NTTドコモ


自分が使っているのはD902iSなんだけど,もしやと思って調べてみたらバッチリ該当していたよorz。確かに使い続けてるとなんか本体が熱くなるんで変だな~とは思ってたんだけど。D902i,D902iS,D903iを使っている人は調べてみたほうが良いです。

交換自体は速攻でやってくれました。ドコモショップに行って交換をお願いしたら,名前と携帯電話番号を書類に書いたあとにバッテリーをくれました。

他にニュースを調べてみたら,前からバッテリーが熱くなって破裂する危険があることは分かっていたみたい。「自動車の次は携帯電話もリコール隠し?」とか思われても仕方ないんじゃないかな。危険のある機種は販売停止になっているようだけど。


いま一番怒っているのはD903iの開発者だと思う。「俺たちが精魂こめて作ったのに,バッテリーなんかのせいでケチがついちまった!」って感じで,三菱電機社内は修羅場ですね。あー,想像したら可哀想になってきた。


自分としては交換に行ったついでに903シリーズの機種がチェックできたので,まぁ良いかなって感じです。三菱の人たちがんばって!

2006-11-08

沖縄に行ってきた

月曜日は沖縄に行ってきました。初沖縄だけど仕事の出張なので,観光なんて全然できなかった!


この飛行機でその日の朝8時に沖縄へ出発。沖縄まで2時間半掛かりました。

haneda02

沖縄はさすがに東京と比べると暖かかったです。沖縄のその日の最高気温は27℃。日差しもまっすぐで,なんとなく夏って感じでした。

到着後はそのまま午後の客先提案へ向けて打ち合わせ。ちなみに昼飯はカツ丼だった。ソーキそばぐらい食っとけば良かったかな。

なんとか客先提案も無事に済んで,仕事が終わったのが7時ごろ。うー,あとはお土産買って帰るぐらいしか出来ないじゃん! ということで那覇市の国際通りというところをブラブラして適当にお土産を買った。

naha01
国際通り。あんまり東京と変わらないじゃん!



まずは定番,ちんすこう。お土産屋のおばちゃんによると,ちんすこうにも流行があるらしくて最近は塩味のが人気だそうです。甘すぎずさっぱりした感じのやつ。
実家には南国っぽいものを送りたいなーと考えながら歩いていたら,果物屋さんがあったので適当に珍しそうなフルーツを送ってみた。ドラゴンフルーツスターフルーツ
あとは実家の父親用に泡盛を送った。試飲してみたら度数が高い割りに飲みやすかったので,自分用にも買っといた。
自分用のお土産はサータアンダギーと沖縄の団扇。サータアンダギー,さっき食べたけどおいしいです。沖縄の団扇はトランプのスペードの形でドーム型になっているので,ひと扇ぎで結構な風が起こせます。沖縄以外ではあまり見たことが無いタイプの団扇ですね。前に沖縄土産で貰ったことがあるんだけど,普通の団扇とは比べ物にならないくらい使いやすかったので気に入ってました。1個100円,スペアも含めて三つ買った。


帰りは21時の飛行機で帰りました。気流の関係で揺れたので軽く酔った。帰りも狭い座席に2時間半はつれーよ。

naha02

naha03
沖縄よ,さらば!


沖縄の夜景はなかなか綺麗でした。写真撮りたかったけど,携帯電話のカメラしか無かったので離陸後は使用不可なのでした。



とりあえず,沖縄日帰りは結構つらかったです。次に沖縄へ来るときはプライベートで来たいなーっと思いつつ帰りの機内でした。

2006-10-23

近況

気がついたらしばらくブログを書いてなかった。しばらく更新していないと段々書くのが億劫になってきて良くない。なので最近やったことを適当に書いてみる。


■25歳と1月ちょい
9月9日に25歳になり,ついに四捨五入したら30歳ということに。まぁ,1の位で四捨五入したら30だけど10の位で四捨五入したら0歳だもんねーってことで心機一転改まらないまま,1月ちょいが過ぎています。ちなみに誕生日に友人たちがくれたプレゼントがバランスボールとサウナスーツ。顧客のニーズを掴みすぎ!


■ジム通いを再開
しばらくジムに行くのをサボっていたら体重が深刻にヤバくなってきたので,気合を入れなおして筋トレに励むことにした。プレゼントも活用したいし。水泳もしばらくやってなかったので大分忘れてそう。はてなのhigeponさんと同じく,自分も水泳は独学です。


■マーケティングの勉強をした。
会社の研修でマーケティングの基礎を勉強した。今の仕事が商品企画なので,今まさに必要な知識だったのだ。SWOT分析とか,すごーく基礎的で簡単なことを勉強したんだけど,実際に自分の仕事に当てはめてみると色々と抜けているところなんかが見えてきて面白い。基礎重要! マーケティングについては今後も勉強していく予定。


■若冲展の感想を書くのを忘れてた。
皇居の三の丸尚蔵館でやっていた伊藤若冲・動植綵絵の展示会は1期から5期まで見学してコンプリートしてたけど,3期以降はタイミングをはずして感想を書いてませんでした。すっきりしないので今週中に感想を書くことにする。
リンク:1期感想2期感想


■Brainf*ckのインタプリタを書くのが面白い。
Brainf*ckというのは,世界一小さなコンパイラを書くためにデザインされたプログラミング言語で,詳しくはWikipediaを見てくれ。と思ったけど短いので引用する。


実行可能な命令は「8つ」のみである。
  1. > ポインタをインクリメントする。ポインタをptrとすると、C言語の「ptr++;」に相当する。
  2. < ポインタをデクリメントする。C言語の「ptr--;」に相当。
  3. + ポインタが指す値をインクリメントする。C言語の「(*ptr)++;」に相当。
  4. - ポインタが指す値をデクリメントする。C言語の「(*ptr)--;」に相当。
  5. . ポインタが指す値を出力する。C言語の「putchar(*ptr);」に相当。
  6. , 1バイトを入力してポインタが指す値に代入する。C言語の「*ptr=getchar();」に相当。
  7. [ ポインタが指す値が0なら、対応する ] までジャンプする。C言語の「while(*ptr){」に相当。
  8. ] ポインタが指す値が0でないなら、対応する [ にジャンプする。C言語の「}」に相当。

こんな感じのプログラミング言語なのでインタプリタを書くのが簡単で遊べて楽しい。とりあえずGroovyとExcelVBAで書いてみた。これについては今週中にエントリ上げること>自分。



とりあえず今日はここまで。

2006-09-22

今日覚えた言葉「NGN」

今日,出席したミーティングで「NGN」という言葉が飛び交っていて焦りました。「NGN」って何? みんなは当たり前のように使っているから聞くに聞けないし,そんなに有名な言葉なの?

「世にも奇妙な物語にズンドコベロンチョってのがあったけど,Googleがある現代には成立しない話しだよなー」と思いながら検索してみたところ,以下のページを発見。

未来の電話,そして国益をも左右する「NGN」:ITpro

とりあえず分かったことを箇条書きにしてみる。

  • NGN = Next Generation Network(そんな安直な略だったのか・・・)
  • 通信のインフラをIP化する
    • → 現在の固定電話網では維持・管理コストが掛かりすぎるから
  • 通信インフラ自体が変化するので各所に影響が大きい
  • NGN標準化は国家レベルの政治的な交渉が必要になっている
  • 100年に1度のことであり,ビジネスチャンス!


あとは,はてブdel.icio.usのNGNタグでブックマークされたページを読んでみれば関連する話題もフォローできますね。

はてなブックマーク - タグ NGN
Pages tagged with "NGN" on del.icio.us

 

2006-09-21

PowerPointで資料作成に苦労してます

最近,PowerPointで資料を作ることが多いんですが,全然上達しません。今日も二つの資料を作る予定だったんだけど全然納得のいく出来のものが作れなかった。なんつーか,「PowerPointなんてものが何でこの世に存在するんだろう?」って逆ギレ気味で仕事してます。


PowerPointで作る資料には,プレゼン資料と説明資料の2種類があると思います。プレゼン資料は実際に壇上に立ってプレゼンテーションをするための資料で,簡潔で見やすいものである必要があります(文字が多いとダメ)。説明資料はその名のとおり何かを説明するための補助として使うもので,これは必要な情報を漏らさず入っていないとダメです。説明資料は紙に印刷されて読まれることが前提となるので,多少文字が多かったりしてもOKです。

で,自分が作成に四苦八苦しているのが説明資料。特に説明図を描くのに苦労します。うちの部署の近辺ではPowerPoint資料を作ることを別名「絵を描く」と言うけども,まさにこの説明図を描く作業が大変です。自分では分かりやすくキレイに描いているつもりでも,客観的にチェックされると分かりにくかったりするし。詳しく描こうとするとやたらゴチャゴチャしちゃったりするし。


実際に自分が資料を作成するときは,つぎのような手順で進めていきます。

    1. どんなスライドを作るか,大まかな図を適当な紙に手書きで書いてみる。
    2. ある程度整理できたら,PowerPointのスライドを作成する。ただし図は色は付けず白黒で描く(この時点で凝ってると時間が掛かりすぎるので)。
    3. 試行錯誤して図を修正する。
    4. 図が決まったら,色を付ける。
今思ったけど,もしかしてPowerPointの欠点は3の試行錯誤のところにあるんじゃないのかな。PowerPointの図を書き換えるのは結構手間が掛かって面倒です。だから試行錯誤するにしても,作業のほうに神経が行ってしまって内容にまで気が回らなくなる。


この文章を書いていても分かるけど,「文章を書く」や「プログラムを書く」という作業をしていると,何もしないで考えているときよりも良く考えられると思います。思考にドライブが掛かるって感じ。でもパワポの資料を作っているときはそういうドライブ感ってのが無いんですよね。これはパワポの問題なのか? 自分の操作スキルの問題なのか?
まぁ,どっちにしろ早く上達して早く会社から帰れるようになりたいです。


ところで「PowerPoint絶対主義」という文書を読んでいたら,こんな記述が(以下のDiffieってのは暗号で有名なディフィさんです)。


Bell-Northern で、Diffie は電話システムのセキュリティを研究していた。1981 年、35mm スライドでプレゼンテーションを準備していた彼は、ちょっとしたプログラムを書いた。同じ研究所の同僚が書いたあるグラフィック・ソフトウェアに、少し手を加えたものだ。元は、一枚の紙に黒い枠線を引くためのものだったが、Diffie はこれを拡張して、ひとつのページにいくつもの枠を作って、その中にテキストを入れられるようにした。周囲にはコメントを入れるスペースも取れるようになっていた。言い換えると、彼がつくったのはストーリーボード、つまり紙でやるスライドショーであり、これをスライド制作するデザイナーに送れるようになっていた。また、同じものが講義の台本としても使えるようになっていた。(この段階では、彼は自分で作った紙を複写機にかけて OHP シートを作ったりはしていなかった。だが、他の部門の科学者たちはそうしていた)。数日間の労力で、Diffie は PowerPoint への道を示したのだ。

なんと! 公開鍵暗号とPowerPointの発明者が同一人物だったとは! プラスマイナス・ゼロになるように世の中上手くできてるもんですね(皮肉

2006-09-20

トルカ = ケータイ版RSS

トルカ(ToruCa)って知ってますか? トルカというのはドコモ携帯電話の902i以上で使えるデータフォーマットです。クーポン券や広告の配信なんかに使われています。最近,これを使ったサービスを何か出来ないかといろいろ考えているので,調べたり考えたりしたことを書いてみます。


まずはトルカの何が良いのかってことについて。

トルカはいろんな方法で取得することが出来ます。ネットからダウンロード,メールの添付ファイル,赤外線通信,FeliCa R/Wにタッチなどの方法で取得できます。いったんトルカを携帯電話に取り込んだあとは,同じようにいろんな方法で他の人に渡すことが出来ます。メールで送信したり赤外線で送ったりでっきます。
つまりトルカは流通しやすいってことです。

トルカのデータフォーマットの詳細は,ドコモ公式サイトの仕様書を読んでみればわかるけど,基本的に単なるテキストファイルです。トルカエディタも公式サイトで提供されているのでトルカ自体は簡単に作れます。以下のサイトではWeb上でトルカが作れます。トルカは作成する側にとっても楽ってことですね。

トルカインフォ ToruCa(トルカ)総合情報サイト - トルカ作成・生成&解析・表示


トルカは流通しやすくて作成しやすい。ということは,いろんな情報を載せるための共通フォーマットになる可能性があるってことです。今のところドコモの902iの機種でしか利用できないですが,これからトルカで配信される情報が増えれば他のキャリアでも対応されるようになるかもしれません(トルカのフォーマット自体は単純だから対応も難しくなさそうだし)。

対応する端末が多くなったら,今までメールなんかでお知らせしていた情報もトルカで配信されるようになるかもしれませんね。ブログで普及したRSSみたいに配信される情報のフォーマットが一本化されるわけです。トルカの中身はテキストだしハックしやすいってのも良いですね。

そんな感じで,携帯電話への情報配信としてはトルカがちょうど良いポジションになっていくんじゃないかなーと思いました。



【参考リンク】
作ろうiモードコンテンツ:トルカサービスの概要 | サービス・機能 | NTTドコモ
  本家。
ITmediaビジネスモバイル:FOMA 902iの新機能「トルカ」を解剖する (1/2)
  分かりやすい解説。
Data::ToruCa - ToruCa of NTT DoCoMo for treated. - search.cpan.org
 トルカを出力するためのPerlモジュール。やってる人はやってますね。
YappoLogs: 【プレスリリース】ToruCa(トルカ)専用ポータルサイト「トルポ」開設のお知らせ
 上のモジュールを作った人のサービス。行動早し。
hrdakinoriのいろいろ - Amazon to ToruCa リリース
 こちらは別の人だけど,なかなか目の付け所が上手いですね。

2006-09-10

Ioでデザインパターン - Singleton,Decorator

Ioの勉強のためにGoFのデザインパターンを書いてみることにしました。今回はSingletonパターンDecoratorパターン

Ioのサンプルコードのページを見てみるとSingletonパターンのコードがあります。
プロトタイプベース言語のせいか超シンプル。

Foo := Object clone
Foo clone := Foo



それで他のデザインパターンをIoで書いたらどうなんのかなー,ということでやってみることにしました。
まずはDecorator。そんなに使ったことないけど,何となく好きなパターン。以下のコードでは文字列を出力する処理をデコレートして,"-"とか"[]"とかで前後から挟むようにしてみました。

Component := Object clone do(
printString := method(str, str println)
)

Decorator := Component clone do(
component := Component
printString := method(str,
component printString(str)
)
)

// add "[]"
BracketDecorator := Decorator clone do(
printString := method(str,
str = "[" .. str .. "]"
component printString(str)
)
)

// add "--"
DashDecorator := Decorator clone do(
printString := method(str,
str = "-" .. str .. "-"
component printString(str)
)
)

// インスタンス作成
comp := Component clone
bd := BracketDecorator clone
dd := DashDecorator clone

dd component = comp
bd component = dd

writeln(">> Bracket -> Dash")
bd printString("Decorator")
// "-[Decorator]-"と表示される


こんな感じで良いのかな? 本当はDecoratorの派生クラスの場合は"component printString()"じゃなくて,"self proto printString()"という書き方をやんなきゃいけないんだけど(componentとDecoratorの仕組みをカプセル化するため),それだと何故か上手くいかなかった。ComponentのprintString()まで処理がいかないみたいで。


まぁ,こんな感じでGoFのデザインパターンをIoで書いてこうかと思います。



【参考リンク】
デザインパターン[モデリング] -TECHSCORE-
 デザパタの元ネタはここを参考にさせてもらってます。
i d e a * i d e a - ブログにコードを貼り付ける方法で悩むの巻
 ここで紹介されてる方法を使ってコードを貼り付けてみました

2006-09-05

Google Code Jam 2006

Google Code Jam 2006

とりあえず参加登録をしてみたけど,遊べるかどうかは微妙。うーん,がんばって仕事を早く片付けなきゃだな。


あと,いつも忘れるのでアメリカとの時差についてメモしておく。日本とアメリカ東部標準時との時差は‐14時間。しかし4月から10月まではサマータイムが導入されて1時間繰り上がっているので,時差は‐13時間になる。ややこしい!

アメリカ 快適生活サポートサイト おでかけ.US 日本との時差、タイムゾーン
アメリカと日本の時差比較テーブル


以下のサイトを使うと指定した時間を世界中の時間に換算できます。TopCoderでよく使われてるやつ。

The Fixed Time World Clock - setup


スケジュールを見てみるとQualification Roundが,東部標準時で9月5日12時PM~6日12時PMまでとなっている。これを日本時間に直すと,13時間を足してと・・・,9月6日1時AM~9月7日AMまでか。ちょっとぐらいは遊べるかな?



追記(9/7): 結局,時間が無くて遊べなかったよー。Google Code Jamより前に自分の仕事を何とかしないとでした。

2006-08-24

MLFi ‐ 金融商品を書くための関数型言語

前に調べて気になっていた言語についてメモしておきます。
その言語はMLFi(Modeling Language for Finance)。デリバティブなど複雑な金融商品を記述するためのプログラミング言語です。開発元のLexiFi社のページによると,Camlを拡張した関数型言語だそうです。

LexiFi: Structured Product Pricing and Processing

日本語の解説は以下の文書が分かりやすいです。

関数型言語による金融アプリケーション(PDFファイル)

この文書によるとMLFiは金融商品を簡潔に書くために作られたものらしいです。デリバティブのような複雑な金融商品は仕様書(目論見書?)も煩雑になりがちだけど,関数型言語を使えば幾つかの部品の組み合わせで表現できますよー,ということをMLFiの開発者たちは考えて実践したそうです。
実際,15個のコンビネータを定義してそれを組み合わせることで取り扱ってたデリバティブ商品はすべて書くことが出来たそうです(上記文書参照)。

MLFiはプログラミング言語なので,コンパイラによって意味的なチェックも出来ます。具体的にどう便利なのかは良く分からないけど,開発段階では金融商品の「バグ」も検出しやすくなるんでしょうか。


しっかし関数型言語って汎用性が高いっすねー。MLFiはLexiFi社の商品なので無料で試すことは出来ないけど,自分でも何かの金融商品を書いてみたいな。

もしMLFiのフリー版が出来たら,オープンソースで開発される金融商品も出てくるんじゃないでしょうか? 金融商品の開発って言ったら,バリバリに数学を使いこなす金融工学の専門家がやってるイメージだけど,オープンソース化されたらコードを読むことでノウハウが共有されて面白い金融商品もいっぱい出てくるかもしれない。

プログラマーが家を買うときは,住宅ローンを自分でプログラミングして銀行にホストしてもらったりしたら面白いな。さらにそれを銀行が別のお客さんに売ったら開発者にも収益が入るようにしたりして。


さらに詳しい情報はLexiFiサイトの以下のページが良いと思います。いろいろ文書がそろってます。

LexiFi: Resources






あんまり関係ないけど記念リンク。祝・伊藤博士!
ガウス賞:伊藤清京大名誉教授が受賞 金融工学確立を評価-話題:MSN毎日インタラクティブ


【追記:2011.03.04】
isologue - by 磯崎哲也事務所: オープンな法体系(SF小説風)
面白い思考実験

2006-08-23

プログラム言語 Ioをやってます

最近,Ioというプログラム言語で遊んでます。詳しくは公式ページを見てみれば分かるけど,Ioは言語仕様がすごーく小さくてなかなかキュートな言語です。

Ioは純粋なオブジェクト指向言語だそうです。ただしJavaScriptと同じくプロトタイプベースのオブジェクト指向なので,JavaやC++とはちょっと違う。GoFデザインパターンの"プロトタイプパターン"が言語仕様として組み込まれてるって感じなのかな?

「すべてがオブジェクト」という考え方のせいか,凄くシンプルです。なんとIoでは予約語が0個(!)です。このページで他の言語と比較しながら説明されてます(関係ないけどPerlって予約語が180近くあるのか)。さらにプログラムは文ではなく,「すべてが式」だそうです(LISPっぽい)。コルーチンとかいうものも組み込まれているみたいだけど,良く分かりません(スレッドを書きやすくする仕掛け?)。

あと何故かソース管理にdarcsを使っているのがマニアックで良いですね(笑

なんだかいろんな要素が上手く省略されててバランスが良いなーと思いました。オブジェクト指向言語をやったことがある人なら,Ioは簡単に覚えられるんじゃないでしょうか。とりあえず遊ぶには良い言語ですね。


追記:
 公式サイトにはMac OS X用のバイナリしか置いてないけど,以下のページではWin用のバイナリも落とせます。
http://www.mike-austin.com/io/



【参考リンク】
io - about
  Io公式ページ
Io プログラミングガイド
  日本語の解説サイトです
io - about - sample code
  感じを掴むにはサンプルコードを見てみると良いかと。
io - docs - talks
  プレゼン資料が2つあります

2006-08-17

B'zのライブに行ってきた

先週の日曜日にB'zのライブ「B'z LIVE-GYM 2006 MONSTER GARAGE」に行って来ました。実はライブというものに行くのはこれが初めてだったんですが,すごかった! 圧倒されました。ライブに誘ってくれたLaizに感謝です。

最初のうちは知らない曲もあって,いまいち自分が乗りきれてなかった感じだったけど,後半になったらそんなこと関係なくなりました。あー,ライブってのはこういうものだったのかー,なんで俺は今まで行かなかったんだろう?

誘ってくれた友人Laizは,初対面でいきなり「B'zって知ってる?」と聞いてくるような熱狂的なB'zファンなんだけども,その理由が分かりました。こりゃファンになるよな。稲葉さんかっこいいもん。


最近は仕事がコンスタントに忙しかったり,ネット接続の調子が悪かったりでブログ更新が滞っていましたが,これでエネルギーを充電できたのでもうちょっとがんばって書いてきます。

2006-07-04

Plaggerをインストールした

WindowsにplaggerをインストールしてBloglinesをGmailで購読しよう 情報は量/ウェブリブログ

上のページを参考にして,なんとかインストールできました。ただその後にちょっとハマったのでメモしときます。

インストール完了後に,テストとしてBloglines2Gmailを実行させてみたら,メール送信がされてません。YAML設定ファイルの"level: info"となっているところを"level: debug"にして再度実行させてみたところ,"XML::Liberal"がインストールされてないとのこと。CPANシェルでインストールさせてみると,どうやらテストのところで落ちていてインストールできてないようです。

とりあえず"force install XML::Liberal"とやってテスト結果を無視してインストールしてみたら,Bloglines2Gmailが実行できました。うーん,何だかあまり良くないような気がするけど,まぁ良いか。


しばらくはPlaggerの設定ファイルをいじって遊んでみようと思います。

2006-07-03

企画と開発の違い

開発から企画に移って三週間経って,いろいろとこちらの仕事について分かってきました。そこらへんをちょっとメモです。


その分野についての知識もほとんど無かったので,最初の2週間は必死で勉強しました。とにかく分からないことが多すぎる! まぁ,そういう知識については1週間目でなんとなく把握できました。しかし,次に「○○社の10年後の将来像について,モバイル技術の観点から資料をまとめて」なんて言われちゃってかなりテンパりました。だって10年後って! 分っかんねーよ! 1日100回ぐらい「分からねー」って言ってましたね。
終電間際まで考えてても分からなくて資料作りも進まず,「俺は企画に向いてないんじゃないのかな」とか考えてヘコんでました。

で,3週間目にしてやっと開眼しました。「分からない」で良いんです。自分が求めるべきものは「正しい答え」ではなくて,「なんとなく合ってそうな答え」または「間違っててもいいから答え」なんです。とにかく答えを出すことが重要です。じゃないとそれを見せて他の人の意見を聞くことも出来ない。

どうやら自分は開発の仕事と同じようにやろうとして苦しんでたみたいです。技術的な問題ってのは必ず答えがあります。それに間違っているかどうかも分かりやすいです。だから開発では何とかして素早く「正しい答え」を見つける必要があります。

でも企画では「正しい答え」なんてそもそもありません(10年後の将来像なんて誰にも分からない)。だから企画では,問題に対して出来るだけマッチする答えを提示してやる,というのが仕事です。どうやら自分は答えの無い問題の「正しい答え」を探してたから苦しんでたみたいですね~。


以上のようなことを上司に話してみました。上司いわく「技術的なことを考えていると進まないから,ある程度テキトーに考えなきゃいけない,でもテキトーすぎるとツッコまれる。バランスが難しい」とのことです。上司も試行錯誤しているみたいです。


あと,3週間前は「自分以外の人は知識がたくさんあって,今後の戦略なんかも完璧に分かっている」と思ってたんですが,案外分かってないみたいです。自分の担当分野は会社としても新しい方向なので分かっている人なんて居ない,ということはもう少し好き勝手にやっちゃって良いんじゃないかなと思ってきました。


とりあえず「正しい答えは無い」「やっちゃってもOK?」ってことに気付いてから楽になりました。来週からは楽しんで仕事が出来そうです。

2006-06-27

スケジュール管理をどうするか?

最近,会議に参加することが多くなりました。開発をしていたときは線表(ガントチャート)で予定を管理してて,これで十分でした。予定立てて確認してもらったら,あとは自分で黙々と進めるだけ。しかし会議に出席となると,予定も変わりやすいし自分の予定との整合もとらなきゃならない。ということでスケジュール管理をしっかりやろうと決めたんだけど,さてどうやるか?

スケジュール管理のやりかたは,大きくアナログとデジタルの二方向に分けられると思います。アナログ=紙で管理で,要するに表や手帳に書き込むやり方。デジタルはOutlookの予定表みたいにPCで管理したり携帯電話のスケジュール帳で管理する方法。

自分の周りでは手帳で管理している人が多いですね。でも自分としてはやっぱりPCでやりたいしな~とか考えてたんですが,一応全部の方向性を実践してみることにしました。つまり紙とPCと携帯電話。


【紙で管理】
気に入ったスケジュール帳が見つからなかったので,こちらで紹介されているカレンダーを小さく印刷して予定を書き込むことにしました。

2006年(平成18年)印刷用カレンダー by ゴッゴル・delcup

私はノートはRoll Bahn,手帳はモールスキン(スクウェアノート)を使ってます。どっちもコンパクトで持ち運ぶのが楽なので気に入ってます。とりあえず上のカレンダーを小さく印刷してRollBahnは後ろのビニールポケットに,モールスキンもポケット部分に挟み込んで使ってます。
こっちは飽くまでサブで使ってこうと思ってます。


【PCで管理】
今まではOutlookの予定表で管理してました。管理してたといってもちょこっとしか書き込んでませんでしたけど。会社ではメーラはOutlookを使っているので,付属の予定表だと追加しやすいので,これを使ってました。
でも,Google Calendarは良いですね~。最近は別の拠点に行くことが多いんだけど,Webアプリだったらデータを持ち運ぶ必要が無いし。それに使いやすいです。PCではこれをメインで使ってみようかな。


【携帯電話で管理】
「モバイル関係の仕事してるなら携帯電話で何でもやらなきゃダメだろ!」ってことで,やってみることにした。iアプリで使えそうなのがないかなーと調べてみたら次の二つが良さ気です。
  • UBIMEMO
  • スケジューラ,TODOリスト,メモ帳などがまとまったPIMツール。インタフェイスも垢抜けてて良いですね。しかもWebアプリとも連携していて,予定表をPCと携帯の両方から見られます。
  • ore.cale!!
  • こちらはスケジューラ機能だけですけど,とっても使いやすいです。画面デザインはこちらで見られるけど,予定が一目で分かるので待ち受けアプリにしておくと便利です。メールを通じてOutlookの予定表と連携が出来るようですね~,やっぱりケータイスケジューラにPCデータ連携は必須だな。

総合力ではUBIMEMOのほうが上だけど,スケジューラ単体としてはore.cale!!のほうが良いですね。なのでしばらくはore.cale!!を使うことにします。

しっかし,UBIMEMOもore.cale!!もよく出来てますね~。iアプリが始まったころに自分もツールを作ってましたけど,そのときよりはるかに質が上がってますね。



今一番欲しいツールは,携帯電話ではore.cale!!を使って,データ連携をGoogle Calendarを使うというやつ。ここらへんのデータ連携はPlaggerってやつを使えば出来そうですね。Plaggerって少し調べてみたけど,Webアプリ同士を連携するためのフレームワークみたいなもののようです。なんだかシンプルでよい感じ。

まぁ,ちょこちょこ工夫していこうかなっと思ってます。

2006-06-22

ICカードついて調べてます

最近のお仕事は提案や商品企画なので,今までの知識(Java,Eclipseプラグインとか)とは違う知識が必要になってきてます。そこでお勉強ということでICカードについて調べてみました。

ICカード - Wikipedia


まずICカードの規格だけど,代表的なのは次の三つです。

1. Type A
 ISO/IECという団体で規格が策定されてます。ヨーロッパとかでは使われているみたい。日本ではマイナー。

2. Type B
 こちらもISO/IECで規格策定。こちらは日本だと公共分野のICカードでよく使われています。住民基本台帳カードではこちらを採用。まだ実行されてないけど運転免許証をICカード化するって計画でもこれを採用する予定。ここのWikipedia解説を読めば分かるけど,住基カードではJavaカードとか結構アレゲなものが使われているみたいで,公共分野にしては面白い。

3. FeliCa
 ソニーが策定した規格。標準化しようという計画だったらしいけど,なぜかType CにはならずにFeliCaのまま。日本だとおサイフケータイとかSuicaとか,一番普及していますね。
Type A,Bとの違いは通信スピード。プロトコルが高速通信に向くものらしく,Type Bでは0.7秒掛かる処理が0.1秒で出来るとか。だからSuicaで採用されたみたいですね,0.7秒も掛かってたら朝の混雑は捌けないってことで。



データのアクセス方法にも接触型,非接触型の2種類があります。最近はほとんど非接触型ですね。非接触型ICカードは,小さなチップとそこからカードの縁をぐるっと回っているアンテナから出来てます。Suicaに光をあててみると,反射して丸く浮き上がっている場所が見えるはずです。それが埋め込まれてるICチップ。読み取るときは,ICカードのリーダ/ライタが電磁誘導でアンテナに電気を発生させて,ICカードのプログラムを起動するという仕組み。

ここら辺のことを調べてみて分かったけど,ICカードというのは今までの磁気カードの発展というより,超小型で機能を切り詰めたPCと考えたほうが良さそう。ちゃんとOSもあるし,EdyやSuicaはその上に載ってるアプリです。


ICカードの未来についてちょっと妄想してみました。非接触型ICカードはそのうち身体に埋め込まれるようになるかもしれない。Edy機能とかを載せればおサイフニンゲンになれるし,本当に手ぶらで買い物できるから超便利。Suicaもインストールしとけば,手ぶらでどこでも行けるよ!
それだけじゃなくて医学デバイスを体内のICチップと繋いどけば,体調の情報を非接触で調べられたり,薬品の投与をコントロールできるようになるかも。そこまで行かなくても,血糖値とか血圧とかをリアルタイムで把握できたら結構人生が変わると思うんだけどなぁ。メンタルな不具合が実はフィジカルな原因から発生しているってことは良くあることだし。


とりとめが無くなってきたのでここらで終わります。ICカードみたいな古い技術も調べてみるとわりと面白かったよ,というお話しでした。マル。

2006-06-21

うちの会社とオープンソース

先週,社内で開催されたミーティングに参加してきました。テーマは「オープンソースにどう取り組むか」。


うちの会社は結構古い会社なので,オープンソースなんて無視してるのかと思ってたけど,ミーティングでは偉い人も含めてかなり熱く議論してました。「Web2.0」とか「ロングテール」とかの言葉がバシバシ交わされてて,なんだか興奮してしまいました。とりあえずうちの会社も捨てたもんじゃないなーと希望が持ててきました。

でもミーティングに参加しているほとんどの人が30代以上なのがダメだと思いました。20代は自分と一緒に参加した同期の友人だけだったかな。それともうひとつ,「オープンソースを扱える人材をどう育成するか」という議論で,「全社的なセンターを作って~」とトップダウンで考えてるようだったけど,これが古いですね。オープンソースをやる奴は放っておいてもやるから,会社としてやることはそういう奴を見つけてサポートすることではなかろうか? サポートというか「堂々とやっても良いよ」とアナウンスするだけでもOKだと思う。


自分もVisual Editorを改造したりしてるけど,こういう過程で得た知識をアウトプットしたい,という思いはあります。さらに言うと「俺はこんなことをやったんだぞ,すごいだろ!」ということが言いたい(なんかアホだけど)。要するに技術が分かっている人から認められたい。

ふつうの仕事だとスケジュール通りに仕様通りの機能を持ったシステムを作ればOKで100点なんだけど,オープンソースをやりたがる奴はそれとは違う評価軸が欲しい奴だと思う。だからオープンソース技術者を育成するには,その普通の仕事とは違う評価軸を作ってやれば良いんでないのかなー。あとそれを発表する場所を提供すること。


そんな感じでうちの会社もまだまだ面白いかもと思いました。近いうちにまた開催されるそうなので,また参加する予定です。




【参考リンク】
サルノオボエガキ: はてなグラフでバーンダウンチャート
このエントリで書いたけど『ウェブ進化論』を読んでたのは,このミーティングのためでした。こんな感じで,エクササイズリーディングを駆使しつつ予定通りに読み終えられたのでした。
deltamのウェブ進化論とdeltamのウェブ進化論BDC

2006-06-14

開発から企画へ異動

今週の月曜日から勤務先の部署が変わりました。先週までコーディングをがりがりやってたのが,今週から新規商品の企画です。何というか,仕事の内容が端っこから端っこへジャンプした感じ。

ということで,先週から今週にかけて引き継ぎ資料を作ったり新しい業務についてお勉強したりしてたのでブログ更新を怠けてました。今度の部署では携帯電話やユビキタス関係の商品を考えなきゃならないので,そっちらへんの内容を書くかもです。

とりあえず,昨日お勉強したToruCaってのはスゴイっすよ。これだけでソリューションを1ダースは考えられるはず。うーむ,携帯電話関係の技術ではiアプリ以来のトキメキです(笑


これまではソフトウェアのアーキテクチャとか工数ぐらいしか気になかったけど,今度からはお客さんや収益なんかも考えて企画をしなくちゃいけない。大分今までの仕事とは違うんだけど,まぁ良い経験なんでがんばって行こうかなーと思ってます。

だってプログラミングと企画が出来たら最強だもんね!

2006-06-04

はてなグラフでバーンダウンチャート

deltamのウェブ進化論とdeltamのウェブ進化論BDC
『ウェブ進化論』読書進捗



某所で開かれるミーティングのために梅田望夫さんの『ウェブ進化論』を読んでます。なんとか6月6日までに読み終えたいので,読書の進捗をどうやって管理しようかなーっと思ってたんですが,はてなグラフでバーンダウンチャートを書くことを思いつきました。


はてなグラフは,ウェブ上で数値を記録してそのグラフを表示できて,しかもそれが共有できるというサービス。前にダイエットのために体重管理に使ったことがあります。

バーンダウンチャートというのはアジャイル開発で使われる進捗管理のテクニックです。一目で残作業がどれぐらいあるのか分かる,シンプルで使いやすい手法ですね。詳しくは以下のページを参照。

mymy-mycompany分室 | バーンダウンチャート
「見える化」でソフトウェア開発! ~オブジェクト指向実践者の集い(第 3 弾) 参加レポート~
円山貫’s EYE on high-tech development: バーンダウンチャート / バックロググラフっていいね。 - 遅れなんか見たくない。いつ終わるかを見たいんだ。


それでは,はてなグラフでバーンダウンチャートをどうやって作るのか,『ウェブ進化論』の読書進捗を例にして説明します。

【つくり方】
    1. グラフの追加で「ウェブ進化論」と「ウェブ進化論BDC」というグラフを作成
      「ウェブ進化論」グラフには,その日に読み終わったページ数を記録します。
      「ウェブ進化論BDC」グラフには,読書予定を設定します(バーンダウンチャートの斜め線になります)
    2. 「ウェブ進化論BDC」グラフに読書予定を書き込む
      読書開始日に0,読了予定日に総ページ数を入力します
    3. 二つのグラフを「上下逆」に表示させる
      グラフの設定画面で,[グラフの種類]の[上下逆に表示する]にチェックを入れます
    4. 「ウェブ進化論」グラフと「ウェブ進化論BDC」グラフを比較する
      「ウェブ進化論」グラフのページを開き,[グラフの比較]メニューで以下のように入力する
         [graph:id:ユーザ名:ウェブ進化論BDC:image]
    5. 比較したページをブックマークする
      ブックマークのタイトルを「はてなグラフ - ウェブ進化論」と変えておく


【使い方】
  • 進捗の見方。
    • 斜め線より上の場合は,進捗が予定より遅れてます。がんばって読み進めるか,予定を延ばすのが必要です。
      斜め線より下の場合は,進捗が予定より進んでいる。無問題です。
  • 予定を変えたい場合
    • 「ウェブ進化論BDC」グラフの総ページ数が入力されている欄を消して,新しい読了予定日に総ページ数を入れる



この記事の最初のほうにウェブ進化論の読書進捗バーンダウンチャートを貼ってあるのですが,予定より遅れてますねー。早く読まないと6月6日までに間に合わないぞっと。


これでほかの読書の進捗を記録していこうかなーって思っておりますが,最後にはてなグラフについて思ったことをいくつか。

  • グラフの題名が全角8文字まで,というのは何とかならないかな
    • これがはてなグラフの可能性をかなり狭めているような気がします。

  • 一つのグラフを表示するページで,タイトルにそのグラフ名が出てこない
    • ブックマークするときに不便です。ユーザ名は出てきてるけど,グラフ名のほうが重要だと思うので,表示して欲しいなー。ついでにグラフ同士を比較するページでもタイトルにその旨表示して欲しいなー。



今回は読書の進捗に使ったけど,バーンダウンチャートは実績を定量化できるものに対しては使いやすい管理法だと思うので,他にもこのテクニックを使ってみようと思います。

2006-05-30

伊藤若冲『動植綵絵』第2期を見てきた。

皇居内にある三の丸尚蔵館でやっている「花鳥ー愛でる心、彩る技〈若冲を中心に〉展」第2期を見てきました。先週の雨が降っていた土曜日に見てきましたけど,雨にぬれた皇居もきれいですねー。しかも雨のせいで来ている人も少なかったのでじっくり見れました。


三の丸尚蔵館では伊藤若冲の『動植綵絵』を5回に分けて展示するシリーズをやってまして,今回はその2回目です。1回目も行ってきました(感想はこちら)。今回は2回目なので前回より衝撃は少なめでしたが,やっぱり若冲は凄かったです。


まず展示の詳細についてはこちらのエントリを見ると良く分かると思います。前回の展示もそうですが,こちらのブログでは毎回詳しく解説されていて勉強になります。

弐代目・青い日記帳 | 「花鳥ー愛でる心、彩る技〈若冲を中心に〉展」第2期


1,2回目の展示を見て思ったんですが,『動植綵絵』の各絵には二つのタイプがありますね(なんでも分類したがるのが理系)。

    1. ポスター型
      はっきりとしたテーマが絵の中心に置いてあるもの。今回の展示だと「雪中鴛鴦図」「棕櫚雄鶏図」「菊花流水図」がそれにあたるかな。
    2. 壁紙型
      中心的な主題というか,画面全体の質感みたいのがテーマのやつ。今回の展示では「梅花皓月図」「梅花群鶴図」「桃花小禽図」。

それで・・・,分類しただけですね。これ以上は専門家じゃないので良く分からん!(慣れないことはするもんじゃないな・・・) 自分はどっちかというと壁紙型のほうが好きです。


えーと,分類とかは置いといて,今回一番凄いと思ったのは「梅花皓月図」です。上のリンクした記事で画像は見れますが,こういうのこそ実物を見ないと凄さがわからないと思います。

画像を見ると木の枝が画面全体に描いてあるだけのように見えますが,実物を見ると枝のところどころにコケのようなものが描いてあります。それで名前のとおり背景から月に照らされているところなんですが,その月光でコケが緑色に光っているように描かれています。これがまさに光っているようにしか見えない! この時代に蛍光塗料ってあったのかなって半分本気で考えちゃいました。これってヒカリゴケなのかな? 月光というロケーションも相まって何だか幻想的な感じでした。

あと「桃花小禽図」の真ん中に変な生き物がいました。モグラみたいだけど本当は「白鳩」らしいです。でもモグラにしか見えないよこれ。


三の丸尚蔵館では若冲以外の作品も展示していました。なんだか今回は鶴の絵が多かったです。若冲にも鶴の絵がありましたけど,それぞれ描き方が違って面白かったですね。円山応挙とか狩野探幽とか,名前は聞いたことあるけど実際にどんな人か,自分は良く知りません。若冲についても良く知らないけど,何だか知らないことが勿体ないような気がしてきたので,次回の展示までに若冲についてお勉強しとこうかなーと思いました。


ちなみに第二回の展示は6月2日(金)までやっているみたいですよ。


【参考リンク】
サルノオボエガキ: 伊藤若冲『動植綵絵』を見に行った。
  展示会の第一回目。
Amazon.co.jp:奇想の図譜ちくま学芸文庫: 本
  動植綵絵の紹介の章があるので買いました。現在読書中。

2006-05-24

Grailsを使ってみた

Grails - Home

『ダ・ヴィンチ・コード』を見た → 映画のテーマは「聖杯探し」→ 聖杯=Holly Grail → Grails!,という連想から何だか使ってみたくなったのでインストールしてみました。あとドキュメントで例に出されてたGrailsアプリも作ってみた。

Grailsは,Groovyで作られたRuby on Railsクローンです。Javaがメインの自分にとってはRubyよりGroovyのほうが慣れているので,どーしたもんかなーっと思って試してみました。



【インストール】
    1. Grailsのダウンロード2. Grailsを解凍
      自分の場合はc:\grailsに解凍した

    3. 環境変数とパスの設定
      GRAILS_HOME: c:\grails
      PATH: %PATH%;c:\grails\bin

    4. コマンドラインからインストール
      $ grails
      いろいろとメッセージが表示されてインストール終了。



【Grailsアプリを作ってみる】
    Grails - Quick Start ここを参考に作ってみた。

    1. Grailsアプリ用のフォルダを作る
      $ mkdir c:\temp\TestGrails
      $ cd c:\temp\TestGrails

    2. Grailsアプリを作成する
      $ grails create-app
      アプリ名を聞かれるので"TestGrails"と入力しておく

    3. データソースを編集する(オプション)
      DBの接続情報を以下のファイルに追加する
       TestGrails/grails-app/conf/ApplicationDataSource.groovy
      デフォではイン・メモリのHSQLDBで使うので,ここでは何も書かないっす。
      注: 他のDBに接続する場合はドライバをTestGrails/libに入れとくこと。

    4. ドメインクラスを作る
      $ cd c:\temp\TestGrails
      $ grails create-domain-class
      ドメインクラス名を聞かれるので,ドキュメントどおり"Book"と入れておく
      ドメインクラスはTestGrails/grails-app/domain内に生成される。
      String型のプロパティとして,ドキュメントのようにauthorとtitleを書き足しておく。

    5. テストデータを設定する
      以下のファイルのinitクロージャでテストデータを設定する
        TestGrails/grails-app/conf/ApplicationBootStrap.groovy
      こんな感じでBookデータを作る
        new Book(author:"著者名", title:"題名").save()

    6. コントローラとビューを生成する
      $ grails generate-all

    7. Grailsアプリを起動する
      $ grails run-app
      ブラウザで以下のアドレスを表示する
       http://localhost:8080/TestGrails/book/list
      注: デフォルトでは8080ポートを使うけど,他のサービスがすでに使っていたらエラーになる。その場合は「管理ツール」の「サービス」でチェックして,ダメそうなのは停止させる。
      ちなみに他のポートで起動する場合はこんなふうにするそうな。
       grails -Dserver.port=9090 run-app



起動するとこんな感じの画面が表示されます。

grails-app


Ruby on Railsも前に試したことがあるけど,それとほぼ同じ操作で簡単にできました。最近Groovyばっかり触っているので,何か作ってみたいなーと思ってますが,インストールしただけで終わってしまいそうな気配がすでに濃厚。何か作らねば。

『ダ・ヴィンチ・コード』を見てきた

Sony Pictures - ダ・ヴィンチ・コード


月曜日に見てきました。平日だったせいか,そんなに混んでなかった。

上映時間は2時間半もあったけど,後半はタイミング良くどんでん返しが続いて飽きないで最後まで見れました。うん,面白かったです。

注:以下ではネタバレあります。



主演はトム・ハンクス。自分は『フォレスト・ガンプ』の印象が強くて,ハンクスはあまり知的って感じを持ってなかったけど,この映画ではきちんと知的な学者っぽく見えました。謎解きをする場面では,なんとなく『すべてがFになる』の犀川創平みたい。

ヒロインのオドレイ・トトゥは,『アメリ』でしか見たこと無かったので"カワイイ"って印象しか持ってなかったけど,この映画ではちゃんと大人の女性でした。ふーん,こういう普通の演技もいけるんだなー。

で,ストーリーのほうですが『ダ・ヴィンチ・コード』という割にはそんなにダ・ヴィンチのことは出てきません。というか歴史ミステリーとかウンチク系の話しは,さらっと分かりやす~く流されていて,サスペンスが中心という感じ。それはそれで娯楽映画としてはOKなんだけど,もうちょっとウンチク系の話しを詳しく聞きたかったかな(多分,少数派)。

一番良く分からないのが,この映画の中盤で明かされる「キリストに娘がいた」という秘密が,キリスト教にとってどれぐらい重要なのかってこと。日本人の自分には,別に子どもがいたって良いじゃん,て思っちゃうので。
これについてはニュース記事で大々的にネタバレされてたけど,どうなんだろ? 映画会社は文句言っても良いんじゃないかなー。まぁ,『ダ・ヴィンチ・コード』に抗議してた団体の人にとっては「ざまーみろ!」って感じなんだろうけど。


歴史ミステリだけど,そんなに重くなく気楽に楽しめるサスペンスミステリだと思います。あとミステリとして最後までどんでん返しにこだわってたのは偉かったと思います。



【参考リンク】
Amazon.co.jp:イエスの遺伝子〈上〉徳間文庫: 本
Amazon.co.jp:イエスの遺伝子〈下〉徳間文庫: 本
”キリストの秘密”,”謎の教団”,”聖杯探し”など,『ダ・ヴィンチ・コード』と似たところのある作品ですが,こっちはSFミステリです。キリストの癒しの力のトリックはなかなか感心しました。こっちも面白いよ。

2006-05-20

英会話はリアクションが大事!

先週の金曜日から会社でやっている英会話研修に参加しはじめました。研修では,教科書の会話文を実際に喋ってみるんだけども,そこで注意されたことが「リアクションが悪い!」ということです。


最初の研修なので自己紹介の会話文をやりました。その中で,Aさんが「私はIBMでエンジニアとして働いています」,言われたほうのBさんが「Oh, really?」と返す部分があります。そこを自分がやったところ,先生が「Oh, really?」の反応が良くないといって例を見せてくれました。

先生の「Oh, really?」は眉毛を上下させて目を大きくする,というやつ。「Oh, really?」=「マジっすか?」だから,そんな感じだよなーっと納得したけども,これ真似するのが難しい。とくに初めての英会話でみんなの前でやってみると結構緊張してしまいました。つい引きつった顔で「Oh, really?」とやってしまって,先生に爆笑されてしまった。まぁ受けたから良いか。


今まで英会話と英語で文章を読み書きするのは,声か文章かの違いだけで大して変わらないと思っていたけども,こういうことを考えると大きな違いがあるなぁーっと思います。つまり英会話っていうのは英語である以前にコミュニケーションの技術であるということです。

そんな感じで目からウロコが落ちた英会話の初研修でした。

2006-05-17

百穴と四葉のクローバー

@nifty:デイリーポータルZ:犬百穴、のち、土蜘蛛人

うわー,懐かしい! 吉見百穴は小学生のときに遠足で行きましたよ。

吉見百穴というのは埼玉県東松山市にある(ここらへん),古代人のお墓のあとです。崖の壁面に穴がたくさん開いているところです。有名なものとして「ヒカリゴケ」がありますね(私も昔見ました)。

百穴とは直接関係無いけど,こんなことを思い出したました。
遠足で百穴に行ったとき,すぐ近くの川原で遊んでたんですが,そこにはなぜか四葉のクローバーがたくさんありました。ちょっと見渡せばすぐ見つかるぐらい。それどころか,よく探したら五つ葉のクローバや六つ葉のクローバーもありました。五つ葉は自分で見つけた覚えがあります。小学生なのでこの発見にみんな大興奮で,四葉のクローバーをおみやげにしたりしてました。

つまり吉見百穴近くの川原は四葉のクローバーの「穴場」なんです! 四葉のクローバーがどうしても欲しい人は行くと良いですよ。もっともそれも10年くらい前の話しなので,今はどうなのか分かりませんけど。



しかし上のデイリーポータルの記事は,不気味な建物やらナイスなネーミングの美容院やら,前々からおかしいと思っていたところすべてに的確にツッコミを入れていて,ちょっと感心しました。余計なお世話で補足すると,美容院の近くに「革靴から軍艦まで」というキャッチコピーのスケールのデカすぎな古道具屋があります。こっちにもツッコんで欲しかったなぁ。あ,もしかしてもう潰れてた?


しかし冷静に思い返してみると,あの四つ葉のクローバーの量は何かおかしかったような。あの川原で昔に何かあったのかなぁ。

2006-05-11

Google Analytics はじめました

Gooleがやってるアクセス解析サービスの『Google Analiytics』の招待メールが来たので,ブログに組み込んでみました。このページのソースを見てみると,アクセス解析用のJavaScriptコードが一番下に入っているはずです。

Google Analyticsはだいぶ前(2005年11月)にサービスを開始したけど,申し込みが多すぎて一時新規ユーザの登録を凍結してたみたいです。自分もそのころに申し込んだけど,今頃になって招待メールが来るとは。


ゴールデンウィークもあってしばらくブログもお休みしてたけど,アクセス解析した結果が寂しいと嫌なのでブログ書きを再開します。

2006-04-20

SWTのBrowserウィジェットは便利

仕事でJavaのプログラムを書いているっていうと,StrutsやOracleやDIコンテナでゴー!っていうサーバサイドな人が多いと思いますが,私はクライアントサイドのアプリをJavaで作ってます。

特殊な端末向けの専用アプリで,いろいろとシステム上の都合からクライアントサイドアプリが必要なのです。GUIライブラリはSWT ver3.1.1を使っているんですが,これに含まれるBrowserウィジェットという画面部品が超便利なので,メモっておきます。

Browserウィジェットというのは簡単に言えば,IEコンポーネントをJavaから使えるようにしたものです。便利なのは,Browserウィジェットのほうから表示されるHTML上のJavaScriptを起動できること。

例えば,test.htmlのなかでtest()という関数が定義されてたら,次のようなコードで実行できます。


Browser browser = new Browser(this, SWT.NONE);
URL url = getClass().getResource("test.html");
browser.setUrl(url.toString());
browser.execute("test()");


さらにJavaScript内でwindow.statusに値を設定すると,そのイベントをJavaで拾って値を取得できます。それにはこんな感じでリスナを設定すればOK。


browser.addStatusTextListener(new StatusTextListener() {
public void changed(StatusTextEvent e) {
// JavaScriptで設定した値を表示する
System.out.println("window.status=" + e.text);
}
});



これで何かうれしいかというと,画面デザインをHTML+CSS+JavaScriptで出来るようになるからです。SWTはけっこう色々出来るんですが,やっぱり細かいデザインに拘りだすとSWTだけでやるのは難しい。新しい画面部品を作ったりしなくちゃいけなくなって面倒くさいです。

そういう場合にはHTMLとJavaScriptでガーっと作っちゃうことが出来ます。しかもコンパイル無しであとから変更可能!

前にprototype.jsの練習をしましたが,今になって役に立ってきてます。あとScript.acuo.usとか使うとデザインの幅が出てきて良い感じになります。

ということで,クライアントアプリでBrowserウィジェットを使うと,工期が短くて忙しいときでも,わりと簡単に画面が作れるよという話しでした。




ついでにBrowserウィジェットでちょっと嵌ったこともメモ。上でtest.html内のtest()関数を呼び出すサンプルを出したけど,Browserウィジェットからは外部JavaScriptファイルで定義された関数は呼び出せないみたい。

つまりtest.js内でtest()関数が定義されていて,そのtest.jsをtest.htmlが読み込んでいるとする。その場合はbrowser.execute("test()")とやってもtest()関数は呼ばれません。これがバグなのか仕様なのか調べてないけど,まぁそういうことらしい。

2006-04-19

英語の勉強

5月28日に開催されるTOEIC試験に申し込みました。
今年いっぱいは英語をがんばる予定です。

ということで英語の勉強をしなくちゃいけない。まずTOEICの公式ページを調べてみたところ,どうやら5月28日の試験から新方式に変わるみたいです。


新TOEIC(R)テストについて
これは実際のコミュニケーションで必要とされる英語能力を評価するために、より現実に即した状況や設定をテスト上でも再現するというもので、問題文の長文化、発音のバラエティの増加[ 米国・英国・カナダ・オーストラリア(ニュージーランドを含む) ]、誤文訂正問題の削除、などが行われています。


よりコミュニケーション能力を試験するのに合った方式になる模様。良く分からないけど,とりあえずヒアリングを鍛えとけってことで,以下の記事を参考にしてNPRというアメリカのラジオ局のニュースを聞くことにしました。



朝の5分間のニュースが良い感じです。会社までの通勤時間に聞くのにちょうど良いです。いろいろ聞いてみた結果,次の二つの番組を毎朝聞くことに決めました。

    NPR: 10AM ET News Summary
      普通の朝の5分間ニュース。政治とか経済とかスポーツとかいろいろ。
    APM: Future Tense
      テクノロジー関係に絞った五分間ニュース。今日はGoogle Calendarのレビューをやってました。



まだ始めて一週間ぐらいしか経ってないので効果が上がっているか分からないけど,これから毎日続けていく予定です!

2006-04-18

バトンが回ってきた

Laizより妄想バトンというのが回ってきたので答えてみる。


@回答方法:考え込まずに直感的にやってみよう!!
Q1.”水戸”といったら?
黄門さま。

Q2.“朝”といったら?
遅刻しない程度に早く起きたい。

Q3.“チャラララ~”というフレーズで思い出すのは?
チャルメラ?

Q4.“ナベ”といったら?
ナベツネ。

Q5.“南国”といったら?
プライベートビーチでトロピカルフルーツ。

Q6.“光”といったら?
どうもと。

Q7.“ラーメン”といったら?
しょうゆに限る。

Q8.背後で“ドン”と鳴った。さて何があった?
ガバチョかな,小西かな。

Q9.“かぜ”といったら?
今ひいてます。

Q10.“花”といったら?
花男

Q11.“カレー”といったら?
昼飯。食堂でカレーしか食ってねーや。

Q12.“すき”といったら?
きらい。

Q.13.“動物”といったら?
シロクマ。自分的に自然界最萌動物。

Q14.朝起きたら一番嫌いな人になってた。今日一日どうしますか?
何とか好きになれないか努力する。

Q15.“北”といったら?
ちょーせん。

Q16.“ゆき”といったら?
雪だるま。

Q17.“水”といったら?
水泳。

Q18.“美”といったら?
伊藤若冲。

Q19.貴方は桜の花です。見ている人に一言。
「もっと見て!」

Q20.“イロ”といったら?
黄色。

Q21.“夜”といったら?
あと10時間ぐらい長くなって欲しい。

Q22.“男”といったら?
仲間。

Q23.“むし”といったら?
カブトムシ!

Q24.“氷”といったら?
ハネが多くて書道教室でよく直された。



なんだかこのバトンの狙いが良く分からないけど,とりあえず答えてみた。他の人に回さなきゃならないらしいけど,このブログを見た人はご自由に答えてみてください。それがバトン2.0だ! とか言ってみる。






関係ないけど,Laizのブログにコメント書こうとするとスパム判定されてしまうので,「就職おめでとう!」とこっちに書いとく。

2006-03-26

伊藤若冲『動植綵絵』を見に行った。

Oracle試験にも合格したので,自分へのボーナスということで三の丸尚蔵館で公開されている伊藤若冲の「動植綵絵」を見学してきました。


Oracleの試験会場が四ツ谷だったので皇居まで散歩してみました(三の丸尚蔵館は皇居内にあります)。「皇居の周りは綺麗だなー,桜も咲いてるし」「最高裁判所の建物はかっこいいなぁ,あれなら裁かれても納得」「おぉ,皇居内ってこんなに広いのかぁ」とか考えながらぶらぶらしてました(皇居近辺に行くのは初めてなんです)。

kokyo_2緑が多くて良いです

kokyo_3かっこいい最高裁判所。

kokyo_4花が咲いてました

kokyo_5さすが皇居,しっかりお城です。





で,三の丸尚蔵館。かなり小さいところです。展示会場も小っさいです。その会場の中に六幅の掛け軸がかけてありました。前にバークコレクション展に行ったときに伊藤若冲の作品は見ましたが,これは全然違う。若冲すごいです。「これが江戸時代の作品なの?」ってぐらい色鮮やかです。なんというか,こってりしっとりって感じです(語彙が少なすぎ)。これは実物を見ないと分からないと思いますね。

以下は今回展示されてたもののメモです。

    芍薬群蝶図
      いろんな種類の蝶が飛んでいる絵。羽の一枚一枚が細かく描かれていてとっても綺麗です。
    老松白鶏図
      松の木に止まっている白いニワトリの絵
    南天雄鶏図参考
      黒いニワトリの絵。闘鶏?
    雪中錦鶏図参考
      雪の降り積もった枝に止まっている鳥。「鶏」って書いてあるけどそれっぽく見えない鳥でした。
    牡丹小禽図
      ボタンの花で埋め尽くされた中に小鳥が何羽か。
    芦雁図
      ガンという鳥が急降下してくる様子の絵。地味だけど俺はこれが一番好き。羽根のしっとり具合が良いです。




伊藤若冲の動植綵絵は全部で30幅あって,6幅ずつ五回に分けて展示するそうです。三の丸尚蔵館は入館料無料(!)なので,今後の展示も見に行こうかなーって思ってます。いやー,若冲は凄いっすよ。



<参考リンク>
弐代目・青い日記帳 | お待たせ!伊藤若冲「動植綵絵」公開です
  今回の展示はこちらで知りました。各種情報がまとまっていて助かります。
Google ローカル - 皇居
  三の丸尚蔵館の場所。皇居内がでかすぎて迷ったのでメモ。


追記:こちらの記事で展示されてた絵の画像が見れます。
弐代目・青い日記帳 | 「花鳥ー愛でる心、彩る技〈若冲を中心に〉展」第1期

Oracle Silver Fellow 取得!

やっとこさ取得できました。やったー! ここ最近で一番うれしいです。

仕事のほうが忙しくなってきてまして,今日を逃すと勉強を続けるのがかなり難しくなるので,タイミング的にぎりぎりでした。いまは二つのプロジェクトを同時進行(片方のは自分のみの一人プロジェクト)と産休を取る先輩社員の受け持ち業務の引継ぎをやってまして,仕事量が増えてきてます。

そんななかで勉強をしてたので,もう寝不足寝不足。睡眠時間しか削るとこ無いよ!って感じでした。でもそれも今日で終わりだ! よっしゃー!(酒飲みながら書いてるのでテンション高めです)


今後も時間は無さそうだけど,なんか他にも資格を取りたくなってきました。とりあえずTOEICとか挑戦したいけど,一緒にスコアを競いたいって人,居ませんか? ライバルが欲しいっす。

2006-03-16

ここ最近やったVisual Editorの拡張

  • 自作したレイアウトマネージャを追加
  • 追加レイアウトマネージャ用のEditPolicyを作成
  • プロパティシートの文言を差し替えて日本語化
  • Visual Classの新規作成ウィザードに作成した画面クラスを追加

Visual Editorの拡張のやり方については,そこそこノウハウが溜まってきたので,ちょっとずつアウトプットしていこうと思います。


【VE関連 過去記事】
サルノオボエガキ: Eclipse GUI作成プラグイン 『Visual Editor』
サルノオボエガキ: 『Visual Editor』拡張に関するドキュメント
サルノオボエガキ: VisualEditorのパレットにGUI部品を追加する
サルノオボエガキ: Visual Editorの設定ファイルはバージョンに注意!

タブレットPCを使ってみた。

わけあって,会社の自分のデスクにタブレットPCが2台,タッチパネルディスプレイが1台あります。開発用のマシンなんですけど,タブレットPCについては私物化が進行中。


最近の私の仕事は,「店舗内の受付係が使うクライアントサイド・アプリのデモシステムを作る」ってやつです。デモシステムなんで画面デザインや使用技術を含めて,決定をかなり任されてるので,自由に動けて良い感じです。
で,そのアプリはタブレットPCで動かすので,開発用マシンとして2台確保してます。タッチパネルのほうはまた別の仕事で使うのです。

タブレットPCって始めて使ったけど面白いですね。手書きで文字入力できるのが面白い。Windows Journalってソフトを使うと,ノートに書き込むのと同じように入力できます。入力したあとの文字を自由に動かせるのが良いですね。図も文字と同じように書けるし。

なかなか便利なので,タブレットPCでいろいろやってみました。

  • 手書きでプログラミング
    • ネタとして。以下はJavaでHello Worldを書いてみたやつ。誤変換もそのままで載せる。
      Public class Test
      {
      Public static Voidmain(String args[]){
      System.out.println(”Hello,Tablet”);
      }
      3
      3ってなってるのは”}”を書こうとして挫折したもの。”}”を認識させるのってムズいよ。
  • 絵を描いてみる
    • 道具が上等でも絵の腕は変わらないようですw
  • マインドマップを書いてみる
    • あまり試してないけど,これは結構良いかも。俺はマインドマップを書くのが苦手だけど,なぜかって言うとスペースが上手く使えないから。これは書いたものの位置が動かせるので便利。


ということでプライベートでも自分用のタブレットPCが欲しくなってきちゃいました。つーか,忙しいんだから仕事中にタブレットPCで遊ぶな>自分

2006-03-10

Oracle Silver Fellowを受験することにした

今週の土曜日と,来週の土曜日にOracle Silver Fellowの資格試験を受けてくることにしました。

自分の会社だと入社2年以内にベンダー系の資格を2つ取らないといけないことになっています。そのことをすっかり忘れてて,思い出したのが今週の月曜日。速攻で受験予約をして,ただいま受験勉強中です。

『Oracle Silver Fellow』はOracle社が主催しているデータベースの資格で,「SQL」と「Oracle入門」という二つの科目に合格することで取得できるものです。とりあえず今週土曜日はSQLの試験を受けて,来週はOracle入門を受ける予定。

Oracleは前のプロジェクトで相当使っていたので何とかなりそうなんだけど,細かいところでややこしい規則があったりして,覚えるのが面倒くさい。日付のRR書式とか,止めてくれ!


自分が忘れてたせいだけど,受験まで時間が無いのがキツイ。でもその障害のせいか,妙に受験勉強に燃えている今日この頃です。


追記:
 うわーSQL試験,失敗しちったー! 受験料がパーだ! もうちょっと計画的に勉強するぞ!

2006-03-02

Ajaxモドキで素因数分解

JavaScriptの勉強がてら,入力された数字の素因数分解をするページを作ってみました。名づけて『博士の愛した素因数分解』。JavaScriptと『博士の愛した数式』のコラボレーション!

ページを開いて数字を入力するとテキストボックスの下に素因数分解の結果がリアルタイムに表示されます。別にサーバとやり取りしているわけではないので全然Ajaxじゃないです。非同期処理でもないので,大きな数字を入力すると処理に時間が掛かりすぎて「スクリプトを停止しますか?」ってメッセージが出てきちゃいます。まぁ,この前からJavaScriptの勉強を始めたばっかりなので,これぐらいでご容赦を。

いろいろと調べながら作ったので,こんだけの処理なのに40分も掛かってしまいました(^^;


>Laiz
これ使えば2311が素数かどうか,すぐに分かるよ!

2006-02-28

AjaxとRuby on Rails

前々からこの二つはやってみたいなーと思ってたけど,きっかけが出来たので始めてみました。きっかけというのはこの二つの雑誌の記事。

Amazon.co.jp:Web+DB press (Vol.31): 本

オープンソースマガジン 2006/03


【Ajax】
AjaxというかJavaScriptについては苦手意識がありました。JavaScriptを前に仕事で使ったときにバグを探すのに嵌ってしまって,納期が迫っているのにいろいろと大変だったということがありました。それがトラウマになっているってのが大きいですね。それにどうやったらキレイにコードが書けるのか良くわからなかったっていうのもあります。

上のWEB+DB PRESSではnaoya氏がPrototype.jsというJavaScriptのフレームワークを使ってオブジェクト指向にJavaScriptを書く,という記事があります。とりあえず記事のとおりに書いてみたら何となくJavaScriptでのプログラミングの感じが分かってきました。それにPrototype.jsはなかなか便利そうです。これならキレイに書けそうですね。

記事によるとJavaScriptは名前に反して,Javaよりも関数型言語に近い性質を持っているようです。前はJavaと同じような感じでやってたので微妙な違和感があったのかも。たまたまだけど,最近Haskellのプログラムで遊んでいたので,そういうところは受け入れやすかったです。

いまのところ記事に書いてあった内容以上のことはやっていないんですが,Ajaxの最初の一歩としては踏み出せた感じ。


【Ruby on Rails】
オープンソースマガジンの記事で紹介されているInstantRailsを使ってみたんですが,これ簡単! Zipファイルを落としてから展開すれば,ほとんど何もやらずにRails環境が出来ちゃいます。ネット上の情報では以下のページが分かりやすいです。

満足せる豚。眠たげなポチ。:簡単Ruby on Railsの決定版? - Instant Rails -

このページのとおりにやればInstantRailsの設定はOKです。ただ自分の環境ではなぜかSCGI Serverでは駄目だったので,WEBrickでRailsアプリを起動してhttp://127.0.0.1:3000/を開くという方法でテストしました。これで素早くRails環境が構築できます。どれぐらい素早いかというと,会社の昼休み中にすべて完了するぐらい(え? 会社ではやってませんよ^^;)

環境が出来たらRailsアプリを作成しよう! ということでこのページのチュートリアルにしたがってBookmarkアプリを作ってみてRails開発の手順を勉強してみました。

BookmarkOnInstantRails


では次にいよいよオリジナルアプリの開発だ! と思ったんですが,考えてみたらオレ,Ruby分からないんでした。Railsやる前にRuby言語を覚えましょう,ということでRuby on Railsの勉強はここで中断。

なんというか,中途半端にしかRails開発してないですが,Railsって確かに簡単に最初のアプリは作れるけど,それをカスタマイズしていくにはそれなりに知識が必要なんじゃないかって気がします。そこらへんが実際にどの程度手間が掛かるのか良く分からないので,Railsが便利なのかどうかイマイチ判断がつかない。まぁ,それも今後やってくということで。



と,いうことでようやく自分も流行に追いついてきたような気がします。この二つはもうちょい遊んでこうと思います。

[映画]『博士が愛した数式』

この間友人たちと一緒に『博士が愛した数式』を見てきました。
いやー,良かったです。理系の人間にとって癒し系の映画ですね。


80分しか記憶がもたない博士と,博士を世話する家政婦とその息子(ルート)の話し。博士のキャラがよいですね。いきなり友愛数完全数についての話を始めちゃって止まらなくなるところとか,愛すべき学者馬鹿って感じです。

さらにその博士の話しをきちんと受け止める家政婦さんが良い。なんというか,これは理系人間にとっては理想ではないでしょうか? 家政婦さんを深津絵里がやっているのが良いですね(市原悦子じゃなくて良かった)。

映画はけっこうほのぼのとした感じで進んでいきます(ルートくんに野球を教えたり)。ただ,朝起きた博士が自分の記憶が80分しかもたないってことに気付いて泣き崩れるところはショックなシーンでした。ほのぼのとした日々の裏で毎朝この悲劇を繰り返していたわけですからね。数学者の伝記を読むと,最悪の状況で研究を続けてついに大発見!というのを良く読むけど(アーベルとか),数学ってのは精神を鍛える効果があるんでしょうか?


私は昔から数学は好きでした(成績は悪かったけど)。だから数学パズルの類いは一通り知ってるんでけど,そういうネタが映画館の大画面で堂々と説明されているって状況が良かったです。完全数だとかは知っているけど,そういう説明を聞いているだけで嬉しくなってきちゃいました。

ただ欲を言えばもうちょっと踏み込んで解説してほしかったなーと思いますね。友愛数とか虚数の説明は詩的な言葉で綺麗なんだけど,数学的にもう一歩踏み込むとさらに面白いんだけどな~。うーむ,でも興行的に考えるとこのラインがギリギリかもしんないですねぇ。


映画を見る前に原作を読んでいたので内容は分かっていたけど,なかなか面白かったです。理系の人間は見に行ったほうがいいと思います。じゃないとあんな大画面でディープな数学ネタが話されている映画なんて二度と見れないですよ!



【参考リンク】
ポール・エルデシュ - Wikipedia
  前にドキュメンタリーで見たことあるんですが,たぶん博士のモデルはこの人だと思います。
シュリニヴァーサ・ラマヌジャン - Wikipedia
  インドの天才数学者。博士みたいに数に対する直感がずば抜けた人みたいです。1729ってどんな数字だか分かります?
『数学の美しさ』
  なかなか面白いです。このピタゴラスの定理の証明なんて初めて知りました。
ベイズの定理
  あんまり関係ないけど,私がお世話になった数式。



P.S.
一緒に見に行った友人
 ごめん,2311ってやっぱり素数だったよ。

2006-02-12

ニューヨーク・バーク・コレクション展

東京都美術館<企画展> ニューヨーク・バーク・コレクション展


東京都美術館で開かれていたバークコレクション展に行ってきました。
バークさんというアメリカのお金持ち&日本マニアの人が集めたコレクションを展示するというイベントで,展示されているのは古今東西の日本美術です。いや~,やっぱり日本美術は良かったです!

思ったよりも展示品がたくさんあって,見応えがありました。「感動」というより「面白い」という作品が多かったですね。ただ後半は時間が足りなくて,ちゃんと見れませんでした。もう一回見に行っても良いかも。
とにかく,古今東西いろんな作品があるので,どんな人が見に行っても何かしら気に入る作品があると思います。ということで,バークコレクション展はおすすめです。


面白かった展示品をちょっとメモしときます(括弧の数字はカタログ番号)。

  • 縄文土器(1)
    • 入っていきなりこれ。教科書で見たのと同じだ! 初めて実物見ました。
    • 実物を見ると,形がすごく複雑で立体的ですね。
    • 当時にすると,これを作ったのは最先端技術者だったんだろうなぁ。
    • エンジニア視点だと,このデザインには実用的意味があると見た!
      • 底が不安定だから,紐通したり棒で固定したりしたのでは?
  • 根来黒漆蝶文瓶子(19)
    • 焼き物の瓶。
    • 黒字に赤い蝶の模様があって,シックでカッコいい!
  • 春日鹿曼荼羅(25)(26)
    • 掛け軸になってる絵です。
    • 春日神社のマスコットキャラ(?)の鹿と仏様が描いてあります。
    • なんだか鹿の表情といい背景といい,メルヘンな感じで良い。
    • 寝室に飾ったらよく寝れそう。
    • これ欲しいなぁ。
  • 秋冬景物図屏風(32)
    • でっかい屏風絵。
    • 金箔貼ってあるのでキンキラキンです。
    • 少し離れて眺めてると,なんというか,フワーってします。
  • 十牛図(33)
    • 『鉄鼠の檻』で出てきたやつね。
    • 4枚しか見れないぞ,どうなってんだ!
  • 洛中洛外図屏風(78)
    • 江戸時代の「ウォーリーを探せ!」
    • 時間が無くてじっくり見れなかった,残念。
  • 百鬼夜行絵巻(87)
    • おぉ,これも京極夏彦の小説で出てきたやつだ。
    • 結構綺麗に残ってるし,面白いなぁ
  • 石橋図(102)
    • 展示会のパンフレットの表紙にもなってたやつ。
    • なんだかコミカル,ディズニーっぽい。
      • 「101匹獅子ちゃん大行進」ですか?
  • 月夜瀑布図(104)
    • 近くで見ると何描いてあるんだかわかんない
    • 離れてみると確かに「月と滝」だ,カッコいい!
  • 双鶴図(100)
    • 伊藤若冲キター!
    • 期待してたのに,時間が無い&人多すぎで良く見れませんでした。
    • しょうがないので売店でこれがデザインされてるクリアケース買った。

全体的な感想を少々。
  • 実物を見るのは良い。
    •  気持ち的なことではなくて,物理的に写真や本より実物のほうが大きいから。良いものは細かいところにも凝っていて面白いです。例えば,幾つかの屏風絵に囲碁を指している場面が描かれていたんですが,碁盤が細かく描かれていました。多分,囲碁のわかる人なら対局の様子も分かるんじゃないかな,ってぐらいです。
  • 温故知新。
    •  展示品は縄文時代から明治時代まで,古い美術品があったわけですが,「古さ」というのは余り感じませんでした。例えば水墨画の岩の描き方はCGっぽい。ポリゴンで描けそう。水墨画的世界を舞台にしたゲームとかも嵌りそうですね。
  • 翻って自分はどうだ?
    •  芸術家も技術者もモノを作るって点では同じ。ここで展示されている作品を作った人は自分の作品が何百年もあとにたくさんの人に見られて,さらにブログで感想を書かれるなんて思ってもいなかっただろうなぁ。さて自分はそんなふうに何百年後にも残っていくものを作れるんだろうか? この前,博物館に寄贈されたソースコードの話しを読んだけど,そんなモノを自分も作ってみたいなぁ。というか目標が大きすぎる?


ところで,美術館に行くのはこれで3回目だけど,行く度に「俺がルパンだったらどうやって盗むだろう?」って考えながら見学してしまうのは良くないかなー。


【参考リンク】
ニューヨーク・バーク・コレクションで「エネルギー」を浴びる - nikkeibp.jp - 展覧会のツボ
弐代目・青い日記帳 | 「ニューヨーク・バーク・コレクション展」
  ↑見に行く前に読むと良いと思います。見所が分かります。

2006-02-08

Visual Editorの設定ファイルはバージョンに注意!

あいかわらずVisual Editorを拡張して開発ツールを作るって作業を続けてるんですが,昨日ハマってしまった問題をメモ。

VEのいろいろな機能を拡張するにはEMFオーバライドする必要があって,そのために.overrideファイルというXMLを書くのですが,そのフォーマット(スキーマ)がVEのバージョンによって違うみたいです。


公式サイトを見ると,2月9日現在,Visual Editorの最新バージョンは1.2M1というやつになってます。ですが,安定バージョンとして出ているのはVE v1.1.0.1 releasedのようです。Eclipseの”ソフトウェア更新”で『Eclipse更新サイト』からインストールされるのも,これです。

VEv1.2はEclipse3.2が必要みたいだし,日本語化パックも出てなかったので,自分の環境はEclipse3.1+VEv1.1.0.1で作ってました。試しにEclipse3.2+VEv1.2も作ってみたけどイマイチ安定してなかったです。

以下の文書では,VE1.1からVE1.2へバージョンアップしたときにEMFオーバライド用の.overrideファイルが変更になることが報告されてます。

  Override Files Migration Instructions


以下で.overrideファイルのフォーマット変更について大雑把に説明してみます。

まず現在のフォーマットは次の二種類
 旧フォーマット:<event:Add>とか使うやつ。
 新フォーマット:<objectsToAttach>とか使うやつ。

次に対応状況(予定)。
 VE v1.1
  ○ 旧フォーマット
  × 新フォーマット
 VE v1.2
  ○ 旧フォーマット
  ○ 新フォーマット
 VE v1.3
  × 旧フォーマット
  ○ 新フォーマット

※ 旧フォーマットから新フォーマットへ移行するためのフィーチャが提供されている



つまり旧フォーマットはVE1.3では使えなくなるみたいですね。確かにVEのドキュメント調べてると,違うフォーマットの設定ファイルが出てくるから変だとは思ってたんですよね~。自分はVE1.2用の.overrideでVE1.1を拡張しようとしてたから駄目だったようです。

VE1.2が安定するまで待ってらんないので,手持ちの.overrideファイルを全部VE1.1用の旧フォーマットに変更したら,EMFオーバライドに成功しました! ふー,ようやく作業が進んだよ。


注:
 Palette XMIファイルも同じようにフォーマットが変更されるそうです。
 Migration to VE 1.1 notes

【VE関連 過去記事】
サルノオボエガキ: Eclipse GUI作成プラグイン 『Visual Editor』
サルノオボエガキ: 『Visual Editor』拡張に関するドキュメント
サルノオボエガキ: VisualEditorのパレットにGUI部品を追加する

親父越え?

このあいだ飲み会に行ってきたんですが,そのときの様子を思い出して自分的に衝撃の事実に気付いてしまったので,メモ。

飲み会は楽しくて良かったんですが,自分の発言を思い返すとあまりにも適当なことばっかり言ってました。派手なガラのシャツを着てたので「チンピラファッションだ」と主張したり,席の中心で「愛!」と本当に叫んでみたり・・・。もうちっと意味のあることは言えんのか,お前は! って感じっすね。

うん,まぁ酔っ払ってるんだから良いかなーとは思います。ただ,こういう酔い方が親父とまったく同じなのはどういうことなんでしょう! 実家にいるときは親父が晩酌するときはいつもこんな感じでしたよ。自分はあまり親父に似ていないと思ってたけど,こんなところが似てくるとは。

このことに昨日気付きまして,一人で部屋でヘコんでました。父親のことは尊敬してますよ! だけどやたらヘコむのは何故なのか・・・。あれか? 越えなきゃならないのか? 「親父越え」ってやつなのか,これが?

うーん,イマイチ理解不能な感情ですが,次の飲み会では思いつきじゃない発言も出来るようにしたいと思います。


--------
検索してたら親父越えTシャツなるものを見つけた。なんだこれ?
 

2006-02-02

プレゼンのノウハウについてメモ

明日,会社でプレゼン発表をしなければいけないんですが,プレゼンに関するノウハウについて自分用にメモっときます。

以下を書いてから思ったけど,自分の発表資料はこのノウハウを活かしてないなぁ。うーむ,今後の課題!


【資料作成について】
Dave's Blog: プレゼン資料作りにあたっての10/20/30の法則
 資料の構成について。ベンチャーキャピタルにプレゼンするときを対象にしているけど,これぐらいシンプルだと発表もしやすそう。
Dave's Blog: VCに見て貰えるビジネスプランの書き方
 こちらも資料の構成について。上とは微妙に違う。
他人の不幸は蜜の味: あなたは「クズみたいな提案書」を作っていないか?
 『あなたが「最終的に何を言いたいのか」を、30秒で伝えること。まずそれを考えるべきだ』。うーむ,自分の資料は出来てないなぁ。
Passion For The Future: 鉄則!企画書は「1枚」にまとめよ
 プレゼン以前の企画書についての本の紹介。まだこの本は読んでないけど,この紹介だけでも結構分かる。
図解言語入門:図解の技術を覚えよう(1)
 資料を作っていて文章が多くなってしまったときに。全7回のシリーズです。これは分かりやすくて参考になりました!


【発表の仕方について】
i d e a * i d e a - プレゼンハック ~プレゼン改善のための10個の小技~
 検索会議2005でも見たけど,百式管理人さん本当にプレゼンが上手いです。”拍手ハック”は使ってみたい。その他も具体的なワザがいくつか紹介されてます。
プレゼンでアガってしまう人に贈る処方箋:IT Pro
 発表前の緊張に医学的に対処! 具体的なメソッドとして呼吸法,イメトレ,筋リラクゼーション法が紹介されてます。


【プレゼンの心得】
Life is beautiful: プレゼン専用、平置き液晶モニター
 『多くの人が勘違いをしているのだが、プレゼンの主役はパワポのスライドではなく、プレゼンをしている本人である』。目からウロコです。
Life is beautiful: スティーブ・ジョブスに学ぶプレゼンのスキル
 プレゼンの鉄人,ジョブスのプレゼン手法について。というか,これは真似できないっす。
Zopeジャンキー日記 :トム・ピーターズの超ポップなプレゼン資料
 こんな資料のプレゼンを見てみたい。これも真似できねーよ。
PowerPointとつまらないプレゼンを無関係にするには? - CNET Japan
 プレゼンというか,パワポの便利な使い方について。


【その他】
Amazon.co.jp:「分かりやすい表現」の技術―意図を正しく伝えるための16のルールブルーバックス: 本
 この本は超お勧めです! 例をたくさん挙げて,分かりやすくするにはどうすれば良いのか,具体的に解説しています。何よりこの本自体が分かりやすい!
私の読んだ本 - 「分かりやすい」表現の技術
 上の本では分かりやすさのための16のルールを挙げていますが,それはこちらのページで見れます。

2006-01-31

ショックなニュース二つ

スラッシュドット ジャパン | プログラミング情報誌「C MAGAZINE」が休刊か

2006年3月発売号で休刊だそうです。休刊≒廃刊ってことだよなぁ,残念。
私も「C MAGAZINE」の愛読者でした。私がプログラミングを始めたのは中学生ぐらいだったんですが,インターネットも無く,パソコン通信もやってない人間にとって,この雑誌は貴重な情報源でした。C言語もJavaも最初は「C MAGAZINE」で勉強しましたね(中学生に1800円は痛かったけど)。

「C MAGAZINE」はわりと骨太な技術の特集をやってましたね。確か,自分がデータ圧縮やコンパイラの構成について知ったのもこの雑誌からだったはずです。う~ん,やっぱり残念だ。雑誌はインターネットの情報量には勝てなかったということなんでしょうか? とりあえず最終号は記念に買うことにします。



ソニー、AIBO、QRIO、QUALIA撤退

AIBOが新規開発中止,生産も2005年度末までで終了となるそうです。
実は大学生のころ,AIBOを動かすためのプログラムを書いたことがあります。友人がAIBOを利用した卒業研究をやってたんですが,その助っ人として手伝いました(お礼に寿司を奢ってもらったw)。あんまり覚えてないけど,C++でプログラムを書いて,メモリースティックに転送してAIBOに挿入,再起動して読み込みって感じで開発してました。
AIBOってただのロボットだけど,プログラムを書いているうちに何だか可愛く思えてくるんですよね~。作ったのはAIBOを歩かせるプログラムだったんですけど,最初は上手くいかなくて生まれたての子馬のような動きだったんですよw それが徐々にしっかりした歩きになっていくのは,まるで子どもの成長を見守る親のよう! 
でもそれが生産中止かー。まぁたソニーが詰まらなくなっちったよ。




テンション下げてばかりでもアレなので,面白かったことも二つ。

Waterfall 2006 - International Conference on Sequential Development(via 秋元@サイボウズ研究所プログラマーBlog
「ウォーターフォール開発を見直そう!」というカンファレンス。ナイアガラの滝で開催されるそうです。アジャイル開発プロセスで論文書いた身としては,このネタはかなりキましたw。”ペア管理: プログラマ一人にマネージャ二人”!

やわらか戦車2 ラレコ先生
 Flashアニメです。音楽と絵が絶妙で,ここ最近はこれが頭の中でエンドレスになってます。作者さんのサイトにある「コアラッコ」も最高! コアラッコ,コアラッコ,生まれたときから反逆児~♪

2006-01-25

[映画]『スーパーサイズ・ミー』


Amazon.co.jp:スーパーサイズ・ミー: DVD



ダイエットの一環として見てみた。結論から言うと,もう怖くってハンバーガーなんか食えません。


『スーパーサイズ・ミー』では,監督(上でポテトくわえてる人)が「マクドナルドの食品を一ヶ月間食べ続けたらどうなるか?」ということを検証するため,身体を張ってチャレンジします。そのときのルールは三つ。
  • 1.マクドナルドで販売されているものしか食べてはいけない(水も含む)
  • 2.一日三食,残さず食べる
  • 3.”スーパーサイズ”を薦められたら断ってはいけない

”スーパーサイズ”というのはS・M・Lのさらに上のサイズです。映画で出てきたけど,デカすぎです。コーラのカップなんか子供用のバケツみたいです。

最初は笑顔でハンバーガーを食べていた監督も,二日目にして早くも気持ち悪くなり胃の中がリバースしてました。監督,さすがにスーパーサイズは辛そうです。二日目を過ぎると何とか慣れたみたいで淡々と食べてきます。取材で各地を回りながら,アメリカ各地のマクドナルドを回っていきます。監督,テキサスのご当地バーガーに喜びます(あー,さすがに飽きてたのね)。しかしこのチャレンジは20日を越えたあたりからだんだんとシリアスになってきます。なんというか,壮絶です。最後にどうなったのかは見たときのお楽しみ。
それにしても,監督の彼女がベジタリアンなのは皮肉ですねー,明らかにこの企画は彼女への嫌がらせでしょ(w



ノリとしては電波少年みたいなんですが,監督のチャレンジの合間に,真面目にアメリカの食の問題に切り込んでます。そもそも,この企画が始まったのがアメリカの二人の少女が「自分が肥満になったのはファーストフード店のせい!」って訴えたという事件からです。この事実だけ知ると,「またアメリカで変な訴訟やってんな」って感じに流してしまいそうですが,この映画を見たあとだと簡単には片付けられない問題だということが分かりますね。

マクドナルド生活が始まって,実験台の監督は「マクドナルド中毒」のようになっちゃいます。一日中うつ状態で,ハンバーガーを食べたときだけ気分が明るくなるっていうような状態です。

映画の中でインタビューされている人が言っていましたが,「タバコ会社と喫煙者」の関係が「ファーストフード企業と太っている人」の間にもあるんじゃないかって考え方が出てきます。タバコ会社はきちんとタバコの害をアピールしているし一定の責任は果たしているけど,ファーストフード企業はそれをしていない。売ってるものに中毒性がある以上,これってアンフェアじゃないの? という意見です。アメリカでは肥満が原因の病気で死ぬ人が増えているようで,タバコと比較するのもそんなに的外れではないようです。

法律で規制しようにも,当然ファーストフード企業のためのロビィ団体があるわけで,なかなか上手くはいきません。そんな状況をぶち壊すために監督はこの映画を作ったんでしょう。実際,映画公開後にマクドナルドではスーパーサイズの販売を中止したそうです。映画ではハンバーガーを食べてるだけだったけど,なんか監督がカッコよく思えてきました。


こういうのを見ると日本でも同じことをやってくれないかなーって思いますね。まずはセブンイレブンの弁当か吉野家あたりで。前にコンビニ弁当ばっかり食べてたときに,大分太りましたからね。


この映画を見たあとだと食べ物に関しては気をつけるようになりますね。とりあえずダイエット効果ありだと思います。



【参考リンク】
日本マクドナルドホームページ - 栄養情報
 マクドナルドの食品成分表。どうでも良いけどFlashは使わないでほしい。
外食、食品栄養成分分析マップ
 各種外食産業の食品成分表ページのまとめ

2006-01-24

Programmable Myself #2

以前のエントリのアイデアで思いついたことをメモ。
とっても「チラシの裏」的なエントリなんで,よく分からなくても気にしないでください。


「マネジメントをプログラミングに変える」
自分がやりたいのは「マネジメント」 という言葉を「プログラミング」に変えたいって事なんだよなー。プロジェクト・マネジメントじゃなくてプロジェクト・プログラミング。セルフ・マネジメントじゃなくてセルフ・プログラミングとか言うと素敵。

「精神的サイボーグ」
サイボーグってのは機械で身体の機能を代用する。じゃ,ソフトウェアで自分の仕事の一部を代用する,つまりスケジュールをPDAで管理してアラームで知らせるみたいなことをしている場合も,ある種のサイボーグみたいなものじゃないのかな。この例じゃそうでもないかもしれないけど,もうちょっときめ細かくサポートできて便利になれば,実感も出るのでは。


TODO:
 とりあえずプログラマブルTODOリストについて考えてみる。つーか,分かりにくいからなんか作れ>自分

2006-01-22

ドラゴンを拾った

最近,会社で組織改変がありました。上層部の考えとしては,うちの部署は利益があんまり出てないから,もうちょい収益を考えた開発をしろよってことらしいです。

そんなことで席を移動しなくちゃいけなくなって,机の掃除をしてました。ゴミ出しにいってみると,同期のS氏が何やらゴミ捨て場を漁ってました。ちょっと話してみると,本がたくさん捨ててあって,使えそうなのが無いか探していたとのこと。さすがS氏,ということで一緒に漁ることに。仕事中にゴミ捨て場を漁る男二人。

いろいろ探っていると,見覚えのある表紙の分厚い本がありました。おぉ,これはドラゴンブックではないですか!!! しかも原著! コンパイラの本としては定番中の定番ですよ。

dragonbook

当然,S氏には黙ってゲット。あとでアマゾンで調べてみると同じ本が10,000円ぐらいしてるよ。S氏ありがとう! あと誰だか知らないけど,この本を捨てた人もありがとう! っていうかこんな良い本捨てるんだったら図書室に寄付しろよ!

実際,英語の本なんで全部読むとは思えないけど,ドラゴンブックは持っといて損は無いよなぁ。なんだか言語処理系を作りたくなってきたぞ。



ついでに最近見つけた凄いページをメモ。実際にJavaScriptで作ってる様子をFlashでみれます。

10分で書く字句解析器元ページ
10分で書く構文解析器元ページ

簡単なものだけど,10分で本当に出来てるってのが凄い。下の構文解析器のほうなんか時間が余っちゃってるし。


学生時代もコンパイラの勉強はしたし,研究でPrologのインタプリタも作ったことがあるんだけど,もうちょっと言語処理系の勉強をしてみよっかなー,意外に簡単に出来るかもしれないし。というかプログラム言語作りたい!って最近思ってます。


【過去記事】
サルノオボエガキ: Programmable Myself
 書くの忘れてるわけじゃないすよ。ただこのアイデアの実現するためのプログラム言語が必要かなー,と思ってます。

2006-01-21

TopCoder: Single Round Match 283

Single Round Match (SRM) Schedule at TopCoder

20日は久しぶりにTopCoderのSingle Round Matchに参加しました。

TopCoderというのは,オンラインでプログラミングコンテストをやっているサイトで,参加者は出題された問題を解くプログラムを素早く仕上げる能力を競います。問題はパズルみたいなのが多いですね。TopCoderは,Google主催のプログラミングコンテスト"Google Code Jam"で使われてるのをみて知りました。


TopCoderでは以下のような独自のJavaアプレットで参加します。

TopCoder

上半分に問題文が出て,下半分にプログラムを入力します。右下のボタンでコンパイルやテストが出来ます。完成したと思ったらSUBMITボタンで送信。問題文を開いてからSUBMITまでの時間でスコアが決まります。

SRMがどんな流れで進むかということに関しては以前SRMに参加したときのエントリを参照してください。


で,結果ですが・・・。
またチャレンジフェーズで落とされました! うー,落とされる前までは結構上位だったんで期待してたんだけどなぁ。以下に今回出題された問題をメモっときます。


250点問題「DiagonalDisproportion」
  • 一桁の数字が正方形の行列に配置されているとき,左上から右下への数字を足したものから,右上から左下への数字を足したものを引き算した値を返すという問題。ただし行の数字は1行の文字列の配列で渡される。例:{"190","828","373"}。
600点問題「PowerSupply」
  • 時間が無かったのでパスしました。
1000点問題「FactorialGCD」
  • 整数a,bが与えられたとき,a!とbの最大公約数を求めよ。



250点問題はそんなに難しく無かったです。素直に書いて速攻サブミット。

600点問題はパスで,1000点問題。この問題が結構難しくて,試行錯誤をぎりぎりまでやってました。最初は「最大公約数はユークリッドの互除法で求めればOKだし,1000点にしては簡単じゃね?」とか思ってました。つまり次のようなアホアホなプログラムを書いちゃってました。
public int factGCD(int a, int b) {
int temp = fact(a); // 階乗を計算
return gcd(x, b); // 最大公約数を計算
}

ですが,実行してみるとすぐに分かりますが,階乗ってのがクセモノで,普通に階乗してから最大公約数を計算してると,fact(a)のところで桁あふれになっちゃいます。

ということで何かトリックを考えなくちゃいけない。ユークリッドの互除法の計算では,最初にa!をbで割った余りを求めます。なので別にa!が分からなくてもbで割った余りが分かれば,最大公約数の計算は実行できます。そこで階乗の計算途中にbで割った余りで置換する,という戦略で行きました(合同式の乗法法則)。
つまり以下のようなロジック。
public int factGCD(int a, int b) {
int temp = 1;
for (int i=a; i>0; i--) {
temp = (i % b) * (temp % b);
}
return gcd(b, temp);
}

これで桁あふれはしなくなったんですが,問題文で紹介されている例(a=2097711064, b=2147483646)だと,制限時間2秒以内に終わりません。そこで細かい条件を考えて調整しつつ,制限時間10分前で何とか2秒以内に計算させることが出来ました。結構苦労したので「やった!」と心の中で叫んでました。
で,最終的にサブミットしたのが次のプログラム。
public int factGCD(int a, int b) {
// aの方が大きかったら階乗にbが含まれるのでbが最大公約数
if ( a >= b ) return b;
int temp = 1;
for (int i=a; i>0; i--) {
temp = (i % b) * (temp % b);
// 階乗の途中計算がbの倍数になったらループを抜ける
if (temp == 0) break;
}
// a!がbの倍数になっているので,bが最大公約数
if (temp == 0) return b;
return gcd(b, temp);
}



でもチャレンジで落とされたんですよねー(チキショウ!)。今,冷静になって考えてみると,階乗の計算式がおかしい気がします。(i%b)*(temp%b)じゃなくて,(i*temp)%bでよかったんじゃないかなぁ。そこで代入されるtempで桁あふれが起こっていたと思います。


ともかく,久しぶりに全力で集中してプログラムを書けたので満足です。最近はEclipseのプラグインを弄ったりフレームワークを使ったり,素直に1からソースコードを書くことが少なかったので,こういうのは息抜きに良いですね。今後もTopCoderのSRMには参加していこうと思います。

一応,TopCoderにはdeltam81の名前で参加してますので,よろしく。


【関連リンク】
4TopCoder
日本人でTopCoderに参加している人のBlog。問題について詳細に解説されているので勉強になります。
TopCoder Events Calendar
TopCoderのイベントスケジュール。

【過去の記事】
サルノオボエガキ: TopCoder
サルノオボエガキ: Single Round Match 255 at TopCoder

2006-01-12

エクササイズリーディングのすすめ

今週はずーっと定時後に『Eclipseモデリングフレームワーク』を読んでいるので,スポーツジムに行けてませんでした。そのせいか,何だか体の調子が悪いし,気分が良くない。カロリーばっかりとって消費しないのは,ダイエットをする人間として邪道です。

そこで「本を読む」,「ジムで運動する」ということを同時にやってみました。要するにジムでエアロバイクを漕ぎながら本を読むってことです。名づけて,”エクササイズリーディング”! 実際にやってみて,いくつか良い点が分かったので書いてみます。

    良い点
  • エアロバイクに乗っている最中は他にやることが無いので,読書に集中できる。
  • 難しい本を読んでも眠くならない。
  • 運動をしているせいかテンションが高くなり,内容にのめり込める

『Eclipseモデリングフレームワーク』は比較的難しい内容の本なので,途中で読み続けるのを挫折しかけたり眠くなったりするのですが,さすがにエアロバイクに乗りながら眠るのは無理です。アドレナリンが出ているせいか,妙にやる気が出ます。
あとテンションが高くなっているので内容にノリやすいってのもあります。例えばさっき読書しているときは,心の中はこんな感じでした。

    「ヤッベ,EMFすごくね? Ecoreってのを使えばJavaコードを完全にモデル化できるし,モデル化しちゃえばあとはXMLなりUMLなりに変換し放題じゃん! バケモノだよ,バケモノテクノロジーだよ,こんなんがオープンソースかよ,世の中どうなってんだ!」
・・・。まぁ,テンション高くなってましたから。


前によくジョギングしていたときは,茂木健一郎さんの講演・講義のMP3ファイルを良く聞いていましたが,そのときも集中して聞けました。運動しながら情報をインプットするのは効率が良いのかもしれないですね。

自分としては,時間が節約できてしかも効率的なので,このエクササイズリーディングはグッドなソリューションでした。これからしばらく続けていこうと思います。

Eclipseモデリングフレームワーク


Eclipseモデリングフレームワーク



Visual Editorのソースを調べているとEObjectやeGet()なんていう文言を良く見かけます。この文言はVisual Editorの内部で使われているEMF(Eclipse Modeling Framework)に関係のあるものみたいです。

EMFはXML,Javaコード,UMLを相互に変換可能にするためのフレームワークです。例えばXML文書を元にJavaコードを自動生成したり出来ます。モデル駆動型開発(MDA)を実現するために作られたそうで,そのせいか上記の本の帯には『モデリングすべきかプログラミングすべきか,それは問題ではない』なんて格好いいコピーが書かれてました。Visual Editorでは画面レイアウトとソースコードの同期を取ってますが,その機能にEMFが使われている模様。

Visual Editorを理解するためにこの本を現在読書中なのですが,やたら抽象的で自分の頭には難しいです。ややこしいけどEMFって「モデルを記述するためのモデルを扱うためのフレームワーク」なので,やたら汎用性があって複雑です。なんか数学の本みたい。

でも早急にEMFについて覚えないと仕事が進まないので,今週中に一通り目を通しておくこと>自分。


【Visual Editor関連の過去エントリ】
サルノオボエガキ: Eclipse GUI作成プラグイン 『Visual Editor』
サルノオボエガキ: 『Visual Editor』拡張に関するドキュメント
サルノオボエガキ: VisualEditorのパレットにGUI部品を追加する

2006-01-05

VisualEditorのパレットにGUI部品を追加する

Visual Editorの簡単な拡張についてちょっと書いてみます。Visual Editorについては下の以前のエントリを参照。

Eclipse GUI作成プラグイン 『Visual Editor』



VE_Palette
左のVisual Editorの画面で赤く囲ってあるのがパレット。GUI画面を作るときは,ここから追加するGUI部品をマウスで選択して,画面上に貼り付けられます。

画面ではSwingとAWTの部品が表示されてますが,自分でカスタマイズしたGUI部品をVEで使いたい場合はどうすれば良いんでしょうか? これには二つ方法があります。一つ目はパレット上にある”Choose Bean”を選択して,表示されるダイアログに追加するGUI部品のクラス名を入力して選択する方法。二つ目はVEを拡張するプラグインを作成して,新たにパレットに項目を追加する方法です。

一つ目の方法を使えば,特別なことをしなくてもカスタマイズしたGUI部品も使えますが,いちいちクラス名を入力するのは面倒くさいですね。第一,面白くないです。なので今回は二つ目の方法の,VEパレットを拡張するプラグインを作成してみます。



テストに使用した環境は,Eclipse3.1,VisualEditor1.1.0です。他の環境では試してないので動作結果は不明。
テストのため,JLabelを継承したMyLabelというクラスを作成しました。これをVEパレットに追加してみます。以下にその手順を簡単に箇条書きしてみます。

  1. プロジェクトの新規作成
    • プラグイン・プロジェクト
        名前: AddPalette
        OSGiバンドルマニフェストは作成しない
        ”以下のテンプレートを使用してプラグインを作成”のチェックを外す
  2. 準備
    • GUI部品
        test.palette.parts.MyLabel
        テキストに接頭語と接尾語をつけるラベル
    • アイコン
        iconsフォルダ作成
        適当なアイコン追加。example.gif
    • Jarファイル
        srcフォルダをカレントフォルダにJarでエクスポート
        addpalette.jar
  3. XMIファイルの作成
    • このXMIファイルでパレットの表示内容を設定します。
    • ”プロパティ”でエンコーディングをUTF-8にする(注意! これをしないと日本語が使えません)
    • グループタグ
    • アイコンの指定
    • クラスファイルの指定
    • 表示文字列の指定
    • 変数名の指定
  4. plugin.xmlの編集
    • プラグイン依存関係を追加
        org.eclipse.ve.java.core
        org.eclipse.jdt.core
        org.eclipse.jdt.ui
    • 拡張
      • クラスパスコンテナページ
          org.eclipse.jdt.ui.classpathContainerPage
          name: AddPaletteライブラリ
          class: org.eclipse.ve.internal.java.wizard.RegisteredClasspathContainerWizardPage
      • クラスパスイニシャライザ
          org.eclipse.jdt.core.classpathContainerInitializer
          class: org.eclipse.ve.internal.java.core.RegisteredClasspathContainerInitializer
      • VEレジストレーション
          org.eclipse.ve.java.core.registrations
      • VEコントリビュータ
          org.eclipse.ve.java.core.contributors
  5. プラグインのテスト
    • ランタイムワークベンチを起動
    • SwingのJFrameを作成
    • ”AddPaletteライブラリ”を追加
    • JFrameをVEで開く
    • テストグループがあればOK
  6. プラグインのエクスポート
    • bin.includesに追加
      • icons/
        addpalette.xmi
    • ECLIPSE_HOME/pluginsに展開
    • Eclipseの再起動


このプラグインをインストールして,プロジェクトにAddPaletteライブラリを追加すると,以下のようにパレットに追加されます。

AddPalette




上記の手順で作ったプロジェクトのファイルを下に置いときます。細かいところは説明しきれないのでファイルを参照してください。というか正直良く分かってないところのほうが多いです。VE拡張は難しい!

AddPalette.zip

Programmable Myself

「プログラム可能な自分」というアイデアを思いついた。とりあえずタグ付けして,後で書く。

タグ:
ユビキタス,GTD,メッセージ,アスペクト,XMLと社会契約論,ソフトウェアプロセス記述言語

2006-01-04

GoogleDeskbarのカスタムサーチ設定を晒してみる

”GoogleDeskbarのカスタムサーチをエクスポート/インポートする” でカスタムサーチ設定の移動方法を説明したので,自分がどんな設定でGoogleDeskbarを使っているか,公開してみます。


DeskbarPict


いっぱい登録してあるけどよく使うのは2,3個だけですね。del.icio.us,辞書系,GMailが良く使うかなぁ。特にdel.icio.usのタグ検索は最近はDeskbarからしか使わなくなっちゃいました。del.icio.usとDeskbarは相性良いです。

一応,エクスポートしたファイルも置いておきます。XMLタグとして書いてあるので,見てみれば設定内容は分かると思います。

gdeskbar_exp.txt

GoogleDeskbarのカスタムサーチをエクスポート/インポートする

あけましておめでとうございます。今年もこのブログをよろしく。
新年一発目の記事は,去年書き忘れてたやつです。いきなりこんなネタです。


----
Googleがリリースしているデスクトップツールはいろいろあるけども,GoogleDeskbarには一番お世話になっています。Googleデスクトップサーチより便利だと思う。 GoogleDeskbarをインストールすると,ディスクトップのタスクバーにGoogle検索窓が常に表示されるようになります。これでWinキー+Gで検索窓に移動,キーワードを打ち込んでやれば,検索結果が小さなブラウザに表示される。この小さなブラウザがコンパクトで良くて,作業中にちょっと調べたいときなどにはちょうど良い。


GoogleDeskbarにはカスタムサーチという機能があって,これを使えばGoogle以外の検索エンジンでも検索できるようになります。というか検索サイトじゃないものも登録できるので,よく使うサイトなんかを登録しとくとIEの"お気に入り"みたいな感じで使える。私はWebアプリをいくつか登録しておいて,ランチャーのような感じで使ってます。カスタムサーチにはショートカットキーも登録できるんで,慣れるとすんごい便利。



こんな風に便利なDeskbarのカスタムサーチだけど,良くない点が一つあります。それはカスタムサーチの設定を取り出せないこと。設定ファイルとかに書いてあれば簡単なんだけど,調べてみたらどうやらレジストリにしか書いてないみたい。そこでカスタムサーチ設定をエクスポートするスクリプトを書いてみました。言語は例によってGroovy。


まずはエクスポート用。
GDeskbarExport.groovy
import org.codehaus.groovy.scriptom.ActiveXProxy

regPath = { keyNum -> "HKEY_CURRENT_USER\\Software\\Google\\CustomSearch\\${keyNum}" }

wshell = new ActiveXProxy("WScript.Shell")
try {
num = 0
while (num < 30) {
reg = wshell.RegRead((String)regPath(num++))
println reg.value
}
} catch (Exception e) {}
上記スクリプトは,"groovy GDeskbarExport.groovy > gdeskbar_exp.txt"みたいな感じで起動してください。
次にインポート用のスクリプト。これは"groovy GDeskbarImport gdeskbar_exp.txt"って感じで読み込ませてください。

GDeskbarImport.groovy
import org.codehaus.groovy.scriptom.ActiveXProxy

regPath = { keyNum -> "HKEY_CURRENT_USER\\Software\\Google\\CustomSearch\\${keyNum}" }

wshell = new ActiveXProxy("WScript.Shell")

num = 0
new File(args[0]).eachLine { line ->
wshell.RegWrite((String)regPath(num++), line, "REG_SZ")
}

上記のスクリプトではScriptomというコンポーネントを使っているので,使う場合は先にインストールしとかないと動きません。このスクリプトでは基本的にカスタムサーチの設定は全部上書きです。元々あった設定はなくなっちゃいます。あと,レジストリを触るスクリプトなんで,使う場合は自己責任でお願いします。自分のPCでは上手くいったけど。


でもこういうスクリプトは本当はVBScriptで書くのが素直だよなー,と思ったのでVBSで書いたスクリプトも一応置いときます。言語が変わっただけで,やってることは上と同じです。これならGroovyが動かない環境でも使えます。

GDeskbarImport.vbs

GDeskbarExport.vbs