2008年4月30日水曜日

JJUG CCCに行ってきました

JJUG Cross Community Conference 2008 Spring に行ってきました。

久しぶりの秋葉原だったんですが、駅めっちゃ綺麗になったんですねー。
さて、私が参加したセッションは、以下の3つ。

13:40 - 14:25 B-3
Click Framework

14:25 - 15:00 B-4
Wicket

15:10 - 16:20 B-5
パネル

WebアプリケーションのFrameworkについて。。。って所ですね。
Strutsユーザが大量に存在している今日、別のFrameworkを使おうとすると、「なんでStrutsじゃないのか?」という理由を述べないといけないくらい。
でも、それだけ集中して使用されたからこそ、次の課題もみんなが共有できるようになったという功績も大きいかな。と。

やっぱり、
Java技術者ならば、XMLじゃなくJavaコード書くのが幸せ だし、
サクサクとコーディング、テストするなどのテンポがいい開発が幸せ。
他のFactorとしては、
デザイン(HTML,CSS)とコードを綺麗に分離できないもんかな。
エンドユーザにとって良いものを作るには、要件定義を始めに固めるという流れに無理があるよね。(アジャイル?)
とかもある。

StrutsというFrameworkが「誰でもそこそこのWebアプリケーションを作れる」というところを満たしてくれたからこそ、次の幸せを考えていけるようになっているんだろうな。って気がします。

Grails,RoR,Click,Wiket,JBossSeamなどポストStrutsを狙うFrameworkが乱立しているけども、ある意味Frameworkを使って開発する手法が認められたってこともあるんでしょぅ。
世の中の流れは早いから、要求の内容も変わってくるから今のStrutsは淘汰されていくのかもしれないけども、形や機能を変えつつFrameworkは色々出てくるんだろうし。

そんな中、Frameworkに何を一番期待するのかというのは難しいですね。
技術レベルがそこそこあるメンバーだけで開発するならば、シンプルで分かりやすい、拡張しやすいものがいいなぁーって気がしますが、レベルもバラバラの大規模開発だと。。。うーんどうかな?とも思うし。

パネルディスカッションでもあったんですが、案件の要件がFrameworkに合わせてくれるものなのか、合わせてくれないものなのか も大きい。
一番いいのは、「その案件にとってベストプラクティスとなるFrameworkを選ぶ」ことなんでしょうが、現実はそれだけでなくて、そのFrameworkが今後も続いていくものなのか、開発者が精通しているか、そもそも携わっている人が選べるほど色んなFrameworkを知っているのか。。。など、結構な壁がある。

そう思うとFrameworkって便利だけど、Strutsのように みんな使っている(知っている) という状況にならない限り、機能などで違うFrameworkを使ってみるというのは、現実では難しいんだろうなぁ。

私のような1開発者にとったら、自分たちが開発して楽しい!と思えるものを、ばしばし勉強して すぐに実践で使えますよ って状況を作って、無理矢理そっちの方向に案件の。。会社の。。時代の流れを向けさせるようにしてみるって事かしらん。ってのが感想でした。



Blogged with the Flock Browser
• • •

2008年4月28日月曜日

レガシーコード

ある記事で、レガシーコード というのは「テストをされていない(テストコードがない) コード」という書かれ方をしていました。
つまり、現時点で書いているコードでも、テストコードがなければ、それは レガシーコード という意味。

一般的にはどうなんだろ?とググってみたんですが、「テストコードがないコード」って意味で書かれているサイトやブログ結構多いですね。

「レガシー( legacy)」という言葉の意味としては 「古い技術であるが現在まで残っている技術」 とか「時代遅れになったもの」 ・・・らしいです。

んが、私的には、テストコードが無いソースに対して、
古い技術で・・・時代遅れ・・・ だけでは マイナスイメージが少なすぎる気もします。

レガシーコードに対するメンテナンスをする場合は、通常に比べ 2倍以上の給与が支払われる でもいいんじゃない?って思うくらい・・・レガシーコードのメンテナンスは嫌。

自分の書いたものでも、昔は何も考えずにテストコード書かずにゴリゴリ買いちゃったものもあるんですよね。
そういうコードは撲滅してしまいたい。無かったことにして、一から作りなおしたい。。

・・・と思いつつ、テストコードが足りないものを ゴリゴリ書いている日々です・・・
Blogged with the Flock Browser
• • •

2008年4月19日土曜日

プロとアマとの違い

プロとアマの違いって、よく話に出たりすることと思うんですが、
宴の支度 (3) 小さな変化からすべては始まる。「プロ」と「アマ」の13の違い | Lifehacking.jp
というのを見つけました。

あー結構、アマの所ってあるなぁーと、改めて反省。
プロの方をみると、「あ、確かにプロよね」って思うけど、その項のアマをみると、
「え?これが、このプロの反対側?」って思う事があって、いいプレッシャーになりました。
それまでは、アマの思いがあったとしても、それがプロの反対の事って思っている意識がなかったかもしれないです。。

   プロ           アマ
4. 他人の幸せに役立つ喜び  4. 自分が傷つく事は回避する
5. 可能性に挑戦し続ける   5. 経験に生きる
12. 出来る方法を考える   12. できない言い訳が口に出る

は、やってしまいがちだから、気をつけねばって思うところ。

   プロ           アマ
6. 思い信じ込むことができる 6. 不信が先にある
9. 成功し続ける       9. 失敗を恐れる
13. 自分のシナリオを書く   13. 他人のシナリオが気になる

これは、私アマに近い。。。

どっち?というというよりも、どっちに近いのか? になると思うんですが、少しでもプロに近づける事ができるよう、意識しておくのが大切なんでしょうねー。
意識しないと、絶対、楽な方、自己防衛の方に走っちゃいますから。
Blogged with the Flock Browser
• • •

2008年4月17日木曜日

低血糖ってヤバイ

昨日は、初めて救急車にのりました。 ・・・付き添いの方で。

出勤途中で連れが立ってられなくなり、手足の痙攣、喋れなくなる などになってきたので、救急車を呼びました。
タンカで運んでもらいつつ、外にでると 消防車まで来てる!
地下鉄で救急車を呼ぶと、テロ対策のために 救急車+消防車 も駆けつけるようです。

結局、本当の原因ってのはよく分からないんですが、多分・・・低血糖かな・・という感じ。
男の人で通勤途中で ぶっ倒れる って理由が、低血糖っての、そこそこ多いらしいですよ。救急病院の人によると。

ウィキペディアで低血糖を調べてみると、
人体には低血糖に対し数段階の回避システムが用意されている。

1. 血糖値が約80mg/dLを下回ると、血糖値を下げるホルモンであるインスリンの分泌が極端に低下する。
2. 約65-70mg/dLに低下すると、血糖値を上げるホルモンであるグルカゴン、アドレナリンが大量に放出され始める。
3. 約60-65mg/dLに低下すると、三番目の血糖値を上げるホルモン、成長ホルモンが放出される。
4. 最後に60mg/dLをきるようになると、最後の血糖値を上げるホルモン、コルチゾールの分泌が亢進する。

血糖値が50mg/dlを下回ると、大脳のエネルギー代謝が維持できなくなり、精神症状をおこしはじめ、さらには意識消失を引き起こし、重篤な場合は死に至る。しかし上記のような回避システムが血糖値50mg/dLにいたるのを防いでいるため、通常は意識に異常をきたすには至らない。そのかわりとして、アドレナリンが大量放出されることに伴い交感神経刺激症状があらわれる(低血糖発作の症状はこれによる)。例としては、大量の冷や汗、動悸、手足のふるえ(振戦)、そして「死ぬかもしれない」という恐怖感などである。


まったくもって危険です。
特に朝は血糖値も下がってるだろうし・・・朝ごはん食べてなかったら余計に。
忙しくてあんまりご飯食べてないとかって人! 飴ぐらいは舐めましょう~ね~!!

過呼吸もよくある症状かと思うんですが、こちらは ビニール袋を使ったり、体を動かしたり で治ったりしますが、低血糖はヤバイよ

ちなみに、連れの症状を見る限り
過呼吸は 手足が麻痺してくる
低血糖は 手足が痙攣してくる
・・・ような差があった
Blogged with the Flock Browser
• • •

2008年4月15日火曜日

Windowsがアプリバグのために取った行動

Amazon.co.jp: BEST SOFTWARE WRITING: Joel Spolsky,青木 靖: 本
を読み始めました。

まだ読み始めなんですが、今日読んだところで印象的だったのが、
RaymondChenの「なぜ、アンドキュメンテッドな振る舞いに依存するアプリケーションを単に締め出さないのか」というもの。

Windowsは、新バージョンにアップグレードするときに古いアプリケーションも動くように、たくさんのハックが入っている らしいです。
Windowsのテスターチームが、いろんなソフトのテストをするらしいんですが、”SimCity”のゲームではどうしてもクラッシュしてしまう。
そこで、逆アセンブルしてデバッグしてみると、”SimCity”自体にメモリ関連の重大なバグがあってそのせい・・・SimCityのせい・・・
だったらしいのですが、その解決として・・・Windowsはどうしたのか?

・・・なんですが、どうおもいます??

もし、私がWindows製作の立場だったら、”SimCity”の開発会社に連絡して、ここおかしいから、直してよ っていうだけかもしれない。
そして、新しい製品では SimCityはバグが修正された このバージョンなら動きます。って連絡するのに留めるかも。

でも!Windowsは、
”SimCityが動いている場合は、バグが発生しない動作になるように OSの方をいじった”
のだそうです。

凄くないですか? なんか、ちょっと感動しました。

原因はWindowsでなくて他社製品のバグだったのも分かった状態なので、他製品のせい にしても 問題ない 気もします。
星の数ほどあるアプリをWindowsで全て動作確認するのは無理だろうから、そもそもそんな真剣にはやってないんじゃない?・・・って思っていたぐらいです。

でも、使う人のことを考えたら、SimCityが使いたい!製品元は関係ない!んですよね。
その人によって ”外せないアプリ” というのは様々で、ゲームだからっていって重要度が下がるわけでもないかもしれない。
SimCityが使えないなら、Windowsのアップグレードはしないって人もいるのでしょぅ。
新しいバージョンのSimCityが使えても、ユーザは古いバージョンのを使いたい ってのもあるでしょぅ。

そう思うのは簡単ですが、実際、製品のスタンスとして実践するのは凄く大変なことってのは容易に想像つきます。。。
そういう製品だったからこそ、Windowsって爆発的な普及を見せたんでしょうねぇー!
Blogged with the Flock Browser
• • •

2008年4月13日日曜日

3と5の倍数の時だけ

3と5の倍数の時だけ馬鹿になったり、犬になったりする”なべあつ”ってどうしてあんなに売れてるんやろーね?
という会話から、FizzBuzzの話になりました。

私はFizzBuzz問題を知らなかったオバカさんなんですが、知らない人のために。

どうしてプログラマに・・・プログラムが書けないのか? Jeff Atwood / 青木靖 訳
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。


これに、「剰余(%記号等)を用いない」「1行でできる限り短く(ワンライナー)」などの制限も設けたりするのもあるみたいです。

ということで、私もやってみました。
タバコを吸っている間の時間で、剰余(%記号等)を用いない の制限付きで。

なんだか、ちょっとドキドキもんでした。
できんかったら、なんちゃってプログラマー確定 しちゃいそうで。

結果はなんとか、表示はできたんですけども、
もっと少ない行数で とか for とかの loopも使わずに とか色々問題拡張を考えられるし面白いですね。

少しの時間でできるし、仕事が行き詰まったあぁああーってなった時にでも気分転換でやってみてくださいー。
Blogged with the Flock Browser
• • •

2008年4月9日水曜日

ロスタイムライフ

先ほど、録画していたロスタイムライフを見ました。

ご存知のない方のために少し説明すると、
 死ぬ間際にそれまでの人生のロスタイムの時間だけ猶予が与えられる。
 その間にやり残した事を片付ける
っていうドラマです。

今回みたのは、大学受験に失敗し、その後12年間引きこもり生活していた人のロスタイムが12年間だった!って話でした。
その話の中で、思わず心に残ったのが、
「何もしたいことがない。そういう意味では、やり残しもない充実した人生だったのかなぁー」
と主人公が発した一言。
※言い回しは違うけど、そんな感じの言葉だったと思う。

反対に考えると、何かを常に前向きに進んでいる人の場合、
「やり終えた。もぅやり残しがない。」なんて時はやってこない気がしますね、確かに。

「何もしたいことがない。やり残しもない」と思ってしまうときには、今は何にもやってないよっていう危険信号なんですね。


「この短い人生、やり残しがないように生きていきたい。」っつーのは、前向きのようで後ろ向きな言葉なんかもしれません。。?
Blogged with the Flock Browser
• • •

2008年4月8日火曜日

地頭力ってなに?

地頭力(じあたまりょく)って書かれた本が書店に多く並んでいました。

コンサル業界や、ビジネス業界で最近ブームになっている言葉らしいです。
ということで、検索してみました。

J-CASTニュース : ビジネスで成功する能力を生み出す 「地頭力」がちょっとしたブーム
より引用

「日本のペットボトルの市場規模を2倍にするには、どうすればいいか?」。こう聞かれたら、あなたはどう答えますか。

この問いは、某外資系戦略コンサルティング会社の採用面接で実際に出された質問です。問われているのは論理力や発想力だけではありません。いかに知識や経験などに頼らず“素手”で解答までのプロセスを導き出せるか、つまり考える力のベースとなる“地頭力”を試されているのです。

地頭力って聞いて、すぐにネットで検索するような私のような人はどんどん地頭力が落ちていくってことですかね(笑)

平積みされていた本の中に「フェルミ推定」というのもありました。
「フェルミ推定」とは、把握するのが困難な問題の数量を仮説などを組み合わせて短時間に概数を求める方法。ということで、どうやら、地頭力を使うための例題みたいな感じで使われているみたい。
ビルゲイツでの面接試験にもでてきたらしいですよ。

見つけたフェルミ推定の例題を書いてみます。
「シカゴにピアノ調律師は何人いるか?」
「世界中で一日に食べられるピザは何枚か?」
「琵琶湖の水は『何滴』あるか?」
「日本全国に電柱は何本あるか?」
「東京都内に信号機は何基あるか?」
「世界中にサッカーボールはいくつあるか?」



Blogged with the Flock Browser
• • •

EclipsePluginコード補完

EclipsePluginのコード補完(コンテンツアシストアシスト)を試してみました。
参考にしたのは、
SourceViewerを使用する [ コンテンツ・アシスタント ]
Help - Eclipse SDK ContentAssistant
です。

エディタの protected void createActions() 
にContentAssistActionを登録し、SourceViewerConfigurationのgetContentAssistantに設定してあげれば、Ctl+Spaceのコード補完が出来るようになるようです。

とりあえず出せる方法は分かったけど、JavaEditorのようにいろんなクラスのメソッドやらを補完していくのは結構な労力いりそうですね。。
Blogged with the Flock Browser
• • •

2008年4月7日月曜日

祝!Air簡単アプリ第一弾

AdobeAirでの簡単アプリ第一弾を作成してみましたよぉ。祝!
結局、めちゃ簡単なものになってしまいましたが。。
ActionScriptで正規表現もかけるんだーってことで、簡単なテストが出来るものを作成してみました。



こんな感じのやつです。あんまし機能なくてしょーもないんですが、一応パッケージしてみたので、よければインストールしてみてください。
インストーラは regexp.air です。
ソースを見たい方は 簡単アプリ-正規表現テストに載っけてみましたのでどーぞ。

TabNavigatorやAccordion使うと、起動時、まだ表示されていないタブやコンポーネントが出てくると思うんですが、そういうものは、表示されるまで構成されないんですかね?
まだ表示していないコンポーネントはnullになっちゃうんですよねぇ。
ActionScriptで操作するには、そのコンポーネントを一度でも表示しないとダメなのか?そういうもんなのか??
Blogged with the Flock Browser
• • •

2008年4月5日土曜日

AirでActionScript3を試すぞ!

Airでのアプリを作るため、ActionScript3をちょっと触ってみることに。
まずは、Airの画面の終了をためしたい。

ネットで記事を見つけて
stage.window.close();
でできるって書いてあったけど、
「未定義である可能性が高いプロパティ window に静的型 flash.display:Stage の参照を使用してアクセスしています。」
ってエラーが発生。

確かにAdobeFlex3リファレンスガイド/Stageにはwindowっていうプロパティがないような。。

このページにあった nativeWindow っつーのを使って
stage.nativeWindow.close();
としてみたら、動いたよー。

あと、mx:WindowedApplication の参照に対して close() をしてあげても動いた。
ちゃんとリファレンスみろよー!って話でしたわ。。あわわ。

mxmlcをすると、結構警告出してくれるんですねー。
var sentence_array = new Array();
って型の定義していなかったら
「variable 'sentence_array' に型宣言がありません」
ってWarningだしてくれるし、

fuctionのスコープを書いていなかったら、
「function '****' がデフォルトの名前空間にスコープされます : 内部 **** 。このパッケージの外部には表示されません」
ってWarningだしてくれる。

private , protected, public なんかをつけてみるとWarningも消える。ほー。
ちなみに、クラスのスコープの説明はクラスプロパティの属性にありましたよん。

軽量言語は(勉強不足で)あんまし使っていなかったんですが、こうやってコンパイル時にWarning出してくれるんなら使えそうですねー。
。。。と思っていたら、となりで「最近の軽量言語は、だいたいそうらしいよ」という声が。
あ、食わず嫌いだっただけなのかもー すんません。

ちなみに、AirGearで***.as のファイルを保存時にmxmcのコンパイルが走っていなかったのを見つけて修正しました。
明日は、なんかのアプリつくってみるー。簡単なやつ(笑)


Blogged with the Flock Browser
• • •

2008年4月3日木曜日

SafariでHTMLページをPDFで書き出し

Safariで表示しているHTMLをPDFで書き出しできるらしい。
Safari Standっていうプラグインをいれると出てくるようになりました。
このプラグイン。PDF出力が目的のものでなくて、ブックマークとか、検索とか便利にするものなんだと思いますが、私的にはPDF出力はちょっとすげーと感動チック。

あ、でもこのプラグインをいれる為に、SIMBLEなるものが必要だったからそっちもいれたから、もしかしてそっちの機能だったりするのかも?

• • •

Twitter復活と夏ライオン投入

Twitter 全然使っていなかったんですけども復活してみました。
教えてもらったtwitthisを使って読んでいるページを記録してみるのにつかえるかなぁーと。
Safariでやってみたところ、Bookmarkletを使って画面がうまく表示できない(涙)
ログイン画面が出てきて入力した後にtwitthisのページにもどってしまう。

あれー?と思い、Twitterのページでログインしようとしてみたらこっちもログインできない。
およよ?
。。。原因はCookieがOffになっていたからでした。
Cookieを有効にしたら無事表示!

Twitter使うなら。。。ということで夏ライオンも入れてみました。

こんな感じの夏ライオン。かわいいです。
Glowlとの連携もかんりょー。
• • •