ひよっこ。

I want to…

Posts Tagged ‘HokurikuEngineer’

TDD読書会#3+北陸エンジニアグループ2009振り返り会に行ってきたよ

Posted by hikaruworld : 2009 12月 14

と言うわけで、TDD読書会#3+北陸エンジニアグループ2009振り返り会に行ってきました。
って、あれ開発プロセス勉強会だったような気が…まぁいいか。

北陸エンジニアグループに関連する勉強会は今年はこれで最後になります。
なんだか色々あった気がしますが、そちらは年末に改めて振り返ってみます。

あと、最後に@yuuitiroさんに、毎度のことながらインフラ関係を感謝したく思います。
目立たないけど、一番大事な縁の下の力持ちだと思います。

さて本題。
今回はこじんまりした形式ではなく、講義形式でTDD読書会では初参加の方がたくさんいたので、
冒頭に15分ほどTDDの歴史byKanazawaProcessとして発表しました。
以下がスライドです。

で、以下は内容の一行感想
詳しくは、他のみなさんが書かれてるのでそちらに譲ります。

#1 @hikaruworld
自分なので、省略。
#2 @coelacanth
SSASなんて今日知ったっす。面白そうだなーと思ったけど、バージョンが古すぎる…
今後のバージョンアップに期待

#3 @kussy_y
やっぱりファシリテーションって面白いなーと思う。
こういうのを会社でやりたいよねと思いました。

#Ex 懇親会
第七安し!!。ひとり1500円程度で食べれるのは医大だ!!

おまけ。
最後に今回のTwitterのタイムラインを貼っておきます。

katzchang はじまた。 #hokueng でいいよね。 2009-12-12 12:17:14
mitukiii 始まってる。 #hokueng 2009-12-12 12:20:11
rch850 「テストファーストなひと」「……」 #hokueng [VtP] 2009-12-12 12:26:48
katzchang さて、くしださんをお迎えにいくので、12:40ころに一度でかけます。13:30ころには帰ってくると思います。進行とか、どなたかお願いします>< #hokueng 2009-12-12 12:27:22
shozzy 今日のタグはこれか #hokueng 2009-12-12 12:29:13
rch850 SSASで単体テスト。へんたいだー #hokueng [VtP] 2009-12-12 12:31:41
katzchang 最優先事項:他のメンバーが持つ全ての疑問を解決するよう、協力します。 #hokueng 2009-12-12 12:33:20
katzchang ということで、自分がわからないことは質問していく!他の人の質問にはみんな答えていく!で行きましょう! #hokueng 2009-12-12 12:34:02
hikaruworld お昼ごはん。 #hokueng 2009-12-12 12:36:35
shoito 時間が時間だからか、みんなメシ食ってる #hokueng 2009-12-12 12:37:40
rch850 SSASって言ってるけど、実際はECMAScriptのほうが近い? #hokueng [VtP] 2009-12-12 12:39:18
wtnabe 実は SSAS がなんだかよく分かってなかったり #hokueng 2009-12-12 12:40:31
katzchang ですね。ASとか。 RT @rch850: SSASって言ってるけど、実際はECMAScriptのほうが近い? #hokueng [VtP] 2009-12-12 12:41:20
shozzy おやつ持ってくればよかったな #hokueng 2009-12-12 12:41:37
rch850 ほー、FMSってSSAS使うんだ #hokueng [VtP] 2009-12-12 12:43:23
checkela Testの規約って、言語毎に微妙に違うよねえ… #hokueng 2009-12-12 12:44:51
wtnabe prototype.superclass ってどのバージョンから使えるのかな? #hokueng 2009-12-12 12:44:56
wtnabe ecmascript 的には smallCamelCase にするのがいいのかな? 好きじゃないけど。 #hokueng 2009-12-12 12:46:49
shozzy 開発を進めるための方法=TDD。品質保証のための方法ではない。 #hokueng 2009-12-12 12:47:34
wtnabe この辺は宗教戦争なので、使ってる言語で推奨されているデフォルトスタイルでいくのがいいはず。好きじゃないけど。 #hokueng 2009-12-12 12:47:55
shozzy 同じxUnitを使うので混同しがちだけどね。これがTDD勉強会での発見だったな。 #hokueng 2009-12-12 12:48:08
rch850 .@coelacanth の FMSUnit が力技過ぎるw #hokueng [VtP] 2009-12-12 12:48:56
rch850 SSAS での単体テストに JSUnit のコードがだいぶ流用できそうに見えるなー #hokueng [VtP] 2009-12-12 12:53:13
shozzy 「アジャイルソフトウェア開発の奥義」は6000円するそう #hokueng 2009-12-12 12:58:53
shozzy ドキュメントは最小限でいいよー っていうか、要件が明確なら、内部設計はいらない。発注側としては。 #hokueng 2009-12-12 13:03:37
rch850 「納品」って単語にそもそもなじみが無いんだよなー #hokueng [VtP] 2009-12-12 13:03:51
shozzy 詳細設計書にSQLまで書いてたことある。意味ないよねー #hokueng 2009-12-12 13:04:25
rch850 詳細設計書とかって、なんかおかしいことがあったとき用なのかしらね #hokueng [VtP] 2009-12-12 13:05:57
shoito wikiにストーリー書いて、レビュー、調整、テストコード書いて、開発やねぇ #hokueng 2009-12-12 13:10:48
itsuki_kosen アジェイルソフトウェア開発によるメリットと言うか,良いところは迅速かつ適応的ってのはわかるけど,実際に何か作ったり案件として請け負ったものを,アジェイルソフトウェア開発でやると,具体的にどう変わるのか.どう良くなったのかの実例が知りたいなぁ. #hokueng 2009-12-12 13:11:19
shozzy 「気持ちいい開発」 #hokueng 2009-12-12 13:11:24
shozzy 土曜出勤とかぶるとほんとへこむよねー #hokueng 2009-12-12 13:12:22
masayan_kazu ラダーのセクションにテストコード埋め込む作戦 #hokueng 2009-12-12 13:13:10
itsuki_kosen #hokueng 調べたら少しあった.ユーザにとってのアジャイル開発のメリット http://www.thinkit.co.jp/free/article/0608/3/2/ 2009-12-12 13:13:12
itsuki_kosen #hokueng 実践者インタビュー http://www.atmarkit.co.jp/farc/rensai2/prac01/prac01b.html 2009-12-12 13:13:43
shozzy ツールがテストコードを要求してくるわけか #hokueng 2009-12-12 13:23:21
rch850 cutagem でテンプレつくる。それで rake すると何もテストが無いという失敗になる #hokueng [VtP] 2009-12-12 13:24:47
shozzy 要求というより、自動でコケるテストコードを生成してくれるのか #hokueng 2009-12-12 13:25:04
hikaruworld 最近の #hokueng 2009-12-12 13:26:42
hikaruworld Eclipse+JUnitだと、自動生成したテストコードには、エラーfail()が実装されてたりする。 #hokueng 2009-12-12 13:27:27
shozzy よし、グリーンだ!きゅうけい! #hokueng 2009-12-12 13:30:57
kussy_y #hokueng のみなさんありがとうございました。ブログを書くまでがイベントですよ! 2009-12-12 16:57:36
wtnabe お届けタスク終了して帰宅なう #hokueng 2009-12-12 17:17:39
wtnabe えーとその後 tweet する機会がなかったんで補足しますと、今日使った道具は gem と rake と cutagem の http://github.com/genki/cutagem だけっすね。あとは Ruby 標準のものばかり。 #hokueng 2009-12-12 17:33:35
wtnabe コードの補完は Emacs でもやる人はすごいレベルでできるのですが、自分はそんなにヘビーには使い込んでないです。 #hokueng 2009-12-12 17:35:18
shoito 今年のコミュニティ活動をふりかえってきたよ – 北陸エンジニアグループ2009ふりかえり http://blog.air-life.net/2009/12/hokuriku-engineer-group-retrospective.html #hokueng 2009-12-12 23:27:26
katzchang ちなみに、今回の参加表明曲線です。 #hokueng http://f.hatena.ne.jp/katzchang/20091213030326 2009-12-13 03:04:36

#hokueng – ハッシュタグクラウドより。

Posted in program | タグ: , , | Leave a Comment »

FlexAutomationAPIに関して

Posted by hikaruworld : 2009 9月 17

FlexAutomationAPIの説明がぐだぐだになったので、悔しいのでblogで補足していきます。

FlexAutomationAPIとは

FlexAutomationAPIとは、Flexフレームワークで提供されているAPIで
Flexコンポーネントに対するユーザ操作をオートメーションする事が可能になります(と、解釈しました)。

ただし、このAPIはFlexBuilderProfessionalが必須に成ります。
※standard版でも実行可能ですが、一回あたりのアクション数が30回に限定されています。
(リリースドキュメントに書いてあったんですが、探すに苦労しました…)

これは、FlexAutomationAPIを利用するのに必要なライブラリ

  • automation.swc — Flexコンポーネントの委譲クラス群
  • automation_dmv.swc — FlexチャーティングとAdavancedDataGrid用の委譲クラス群
  • automation_agent.swc — agentクラス

が通常のFlexSDKに含まれていないためです。

AutomationAPIで実現可能なこと

FlexAutomationAPIを用いると以下の事が実現可能だとヘルプには書いてあります。

  1. メトリック(Omniture) — Adobeが買収しましたが、要するに詳細なアクセス解析を提供します。
  2. 自動テスト(FlexMonkey & MerquryQTP) — 周知の通りユーザ操作をエミュレートしてGUIテストの自動化を行います。
  3. コブラウジング — 特にサンプルがあるわけではありませんが、リモートでのユーザ操作の同期などを可能とします。ここ辺り(PDF)が参考になるかと思います。

AutomationAPIのフロー

AutomationAPIはAutomationManagerの実行によって対象Flexコンポーネントを委譲する形で組み込まれます。
(正確にはAutomationManagerによってSystemManagerに対してADDEDイベントが登録され、
SystemManagerにADDされるタイミングで委譲クラスがインスタンス化され、
Automationの静的プロパティdelegateClassMapに追加されます。)

# AutomationManager自体はAPIドキュメントが存在せず、インターフェイスの
# IAutomationManager,IAutomationManager2のみしか参照できません
# このようにFlexAutomationAPI関連はAPIドキュメント上に表示されない@privateなものが多いようです。
# AutomationManagerは参照できませんがAutomationはソースが参照できますので直接のぞいてみるとよいでしょう。

この辺りはヘルプを参照して頂くと理解が進むと思います(以下の図を参照。Adobeのヘルプより)。

AutomationAPIのイベント伝播

AutomationAPIのイベント伝播

AutomationAPIの初期化処理

では、SystemManagerから始まる内部の初期化の流れを追ってみます。
以下の図は、SystemManagerから始まる処理の流れを図にしたものです。

AutomationAPI関連図

AutomationAPI関連図

  1. SystemManager内のdocFrameHandler()でMixinに指定されているクラスのinit()メソッドが呼び出されます
    (詳細は前記事Mixinを参照して下さい)。
  2. AutomationManager及び委譲クラス群はMixinに指定されているため、
    SystemManagerのmixin呼び出しを受けて、AutomationManagerと委譲クラス群の処理が実行されます。
  3. 2.のMixinにより各設定が行われた後、画面上に各コンポーネントの描画が行われます。
  4. Automation.delegateClassMapにマッピングされたオブジェクトは、
    ADDEDのタイミングで処理の委譲が行われることになるため、委譲先のイベントとしてRECORDがdispatchされます。
  5. エージェントはこの委譲クラス群(正確にはAutomationManagerより発生される)イベントをListenすることでそのイベント及びイベントのトリガとなったコンポーネントの情報を取得することが可能になります。

ここで注目したいのは2番目の処理になります。AutomationManager及び委譲クラス群の処理に関して、もう少し掘り下げてみます。

AutomationManagerの場合

init()メソッドでは、rootに対してADDEDイベントをListenするイベントハンドラ(childHandler())が定義されます。
これは、SystemManagerをrootする表示オブジェクトにコンポーネントが追加(Event.ADDED)されたときにdispatchされます。
childHandler()は、引数に渡されたコンポーネントから対応するAutomationクラスに定義された委譲クラスのインスタンス化を行い、
Automation.delegateClassMapにそのインスタンスを登録します。

委譲クラス群の場合

init()メソッドでは、Automation.registerDelegateClassを利用してAutomation.delegateClassMapに自身を登録します。
# ここでは自身を登録しているのみで、インスタンス化を行っているわけではありません。
# 委譲クラスのインスタンス化はAutomationManagerのchildHandlerによって行われます。

また、委譲クラスの持つイベント(つまり実体クラスと同様のイベント群)に対しイベントリスナが登録されます。
このイベントリスナは内部でAutomationManager.recordAutomatableEvent()を呼び出します。
# AutomationManager.recordAutomatableEvent()が実行されると、
# AutomationManagerクラスによってRecordEventがDispatchされます。

Automationクラスの場合

実クラスと委譲クラスのMapを保持するAutomationクラスは静的クラスとして設計されており、
初期のアクセス時に内部プロパティdelegateMapを初期化しその値を保持します。

    /**
     *  Registers the component class and delegate class association with Automation.
     * 
     *  @param compClass The component class. 
     * 
     *  @param delegateClass The delegate class associated with the component.
     */
    public static function registerDelegateClass(compClass:Class, delegateClass:Class):void
    {
        if (!delegateClassMap)
            delegateClassMap = {};

        var className:String = getQualifiedClassName(compClass);
        delegateClassMap[className] = delegateClass;
    }

これらの仕組みを組み込んだ上で、AutomationRecordEvent.RECORDをListenするように
エージェントクラスの実装を行う事になります。

この4.から5.の流れは、Flexのヘルプを参照していただくとわかりやすいと思います(Flexのヘルプから)。

エージェントへの操作フロー

エージェントへの操作フロー

次へ続く…

Posted in program | タグ: , , , , | Leave a Comment »

Flex@北陸in石川に行ってきた。

Posted by hikaruworld : 2009 9月 14

Flex@北陸in石川に行ってきました。

相も変わらず、基本的には一行感想で。

  1. 「Flash Catalyst + Flash Builder 4(仮)」 アドビシステムズ 轟さん
    Catalystすげー、って感じですね。デザイナさんとこういうのをやってみたい。でもそれよりもARに惚れた自分がいます。
  2. 「FlexMonkey紹介」 hikaruworld
    うーん、失敗した。FlexAutomationAPI色々面白いと思うんだけど、説明しきれない。
    Mixinに関しては多重継承の概念の一部の手法のみを許しているという考えが正解?
  3. 「Flexで作るおされビンゴアプリ」 katzchangさん
    ん?いつの間にかFlexから、開発プロセスに流れている気が….bibibingo!!。これからずっと使われることになりそうw
  4. 「Silverlight入門」 hr_saoさん
    やはりFlexとSilverlightは似ているなと言うのが感想。C使いなら導入やりやすいと思うんだけど、Macというのが実は一番の壁だったりする。
    プレゼン見てたら使いたくなってきたので触ってみようかなと思いました。
  5. 「 FlashとSilverlightの配信事情」 coelacanthさん
    動画配信の世界は謎が多いなぁといつも思います。シークひとつとってもどんだけ考えられているんだろうと。
    FlashMediaServerとか利用してみたいけど、何となく敷居が高くて…

以下、LT

  1. 「WebGLについて」 @rch850さん
    WebGLとO3DがGoogleが提供しているというのが今後激変しそうな匂いがします。Adobe vs Microsoft vs Googleの三つ巴?
    そうそう、「提供」をやろうと思ってて忘れてた事実に気づかされました。
  2. 「Android + JavaScript」 @checkelaさん
    個人的にはiPhoneにもFlashが乗るんじゃないかなぁーと期待してたりします。ただ、Android+javascript+HTML5ってのはかなり魅力的な世界。
  3. 「ディベロッパーへデザインのススメ」 @shoitoさん
    プレゼンうまっ、ってのがまず第一の感想。自分的には、デザインサイドの視点を忘れないようにしようとおもいつつ
    いつの間にかデベロッパーよりになっているので、初心にかえりたいところ。

<hr
以下は、個人的な反省。
自分のプレゼンは失敗した感じで泣きたくなりました。
反応がないのはつらいなーという感じで、もっとプレゼンの修行をせねばと思います。

素敵な技術をステキに伝えられないとその技術に申し訳ない。。。
とりあえず、プレゼン資料は以下。

あとTweetBubllesを利用してみたんですが、リアルタイムじゃないのが痛いなぁと思いました。
いっそのこと、会場にプロキシサーバか何か立てて、そこ経由でPOSTしてもらってフックした情報をAppで表示とかやってみよかなと思いました。
需要ある?

あ、シマッタ。
富山で本をゲットした方のIDとかを聞き忘れてしまいました。知っている方がいれば教えてくださいー。

以上ー。

TODO… プレゼン資料のUP

Posted in program | タグ: , , , | Leave a Comment »

Hokuriku.rb勉強会第一回に行ってきた

Posted by hikaruworld : 2009 7月 27

というわけで、Rubyの勉強会に行ってきました。
これでTDD勉強会にから始まる北陸勉強会5連発の最後を飾る勉強会になります。
今回は、ライトニングトークも発表もないのでお客様気分でした。

自分はRubyはC#以上にみたことがないので、今回で人生2度目。
あと、TracがPython利用しているので、個人的にはPythonの方が興味があるので、
基本的にはPythonと見比べた感じでセッションを聞いていました。

あー、あと、珍しく早く会場につきました。今回は三番目でした。

以下、あいもかわらずセッションの一行?感想。

■比べて学ぶRuby – Ruby, C++, PHP を比較してみよう (でむらなりかず氏)

悲しいかな、C++もPHPもわかりませんorz….というわけでPythonと比較しながら考えてた。
サイズだと配列だろうと、文字列だろうとlen()関数でいける。
Rubyでいうgemは、pythonにはeasy_installという便利ツールがあるよー。
ちなみにEasyInstallはインストール先にsvnとかも指定可能ー。
イテレータもまぁあるねぇ。ラムダ式はそれなりに便利だと思う。
delete_ifはないんじゃないかなぁ、便利でよいよい。

■Rails入門(仮) (inarin氏)

結構簡単に出来るなぁーと言うのが感想。
SQL自動生成ツールが便利そうだった。
IDEはAptanaなんだとおもいつつ、とりあえずその場でダウンロードしようとしたらネットワークがorz…

■Webフレームワーク対決 CakePHP vs Rails(仮) (coelacanth氏)

うー。やっぱりPHPわかんない。
XAMPPは聞いたときがある。なんかインストールした時についてきた記憶が。。。
Rubyの話がいつの間にかPHPになっていたのは気のせいデスカ。

■ライトニングトーク1 永和システムマネジメントにおけるRubyの取り組みについて(西村氏)

宣伝多っ!!
でも逆にその見事っぷりが潔い。ってか、青バックの「○○の提供でお送りしておきます」に惚れた!!
北陸にRubyとかの案件があったらいいのにー…

■ライトニングトーク2 RubyプログラミングTips(浦嶌氏)

こう、みごとなマニアックさに乾杯。
なんかjavascriptな匂いがしたのは自分だけ!?

■私のRuby活用事例 ~趣味プログラマにとってのRuby~(はしもと氏)

うーん、便利だ。ってか公開してほしい。
あと、確かに日曜プログラマの領域ではないと思います、はい。


■抽選

random関数でやると結構重複しててた。
トリプルリーチでもらえなかったので自分的には涙目。

■懇親会(第七ギョーザ)

行って気がついた、ホワイト餃子の店。
お酒抜きってことでとりあえず黙々と飯をがっついていました。
うまー。

個人的に心残りなのはBump!!
すげー悔しかった。北陸でもっててもだれも意味なくて貴重なチャンスだったのに!!!
涙(;

■おまけ。

– 福井でカニ合宿ね、了解(TODO)
– 北陸エンジニアサミットしたい(ってか企業にスポンサーとかになってもらって金曜・土曜とかでやりたい)

Posted in program | タグ: , | 2 Comments »

Windows7 コミュニティ勉強会 に行ってきた。

Posted by hikaruworld : 2009 7月 24

先週末の土曜日(7/18)にMicrosoftのイベントがあったのでちょっくら行ってきました。
正式名称はこれ。「Windows7 コミュニティ勉強会 with Tech Fielders 北陸編」

HOTEL KANAZAWAで行われたんですが、会場にいったらウェイターさんが待っていてくれて、コーヒーを入れてくれてびっくり+1
途中で(冒頭の説明はちょいと遅刻して聞けませんでした)Microsoft北陸支社がなくなったときいてびっくり+2でした。

以下は簡単にセッションの1行感想です。
詳細な感想は【Windows7 北陸】辺りでググれば他の方の書いたものが出てくるでしょう。
あえてリンクは張りません(全部補足できないので)。

■「開発×業務×生活の可能性を広げるプラットフォーム Windows 7 紹介」@tomohn
VHDブートは知らなかったんですが、この機能はいいなぁと思いました。
っつうか今すぐ欲しい状況に陥っている今日。
Windows7はVistaのチューニングみたいな位置づけらしく、細かい修正がされているようで今回は購入しようかなと思ってます。

■「コミュニティVisual Studio 2010 と C# 4.0/.NET Framework 4.0 ~Windows 7 時代の開発環境~」@Fujiwo
人生2度目のC#です。eclipse派の自分としてはVS2010の新機能が「え、いまさら?」という機能が多数(汗
途中で運動したんですが、骨がぼきぼきいってました。

■「機能が拡張された Windows 7 でスムーズな操作をする方法」@ramu_mystery
個人的にはwin+やじるしキーがすげぇ便利だと思います。
ってかショートカット多すぎ

■「現在のCOM事情」@checkela
COMはしらないっす。でも某リンゴ社の音楽管理ソフトとか、
某検索大手の地図ソフトでも利用されているなんてしりませんでした。
意外に利用しているんだなぁと。

■「ライトニングトーク」
@shoitoさん、@kabakiyoさん、@t32kさん、@tomohiro555さん、@seven777さん、@自分@nagiseさん
おもしろかったですー。Mac率高し!!

自分は「Macユーザから見るWindows7」というライトニングトークをMacBookとkeynoteを使ってやりました。
ディスプレイを接続した後にMacがハングするという意味不明な事態に陥りましたorz…

資料は大体作成していったんですが、@tomohnのセッションを聞いた後に、
併せてその場で書き直しました。VHDブートとか知らないョ。

とりあえず、Windows7の新機能を「それってMacにもあるよね?」と叩いていったんですが、
危うく叩いただけで終わりそうでしたが、無事!?Windows7のいいところまで話すことができました。

一応、断っておきますが、
私はマカーですが、Windowsが嫌いというわけではありません(仕事はWinですし)。
いや、ただMicrosoftみたいな大手が主催でイベントをやるとあえて反発したくなるだけですよ、たぶん。。。

以上ー。

以下は発表資料です。

Posted in program | タグ: , | Leave a Comment »