2ヶ月ぐらい前からダイエットのためにスポーツジムに通い始めました。週に二日はジムのマシンでひたすら筋トレと有酸素運動をストイックにやってました。
昨日は,ジムに入会したときに測定した身体データ(体重,体脂肪率,筋肉量など)と,現在のデータを比較するというイベントがありました。結果というと,筋肉量は2kg増量! 体脂肪率は2.5%低下! 体重は1.1kg増量! ってあれ?
うーん,ちょっと納得いかないけど,トレーナーさんによると「筋肉量が増えて体脂肪率が減ってるので理想的」ということらしい。とりあえずジムに通った成果は出ているみたい。もうちょっとだ,がんばれ! ファイト! >自分。
しかしジムでひたすら筋トレも飽きてきちゃったので,今後はスイミングを平行してやっていこうという予定。思えば当初の予定はきっちり長距離を泳げるようになることだったのだ!(昔の記事)。
ということで,昨日泳いできました。前よりも微妙に泳げるようになってきている気がする。腕のスイングに合わせて体の軸を左右にロールさせることで,姿勢を安定させることが出来ることに気がついた。でも息継ぎがやっぱり下手なので,これは今後の課題。一応,500メートル泳いできました。
久しぶりに泳いだので,今日は体中が筋肉痛っす。筋肉痛のクリスマス。きっとサンタもプレゼント配りで筋肉痛。
2005-12-25
クリスマスにLaQで遊ぶ
適当に組み合わせているだけでも,幾何学的な綺麗な形が作れるので,無心で遊んでしまいました。ピースを組み合わせるときにパチッと音がするのが気持ちいいです。子どものころレゴが好きだった人はハマるはず。
ところで今日はクリスマス。なので,このLaQでクリスマスツリーを作ってみました(写真)。子どものころにレゴのヘビーユーザだったせいか,ただピースを組み合わせているだけなのに楽しい。クリスマスに一人なのに楽しい(哀。
えーと,とりあえずLaQは子どもへのクリスマスプレゼントに最適ですよという結論ということで。
2005-12-05
インストールしたソフト一覧をプロフィール代わりに
Going My Wayさんにエントリを取り上げて貰いました。
Going My Way: 名刺の裏やサイトのAbout欄、プロフィール欄にインストールしているソフト一覧を書くというアイディア
元になってるエントリはこれ。書いた本人も忘れていたアイデアに目をつけるとは,さすがですね(笑。
言いだしっぺが何もしないのもアレなので,プロフィールのところに追加しときました。
Going My Wayさんは,Lifehack関係の情報を探していて知りました。最近私はGoogleEarthにハマってるんですが,これについてもいろいろ面白い記事がありますね。
こちらのアイデアも面白そう。
Going My Way: 名刺の裏やサイトのAbout欄、プロフィール欄にインストールしているソフト一覧を書くというアイディア
元になってるエントリはこれ。書いた本人も忘れていたアイデアに目をつけるとは,さすがですね(笑。
言いだしっぺが何もしないのもアレなので,プロフィールのところに追加しときました。
Going My Wayさんは,Lifehack関係の情報を探していて知りました。最近私はGoogleEarthにハマってるんですが,これについてもいろいろ面白い記事がありますね。
こちらのアイデアも面白そう。
2005-12-04
Binary2.0な小ネタ "排他的論理和でSWAP"
いやなブログ: Binary 2.0カンファレンス2005
Binary2.0ってのが最近注目されてるみたいです。これ関係の記事を読んでいて昔発見したテクニックを思い出したので,ちょっと書いてみます。上のイベントに参加している人とは全然レベルが違うネタですが。。。
例えばソートプログラムを書くときには二つの変数の内容を入れ替える(SWAPする)コードが必要になります。これってC言語を使うと,普通はこう書きますね。
まぁ,これでも良いんですが,tempって一時変数が邪魔ですよね。なんとか消すことは出来ないでしょうか?
実は出来ます。こんな風に書きます。
知らない人は「???」って感じだと思いますけど,これを実行すると"a = 4, b = 12"になります。なぜかというと"^"で演算している排他的論理和の性質のおかげ。排他的論理和についてはWikipediaを参照。
これを発見したのは高校時代にアセンブラをいじってるときでした。見つけたときは「キタ━━━━(゚∀゚)━━━━ッ!!」って感じでしたが,あとで調べてみたらアセンブラ使いの間では常識的なテクニックだった模様(orz。
最近はJavaばっかり触っていてバイナリを意識することが無かったんですが,なんだか昔を思い出して懐かしかったので書いてみました(笑
Binary2.0ってのが最近注目されてるみたいです。これ関係の記事を読んでいて昔発見したテクニックを思い出したので,ちょっと書いてみます。上のイベントに参加している人とは全然レベルが違うネタですが。。。
例えばソートプログラムを書くときには二つの変数の内容を入れ替える(SWAPする)コードが必要になります。これってC言語を使うと,普通はこう書きますね。
int a = 12;
int b = 4;
int temp;
temp = a;
a = b;
b = temp;
まぁ,これでも良いんですが,tempって一時変数が邪魔ですよね。なんとか消すことは出来ないでしょうか?
実は出来ます。こんな風に書きます。
int a = 12;
int b = 4;
a = a^b;
b = a^b;
a = a^b;
知らない人は「???」って感じだと思いますけど,これを実行すると"a = 4, b = 12"になります。なぜかというと"^"で演算している排他的論理和の性質のおかげ。排他的論理和についてはWikipediaを参照。
これを発見したのは高校時代にアセンブラをいじってるときでした。見つけたときは「キタ━━━━(゚∀゚)━━━━ッ!!」って感じでしたが,あとで調べてみたらアセンブラ使いの間では常識的なテクニックだった模様(orz。
最近はJavaばっかり触っていてバイナリを意識することが無かったんですが,なんだか昔を思い出して懐かしかったので書いてみました(笑
ChangeLogメモをはじめました
ここ最近はVisual Editorの資料を探したり,拡張方法をいろいろ試したりしてます。そのときに作業中に分かったことをテキストファイルにメモってたんですが,どうにもこれが乱雑で,あとで読み返したときに分かりにくくて困ってました。
作業メモを眺めてたときに,「そういえば前にこんなメモの取り方を紹介しているサイトがあったなぁ」と思い出して調べてみました。こちらのサイトで紹介されている『ChangeLogメモ』ってやつです。
横着プログラミング 第1回: Unixのメモ技術
ChangeLogメモというものは,
ChangeLog メモの良いところは,書式が決まっているというところですね。書式があらかじめ決まっていればメモるときにレイアウトなど余計なことに気を使わなくても良 いですから,気楽にかけます。それで最近は技術的なことだけじゃなくて,思いついたことは全部ChangeLogに書いてます。
どうやらChangeLogメモというものは,「ある程度メモが溜まってから良さがわかる」という特徴もあるようです。なのでしばらくはこれを続けていこうと思います。

はてなグラフでChangeLogファイルのサイズを記録してみます
【参考リンク】
ChangeLog - - ソフトウェアの変更履歴を書くためのテキストの形式
Let's Try ChangeLog Memo
YAYADoc: 秀丸用changelogマクロ
Zakimi::Blog: ChangeLog.hilightを更新
作業メモを眺めてたときに,「そういえば前にこんなメモの取り方を紹介しているサイトがあったなぁ」と思い出して調べてみました。こちらのサイトで紹介されている『ChangeLogメモ』ってやつです。
横着プログラミング 第1回: Unixのメモ技術
ChangeLogメモというものは,
- もともとはソフトウェアの変更履歴を記録するための書式である。
- 一つのテキストファイルに日付順に(新しいほど上に)記録していく。
- 先頭にカテゴリ名をつける。あとで見るときにgrepすればカテゴリごとに一覧を見ることが出来る。
ChangeLog メモの良いところは,書式が決まっているというところですね。書式があらかじめ決まっていればメモるときにレイアウトなど余計なことに気を使わなくても良 いですから,気楽にかけます。それで最近は技術的なことだけじゃなくて,思いついたことは全部ChangeLogに書いてます。
どうやらChangeLogメモというものは,「ある程度メモが溜まってから良さがわかる」という特徴もあるようです。なのでしばらくはこれを続けていこうと思います。
はてなグラフでChangeLogファイルのサイズを記録してみます
【参考リンク】
ChangeLog - - ソフトウェアの変更履歴を書くためのテキストの形式
Let's Try ChangeLog Memo
YAYADoc: 秀丸用changelogマクロ
Zakimi::Blog: ChangeLog.hilightを更新
2005-12-02
『Visual Editor』拡張に関するドキュメント
Eclipseの特徴として「すべてがプラグインである」ということが挙げられます。Eclipseの本体は小規模なランタイムモジュールで,他の機能は すべてプラグインを拡張することで実現しています。さらにプラグインも同じように拡張可能で,プラグインのプラグインなんてのも作れます。
つまりEclipseは「すべてが拡張可能である」というルールで設計されているということです。このルールはEclipseプラグインであるVisual Editorに関しても例外は無く,拡張が可能です。
Visual Editorを拡張することで,例えばつぎのようなことが可能です。
Visual Editorの拡張方法を探しているときに見つけた資料を2つ挙げときます。両方とも英語なのがつらい・・・。
Extending The Visual Editor: Enabling support for a custom widget
おそらく現時点で一番詳しいドキュメント。本家Eclipseプロジェクトの資料です。
Extend VE to build a ULC GUI builder(PDF)
ULCというライブラリのためのVE拡張のケーススタディ。自分がやりたいことはこれに近い。
上 で"Extending The Visual Editor: ..."という資料が一番詳しいと書きましたが,この資料は長いくせにインデックスが付いてなくて読みにくいので,勝手に見出し一覧を作っちゃいました。 未読の人はタイトルだけ見ても大体内容が分かるのではないかと思います。
------
Extending The Visual Editor:
Enabling support for a custom widget
INDEX
つまりEclipseは「すべてが拡張可能である」というルールで設計されているということです。このルールはEclipseプラグインであるVisual Editorに関しても例外は無く,拡張が可能です。
Visual Editorを拡張することで,例えばつぎのようなことが可能です。
- 独自定義のGUIオブジェクトの使用
- コード生成部のカスタマイズ
- プロパティ設定部のカスタマイズ
Visual Editorの拡張方法を探しているときに見つけた資料を2つ挙げときます。両方とも英語なのがつらい・・・。
Extending The Visual Editor: Enabling support for a custom widget
おそらく現時点で一番詳しいドキュメント。本家Eclipseプロジェクトの資料です。
Extend VE to build a ULC GUI builder(PDF)
ULCというライブラリのためのVE拡張のケーススタディ。自分がやりたいことはこれに近い。
上 で"Extending The Visual Editor: ..."という資料が一番詳しいと書きましたが,この資料は長いくせにインデックスが付いてなくて読みにくいので,勝手に見出し一覧を作っちゃいました。 未読の人はタイトルだけ見ても大体内容が分かるのではないかと思います。
------
Enabling support for a custom widget
INDEX
- Introduction
Palette
Property sheet
Graphical behavior
Code generation
Preferred Event
Getting started
Creating the Plugin
Different jars and packages for workbench and widget code
Plugin jar
Runtime jar
The Custom Widget
Testing MyCustomPrompter
Creating a classpath container
Using a classpath container
Adding a palette category for MyCustomPrompter
Testing the custom palette
Enumerated values for the type property
Testing the enumerated values for type
The EMF override mechanism
Custom cell editing for the text property
Rendering the text value in the Properties view
Target VM and its APIs
Retrieving the target VM property value
Testing the text dialog cell editor
Supplying a custom GEF edit part
Custom code generation for the text property
Specifying a preferred event
A complete example
Conclusion
Eclipse GUI作成プラグイン 『Visual Editor』
Eclipseはオープンソースの統合開発環境である。もともとはIBM 社が自社のアプリケーション・サーバ用の開発環境として開発していたものだが,2001年11月にオープンソースコミュニティにソースコードが寄与され, 現在はEclipseプロジェクトの手により開発が継続されている。Eclipseは拡張性の高さ,普及率の高さからJava開発環境の事実上標準となっ ている。
Eclipseの弱点としてGUI画面の作成機能が無い点が指摘されてきた。Visual Studioなど,他の統合開発環境ではマウスで部品を配置し,視覚的に画面を作成する機能が付属している。そのような機能の無いEclipseでは,画 面レイアウトをコードに直接記述する必要があった。このような画面開発手法は直感的に分かりにくく,GUI画面作成を困難なものとしていた。
The Eclipse Visual Editor Projectは そのような不満を解決する目的で始まったプロジェクトである。このプロジェクトは2003年11月にEclipseプロジェクトのサブプロジェクトとして 開始された。Visual EditorはEclipseプラグインとして動作し,マウス操作で直感的にGUI画面を作成することを可能にする。
Visual Editorの主な機能を次に挙げる。
-----
いきなり論文口調で書いてみました。上の文章は仕事で書いたものをちょっと改変したものです。この「Visual Editor」というプラグインを拡張して開発ツールを作るってのを最近やってるんですが,一応調べたことをまとめるってことでブログに書いてみました。
あんまり「Visual Editor」の拡張方法に関する日本語の資料って無いみたいなので,これからちょこちょこ書いてみます。
Eclipseの弱点としてGUI画面の作成機能が無い点が指摘されてきた。Visual Studioなど,他の統合開発環境ではマウスで部品を配置し,視覚的に画面を作成する機能が付属している。そのような機能の無いEclipseでは,画 面レイアウトをコードに直接記述する必要があった。このような画面開発手法は直感的に分かりにくく,GUI画面作成を困難なものとしていた。
The Eclipse Visual Editor Projectは そのような不満を解決する目的で始まったプロジェクトである。このプロジェクトは2003年11月にEclipseプロジェクトのサブプロジェクトとして 開始された。Visual EditorはEclipseプラグインとして動作し,マウス操作で直感的にGUI画面を作成することを可能にする。
Visual Editorの主な機能を次に挙げる。
- 画面レイアウトをマウス等で視覚的に作成できる。
- 画面レイアウトとソースコードをリアルタイムに同期する
- 画面要素のプロパティをVisual Basic風に設定できる
- AWT,Swing,SWTに対応する。
-----
いきなり論文口調で書いてみました。上の文章は仕事で書いたものをちょっと改変したものです。この「Visual Editor」というプラグインを拡張して開発ツールを作るってのを最近やってるんですが,一応調べたことをまとめるってことでブログに書いてみました。
あんまり「Visual Editor」の拡張方法に関する日本語の資料って無いみたいなので,これからちょこちょこ書いてみます。
2005-11-28
Gropyと「Web2.0=発酵食品説」
Gropyを更新しました。外見的には変わってないけど,Templateの代わりにMarkupBuilderを使ったりしてます。コードが短くなったので(コメント,改行なしで74行),勝手に”世界最小のTropyクローン”と名乗っておきます(笑。あと文字のエンコードはApache Commons Codecを使ったので,これをインストールしないと動きません。Groovyの標準ライブラリだけでやりたかったけど,java.net.URLDecoderやHttpClientのURIUtilでは無理みたい。あといつの間にか結城さんのページのリストに載っけてもらってました。
「Web2.0=発酵食品説」っていう記事を読みました。そのなかでTropyの各言語のクローンがあっという間に作られていくことについて以下のように言われてます。
自分がなぜGropyを作ったかといえば,「出来るから」。何というか,Webに繋がっている人間の中でタイミングと技術力と興味の対象で分類したら,GroovyでTropyクローンを作れるのは自分だけだろうと思って,「ならば作るしかない!」と結論したわけです。他にも当然『流行ってるTropyのクローンを作れば目立てるかも。Groovyってマイナーだし競争相手少なそう(ぉぃ』という打算もあったけど,『Webという生態系のニッチは埋めるべきだ』という流れに従ったって感じが強いなぁ。
『Webの法則』というのがある。それは誰かが作ったわけではなく,技術的な制約から自然発生的にできたもの。少し前まではその法則は一部の人間しか認識してなかったけれど,ネット人口が多くなるにしたがって「分かってるユーザ」が増えてきた。その人数が一定数を超えたところで,ネットユーザが他のユーザに対して同じ法則を理解していると期待できるようになった。そういう下地ができたところで,最近のAjaxやタギングを利用したアプリが出てきて,利用者の反応からこの状況がメタ認知されるようになってきた。そういう状況を指してオライリーさんは『Web2.0』とネーミングしたのだと思います。
今の時代の技術者にとってWeb2.0っていうのは,小学生の分数の割り算と同じように,理解しなきゃいけないけどよく分からないものだと思います。そのまま猿真似して使うことは出来るけど,その背後の理屈が良く分からないって類のもの。なので自分の言葉でまとめられて,かなりすっきりしました。
【参考リンク】
[特集] Web 2.0ってなんだ? - CNET Japan
CNETのWeb2.0に関する特集。提唱者のオライリー氏の論文が読める。
「Web2.0=発酵食品説」っていう記事を読みました。そのなかでTropyの各言語のクローンがあっという間に作られていくことについて以下のように言われてます。
圏外からのひとこと(2005-11-24)
たとえば、TropyやText::HatenaやRuby on Railsは一瞬でたくさんの言語に移植された。よいアイディアがPerlとRubyとPHPに移植されるかどうかを考えるのに、誰が何を何に移植するか具体的に考える必要はない。WEBを巡るよいアイディアは、特に制限しなければ、あらゆる言語やOSに移植される。
自分がなぜGropyを作ったかといえば,「出来るから」。何というか,Webに繋がっている人間の中でタイミングと技術力と興味の対象で分類したら,GroovyでTropyクローンを作れるのは自分だけだろうと思って,「ならば作るしかない!」と結論したわけです。他にも当然『流行ってるTropyのクローンを作れば目立てるかも。Groovyってマイナーだし競争相手少なそう(ぉぃ』という打算もあったけど,『Webという生態系のニッチは埋めるべきだ』という流れに従ったって感じが強いなぁ。
『Webの法則』というのがある。それは誰かが作ったわけではなく,技術的な制約から自然発生的にできたもの。少し前まではその法則は一部の人間しか認識してなかったけれど,ネット人口が多くなるにしたがって「分かってるユーザ」が増えてきた。その人数が一定数を超えたところで,ネットユーザが他のユーザに対して同じ法則を理解していると期待できるようになった。そういう下地ができたところで,最近のAjaxやタギングを利用したアプリが出てきて,利用者の反応からこの状況がメタ認知されるようになってきた。そういう状況を指してオライリーさんは『Web2.0』とネーミングしたのだと思います。
今の時代の技術者にとってWeb2.0っていうのは,小学生の分数の割り算と同じように,理解しなきゃいけないけどよく分からないものだと思います。そのまま猿真似して使うことは出来るけど,その背後の理屈が良く分からないって類のもの。なので自分の言葉でまとめられて,かなりすっきりしました。
【参考リンク】
[特集] Web 2.0ってなんだ? - CNET Japan
CNETのWeb2.0に関する特集。提唱者のオライリー氏の論文が読める。
2005-11-25
小惑星探査機「はやぶさ」
「はやぶさ」ミッションの概要
小惑星の資料を採取するための探査機「はやぶさ」。最近ニュースをチェックしてなかったせいか,こんなことが起こっているなんて知りませんでした。
上のページによると「はやぶさ」ミッションとは,地球から3億kmも離れた小惑星Itokawa(イトカワ)へ無人探査機を送り,そのサンプルを採取して地球に持ち帰るプロジェクト。今まで小惑星を映像で撮影したことはあったけど,実際に小惑星に着陸してサンプルを採取するというミッションは史上初だそうです。
現在の状況は,20日にItokawaへの着陸・離脱に成功したようです(史上初!)。しかしシステムのトラブルで資料採取ができたか不明なので,再度Itokawaへの降下を行うそうです。再度のタッチダウンは26日午前7時ごろになる予定。
ここ3ヶ月ほど自分の中で突如宇宙ブームが再燃していて,宇宙もののドキュメンタリーなんかを読み漁っていたのですが,このニュースを見逃していたのは不覚! 26日までにいろいろ調べてみようと思います。
【参考リンク】
「はやぶさ」の第1回着陸飛行の結果と今後の計画について
JAXAの公式発表
松浦晋也のL/D
「はやぶさ」についての情報はここが早い。
はてなブックマーク - タグ はやぶさ
ここを見ておけば関連ページは拾えるかな。
小惑星の資料を採取するための探査機「はやぶさ」。最近ニュースをチェックしてなかったせいか,こんなことが起こっているなんて知りませんでした。
上のページによると「はやぶさ」ミッションとは,地球から3億kmも離れた小惑星Itokawa(イトカワ)へ無人探査機を送り,そのサンプルを採取して地球に持ち帰るプロジェクト。今まで小惑星を映像で撮影したことはあったけど,実際に小惑星に着陸してサンプルを採取するというミッションは史上初だそうです。
現在の状況は,20日にItokawaへの着陸・離脱に成功したようです(史上初!)。しかしシステムのトラブルで資料採取ができたか不明なので,再度Itokawaへの降下を行うそうです。再度のタッチダウンは26日午前7時ごろになる予定。
ここ3ヶ月ほど自分の中で突如宇宙ブームが再燃していて,宇宙もののドキュメンタリーなんかを読み漁っていたのですが,このニュースを見逃していたのは不覚! 26日までにいろいろ調べてみようと思います。
【参考リンク】
「はやぶさ」の第1回着陸飛行の結果と今後の計画について
JAXAの公式発表
松浦晋也のL/D
「はやぶさ」についての情報はここが早い。
はてなブックマーク - タグ はやぶさ
ここを見ておけば関連ページは拾えるかな。
2005-11-13
あなたのサイトのWeb2.0度を判定します
Web 2.0 Validator : Surfing the Consensual Reality Wave.
30 Second Ruleというグループが作ったサービス(via MoMB)。サイトのURLを入れてValidate!を押すと,そのサイトのWeb2.0度を10段階評価で判定してくれる。
なるほど~,Web2.0って良くわかんないけど,ここで調べれば良いんですね。ってそうじゃねぇだろ! まぁ,9割がたジョークだと思いますけど。
試しにいくつかやってみたけど,バグなのかほとんどが0スコアなんでイマイチ面白くない。今後に期待。何気にVersionが自然対数の底。あとIEだとうまく動かないかも。
ちなみにこのサイトのWeb2.0度は3でした。
【参考リンク】
Web2.0について本当に知りたい場合は以下を参照。本家です。
Web 2.0:次世代ソフトウェアのデザインパターンとビジネスモデル(前編) - CNET Japan
Web 2.0:次世代ソフトウェアのデザインパターンとビジネスモデル(後編) - CNET Japan
30 Second Ruleというグループが作ったサービス(via MoMB)。サイトのURLを入れてValidate!を押すと,そのサイトのWeb2.0度を10段階評価で判定してくれる。
なるほど~,Web2.0って良くわかんないけど,ここで調べれば良いんですね。ってそうじゃねぇだろ! まぁ,9割がたジョークだと思いますけど。
試しにいくつかやってみたけど,バグなのかほとんどが0スコアなんでイマイチ面白くない。今後に期待。何気にVersionが自然対数の底。あとIEだとうまく動かないかも。
ちなみにこのサイトのWeb2.0度は3でした。
【参考リンク】
Web2.0について本当に知りたい場合は以下を参照。本家です。
Web 2.0:次世代ソフトウェアのデザインパターンとビジネスモデル(前編) - CNET Japan
Web 2.0:次世代ソフトウェアのデザインパターンとビジネスモデル(後編) - CNET Japan
2005-11-10
GroovyによるBackpack APIのラッパ
BackpackAPI.txt
Groovyユーザのメーリングリストで紹介されていた,Backpack.comのWeb APIをGroovyから使うためのラッパ。作った人はJohn Wilsonさん。
まだ使ってないので何ともいえませんが,スクリプトの作りとしては面白い。最初にメソッド名とクロージャをセットにしたマップを作っといて,invokeMethod()でそれを呼び出す。なるほど~,invokeMethod()ってこういう風に使うのね。このテクニックは使えそう(。_。)φメモメモ
Backpackのアカウントは持ってますが積極的に使ってないので,このラッパが便利かどうかは微妙。だけどスクリプトのサンプルとしては勉強になります。こういうコードがもっと公開されてけば良いですけどね。
【参考リンク】
IBM Search Results: 実用的なGroovy
IBM developerWorksの連載記事。今のところGroovyについて一番詳しい情報源。
Groovyユーザのメーリングリストで紹介されていた,Backpack.comのWeb APIをGroovyから使うためのラッパ。作った人はJohn Wilsonさん。
まだ使ってないので何ともいえませんが,スクリプトの作りとしては面白い。最初にメソッド名とクロージャをセットにしたマップを作っといて,invokeMethod()でそれを呼び出す。なるほど~,invokeMethod()ってこういう風に使うのね。このテクニックは使えそう(。_。)φメモメモ
Backpackのアカウントは持ってますが積極的に使ってないので,このラッパが便利かどうかは微妙。だけどスクリプトのサンプルとしては勉強になります。こういうコードがもっと公開されてけば良いですけどね。
【参考リンク】
IBM Search Results: 実用的なGroovy
IBM developerWorksの連載記事。今のところGroovyについて一番詳しい情報源。
2005-11-09
Gropy - TropyクローンをGroovyで作ってみた
TropyクローンをGroovyで作ってみました。名前はGropy(グロピィ)。「Tropyって何?」という人は結城さんのページを見てください。サーバを持ってないので,スクリプトだけ公開します(バグがあるけど)。
Gropy.groovy
上のスクリプトを"groovy -l 80 Gropy.groovy"というふうに起動して,http://127.0.0.1/をブラウザで表示すると,以下のような感じで表示されます。

サーバサイドのGroovyだと,GroovletやGSPなんてのがあるけど,GropyではTomcatもDBも使ってません。Groovyインタプリタのオプションとローカルファイルを使ってます。
Collection & Copy - 待ち受けモードによると,Groovyインタプリタの"-l"オプションを使えばポートを指定してサーバモード起動できるそうなので,それを使わせてもらいました。データの保存はエントリ内容を保持しているMapをシリアライズしてローカルファイルに書き込んでます。起動するとカレントディレクトリにentry.datってのができるけど,それがそう。
2,3日前から凄い勢いでTropyクローンが作られてるけど,Groovyで作ってる人がいなさそうなので,とりあえずやってみた。結構ニッチだったかも。
半角スペースを入力すると変なことになったり,テンプレートの書き方がイケてなかったりするけど,保守は積極的にはやらない予定。権利とかは放棄しますので,上記のスクリプトは自由につかってもらって結構です。インスパイア万歳。
追記(2005-11-29)
スクリプトを更新しました。
Gropy.groovy
上のスクリプトを"groovy -l 80 Gropy.groovy"というふうに起動して,http://127.0.0.1/をブラウザで表示すると,以下のような感じで表示されます。
サーバサイドのGroovyだと,GroovletやGSPなんてのがあるけど,GropyではTomcatもDBも使ってません。Groovyインタプリタのオプションとローカルファイルを使ってます。
Collection & Copy - 待ち受けモードによると,Groovyインタプリタの"-l"オプションを使えばポートを指定してサーバモード起動できるそうなので,それを使わせてもらいました。データの保存はエントリ内容を保持しているMapをシリアライズしてローカルファイルに書き込んでます。起動するとカレントディレクトリにentry.datってのができるけど,それがそう。
2,3日前から凄い勢いでTropyクローンが作られてるけど,Groovyで作ってる人がいなさそうなので,とりあえずやってみた。結構ニッチだったかも。
半角スペースを入力すると変なことになったり,テンプレートの書き方がイケてなかったりするけど,保守は積極的にはやらない予定。権利とかは放棄しますので,上記のスクリプトは自由につかってもらって結構です。インスパイア万歳。
追記(2005-11-29)
スクリプトを更新しました。
2005-11-06
新PCにインストールしたソフト一覧
最近は新PCに環境構築をするため,怒涛のごとくインストールをしてます。また同じことをすることもあるかと思うので,インストールしたソフトの一覧を作っときました。
最近は仕事でEclipseのプラグイン開発をして,趣味でEmacsとHaskellの練習をしているので,その分のノイズがあるかも。
書いてから思ったけど,インストールしたソフト一覧ってプロフィール的な面もありますね。技術者の場合,その人のフィールドなんかすぐ分かっちゃいます(俺の場合はJava系)。
自己紹介とか名刺の裏に”インストールソフト一覧”なんてどうでしょう??
最近は仕事でEclipseのプラグイン開発をして,趣味でEmacsとHaskellの練習をしているので,その分のノイズがあるかも。
- 【開発系】
- Eclipse3.1.1JDK5.0
Groovy JSR 03
Hugs(Haskell言語のインタプリタ)
haskell-mode(Emacs用のHaskell設定ファイル)
ActivePerl
ActiveRuby
Subversion
TortoiseSVN
Cygwin
【Firefox&エクステンション】
【ツール】
- Filangy Toolbar
Googleツールバー
Google デスクトップ
Google Deskbar
Gmail Notifier
QuickTime
秀丸エディタ
IrfanView
Lhaca
Poderosa(タブ式ターミナルエミュレータ)
Keylay21 for Windows XP(キー割り当てを変更するツール。CapsLockをCtrlにするとEmacsがちょっと使いやすくなる)
書いてから思ったけど,インストールしたソフト一覧ってプロフィール的な面もありますね。技術者の場合,その人のフィールドなんかすぐ分かっちゃいます(俺の場合はJava系)。
自己紹介とか名刺の裏に”インストールソフト一覧”なんてどうでしょう??
2005-11-04
『アマゾン・ページス』で”iPod Book”を妄想してみる
米アマゾン、本をページ単位でばら売りへ: Wired News
米アマゾン・コム社は3日(米国時間)、書籍をページ単位、章単位で販売するサービス『アマゾン・ページズ』を発表した。本を買わなくても、必要な部分だ けインターネット上で読めるようにする。一方、本を購入後、追加料金を払えば、外出先でもネットで読める『アマゾン・アップグレード』も開始する。
Amazon日本で「なか見!検索」が始まってその便利さに驚いてたんですが、ついに本のページ売りがAmazon本家で始まりました。ほんとびっくり。
こ のニュースの大事なところは”ページ単位で買える”ってことじゃなくて、”ネット上で読める”ということだと思います。自分は技術書を買うことが多いけ ど、いちいち買ってると本棚がすぐにいっぱいになっちゃいます。たいていの技術書って分厚いし、そのすべてのページが必要だってことは少ないです。
『ア マゾン・ページス』と『なか見!検索』を組み合わせれば、ネット上に検索可能な自分用の本棚が持てますね。どこでも見れるし、必要なところをすぐに探し出 せる。さらにAmazonAPIを使えば、携帯でも見れるようになる(はず)。電子書籍サービスをやってる会社は危険なんじゃないでしょうか。
そ れともAppleがiTunesで本のページを買えるようにしてiPodでページを読む、なんてことが始まったりして。そのうち『iPod Book』がリリースされたりして。なんか『アマゾン・ページス』に は、”CDをアルバム単位から曲単位で買う”というiTunesがもたらした変化と同じようなものを感じます。本好きとしては、iPodで本棚のすべての本が持ち歩けたら最高です。でも、本当にiPodで本が読めるように なったら、ソニーのリブリエみたいのはいらなくなっちゃいますね。
Amazon.comっ て他のWeb系の会社と違ってメディアへの露出が少ないけど、かなりキてる会社ですね。『なか見!検索』などの技術力、『この本を買った人はこんな本も 買っています』機能に代表される顧客データの蓄積、さらにこんなサービスを実現させる出版社との交渉力。
ともかく、早く日本でもこのサービスを開始してほしいです。
【参考リンク】
ブクログ -WEB本棚サービス-
本棚.org
- Web本棚サービスを二つ。どちらも中身は読めません。
アマゾンとランダムハウス、グーグルへの対抗策発表--書籍の電子版を有料提供へ - CNET Japan
- アマゾン・ページスに関するほかのニュース。そういやGoogle Printってのもあったな。
- アマゾンのバックエンド。
2005-11-02
VAIOノート購入
VAIOノート type F VGN-FS32B
先日PCを買い換えました。前のPCは5年近く使っていて、さすがに限界だったので。
Windowsマシンのノートを買うつもりで秋葉原に行ったけど、つい魔が差してApple Storeに入ってしまった。PowerBookG4の美しさを見たあとでは、ぐっと来るノートがなかなか見つからなかったです。そのなかで見つけたのが、このVAIO。
前のPCもVAIOノートだったからってのもあるんだけど、このPCがほかに比べて一番綺麗だったですね。ディスプレイもワイド型で見やすいし。私として はCPUパワーより、メモリ容量のほうを重視するので、デフォルトの512MBにプラス1GBのメモリを付け足しました。それで代金は約16万円なり。
ソニーもいろいろ言われているメーカーだけど、前のVAIOを使っていた限りでは特にトラブルもなく、自分としては全然OKです。それよりも他のノートPCのメーカがもっと個性的なマシンを出してくれればなぁ。やっぱり開発者がこだわって作ったものを使いたいです。
まだ使い始めたばかりですが、自分としては結構満足してます。Eclipseをワイドスクリーンで使うとすごく快適ですね。
それにしてもPowerBookがやばいですね。数ヵ月後には林檎使いになっている予感がします。
2005-10-21
Ningアプリを作ってみた
前にNingというサービスを紹介しましたが,その開発者アカウントをようやくゲットしました。
それで作ってみたがこれ。
Todo List
超シンプルなTodoListのアプリ。シンプルすぎて未完了/完了のステータス変更とか何もありません。
これはNingが用意していた"SimpleList"というアプリをコピーして,背景色をちょっと変えただけのものです。
具体的には次のような手順で作りました。
これだけで一応それなりのものが出来ちゃいます。
ユーザからのフィードバック機能も付いていて,これを送ると設定したメールアドレスに送信されます。
かなり簡単に作れるんだけどちょっと改良しようとすると,自分にはPHPやCSSをいじるスキルが足りないってことが良く分かりますね。しばらくはこのアプリを改良して勉強してこうと思います。
そのためのTODOは,やっぱりこちらで管理しときます。
それで作ってみたがこれ。
Todo List
超シンプルなTodoListのアプリ。シンプルすぎて未完了/完了のステータス変更とか何もありません。
これはNingが用意していた"SimpleList"というアプリをコピーして,背景色をちょっと変えただけのものです。
具体的には次のような手順で作りました。
- Ningトップページから"Example Apps"タブを選択。
- 左端にある"Simple Example Apps"の中から"Simple List"の"View Apps"をクリック。
- SimpleListトップの右端にある"Clone this app"を選択。
- 新規アプリの名前等を設定。
- アプリ一覧から"Edit App"をクリックしてファイル一覧を表示。
- "xn_default.css"を編集して背景色を変更。
これだけで一応それなりのものが出来ちゃいます。
ユーザからのフィードバック機能も付いていて,これを送ると設定したメールアドレスに送信されます。
かなり簡単に作れるんだけどちょっと改良しようとすると,自分にはPHPやCSSをいじるスキルが足りないってことが良く分かりますね。しばらくはこのアプリを改良して勉強してこうと思います。
そのためのTODOは,やっぱりこちらで管理しときます。
2005-10-11
[日記]スポーツジムで泳ぐ
スポーツジム自体に入るのが初めてのことなので少し緊張してたけど,なんとかプールに到着。おじさんおばさんばっかりで少しがっかり(何を期待してたんだw)。さすがスポーツジムだけあって,プールサイドにジャグジー風呂とサウナがありました。
プールのレーンは利用者のレベルごとに「初心者」「ゆっくり」「はやく」と分かれていて,一番端っこはウォーキングコースになってます。まずはウォーキングコースで水に慣れる。水中ウォーキングってダイエットにいいみたいだし。
いよいよ泳いでみる。とりあえず「初心者」レーンで。
おかしい。全然泳げない。たしかにしばらく泳いだこと無かったけど,こんなに駄目になっているとは!
とりあえずクロールを試してみたけど,息継ぎのタイミングが分からない。変なタイミングで息継ぎしようとすると水を飲んで溺れそうになる。ただでさえフォームがめちゃくちゃで溺れてるのと大差ないのに! 背泳ぎは楽そうだなーっと思ったけど,泳いでる先が見えないって不安だし,油断すると鼻に水が入る。背泳ぎも結構大変。平泳ぎにいたっては,何であれで前に進めるのかが分からない。
初心者コースで練習→ウォーキングコースで休む→サウナで暖まる→ジャグジーでリラックスというサイクルを何回か繰り返しました。その結果,なんとかクロールで15メートルぐらいは泳げるようになった。
もうちょっと練習したかったけど,体力的に限界にきてました。途中,アクアビクスという水中エアロビみたいなのもやったので結構疲れてまして,結局4時間ほどでギブアップ。
あまりにも泳げないなー,せめて25メートルは泳げるようになっときたいですね。しかし久しぶりの水泳は結構面白かったですね。良い気分転換になりました。ダイエットにもなっただろうし。
ということで,わりと真剣にジムに入ることを検討中です。
Ningは開発者天国
Ningというサービスが開始されました。
仕掛け人はNetscapeを作ったMarc Andreessen。
Ningはウェブアプリを作るプラットフォームのようなもの,みたいです。今まであったものと違うのは,Ning上のウェブアプリはソースからデータまですべて共有されること。この特長によって開発者はNing上のアプリを自由に組み合わせて新しいウェブアプリが作れます。
最近出てきたウェブ上のサービス(del.icio.us,Flikr,Google Mapsなど)では,WebAPIを公開することが多くなっています。こういうAPIを組み合わせて第三者が新しいサービスを作り出す,ということも良くあります。こういう動きを"WEB2.0"とか呼ぶみたいですが,Ningはそれを極端にしたサービスですね。
Ningで使われている言語はPHPです(将来的にPythonとRubyもサポートするみたい)。私はPHPを使ったことがないので勉強しよっかなーっと思ってたら,Ningのオフィシャルチームが作ったこのサービスを見つけました。
Code Snippets
使えるコードの切れ端を集めたサービス。ヤバイ,Ningって開発者天国です。勉強のためのサンプルもすぐ見つかる。
Code Snippetsみたいなサービスを見てみると,Ningチーム自身もNingを使って開発を効率化しているみたいですね。なんというか,自給自足な開発? 「無ければ作ればよい」ってよく言われるけど,Ningだったら本当に出来ますね。
Ningでは開発者アカウントは先着順に配っているらしく,まだ私は貰えてません。アカウントが来たらガシガシアプリを作ってこうと思います。
【参考リンク】
unokun研究室: Ning
Ningについてはこちらで知りました。Ning関係の記事についてまとまっています。
秋元@サイボウズ研究所プログラマーBlog: Netscape の作者による新 Web2.0 サービス Ning(5) 開発してみる
Ningで実際に開発してみた人の記事。かなり簡単に作れるみたい。
仕掛け人はNetscapeを作ったMarc Andreessen。
Ningはウェブアプリを作るプラットフォームのようなもの,みたいです。今まであったものと違うのは,Ning上のウェブアプリはソースからデータまですべて共有されること。この特長によって開発者はNing上のアプリを自由に組み合わせて新しいウェブアプリが作れます。
最近出てきたウェブ上のサービス(del.icio.us,Flikr,Google Mapsなど)では,WebAPIを公開することが多くなっています。こういうAPIを組み合わせて第三者が新しいサービスを作り出す,ということも良くあります。こういう動きを"WEB2.0"とか呼ぶみたいですが,Ningはそれを極端にしたサービスですね。
Ningで使われている言語はPHPです(将来的にPythonとRubyもサポートするみたい)。私はPHPを使ったことがないので勉強しよっかなーっと思ってたら,Ningのオフィシャルチームが作ったこのサービスを見つけました。
Code Snippets
使えるコードの切れ端を集めたサービス。ヤバイ,Ningって開発者天国です。勉強のためのサンプルもすぐ見つかる。
Code Snippetsみたいなサービスを見てみると,Ningチーム自身もNingを使って開発を効率化しているみたいですね。なんというか,自給自足な開発? 「無ければ作ればよい」ってよく言われるけど,Ningだったら本当に出来ますね。
Ningでは開発者アカウントは先着順に配っているらしく,まだ私は貰えてません。アカウントが来たらガシガシアプリを作ってこうと思います。
【参考リンク】
unokun研究室: Ning
Ningについてはこちらで知りました。Ning関係の記事についてまとまっています。
秋元@サイボウズ研究所プログラマーBlog: Netscape の作者による新 Web2.0 サービス Ning(5) 開発してみる
Ningで実際に開発してみた人の記事。かなり簡単に作れるみたい。
2005-10-03
Nike Free 5.0破損! だけど修理したよ
このあいだ買ったNike Free 5.0でフットサルをしてたら,甲の部分の布が破れてしまいました。
フットサルみたいな激しい運動には向いてないのかな? ジョギング用?
靴が自分の体重に耐えられなかったんだとしたらショック。

ちょっとへこみましたが,私はけっこう物を修理するのが好きなタチです。
むしろ「ぜってー直してやる!」と燃えるタイプ。
ということで,裁縫して破れたところを縫い合わせてみました。

縫ってるうちに家庭科の授業を思い出したりして,懐かしかったです(玉結びとか本返し縫いとか憶えてる?)。
甲の部分の布は厚いフェルト生地のようになっていて,なかなか針が刺しづらい。
普通の平らな布と違って,靴みたいな立体的なかたちは縫うのが面倒ですね。
波型にしたり平行にしたりX型にしたり,縫い方は試行錯誤しながらやったのでバラバラです。
ちょっとだけ”千鳥がけ”って縫い方を試してあります。
2時間と指に針を刺しちゃうという犠牲を払った結果,なんとか直しました。
黒い糸を使ったので,全然縫い目が目立たなくなって良かったです。

早速直したNikeFreeでジョギングしてきました。
残念ながら,やっぱり縫ったほうは少し違和感がありますね。
靴底のゴムへの密着感がすこし弱いような。
取り合えず普通に使えるようになりました。
まぁ,裁縫もちょっと覚えたし,ヨカッタヨカッタというプラス思考でマル。
【参考リンク】
針と糸と布地の合わせ方・縫い方いろいろ
縫い方はこちらを参考にさせてもらいました。
フットサルみたいな激しい運動には向いてないのかな? ジョギング用?
靴が自分の体重に耐えられなかったんだとしたらショック。
ちょっとへこみましたが,私はけっこう物を修理するのが好きなタチです。
むしろ「ぜってー直してやる!」と燃えるタイプ。
ということで,裁縫して破れたところを縫い合わせてみました。
縫ってるうちに家庭科の授業を思い出したりして,懐かしかったです(玉結びとか本返し縫いとか憶えてる?)。
甲の部分の布は厚いフェルト生地のようになっていて,なかなか針が刺しづらい。
普通の平らな布と違って,靴みたいな立体的なかたちは縫うのが面倒ですね。
波型にしたり平行にしたりX型にしたり,縫い方は試行錯誤しながらやったのでバラバラです。
ちょっとだけ”千鳥がけ”って縫い方を試してあります。
2時間と指に針を刺しちゃうという犠牲を払った結果,なんとか直しました。
黒い糸を使ったので,全然縫い目が目立たなくなって良かったです。
早速直したNikeFreeでジョギングしてきました。
残念ながら,やっぱり縫ったほうは少し違和感がありますね。
靴底のゴムへの密着感がすこし弱いような。
取り合えず普通に使えるようになりました。
まぁ,裁縫もちょっと覚えたし,ヨカッタヨカッタというプラス思考でマル。
【参考リンク】
針と糸と布地の合わせ方・縫い方いろいろ
縫い方はこちらを参考にさせてもらいました。
2005-09-28
チャーリーとチョコレート工場
☆☆☆ チャーリーとチョコレート工場 ☆☆☆
先週いっぱいは,かなり遅めの夏休みでした。
ということで前から見たかった『チャーリーとチョコレート工場』をLaizと見てきました。
自分はティム・バートンのファン,Laizはジョニー・デップのファンだったみたい。
結論から言うとすごく良かった。チョコレートみたいに甘くて濃い世界だけど,意外と現実的な面もあったりしてちょっぴりビター。ティム・バートン監督の独特の毒があって良かった。冒頭のチョコレート作成シーンがバートンっぽい。
子供たちが秘密のチョコレート工場に招待されて不思議な体験をするってのが基本的なストーリー。
チョコレート工場の主,天才チョコレート発明家ウォンカ氏をジョニー・デップが演じているんだけど,絶妙の演技。招待した子供たち以上に子供っぽくて気まぐれ。都合が悪いことを言われると「口の中でもごもご喋らないでくれるかな」(笑)
しかしジョニー・デップは色んな役をこなすなぁ。『シザーハンズ』,『スリーピーホロウ』,『ラスベガスをやっつけろ』とかバラバラな役をやってますね。
主人公のチャーリーは"誠実で優しくて家族思いだけど貧乏"っていう見事なサンプル。ありきたりだけど最近見かけないストレートな良い奴っぷりが逆に新鮮だったり。全世界のチョコレートに隠された5枚だけの金のチケットを手に入れた人がチョコレート工場に入れるって設定で,チャーリーは主人公だから結局手に入れるんだけど,そこに至るまでがなかなかヤキモキさせられます。チャーリーのジョーおじいちゃんはなかなか良いキャラです。
工場内のビジュアルは見事。従業員はウンパ・ルンパ族の小人たちがやっているけど,全部同じ顔。船を漕ぐシーンで同じ顔のおっさんたちがオールを動かしているのは,見ているだけで笑えてしまう。あとウンパ・ルンパの歌とダンスは必見。自分はバイオレットの歌が好き。
見終わった後は妙にチョコレートが食べたくなってしまいます。本当はウォンカチョコレートが食べたかったけど,コンビニのチョコレートで我慢。っていうかお菓子会社と提携して本当にウォンカチョコレートを販売してくれないかなぁ。"WONKA"ってロゴもレトロでカッコいいと思う。WONKAロゴのTシャツがあったら買ってしまいそう。
吹き替え版で見たけど,素直に楽しめました。良!
またなんか見に行くか>Laiz
【参考リンク】
玲 図 日 記■: ■ チャーリーとチョコレート工場を観賞
Laizの感想。
『あなたに似た人』ロアルド・ダール
この映画の原作を書いた小説家ロアルド・ダールの短編集。ファンタジーじゃなくてサスペンスチックなのだけど面白いです。
夢のチョコレート工場
『チャーリー~』はこの作品のリメイク。こっちも見たことあるけど,これはこれで面白い。
ファンタジー映画で振り返るドットコム・バブル : Hotwired
『チョコレート工場の秘密』とIT業界事情を絡めて書かれたコラム。
先週いっぱいは,かなり遅めの夏休みでした。
ということで前から見たかった『チャーリーとチョコレート工場』をLaizと見てきました。
自分はティム・バートンのファン,Laizはジョニー・デップのファンだったみたい。
結論から言うとすごく良かった。チョコレートみたいに甘くて濃い世界だけど,意外と現実的な面もあったりしてちょっぴりビター。ティム・バートン監督の独特の毒があって良かった。冒頭のチョコレート作成シーンがバートンっぽい。
子供たちが秘密のチョコレート工場に招待されて不思議な体験をするってのが基本的なストーリー。
チョコレート工場の主,天才チョコレート発明家ウォンカ氏をジョニー・デップが演じているんだけど,絶妙の演技。招待した子供たち以上に子供っぽくて気まぐれ。都合が悪いことを言われると「口の中でもごもご喋らないでくれるかな」(笑)
しかしジョニー・デップは色んな役をこなすなぁ。『シザーハンズ』,『スリーピーホロウ』,『ラスベガスをやっつけろ』とかバラバラな役をやってますね。
主人公のチャーリーは"誠実で優しくて家族思いだけど貧乏"っていう見事なサンプル。ありきたりだけど最近見かけないストレートな良い奴っぷりが逆に新鮮だったり。全世界のチョコレートに隠された5枚だけの金のチケットを手に入れた人がチョコレート工場に入れるって設定で,チャーリーは主人公だから結局手に入れるんだけど,そこに至るまでがなかなかヤキモキさせられます。チャーリーのジョーおじいちゃんはなかなか良いキャラです。
工場内のビジュアルは見事。従業員はウンパ・ルンパ族の小人たちがやっているけど,全部同じ顔。船を漕ぐシーンで同じ顔のおっさんたちがオールを動かしているのは,見ているだけで笑えてしまう。あとウンパ・ルンパの歌とダンスは必見。自分はバイオレットの歌が好き。
見終わった後は妙にチョコレートが食べたくなってしまいます。本当はウォンカチョコレートが食べたかったけど,コンビニのチョコレートで我慢。っていうかお菓子会社と提携して本当にウォンカチョコレートを販売してくれないかなぁ。"WONKA"ってロゴもレトロでカッコいいと思う。WONKAロゴのTシャツがあったら買ってしまいそう。
吹き替え版で見たけど,素直に楽しめました。良!
またなんか見に行くか>Laiz
【参考リンク】
玲 図 日 記■: ■ チャーリーとチョコレート工場を観賞
Laizの感想。
『あなたに似た人』ロアルド・ダール
この映画の原作を書いた小説家ロアルド・ダールの短編集。ファンタジーじゃなくてサスペンスチックなのだけど面白いです。
夢のチョコレート工場
『チャーリー~』はこの作品のリメイク。こっちも見たことあるけど,これはこれで面白い。
ファンタジー映画で振り返るドットコム・バブル : Hotwired
『チョコレート工場の秘密』とIT業界事情を絡めて書かれたコラム。
登録:
投稿 (Atom)