2009/12/30

金沢ウェブデザイナー忘年会に混ぜてもらった

ハッシュタグ #kz_wdbonen

@t32kさんの提案で行われた金沢ウェブデザイナー忘年会に、ディベロッパーな立場ですが混ぜてもらいました。
(ディベロッパー率1/16w)
以前、HTML5 TechTalkさせていただいたD社の方々と再会できそうだったのと、@vantさんとお会いしてHTML5の話ができそうだったので、twitterで「イイなー」とつぶやいたところ「どうぞ」みたいなノリで参加決定。
twitterの勢いって重要。

いつもはエンジニアの方々とばかり呑んでいるので、ウェブデザイナーの方々とお話できて新鮮でした。
男女比が半々になるのはウェブデザイナーの集まりだからこそ!エンジニアの集まりだと男女比は9:1ですもん。
プロジェクトで遭遇する問題や悩みはウェブデザイナーもディベロッパーも共通する部分が多いですね。
上から無茶な要求が降ってきたり、納期間近に仕様変更が発生したり。
職場の男女比が半々だったり、アイドルがいたりする点はうらやましいw

@vantさんとはHTML5の仕様や書籍、白石さん(@Shumpei)の話が出来て嬉しかったです。
HTML5の情報を日本語で提供してくれて、ありがたやーと感謝しています。
HTML5と言えば、2010年1月29日に金沢で「クラウドとAndroid/HTML5の最新情報」というセミナーがありますよ。
http://dgnet.isico.or.jp/etc/view.phtml?uk=00032922

総じて言うと2010年、石川県のWeb業界が盛り上がる可能性を感じる飲み会でした。
2010年はエンジニアのコミュニティと一緒に何かやりましょう!
参加者のみなさんありがとうございました。

2010年にはWCAIが結成されてるんだろうなー。
WCAF ・・・ Web Creators Association Fukui
WCAN ・・・ Web Creators Association Nagoya

参加者レポート
金沢ウェブデザイナー忘年会 - @t32k
http://warikiru.blogspot.com/2009/12/kanazawa-web-designers-year-end-party.html
金沢ウェブデザイナー忘年会 - @miki_arai
http://ameblo.jp/iblab-ma/entry-10422945750.html
金沢Webデザイナー忘年会に参加しました! - @takumi0605
http://www.soda-lab.sakura.ne.jp/blog/?p=69
今年最後の - @ohumi_FB
http://demdm.net/blog04/?p=35
金沢webデザイナー忘年会 - @in0in0
http://d.hatena.ne.jp/in0in0/20100102/1262463819

ちょっと話題に挙っていたので紹介しておくと、私の使っている小さい名刺はpocketerで作ったものです。ここ↓
http://pocketer.jp/

2009/12/13

shoito - ふりかえり2009

まだ、2009年は2週間くらい残っていますが、北陸エンジニアグループのふりかえりをしたので、私自身の活動についてもふりかえってみました。
まずは、毎週のように土曜日にいなかったり、平日の夜も発表資料を作ったり、プログラミングをしている私を広い心で許してくれていたパートナーに心底感謝します。
ありがとう!

今年をふりかえってみると勉強会/イベントへの参加、運営協力、主催させていただいたりと結構な数ありました。
北陸のコミュニティ活動はだいぶ活発になってきたので、これでも取捨選択はしているつもりです...

今年の活動を通して、私にとって大きな効用が3つありました。

まずは、Flex勉強会をFxUG北陸で継続的に活動を行ってきたおかげで、@coelacanth & @hikaruworldと協力して、Adobe Developer Connectionに記事を書き、アプリケーションを作り、Adobe AIR Dayでセッションを担当することにつながったことです。
それはさらに、FxUG(Flex User Group)の全国の運営メンバーと一同に会し熱く語らうことにもつながりました。
Flex勉強会は2010年早々、100回目を迎えるので、是非FxUG全体で何か面白いことをやりたいものです。

そして2つ目は「世界有数の勉強会(遺産的な意味で) 〜Hokuriku.lang出張編〜」を主催し、「分かった気になるHTML5 〜開発者の視点から〜」のセッションを行ったおかげで、コミュニティを脱し、他社に招いていただきTechTalkができたことです。
いつもはIT技術者向けに話すのですが、ここではWebデザイナーさん達を対象に話をさせていただきました。
このようにコミュニティを脱し、他社の勉強会で話をする、そういった活動を今後もみんなで続けていきたいですね。
ちなみに、3月くらいに予定しているWCAF(Web Creators Association Fukui)に招待いただき、改善版のセッションを行う予定です。

平日夜に金沢でHTML5 TechTalkやってきたよ
http://blog.air-life.net/2009/10/html5-techtalk-in-kanazawa.html

3つ目は、コミュニティ活動を通じて、会社を超えた仲間が出来たことです。
コミュニティ活動で知り合っているため、年齢(入社年度)による上下関係はありません。
各メンバーが携わっている仕事も違いますし、注目している技術も違います。
そんなメンバーでも北陸に関係あること(在住/出身/興味)、自身のレベルアップ、楽しみたい...等々の理由から、束縛し合わず、ゆる〜くつながっています。
今後もこの良い意味でのゆるさを保ち続けたいですね。

-----
2009年の社外でのスピーカー回数は11回でした。
以下にリストアップしておきます。一部、SlideShareにアップロードしていなかったり、資料を使い回しているイベントもあります。

D&D Mashup Framework Durango
2/21(土) Flex勉強会60回@北陸


RIA百花繚乱
4/25(土) Flex勉強会66回@北陸


Eclipse4SLでSilverlight開発 〜Macユーザーですけど何か?〜
7/18(土) Windows7 コミュニティ勉強会 with Tech Fielders北陸編


北陸エンジニアグループ紹介
8/1(土)FITEA定期勉強会


ディベロッパーへデザインのススメ
9/12(土) Flex勉強会79回@北陸


分かった気になるHTML5 〜開発者の視点から〜
10/3(土) 世界有数の勉強会(遺産的な意味で) 〜Hokuriku.lang出張編〜


分かった気になるHTML5 〜開発者の視点から〜 for Webデザイナー
10/7(水) @t32k & @coelacanth の働く会社で出張TechTalk


スティーブ・バルマーに会いにMDF09に行ってきた
11/14(土) Hokuriku.NET


Adobe AIR 2.0 - AIR Day miniセッション
11/21(土) Flex勉強会第87回@北陸


SORAAIとAIR 2.0 新API
11/26(土) Adobe AIR 2.0 beta公開プレス発表


SORAAIとAIR 2.0 新API
11/26(土) Adobe AIR Day

2009/12/12

今年のコミュニティ活動をふりかえってきたよ - 北陸エンジニアグループ2009ふりかえり

今年から集まり始まったゆる〜いコミュニティ、北陸エンジニアグループ。
北陸三県、石川、富山、福井のIT技術者(ON/OFF)が各々の興味をテーマに勉強会を開催してきました。
Flex勉強会(FxUG)、Hokuriku.rb、Hokuriku.scala、世界有数の勉強会(遺産的な意味で) - Hokuriku.lang、Hokuriku.NET...etc。

Twitterで北陸エンジニアグループのメンバーが @kussy_y さんを誘ったところ快く参加してくださり、ふりかえりのファシリテートもしてくれました。
世界有数の勉強会では、@mizukurage さんが来てくれましたし、東京からのゲスト(スピーカー/ファシリテーター)では女性が多いようですね。
(といってもゲストの女性はまだ2人だけ・・・)

ふりかえりのスタイルとしては7人程度の3グループに分かれタイムラインで行いました(写真を撮っておけば良かった)。
1. 今年1年で開催された勉強会/イベントをみんなで付箋に書き、タイムライン上に列挙
2. 1で列挙したイベントに関して、その影響、感情を列挙
3. 2に関して、グループ内でディスカッション
4. 2に関して、他の人のモノを褒めちぎる
5. 今後、どうしていきたいかディスカッション
6. 各グループが発表
だいたいこのような進め方だったと思います。
ふりかえってみると今年は余裕で20以上の勉強会/イベントを行っていました。
確かに、勉強会ラッシュ時は毎週末、北陸の各地で勉強会が行われていたものです。

皆でディスカッションしていた中で気になったのは「勉強会の参加申し込み方法による参加障壁の高さについて」。
どういうことかと言いますと、勉強会/イベントへの参加に馴れていない、または初参加の方にとっては、
参加申し込み/キャンセルが簡単に出来る事は重要であり、そうでない場合、申し込み時にとても勇気がいるようです。
その点、ATNDはとても有効らしく、Flex勉強会(FxUG)について言えば、Wiki上での申し込みを止め、ATNDに移行したことをキッカケに参加してくれたという人がいるほどです。
主催側は出席者リストを出力できたり、申し込み人数を把握しやすかったりという理由でATNDに移行していたのですが、このような副作用があったとは知りませんでした。

全体で今後力を入れていこうとなったのは「告知活動」です。
北陸エンジニアグループは今年出来たばかりであり、まだまだ知名度が低く、またGoogleグループ参加者も多いとは言えません。
勉強会開催の告知はGoogleグループのML、Twitter、ブログ上をメインに行ってきましたが、何れかに気付かなければ勉強会/イベントに参加していただけません。
この辺は、メンバー自身の知名度を上げる(Twitter、ブログのフォロワーを増やす)、コミュニティや企業と連携する、記事を書く(グループ名付けて)などして徐々に解決していければなと勝手に思ってます。

他にも、ふりかえりを通して気付いたこと、考えさせられたことは多々あるのですがこれくらいに。
@kussy_y さんのファシリテートのおかげでふりかえりを円滑に進められたと思います。
参加/運営してくれた皆に感謝。
#hokueng

2009/11/27

Adobe AIR Dayレポート - SORAAIセッションやってきた

2009/11/26に開催されたAdobe AIR Dayにてセッションを担当&参加させていただいたので、そのイベントの報告です。


公式サイト
http://www.info-event.jp/adobe/air/

AIR Day関連レポートのはてブ
http://b.hatena.ne.jp/shoito/AIRDAY

AIR Dayでセッションを行うことになった理由
 Flex勉強会@北陸(金沢)にて、Adobeの轟さんから「AIR 2.0を使ったサンプルアプリケーションの開発と記事の執筆をしませんか?」とお話を頂いたのがキッカケです。
 FxUG北陸は他の地域と違っていて、北陸3県のそれぞれに主催者がいて活動を行っています(対外的には北陸代表が私となっています)。この背景には、北陸の各県だけで閉じて活動を行ってはメンバーが集まらないのではないか?という北陸の勉強会事情があります。せっかく頂いたお話なので、私1人でやらずに3人で協力した方が面白いものができるだろうと協力を仰いだのでした。

Adobe AIR Day
 会場のネットワークの都合上、イベントのUstはなかったのですが、MineAPさんがAIR Day中のtwitter上での発言をまとめてくれているので、そちらも見ると雰囲気が少しでも分かると思います。
 イベント公式ハッシュタグ #AIRDAY

 <開催プログラム>
 1. AIR 2.0がどんなテクノロジーなのか、1.xから2.0でどう変わるのかを解説 by Adobe 轟さん
 2. 我々が実際にAIR 2.0を使用して開発したサンプルアプリケーションの紹介とAIR 2.0 新APIの使用方法、Tipsを解説。
 ・airPort by 宮田さん
 ・CommOn AIR by 有川さん
 ・Touch Viewer by 廣畑さん
 ・SORAAI by 伊藤(私)、盛川さん、西村さん
 ・VoiceLauncher by 山本さん
 3. AIRコンテスト優勝作品 ブログパーツデスクトップの紹介 by quq.jp 飯田さん
 4. Q & A - 轟さん、Flash Playerチーム

 ここで紹介したサンプルアプリケーションに関しては全てAdobe AIRデベロッパーセンターに記事が掲載されています。
 全てのアプリケーションのインストーラー&ソースコードがダウンロード可能ですので、興味のあるものがあれば是非ご覧ください。
 http://www.adobe.com/jp/devnet/air/

AIR 2.0プレス説明会
 Adobeがプレス関係者を招いてAIR 2.0を解説するイベントをAIR Day前に行いました。
 プレス関係者の方々が既に記事を書いてくださってるので、そちらも是非ご覧ください。

 <アジェンダ>
 1. AIR 2.0がどんなテクノロジーなのか、1.xから2.0でどう変わるのかを詳説 by Adobe 轟さん
 2. 我々が実際にAIR 2.0を使用して開発したサンプルアプリケーションを紹介(AIR Dayよりも短く1人5分程度で簡潔に)
 ・airPort by 宮田さん
 ・VoiceLauncher by 山本さん
 ・CommOn AIR by 有川さん
 ・SORAAI by 伊藤(私)
 3. AIRコンテスト優勝作品 ブログパーツデスクトップの紹介 by quq.jp 飯田さん

Flash Catalyst座談会
 Adobe AIR Day終了後、Flash Catalystのローカライズ担当チームと日本語ラベルの表記をどうすべきか自由闊達な意見交換を行いました。AdobeはFlash, Illustrator, Photoshop, ....と数えきれない程の製品を抱えているので、既存のAdobe製品とかけ離れないことが条件となり、ローカライズは大変だろうなと思います。しかし、既存のAdobe製品でも分かりにくい表記があるので、ラベルの改善、ユーザーインターフェースの改善などのフィードバックなども行われました。
 一方的なアンケートだけでなく、”製品を使用している”デザイナー/開発者を招いてその声を聞く、リアルタイムにコミュニケーションを取れるのでフィードバックを得る良い手段でしたね。是非、今回の声を少しでも反映していただきたいです。

懇親会
 全国のFxUG(Flex User Group)の代表者が集まるということで、東京のFxUGメンバーが懇親会を開いてくれました。仙台、東京、北陸、大阪のメンバーが集まり顔合わせ、情報共有、今後の活動、ON/OFFのことをワイワイがやがやと話し合う良い機会となりました。
 ちなみに会場の食べ物がすこぶる旨かった! ← taigaさんのおかげ

朝5時起きして福井から東京へ向かって十二分に満足できた1日でした。
ほんと楽しかったです!
イベントに関わったみなさんに感謝かんしゃです。

2009/11/17

11/21(Sat) Flex勉強会第87回@北陸(福井)やりますよー

11/21(土)PMに、FxUG(Flex User Group)87回目、北陸では5回目のFlex勉強会を開催します。

本日リリースされたAdobe AIR 2.0βとそれを使ったアプリケーション開発プロジェクト、Progression、Arduino・・・Flex/AIR, Flashをテーマにしています。
参加費は無料ですので、お気軽にご参加ください。
懇親会参加予定者の割合がほぼ100%と今回はちょっと異例w

11/26(木)に東京で開催されるAdobe AIR Day(#AIRDAY)で講演予定の内容もやっちゃいます。
http://www.info-event.jp/adobe/air/

<セッション内容>
「デザイナー視点のFlash制作。Progressionで作る、10分でできる画像スライドショー」 by @shirokuro331
「Flashでフィジカルコンピューティング的な何か」 by @itsuki_kosen
「某リモコン的な何か」 by @rch850
「ユーザーインターフェースの何か」 by @checkela
「Adobe AIR 2.0 - AIR Day miniセッション」 by @keisuke322(Adobe 轟さん), @shoito, @coelacanth, @hikaruworld
「(ショートセッション)」 by @katzchang

目的:北陸をもっともっと盛り上げていこう!
対象者:デベロッパー&デザイナー(Flash, ActionScript, Flex, Java, PHP, Rubyなど)
   Flex/AIR, ActionScirpt初心者
定員:25名程度

日時:11月21日(土) 14:30~
      受付:14:00~
場所:(株)サーフボード 1階会議室
住所:〒910-0842 福井県福井市開発2丁目614
最寄駅:えちぜん鉄道勝山永平寺線「越前開発駅」徒歩5分
地図:http://www.surfboard.jp/profile/map_fukui.asp
懇親会(お店): とり元 千乃夢 http://www.hotpepper.jp/strJ000349150/

参加費:無料
参加方法:ATNDで参加登録お願いします
http://atnd.org/events/1814

2009/10/08

平日夜に金沢でHTML5 TechTalkやってきたよ

背景はこの辺りを読んでいただきたい。
世界有数の勉強会(遺産的な意味で) - Hokuriku.lang 出張編 開催レポート
http://blog.air-life.net/2009/10/hokurikulang-shirakawago.html

ベンチャーとHTML5と台風と僕 by @t32k
http://warikiru.blogspot.com/2009/10/typhoon-and-html5-and-venture.html

Hokuriku.lang出張編のさらに出張編に参加しました by @coelacanth
http://blog.livedoor.jp/coelacanth_blog/archives/55310352.html

今回、機会をいただいたので @t32kさんと@coelacanthさんの会社でWebデザイナーさん達(20名程度)に小1時間ほど「分かった気になるHMTL5 ~開発者の視点から~ (Webデザイナー向けカスタマイズ版)」をお話してきたよ。
Hokuriku.lang出張編のさらに出張編ですw

いつもの北陸エンジニアグループの勉強会では参加者のほとんどがソフトウェア開発者なので、今回のようにオーディエンスがWebデザイナーさんだけ(@coelacanthさん除く)ってのは初のケース。
内容もJavaScriptのコードを見せて解説することがメインでは普段HTML + CSSオンリーな方からは反応が薄そうなので「HTML5のこれ使うと、こんなんできるぜー!」ってデモと「HTML5の××はこんな風に調べるとイイよ」というようなHTML5を始めるためのレールの端っこを提供するような内容にした。

反応が良好で「第2回もやりましょう」と言ってもらえたのが、とても嬉しい。
はてブコメントによると、次回はイケメン変態プログラマー@nagiseによる「一歩先行くプログラマのための正規表現」らしい。
きっと、「一歩先行くWebデザイナーのための正規表現」にカスタマイズしてTeckTalkしてくれるんだろうなー。

@coelacanthさんとこのはてブコメントにも書いたけど、今回のように平日夜に会社をまたいでTechTalkイベントを開けるような文化を築いていきたいですね。

福井-金沢間なんて高速かっ飛ばして1時間程度ですよ。
行ける行ける。

2009/10/06

世界有数の勉強会(遺産的な意味で) - Hokuriku.lang 出張編 開催レポート

世界有数の勉強会(遺産的な意味で) - Hokuriku.lang 出張編
Hokuriku.lang = Hokuriku.js × Hokuriku.rb × ...

http://atnd.org/events/1331

10月3日(土)に道の駅白川郷を会場に勉強会を開催しました。
今回はHokuriku.langというように、.js、.rbではなく技術を絞りこまず、スピーカーが各々違ったテーマを扱い1日で沢山の技術を味わえる勉強会にしました。
当初の予想では、参加者は北陸エンジニアグループのコアなメンバー+αで12、3人程度かなと予想していたのですが合計28名の参加となり嬉しい限り。
参加者の中には東京から来てくれた方もいたりと多謝です。

【セッションレポート】
「分かった気になるHTML5 ~開発者の視点から~」 by shoito

1時間弱でHTML5ってこんなことができるようになるぞと分かった気になってもらって、自発的に学ぼうとしたときに必要なリソースをいろいろとお見せすることにしました。
HTML5へのアンテナの土台作りを目的としたセッションで、狭義のHTML5、JavaScriptの拡張等の各種APIの解説、Adobe AIR、Flashネタを交えた内容に。

ちなみにセッション中に参加者にちょいちょい質問したのですが、全然手を挙げていただけず予想外な敗北感orz

当日は急遽タイムテーブルを大幅に変更せざるを得ず、午後から参加しHTML5ネタを聞きたかった方々(特にt32k氏)には申し訳ないことをしてしまいました。
というわけで、10/7(Wed)夜にt32k氏の会社へHTML5出張セッションをさせてもらいに行きます。
何やら話が膨らんで、一部署20名弱が参加してくれるらしい。予想外w

※追記 2009/10/08
ということでHTML5出張セッションをやってきました。参加レポート↓
ベンチャーとHTML5と台風と僕 by @t32k
http://warikiru.blogspot.com/2009/10/typhoon-and-html5-and-venture.html

Hokuriku.lang出張編のさらに出張編に参加しました by @coelacanth
http://blog.livedoor.jp/coelacanth_blog/archives/55310352.html


「今さら聞けないRuby 1.9」 by でむらなりかず(checkela)氏
Ruby 1.8から1.9でこんな風に変わったよ。
パフォーマンスが向上っぷりの測定結果等も紹介してくれました。
ほうほう。

会場に「Ruby使ってる人、手挙げてー?」と質問したところ、思ったよりいてくれてスピーカーのでむらさんもホッとしたのではなかろうか。

「タイトルなし(ファシリテーションに関するワークショップ)」 by kitamura氏
タイトルの無いワークショップw
参加者同士でペアを組んで自己紹介ゲームやインプロしたりと、ただ勉強会に参加しただけでは生まれない参加者同士のコミュニケーションがあり、エンジニアだけでなくデザイナーの方々にも楽しんでいただけたのではないでしょうか。
彼氏・彼女、家族、上司・部下の関係にも活かせる内容だったと思います。

主催者としては、参加者同士が楽しそうにワークショップをしている光景を見られて嬉しい限りでした。

「関数型×オブジェクト指向:マルチパラダイム言語Scalaの可能性」 by 羽生田 栄一 氏
北陸では前の週に、Hokuriku.scalaが開催されるなど、Scalaが熱くなってきたようです。
Scalaラブな羽生田さんにScalaのステキさを語っていただきました。
羽生田さんに教えていただけるとはScala好きには幸せな時間だったのではないでしょうか。

実は60分予定が80分へと延長されていたのですが、それでも全然足りないくらいでした。
続きはまた次の機会にお話して頂きたいところです。

[LT]
「Wikimedia Conference 開催のお知らせ」 by takot 氏

当日、twitterで3分LTやってもイイですか?と突発的に参加し、イベントの告知をしてくれました。

しかし、東京かー。

「今時のJava開発」 by nagise 氏
EclipseのJava開発環境の素晴らしさを見せつけてくれました。
流れるようなインターフェースで日本語文章を組み立ててるところが、私的にはツボでした。

「I ♡ Haskell」 by kabakiyo 氏
kabakiyo氏とHaskellの愛を彼氏・彼女の関係で赤裸々に語ってくれました。
Haskellの純粋さがどれだけ好きなのか。他のやつらは不純だと。

最後の最後に、「Haskellは私だけのモノではなく、みんなのモノです」と言ったら参加者からは「不純じゃん」とツッコミがw

「Flex4をさらっとのぞく」 by hikaruworld 氏
Flex4で何が新しくなるかを浅く広く短時間で紹介してくれました。
今はAdobe MAXで衝撃のニュースも飛び交っていますので、Adobe系技術もしっかりリサーチしときましょ。

「で、オブジェクト指向って結局なんなのよ?」 by katzchang 氏
参加者の前で、でむら氏がkatzchang氏に何度も何度も束縛されていました。
katzchangによるオブジェクト指向の定義:「オブジェクト指向とは、オブジェクトへの委譲の組み合わせでシステムを構築していく手法である」

「最後に」
羽生田さんが飛行機に乗り遅れてしまうという事件で、朝から冷や汗かいてましたが、
そこはkatzchang氏のお友達が小松空港へお迎えに行ってくれるという多謝により助けられました。

運営自体も、参加者が自発的にヘルプしてくれたこともあって何とかなりました。
参加&協力してくれた皆さん、ホントありがとうございました。
一緒にまた面白いことをやりましょう!


羽生田さんから次のようなメッセージをいただきました。
北陸の人のつながりの力に感銘いたしました。
また非常に充実した勉強会と白川郷・金沢の旅を経験でき
みなさまのホスピタリティに感謝感激です。

ぜひScalaが北陸地域でも盛んになるように今後もご協力させていただきますの
で、よろしくお願いいたします。
kitamura氏からは次のようなメッセージをいただきました。
すてきなロケーションでの機会を下さり、ありがとうございました。
みなさま、本当に好意的で積極的なよい方達ばかりで相当助けられました。
おかげで、貴重かつすてきな体験ができました。
また機会があれば是非!

2009/09/27

Flex SDK 3.4で遭遇したFocusManagerのバグ

Flex SDK 3.4でビルドするようになってからTabキーでフォーカスを移動した際に、以下のようなエラーが出る事はありませんか?
Flash Playerのデバッグ版でしか表示されないエラーなので、気付いていないかもしれません。
私はTabキーでフォーカスを移動し、画面上のコンポーネントを一周し、defaultButtonに指定したコンポーネントにフォーカスが合わさろうとした際に、このエラーに遭遇しました。
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at mx.managers::FocusManager/focusInHandler()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\FocusManager.as:601] at flash.display::Stage/set focus() at mx.core::UITextField/setFocus()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\UITextField.as:1525] at mx.controls::TextInput/setFocus()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\controls\TextInput.as:1832] at mx.managers::FocusManager/setFocus()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\FocusManager.as:553] at mx.managers::FocusManager/setFocusToComponent()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\FocusManager.as:1293] at mx.managers::FocusManager/setFocusToNextObject()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\FocusManager.as:1263] at mx.managers::FocusManager/keyFocusChangeHandler()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\FocusManager.as:1758]
どうやらこれはFlex SDK 3.4のバグで、3.5ではFixされているようです。
バグレポートはこちらにあります(タイトルにはLiveCycleとありますがLiveCycle限定というわけではありません)。
[#SDK-21780] FocusManager RTE in defaultButton scenario. was: Navigating around LiveCycle Workspace results in an ActionScript null pointer error
https://bugs.adobe.com/jira/browse/SDK-21780

バグレポートに合った再現プログラムをシンプルにしたものがこちら。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
    <mx:VBox id="boo" defaultButton="{goo}" >
        <mx:Button id="goo" />
        <mx:Button id="foo" />
    </mx:VBox>
    <mx:VBox id="bee" >
        <mx:Button />
        <mx:Button />
    </mx:VBox>
    <mx:TextInput />
</mx:Application>

バグ回避コードがこちら。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" defaultButton="{goo}" >
    <mx:VBox id="boo">
        <mx:Button id="goo" />
        <mx:Button id="foo" />
    </mx:VBox>
    <mx:VBox id="bee" >
        <mx:Button />
        <mx:Button />
    </mx:VBox>
    <mx:TextInput />
</mx:Application>
defaultButtonの指定位置が変わったことにお気付きでしょうか?
Flex SDK 3.5がリリースされるまでは、このようにして問題を回避できるようですよ。
私の環境ではこの手段で回避できました。
類似の現象に遭遇した方、ご確認ください。

2009/09/19

生物として当たり前の光景

久しぶりに弱肉強食、食う食われるの関係を目の当たりにした。
生物として当たり前の光景なのだけれど、大人になってからはめっきり意識しないようになってしまっていたので、それは新鮮であった。

甥っ子は捕まえたカマキリとバッタを何の気無しに同じ入れ物に入れてしまった。
それが4歳児にとって衝撃の光景の始まりとなった。

はじめ、カマキリは空腹ではなかったためかバッタがテリトリーに入っていても何もなかった。
これが人間とその他の生物の「美味しそうな物が目の前にあるから味見してみる」/「生きるために必要な時に必要な分だけを食す」の違いなのだろう。

甥っ子と私は「カマキリのお腹おっきいーねー。卵入ってるのかな?それともハリガネムシって寄生虫が入ってるのかな?」などと和やかに談笑していた。
そんな談笑をしている最中、突如バッタの動きが激しくなった。

どうやらバッタはカマキリから逃げたがっているようだった。
きっと、捕食活動開始の合図があったのだろう。

甥っ子がカマキリとバッタを入れた入れ物にはしっかりと蓋がされており逃げ場はない。
この時点で、バッタはバキ(格闘マンガ)と違ってカマキリに勝てるはずがないのだから結末は目に見えていた。
http://yabou.web.infoseek.co.jp/diary/hanpera/baki-2.htm
カマキリはバッタを逃がすまいと鋭いカマで鷲掴みし、動きを止めるため首根っこから・・・。

甥っ子もはじめは口をポカーンとさせていたようだけれど、上下左右全ての角度から捕食を観察し食物連鎖に関して学習していた。
どれだけ記憶に残るかはわからないけれど、後々、何らかの本の活字から何となく想像し学ぶより、目の前で実際の光景を見て学ぶ方が数十倍役に立つだろう。

カマキリとバッタを同じ入れ物に入れた時点でこうなることは分かっていたけれど、甥っ子にとって素晴らしい経験ができるだろうと一部始終を見守っていたのだった。

自然に触れ合うとは「緑に溢れた空間に居る」というだけでなく動植物、虫たちの活動を観察することも是非オススメしたい。
きっと、こういった自然の生業を目にすることは仕事をする上でもアイデアを閃くための栄養になるんだろうと思う。

2009/09/15

世界有数の勉強会(遺産的な意味で) - Hokuriku.lang出張編のご案内

世界遺産の白川郷で開催する勉強会のお知らせです。
はじめはネタのつもりでしたが本気と書いてマジでやります。

スピーカーが各々違ったテーマを扱うので、一日で沢山の技術を味わえるはず。
詳しくは以下の案内をご参照ください。

<タイトル>
世界有数の勉強会(遺産的な意味で) - Hokuriku.lang 出張編
Hokuriku.lang = Hokuriku.js × Hokuriku.rb × ...

<参加募集ページ>
http://atnd.org/events/1331

<概要>
今回は北陸のお隣り、岐阜県白川郷で勉強会を開催します。

内容は特にテーマを絞らず、さまざまな言語や技術についての
セッションを行います。言語や技術を問いません。
現時点では、HTML5, JavaScript, Ruby, Scala, Haskellについて
セッションで扱うことが決まっています。

世界遺産に指定されている白川郷荻町地区とも近いので、家族で
白川郷まで来て、パパ or ママは勉強会、もう一方は子供達と
白川郷をゆっくり散策という家族に優しい勉強会となっています。
今まで後ろめたい気持ちで参加していた方も、今回は家族サービスできます。

途中入場、途中退場可能です。勉強会に参加したいが家族サービスもしたい方、
その日たまたま白川郷に用事がある方など、気軽にご参加ください。

日時: 2009/10/03(土) 10:30~16:00
定員: 40 人
会場: 白川村総合文化交流施設 (道の駅 白川郷内) - 写真はこちら
道の駅白川郷 案内図
住所: 〒501-5625 岐阜県大野郡白川村飯島411 地図
駐車場: 道の駅白川郷 駐車場
参加費: 無料
ネットワーク: 無線LAN有り
電源: 延長ケーブル&電源タップはご持参ください
主催: 北陸エンジニアグループ

<開催プログラム>
下記の枠は仮のものですので、変更される可能性がございます。
最新の情報は"こちら"をご覧ください。

10:00 - 10:30 設営&会場 (準備協力お願いします)
10:30 - 11:30 「(仮)マルチパラダイム言語Scalaを語る」
         豆蔵ソフト工学ラボ所長 羽生田栄一

11:30 - 12:30 昼休み(混雑を避ける意味でちょっと早め)

12:30 - 13:15 「分かった気になるHTML5 ~開発者の視点から~」
         shoito
13:25 - 14:10 「今さら聞けないRuby 1.9」
         でむらなりかず(checkela) 氏
14:20 - 15:05 「(仮)チーム力 or PFをワークショップから学ぶ」
         kitamura 氏

15:20 - 15:30 LT1 未定 nagise
15:30 - 15:40 LT2 Haskellで何か kabakiyo
15:40 - 15:50 LT3 未定 hikaruworld
15:50 - 16:00 LT4 で、オブジェクト指向って結局なんなのよ? katzchang
16:00 - 16:30 後片付け (撤収協力お願いします)

勉強会に関してご連絡のある方は sho.ito at air-life.net にメールを送るか、
twitterで @shoito にreplyをお願いいたします。

<北陸エンジニアグループの紹介>
石川、富山、福井の北陸三県で活動しているITエンジニア達による有志のグループです。
主に、GoogleグループのML&twitterで交流をはかり、各種プログラミング言語、フレームワーク、開発プロセス等の勉強会を北陸三県の各地で開催しています。

twitter上でセッション内容に関して裏勉強会が実施されていたり、勉強会当日に突如事前ランチ会が行われるという面白い特徴があります。
勉強会を120%楽しんでいるグループだと思いますよ。

北陸三県で開催される勉強会に興味のある方はお気軽に北陸エンジニアグループMLにご参加ください。
http://groups.google.co.jp/group/hokuriku_engineer

2009/09/13

Flex勉強会第79回@北陸(石川)やったど

昨日、Flex勉強会第79回@北陸(石川)を開催しました。
Flex勉強会はFxUG(Flex User Group)という有志たちによる勉強会です。
北陸では、石川、福井、富山と開催地を移し、今回は2週目に入り北陸では4回目の開催となりました。

今回はスピーカー候補者がいっぱいいたので、発表しなくてイイかなと思っていたらLTはやることになってました。
気付いたのは発表の一週間前...orz

【セッションレポート】
「Flash Catalyst + Flash Builder 4」轟さん(Adobe)
Flash Catalystの最新版でデモを見せていただきました。
プレリリースプログラムでも公開されていないNightly Build版でのデモ、「パーツ不足」という意味不明なエラーメッセージが出たりとハラハラどきどき。
ノンコーディングで複数ステート+トランジション付きのアプリが作るデモは「スゲー!」と思わされます。
「こんなイメージでイイですか?」ってモックアップを作って確認しながら開発を進められそう。
ペーパープロトタイプじゃ、エフェクトとかわからないですしね。

そうそう。アプリ落ち、OS落ちじゃなくて、プロジェクタ落ちという事件が発生しました。
初遭遇w

「 FlexMonkey + Flex Automation APIの紹介」 hikaruworldさん
前回の勉強会で時間等の都合で話せなかったFlexMonkeyをメインに、Flex Automation APIを加えたセッションでした。
FlexMonkeyでユーザー操作を記録してテストできるのはイイねーと思うディベロッパー達。
一方、FlexMonkey?FlexUnit?Mixin?Flex Automation API?ときょとんとするデザイナー達。
私はFlex Automation APIをちょっと資料を読んだ程度で、触ってはいなかったので興味津々でした。
この辺を上手に使う工夫をするとテストがもっと楽しくなるのでしょうね。

「 Flexで作るおされビンゴアプリ」 katzchangさん
北陸初開催の際に、轟さんより頂いたFlex Builder Professionalを利用してお洒落なビンゴアプリの開発を紹介してくれました。
独りアジャイルプロセスで開発をススメ、各イテレーション毎について成果物をデモ+ふりかえりの内容を話すという面白いスタイル。
katzchangらしく笑いが豊富なプレゼンでした。

交流会のビンゴ大会では、このおされビンゴアプリ(Flex)のおかげで大盛り上がり。
おされの部分を強化するイテレーションが今後実施されるとみんな信じています。

「 Silverlight入門」 hr_saoさん
Silverlightを囲む会よりゲスト参加してくれました。
Flex勉強会であり、Silverlightを触ったことのある人が少なかったので入門的な内容を。
開発環境のスライドの中に、Eclipse4SLのことが載っていて、一瞬テンションがあがりましたw

全然関係ないけど、会場ではhr_saoさんと轟さんのファッションがイケてました。
イベントへ行くとこっそりファッションチェックをしています。

「 FlashとSilverlightの配信事情 〜DynamicStreaming+SmoothStreaming入門〜」 coelacanthさん
動画配信のお話で、自動的にスムージングしてくれるデモをしてくれました。
IISって、「アイアイエス」って発音するんですね。
Iが2つ並んでいるから、勝手に「アイツーエス」と発音してました。

[LT]
「WebGLについて」 rch850さん
WebGL、OpenGLなお話。
rch850さんは情報の少ないイバラの道を好むという特性に気付きました。

「Android + JavaScript」 checkelaさん
Androidだぜ!Flash載るぜ!きっと。
会場の無線LANにAndroidがつながらなくて、準備が大変そうだった、、、という裏話。

「ディベロッパーへデザインのススメ」 shoito
ディベロッパーはデザインを苦手とせずに、もっとテクノロジー以外にもアンテナはろうぜ!
デザインって人間にもソフトウェア/サイトにとっても重要な要素ですよ、というお話。

「最後に」
交流会で本をGetされた方は次回、次々会あたりにスピーカーをやってくれることになったので、
新たなスピーカーの確保ができそうです。
参加してくれた方、運営&協力してくれた方、皆さんありがとうございました。

次はこちらでお会いしましょう。
世界有数の勉強会(遺産的な意味で) - Hokuriku.lang 出張編
http://atnd.org/events/1331

2009/09/09

比較 - 9つのJavaScriptフレームワーク

この記事は有名なJavaScriptフレームワークを良くまとめ、比較できるように上手く見せてくれる。

JavaScript Framework Matrix
http://matthiasschuetz.com/javascript-framework-matrix/en/

比較対象は、jQuery, MooTools, Dojo, Prototype, Script.aculo.us, Ext JS, Spry, Glow, Yahoo! UI Libraryと多岐に渡る。
さらに、これらはGeneral, DOM Ready, DOM Basics, ....と項目毎に分かれ、コードレベルで一覧できるのだ。



最近、CMSのJoomla!に触る機会があるのだが、それにはMooToolsが組み込まれている。
個人的にこの記事はタイムリーな内容なので紹介した。

2009/08/29

Flash Player 10.0.30.18のインストールがスムーズに(Chrome限定)

Flash Player 10.0.30.18をWindows Vista + Google Chrome環境にインストールした際に、何か違和感があったのですが、その時にはそれが何なのか気付いていませんでした。

下記の件について調べるために、Flash Player 10 リリースノートを見ていて、違和感がなんだったのかわかりました。

FlexのテキストコントロールにIMEでインライン入力不可 〜経過2〜
http://blog.air-life.net/2009/08/flash-player-10-ime.html

Flash Player 10 Release Notes
http://www.adobe.com/support/documentation/en/flashplayer/10/Flash_Player_10_Release_Notes.pdf

リリースノートの9/14ページに修正点の1つとして記載されているのですが、Google Chromeでは、Flash Playerのインストール時にブラウザのプロセスを終了させておく必要がなくなったのです。
小さいけど、ステキな改善!インストールがこれでさらに楽になりましたね。
こういった小さな改善をコツコツと続けてもらえると応援を続けたくなります。
Google Chrome で、ブラウザーを閉じることなくプラグインをインストールできるように、プラグインインスト ーラーを拡張します。(2310185)
Fixと言えば、wmode="transparent"を指定した際に日本語入力ができなくなってしまう下記の問題解決を強く強く望んでいます。

Cannot type non-English/foreign characters in Flex app when wmode set to 'opaque' or 'transparent'
http://bugs.adobe.com/jira/browse/FP-1877

2009/08/28

FlexのテキストコントロールにIMEでインライン入力不可 〜経過2〜

Windows Vista, XP + Flash Player 10環境で、FlexのTextInput, TextArea, ComboBox(editable), RichTextEditorコントロールにIMEによる日本語入力でインライン入力ができない現象に遭遇していたんだけれど、Flash Player 10.0.30.18で一部Fixされていました。
Flexではなく、Flash Playerの問題だったらしくJIRAで経過をチェックできず、気付くのが遅れました。

なお、この問題の再現方法としては2つありまして、修正されていることに気がついたのは下記のケース2に関してです。
ケース1はまだFixされていないようですので、チェックを継続していきます。

ケース1
テキストコントロール、またはその親コンテナのプロパティalphaに1未満の値、例えば0.99を設定し、Flash Player 10以降をターゲットとしてビルドした場合。

ケース2
テキストコントロールのプロパティwidthに親コンテナより大きな値を設定し、Flash Player 10以降をターゲットとしてビルドした場合。

FlexのテキストコントロールにIMEでインライン入力不可
http://blog.air-life.net/2008/12/ime.html

FlexのテキストコントロールにIMEでインライン入力不可 〜その2〜
http://blog.air-life.net/2008/12/flexime-2.html

FlexのテキストコントロールにIMEでインライン入力不可 〜経過1〜
http://blog.air-life.net/2009/01/flexime-1.html

2009/08/25

Mac OS X 10.6 Snow Leopardの予約 - 3,300円(送料込み)

一部ネット上での噂通り、Mac OS X 10.6 Snow Leopardの発売は8/28に前倒しになったようですね。
今現在はApple Storeで予約購入ができますよ。
3,300円で送料込みとは大分安い!
http://store.apple.com/jp/product/MAC_OS_X_SNGL

19時くらいに、Apple StoreがWe'll be back soonという表示になっていて、これはSnow Leopardのリリースに関係してるのかな?
と何となく疑ってみたら、嬉しい事にその通りだったみたいです。

8/28以降のSnow Leopardの到着が楽しみです。
ワクワク。

2009/08/24

HGに対する各方面の認識

大半の人には、どこへ行ったかレイザーラモンHG
編集者には、リコーのHGフォント
化学者には、原子番号80の水銀(ハイドリウム)
鉄っちゃんには、KATO, TOMIXのNゲージシリーズ
プログラマには、分散型リポジトリのMercurial

私の認識は最後のMercurial。

2009/08/17

燃焼/勉強会の三要素

過去に取得していた危険物取扱者のライセンスを見て、ふと思いついたことのメモ。
「燃焼の三要素」のそれぞれの要素を、勉強会開催のための要素(勉強会の三要素と定義)とマッピングしてみました。

燃焼の三要素
1. 可燃物(可燃性物質、有機化合物)
2. 酸素供給源(支燃物、空気、酸素、酸化性物質)
3. 点火源(熱源、火気、酸化熱)

勉強会の三要素
1. 参加者/協力者
2. ネタ
3. 言い出しっぺ

思いつきなので、マッピングに無理があるかもしれないけどメモとして載せておきます。

2009/08/14

HTML5, XHTML2, HTML4, XHTML1の関係を理解するには

HTML5, XHTML2, HTML4, XHTML1の関係について知りたいときは、まずこれを読もう。
とても読み易い訳になってます。オススメ。

「異なる技術に、同じような名前がついていたのが問題」 ← うんうん。

日本語 - (株)ミツエーリンクス訳
http://standards.mitsue.co.jp/resources/mm_comic/

原文
http://www.smashingmagazine.com/2009/07/29/misunderstanding-markup-xhtml-2-comic-strip/

ソース
html5-developers-jp - コミックで学ぶ HTML5
http://groups.google.co.jp/group/html5-developers-jp/browse_thread/thread/eb2978b85cf690b8

2009/08/09

9/12(Sat) Flex勉強会第79回@北陸(石川)やりますよー

北陸では4回目、ついに2周目に突入となるFlex User Group(FxUG)の勉強会を9/12(土)に金沢で開催します。
隔月ペースで石川、福井、富山と会場を移しながら行っていますので、9/12は無理 or 遠くて行けない、という方も次、または次の次にでも是非ご参加ください。
ちなみに、次は福井で11月か12月に開催する予定です。

今回はFlex(Flash)に限定せず、Silverlight, JavaFX, JavaScript等、RIA(Rich Internet Application)技術を広く扱う予定です。
あ、スピーカーの立候補があればの話ですが・・・。
今のところはFlex(Flash)、Silverlightは確定しています。

なお、今回はAdobe Systemsから轟さんがいらっしゃって、「Flash Catalyst + Flash Builder 4(仮)」のセッションを担当してくれます。
直接、質問をぶつけるイイ機会だと思いますよ。

日時:9月12日(土) 13:30〜
会場:ITビジネスプラザ武蔵
   http://www.bp-musashi.jp/guide/about/index.html
   地図はこちら
住所;〒920-0855 石川県金沢市武蔵町14番31号

参加受付:オーディエンス、懇親会、スピーカー、LTの参加を次のページで宣言してください。
http://www.fxug.net/modules/bwiki/index.php?Flex3%CA%D9%B6%AF%B2%F1%C2%E879%B2%F3%A1%F7%CB%CC%CE%A6%28%C0%D0%C0%EE%29%BB%B2%B2%C3%BC%F5%C9%D5

2009/08/04

夏休みだ!いざ!面白法人カヤック訪問だ!

面白法人カヤックの設立記念日に当たる8月3日、@checkelaさんと一緒にカヤックさんを訪問してきましたよー。

twitterで「Kayac行ってみたい」「 ミートゥー」的なノリで決まった今回の訪問。
やっぱり願いを表現することは、それを実現するための重要なアクションなんだと実感。

噂の閃考会議室に招かれて、うっひゃーという気分のまま玉田さん、村瀬さん(@typester)、@checkelaさんと4人で小1時間ほど、カヤックがどんなところか、どんなサービス(babooo, wonderfl, 今日の緑さん...etc)を世に出しているか、北陸の勉強会(FxUG北陸, Android等)、@tomohiro555のこと等々、お話させていただきました。

この会話の中で出た「サイコロ給のような制度だけ移植しても意味がない。カヤックは人で出来ている。」といったニュアンスの言葉が印象に残っています。
機会があればカヤックのブレスト(ブレインストーミング)っぷりを是非とも生で見てみたいです。

それと、北陸の勉強会とカヤックで何かコラボレーションできることがあったら是非!というお話もいただけたので、面白いことを何か一緒にできないかグループのメンバーと妄想を膨らませてみます。

快く私たちの訪問を受け入れてくれた玉田さん、村瀬さん、面白法人カヤックには感謝!
ありがとうございました。私にとって大きな価値があると思います。

9/4(金)に、面白法人カヤック柳澤さんが福井へ来てくださるんですね。
交流会もあるみたいですし、是非行こう!
http://www.fisc.jp/genki/genki-web/2009/seminar/

カヤック訪問記 〜@checkelaさん〜
http://blog.cnu.jp/2009/08/04/kayac/

2009/07/19

Windows 7 コミュニティ勉強会 with Tech Fielders 北陸編へ行ってきた

7/18(Sat)に石川県金沢市で開催された「Windows 7 コミュニティ勉強会 with Tech Fielders 北陸編」(Hash Tag #cltj2009)に参加してきました。
今回の準備・運営は@tomohn(MS), @haramizu(MS), @coelacanthが仕切ってくれたので、聴講+LT発表のみの形となります。

ちなみに「Windows 7 コミュニティ勉強会 with Tech Fielders」は北海道編、東京編、北陸編、関西編、中国編というように、全国各地でコミュニティ主体(?)で行われています。
なぜか北陸編のページは開催日当日以降消えてしまっていますorz
http://www.microsoft.com/japan/powerpro/TF/technology/windows7/default.mspx

【セッションレポート】
「開催挨拶」 @haramizuさん
今日はよろしく+今月マイクロソフト北陸支店無くなっちゃったよ、という驚愕の事実が伝えられイベントがスタート。
はは。笑うっきゃないですw

「開発×業務×生活の可能性を広げるプラットフォーム Windows 7 紹介」@tomohnさん
現在RC版提供中のWindows 7について、その進化っぷりを10数項目紹介してくれました。
互換性、仮想化に関して興味深かったのは、「XPモード」が実はVirtual PCの技術が使われている(というかVirtual PCが立ち上がって、その中のXP上でアプリが動く?)という点です。なお、XPモードはHome系のエディションでは対応しない予定(あくまで予定)らしいです。
同様のことが私がMac OS Xで使用しているVMWare Fusionでも実現されているので、これをMacでは「XPモード」曰く、もっと広く「WIndowsモード」と言ってもイイのではないかと思いました。

あとはHyper-Vを利用するVHD(Virtual Hard Disk)の機能が便利そうだと感じましたね。
ちなみにWindows 7の内部バージョン番号は「6.1」であり、Windows Vistaが「6.0」なので、実はマイナーバージョンアップみたいw

Windows 7に関係ないネタとしては、「普段はMacBook使ってます。」という発言で、会場の大半を占めていたであろうMacユーザーの方々と一気に距離が近づいたのではないでしょうか。
少なくとも私はあの発言で、「あ、ここって実はAwayじゃなくて、Homeじゃね?」と思いました。

「コミュニティVisual Studio 2010 と C# 4.0/.NET Framework 4.0 ~Windows 7 時代の開発環境~」@Fujiwoさん
Visual Studio 2010 と C# 4.0について、それぞれについて紹介後、具体的にコードを交えたデモをしてくれました。
並列プログラミングの解説の中に出てきた、PLINQのAsParallelが便利そうです。

Visual Studio 2010に関して、Eclipseユーザーとしては、Visual Studioが徐々に近づいてきたぞーという印象。
Visual Studioもいろいろと拡張できるようなので、是非Eclipseのような変態IDEになって欲しいです。

そうそう、やはりFujiwoさんはプレゼンが上手い!
上手いだけじゃなくて、笑いもしっかり取りますし、そのプレゼンっぷり憧れます。

「機能が拡張された Windows 7 でスムーズな操作をする方法」@ramu_mysteryさん
スゴい!
知らないショートカットキーだらけでした。

参加者の大半は開発者だったようですが、ramu_mysteryさんはユーザー側のお立場からWindows 7の操作法を解説してくれました。
ショートカットキーを知っていると知らないでは、作業スピードが遥かに違うので、重要性を再認識させられます。

ramu_mysteryさんは「農家の嫁」らしく、その点に「酪農家の息子」の私は近しいものを感じましたw

「現在のCOM事情」@checkelaさん
ディープなWindowsプログラミングをしてこなかった私でも、このセッションのディープっぷりは分かりました。
現在はCOMサーバーを作ることはないだろうけど、提供されているのがCOMサーバーだけってことが今でもあるので、COMクライアントは作ることがあるよ。メモリの解放はちゃんとせーよ。と。
Javaユーザーな私は「POI」が登場した時には「KITA!」と食い付きました。

そうそう、「大事な点は繰り返して言う」
これは直後のLTで実践させてもらいましたよ。「Mac」「Mac」とw

[コミュニティライトニングトークス]
「Eclipse4SLでSilverlight開発 〜Macユーザーですけど何か?〜」 @shoito
「C#からIronRubyを使ってみよう!」@kabakiyoさん
「Webスライスから始めるmicroformats」@t32kさん
「PHP on IIS」 @tomohiro555さん
「Powershellで私的降雪通知システムを作る」 @seven777さん
「Windows7とMacOSX、でどっちがいいの?」 @hikaruworldさん
「高DPI」@nagiseさん

ライトニングトークスでは、半数以上がMacユーザー、そして中には「Mac」「Mac」と連呼する輩もいれば、「その機能、Macで前からあったけど?」のようにMacびいきをし過ぎたせいか、MacBookユーザーが尽くプロジェクターに画面を映せないトラブル(バチ?)に見舞われました。
しっかりとプロジェクターへの出力を事前チェックしないとイケませんね。

ちなみに私はこちらのLTをしました。
「Eclipse4SLでSilverlight開発 〜Macユーザーですけど何か?〜」 @shoito
Silverlightの開発環境として、Visual Studio以外にもEclipse4SLというEclipseプラグインがあるのですが、Eclipse4SLはEclipseプラグインという形なのでWindows限定というわけではなく、Macでも使うことができます。
というわけで、「MacユーザーでもSilverlightの開発できるよ!」という紹介をしました。

「懇親会」
18:30-23:00まで1店でぶっ通し!懇親会出席率高し!
checkelaさん、そこは迷わず帰りましょうw

「最後に」
tomohnさん、haramizuさん、当日は広い心でイベントを運営してくださってありがとうございました。
おかげでWindows 7を1日で分かった気になりました。

これからも北陸のコミュニティを盛り上げていこうと思います。

P.S. Hashimotoさん、Fujiwoさん、帰りの車、ご一緒させてくれてありがとうございました。

参加者レポート
@tomohnさん
長沢智治のライフサイクルブログ : Windows 7 勉強会 北陸編 ありがとうございました!

@ramu_mysteryさん
Windows 7 コミュニティ勉強会 with Tech Fielders 北陸編:世の中は不思議なことだらけ

@coelacanthさん
Windows 7 コミュニティ勉強会 with Tech Fielders@北陸 終了しました

@tomohiro555さん
Windows 7 コミュニティ勉強会 with Tech Fielders 北陸編 でライトニングトークスしてきた - 福井で働くプログラマー日記

@t32kさん
Windows 7 コミュニティ勉強会 with Tech Fielders 北陸編

@checkelaさん
Windows7勉強会@北陸

2009/07/17

Flex勉強会について妄想

最近、Flash CatalystとFlash Builderのベータ版がリリースされたことで、FxUGのFlex勉強会ではベータ祭りが行われていました。
そこでは、Flash CatalystとFlash Builderの連携のお話がされるんですが、開発現場のBefore/Afterの舞台なんぞできないかなーと。

・Flash Catalystのない現場(Before)
・Flash Catalystのある現場(After)

デザイナーとディベロッパーのペア作業になるのか知りませんが、ディスプレイの内容は舞台のスクリーンに投影すれば観客には見えるだろうし。
そういえば、以前XP祭り関西2006で「XP開発ライブ」ってのがあったけど、アレに近い感じかなぁ。

2009/07/10

@FxUG_Hokuriku - 石川、富山、福井のFlex勉強会情報

FxUG(Flex User Group)北陸が石川、富山、福井で開催する勉強会の情報共有をするためのtwitterコミュニティアカウントです。

「9/x 15:00〜から金沢で勉強会やるよー」とか「セッション内容はxxxとxxxだよ」とか流す予定ですので、
勉強会開催告知、見逃した!!チェック面倒くさい!という方はフォローお願いします。

@FxUG_Hokuriku
http://twitter.com/FxUG_Hokuriku


ちなみに石川、富山、福井に関してはこんなtwitterコミュニティアカウントがありますよ。
各県の情報共有にいかがでしょう?(活発じゃないアカウントもありますが...)

石川県
http://twitter.com/ishikawa_pref

富山県
http://twitter.com/toyama_pref

福井県
http://twitter.com/fukui_pref

2009/07/09

Wonderflっぽい? Flash MiniBuilder - Online AS3 IDE

Web上でActionScriptを書いてビルド、実行ができるオープンソースのツールみっけ。
実行するためには、Flash Player 10とJavaが必要です。

バイナリをこちらに配置してみました。
http://f.air-life.net/apps/FlashMiniBuilder/

Flash MiniBuilder: Online AS3 IDE - Part I
http://www.victordramba.com/?p=31

こちらのページ最下部でバイナリ(MiniBuilder-web-0.0.1.rar)を配布中です。
Flash MiniBuilder: Online AS3 IDE - Part II - Install it!
http://www.victordramba.com/?p=33

個人用のWonderflみたいな感じ?

2009/07/05

7/4 Flex勉強会@富山 これで北陸一周

昨日、開催されたFlex3勉強会第73回@北陸(富山)に参加してきました。
今回はスピーカーもせず、運営も富山メンバーに全てやっていただけたので完全な参加者側です。

ちなみに、Flex勉強会はFxUG(Flex User Group)という有志たちによる勉強会です。
勉強会は全国各地で行われていて、内容はグループ名の通りFlexが中心にはなりますが、Flash、Silverlight、JavaScriptなども扱いFlexだけに限定はされているわけではありません。

北陸では、2/21に金沢で第1回、4/25に福井で第2回が既に行われており、今回の富山が第3回となります。
石川、福井、富山の各県が隔月持ち回りで開催することにしているので、これで1周したことになり、9月予定の金沢開催から2週目に突入です。
各回毎にスピーカー&参加者を募集しておりますので、興味のある方は是非FxUGのサイト上部の「お知らせ」欄をチェックしていてください。

【セッションレポート】
「Flash Builder 4 と Flash Catalyst (ベータ版) を使ってみる」bambooさん
Adobe Labsで公開中のFlash Builder 4 βとFlash Catalyst βについて、bambooさんがFlexについて勉強しながら調査してくれた内容を紹介してくれました。
Flex4からのネームスペースの変更(fx, s, mx)に関して、解説があってFlex3ユーザーには「へぇ〜」という感じだったと思います。
途中、プレゼン用のEee PCが非力だったせいかFlash Catalystの動作が固まりヒヤヒヤでしたね。
(...coelacanthさんにプレゼンっぷりを見られていてやりづらくなかったのかなぁw)

「 FlexUnit4、FlexcoverとFlexMonkey」 hikaruworldさん
実は今回、これを一番楽しみにしていました。
FlexUnit4 βがリリースされ、そこにFluintの一部が統合されていたことに気付いてから、FlexUnit 4に興味津々だったからです。
FlexUnit4のドキュメントやソースを読んで調べていたんだけど、twitter等でhikaruworldさんもFlexUnit 4に食いて、勉強会で話してくれるってことが分かったので、もう調査はお任せしちゃってました(自分の中で)。
FlexUnit4のメタタグについて色々と紹介してくれて理解が進みましたが、理解できていない部分も一緒orz
自分でも調べておきますw

お話を聞けなかった後半部分+FlexMonkeyに関しては、きっと次回聞けるんですよね。

「 GAEでFlex」 wackyさん
Google App Engine for Javaの出来ること/出来ないこと、BlazeDSの載せ方などを紹介してくれました。

GAEってスレッド生成やファイル作成が許されていなかったりと制約が多いよね。←うんうん。
JDOって何?←うんうん。
MBeanって「The JRE Class White List」に入ってないの!?←うんうん。

さらにBlazeDSの載せ方に関しては、修正が必要なソースコード、設定ファイルを見せてくれて、おっ!これなら誰でもGAEにBlazeDS載せられるね。という感じでした。

「 DIコンテナ比較とテストツール」 yone098さん
Flexで使えるDIコンテナと補足的にフレームワークを紹介してくれました。
紹介されたフレームワークの中で記憶しているのはCairngorm、PureMVC、Prana(Spring ActionScript)、Swiz Framework、Smartypantsです。
DIコンテナについては以前、「Flexの嫌みなやつ - Smartypants」の辺りで偶然見ていたので、前提知識があり聞きやすい内容でした。
Adobe Developer ConnectionにてDependency injection with Flexという記事が公開されているので、こちらも合わせて見とくと良いと思います。短いけど。

「 CSSを使ったDIコンテナASphalt2の概要」 c9katayamaさん
c9katayamaさん作のDIコンテナAsphalt2を紹介してくれました。
バージョンアップして2にした訳ではなく、別にAsphaltという名前が既に他で使われていた都合らしいです。
なので、Asphalt3って名前が使われたら、今度はAsphalt4にしないとねと笑いを誘っていました。
CSS内でClassReferenceを使ってSWFに実装クラスをぶっ込むのがミソなんだろうなと思います。

「懇親会」
スタートからエンドまで全部が懇親会でした。
以上w

「最後に」
富山メンバーの皆さん、とても濃い〜勉強会にしてくれてありがとうございました。
好きです濃い〜の。

参加者の皆さん用にTシャツや書籍、CD等のプレゼントを毎回提供してくれるkskさん(Adobe)、ホントありがとうございます。
是非、またご都合の良い回にご参加いただけるとうれしいです。

2009/06/26

Safari4の設定変更 - 新しいウィンドウではなく、新しいタブで開く

Windows/Macの両方でデフォルトブラウザにはFirefoxを使っていたのですが、初回起動&終了が激しく遅くてイライラさせられていたので、WindowsはGoogle Chrome、MacはSafariに乗り換えていました。

私は頻繁にGmail、Googleリーダーを使うので、Gmailをチェックした後は上部のリーダーを選択してGoogleリーダーもチェックすることにしています。
しかし、Safariのデフォルトだとこの際にGoogleリーダーが新しいウィンドウで開いてしまうんですよね。
これがウザかったんです。

設定を探しても新しいウィンドウじゃなくて、新しいタブで開くっぽいところを見つけられなかったので、以下のようなコマンドをターミナルで入力して設定変更しました。
同じようにデフォルトが気に入らない人のために共有しておきます。
defaults write com.apple.Safari TargetedClicksCreateTabs -bool true

2009/06/24

GDD PhoneでAndroidとお戯れ中

ソフトバンクからはiPhone 3GS、ドコモからはAndroid携帯(HT-03A)、さてauは?
そんな発表の度に裏切られているauユーザーの私ですが、最近は少しGDD Phone(Android)で遊んでいます。

加速度センサー、地磁気センサー、ジャイロセンサー、傾きセンサー...他いろいろとセンサーがサポートされていて開発する側はワクワクします。
さらにAndroidアプリケーションの開発言語はJavaなので、開発ツールが整っていること、言語に馴れていることから作りやすいんですよね。

馴染みのある環境(Eclipse, Java)のおかげで、携帯アプリを作ったことない&AndroidのAPIをほとんど知らない状態から、2時間弱程度でシンプルな歩数計を作って実機で動かすことができました。
ほとんどは歩数をカウントするために、加速度センサーと合成加速度について調査する時間だったのでコーディングに使った時間は数十分だったと思います。

さて、次はどのセンサーで遊んでみようか。


そうそう、KDDIがAndroid関連の企画・開発をする人を募集しているみたいですよ。興味がある人はご覧あれ。
http://rikunabi-next.yahoo.co.jp/rnc/docs/cp_s01800.jsp?rqmt_id=0006683358

2009/06/11

FlexUnit 4 - Testメタデータ

前回の「FlexUnit 4 - 進化したJUnit4ライクな単体テストフレームワーク」に引き続き、「Major New Features of FlexUnit 4」をベースに話を進めていきます。

Major New Features of FlexUnit 4
http://opensource.adobe.com/wiki/display/flexunit/FlexUnit+4+feature+overview

1. Testメタデータ
FlexUnit 4では新たにTestメタデータが提供されていて、テストメソッドにマーカーとして付ける。
以前のバージョンまでは、テストケースはTestCaseクラスを継承したクラスとして作り、さらにテストメソッドにはtestMax, testMinのようにtestというprefixが必要だったが、FlexUnit 4から不要になった。

比較のため、FlexUnit 0.9、JUnit4、FlexUnit 4の簡単なサンプルテストケースを紹介する。
このケースでは、最大値max、最小値minを求める計算をテストしている。

FlexUnit 0.9
package net.air_life
{
import flexunit.framework.*;

public class SampleTest extends TestCase
{
public function testMax():void
{
assertEquals(100, Math.max(0, 100));
}

public function testMin():void
{
assertEquals(0, Math.min(0, 100));
}
}
}

JUnit4
package net.air_life;

import static org.junit.Assert.*;
import org.junit.*;

public class MathTest {
@Test
public void max() {
assertEquals(100, Math.max(0, 100));
}

@Test
public void min() {
assertEquals(0, Math.min(0, 100));
}
}


FlexUnit 4
package net.air_life
{
import org.flexunit.Assert;

public class MathTest
{
[Test]
public function max():void
{
Assert.assertEquals(100, Math.max(0, 100));
}

[Test]
public function min():void
{
Assert.assertEquals(0, Math.min(0, 100));
}
}
}

このように、FlexUnit 4からはTestCaseクラスの継承、prefix(test)が不要になりJUnit4に本当にそっくりになってきた。

次回に続く...

2. Before, Afterメタデータ
3. BeforeClass, AfterClassメタデータ
4. 例外ハンドリング
5. Ignoreメタデータ
6. async
7. Hamcrest
8. Suiteメタデータ
9. ユーザー定義メタデータパラメータ
10. Theory, Datapoints, Assumptionsメタデータ
11. RunWithメタデータ
12. アダプタ
13. ユーザーインターフェースファサード



FlexUnit 4 - 進化したJUnit4ライクな単体テストフレームワーク
http://blog.air-life.net/2009/06/flexunit-4-unit-testing-framework-for.html

2009/06/09

FlexUnit 4 - 進化したJUnit4ライクな単体テストフレームワーク

FlexUnit 4 beta 1.0が公開され、正式リリースが近そうなので、今回から数回に分けてFlexUnit 4を紹介していきます。

FlexUnitはFlexやActionScript 3(AS3)で作られたアプリケーションやライブラリの単体テストを実装するためのJUnit4ライクなフレームワークです。

現在、Adobe Open Sourceで公開されています。
http://opensource.adobe.com/wiki/display/flexunit/FlexUnit

Flex、ActionScriptの単体テストフレームワークにはFlexUnit以外にもいくつか存在していますので、FlexUnitの前に、FluintとAS3Unitを簡単に紹介しましょう。

Fluint
http://code.google.com/p/fluint/

Digital Primates社製(現在はOSS)の単体テストフレームワーク。
以前はdpUInt(Digital Primates Unit and Integration)という名前でした。
非同期処理のテスト、Cairngormのテスト、CI等が可能な点が特徴です。

FlexUnit 4にはその一部(org.fluint.sequenseパッケージ, org.fluint.uiImpersonationパッケージ)が取り込まれています。
ライセンスはMIT Licenseで公開されています。

AS3Unit
http://www.libspark.org/wiki/yossy/AS3Unit

Spark projectが公開している国産の単体テストフレームワーク。
JUnit4の移植で、テストケースがPOJOによる実装が可能な点が特徴です。(AS3だから、POJOじゃなくてPOAO??こんな言葉ないですね・・)
ライセンスはApache License Version 2.0で公開されています。

ここからはFlexUnitに話を戻しましょう。
これまでFlexUnitはバージョン0.9が最新だったのですが、先月、メジャーバージョンアップを遂げて、FlexUnit 4 beta 1.0まで今のところリリースされています。

2009/05/04 FlexUnit 4 alpha 1.0
2009/05/11 FlexUnit 4 alpha 2.0
2009/05/18 FlexUnit 4 beta 1.0

FlexUnitは0.9から4へとバージョンアップしたことで、いくつか大きな機能追加があるので、まずはそれらを紹介していきましょう。
「Major New Features of FlexUnit 4」をベースに進めていきます。

Major New Features of FlexUnit 4
http://opensource.adobe.com/wiki/display/flexunit/FlexUnit+4+feature+overview

FlexUnit 4はJUnit 4ライクになっていますので、Javaエンジニアに分かりやすくするため、JUnit 4の単体テストコードと比較しながら説明していきます。

1. Testメタデータ
2. Before, Afterメタデータ
3. BeforeClass, AfterClassメタデータ
4. 例外ハンドリング
5. Ignoreメタデータ
6. async
7. Hamcrest
8. Suiteメタデータ
9. ユーザー定義メタデータパラメータ
10. Theory, Datapoints, Assumptionsメタデータ
11. RunWithメタデータ
12. アダプタ
13. ユーザーインターフェースファサード


次回へ続く。


FlexUnit 4 - Testメタデータ
http://blog.air-life.net/2009/06/flexunit-4-test-metadata.html

2009/06/08

7/18(Sat) Windows 7 コミュニティ勉強会(以下略)やりますよー

Flex勉強会@北陸(富山)に続いてご案内。
7/18(土)に「Windows 7 コミュニティ勉強会 with Tech Fielders 北陸編」が金沢駅近くのMS北陸支店セミナールームにて開催されます。

イベント案内ページ
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032416515&Culture=ja-JP

イベント名はWindows 7と付いていますが、Windows 7に限らずVisual Studio 2010, C#, Com, Silverlightと広い内容となっていますので、アンチMSの人も参加してみてはいかがでしょうか?w
参加費は無料となっていますので、後は金沢へ向かうだけですよ。

私もコミュニティライトニングトークスでちょっと話をさせていただきます。
懇親会も参加する予定なので、参加される方はそちらでゆっくりお話しましょう。

そういえば、本イベントは下記のように北陸のエンジニア皆さんが主催者ですよ。
主催:北陸エンジニア交流支援 ← ここ重要
後援:マイクロソフト株式会社

7/4(Sat) Flex勉強会第73回@北陸(富山)やりますよー

北陸では3回目となるFlex User Group(FxUG)の勉強会を7/4に富山で開催します。
隔月ペースで石川、福井、富山と会場を移しながら行っていますので、7/4は無理 or 遠くて行けない、という方も次、または次の次にでも是非ご参加ください。

FxUGの勉強会告知ページより案内を引用。
日時:7月4日(土) 15:00〜
場所:サンアントニオ(仮)
住所:富山県富山市総曲輪1丁目(桜木町地区)9−6 加田ビル2階
最寄駅:富山地方鉄道市内線 荒町駅から徒歩2分
駐車場:近隣に40分100円のコインパーキングあり

地図はこちら

集合場所:現地
会費:無料
懇親会(飲み会) 4000〜5000円 勉強会と同じ場所で行います。

参加資格:こちらのページからコメントに参加の意思を書き込みしてください。どなたでもOKです。
対象者:デベロッパー&デザイナー(Flash, ActionScript, Flex, Javaなど)
各セッションの内容はそろそろ公開されていくと思います。
定員は30名程度と決まってますので、スケジュール等で参加を悩んでいる方はちょこちょこ
チェックしていてください。

スピーカーの方に突っ込んだ話を聞きたい、他社(学生)の人たちとも話してみたいという方は勉強会後、懇親会もありますので、参加してみてはいかがでしょうか。

2009/06/04

BASIC Design - ちょっくらデザインの基礎を勉強してきます

そういえば、デザインについて誰かに教わったことってないなー、と思っていたところ、ふくい産業支援センターから「デザインの基礎コース(受講料¥10,000やすっ)」のお知らせが届きました。

これはいかねばっ!
ってことで上司に「講座受けたいので半休取りまくっていいですか?」とお願いしたら、快くOKを。

というわけで、ちょっくら基礎からデザインを勉強してきます。
一緒に受講する方、よろしくお願いしますね。

デザインの基礎コースの案内
http://bit.ly/3wiWI

案内より引用
スケジュール
第1回 平成21年6月22日(月)14:00〜17:00
「デザインで出来ること・・・」
・様々な視点から、コンセプトとアイディアの展開。
 講師:橋本洋子
第2回 平成21年7月1日(水)14:00〜17:00
「商品開発の実際」
・デザイン力にプラスして必要なもの。
 講師:酒井 一
第3回 平成21年7月8日(水)14:00〜17:00
「「こころ」を「かたち」にするデザインプロセス」
・頭で考える、手を動かして考える。
 講師:大正一哉
第4回 平成21年7月14日(火)14:00〜17:00
「コミュニケーションとデザイン」
・広告、グラフィックデザインの基本要素とは。
 講師:西畑敏秀+真空ラボ(出村純也 虎尾弘之)
第5回 平成21年7月21日(火)14:00〜17:00
「基本配色実習とイメージの色表現」
・色彩心理・生理学を活かした配色、ユニバーサルカラー。
 講師:中村裕美子
第6回 平成21年8月5日(水)14:00〜17:00
「みんなででディスカッション」
・開発デザインの機能的・情緒的便益を発表。講師と意見交換。
 講師:全員

2009/06/01

Adobe Flash Catalyst/Builder 4(Gumbo) betaリリース

ついにAdobe Flash CatalystとAdobe Flash Builder 4(Gumbo)のβ版がリリースされましたね。
RSSリーダーをチェックするとFlash界隈はこのリリース情報だらけです。
これで+1。

Adobe Flash Catalyst
http://labs.adobe.com/technologies/flashcatalyst/

Adobe Flash Builder 4
http://labs.adobe.com/technologies/flashbuilder4/

Adobe Flash Builder 4を少し使ってみましたが、ネットワークモニタやFlexUnit連携の機能が加わっているようですね。
今までFluintを使っていたけど、FlexUnitがAdobe Flash Builder 4との連携機能強化されているのであれば、これを機会に乗り換えようかな。

リファクタリング機能に追加がないのがとても残念です。
EclipseのJDTに比べるとリファクタリング機能が少なすぎるんですよね。

それと、今までFlex User Group(FxUG)はFlex3勉強会を開催してきましたが、これからはFlex4勉強会に改められるようです。

sato-shiさん談
http://d.hatena.ne.jp/sato-shi/20090601

確かにFlex4勉強会になってます。北陸はFlex3で告知出しちゃった。ちょっと早まったか・・・。
http://www.fxug.net/

最後に、どうでもイイかもしれないけど、Windows環境でプロセスをチェックしてみたところjavaw.exeじゃなくて、Gumbo.exeで動いてました。

ドキュメントもどんどん公開されてるみたいですね。
Documentation for the Flex 4 and Flash Builder 4 Beta Releases
http://blogs.adobe.com/flexdoc/2009/06/documentation_for_the_flex_4_a.html

2009/05/26

Flex Applicationを自動生成 〜Balsamiq Mockups〜

手書き感いっぱいのUIモックアップ作成ソフトBalsamiq Mockupsに、もうすぐ「Generate Flex Application (WebORB)」メニューが追加されます。

これはUIモックアップを作成した後、[Help]-[Generate Flex Application (WebORB)]を選択するとユーザーインターフェースのMXMLとクライアント/サーバーの通信部分(雛形)のコード生成をしてくれる機能です。

この機能は現在、「Balsamiq Mockups Next Release Preview」で試すことができます。
http://www.balsamiq.com/products/mockups/desktop/next

自動生成されるコードは、クライアント側はMXML/ActionScript、サーバー側はJava, C#/VB.Net, PHPとなっているのでサーバー環境にあったものが利用できます。

FAQを見たところ対応しているUIコンポーネントが結構ありますね。
accordion, barchart, button, buttonbar, calendar, canvas, checkbox, colorpicker, columnchart, combobox, datagrid, datechooser, hslider, label, linechart, list, numericstepper, piechart, radiobutton, rule, tabbar, textinput, title, verticaltabbar, vslider

いくつかスクリーンショットを載せておきます。
LabelとButtonだけのシンプルなHello World Flexアプリをデザインしました。

Generate Flex Application (WebORB)メニュー

Flex Applicationの生成

Flex Applicationのダウンロード
Flex Applicationの生成はThe Midnight Codersのサーバー側で行われるようで、zipにまとめられたものをダウンロードできます。

Flex BuilderにMXMLをインポートしデザインモードで表示


自動生成されたクライアント側のコード(もちろん雛形だけ)
MockupSampleView.mxml
<?xml version="1.0" encoding="utf-8"?>
<MockupSampleController xmlns="sampleBalsamiqClient.*" xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
<mx:Button x="309" y="107" width="73" height="28">
<mx:label>sayHello</mx:label>
</mx:Button>
<mx:Label x="216" y="109" width="-1" height="-1">
<mx:text>Hello World!</mx:text>
</mx:Label>
</MockupSampleController>
MockupSampleController.as
        package sampleBalsamiqClient
{
import mx.containers.Canvas;
import mx.rpc.remoting.RemoteObject;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.AsyncToken;
import mx.rpc.IResponder;
import mx.collections.ArrayCollection;

public class MockupSampleController extends Canvas
{
[Bindable]
public var model:MockupSampleModel = new MockupSampleModel();

private var remoteObject:RemoteObject;

public function MockupSampleController()
{
super();
remoteObject = new RemoteObject("GenericDestination");
remoteObject.source = "sampleBalsamiqServer.MockupSampleService";



remoteObject.addEventListener("fault", onFault);

initializeController();
}

public function onFault (event:FaultEvent):void
{
Alert.show(event.fault.faultString, "Error");
}

public function initializeController():void
{

}
}
}
MockupSampleModel.as
        package sampleBalsamiqClient
{
import mx.collections.ArrayCollection;

public class MockupSampleModel
{

}
}

ちなみにBalsamiq MockupsはAdobe AIRで作られていますのでMac OS X, Windowsでも動作しますし、Web版も公開されています。
日本語が使用できない場合は[View]-[Use System Fonts]にチェックを入れてお試しください。

Balsamiq MockupsはUIモックアップの定義だけであって、Flash Catalystのようにインタラクションの定義は今のところできません。
なお、ライセンスは有償で79ドルとなっていますが評価利用は可能です。
Balsamiq Mockups
http://www.balsamiq.com/products/mockups

From Mockups to Flex in Seconds! - The Midnight Coders: Balsamiq Integration
http://www.themidnightcoders.com/develop-ria/balsamiqapp

Weekly Release: New Default Font (on OS X) and more -Coming soon: WebORB integration!-
http://www.balsamiq.com/blog/2009/05/25/newfont/

2009/05/24

Flex/AIRでGrowlライクな通知機能

GrowlやSkype, Windows Live MessengerのようなIMを利用していると画面の端っこにぴょこっと通知してくれるあいつ。
その通知機能をFlex/AIRアプリにも提供してくれるコンポーネント「FlexGrowl」の紹介です。

なお、FlexGrowlはHydraFrameworkのコンポーネントの一部であり、さらにDegrafaを利用しています。
OSSで提供されていますので、GitHubで全てのソースにアクセスできます。
http://github.com/lukesh

FlexGrowl Component
http://lukesh.wordpress.com/2009/04/04/rawr-flexgrowl-component-available/

デモ
http://lukesh.com/files/growler/index.html

上記デモでは日本語の入力/表示ができませんが、それはデモプログラムで指定されているフォント(HelveticaNeueLTLight.otf, HelveticaNeueLTThin.otf)が日本語に対応していないからであって、このコンポーネントでは日本語は問題なく使えますよ。

twitterアカウントまとめ - ActionScript, Flex, AIRのフレームワーク関連

Mate FrameworkやHydra Frameworkのサイトを訪れると「Follow us on Twitter」のリンクを見かけたので、他にも興味のあるフレームワークがtwitterアカウントを持っていないか調べてみました。

今は新バージョンのリリース告知等をtwitterでも行うからアカウントを取得しているところが多いんですね。

Flash Platform
http://twitter.com/Flash_Platform

Flex Framework
http://twitter.com/flex

AIR
http://twitter.com/air

Degrafa
http://twitter.com/degrafa

Spring ActionScript
http://twitter.com/springas

PureMVC
http://twitter.com/puremvc

Mate Framework
http://twitter.com/MateFramework

Gaia Framework
http://twitter.com/gaiaframework

Hydra Framework
http://twitter.com/HydraFramework

Hydra MVC
http://twitter.com/HydraMVC

FlexUnit
http://twitter.com/FlexUnit

Adobeanのtwitterリスト
http://blog.air-life.net/2009/02/adobeantwitter.html

2009/05/23

NTTひかりTV - 迷惑な勧誘

NTT西日本を名乗り「ひかりTV」の電話勧誘がありました。

発信元:0120815999

平日の夕方、仕事中にかかってきたのですが、どうもしつこい。
まとめると以下のようなことを少々早口で勢いよく説明されました。
・光回線が導入済みなので、設置は簡単
・光回線、ひかりTVとまとまって、なんか安い
・チャンネルいっぱい
・今なら2ヶ月間無料(断ろうとするとこの辺ループ)
・気に入らなかったら解約してくれてかまわない(断ろうとするとこの辺ループ)

話を聞いてる感じでは、この電話で「OK」するとチューナーを送りつけてくる?
私は「ルーターからTVまでが遠いので有線接続なんてありえないですね」という回答を繰り返し、断りました。
「平べったい数ミリ厚の薄いケーブルがあるんですよ」と何度かループしましたけど。

勧誘自体は、たまにある「なんで仕事をしていると分かるであろう時間に電話かけてくるの?」というものですが、ひかりTVの説明に間違いはありませんでした。
しかし、ググってみたところ、この勧誘は一部で評判が悪いみたいですね。
解約しようとしても電話がつながらないとか、いろいろ情報が出てきました。
2ヶ月間無料だからと軽いノリで「OK」するのは考えものなのかもしれませんね。

NTTひかりTVの悪質勧誘にやられる→解決(消費者センター凄すぎる)
http://chikura.fprog.com/index.php?UID=1233803491


とにかく、こういう勧誘に個人情報使わないで欲しいところです。

2009/05/19

RIA All In One - Eclipse

Mac OS X上のEclipse 3.4(Ganymede)にFlex, Silverlight, JavaFXのAll in One開発環境を構築してみました。


以下のプラグインを導入することで実現できますよ。

Flex : Flex Builder(Eclipse Plugin)
http://www.adobe.com/cfusion/entitlement/index.cfm?e=flexbuilder3

Silverlight : Eclipse Tools for Microsoft Silverlight(Eclipse4SL)
http://www.eclipse4sl.org/download/mac/

JavaFX : JavaFX Plugin for Eclipse
http://javafx.com/downloads/macosx.jsp

2009/05/12

逆転現象 - FxUG


第○○回とは、勉強会開催の告知をするタイミングで決まるので、必ずしも開催日順って訳じゃないのです。
このような回と開催日の逆転現象が起きるのは東京、大阪以外の各地でも活発に勉強会が行われるようになってきたおかげですね。

北陸の次回は7月くらいに富山開催ですよー。

2009/05/01

AS3, Flex最適化テクニック&プラクティス総まとめ

InsideRIAで公開されていたSean Moore氏による記事「Round up of ActionScript 3.0 and Flex optimization techniques and practices」をだいぶ適当に訳してみた。

Round up of ActionScript 3.0 and Flex optimization techniques and practices
http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html


AS3, Flex最適化テクニック&プラクティス総まとめ
1. Avoid the new operator when creating Arrays
Arrayを生成する際に、new演算子の使用は避ける。
var a = []; 

悪い例:
var a = new Array();


2. Arrays are expensive to create, do so conservatively
Arrayの生成コストは高いので、控える。
var vanityCollection01 : Array = new Array(); 
var vanityCollection02 : Array = new Array();
var vanityCollection03 : Array = new Array();
var vanityCollection04 : Array = new Array();


3. Fastest way to copy an array:
Arrayをコピーする最速の方法。
var copy : Array = sourceArray.concat(); 


4. Setting values in Arrays is slow
Arrayへの値の設定は遅い。
employees.push( employee ); 
employees[2] = employee;


5. Getting values from Arrays is twice as fast as setting
Arrayから値を取得するのは設定より2倍ほど速い。
var employee : Employee = employees[2]


6. Use static for properties methods that do not require an object instance
インスタンスを必要としないプロパティ、メソッドにはstaticを使う。
StringUtils.trim( "text with space at end " ); 
Class definition:
package
{
public final class StringUtils
{
public static function trim( s : String ) : String
{
var trimmed : String;
// implementation...
return trimmed;
}
}
}


7. Use const for properties that will never change throughout the lifecycle of the application
アプリケーションのライフサイクルを通して、変更の無いプロパティにはconstを使う。
public const APPLICATION_PUBLISHER : String = "Company, Inc."; 


8. Use final when no subclasses need to be created of a class
サブクラスを作成する必要がないクラスにはfinalを使う。
public final class StringUtils 


9. Length of method/variable names doesn't matter in ActionScript 3.0 (true in other langs)
メソッド名/変数名の長さはActionScript 3.0では問題にはならない。
someCrazyLongMethodNameDoesntReallyImpactPerformanceTooMuch(); 


10. One line assignments DO NOT buy any performance (true in other langs)
代入を1行にまとめたところでパフォーマンスは向上しない。
var i=0; j=10; k=200; 


11. No difference in memory usage between an if statement and a switch statement
if文とswitch文では、メモリ使用量に差はない。
if ( condition ) 
{
// handle condition
}

まったく同じ:
switch ( condition ) 
{
case "A":
// logic to handle case A
break;

case "B":
// logic to handle case B
break;
}


12. Rank your if statements in order of comparisons most likely to be true
if文の条件はtrueとなる可能性の高い順に並べる。
if ( conditionThatHappensAlot ) 
{
// logic to handle frequently met condition
}
else if ( conditionThatHappensSomtimes )
{
// handle the case that happens occaisonally
}
else
{
// handle the case that doesn’t happen that often
}


13. AVM promotes int to Number during calculations inside loops
(VM has been changing, from 9 to 10, so int, uint and number conversions aren't as slow as they used to be.)
AVMはループ内での計算中にintをNumberに変換する。(VMが9から10に代わって、int, uint, Numberの変換はそれほど遅くはなくなった。)

14. Resolve issues of promotion, unknown, or incorrect object types
変換、未知の型、不正な型の問題を解決すること

15. Use uint sparingly, it can be slow (VM has been changing, from 9 to 10, so int, uint and number conversions aren't as slow as they used to be.)
uintは慎重に使う。注意しないと遅くなることがある。(VMが9から10に代わって、int, uint, Numberの変換はそれほど遅くはなくなった。)
var footerHex : uint = 0x00ccff; 


16. Use integers for iterations
反復の判定にはintを使う。
(var i: int = 0; i < n; i++) NOT for (var i: Number = 0; i < n; i++) 


17. Don't use int with decimals
少数値を扱うためにintを使わない。
var decimal : Number  = 14.654; 

悪い例:
var decimal : int  = 14.654; 


18. Multiply vs. Divide: instead of 5000/1000 use: 5000*0.001
乗算 vs 除算: 5000/1000の代わりに、5000*0.001を使う。

19. Locally store function values in for and while statements instead of repeatedly accessing them
for、while内で繰り返し計算させるよりも、ループ外でローカル変数に入れておき、それを使用する。
for (..){ a * 180 / Math.PI; }  
declare: toRadians = a*180/Math.PI; outside of the loop


20. Avoid calculations and method calls in loops
ループの中で計算やメソッド呼び出しをしない。
var len : int = myArray.lengh;  
for (var i=0;i<len;i++){ }

悪い例:
for (var i=0;i< myArray.lengh;i++){ } 


21. Use RegEx for validation, use string methods for searching
バリデーションにはRegEx(正規表現)を使い、検索にはStringのメソッドを使う。
// postal code validation example using regular expressions 
private var regEx:RegExp = /^[A-Z][0-9][A-Z] [0-9][A-Z][0-9]$/i;
private function validatePostal( event : Event ) : void
{
if( regEx.test( zipTextInput.text ) )
{
// handle invalid input case
}
}

// search a string using String methods
var string : String = "Search me";
var searchIndex : int = string.indexOf( "me" );
var search : String = string.substring( searchIndex, searchIndex + 2 );


22. Reuse objects to maintain a “memory plateau” DisplayObjects, URLLoader objects
メモリ使用量を抑えるために、DisplayObject、URLLoaderオブジェクトは再利用する。

23. Follow the Flex component model:
Flexのコンポーネントモデルに従う。
createChildren(); 
commitProperties();
updateDisplayList();


24. Only use Datagrids as a last resort (make sure you can’t implement in a regular List first)
DataGridは最後の手段として使う。(まずは通常のListで実現できないか確かめる)

25. Avoid Repeaters for scrollable data
スクロールデータにRepeaterの使用は避ける。

26. Avoid the setStyle() method (One of the most expensive calls in the Flex framework)
setStyle()メソッドの使用は避ける。(setStyle()メソッドはFlexフレームワークの中で高コストな呼び出しの一つ)

27. Using too many containers dramatically reduces the performance of your application
使用するコンテナが多過ぎるとパフォーマンスが著しく低下する恐れがある。
<mx:Panel> 
<mx:VBox>
<mx:HBox>
<mx:Label text="Label 1" />
<mx:VBox>
<mx:Label text="Label 2" />
</mx:VBox>
<mx:HBox>
<mx:Label text="Label 3" />
<mx:VBox>
<mx:Label text="Label 4" />
</mx:VBox>
</mx:HBox>
</mx:HBox>
</mx:VBox>
</mx:Panel>


28. You do not need to always use a container tag as the top-level tag of components Totally valid component, no top level container needed:
コンポーネントのトップレベルに、常にコンテナを使う必要はない。
<mx:Image xmlns:mx="http://www.adobe.com/2006/mxml"  
source="avatar.jpg" width="200" height="200" />


29. Remove unnecessary container wrappers to reduce container nesting
コンテナのネストを減らし、不必要なコンテナを削除する。

30. Avoid: The VBox container inside an tag, (eliminates redundancy)
コンテナタグ内の無駄なVBoxの使用は避ける。
<mx:Panel> 
<mx:Label text="Label 1" />
<mx:Label text="Label 2" />
</mx:Panel>
<mx:Panel>
<mx:VBox>
<mx:Label text="Label 1" />
<mx:Label text="Label 2" />
</mx:VBox>
</mx:Panel>


31. Avoid: VBox container inside an mx:Application tag, (eliminates redundancy)
mx:Applicationタグ内の無駄なVBoxの使用は避ける。
<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx=http://www.adobe.com/2006/mxml>
<mx:Label text="Label 1" />
<mx:Label text="Label 2" />
</mx:Application>

悪い例:
<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx=http://www.adobe.com/2006/mxml>
<mx:VBox>
<mx:Label text="Label 1" />
<mx:Label text="Label 2" />
</mx:VBox>
</mx:Application>


32. Set the recycleChildren property to true to improve a Repeater object's performance (re-uses previously created children instead of creating new ones)
Repeaterオブジェクトのパフォーマンス向上のため、recycleChildrenプロパティにtrueを設定する。(新しいRepeater対象オブジェクトを生成する代わりに、前に生成されたオブジェクトを再利用する)
<mx:Script> 
<![CDATA[
[Bindable]
public var repeaterData : Array = ["data 1", "data 2"];
]]>
</mx:Script>

<mx:Repeater id="repeater" dataProvider="{repeaterData}">
<mx:Label text="data item: {repeater.currentItem}"/>
</mx:Repeater>


33. Keep framerate set at 60 fps or lower
フレームレートは60fpsかそれ以下にする。
<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx=http://www.adobe.com/2006/mxml
frameRate="45">
</mx:Application>


34. Avoid multiple display manipulations per frame
フレーム毎に複数の表示操作を行うのは避ける。

35. Code against ENTER_FRAME events instead of Timer events
Timerイベントの代わりに、ENTER_FRAMEイベントを使う。
public function onEnterFrame( event : Event ) : void 
{
}
private function init() : void
{
addEventListener( Event.ENTER_FRAME, onEnterFrame );
}

悪い例:
public function onTimerTick( event : Event ) : void 
{
}
private function init() : void
{
var timer : Timer = new Timer();
timer.start();
timer.addEventListener( TimerEvent.TIMER, onTimerTick );
}


36. To defer object creation over multiple frames use:
複数フレームに及ぶオブジェクト生成を遅らせる際に、"queued"を指定する:
<mx:Container creationPolicy="queued"/>


37. Alpha = 0 is not the same as visible = false (Objects marked invisible are passed over)
Alpha = 0は visible = falseと同等ではない。(非表示マークが付けられることではない)
loginButton.visible = false;

悪い例:
loginButton.alpha = 0; 


ここに挙げた以外にFlex/AIR, ActionScriptのパフォーマンス最適化についてまとめられている記事がいくつかあるのでリストしておきます。
Flex アプリケーションのパフォーマンス : クライアントアプリケーションのパフォーマンスチューンアップテクニック集
http://www.adobe.com/jp/devnet/flex/articles/client_perf.html

ActionScript 3.0におけるパフォーマンス向上のヒント
http://www.adobe.com/jp/devnet/flash/articles/ac3_performance.html

Round up of ActionScript 3.0 and Flex optimization techniques and practices」記事の参照元
Sean Christmann: Optimizing Adobe AIR for Code Execution, Memory, and Rendering
http://www.craftymind.com/2008/11/20/max-2008-session-material/

Dennis Ippel: Some ActionScript 3.0 Optimizations
http://www.rozengain.com/blog/2007/05/01/some-actionscript-30-optimizations/

Shane McCartney: Tips on how to write efficient AS3
http://www.lostinactionscript.com/blog/index.php/2008/09/28/tips-on-how-to-write-efficient-as3/

Flex Application Performance: Tips and Techniques for Improving Client Application Performance
http://www.adobe.com/devnet/flex/articles/client_perf.html

Stephen Calender: ActionScript 3.0 Benchmarking
http://www.stephencalenderblog.com/?p=7

Grant Skinner: Types in AS3: ints not so fast, uints slow!
http://www.gskinner.com/blog/archives/2006/06/types_in_as3_in.html

Grant Skinner: Resource management strategies in Flash Player 9
http://www.adobe.com/devnet/flashplayer/articles/resource_management.html

Gary Grossman: ActionScript 3.0 and AVM2 Performance Tuning
http://www.onflex.org/ACDS/AS3TuningInsideAVM2JIT.pdf

Fastest way to copy an array
http://agit8.turbulent.ca/bwp/2008/08/04/flash-as3-optimization-fastest-way-to-copy-an-array/

Andre Michelle: AS3 optimations & suggestions
http://blog.andre-michelle.com/2005/as3-optimations-suggestions/

Package-level function closures in ActionScript
http://www.ericfeminella.com/blog/2008/05/06/package-level-function-closures-in-actionscript/

ActionScript 3 optimization techniques
http://blog.joa-ebert.com/2008/04/26/actionscript-3-optimization-techniques/

AS3 Performance Tester
http://businessintelligence.me/projects/performance_tester/performanceTester.html