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