2005-12-25

ダイエットの途中経過

2ヶ月ぐらい前からダイエットのためにスポーツジムに通い始めました。週に二日はジムのマシンでひたすら筋トレと有酸素運動をストイックにやってました。

昨日は,ジムに入会したときに測定した身体データ(体重,体脂肪率,筋肉量など)と,現在のデータを比較するというイベントがありました。結果というと,筋肉量は2kg増量! 体脂肪率は2.5%低下! 体重は1.1kg増量! ってあれ?

うーん,ちょっと納得いかないけど,トレーナーさんによると「筋肉量が増えて体脂肪率が減ってるので理想的」ということらしい。とりあえずジムに通った成果は出ているみたい。もうちょっとだ,がんばれ! ファイト! >自分。


しかしジムでひたすら筋トレも飽きてきちゃったので,今後はスイミングを平行してやっていこうという予定。思えば当初の予定はきっちり長距離を泳げるようになることだったのだ!(昔の記事)。

ということで,昨日泳いできました。前よりも微妙に泳げるようになってきている気がする。腕のスイングに合わせて体の軸を左右にロールさせることで,姿勢を安定させることが出来ることに気がついた。でも息継ぎがやっぱり下手なので,これは今後の課題。一応,500メートル泳いできました。

久しぶりに泳いだので,今日は体中が筋肉痛っす。筋肉痛のクリスマス。きっとサンタもプレゼント配りで筋肉痛。

クリスマスにLaQで遊ぶ

LaQ_ChrismasTree昨日,LaQというパズルを買いました。これはレゴブロックみたいなパズルで,四角と三角のピースを組み合わせていろんな形が作れるというやつ。球体とか立体的な複雑な図形が作れるってのが売りらしいです。公式ホームページにあるギャラリーにはすごい作品がたくさん。

適当に組み合わせているだけでも,幾何学的な綺麗な形が作れるので,無心で遊んでしまいました。ピースを組み合わせるときにパチッと音がするのが気持ちいいです。子どものころレゴが好きだった人はハマるはず。


ところで今日はクリスマス。なので,このLaQでクリスマスツリーを作ってみました(写真)。子どものころにレゴのヘビーユーザだったせいか,ただピースを組み合わせているだけなのに楽しい。クリスマスに一人なのに楽しい(哀。


えーと,とりあえずLaQは子どもへのクリスマスプレゼントに最適ですよという結論ということで。

2005-12-05

インストールしたソフト一覧をプロフィール代わりに

Going My Wayさんにエントリを取り上げて貰いました。

Going My Way: 名刺の裏やサイトのAbout欄、プロフィール欄にインストールしているソフト一覧を書くというアイディア

元になってるエントリはこれ。書いた本人も忘れていたアイデアに目をつけるとは,さすがですね(笑。
言いだしっぺが何もしないのもアレなので,プロフィールのところに追加しときました。


Going My Wayさんは,Lifehack関係の情報を探していて知りました。最近私はGoogleEarthにハマってるんですが,これについてもいろいろ面白い記事がありますね。
こちらのアイデアも面白そう。

2005-12-04

Binary2.0な小ネタ "排他的論理和でSWAP"

いやなブログ: Binary 2.0カンファレンス2005

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メモというものは,
  • もともとはソフトウェアの変更履歴を記録するための書式である。
  • 一つのテキストファイルに日付順に(新しいほど上に)記録していく。
  • 先頭にカテゴリ名をつける。あとで見るときにgrepすればカテゴリごとに一覧を見ることが出来る。
というようなものです。詳しくは上のサイトを見てください。


ChangeLog メモの良いところは,書式が決まっているというところですね。書式があらかじめ決まっていればメモるときにレイアウトなど余計なことに気を使わなくても良 いですから,気楽にかけます。それで最近は技術的なことだけじゃなくて,思いついたことは全部ChangeLogに書いてます。

どうやらChangeLogメモというものは,「ある程度メモが溜まってから良さがわかる」という特徴もあるようです。なのでしばらくはこれを続けていこうと思います。


deltamの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を拡張することで,例えばつぎのようなことが可能です。
  • 独自定義の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: ..."という資料が一番詳しいと書きましたが,この資料は長いくせにインデックスが付いてなくて読みにくいので,勝手に見出し一覧を作っちゃいました。 未読の人はタイトルだけ見ても大体内容が分かるのではないかと思います。



------

Extending The Visual Editor:
Enabling support for a custom widget
INDEX

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 Basic風に設定できる
  • AWT,Swing,SWTに対応する。

-----
いきなり論文口調で書いてみました。上の文章は仕事で書いたものをちょっと改変したものです。この「Visual Editor」というプラグインを拡張して開発ツールを作るってのを最近やってるんですが,一応調べたことをまとめるってことでブログに書いてみました。

あんまり「Visual Editor」の拡張方法に関する日本語の資料って無いみたいなので,これからちょこちょこ書いてみます。