メイン

ソフトウェア開発 アーカイブ

2004年08月02日

特許勉強会

社内で特許の勉強会.弁理士さんにお話を伺った.

2004年11月28日

A3 ホワイトボード

を読んで、取り敢えず A3 のホワイトボードを買ってきた。
千円くらい。

whtbd.jpg

また、

を参考にクリップボードも買ってきた。

明日から少し試してみるつもり。


ちなみに、これまでは、二人の時は A4 コピー用紙、それ以上の時は普通の大きなホワイトボードを使うことが多かった。

A4 コピー用紙だと、三人以上で覗き込むには狭い。
A3 のコピー用紙だと、ペンを多少太いものにしないと視認性が悪い。
してみると、A3 ホワイトボードというのはいいかも知れない。

ただ実物を手にして思ったが、A3 というのは二人で机の上で使うには、少しでかくてごつい気がする。
さて実際にはどんなものだろう。楽しみだ。

# こうなると、ボードマーカーとイレーサーの良いのも欲しい。

2004年11月30日

Mozilla Firefox ~ 良いソフトウェアとは

■ Mozilla Firefox

最近は、Mozilla Firefox を使ってみている。

firefox.jpg

IE 等と比較して、ほぼ問題なく使えている。
そして、使い込む程に、徐々にではあるが楽しくなってきた。

Web ブラウザとして、多くの面で進化している。

Firefox は、機能や見た目をカスタマイズできるようになっている。
柔軟なコア部分を拡張部分が取り巻いている。
そして、更にこれから進化していくであろう、という期待を抱かせる。

こういう新しいものに接することは、「良いソフトウェアとは、例えばどういうものか?」ということを考える良い機会になる。

■ 良い道具とは tools.gif

様々なユーザーがいる。様々な要望がある。
年年歳歳、環境は変化していく。新たな要望が、生まれていく。

一人一人のユーザーもまた、使い始めの時期があり、次第に使い慣れ、そしてその内、自己流の使い方を見つけていく。
徐々に使い方を変化させていくのだ。

使い始めの頃の「判りやすさ」・「使いやすさ」と使い慣れてからの「判りやすさ」・「使いやすさ」は違う。
使い始めの頃に便利だった機能が、使い慣れてからは邪魔な機能になることもある。
要らない機能は使わなければ良い、ではない。寧ろ、要らない機能は存在すべきでない。

道具に体を合わすのではない。道具が体に馴染んでいって一体感を感じさせるべきなのだ。そして、自分に合った道具を使う、という喜びを感じさせることができれば素晴らしいことだ。

■ ソフトウェアは良い道具になれるか software.gif

ソフトウェアにしてもハードウェアにしても IT 周りの道具は、今ひとつ使い勝手が宜しくない、とよく言われる。特にソフトウェアの使い勝手の悪さは、他の道具と比較されて指摘されることが多いようだ。

なにしろ、道具としての複雑さの違いがあるし、勿論、ユーザー側の歴史が違う。
なにより、道具としてのソフトウェア自身、まだまだこなれていないのだとは思う。


しかし、ソフトウェアは、可能性としては、すごいものを持っている(はず)だ。


普通の道具というのは、大概、作られた時点で機能や見た目が決まってしまう。
後付けの機能というのはそんなに期待できないし、後から見た目を変えることも余りできない。
つまり、こういう道具の機能や見た目は、静的(スタティック)バインディングであり、事前バインディングだ。

「良い道具の例」によくあげられる一眼レフは、あれは、Strategy パターンだ。
動的(ダイナミック)バインディングになっている。
インタフェースさえ合うものなら、使うときに機能を取り替えられる。

それに対してコンピュータという道具は、これは更に遅延(レイト)バインディングなのだ。
後付けの機能に対応する。
コンピュータがユーザーに与える利便性の多くは、後から「インストール」される。

Firefox のようなソフトウェアだって、先に見た通り、遅延(レイト)バインディングだ。
作り方によっては、後付けの機能や後付けの見た目に対応することができる。

使われ方が変化したり、どんどん進化したり、ユーザーの個々の希望に合わせたり。
そういうのはソフトウェアの得意技の筈なのだ。

ソフトウェアは、作り方により、とても良い道具になる可能性を持っていると思う。

■ 良いソフトウェアとは tool.gif

「やりたいことが一応できる」ことが、品質ではない。
万人の平均を満たすソフトウェアが良いソフトウェアではない。
人々の欲する機能を一挙に搭載したソフトウェアが良いソフトウェアではない。


良いソフトウェアは、「変化を抱擁(ほうよう)」する。

2004年12月02日

FPD (福井プログラマー伝説) の忘年会

今週土曜日は、福井のプログラマのコミュニティの忘年会に参加予定。

FPD (福井プログラマー伝説) 忘年会
日時 2004/12/04(土) 18:30より
場所 福井駅近くの居酒屋
概要 近況報告など

# まだ参加者募集中 & 歓迎だそうなので、参加希望の方はメール等ください。

続きを読む "FPD (福井プログラマー伝説) の忘年会" »

2004年12月04日

FPD (福井プログラマー伝説) 忘年会

福井のプログラマのコミュニティ「FPD (福井プログラマー伝説)」の忘年会に参加。

福井駅近くの居酒屋にて。
kinya.jpg

えちぜん鉄道で行ってえちぜん鉄道で帰ってきた。
都会では普通のことかも知れないが、福井では、往き帰り電車で飲み会に参加するのは、かなり珍しいパターン。

ていうか終電早過ぎ。


会の中で出た話で、自分も数年前から考えていたことだが、福井でも IT 技術者の横のつながりで盛り上がるのは、良いことではないだろうか。

それには、

  • コミュニケーションの場
  • ファシリテータ
  • イベント

の三つが重要だと思う。

考えていきたい。

2004年12月07日

圧縮/解凍アルゴリズム

cmprs.jpg
昔考えた圧縮/解凍アルゴリズム。
# 特許が切れたので公開 (嘘)。

この圧縮/解凍アルゴリズムの特徴

  • 任意のファイルの内容を 32 bit 整数一個 に圧縮可能。
  • 但し不可逆圧縮。テキスト ファイル向き。


圧縮/解凍アルゴリズム

  1. 道行くサラリーマンを一人つかまえて、ファイルの中身を読み聞かせる。
  2. その人に電話番号を聞いて数字としてメモしておく。
  3. 復元したくなったら、メモしておいた数字で電話を掛けて「あの時私何て言いましたっけ」と聞く。
  4. 多分正確には覚えちゃいないだろうから「不可逆」。


高品質版 (サービス パック 1)

  1. 道行くサラリーマンを一人つかまえて、ファイルの中身を読み聞かせる。

を以下に差し替え。

  1. 道行く東大出ていそうな若いサラリーマンを一人つかまえて、ファイルの中身を読み聞かせる。


セキュリティ パッチ (サービス パック 2)

  1. その人に電話番号を聞いて数字としてメモしておく。

を以下に差し替え。

  1. その人に電話番号を聞いて数字としてメモしておく。但しそれが電話番号である事は実の親にも明かさない。


# 現在 C#/.NET で実装中 (嘘)。

2004年12月08日

デブサミ2005

Developers Summit 2005 (デブサミ2005)』が、セッションの登録申込み受付を開始した。

  • 2005/2/3(木)~4(金)
  • 青山ダイヤモンドホール (東京都港区)
  • 主催: 翔泳社

デブサミは初回からずっと出ている。
今度のデブサミには特に期待している。

セッションのタイム テーブルをざっと見てみたが、どうしても聴きに行きたいセッションが沢山有る。

  • 02/03 15:15~16:15
    【.NET】 「VB.NETは、テストファーストで行こう」

    中西 さん と 福井 さん が出るのか・・・ こりゃ聴きに行くしかないな・・・

  • 02/03 15:15~16:15
    【プロジェクトマネジメント】 「技術系コーチング入門」

    本間 さん のコーチング入門か。コーチング興味有るし、これは聴きたい。

  • 02/03 17:30~18:30
    【開発プロセス】 「デブサミ版『バグがないプログラムのつくり方』~テスト駆動開発によるペアプログラミング・ライブ」

    倉貫 さん が出るのか。これは是非聞かないと。

  • 02/03 17:30~19:00
    【.NET】 「VB.NET vs C# 『.NET 言語合戦』」

    INETA Japan の企画… これには参加しなきゃ。

  • 02/04 10:00~11:00
    【開発プロセス】 「オブジェクト脳をなぜつくるのか」

    平澤 さん と 牛尾 さん のコラボレーション。きっとすごい。とても聴きたい。

  • 02/04 10:00~11:00
    【.NET】 「楽になりたい貴方のための ASP.NET 再入門」

    小川 さん が出るセッション。ASP.NET もずっと勉強してるしな。このセッションも是非。

  • 02/04 13:00~14:00
    【.NET】 「ASP.NET 実装パターンとデータセットインターナル解説」

    こちらは、森屋 さん のセッション。ASP.NET の実装パターンは興味ある。

  • 02/04 15:15~16:15
    【開発プロセス】 「ソフトウェア開発の「見える化」」

    平鍋 さん のセッション。明日のオブジェクト倶楽部 クリスマス企画 と同じテーマ。こりゃあ聞き逃せないな。

  • 02/04 15:15~16:15
    【.NET】 「My Framework 作成の勧め:アプリケーションを30個作る時に何を用意するか」

    arton さん のこれは必見だな。今丁度 My Framework の試作をしているところだし。

  • 02/04 17:30~18:30
    【開発プロセス】 「ファシリテーション入門」

    本間 さん のファシリテーション入門。これは絶対楽しいだろうな。きっと素敵な体験になる。

このリストのスピーカーは、知人または直接お話をしたことがある方ばかり。そして、どれも興味深い内容。
どうしても聴いてみたい。

他にも聞き逃したくないセッションが結構ある。
それにまだスピーカーが未定のところが沢山ある。今後も要チェックだな。

しかし… それにしても見事に時間がぶつかりまくり。
参った。
どうしよう。

2004年12月24日

いやなコメント Part 1

    // Data data2 = data1; --- (1)
    // (1) だと何故かうまく動かないので下に修正。
    // ― 2004/11/23 Bill
    /*
     *   「何故かうまく動かないので」ってなんだよそれ (泣)。
     *   ― 2004/12/04 Yoshi
     */
    // 下のコードにすると、ちゃんと動くんです。
    // 確認済み。― 2004/12/06 Bill
    /*   ていうか、コピーコンストラクタの方
     *   確認するだろ、普通。
     *   ちゃんとやってよ。もう (泣)。
     *   ― 2004/12/07 Yoshi
     */
    Data data2;
    data2 = data1;

いやなコメント Part 2

    class Foo
    {
        private int i; // i とは決して公開しないこと
    }

2005年01月06日

第3回ITベンチャー交流会

chikura さんのところで「第3回ITベンチャー交流会」のことが紹介されていた。

「『百式』を運営する田口 元氏をお招きしてのセミナー&交流会」とのこと。
『百式』メールマガジンは私も購読している。
特に参加制限はないとのことなので、申し込んでみた。

  • 2005/01/21(金) 17:00~20:30
  • 福井県産業情報センタービル 会議室A・B 及び レストラン「グレイズ」(2F)
  • 参加料 1,000円


今年は、福井のIT技術者間の横のつながりを強めて行きたいと考えている。
こうした交流会参加も含め、色々と活動してみたい。

続きを読む "第3回ITベンチャー交流会" »

2005年01月11日

『ソフトウェア技術者サミット in 福井』

fukuiken.gif
以下を開催します。
是非ふるってご参加ください。

『ソフトウェア技術者サミット in 福井』
日時 2005/01/31(月) 13:00-17:10 (受付開始:12:30)
会場 福井県産業情報センタービル 8F (福井県坂井郡丸岡町) <http://www.fukui-iic.or.jp/fisc/map.html>
主催 アジャイルプロセス協議会 見積り契約ガイドライン作成ワーキンググループ
共催 FITEA ― 福井情報技術者協会 準備委員会
参加費 無料
参加資格 特になし
お申込み メールでの申し込み。 詳細は、イベント告知サイト (http://fitea.org/events/050131a/sofsam.html) にて。
概要 大槻 繁 氏 や 平鍋 健児 氏 のアジャイル プロセス関連の講演や福井県内の IT エンジニアの交流イベントなど。 詳細は、イベント告知サイト (http://fitea.org/events/050131a/sofsam.html) にて。


前回も書いたことですが、今年は、福井のIT技術者間の横のつながりを強めて行きたいと考えております。
FITEA ― 福井情報技術者協会 を立ち上げ予定です。
※ イベントや FITEA へのお問い合わせや参加のご希望などありましたら、私あてでも構いませんのでお気軽にどうぞ。

2005年01月22日

第3回ITベンチャー交流会

fsscbuil.jpg
昨日、『第3回ITベンチャー交流会』に参加してきた。

第一部は、『百式』を運営する田口 元氏のセミナー。
「人と違った発想は、人と違った情報源から。超人気メルマガ&サイト『百式』管理人が語るビジネスを成功につなげるための発想術とは」というテーマ。
実際に田口氏が『百式』で行ってきた、

  • 「専門家」としてインターネットで取り上げられるには
  • 取り上げられ続けるには
  • 情報収集の方法

のかなり具体的なノウハウが語られた。
また、

  • 2005年は、どのように情報発信していったら良いのか

についても、語られた。

どれも、なるほど、と思えるもので、今後 Web 上で情報発信していく上で、大変参考になった。
また、田口氏の成功するための発想パターンの一端を伺い知ることができたように思う。

第二部は、立食形式の交流会。

短い時間 (一時間半) だったが、どんどん二十人位の人と話した。
初対面の人が多かったが、日頃よく参加するようなセミナーと異なり、様々な職業の人がいらして興味深かった。

また機会があったら、参加したい。

続きを読む "第3回ITベンチャー交流会" »

2005年01月25日

福井のIT技術者さん、1/31に会いましょう

atmr.gif
にも、書いた『ソフトウェア技術者サミット in 福井』ですが…

chikura さんとこで、楽しい紹介を書いて頂きました。

中々楽しい有意義な会になりそうです。
お近くの IT 関係の方は是非ご参加ください。

2005年01月27日

プログラマー ヒロシです

「プログラマー ヒロシです」というネタを書いてみた。

2005年02月01日

ソフトウェア技術者サミット in 福井

fsscbuil.jpg

『ソフトウェア技術者サミット in 福井』
日時 2005/01/31(月) 13:00~
会場 福井県産業情報センタービル 8F (福井県坂井郡丸岡町)
主催 アジャイルプロセス協議会 見積り契約ガイドライン作成ワーキンググループ
共催 FITEA ― 福井情報技術者協会 準備委員会

ssf03.jpg

  1. 『アジャイルプロセス協議会の活動内容と今後の展望について』フリーITコンサルタント 北野 弘治 氏 特別出演 ギターSE 氏
  2. アジャイルプロセス協議会 セミナー『アジャイルプロセスのもたらすインパクト ―ソフトウェアとビジネスの本質的困難をのりこえる知識主導型の経営、組織、プロセスについて考えよう―』 株式会社一 大槻 繁 氏
    ssf01.jpg
  3. 福井情報技術者協会 発足セミナー『今こそ、立ち上がろっさ。ソフトウェア大国福井を目指して!』 福井情報技術者協会 準備委員会
  4. アジャイルプロセス協議会 セミナー『リーンソフトウェア開発と「見える化」』 株式会社永和システムマネジメント 平鍋 健児 氏
    ssf04.jpg
  5. 交流イベント『ソフトウェア開発の成功・失敗の意外な要因』
  6. 懇親会
    ssf02.jpg
  7. 二次会

北野さんの挨拶でスタート。北野さんのアイディアで、アイス ブレーキングとして、ギター SE 氏がギター持参で特別出演。ソフトウェア技術者を斬ってもらった。

私は、福井情報技術者協会 発足セミナーと交流イベントで司会をした。
話しながら、観客席側を見ていたら、なんか妙に大きいビデオ カメラで撮影している人がいる。
後で名刺を渡されて気付いたが、FBC (福井放送) の人だった。
夕方の FBC のニュースで流れたそうだ。
まさか TV 局が取材に来るとは思わなかった。誰も直接は声を掛けていないはず。

それにしても、大槻 さん と 平鍋 さん の話は良かった。実装者だけでなくソフトウェア開発全体を広い視野でみていて、しかも、具体的な解が用意されている。とても刺激的な話だ。
実は、今回のテーマのお話をお二人から伺うのは、とある東京のイベントに次いで二回目。
これから、福井でもこのような講演が聴けるようにしていけたら、と思う。

実は数年前から、こうしたソフトウェア技術者向けのイベントを福井で開催したいと思っていた。こうして、アジャイルプロセス協議会 さん のおかげで実現できたことは感無量だ。

福井・石川にもアツイ技術者がいることが判ったこと、そして、その人達と沢山の話ができたことは、とても良かったと思う。
イベント中、懇親会、二次会と話したが、まだまだ話し足りないくらいだ。

この体験を、是非次の行動につなげていきたい。


参加された方のエントリー:

2005年02月09日

デベロッパーズ サミット2005

上記に参加してきたので、レポートしてみたい。

■ 詳細

Developers Summit 2005
日時 2005/02/03(木)~04(金)
会場 青山ダイヤモンドホール
主催 株式会社 翔泳社
詳細 Developers Summit 2005


■ はじめに

デベロッパーズ サミットの開催期間には丁度、寒気団が日本上空に来ていた。
北陸地方は、今年一番の大雪で、出発前日の午前中には羽田行きが飛ばなかったこともあり、無事会場に行けるかどうかが先ず心配だった。

当日の朝は、五時半に自宅を出発した。道には新雪が積もり、ちょっと油断するとすぐスタックしてしまう。
高速道路もすっかり凍っている。凸凹の路をゆっくりと走った。

それでも小松空港には随分早くついた。INETAJ のイベントに一緒に出る杉下さんも、たまたま飛行機が同じで、同じ頃に空港にいらした。
心配した飛行機は定刻通りに出発し、定刻通りに羽田に到着。予定通りに会場につくことができた。ほっと一安心。


dvsm0502.jpg dvsm0508.jpg dvsm0503.jpg dvsm0501.jpg

さて会場に入ると、すごい人の行列。
二日間会場の青山ダイヤモンドホールは大変な人で、歩くのに苦労した。

デベロッパーズ サミットには、最初の年から毎年参加しているが、参加するたびに良くなっている。
特に今回は、楽しみなセッションが盛り沢山で、選ぶのに迷うほどだった。


ただ、昨年も感じたことだが、あの Web からの申し込みのユーザー インタフェイスはちょっと「いけてない」気がする。
あれは本当にユーザーの方を向いた UI と言えるのだろうか。
ユーザー側の関心事に対してではなく、主催者側の関心事に対して UI が設計されているように感じた。

  • 主催者側の関心事 : 各セッションに何人の人が参加しようとしているのか。どういう人が参加しようとしているのか。
  • ユーザー側の関心事: 自分がどのセッションを何時受けるか。申し込み/変更/キャンセルの方法。

今回の参加者、即ちデベロッパーにとっては、ユーザーの視点・ユーザーの関心事に合わせるのがデフォルトだから、多分違和感有りまくり。


でもまあ、その他の面では大満足。とっても良いイベントだった。
デベロッパーが中心というのが実に良い感じ。

このイベントのサブタイトルに「デベロッパーの復権」というのがある。
この趣旨には大賛成。
日本のデベロッパーも、もっと楽しく自信に満ちて物作りをして良い。


■ 参加内容

○ XP事例カタログ
大熊 知栄 氏、猪狩 錦光 氏、関 将俊 氏、小倉 唯克 氏

四年の歴史を誇る XPJUG (日本 XP ユーザグループ) で紹介されてきた XP プロジェクトの中から三つの例が紹介された。

すごい人で立ち見がでている。

大熊 さんの司会に始まり、三人の発表者が順に XP 事例の紹介を行った。

関 さん の発表は、XP 祭り 2004 で 関 さん が発表された内容「三年目の報告」(サブタイトル「XPが良いか悪いかなんて話は もうしないよ。」) だが、マイナー バージョンアップしていて「その後」が少し語られた。題して「3.5年目の報告」。「忍者式テスト」など、独自に XP をカスタマイズされている。
二人目の方はゲーム業界での XP。単純作業などのときに使う「ペアプロ解除」というプラクティスが興味深かった。

お二人とも開発者として、XP をやっていく中で現実的な解をいくつも見つけている。
また、回顧をよくやっていて、次にフィードバックしている。

今回特に良かったのは、顧客側からの XP プロジェクトの発表があったことだ。
以前見たことのあるバーンダウン チャートが顧客側視点で語られた。
これは結構目から鱗で、視点が変わると随分違って見えるものだと思った。


○ 失敗から学ぶプロジェクトマネジメント
伊藤 健太郎 氏

dvsm0504.jpg
XP だけでなく、プロジェクト マネジメントについても学ぶ必要があるだろう、ということでこのセッションを聴きにいった。

  • プロジェクトの失敗原因は? → プロジェクト マネジメントの進化のさせ方

という内容のセッション。
プロジェクトの失敗原因で、

  • プロジェクトを KKD (勘と経験と度胸) で実施

というのが印象的だった。

ソフトウェア開発の場合、QCD (Quality: 品質・Cost: コスト・Delivery: 納期) のマネジメントだけでは、中々プロジェクトの成功に結び付かない、とよく言われているようだが、プロジェクト マネジメントも進化しているようだ。

講演中、プロジェクト マネジメントによるプロジェクト成功のための様々なキーワードが使われたが、「いけてる」と思ったものを私の独断であげてみる。

  • いけてるキーワード:
    • コミュニケーション
    • モチベーション
    • キャリアパス
    • ナレッジ マネジメント
    • メンタリング

ところで、はじめの方で「是非このセッションが思い出に残るように」とのことで、「プロジェクトの失敗について隣の人と話してみよう」という時間があった。
アイス ブレーキングなんだろうが、これはちょっといけてない。余りにも唐突で中途半端な感じ。


○ .NETでアジャイル ペアプロ ライブ! ~VB.NETはテスト ファーストで行こう!
中西 庸文 氏、福井 厚 氏

dvsm0505.jpg

「ドットネッターでアジャイラーで TDDer (謎)」になるための方法について。

最近は、Java の開発者に比べてアジャイルに馴染みが薄い .NET の開発者の人たちにもアジャイルな開発を知ってもらいたいという趣旨の講演や記事が(ようや)く増えてきたようだ。
嬉しい限りだ。

さてこのセッションだが、なんと終始関西弁。
ペア プレゼンになっていて、会話形式で説明が進められていく。

圧巻は途中二回の「ペアプロ笑劇場」と題したペアプロ ライブ。
若手アジャイラーとアジャイル未経験なベテラン先輩開発者という設定で、テスト ファーストなペアプロを行う。
で、このペアプロが TDD で且つ TDD (謎) なのだ。

前者の TDD は、勿論テスト駆動開発 (Test Driven Development) のこと。アジャイルではお馴染みの手法だ。
後者の TDD (謎) は、ツッコミ駆動開発 (Tsukkomi Driven Development)。
テンポの良いボケとツッコミによって、開発が進められていった。このテンポは関西弁ならではかも。

※ ちなみにツッコミ駆動開発にもペアプロは必須。
※ 一人でぶつぶつとボケとツッコミをしながらプログラミングされるのはかなり嫌だ。

面白いのは、ペアプロなので、ドライバー役 (キーボードでプログラムを書く方: リアルタイム コード レビューア) とパートナー役 (ドライバーのコーディングを見ていてリアルタイムにフィードバックを行う) があるのだが、パートナーがボケてドライバーがツッコんでいたりする。


二回目の「ペアプロ笑劇場」では、Mock (擬似オブジェクト) によるテストも紹介され、技術的にも興味深かった。


このセッションを聴き終わって考えたこと:
これは私の経験則だが、アジャイルな人というのはアジャイルな講演をする。
見ていて感動が有る。
プレゼンテーションが濃いのだ。

薄いセッション → 濃いセッション → もっと濃いセッション
パワーポイントに文章を書いておいて、それを読みながら解説 → 実際にやってみせる → 参加者に体験してもらう
言葉で説明する → 図や写真で説明する → 寸劇で表現・動かして説明
抽象的な新しいアイディアを述べる → 具体的な例を交えて新しいアイディアを述べる → 新しいアイディアを試してもらう

コミュニケーションの帯域が違うのだ。時間当たりに伝わる情報量が違う。
これは、沢山話して言葉数を増やす、ということではない。沢山のパワーポイントを用意する、ということでもない。

発信側でなく受信側の情報量を増やすのだ。
新しいアイディアというものは、いくら言葉数を増やしたって伝わらないものは伝わらない。
見せる工夫、伝える工夫をしなければ。

私はこれを Broadband Communication と呼びたい。

brdbndcm.gif

仕事でも多分同じだ。

例えば、

  • 「プロジェクトの失敗の主な要因はコミュニケーション エラー」

という問題提起があるとする。先のプロジェクト マネジメントのセッションでもこれはあげられていた。

でそれに対する解。プロジェクト マネジメントのセッションでは、

  • 「コミュニケーションは『お仕事』なんだからしっかりやらなくちゃ」

ということだった。

でも「プロジェクトの失敗の主な要因はコミュニケーション エラー」という問題提起に対して、しっかりやるべきなのは自明であって、それだけでは不十分なのだ。
そこには「見える化」など実践するための工夫がなければならない。アジャイルな人たちはそこが上手だと思う。


○ INETA Japan Presents VB.NET vs C# 『.NET 言語合戦』
河端 善博 氏、東海林 秀晃 氏、小野 修司 氏、石野 光仁 氏、菊池 和彦 氏、小島 富治雄 氏、福王寺 聡明 氏、杉下 朋年 氏、中西 庸文 氏、片岡 真二 氏、樋口 忠洋 氏、Hollytown 氏

Visual Studio .NET 2003 になってからは、VB.NET と C# はそれほど使い勝手に違いがなくなりつつある。2005 では更に優劣がなくなる。
その中で、VB.NET と C# のそれぞれの長所をあげて、双方の使いどころについて考えてみよう、という趣旨のイベント。
別にどっちを使っている方が偉いかを競う訳ではない。

INETA Japanは、.NET のコミュニティのコミュニティだ。
私は、パネラーの一人として参加。C# 側。

ライブで VB.NET と C# のそれぞれで七並べの戦略部分をプログラミングし、その場で対決した。
お客さんは勝つと思う方に投票し、勝負の結果により、アマゾン ギフト券や PSP などが当たる。全員に参加賞もあたる。

パネル ディスカッションは、どうやら C# 側が劣勢な(まま)終わってしまった。折角 C# 側のパネル リーダーの小野 さん が頑張ってくれてたのに。残念。
C# を応援してくれてた参加者の方はさぞやきもきしたことだろう。
というか、VB.NET 側のパネル リーダーの杉下 さん のプレゼンが良過ぎた。

反対にプログラミング ライブの結果の七並べの対戦では、C# 側が終始優勢だった。

商品の効果かも知れないが、全体としては結構ほんわかと盛り上がっていたようで、コミュニティ色が出ていて良かったのではないだろうか。


○ My Framework作成の勧め:アプリケーションを30個作る時に何を用意するか
arton 氏

或る業務に関して、沢山アプリケーションを書くのであれば、その業務に特化した良いマイ フレームワークを自分で書いた方が良い、というお話とその作り方のお話。

arton さん のお話は、理論的で且つとても判り易い。

  • フレームワークって何のことだったのか。
  • 作ると何がうれしいのか。
  • 良いフレームワークってどういうものか。
  • そして .NET 上で作る方法は。

arton さん の独特の語り口は、とても説得力がある。

フレームワークの作り方の話は特に技術的に興味深かった。

パラメータ、プッシュ モデル (Tell) /プル モデル (Ask)、依存性注入 (Dependency Injection) などの実際の実装方法を、C# のソースをデバッグ実行しながらデモで見せてくれた。

リフレクションで仮引数名で検索してみせたり、実行時にコンパイラを呼び出してパラメータを評価させたり、自作の DI コンテナを使って依存性注入を実際にやってみせたり、ととても楽しめた。

※ ちなみに、このソース コードは公開されている。


○ フレームワークの効能と、.NET導入事例紹介
三部 雅法 氏

.NET Framework 上でのフレームワークの紹介とその導入事例の紹介。
自社製フレームワークの説明という感じ。


○ セッション参加者のパーティー (懇親会)

dvsm0507.jpg dvsm0506.jpg

一日目の夜は会場でパーティーがあった。
デベロッパーズ サミットの場合は、他のイベントと比較して広い分野から参加者が集まっている。
で、層としては技術者が中心。
なんか縦割りでなく横割な感じで新鮮だった。

例えば、ドットネッターとアジャイラーは日頃それ程イベントでかぶらない。
今回はあちこちでドットネッターとアジャイラーが名刺交換する風景が見られた。

私も、多彩な人とお話ができて実に楽しかった。


○ 二次会

懇親会を途中で抜け出して、ドットネットな方々 (INETAJ・MVP) と原宿辺りで二次会。


○ その他

二日目の午前中は、INETAJ のリーダーズ ミーティングに参加した。
マイクロソフト 新宿オフィス。
その後 INETAJ の方々と食事会。


■ 人とのつながり

今回も多くの方々と話すことができた。
イベント参加の一番の収穫。

  • 今回デブサミで初めて直接ご挨拶できた方々 (50音順):
    小野 さん、菊池 さん、国広 さん、関 さん、田中 さん、原 さん、樋口 さん…
  • デブサミで再会できた方々 (50音順):
    arton さん、天野 さん、石野 さん、市川 さん、岩切さん、牛尾 さん、大熊 さん、太田 さん、小野 さん、沖田 さん、角谷 さん、懸田 さん、片岡 さん、河端 さん、倉貫 さん、小井土 さん、児玉 さん、佐藤 さん、渋木 さん、東海林 さん、杉下 さん、中西 さん、平澤 さん、平鍋 さん、福井 さん、福王寺 さん、松本 さん、水越 さん、堀田 さん、安井 さん、吉原 さん、和田 さん…
  • 同じデブサミ会場にいらしたのに再会できなかった方々 (50音順):
    北野 さん、本間 さん、森屋 さん、和田 さん…

※ お会いしたのにお名前のもれてる方、すみません。ご指摘頂けると幸いです。


■ 関連リンク:

2005年03月04日

こんなプロジェクトチームはいやだ

私のサイト内の Wiki に、いつの間にかこんな頁ができていた。
project.gif

面白いので、20個ばかり追加してみた。

2005年03月07日

FITEA オフライン ミーティング

fitea.gif

FITEA - 福井情報技術者協会 オフライン ミーティング
日時:3/25(金) 19時~
場所:福井駅前
お題:
  • お酒
  • 雑談・情報交換
  • FITEA 立ち上げイベント
  • 勉強会について
  • FIEA のインフラ整備 (掲示板など)
  • 今後の FITEA

興味の有る人はふるってご参加ください。
参加希望は福井情報技術者 交流掲示板 (FITEA BBS) まで。または私にメールください。

2005年03月24日

キーボード

hhk.jpg
上の写真は、私が愛用しているキーボード、PFU HHK。

最近、この HHK に新色が登場した。

その名も「墨」。
hhksumi.jpg

「墨」という名の通り、真っ黒ではなく微妙な色合いで木炭でできているかのように見える。
キートップも含め、見える範囲に文字はない。
※ 無刻印モデルの場合

HHK 好き、且つ、一人暮らしの頃一時炭火で自炊していた程木炭好きの私としては、とても欲しい。
出来ればペアプロのときも、これを持参したい。

いずれ誘惑に負けて買ってしまうかも知れない。


さて、ペアプロのときに持参したいキーボードと言えば、もう一つ次のもの。

datahand.jpg

DataHand キーボード。実売価格 ¥108,000!
一家に一台、どないだ。


ついでに以下で、他にもペアプロ向き (嘘) のキーボードを色々とあげてみよう。

kbd01.jpg kbd02.jpg
kbd03.jpg kbd04.jpg
kbd05.jpg kbd06.jpg
kbd07.jpg kbd08.jpg
kbd09.jpg kbd10.jpg
kbd11.jpg kbd12.jpg
kbd13.jpg kbd14.jpg
kbd15.jpg kbd16.jpg
kbd17.jpg kbd18.jpg
kbd19.jpg kbd20.jpg

2005年03月27日

FITEA オフライン ミーティング

fitea.gif

FITEA - 福井情報技術者協会 オフライン ミーティング
日時:3/25(金) 19時~
場所:福井駅前

に行ってきた。

七人の参加。
XML や CSS、Web アクセサビリティ等、Web 関係の技術の話で盛り上がった。
福井でのこうした横のつながりも大変楽しい。
技術の話で盛り上がるのは、とても好きだ。

今後もこのような交流を行っていくところから、FITEA の活動も行っていきたいと思う。

時期柄か、デスマーチや病気が原因で来られない方も多く、それはちょっと残念だった。

夜七時から始まって、十一時に近くなるまで飲んでいた気がする。
やや飲み足りない感があったので、更に二次会まで行ってしまった。


ところで、先週から五週連続で毎週別の集まりでの飲み会がある。
私としてはかなり珍しい状況。
# 家族からは、ちょっと苦情が出始めているような感じ。

続きを読む "FITEA オフライン ミーティング" »

2005年05月01日

FITEA 準備委員会ミーティング

fitea.gif
4/30 夕方からは、FITEA 準備委員会のミーティングに参加。

これから色々と、福井の IT 技術者を元気にするための活動を行っていきたい。

2005年05月16日

北陸ソフトウェア技術者ネットワーク (Hose-net) 創立イベント

『北陸ソフトウェア技術者ネットワーク (Hose-net) 創立イベント』に参加してきた。

北陸ソフトウェア技術者ネットワーク (Hose-net) 創立イベント
日時5/14(土) 13時~17時
場所金沢市武蔵町
参加費無料

金沢までは JR を利用。
久々に金沢駅東口に来た。
以前は、年に五百回位利用していたこともある金沢駅東口だが、すっかり様子が変わってしまった。
hn051401.jpg

hn051402.jpg

なんだか格好良いぞ、金沢駅。
一寸感動。
そう言えば福井駅も新しくなりつつあるのだが。


駅から 15 分程歩いて会場へ。

会場に着いてみると、スーツ姿の方が大半。
「あれ? ソフトウェア エンジニアのコミュニティのイベントだよね?」
技術者のコミュニティのイベントだと、カジュアルなものが多いので、ちょっと違和感。

全部で60名位だろうか。年齢層は高め。男性ばかり。
大学の方が結構いらした。

FITEA のイベントに参加して頂いた方も四名位いらして、お話をさせて頂いた。


hn051403.jpg

hn051404.jpg

内容は以下の通り。

  1. 創立についての説明
  2. 講演『ソフトウェア産業の競争力を考える ~ソフトウェアの品質と生産性を向上させる鍵は何か~』

    富士通総研 経済研究所 主任研究員 前川 徹 氏

    とてもアジャイルな考え方の方だった。
    講演の中で印象に残った言葉を幾つか羅列してみる。

    • ウォーターフォール モデルは間違いだ!
      • ウォーターフォール モデルでは、最初の要求定義の正しさの検証が、最後の受け入れテストまで行われない
    • 「先に計画を立て、その通りに実行する」で正しいのか?
      • 「一度も登ったことのない山を、計画通りに登山する」で良いのか?
    • 動くソフトウェアが一番重要
    • ソフトウェア エンジニアリング (CMM など) で日本のソフトウェア業界を救えるのか?
    • ソフトウェア工場は「アナロジーの罠」: 不適切なアナロジーは危機をもたらす
    • 考えるべきことは全て考慮し文書化 → 実際に動くものでフィードバックを得る
    • 「出来ないプログラマの方が給与が高い」で良いのか?
      • 最初に逃げ出すのは優秀なプログラマ
    • 良い客が良い店を育てる
      • 良いレストランが見分けられない「安ければ良い」客ばかりでは良い店は育たない

    一時間半の講演だったが、とても楽しく聴くことが出来た。

  3. 形式手法の一つであるモデル検査 (ソフトウェア検証方法の一つ) のツールの施行者の募集
  4. グループ ディスカッション

    10~12人×5グループに分かれてグループ ディスカッション。
    テーマは Hose-net に期待すること。Hose-net でやりたいこと。


次回は、富山でやるそうだ。今後に期待して行きたい。

続きを読む "北陸ソフトウェア技術者ネットワーク (Hose-net) 創立イベント" »

2005年05月28日

問題解決能力 1

ploblem.gif
技術系のメーリング リストや掲示板で、いつまで経っても同じような質問をする人がいる。

「初心者ですので教えてください。×××したいのですがうまく行きません。分かる方、教えてください」

この質問に誰かが答える。「×××するには、このようにします…」
すると、また似たような質問が来る。

「初心者ですので教えてください。○○○したいのですがうまく行きません。分かる方、教えてください」

何故いつまでも同じような高さの壁にぶつかっているのだろう。


「×××したいのですがうまく行かないので、コツを教えてください」

これは、

「私の目の前の問題を一刻も早く解決できるような手っ取り早い方法を教えてくれ」

という意味だ。
例えれば、

「頭が痛いので、頭痛薬をください」

と言っているようなもの。頭痛薬の効果が切れたら、また頭痛薬を欲しがることになる。
本当に問題を解決する道は、頭痛薬を飲み続けることではない。先ずは、頭痛の原因となっている病気について知ろうとすることだ。それでやっと問題解決のスタート地点に立てるのだ。


「×××や○○○がうまく行かない」状態と「×××や○○○がうまく行く」状態の差。それがこの人が抱えている問題だ。
それは本当は、「基本的な事柄がマスター出来ていない」ということかも知れない。
そして、それが本当の問題であれば「×××のやり方を教えてもらうこと」は、真の解決法ではないのだ。


「問題は何か?」から目をそむけていては問題は解決しない。

2005年05月30日

ソフトウェア・テスト PRESS

ソフトウェア・テスト PRESS』という本が出るようだ。

予約注文してみた。

2005年06月10日

ITアーキテクト

ITアーキテクト」という本が出るようだ。

目次を見ると、「エンタープライズ アーキテクチャ パターン」、「要求開発」、「プロジェクト・ファシリテーション」、「開発プロセスの最適化」のような言葉が並んでいる。

予約した。

2005年06月13日

指導者三倍段

teach.gif
最近、人に何かを教えることが多い。

これが中々難しい。例えば、C++言語の研修で、ポインタの概念がどうしても判らない人にそれを教えたり、クラスが理解できない人にクラスについて教えたり。
自分で使いこなせてるつもりの技術でも他人にそれを教えるのは難しい、ということをつくづく感じる。


ここで、私が私の師匠 (誰) から教わった言葉をひとつ。

自分で使うのに比べて他人に使い方を教えるのは、三倍の理解が必要だ (当社比)。

つまり、自分が使える、という段階より、他人にそれが教えられる、という段階の方が大分知識の習得レベルが高いわけだ。

指導する側には指導される側に対して、段位にして三倍ないと教えられない、ということ。それが『指導者三倍段』だ。
# ちなみに、大山倍達が言っていたのは『剣道三倍段』 (謎)。


参考までに、様々な技術習得の段階についてあげてみる。

■ ソフトウェア技術習得のレベル分類

  • 段階 1 : 無知の段階 ― その技術について聞いたこともない
  • 段階 2 : 気がかりな段階 ― その技術について文献を読んだことがある
  • 段階 3 : 見習いの段階 ― その技術について三日間のセミナーに通った
  • 段階 4 : 実践しようとする段階 ― その技術を実際のプロジェクトに適用しようとしている
  • 段階 5 : 職人の段階 ― その技術を仕事の上で自然に自動的に使っている
  • 段階 6 : 名人の段階 ― その技術を完全に消化していて、いつルールを破るべきかを知っている
  • 段階 7 : エキスパート ― 専門書を著作し、講演し、その技術を拡張する方法を探究する

■ 「守・破・離」

人や本などから何かを学び、ひとり立ちしていくまでに、『守』・『破』・『離』という段階を進んでいくと言われている。

  • 「守」: 最初は教わった型を守り、型の通りにやる
  • 「破」:教わった型通りでなく、自分なりに変化させていく
  • 「離」:最後には型を離れて独自のやり方を作り出し、行う

■ 「識らない」の順位

  • 1 : 無知の欠如 ― 何かについて識っていて、それを使うことが出来る
  • 2 : 知識の欠如 ― 何かについて識らないが、識らないことを識別している
  • 3 : 認識の欠如 ― 何について識らないかを識らない
  • 4 : プロセスの欠如 ― 何について識らないかを識らない、ということをどう解消したら良いかを識らない
  • 5 : メタな無知 ― 「識らない」とはどういうことか識らない

■ ソフトウェア職人の称号

2005年06月27日

初学者向け「プログラミングの心得」

プログラミングの入門時には、取り敢えず以下を守ってもらうことにしている。
※ 言語は一応 C++

或る程度プログラミングになれるまでの間は、無茶なコードを書きがちなので。

「プログラミングの心得」


  • 一、同じものには同じ名前をつけるべし。
    • ネーミング重要。統一感を大切に。

  • 一、同じコードは三回以上書かないこと。

  • 一、関数の長さは、平均で10行以内 (最大でも20行を越えない)。

  • 一、グローバル変数は禁止。

  • 一、メンバー変数は private。

  • 一、what → how の順番で書く。
    • 何をするのか → どうやってするのか、の順。

    • インタフェイス → 実装、の順。

  • 一、コメントで安易に説明しない。コードに説明させる。

  • 一、マジックナンバーの禁止。

  • 一、コーディング標準に従う。

続きを読む "初学者向け「プログラミングの心得」" »

2005年08月18日

FFD と F4WDD

4wd.gif

関係ないけど (謎)、「FDD は Future Driven Development だが、FFD は Front engine Front driven Development だ」というのを思い付いた (謎)。

同様に (謎)、「フルタイム4WDD (Fulltime Four Wheel Driven Development: フルタイム四輪駆動開発)」というのもある (謎)。

この開発方法の特長は、「雪道に強い」。

# ので、北陸の先進的な開発者は、皆これで開発している (嘘)。

アスベスト

関係ないけど (謎)、「アスベスト」って「アスペクト」と似てる。

2005年08月29日

「ユーザーからはシステムのユーザー インタフェイスがシステムとして認識される」という法則

tv.gif
「ユーザーからはシステムのユーザー インタフェイスがシステムとして認識される」という法則 (長っ!) というのを思い付いた。

例をあげてみる。

電器屋に置いてあるテレビジョン放送を観るための家電。あれのことを「テレビ」と呼んでいる人が多い。

私は、あの器械を「テレビ」と呼ぶことには(いささ)か抵抗がある。
「テレビ」即ち「テレビジョン」というのは、本来の意味としては、「放送や通信によって遠方へ映像を送る技術またはシステムのこと」であって、「テレビジョン受像機」のことではないからだ。

しかし、ユーザー側の視点では「テレビ」というのは「テレビジョン受像機」のことなのだ。その視点から言えば、「テレビジョン受像機」=「テレビ」でなんら間違っていない。

つまり、「ユーザーからはシステムのユーザー インタフェイスがシステムとして認識される」という法則によって「テレビ」と呼ばれているという次第。


別の例をあげてみると、「電話」の場合も同様だ。
本来「電話」というのが遠隔通話技術またはシステムを指す言葉であるにも関わらず、ユーザーにとっての「電話」は手元にある電話機のことだ。
ユーザーは、電話機を「電話」と呼び、「電話機=電話」と認識する。


上記の法則に従えば、「ユーザーにとってのシステムの仕様」=「ユーザーとシステムの境界 (ユーザー インタフェイス) の仕様」ということになる。「ユーザーにとっての仕様を決めること」=「ユーザー インタフェイスを決めること」だ。

2005年09月05日

ライトニング トークス

dora.gif
※ ライトニングトークス:
10名程度の発表者によって短い発表を次々に行なっていくセッション。
1人5分間で延長なし。5分経つと容赦なく銅鑼(どら)が鳴り、途中でもそこで打ち切り。

これまでに出たトークスのメモ:

日時 イベント 演目 チーム 人数
2003/07/18 XP 祭り 2003 XP (XP Pedagogics: XP 的教育法) ---- 1人
2004/07/09 オブジェクト指向実践者の集い 第二弾 『サルでもわかるオブジェクト指向』失敗談 ---- 1人
2004/07/26 XP 祭り 2004 新人研修 XP式 ---- 1人
2004/12/09 オブジェクト指向実践者の集い 第三弾 TDD Player ---- 1人
2005/06/29 オブジェクト指向実践者の集い 第四弾 こんなチームはいやだ 社内の新人とのチーム 5人
アジャイルとジャグリングの不思議な関係 アジャグラー チーム 6人
2005/09/03 XP 祭り 2005 アジャイルとジャグリングの不思議な関係 アジャグラー チーム 7人
NAgile のススメ NAgiler チーム 4人
2005/12/03 VSUG設立記念セミナー 『開発プロセス フォーラム』のご紹介 ---- 1人
2006/02/10 Developers Summit 2006 未定 ---- 2人

続きを読む "ライトニング トークス" »

2005年09月23日

MVP Private Windows Vista Beta Seminar

またもや三連休。
今日は、半日自宅でマイクロソフトのセミナーを受講。

MVP Private Windows Vista Beta セミナー
日時 2005/09/23 13:30~17:30
場所 マイクロソフト新宿オフィス
または Microsoft Office Live Meeting とチャットによる遠隔地からの参加

2005年10月13日

Yahoo! JAPAN からリンク

srchngn.gif
私のサイトYahoo! JAPAN から何時の間にかリンクされていることに気付いた。

「アジャイル開発」カテゴリの方は、最近出来たカテゴリらしく、全登録サイトに "NEW!" のマークが付いている。

XP日本ユーザグループを始めとして、アジャイルプロセス協議会オブジェクト倶楽部さん、テクノロジックアートさん、meta bolics さん等、日本を代表するアジャイルの重鎮と一緒に並んでいるのを見るとなんだか嬉しい。

しかし、C# の MVP なのに、「C#」カテゴリに属するサイトを提供できていないのは残念だ。努力したい。

2005年10月15日

ふくいITフォーラム2005

金曜日、ふくいITフォーラム2005 を見に行ってきた。
scghndsy.jpg scghndsy.jpg scghndsy.jpg

会場では、FITEA の人達 6 人位とお会いできた。

同時に「北陸技術交流テクノフェア2005」等も開催していた。
会場の福井産業会館は、福井県や石川県の多くの企業のブースで賑わっていた。
様々な北陸の企業が今後どのようなことで食っていこうとしているのか、その一面だけでも見ることができて良かったと思う。

また、「苦情・クレーム博覧会2005」も開催していた。
scghndsy.jpg

ここに、私の好きな「無許可で何かを禁止している立て札」があったので、喜んで写真をゲット。
※ 参考:「ちょっと気になる立て札
scghndsy.jpg

2005年11月25日

12月のイベント (VSUG設立記念セミナーなど)

seminar.gif
来月に開催されるイベントで興味深いものを幾つかあげてみる。
※ 今ならどれでも参加登録可能。

先ずは、今月17日にオープンしたばかりの VSUG (Visual Studio User Group) の設立記念イベント。

イベント名 VSUG設立記念セミナー
日時 2005年12月3日(土) 13:00開始 18:30終了 (※12:40受付)
主催 VSUG (Visual Studio User Group)
場所 施設名 マイクロソフト(株) 新宿オフィス (http://www.microsoft.com/japan/presspass/MAP/shinjuku.aspx) 5Fセミナー室
最寄駅 JR新宿駅 南口より徒歩3分
参加費 ¥1,000 (懇親会費込) (事前登録制)
詳細・プログラム http://vsug.jp/tabid/105/Default.aspx

私は、ボードリーダーとしてライトニング トークスで五分間話す予定。

次に年二回恒例となったオブジェクト倶楽部のイベント (オブラブイベント)。

イベント名 第5弾 オブジェクト倶楽部 2005クリスマスイベント
~プロジェクトを成功させる7つのカギ~
日時 2005年12月16日(金) 9:45~17:10
主催 オブジェクト倶楽部
場所 施設名 国立オリンピック記念青少年総合センター (http://www.nyc.go.jp/)
最寄駅 小田急線参宮橋駅より徒歩7分
参加費 講演会 ¥5,000/懇親会 ¥3,000 (事前登録制)
詳細 http://www.objectclub.jp/event/2005christmas/
プログラム http://www.objectclub.jp/event/2005christmas/schedule

実は、同じ日に、Microsoft Practice! Practice! Practice! (MP3 (エム ピー キューブ) ) というイベントが開催される。

イベント名 Microsoft Practice! Practice! Practice! (MP3 (エム ピー キューブ) )
日時 2005年12月16日(金) 13:00~17:45
主催 マイクロソフト株式会 社
場所 施設名 東京国際フォーラム 7F「ホールB7」 (http://www.t-i-forum.co.jp/)
最寄駅 JR有楽町駅より徒歩1分
参加費 無料 (事前登録制)
詳細 http://www.microsoft.com/japan/msdn/events/mpcube
プログラム http://www.event-registration.jp/events/mp3/program.htm

こちらもとても良さそうなイベントなので、是非参加したいと考えていた。
ドットネッター (謎) としては、実に魅力的なプログラムだ。

でもオブジェクト倶楽部のイベントもここまで皆勤賞だし。
最終的には、オブジェクト倶楽部のイベントに参加することにした。
懇親会の有無で決めた感もある。

ちなみに、オブラブイベントでは、過去4回ほどライトニング トークスに出させて頂いた。結構無理して出ていた。
これは、今回はちょっとやめとこうと思っている。
最近は、このイベントでのライトニング トークスのレベルが高くて、素人(とうしろ)が下手に手を出すと火傷をしそうな感じだ。
ここは、暫く (けん) (=様子見) だ。

2005年12月06日

Jude のマインドマップ Tips

Jude のマインドマップ Tips
※ 元ネタは、ざかざーん さん

  1. 基本編: by ざかざーん さん
    1. メモ帳で複数行を選択し、Jude のマインドマップにコピー & ペースト。
    2. 各行がトピックに!
    3. 更に、行頭にタブやスペースがあれば、子トピックに。
  2. 応用編: …ということは…
    1. Jude でマインドマップを作成。
      mm.gif
    2. Jude で作成したマインドマップを選択。
    3. メモ帳にコピー & ペースト。
    4. 拡張子 ppt で保存。
    5. このファイルを起動すると、パワーポイントの資料に!
      mmppt.gif
  3. 更に応用編: 上の応用編では複数ページのパワーポイントの資料にならないので…
    1. Jude でマインドマップを作成。
    2. Jude で作成したマインドマップを選択。
    3. Visual Studio のエディタにコピー & ペースト。
    4. ここで、Ctrl+A キーを一回、Shift+Tab キーを一回。
    5. 拡張子 ppt で保存。
    6. このファイルを起動すると、複数ページのパワーポイントの資料に!
    ※ 「3. 更に応用編」は、「Visual Studio のエディタ」を「秀丸エディタ」に置き換えても成立する。

# ちなみに、JUDE/Community と JUDE/Professional が 2.4.3 にバージョンアップしたらしい。

2005年12月10日

Developers Summit 2006

Developers Summit 2006 が受付開始。
Developers Summit もここまで皆勤賞。今度も是非出たい。

Developers Summit 2006
会期 2006/02/09 (木) ~ 10 (金)
会場 目黒雅叙園
主催 株式会社 翔泳社

今回も、以下のように知人のセッションがぶつかりまくっているので、悩ましいところ。

2006/02/09 (木)
時間帯 セッション 講演者 (知人のみ)
開始時刻 終了時刻 ID タイトル
15:25 16:15 9-B-5 ユースケースによるアスペクト指向ソフトウェア開発 鷲崎 弘宜 氏、太田 健一郎 氏
9-E-5 SQL Server パフォーマンスチューニング 小川 貢 氏
9-D-5 .NET開発者のためのDIコンテナ入門 佐藤 太一 氏、福井 厚 氏
17:40 18:30 9-D-7 VSUG流・コミュニティサイトの作り方 奥津 和真 氏、杉下 朋年 氏
19:10 9-B-7 Developer 2.0 への自分探し ~キャリアアップのための自己啓発ワークショップ~ 平鍋 健児 氏
2006/02/10 (金)
時間帯 セッション 講演者 (知人のみ)
開始時刻 終了時刻 ID タイトル
10:00 10:50 10-D-1 EnterpriseLibraryの真実 市川 龍太 氏、西崎 公太 氏
10-A-1 エンジニアの生きがいとは? 〜マインドマップを使ったQoEL探検ワークショップ〜 懸田 剛 氏
13:10 14:00 10-C-3 次世代.NET開発基盤 WxFxの世界~ .NET開発の最新技術をすべてお見せします!WPF!WCF!WWF! 森屋 英治 氏
10-A-3 プロジェクト・オートメーション〜コンピュータもチームメンバだ!! 角谷 信太郎 氏
15:25 16:15 10-C-5 .NET開発における品質向上への取り組み~Visual Studio 2005 Team Systemによる継続的な結合テスト 黒石 高広 氏
10-A-5 ファシリテーション入門 本間 直人 氏
17:40 19:15 10-A-7 コーチングで元気になろう 松本 潤二 氏
10-B-7 みんなで踊ろうMVC,みんなで創ろうパターンダンス 羽生田 栄一 氏

それ以外にも、2月9日 13:10~14:00 の「9-B-3 『モデリングライブ』 荒井 玲子 氏」と「9-D-3 『Atlas/ASP.NETでAjax (仮)』 吉松 史彰 氏」など、悩ましいところは沢山ある。

つまりは、魅力的なセッションが目白押しだ。

実はこの一週間前に Microsoft Developers Conference 2006 がある。

Microsoft Developers Conference 2006
会期 2006/02/02 (木) ~ 03 (金)
会場 パシフィコ横浜
主催 マイクロソフト株式会社

こちらにも参加予定。
# って、そんなに毎週行けるのだろうか。

2005年12月15日

オブラブイベント 五回目

xmas.gif
明日はいよいよオブラブイベントに参加の予定。

イベント名 第5弾 オブジェクト倶楽部 2005クリスマスイベント
~プロジェクトを成功させる7つのカギ~
日時 2005年12月16日(金) 9:45~17:10
主催 オブジェクト倶楽部
場所 施設名 国立オリンピック記念青少年総合センター
最寄駅 小田急線参宮橋駅より徒歩7分
参加費 講演会 ¥5,000/懇親会 ¥3,000 (事前登録制)
詳細 http://www.objectclub.jp/event/2005christmas/
プログラム http://www.objectclub.jp/event/2005christmas/schedule

五回目の参加となる。
今回はどんな体験が待っているのだろう。楽しみだ。

ところで、福井では今週連日のように雪が降り続いている。
毎日何十センチも積もる。いくら福井でも、この時期にこんなに降るのは珍しい。
毎朝雪かきをしないと出勤することもできない。
うちの者が連日の雪かきで、とうとう腰を痛めてしまった。

天気予報は今日も明日も雪だ。

私の計算では、明朝最も急いでいけば、四十分遅れで会場に入れるはずだった。
しかし、この雪で、飛行機や鉄道、高速道路などの交通にかなり支障が出ている。JR は多くが運休し、朝の飛行機は遅れている。高速道路もあちこちで規制がかかっているようだ。

果たして行けるのだろうか。

2005年12月27日

2006年はじめのイベント

来年はじめにも良いイベントが目白押し。
さてどれだけ参加できるか。

名称 PASSJ Conference 2006 with VSUG
会期 2005年1月25日(水) 10:00 - 17:30 (懇親会 18:00 - 20:00)
会場 赤坂プリンスホテル 新館 五色の間
主催 SQL Server ユーザーグループ (PASSJ)Visual Studio ユーザーグループ (VSUG)
参加費 無料 (事前登録制)
名称 Microsoft Developers Conference 2006
会期 2006年2月2日(木) - 3日(金)
会場 パシフィコ横浜 会議センター 1F-3F
主催 マイクロソフト株式会社
参加費 一般価格: ¥49,800、特別価格: ¥40,000 (事前登録制)
名称 Developers Summit 2006 (デブサミ2006)
会期 2006年2月9日(木) - 10日(金)
会場 目黒雅叙園 (東京・目黒)
主催 株式会社 翔泳社
参加費 無料 (特別セミナー除く、事前登録制)

2005年12月28日

ライトニング トークス

dora.gif
Developers Summit 2006 で、10回目のライトニング トークスをやることにした。
今回は、中西さんと一緒に NAgile ネタをやるつもり。

INETANAgile のアピールを兼ねて。
これまでの反省 (謎) を踏まえて、メッセージ性のあるものにしたい。

2006年01月06日

LEGO の新型マインドストーム

mindstormsnxt.jpg
LEGO の新型マインドストーム

MINDSTORMS NXT

■ 特徴


  • 32bit CPU 内蔵の新型インテリジェント ブロック

  • USB2.0 と Bluetooth に対応

  • 三つのサーボ モーター (回転センサー内蔵)

  • 超音波センサー、音センサー (高さやパターンも認識可)、光センサー (明るさだけでなく色も認識可)、タッチ センサー

  • 直感的なプログラミング ツール (National Instruments の LabVIEW)

LEGO Shop にて、$249.99 (USD) で 2006年8月に発売予定。
※ 但し、LEGO Shop で注文できる 19ヶ国に、日本は含まれていない。

2006年01月20日

FITEA 新年会 2006

bannar_fitea_110x25.gif
下記を開催します。
どうぞお気軽にご参加ください。

※ 参加希望の方は、私にメールをくださるか、福井情報技術者協会 (FITEA) の掲示板の方へ参加表明くださいませ。

※ 現在参加予定の方は七名です。

FETEA (福井情報技術者協会) 新年会 2006』
内容 交流を目的とした飲み会
日時 1/27(金) 19:00 スタート
場所 名称 和食れすとらん 天狗 福井駅前店
住所 福井市大手2-6-4 宇野ビル2F (JR福井駅から徒歩2分)
Tel. 0776-24-4332
費用 華コース (フリードリンク付き) ¥3,500 + α

2006年01月23日

Developers Summit 2006

以下の通り参加予定。

※ 例によって、とても盛り沢山で、魅力的なセッション通しが色々ぶつかったりしている。
※ そのため、知人のセッションなのに不参加のものも多い。

今回は、ドットネット関連のセッションを中心にしてみた。
どれも聞き逃せないセッションばかりだ。

名称 Developers Summit 2006 (デブサミ2006)
会期 2006年2月9日(木) - 10日(金)
会場 目黒雅叙園 (東京・目黒)
主催 株式会社 翔泳社
参加費 無料 (特別セミナー除く、事前登録制)


2/9 10:00-10:50 【9-D-1 開発テクノロジー】 ソフトウェア・セル生産方式によるSoftware Factoiresの実現 財団法人京都高度技術研究所・顧問 松本吉弘
2/9 11:10-11:55 【9-D-2 開発テクノロジー】 .NET開発において、ソースコードから未テスト箇所を完全に無くす
~コンピュウェアのテスト ソリューション “例外シミュレーション”+“カバレッジ分析”+“テストの自動化”~
日本コンピュウェア(株)営業技術本部 藤原祐之
2/9 13:10-14:00 【9-B-3 アーキテクト】 モデリングライブ 住友信託銀行業務管理部調査役 荒井玲子
2/9 15:25-16:15 【9-D-5 開発テクノロジー】 .NET開発者のためのDIコンテナ入門 (株)アジルコア特定非営利活動法人 Seasarファウンデーション 佐藤太一、VSUG 発起人/XPJUG 企画担当スタッフ/INETA Japan コミュニティリーダー/S2.NETコミッタ/NAgile Open Source Project Group アドバイザ 福井厚
2/9 16:35-17:20 【9-D-6 開発テクノロジー】 Team Foundation Server によるチーム開発コトハジメ マイクロソフト(株)デベロッパー&プラットフォーム統括本部シニアプロダクトマネージャ 岩出智行
2/9 17:40-19:10 【9-B-7 ファシリテーション】 Developer 2.0への自分探し (株)永和システムマネジメント オブジェクト倶楽部 平鍋健児
2/10 10:00-10:50 【10-D-1 開発テクノロジー】 EnterpriseLibraryの真実 アバナード(株) enterpriselibrary.jp 市川龍太、西崎公太
2/10 11:10~11:55 【10-A-2 開発テクノロジー】 オフィシャルコミュニティによるLightning Talks 翔ソフトウェア(INETA Japan所属)小島富治雄、VB.NETとC#でデザインパターン(INETA Japan所属)中西庸文、日本PostgreSQLユーザ会 永安悟史、dev2dev 原嘉彦、codeseek(INETA Japan所属)原敬一、codeseek(INETA Japan所属)衣川朋広
2/10 13:10-14:00 【10-C-3 開発テクノロジー】 次世代.NET開発基盤 WxFxの世界 (有)アークウェイ代表取締役 森屋英治
2/10 14:20~15:05 【10-A-4 開発テクノロジー】 XP 2.0 日本XPユーザグループ
2/10 15:25-16:15 【10-C-5 プロジェクトマネジメント】 .NET開発における品質向上への取り組み
~Visual Studio 2005 Team Systemによる継続的な結合テスト
Nagile.com 黒石高広
2/10 16:35~17:20 【10-D-6 開発テクノロジー】 狛犬(Seasar2)の飼い方教えます。 (株)電通国際情報サービス 開発技術センター シニアコンサルタント 特定非営利活動法人 Seasarファウンデーション Chief Committer ひがやすを、(株)電通国際情報サービス 事業推進本部 マネージャー 飯田哲夫

2006年01月29日

FITEA 新年会 2006

bannar_fitea_110x25.gif

以下を開催。

FETEA (福井情報技術者協会) 新年会 2006』
日時 1/27(金) 19:00~
参加者 8名
内容 一次会 天狗 福井駅前店 で飲み会
二次会 福井駅前でカラオケ

直接会って打ち解けた形でコミュニケーションを行う、というのは大切だと思う。

2006年02月10日

Developers Summit 2006 (デブサミ2006)

下記に参加した。

名称 Developers Summit 2006 (デブサミ2006)
会期 2006年2月9日(木) - 10日(金)
会場 目黒雅叙園 (東京・目黒)
主催 株式会社 翔泳社
参加費 無料 (特別セミナー除く、事前登録制)

参加内容は以下の通り。

2/9 10:00-10:50 【9-D-1 開発テクノロジー】 ソフトウェア・セル生産方式によるSoftware Factoiresの実現 財団法人京都高度技術研究所・顧問 松本吉弘
2/9 11:10-11:55 【9-D-2 開発テクノロジー】 .NET開発において、ソースコードから未テスト箇所を完全に無くす
~コンピュウェアのテスト ソリューション “例外シミュレーション”+“カバレッジ分析”+“テストの自動化”~
日本コンピュウェア(株)営業技術本部 藤原祐之
2/9 13:10-14:00 【9-B-3 アーキテクト】 モデリングライブ 住友信託銀行業務管理部調査役 荒井玲子
2/9 15:25-16:15 【9-D-5 開発テクノロジー】 .NET開発者のためのDIコンテナ入門 (株)アジルコア特定非営利活動法人 Seasarファウンデーション 佐藤太一、VSUG 発起人/XPJUG 企画担当スタッフ/INETA Japan コミュニティリーダー/S2.NETコミッタ/NAgile Open Source Project Group アドバイザ 福井厚
2/9 16:35-17:20 【9-D-6 開発テクノロジー】 Team Foundation Server によるチーム開発コトハジメ マイクロソフト(株)デベロッパー&プラットフォーム統括本部シニアプロダクトマネージャ 岩出智行
2/9 17:40-19:10 【9-B-7 ファシリテーション】 Developer 2.0への自分探し (株)永和システムマネジメント オブジェクト倶楽部 平鍋健児
2/10 10:00-10:50 【10-D-1 開発テクノロジー】 EnterpriseLibraryの真実 アバナード(株) enterpriselibrary.jp 市川龍太、西崎公太
2/10 11:10~11:55 【10-A-2 開発テクノロジー】 オフィシャルコミュニティによるLightning Talks 翔ソフトウェア(INETA Japan所属)小島富治雄、VB.NETとC#でデザインパターン(INETA Japan所属)中西庸文、日本PostgreSQLユーザ会 永安悟史、dev2dev 原嘉彦、codeseek(INETA Japan所属)原敬一、codeseek(INETA Japan所属)衣川朋広
2/10 13:10-14:00 【10-C-3 開発テクノロジー】 次世代.NET開発基盤 WxFxの世界 (有)アークウェイ代表取締役 森屋英治
2/10 14:20~15:05 【10-A-4 開発テクノロジー】 XP 2.0 日本XPユーザグループ
2/10 15:25-16:15 【10-C-5 プロジェクトマネジメント】 .NET開発における品質向上への取り組み
~Visual Studio 2005 Team Systemによる継続的な結合テスト
NAgile.com 黒石高広

※ 「オフィシャルコミュニティによるLightning Talks」で登壇。

2006年03月28日

「ソフトウェアの仕様書は料理のレシピに似ている」を読んで

Web 上の文章の紹介。

---- 上記サイトから引用 ここから ----


そしてもっとも許せないのが、そういった上流→下流という階層構造でプログラムを作る工程そのものだ。

これに関しては、自信を持って言えるのだが、「どんなに優秀なエンジニアでも、決してプログラムを自分自身で書かずに良い詳細仕様を作ることは出来ない」という絶対的な法則があるのだ。


---- 上記サイトから引用 ここまで ----

同意。
ソフトウェア開発に階層構造を持ち込むのは、間違いだと思う。
prjctks.gif

以下論点は異なるが、上記を読んで考えたこと:

プロジェクトの構成員である「顧客」や「プログラマ」、「プロジェクト マネージャ」、「テスター」などは横並びの立場でなければ。
どちらが上とか下とかでなく、「ただ役割が異なるだけ」。

プロジェクト以外の組織でもそうだ。
管理職や技術職のどちらが上とか下とかでなく、「ただ役割が異なるだけ」。
それぞれの立場で、それぞれの視点で、きっちり責務を果たしていけばよい。

プログラマを、「管理者」や「プロジェクト マネージャ」などと比べて、低くみるのは間違いだ。企業内で経験を積んだプログラマが、ステップアップのためには他の職種を目指さなければならなかったりするのも大きな損失だ。

以前、中国の IT 技術者の方に、「中国では、優秀なプログラマは、優秀な管理者と企業内で同等の扱いを受ける」と聞いた。
日本でも、上流工程から下流工程まで知っていて良いソフトウェアを作れる優秀なプログラマは、もっともっと妥当な扱いを受けるべきだと思う。


# そういえば、今調査中の Visual Studio Team System で使われている MSF (Microsoft Solutions Framework) for Agile のロールも階層構造でなく対等な関係になっている。

2006年04月12日

イノベーションはマーケット・インでは生まれない

inovation.gif

■ 「イノベーションはマーケット・インでは生まれない」

素晴らしい記事を紹介したい。

『Web 2.0時代のソフトウエア開発手法』

記事では、三つの視点の変換が述べられているように思う。

  • 視点の変換 1.
    「技術先行」→「ニーズを満たすものを作る」
    「良いものが売れる」→「売れるものが良いもの」
  • 視点の変換 2.
    「イノベーションはマーケット・インでは生まれない」→「プロダクト・アウトの復権」
  • 視点の変換 3.
    「マーケット・イン/プロダクト・アウト」→「コンセプト・アウト/デマンド・イン」

「コンセプト・アウト/デマンド・イン」という考え方は、まさに目から鱗だった。
なんだか頭の中の霧が晴れた思いだった。


■ 商品像を作るのは顧客なのか

一つ目の視点変換は、重要だと思う。
開発者の視点でなく市場からの視点で「良い商品」かどうかが決まるべきだ。

だが、一つ目の視点変換に満足してしまい、「ニーズを集めさえすれば良い商品が生み出せる」と考えてしまうことには、疑問がある。
それだけではうまく行かないと思うのだ。

「商品は顧客が作る」

これは、以前私がいたソフトウェア開発現場のスローガンだ。

そして、具体的な開発は、

  • 顧客の要望が商品像を決める。
  • ゆえに、営業が顧客の要望を集めて商品像を作る。
  • 開発は、その商品像を形にするだけ。

という原則に従うべし、とされていた。

「商品は顧客が作る」という言葉は、確かに正しい。
ひとりよがりになりがちな開発者への警告文として重要だろう。
美しい言葉だとも思う。

けれども、開発者であった私は、この言葉にずっと違和感があった。

私には、顧客の要望を集めただけで良い商品が作れるとは思えなかった。
何故なら、「まだ市場にないものに関するアイディアは、顧客からは得られない」からだ。

例えば、電話というものがなかった時代に、顧客の要望で電話という商品が生まれただろうか。
否。生まれるわけがない。
現に、電話が発明されたときの人々の反応は、「既に郵便というものがあるのに、誰がそんな器械を買うだろうか」というものだったのだ。
発明された後でもこんな反応だった電話が、市場のニーズから生み出されるはずがない。
同様に、コンピュータがなかった頃に、コンピュータが市場のニーズから生み出されたとは思えない。

既存のニーズを集めたって新しいニーズを生み出すことは出来ないし、既存のニーズが無から新しいものを創り出したりしないと思う。


■ 開発者のモチベーション

開発者としては、寧ろ、顧客に、「あ! そうか。初めて気付いた。俺こんなのが欲しかったんだ!」と言わせたい。

確かに「開発者の驕り」という部分は有るだろう。

だが、それは開発者としての市場に対する精一杯の提案なのだ。
「新しいものを生み出したい」という気持ちは、「ものづくり」を行っている人に共通の思いではなかろうか。
「いかに顧客の要望通りのものを作るか」ではなく、「顧客に様々な提案をして、顧客と共に新たな要望を創っていきたい」のだ。

この気持ちは大切にしていきたいと思う。

2006年05月01日

FITEA ミーティング & 飲み会

fitea.gif
昨日は、以下に参加。

昼の部では主に、今後どのような活動を行っていくか、について話した。

夜の飲み会は、技術ネタが多く、"S2Dao" と "JSON" の話題が盛り上がっていた。

飲み会後は、バーで二次会。

FITEA ― 福井情報技術者協会 会議 & 飲み会
開催日 2006/04/30(日)
昼の部
内容 会議
場所 ふくい産業支援センター 8F SOHO交流サロン
時刻 第一部 14:30~16:00
第二部 16:30~18:00
備考
飛び入り参加・遅刻・途中退席自由
夜の部
内容 飲み会
場所 プリズム福井構内「八兆屋 福井駅店
時刻 19:00~

2006年06月13日

Google Earth 4

新しい "Google Earth" (Release 4 - BETA) は、すごすぎる!

前のバージョンに比べて飛躍的に解像度が上がった。

試しに私の自宅を表示させてみたところ、車庫の屋根の形まではっきりと分かったほどだ。
# まったく驚きだ! 私の自宅の車庫なんて、多分東京ドーム4個分程の面積もないというのに!

地球の画像から、自宅の画像までどんどんクローズアップしていけるのだ。これは興奮ものだ。

下は、"Microsoft Tech·Ed" などが開催される「パシフィコ横浜」(横浜みなとみらい) の周辺を表示させてみたものだ。
googleearth1.jpg
googleearth2.jpg
googleearth3.jpg

単に解像度が上がっただけでなく、建物の形がかなりリアルに見える。素晴らしい技術だ!

2006年06月16日

Big Jolt!

社内のソフトウェア開発プロセス改善のための「Big Jolt (大きなイベント)」の第二回を 今月30日に主催予定。

「Big Jolt!」は、「新しいアイデアを組織に導入するためのパターン」の中のプラクティスの一つ。

組織を改善することは難しい。
でも改善のためにやれることをやろう!

  • 会場は職場と離すこと
    • 非日常感を演出しよう!
    • 理由を付けて日常の仕事に戻ろうとするのを防ごう!
    • 打ち上げ会場と同じ建物でやろう!
  • 体験型にすること
    • やってもみないで、ネガティブ シンキングはナンセンス!
    • 体験してみないと本当の知識は得られない!
    • できるだけ新しい体験をしよう!
    • 参加することで何か得をするようにしよう!
  • みんなが体験すること
    • 原則全員参加!
    • 「忙しいから出られない」は駄目!
    • 「忙しくて、どうしたら忙しすぎなくなるか考える暇がない」なんて駄目!
  • 参加者同士のコミュニケーションを重視すること
    • アイス ブレーキングを沢山やろう!
    • 問題について話し合う機会を作ろう!
    • 打ち上げをやろう!
    • なるべく日頃話さない人と話そう!
    • 参加者をシャッフルして座席を決めよう!
    • 打ち上げの座る場所を決めるときもシャッフル!

2006年06月20日

ユーザー・エクスペリエンス

2006年07月03日

イベント続きの先週

先週はイベント続きだった。

どのイベントも本当に参加して良かった。
当初は、全部に出るのは無理かと考えていたが、参加して本当に良かった。この一週間だけでも少し自分がレベルアップしたような気がする程だ。

2006年08月22日

来週のイベント参加予定

Tech・Ed 2006 Yokohama
日時: 2006/08/29~09/01
場所: パシフィコ横浜
主催: マイクロソフト

※ この中の "Usergroup Street Live!" で、中西さん と

NAgile Street Live! - アジャイルなデバッグ方法教えます! -
日時: 9/1(最終日) 13:30-13:50 (ランチ・タイム ラスト20分)

というのをやる予定。

XP祭り2006
日時: 2006/09/02
場所: 江戸川区総合文化センター
主催: 日本XPユーザーグループ

※ 何かやるかも。

2006年10月05日

ISO9001について

ISO9001 についてマインド マップを描いてみた。
iso9001s.gif
※ クリックすると拡大。

# それにしても、俺って ISO9001 が嫌いなんだなあ。

2006年10月06日

ISO9001について (続き)

※ 昨日の『ISO9001について』の続き。

昨日のマインドマップ付きの記事に関して、貴重なフィードバックを頂いた。ありがたいことだ。

頂いたフィードバック:

  • 「運用設計の問題」
  • 「運用の問題」
  • 「典型的な ISO9001 への誤解が多く見られる」

ISO9001 を実践し続けて数年になる。
ISO9001 について思うところをもう少しだけ書き足してみる。

  • PDCA のループが軽く速く回らない。品質を保つためには改善活動が不可欠なので、そこが重いのはつらい。
  • そして、改善活動というのは改善のプロセス自体が日々改善されていかないようではダメダメだと考えている。例えば、或る時期 ISO で改善していて、数年後も同じ規格で同じように改善しているようでは「なってない」と思う。そして、ISO は ISO であるが故にメタ プロセス自体を進化させるのは難しい。
  • それは、「取得 → 維持」という「余計な枠組み」が入ってしまう ISO であるが故の宿命的な「システムが抱える問題」であり、根源的な問題。
  • 「守破離」でいうと、「守の段階から抜けようとすると足を引っ張られる感じ」
  • ソフトウェア開発のプロセスというのは変化と進化が激しく、その変化の激しさから考えると ISO のそのような特性はボトルネックになるように感じる。
  • 「運用設計がまずいと駄目」、「運用が上手ならうまくいく」。ただし、上の理由により、「運用が上手なようなら、ISO9001 がなければもっとうまくいく」とも思う。

2006年11月24日

FITEA イベント 『忘年会』及び『ソフトウェアサミット in 福井2007』

bannar_fitea_110x25.gif
FITEA (福井情報技術者協会) からのお知らせ

昨年一月に開催された『ソフトウェア技術者サミット in 福井』を来年一月にも開催することになりました。

























ソフトウェアサミット in 福井2007
主催 アジャイルプロセス協議会 見積契約WGFITEA (福井情報技術者協会)
2007年1月12日(金)
14:00~
場所
福井県国際交流会館
2階 会議室
内容
技術系のセミナーまたはワークショップなど (詳細未定)

FITEA でもセッションを持つ予定ですので、こういうことがやりたい、などの案がありましたら、お寄せください (info@fitea.org)。
また上記に関連して、『FITEA 忘年会 ~ソフトウェアサミット in 福井2007の企画の話し合いを兼ねて~』を開催します。
















FITEA 忘年会 ~ソフトウェアサミット in 福井2007の企画の話し合いを兼ねて~
2006年12月1日(金)
19:00~
場所

八兆屋 福井駅店

ソフトウェアサミットに参加される方もされない方も、ぜひお気軽にご参加ください。参加ご希望の方は、info@fitea.orgまで。

2006年11月30日

FITEA 忘年会

bannar_fitea_110x25.gif

明日は、FITEA (福井情報技術者協会) の忘年会。

































『FITEA 忘年会』
主催 FITEA (福井情報技術者協会)
2006年12月1日(金)
19:00~21:00
場所 八兆屋 福井駅店
会費 目安として一人 ¥5,000 程度
参加者 7名 (予定)
備考 ソフトウェアサミット in 福井2007』(2007/01/12) の企画に関する話し合いも兼ねる

2006年12月02日

FITEA 忘年会

bannar_fitea_110x25.gif
昨夜はFITEA (福井情報技術者協会) の忘年会を開催。

























『FITEA 忘年会』
主催 FITEA (福井情報技術者協会)
2006年12月1日(金)
19:00~21:00
場所 八兆屋 福井駅店
参加者 7名

120201.jpg
「ソフトウェア技術者サミット in 福井 2007」や「モヒカン族」、「ネーミング」の話などで盛り上がりました。二次会・三次会もやりました。

参加された皆さん、お疲れ様でした。またやりましょう。

2006年12月15日

来週のイベント参加予定

来週の火曜と水曜は下記のイベントに参加。
# トークスのネタを仕込まないと。

打ち合わせ
日時 12月19日(火) 12:00~13:30 (11:50 OST 6F 集合)
場所 小田急サザンタワー マイクロソフト株式会社 新宿オフィス
アジャイルプロセス協議会 第11回 定例セミナー
主催 アジャイルプロセス協議会
日時 12月19日(火) 13:30~16:30 (受付開始 13:15予定)
場所 ベルサール九段 4階 Room(4)
参加内容
  • 黒岩 惠氏『トヨタ生産方式におけるものづくりとソフトづくり』
  • アジャイル・プロジェクト・マネジメントWG 勉強会
第11回codeseek勉強会
主催/共催 codeseek/こみゅぷらす (COMU+)
日時 12月19日(火) 19:00~20:30
場所 小田急サザンタワー マイクロソフト株式会社 新宿オフィス
参加内容
  • りばてぃ氏『5分でできるプロセステンプレートのカスタマイズ』
  • めさいあ氏『Vistaの新機能をWindows APIから探る』
  • たつごろー氏『今日の変数名』
  • Moo氏『5分でわかるサイドバーガジェット』
codeseek & こみゅぷらす (COMU+) 合同忘年会
主催/共催 codeseek/こみゅぷらす (COMU+)
日時 12月19日(火) 20:45~
場所 ダイニングバー「つなみ」
オブジェクト倶楽部 2006 クリスマスイベント
主催 オブジェクト倶楽部 (株式会社永和システムマネジメント)
日時 2006年12月20日(水) 10:00~17:00 (懇親会 17:30~19:30)
場所 国立オリンピック記念青少年総合センター
参加内容
  • セッション1: 安井 力氏『ソフトウェア治具 -自作ツールのススメ-(仮)』、水越 明哉氏 『描いてみようかマインドマップ』
  • セッション2: 角谷 信太郎氏 『クは駆動のク-Developer TestingとBDD-』、岸田 健一郎氏 『明日から使える今どきのWEBデザイン』
  • セッション3: 天野 勝氏『見える化は改善の道具』
  • ライトニングトークス: トーカーとして参加
  • 懇親会: 参加

2006年12月23日

コーチング セミナー

昨日・今日と会社でコーチング セミナーを受講。

印象に残った講師の方の言葉:

  • 「コミュニケーション能力も筋肉と同じ。普段使わない部分を意識して使うことで、その部分が鍛えられていく」
  • 理想の状態と思うものを書き出す → 書き終わったところで質問「それを10点とすると、今のあなたは何点?」
  • 「相手をどう変えるか?」ではなく「どう自分の関わり方を変えていくか」(*)
  • 「叱る」ではなく「Feedback + Request」
  • 「教えてあげる」ではなく "May I help you?"
  • 無意識レベルでは、「現状の自分が一番自分が望んでいる姿」
  • 無意識の「思い込み」が、現在の自分の行動を支配している
  • ネガティブな「思い込み」をポジティブなイメージでオーバーライドしてやっても、脳には気付かれない
  • 理想の状態をイメージするには、「~したい」ではなく、具体的に「~で~と~をしている自分」をイメージ
  • キャッチ コピー重要

(*) ここは、『XPエクストリーム・プログラミング入門 第二版』の有名な言葉 "Coaching is about social change." "Social change is changing yourself." と同じだ。

2006年12月27日

JavaScript入門

javascript.png
「今後特に重要な言語」ということで、何となく JavaScript の学習を開始してみた。

JavaScript の面白さに目覚めつつあるかも知れない。プロトタイプベース オブジェクト指向でライトウェイトで素敵な感じを Aha! 体験中。

自習用サイトをメモ:

# 書籍は色々あって迷っている。どれを買おうか。

続きを読む "JavaScript入門" »

2007年01月06日

ソフトウェア技術者サミット in 福井 2007 「みんなでAha Experience!!」

bannar_fitea_110x25.gif
昨年一月に開催された『ソフトウェア技術者サミット in 福井』を今年の1月12日(金) に開催します。

※ 前回の様子: 『ソフトウェア技術者サミット in 福井』イベントレポート

前回同様、今回も内容の濃いイベントとなると思います。

ソフトウェア技術者の方やソフトウェア開発に興味をお持ちの方は、是非お誘い合わせの上ご参加ください。













































ソフトウェア技術者サミット in 福井 2007 「みんなでAha Experience!!」
主催 アジャイルプロセス協議会 見積契約WGFITEA (福井情報技術者協会)
2007年1月12日(金)
14:00~18:00 (受付は13:30より)
場所 福井県国際交流会館 2階 会議室
内容 技術系のセミナーまたはワークショップなど
参加費 無料 (懇親会は別途)
詳細 http://fitea.org/?p=3
お申込先 http://fitea.org/enterevents.html
お申込締切 2007年1月9日(火)
お問い合わせ先 info@fitea.org

関連サイト:


2007年01月14日

ソフトウェア技術者サミット in 福井 2007 「みんなでAha Experience!!」

bannar_fitea_110x25.gif





















ソフトウェア技術者サミット in 福井 2007 「みんなでAha Experience!!」
主催 アジャイルプロセス協議会 見積契約WGFITEA (福井情報技術者協会)
2007年1月12日(金)
14:00~18:00 (懇親会 19:00~)
場所 福井県国際交流会館 2階 会議室

dc011321.jpg dc011301.jpg
■ 内容

○ 挨拶
北野弘治氏 (有限会社ジークステクノロジ 取締役社長、アジャイルプロセス協議会 見積契約WGリーダー)
dc011314.jpg dc011318.jpg


○ セミナー『サービスウェア理論によるシステム開発の未来像』
相馬純平氏 (ケペル株式会社 CTO、アジャイルプロセス協議会 アジャイルTOCWGリーダー)

○ パネルディスカッション『部下のモチベーションを上げる新人教育とは』
【モデレーター】
・堀内豊司氏 (株式会社トゥー・アー・ティ ITソリューション事業部長)
【パネラー】
・牧野隆志氏 (株式会社アットウェア 代表取締役)
・塩田英二氏 (TIS株式会社 技術本部 基盤センター)
・岡島 幸男氏 (株式会社永和システムマネジメント)
・小島富治雄 (福井コンピュータ株式会社、FITEA 代表)

○ ワークショップ『アジャイルな見積りを体験しよう』
濱 勝巳氏 (有限会社アッズーリ、アジャイルプロセス協議会 副会長、見積契約WGメンバー)、見積契約WGメンバー
dc011336.jpg

○ ライトニングトークス
・高橋雅宏氏 (アジャイルプロセス協議会 見積契約WGメンバー)
・中川隆氏 (アジャイルプロセス協議会 見積契約WGメンバー)
・中西孝之氏 (株式会社アイジュピタ)
・新出純壱氏 (アル・デザインワークス)
・小島富治雄 (福井コンピュータ株式会社)
dc011345.jpg

○ 閉会の挨拶
小島富治雄 (福井コンピュータ株式会社)

■ 所感

今回で第二回となる「ソフトウェア技術者サミット in 福井 2007」。福井県と石川県、神奈川県、東京都から約40人の方々が参加され、無事終了した。

今回のテーマは「Aha! 体験」。
これは、真夜中の企画会議で生まれたアイディアだ。

  • (脳科学者の茂木健一郎博士で有名な) アハ ピクチャーやアハ ムービー等の紹介。
  • 「Aha!」と感じたときに携帯で投票を行うとステージ脇でカウンターがカウント アップし「Aha!」という音声が流れる、という「アハ カウンター」の設置
  • その他、ストリーミング中継を行ったり、今回はかなり新しい試みが行われた。

相馬純平氏の「サービスウェア理論」のセミナーでは、さかんに会場に「Aha!」の声が流れていた。

ワークショップでは、五人ずつのグループに分かれて見積もりを行った。座学と違い、実際に手を動かしてみることで、新たな気付きを得ることができた。気付きを共有できるのもワークショップの良さだ。

福井初のライトニング トークスも、五人とやや少なめのトーカーだったが、大いに盛り上がった。やはりトークスは短い中に多くの気付きがあって良い。誰でも参加できるのも魅力だ。是非福井でもこれからはどんどんやっていきたい。

また、懇親会も大いに話が盛り上がり、とても良い交流の機会となった。

和やかで良いイベントになったと思う。参加者の方との交流を通して、何か特別に暖かい気持ちになれた。ありがたいことだと思う。

2007年01月25日

Developers Summit 2007 コミュニティライブ

comupluslogo.png
こみゅぷらす (COMU+) (2006年12月1日発足) の一員として Developer Summit 2007に参加します。

コミュニティライブにも出演します。

  • 2007年2月14日(水)16:40-17:10

    「コードの品質こそがビジネスを成功させる!~コードの品質を上げるために 命名編~」

テーマは、「名前付け (ネーミング) 重要!」です。「サービス指向ネーミング」(謎) とか「ネーミング指向プログラミング」(謎) とか、その辺 (謎) の話をしたいと思います。

是非ご来場ください。

2007年02月10日

くソースの呪い

2007年04月11日

「福井発! 最新ウェブ2.0サービスを作ろう」セミナー

image_fitea_logo1.gif
今月20日(金) の13時から、福井駅前で「福井発!最新ウェブ2.0サービスを作ろう」セミナーというのが開催されます。

場所はなんと福井駅前に4/19にオープンする AOSSA です。

どうぞ奮ってお申し込みください。

イベント名 「福井発! 最新ウェブ2.0サービスを作ろう」
開催日時 2007年4月20(金) 13:00~17:45 (12:45より受付開始)
開催場所 福井市地域交流プラザ「AOSSA」 6F 研修室603
主催
内容
  • セミナー1: 「Ruby on Rails入門」
  • セミナー2: 「今、プログラマーが知っておくべきWebデザイン」
  • セミナー3: 「ウェブ2.0会議(仮)」
  • ※終了後19時頃より福井駅周辺の居酒屋で懇親会
参加費 無料 ― 一人100円程度のカンパ (懇親会は別途)
申し込み

2007年04月22日

「福井発! 最新ウェブ2.0サービスを作ろう」セミナー

image_fitea_logo1.gif
金曜日に開催。

イベント名 「福井発! 最新ウェブ2.0サービスを作ろう」
開催日時 2007年4月20(金) 13:00~17:45
開催場所 福井市地域交流プラザ「AOSSA」 6F 研修室603
主催
内容
  • セミナー1: 「Ruby on Rails入門」
  • セミナー2: 「今、プログラマーが知っておくべきWebデザイン」
  • セミナー3: 「ウェブ2.0会議」
  • 福井駅周辺の居酒屋で懇親会 (18:30~)
参加費 無料 ― 一人100円程度のカンパ (懇親会は別途)
詳細 http://fitea.org/?p=30
dc042101.jpg dc042109.jpg dc042112.jpg dc042123.jpg dc042125.jpg

2007年06月15日

来週のイベント参加予定

来週は以下のイベントに参加予定。





























第17回 codeseek勉強会
日時 2007年6月19日(火)
10:00~12:00
場所 渋谷駅近くの貸し会議室
主催/協力 codeseektk-engineeringこみゅぷらす
参加費用 ¥1,000 (飲み物込)
VSUG Day 2007 Summer の Lightning Talks でやった「Visual Studio でテスト駆動開発 ~TDDで美しいコードを書くコツ~」を再演します

MD3 (エム・ディー・キューブ: Microsoft Developer Deep Dive 2007)
日時 2007年6月19日(火)
13:00~18:00 (懇親会: 18:30~20:30)
場所 砂防会館 (懇親会: 四川飯店本店)
主催 マイクロソフト株式会社
オブラブイベント 2007夏 帰郷
日時 2007年6月20日(水)
10:00~18:30 (懇親会: 18:30~20:30)
場所 タワーホール船堀
主催 オブジェクト倶楽部 (株式会社永和システムマネジメント)
参加費用 ¥3,000 (講演会)/¥5,000 (懇親会)

2007年07月27日

週末のイベント参加予定

以下に参加するため、午後から東京へ出発。

第18回codeseek勉強会 オブジェクト指向勉強会 基礎編
■ 日時: 2007年7月27日(金) 19:00~21:00
■ 場所: 渋谷貸し会議室
■ 主催/共催: codeseek、tk-engineering、こみゅぷらす、eパウダ~
■ 後援: アイネタ ジャパン(INETA Japan))
■ 懇親会: 渋谷で流し焼肉

『スピーカートレーニング』
■ 日時: 2007年7月28日(土) 9:30~18:00
■ 内容:
1. 効果的なプレゼンテーションに必要な要素を体系的に学習し実践する
2. 討論を円滑に進行させるためのファシリテーションの手法を学ぶ

2007年08月01日

「美しいソースコードのための七箇条」

sourcecode.jpg
「美しいソースコードのための七箇条」というのを考えてみた。
# 取り敢えずの叩き台として。

美しいソースコードとは:
次の七つを満たしたソースコードである。


  1. 意図を表現:

    • 意図が表現されていること。

    • 意図の理解が容易であること。

    • 意図以外の記述が少ないこと。

    • How (どうやってやるか) でなく What (何をやるか) が記述されていること。

    • できれば、Why (なぜやるか) も記述されていること。



  2. 単一責務:

    • (型やメソッドや変数などの) プログラムの単位が唯一の仕事を記述していること。

    • 且つ、(なるべくなら) その仕事がそのプログラム単位内で記述されつくされていること (=高凝集: high cohesion)。



  3. 的確な名前:

    • (型やメソッドや変数の) 名前が、それの (唯一の) 仕事を (一言で必要十分に) 表現していること。

    • 同じものは同じ名前で、違うものは違う名前で表現されていること。

    • それであるものとそれでないものの区別が付くこと。



  4. Once And Only Once:

    • 同じ意図のものが重複して書かれていないこと。



  5. 的確に記述されたメソッド:

    • メソッド内が同じ抽象度の記述の集まりで構成されていること。

    • メソッド内が、自然な粒度で記述されていること (話し言葉のように)。

    • ほどよい量 (記述が多過ぎない)。



  6. ルールの統一:

    • 全体が同じルールに従っていること。



  7. Testable:

    • 正しい記述であることが分かるようになっていること。

    • 検証 (verification) が容易であること。




続きを読む "「美しいソースコードのための七箇条」" »

2007年08月10日

九月のイベント

来月も関心のあるイベントが目白押しのようだ。幾つ参加できるか判らないが、忘れないようにメモ。

XP祭り 2007
1(土)
場所 江戸川区総合文化センター
主催 日本XPユーザグループ (XPJUG)
参加費 無料
セッション内容 未定
XDev 2007
7(金)
場所 東京ドームホテル
主催 日経BPセミナー事業センター
参加費 無料 (事前登録制)
セッション内容 こちら
Modeling Forum 2007
13(木)・14(金)
場所 大手町サンケイプラザ
主催 UMLモデリング推進協議会 (UMTP/Japan)
参加費 Web で事前登録を行えば無料
セッション内容 こちら
REMIX07 TOKYO
19(水)
場所 東京国際フォーラム
主催 マイクロソフト株式会社
参加費 カンファレンス ¥5,000、展示 無料
セッション内容 こちら
第1回 コミュニティ勉強会 ~秋・東京編
29(土)
場所 マイクロソフト株式会社 本社 (新宿オフィス)
主催 アイネタ ジャパンマイクロソフト株式会社
参加費 無料
セッション内容 未定

2007年10月20日

FITEA 秋の宴 2007

fitea2007fall.png

FITEA (福井情報技術者協会) で飲み会を開催します。

福井県内の技術者の集まりです。どなたでも、お気軽にご参加ください。

『FITEA 秋の宴 2007』
日時 : 11/2(金) 19:00~21:00
場所 とりあえず吾平 福井西方店 (予定)

詳細 及び お申し込み方法は: FITEA サイトをご参照ください。
# または、直接私にメールをください。

2007年12月12日

来週のイベント

来週末のイベント参加予定。

第72回 MSDN オフラインセミナー「全部魅せます! Visual Studio 2008 ~MSDN サンタから開発者への贈り物~」
日時 2007年12月20日(木) 17:00-19:30
会場 マイクロソフト株式会社 新宿オフィス 5F セミナールーム
主催 マイクロソフト株式会社
講師 マイクロソフト株式会社 テクニカルソリューション推進統括本部 SE 本部 プリンシパルSE 平井 昌人
参加費 無料
備考 セミナー終了後にマイクロソフト社員やエバンジェリストとの交流会あり

2007xmas_event_banner2.jpgオブジェクト倶楽部クリスマスイベント2007
日時 2007年12月21日(金) 10:00-18:30
会場 国立オリンピック記念青少年総合センター
主催 オブジェクト倶楽部 (株式会社永和システムマネジメント)
参加費 無料

第23回 codeseek 勉強会
日時 2007年12月21日(金) 18:30-20:00
会場 マイクロソフト株式会社 新宿オフィス
主催 codeseek
参加費 無料

こみゅぷらす忘年会
日時 2007年12月21日(金) 20:30-22:30
会場 新宿
主催 こみゅぷらす

2007年12月17日

FITEA イベント 『Ajax&AIR&Silverlight入門』 (+新年会)

eventlogo_ria.png

「Ajax」、「AIR」、「Silverlight」という三つの「RIA (リッチ・インターネット・アプリケーション)」技術を半日で同時に学べるイベントを福井で開催します!

ぜひ、奮ってご参加ください。

『Ajax&AIR&Silverlight入門』 (+新年会)
日時 2008年1月25日(金)
13:30~18:00 (受付は13:00より開始)a
場所 住所 福井県福井市
会場 (財)ふくい産業支援センター 中小企業産業大学校 第一中教室
内容
  1. Ajax & JavaScript入門 (13:45~)
       (講師:アル・デザインワークス 新出 純壱 氏)
  2.  AIR入門 (15:00~)
       (講師:株式会社チェンジビジョン 梅田政利 氏)
  3.  Silverlight入門 (16:15~)
       (講師:福井コンピュータ株式会社 小島富治雄 氏)
主催/後援 主催

FITEA (福井情報技術者協会) 

後援  アイネタ ジャパン
参加費 無料
※ 新年会 (懇親会)に参加される方は別途
お申し込み 締切 2008年1月22日(火)
詳細/お申し込み先 →詳細はこちら
→お申し込みはこちら

2008年01月18日

今週末~来週末のイベント

event.jpg

今週末から来週末に掛けて、魅力的なイベントが目白押しだ。

■ 1月18日(金)

MVP 関連のとあるイベント
時刻 夕方
場所 大阪
参加費 無料
主催 マイクロソフト株式会社

■ 1月19日(土)

『VSUGDAY 2007 winter 大阪』
時刻 10:00-17:10 (終了後懇親会有り)
場所 大阪 新梅田研修センター
参加費 無料
主催 VSUG (Visual Studio User Group)
詳細 http://vsug.jp/tabid/173/Default.aspx

■ 1月20日(日)

『IT技術者新春の集い2008』
時刻 16:00-18:00 (終了後二次会有り)
場所 東京
参加費 7,000円
主催 有志の方々

■ 1月21日(月)

『Visual Studio 2008 Ready Day』
時刻 10:00-18:00
場所 東京 泉ガーデンギャラリー
参加費 無料
主催 マイクロソフト株式会社
詳細 http://www.microsoft.com/japan/msdn/events/vs2008/

MVP 関連のとあるイベント
時刻 夕方
場所 東京
参加費 無料
主催 マイクロソフト株式会社

■ 1月25日(金)

『「Ajax & AIR & Silverlight入門」セミナー (+FITEA新年会2008)』
時刻 13:30~18:00 (終了後新年会)
場所 福井 中小企業産業大学校 第一中教室
参加費 無料
主催 FITEA (福井情報技術者協会)
詳細 http://fitea.org/?p=60

『第24回codeseek勉強会「新しくなったVBとC#でコードがどう変わったか」』
時刻 19:00~21:00
場所 東京 マイクロソフト新宿オフィス
参加費 無料
主催 codeseek
詳細 http://www.codeseek.net

■ 1月26日(土)

MVP 関連のとあるイベント
時刻 一日
場所 東京
参加費 無料
主催 マイクロソフト株式会社

これら全部に参加。と言いたいところだが、このうち、『VSUGDAY 2007 winter 大阪』と『「Ajax & AIR & Silverlight入門」セミナー (+FITEA新年会2008)』に参加予定。

2008年02月13日

Developers Summit 2008

今日から以下に参加予定。

dev08_b_120_2_re.gifDevelopers Summit 2008
会期 2008/02/13(水)~14(木)
会場 目黒雅叙園 (目黒)
主催 株式会社翔泳社

私は、14日15:25~16:15の【14-B-5】『MVP & .NET Ladies Lightning Talks Session』で、16回目のライトニング トークスをやる予定。

お題は、『「きれいなコードは好きですか?」~品質の高いソースコードを書くコツ~ 意図を表現編』。昨年のデブサミでは「美しいソースコードのための七箇条」から『きれいなコード ~命名編~』をやったが、今回は「意図を表現編」。

PPT資料は、5分で50枚。適度な量か。

ライトニング トークス

16回目のトークスを記念して、これまでに出た/これから出るトークスのメモ:

日時 イベント 演目 チーム 人数
1 2003/07/18 XP 祭り 2003 XP (XP Pedagogics: XP 的教育法) ---- 1人
2 2004/07/09 オブジェクト指向実践者の集い 第二弾 『サルでもわかるオブジェクト指向』失敗談 ---- 1人
3 2004/07/26 XP 祭り 2004 新人研修 XP式 ---- 1人
4 2004/12/09 オブジェクト指向実践者の集い 第三弾 TDD Player ---- 1人
5 2005/06/29 オブジェクト指向実践者の集い 第四弾 こんなチームはいやだ 社内の新人とのチーム 5人
6 アジャイルとジャグリングの不思議な関係 アジャグラー チーム 6人
2005/09/03 XP 祭り 2005 アジャイルとジャグリングの不思議な関係 アジャグラー チーム 7人
8 NAgile のススメ NAgiler チーム 4人
9 2005/12/03 VSUG設立記念セミナー 『開発プロセス フォーラム』のご紹介 ---- 1人
10 2006/02/10 Developers Summit 2006 アジャイル開発のコツ ~キーワードは“視点変換”~ with NAgiler 2人
11 2006/12/20 オブジェクト倶楽部 2006 クリスマスイベント 『メタボリック症候群からの視点変換』~果たして真の男前豆腐とは?~ ---- 1人
12 2007/01/12 ソフトウェア技術者サミット in 福井 2007 「みんなでAha Experience!!」 『メタボリック症候群からの視点変換』~果たして真の男前豆腐とは?~ ---- 1人
13 2007/06/01 VSUG Day 2007 Summer Visual Studio でテスト駆動開発 ~TDDで美しいコードを書くコツ~ ---- 1人
14 2007/12/21 RejectTalks 2007 社内改善大会フィードバック編 奥様メソッド 2人
15 2008/01/19 VSUG Day 2007 Winter 大阪 Silverlight 2.0 ---- 1人
16 2008/02/14 Developers Summit 2008 「きれいなコードは好きですか?」~品質の高いソースコードを書くコツ~ 意図を表現編 ---- 1人
17 2008/03/29 未定 未定 ---- 1人

2008年02月23日

Developers Summit 2008 のときの写真

dc021508.jpg
出発前の高速入口。福井には珍しく雪。というか吹雪。

dc021518.jpg
会場の目黒雅叙園に到着。東京には珍しく良い天気。

dc021521.jpg
受付を済ます。

dc021542.jpg
通路に両側には、スポンサーやコミュニティのブースが並ぶ。

dc021536.jpg
こみゅぷらすブース。

dc021502.jpg
ジョエルさんと写真。"BEST SOFTWARE WRITING" に愛用の万年筆でサインしていただいた。
※ ちなみに中央がジョエルさん。念の為。

dc021540.jpg
私にとってのベスト セッション、『言語の現在・過去・未来を語る』。今まで C# 関連ののセッションは随分聴いた心算だが、こんなのは初めて。エキサイティングだった。

dc021554.jpg
歌のセッション (謎)。

dc021555.jpg
一日目の二次会は久々の河豚。バカ旨。写真は、一円の河豚刺し。

※ 何故か二日目の写真はなし。

2008年03月26日

Google AJAX Language API

Google AJAX Language API』を使ったサンプル。

into
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load('language','1');
  google.setOnLoadCallback(function (){
    var languageList = document.getElementById('languageList');
    for (var language in google.language.Languages) {
      var languageOption = new Option(language, google.language.Languages[language]);
      languageList.options[languageList.options.length] = languageOption;
    }
  });

function translate() {
  var sourceText = document.getElementById('sourceText').value;
  google.language.detect(sourceText, function(detectResult) {
  if (detectResult.error) {
    alert('Error:' + error.message);
    return;
  }
  var languageList = document.getElementById('languageList');
  targetLanguage = languageList.options[languageList.selectedIndex].value;
  google.language.translate(
    sourceText,
    detectResult.language,
    targetLanguage,
    function(result) {
      if (result.error) {
        alert('Error:' + result.message);
        return;
      }
      document.getElementById('destinationText').value = result.translation;
    });
  });
}
</script>
<div>
  <dl>
    <dd><textarea id="sourceText" cols="40" rows="8"></textarea></dd>
    <dt><input type="submit" value="Translate" onclick="translate()"> into <select id="languageList"></select></dt>
    <dd><textarea id="destinationText" cols="40" rows="8"></textarea></dd>
  </dl>
</div>

2008年06月18日

FireFox 3 ダウンロード祭り

FireFox 3 を入れてみた。現在のところとても快適。

早朝は、とても重く中々ダウンロードできなかった。今は落ち着いている様子。

# やはり北陸の方はさびしい。一世帯当たりのダウンロード数表示とかに変えてもらえまいか。

2008年06月27日

『VSUG Leaders Summit 2008』と『オブジェクト倶楽部2008夏イベント』に参加予定

明日から、以下のイベントに参加予定

『VSUG Leaders Summit 2008』
日時 2008年6月28日(土)~29日(日)
場所 九州・宮崎市内
主催 VSUG (Visual Studio User Group)

18回目のライトニング トークスをやる予定。

2008summer_event_banner.jpgオブジェクト倶楽部2008夏イベント
日時 2008年7月1日(火) 10:00-18:40
会場 国立オリンピック記念青少年総合センター (東京都渋谷区)
主催 オブジェクト倶楽部 (株式会社永和システムマネジメント)
詳細 http://www.objectclub.jp/event/2008summer/

こちらは会社から新人を含めて 8 名が参加予定で、新人がライトニング トークスをやる。

2008年07月02日

オブジェクト倶楽部2008夏イベント

以下のイベントに参加した。

■ イベント概要

2008summer_event_banner.jpgオブジェクト倶楽部2008夏イベント
日時 2008年7月1日(火) 10:00-
会場 国立オリンピック記念青少年総合センター (東京都渋谷区)
主催 オブジェクト倶楽部 (株式会社永和システムマネジメント)
詳細 http://www.objectclub.jp/event/2008summer/

■ 会場の雰囲気 (写真)

■ 参加内容と感想

『システム思考と概念モデリング』 児玉 公信氏
内容
  • シンクロニシティ: 因果関係のない複数の場所で同時多発的に起こる
  • システム
    • "Divide and Conquer"、構造化手法に代表される分解・還元主義へのアンチテーゼ
    • 分割すると無くなるものがある
    • 創発: 全体の振る舞い > 部分の振る舞いの総和
    • 要素と要素をつなぐもの・間が重要
    • 自己組織化
    • 階層
    • アブダクション (abduction) ← 演繹 (deduction)、帰納 (induction)
      • 全体を全体として判る
    • ダイナミズム ― 複雑系・カオス
  • 意味論
    • 名目 (メタ、パワータイプ)  → 現物
    • 意味があるモデルになっているか?
    • モデルは階層の中でしか書けない
      • 意味の階層内の文脈に従ってモデルが存在する
      • 観測者は誰?
        • 「離見」と「離見の見」
      • × 全ての階層に単一の説明をしようとする
      • ○ 階層間の翻訳を行う
        • 意味の翻訳と時間の翻訳
  • 情報システム サイクル
    • 用 (Utilitos)・美 (Venustos)・強 (Firmitas)
    • 設計者と施工者が同じだとアジャイル
    • 「上流工程」はない
    • 「原要求」から「要求」への変換 = 設計
    • 要求に書かれるべきもの = 概念モデル
  • もの・こと分析
    • もの・こと図
    • 仕事とは、「行わねばならないこと」を「体や頭を使って行うこと」
    • 「行わねばならないこと」とは、「もの」を「始めの状態」から「終わりの状態」に変える「こと」
    • 要のもの・要のこと
    • 要の変化
    • 要の手段
      • 対象に接触して働く
    • 良いモデルは「最小かつ完備」
    • 仕事の流れ
      • 変換を業務フローとして記述 → アクティビティ図
      • 手段を記述 → ユースケース図
  • 学びの理論
    • 人はどうやって学ぶか
      • × Instruction
      • ○ Construction
      • 拡張による学習
      • 状況に埋め込まれた学習
      • 仕事の中での学習
      • 天啓 ― ダブルバインド
    • 内部矛盾を抱える
      • 「モジュール化」(冷たい技術)と「摺り合わせ」(熱い技術)
    • モデルは思考の見える化
  • 感想
    • この話を聴けたことは、素晴らしい体験だった
      • これだけでも参加した価値がある
    • 考え方を学ぶことができた
    • 「全体を全体としてみる」という概念の重要性を再認識
    • アブダクションという概念を知った
    • 概念の「名前」を知ることはとても重要
    • もの・こと分析の本を読んでみることにした
    『議事録からひろげよう、コミュニケーションの輪』 川上 文夫氏
    内容
    • 議事録についての前提説明
      • 議事録
        • 残す
        • 伝える
        • 整理する
    • ディスカッション前半
    • 軽量議事録についての説明
      • Wiki を利用
      • 皆で書き、皆で修正
      • 検索
    • ディスカッション後半
    • 軽量議事録の適用例
    感想
    • ディスカッションが良かった
    • 刺激で色々思い付いた
      • リアルタイム Wiki (Wiki チャット)
      • マインドマップ Wiki
      • 議事録ドリブン with Wiki
    『議論を描く技術 ファシリテーショングラフィック』 西河 誠氏
    内容
    • 見易い字の書き方
      • プロッキー
    • イラスト
    • ポイントの強調
    • 色の使い分け
    • 基本図形
      • ツリー型
      • フロー型
      • マトリクス型
      • サークル型
    • 空間のデザイン
      • Parking Lot
    • WLB (Work-Life Design: 仕事と生活の調和)
    感想
    • 体験型
      • 自分でやってみることで理解が進んだ
      • 今日から試せて効果的
      • 経験を積んでいけば上達
    • プロッキー重要
    • ホワイトボードで試していきたい
    アジャイル開発成果発表
    内容
    アジャイル開発体験 XPブートキャンプ 2008 成果発表
    ライトニング トークス
    内容
    • DSL 実装技術
    • OSD のススメ
    • 福井市で蝶が羽ばたくと、新宿御苑で竜巻が起こる
    • 謎の IT 系同人フリーペーパー現る?
    • 高橋メソッドを営業のプレゼンで実践してみた
    • Road to major ― IBM/Rational が Agile Agile いってたよ
    • あなたは本物の新人でしたか?
    • 早起き HACKS!
    • 日本コーチ協会東京チャプター
    • 世界を変えるのは他の誰かではない。自分自身だ。
    • 渡辺メソッド
    感想
    • (相変わらず) なんて楽しいんだろう
      • このイベント中、最も無くなって欲しくないセッション
    • (他人のことは言えない気がするが) ネタに走りすぎな感もあり
    • 「DSL 実装技術」は、真摯に技術にコミットしていてとても好印象
    • でも (謎)、「渡辺メソッド」はすごい
      • 見終わったときに、優勝だと思った
      • (完全にネタ系だが) あれは、もう優勝で仕方がない
      • ちょっと悔しい (謎)
    • うちの新人は、出演がきっかけで懇親会で話しかけられたことで成功体験となった
      • 成功体験重要
      • でも来年やるかどうかは微妙
    • 自分もまた出たい
      • 次回応募しよう
    懇親会・二次会
    感想
    • 懇親会は必須
      • 聴いただけだと体験としては不十分
      • 懇親会によって、イベント参加がより濃い体験になる
      • 懇親会での直接のコミュニケーションによって、セッションで聴いたことが自分のものになる気がする

    続きを読む "オブジェクト倶楽部2008夏イベント" »

    2008年07月09日

    関数型の性格が強いプログラミング言語

    rosettastone.png

    今後の学習用にメモ。

    2008年11月20日

    2008/11~12のイベント

    これから年末までのイベント参加予定。

    関西アジャイルナイト2008
    日時 2008/11/24(月) 祝日
    18:00~20:00 (17:45受付開始)
    場所 住所 大阪・京橋
    会場 ONE'S
    最寄駅 京橋
    主催
    会費 ¥3,500 (飲み放題&軽食付)
    詳細・申込み http://projectfacilitationproject.go2.jp/wiki/index.php?kansai_agilenight_08 (申込みは終了)

    VSUG DAY 2008 Winter VSUG Day 2008 Winter 東京
    日時 2008年12月12日(金)
    受付10時~
    場所 住所 東京都千代田区九段
    会場 ベルサール九段 3Fホール
    最寄駅 九段下
    主催 VSUG (Visual Studio User Group)
    会費 無料 (VSUG会員登録が必要)
    詳細・申込み http://vsug.jp/tabid/228/EventID/1/Default.aspx
    備考 VSUG Day 2008 Winter 大阪 2008/12/06(土)

    MSBC フォローアップセミナー: WPF を活用した業務アプリケーション開発~
    日時 2008/12/12(金)
    19:00~21:00 (18:30受付開始)
    場所 住所 東京都渋谷区代々木
    会場 マイクロソフト株式会社 新宿オフィス 5階 セミナールームA&B
    最寄駅 新宿
    主催 マイクロソフト株式会社
    会費 無料 (要参加登録)
    詳細・申込み http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032394347&Culture=ja-JP

    第35回 codeseek 勉強会
    日時 2008/12/13(土)
    10:00~12:00
    場所 東京のどこか
    主催 codeseek
    詳細・申込み http://www.codeseek.net

    Tech Fielders セミナー 東京 Silverlight 2 アプリケーション開発
    日時 2008/12/13(土)
    13:30~19:00 (13:00受付開始)
    場所 住所 東京都渋谷区代々木
    会場 マイクロソフト株式会社 新宿オフィス 5階 セミナールーム
    最寄駅 新宿
    主催 マイクロソフト株式会社
    会費 無料 (要参加登録)
    詳細・申込み http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032394535&culture=ja-JP

    こみゅぷらす こみゅぷらす・codeseek 等合同忘年会 2008
    日時 2008/12/13(土)
    19:15~21:15
    場所 東京のどこか
    主催

    FITEA FITEA定期勉強会 第9回
    日時 2008/12/20(土) 未定
    主催 FITEA (福井情報技術者協会)
    会費 無料 (要事前申込み)
    詳細・申込み 福井情報技術者協会ML

    FITEA FITEA 忘年会 2008
    日時 2008/12/20(土)
    19:00~21:00
    場所 住所 福井県福井市中央
    会場 味処 庄屋 0120-130-915 JR福井駅前より徒歩3分
    主催 FITEA (福井情報技術者協会)
    備考 詳細 http://fitea.org/?p=95
    申込み http://fitea.org/enterevents.html

    2009年01月19日

    Mashup Seminar in FUKUI

    dc011806.JPG

    週末に、Mashup Seminar in FUKUI に参加。


    「Mash up Awards」において、『Chamap』 で 2008 年の最優秀賞 に輝いた、福井県勝山市の山健太郎さんの受賞記念イベントだ。


    # 『ふくいソフトウェアコンペティション2008 作品発表会』では、僭越ながら司会をさせていただいた。


    講演はどれも刺激的なものだった。.NET の話題はほぼ皆無だったが。


    また、交流会では、講師の方々や主催のふくい産業支援センターの方、参加者の皆さん (FITEA の人達、学生さん達等) と沢山の話をする機会があった。


    講師の皆さんとは、二次会にもお付き合いいただき、へしこや福井の地酒を一緒に堪能することができた。


    dc011825.JPG

    素晴らしいイベントだった。主催者の方や講師の皆さんに感謝したい。

    ■ 概要

    Mashup Seminar in FUKUI
    日時 2009年1月17日(土)
    会場 Aossa (福井県福井市)
    主催 (財)ふくい産業支援センター

    ■ 内容

    • 『Mashup Awards 4と最新IT事情について』サン・マイクロシステムズ株式会社 藤井彰人氏
    • 『マッシュアップで技術革新! ~MA4最優秀賞作品ChaMap~』 DA-Studio 山健太郎氏
    • 『リクルートと "Web as a Platform"』メディアテクノロジーラボ 石橋利真氏
    • 『iPhone/Android/jiglet モバイルマッシュアップセミナー』株式会社jig.jp 福野泰介氏
    • 『ふくいソフトウェアコンペティション2008 作品発表会』 受賞上位3グループ
    • 交流会

    ■ 関連記事

    2009年02月10日

    Developers Summit 2009 に参加します

    comuplus.jpg
    明後日から二日間 (2/12~13) 開催される「Developers Summit 2009」に今年も参加します。

    今年も、こみゅぷらすから出ます。

    -------------------------------------------------------------------
    Reject Live! 「美しいソースコードのための考え方」

    日時: 2/12(木) 14:20~15:05
    場所: 目黒雅叙園 (東京・目黒)「華しらべ」
    -------------------------------------------------------------------

    「美しいソースコード」についてディスカッションします。

    私からは、何故「美しいソースコード」が重要なのか、何が「美しいソースコード」なのかについて主張します。

    PPTから概要を拾うと、「動機」、「不要論への反論」、「価値」、「原則」、「最近ホットな話題」、「ソースコードはモデルの記述になっているべき」、「デモ」のような感じです。

    是非おいでください。プログラミングについて話し合いましょう。

    2009年03月12日

    22回目のライトニングトーク

    月末に22回目のライトニングトークをやる。

    これまでに出た/これから出るトークスのメモ:

    日時 イベント 演目 チーム 人数
    1 2003/07/18 XP 祭り 2003 XP (XP Pedagogics: XP 的教育法) ---- 1人
    2 2004/07/09 オブジェクト指向実践者の集い 第二弾 『サルでもわかるオブジェクト指向』失敗談 ---- 1人
    3 2004/07/26 XP 祭り 2004 新人研修 XP式 ---- 1人
    4 2004/12/09 オブジェクト指向実践者の集い 第三弾 TDD Player ---- 1人
    5 2005/06/29 オブジェクト指向実践者の集い 第四弾 こんなチームはいやだ 社内の新人とのチーム 5人
    6 アジャイルとジャグリングの不思議な関係 アジャグラー チーム 6人
    2005/09/03 XP 祭り 2005 アジャイルとジャグリングの不思議な関係 アジャグラー チーム 7人
    8 NAgile のススメ NAgiler チーム 4人
    9 2005/12/03 VSUG設立記念セミナー 『開発プロセス フォーラム』のご紹介 ---- 1人
    10 2006/02/10 Developers Summit 2006 アジャイル開発のコツ ~キーワードは“視点変換”~ with NAgiler 2人
    11 2006/12/20 オブジェクト倶楽部 2006 クリスマスイベント 『メタボリック症候群からの視点変換』~果たして真の男前豆腐とは?~ ---- 1人
    12 2007/01/12 ソフトウェア技術者サミット in 福井 2007 「みんなでAha Experience!!」 『メタボリック症候群からの視点変換』~果たして真の男前豆腐とは?~ ---- 1人
    13 2007/06/01 VSUG Day 2007 Summer Visual Studio でテスト駆動開発 ~TDDで美しいコードを書くコツ~ ---- 1人
    14 2007/12/21 RejectTalks 2007 社内改善大会フィードバック編 奥様メソッド 2人
    15 2008/01/19 VSUG Day 2007 Winter 大阪 Silverlight 2.0 ---- 1人
    16 2008/02/14 Developers Summit 2008 「きれいなコードは好きですか?」~品質の高いソースコードを書くコツ~ 意図を表現編 ---- 1人
    17 2008/03/29 コミュニティ勉強会に参加しよう~第4回・福井編 きれいなコードを書こう with C# 3.0 意図を表現編 Part II ---- 1人
    18 2008/06/28 VSUG Leaders Summit 2008 "My ways of learning English" ---- 1人
    19 2008/10/03 Microsoft 最新技術最強セミナー in 福井 .NETで学ぶ英語 ~Learning English on .NET~ ---- 1人
    20 2008/12/12 VSUG Day 2008 Winter 東京 .NETで学ぶ英語 ~Learning English on .NET~ ---- 1人
    21 2008/12/13 Tech Fielders セミナー 東京 Silverlight 2 アプリケーション開発 .NETで学ぶ英語 ~Learning English on .NET~ ---- 1人
    22 2009/03/27 福井コンピュータ 開発本部大会 企画開発部 ---- 1人

    2009年03月14日

    CSS Nite in Fukui 2009 前夜祭

    昨晩は、以下のイベントに参加してきた。

    -------------------------------------------------------------------
    CSS Nite in Fukui 2009 前夜祭

    ■ 日時: 2009/03/13(金) 18:15-21:15
    ■ 場所: AOSSA (福井県福井市)

    ■ 内容:
    『地方のWeb制作者への2、3のヒント』鷹野 雅弘氏
    ・7人のWebクリエーターによるミニセッション
      ・『ここに注目! 2009年のWeb標準』
      ・『お客様とストレスフリーな会話をするためのWeb屋の心得』
      ・『売れるサイトを作るデザイナーの条件』
      ・『CMS Designerで分かるWebサイト情報設計』
      ・『10分でつくるCMS環境!』
      ・『日頃の「悩み」とそれを「解決」するために』
      ・『WebAPI+マッシュアップでウェブサイトハック』

    ■ 懇親会: 平成21年3月13日(金)21:30-

    -------------------------------------------------------------------

    DSCF5255_stitch.jpg
    DSCF5263.JPG
    DSCF5329_stitch.jpg

    「7人のWebクリエーターによるミニセッション」というのは、一人約10分の持ち時間で次々とセッションを行うもので、とても面白かった。

    とても個性的なスピーカーの、Web というくくりにとどまらない仕事や技術に関するそれぞれのユニークな視点が、次々に示される。

    主張を分かりやすく伝えるにはデモはとても重要だが、5分では難しいデモも10分なら入れやすい。デモがやれて長過ぎず、多くのスピーカーないセッションというと、10分という時間は、適当に思えた。

    この形式での勉強会を、是非近々やってみたいと思う。

    2009年03月30日

    FITEA春の勉強会~ライトニングセッション8連発~

    17375467_1503666409s.jpg
    先日『CSS Nite in Fukui 2009 前夜祭』と題した日記で、
    「7人のWebクリエーターによるミニセッション」というのは、一人約10分の持ち時間で次々とセッションを行うもので、とても面白かった。
    とても個性的なスピーカーの、Web というくくりにとどまらない仕事や技術に関するそれぞれのユニークな視点が、次々に示される。
    主張を分かりやすく伝えるにはデモはとても重要だが、5分では難しいデモも10分なら入れやすい。デモがやれて長過ぎず、多くのスピーカーないセッションというと、10分という時間は、適当に思えた。
    この形式での勉強会を、是非近々やってみたいと思う。
    と書きましたが、やることになりました。 どうぞ、奮ってご参加ください。
    『FITEA春の勉強会~ライトニングセッション8連発~』
    日時 2009年4月18日(土) 13:00受付、13:30開始~17:00終了
    場所 JR福井駅近く「AOSSA」6F 601A研修室 http://www.aossa.jp/access.html
    主催 福井情報技術者協会[FITEA]
    内容 在までに以下のようなスピーカーが予定されています。
    あと1~2名、セッション追加可能です。
    我こそはという方はぜひご応募下さい。
    • 森下氏: 10分で作る○○シリーズ
    • 小島氏: Microsoftのクラウド戦略
    • 前田氏: T2Vの紹介とその技術的背景
    • 西村氏: Flexネタ
    • 橋本氏: USBデバイス開発ネタ
    • 堀内氏: PHP Visual開発
    • 山氏: (未定)
    • 福井高専IT研究会: (未定)
    スピーカー参加希望者は info (アットマーク) fitea (ドット) orgまでどうぞ。
    対象者 プログラマー、システムエンジニア、Web開発者、その他ITに興味のある方全て
    参加費 無料
    詳細 http://fitea.org/?p=99
    参加 http://fitea.org/enterevents.html からどうぞ (要事前申込)

    2009年04月20日

    FITEA春の勉強会~ライトニングセッション8連発~

    17375467_1503666409s.jpg

    FITEA春の勉強会~ライトニングセッション8連発~の続き。

    以下のイベントを 福井情報技術者協会[FITEA] で開催。

    参加者は全部で50名近く。今回は、高専生や大学生、それに県外の方の参加が多かった。福井でこうして盛り上がれるのは、本当に嬉しい限りだ。

    今回の勉強会では、新しい試みとして、「ライトニング セッション」というのを行った。
    IDE や デバイス、Web の話など、九つの15分間のセッションが次々と行われた。ライトニング トークスと違って、時間が長めで、強制的な打ち切りはない。Q & A も可能だが、今回は質疑応答はなかった。

    また、もうひとつの新しい試みとして、ライトニング セッション後に「ふりかえりシェアリング」と称して、感想をシェアしていただいた。

    アンケート結果を見ると、全体として概ね好評だったようだ。今後も新たな試みの勉強会をやっていきたい。

    『FITEA春の勉強会~ライトニングセッション8連発~』
    日時 2009年4月18日(土) 13:30開始~17:00 (18:00~ 懇親会)
    場所 JR福井駅近く「AOSSA」6F 601A研修室
    主催 福井情報技術者協会[FITEA]
    内容
    • 挨拶 & アイスブレーク
    • ライトニング・セッション 15分間×9人
      • 小林 貴也 氏『ビジュアルプログラミングby Processing』
      • 西村誠氏『FlexBuilderで始めるFlash開発』
      • 堀内 豊司氏『PHP Visual開発』
      • 山 健太郎 氏『5分で作る高機能XOOPSウェブサイト』
      • 前田 勇希氏『Bluetoothで拡張する世界』
      • 橋本 賢一 氏『はじめてのUSBデバイス開発』
      • 森下 智弘 氏『10分で作るiPhoneアプリ』
      • 新出 純壱氏『ウェブ開発の次なる主戦場、 OpenSocial』
      • 小島 富治雄 氏『Microsoftのクラウド戦略』
    • ふりかえりシェアリング
    • FITEA勉強会からのお知らせ
    • 閉会の挨拶
    • 懇親会
    参加費 無料
    DSCF7595_stitch-2.jpg
    会場となった AOSSA
    DSCF7671_stitch.jpg
    ライトニング・セッションの様子。熱心な聴衆の皆さん。
    DSCF7679_stitch.jpg
    ふりかえりシェアリングでは、「印象に残ったこと」を絵に描いていただき、それをテーブル毎や全体でシェアした。
    DSCF7682.jpg
    懇親会では、Poken を手に入れて、早速ハイタッチ。

    2009年04月23日

    「FITEA春の勉強会~ライトニングセッション8連発~」レポート【動画あり】

    17375467_1503666409s.jpg
    先週末の勉強会のレポートがアップされた。

    アンケート結果あり、スライドあり (SlideShare やダウンロード)、動画あり (VidderUStream)、の素敵なレポートとなっている。

    2009年05月19日

    VSUG Day 2009 Summer

    130x120_vsugday_09s2.gifVSUG Day 2009 Summer
    日時 2009/06/06(土) 10:00受付
    会場 ベルサール八重洲 3F
    会費 無料 (VSUG 会員登録が必要)
    詳細と申込み http://vsug.jp/tabid/228/EventID/4/Default.aspx

    2009年05月25日

    プログラマーだから武生で飲もう会

    土曜日に「プログラマーだから武生で飲もう会」に行ってきた。
    dc052402_stitch.jpg

    ■日時: 5/23(土) 18:00~
    ■場所: 酒菜亭はやし (福井県越前市)
    dc052408.jpg
    「酒菜亭はやし」は、地元の酒屋さんが直営している居酒屋ということだったが、予想以上に酒肴が美味しく大満足。

    今回は日本酒がメインで、色々と呑み比べられて楽しかった。
    dc052416.jpg

    ここで飲んだ日本酒は:

    • 早瀬浦 (はやせうら) -純米- (福井)
    • 醸し人九平次 (かもしびとくへいじ) -吟醸山田錦- (愛知)
    • 東洋美人 (とうようびじん) -純米吟醸大辛口- (山口)
    • 上喜元 (じょうきげん) -生酛純米吟醸- (山形)
    • 黒龍 (こくりゅう) -特撰吟醸- (福井)

    等 (この後の銘柄はよく覚えていない)。

    肴は、刺身や葱間、焼きへしこなど。
    dc052418.jpg dc052419.jpg dc052423.jpg

    二軒目は「和伊屋」。
    dc052425.jpg

    ここで飲んだ日本酒は花垣のにごり酒。
    dc052427.jpg

    ここは和とイタリアンの店。肴はパスタと生へしこ等。
    dc052428.jpg

    2009年06月05日

    2009/06~09 IT系イベントに関する計画

    以下のイベントに参加を計画中。

    2009年09月06日

    FITEA『Arduinoによるフィジカル・コンピューティング実践入門』

    Arduino というのは、マイコンとその上で動かすプログラムを作るための開発環境からなるシステム。素人でも簡単に自作の電子回路をプログラムを使って制御することができるらしい。プログラムは C/C++ ライクな言語で PC や Mac で開発できるし、USB を通じて PC や Mac 上のプログラムと連携させることも簡単、ということのようだ。

    その勉強会に、中学一年の息子と二人と参加してきた。

    Arduinoによるフィジカル・コンピューティング実践入門
    会場 福井工業高等専門学校
    日時 2009年9月5日 9:15 - 18:00
    主催 福井情報技術者協会[FITEA]

    DSCF5583.jpg DSCF5606.jpg DSCF5615.jpg DSCF5622.jpg DSCF5627.jpg DSCF5628.jpg DSCF5634.jpg

    電子回路の基本的な知識が余りない親子だったのだが、その二人にとっても、大変わかりやすい説明だった。

    電子部品と Arduino を実際に手で触って、プログラムの動きや LED の光、圧電スピーカの音など、目や耳で体感しながらの学習は、とても楽しいものだった。

    息子は、今も同級生を家に呼んで、LED を使った実験を楽しんでいる。 (珍しく) 熱心に電気の勉強をしているようで、親としては、息子にとってとても良い刺激になったと喜んでいる。

    # 勉強会で教わった知識をもとに、親子で「LED に 1.8V で 2mA ~ 20mA を流して点灯したいとする。手元には 1kΩ の抵抗が数本。エネループ (1.2V) 三本直列で給電するとすると、抵抗はどうつなぐといい?」みたいな会話を楽しんでいる次第。

    私はというと、勉強会から帰ってきて直ぐに久々に自宅のテスターを引っ張り出してきたところが調子が悪かったため、今日新たなテスターを買ってきてしまった。これから Arduino を C#/.NET 環境と連携して遊んでみるつもりだ。

    本当に素晴らしい勉強会で、学生の頃のように (謎)、わくわくした。準備し、講師をしていただいた皆さんに感謝したい。

    IT技術がこんな風にダイナミックな体感と共に学べるというのは、素敵な ことだ。こういう勉強会をやっていきたいものだと思う。

    2009年12月17日

    12月のイベント参加予定

    今月は明日から以下のイベントに参加。

    『Windows 7 & Windows Server 2008 R2 対応アプリケーションへの移行のための開発ポイントセミナー』
    日時 2009年12月18日(金)
    13:00~18:00
    場所 会場 マイクロソフト株式会社 新宿本社 セミナールームA・B
    住所 東京都渋谷区代々木 2-2-1 小田急サザンタワー
    主催 マイクロソフト
    詳細 http://www.microsoft.com/japan/powerpro/ftd/windows7/

    『オブジェクト倶楽部2009忘年会イベント』
    日時 2009年12月18日(金)
    19:00~
    場所 会場 ダーツバーBENOA(ベノア)上野店
    住所 東京都台東区上野2-14-30 パセラリゾーツ3F
    主催 オブジェクト倶楽部
    詳細 http://objectclub.jp/event/2009winter/

    『"TDD" Boot Camp』
    日時 2009年12月19日(土)
    9:00~夕方
    場所 会場 日本オラクル青山センター
    住所 東京都台東区上野2-14-30 パセラリゾーツ3F
    主催 TDD Boot Camp 実行委員会
    詳細 http://kokucheese.com/event/entry/750/

    『第48回codeseek勉強会 & こみゅぷらす09合同勉強会 2009』
    日時 2009年12月19日(土)
    18:00~21:00
    場所 会場 新宿の貸し会議室
    住所 東京都新宿
    主催 codeseekこみゅぷらす
    詳細 http://www.codeseek.net

    『こみゅぷらすと codeseek の忘年会 09』
    日時 2009年12月19日(土)
    21:15~
    場所 東京都新宿
    主催 codeseekこみゅぷらす

    『こみゅぷらすの越冬隊 2009』
    日時 2009年12月20日(日)
    ~早朝

    『2009 FITEA忘年会』
    日時 2009年12月22日(水)
    19:30~22:00
    場所 会場 庄屋 (JR北陸本線福井駅から徒歩3分)
    住所 福井県福井市中央1丁目12-3 庄屋ビル
    主催 福井情報技術者協会[FITEA]
    詳細 http://fitea.org/?p=113http://atnd.org/events/2286

    2009年12月20日

    『Windows 7 & Windows Server 2008 R2 対応アプリケーションへの移行のための開発ポイントセミナー』、『オブジェクト倶楽部2009忘年会イベント』、『"TDD" Boot Camp』、『第48回codeseek勉強会 & こみゅぷらす09合同勉強会 2009』、『こみゅぷらすの越冬隊 2009』

    12/18(金)から20(日)に掛けて、東京で色々なイベントに参加してきた。

    ※ つぶやき:

    • 今月のイベント参加予定: http://blog.shos.info/archives/2009/12/12_1.html
    • 今日から明後日朝まで東京へ。
    • バス停に到着。これから小松空港へ出発。
    • 福井は一晩で大分雪が積もった。
    • 雪の中バスで小松空港に到着。これから羽田へ。
    • 小松空港。「使用します飛行機に雷が当たった為、これから30分点検致します」との放送中。
    • 一時間遅れで羽田に到着。これから新宿マイクロソフトへ。
    • 新宿マイクロソフトに到着。

    『Windows 7 & Windows Server 2008 R2 対応アプリケーションへの移行のための開発ポイントセミナー』
    日時 2009年12月18日(金)
    13:00~18:00
    場所 会場 マイクロソフト株式会社 新宿本社 セミナールームA・B
    住所 東京都渋谷区代々木 2-2-1 小田急サザンタワー
    主催 マイクロソフト
    詳細 http://www.microsoft.com/japan/powerpro/ftd/windows7/

    ※ つぶやき:

    • Windows 7 対応セミナー終了。これからオブラブ忘年会へ。
    • オブラブ忘年会会場に到着。

    『オブジェクト倶楽部2009忘年会イベント』
    日時 2009年12月18日(金)
    19:00~
    場所 会場 ダーツバーBENOA(ベノア)上野店
    住所 東京都台東区上野2-14-30 パセラリゾーツ3F
    主催 オブジェクト倶楽部
    詳細 http://objectclub.jp/event/2009winter/

    ※ つぶやき:

    • 大井町にて一泊。
    • TDD Boot Camp に参加しに Oracle に来た。

    『"TDD" Boot Camp』
    日時 2009年12月19日(土)
    9:00~夕方
    場所 会場 日本オラクル青山センター
    住所 東京都台東区上野2-14-30 パセラリゾーツ3F
    主催 TDD Boot Camp 実行委員会
    詳細 http://kokucheese.com/event/entry/750/

    ※ つぶやき:

    • 本当だ。日本オラクル青山センターの窓から見事に富士山が見える。天気が良いので、とてもきれいだ。 #tddbc
    • ちなみに参加中のイベントは "TDD" Boot Camp http://kokucheese.com/event/index/750/
    • RT @tddbc: UST放送開始です。 http://bit.ly/54rXfn #tddbc
    • 愈愈始まりました。 #tddbc
    • 和田卓人さんの講演が始まりました。字がでかい。 #tddbc
    • 私は、コンパイラによる文法チェックを初期のコードで失敗させる。 これも ツールによる自動デベロッパー テストの一つだと考えるから。 #tddbc
    • TDD の最初のコードは「コードの外部仕様の設計書」なので、コンパイルが通る必要がない。 #tddbc
    • つまり、コンパイラのエラーはコードへの最初のフィードバック #tddbc
    • 静的型付け言語の良さはそこにあると思う > コンパイラによるコードへのすばやいフィードバック #tddbc
    • Visual Studio を使えばコンパイルする必要すらない。コードを打ち込むたびリアルタイムにエラーに赤い波線が出てフィードバックがかかる。 > TDD の最初のコードは「コードの外部仕様の設計書」なので、コンパイルが通る必要がない。 #tddbc
    • リファクタリングを駆動するものは、「次に起こる」設計の変化の要求だと思う。「今テストが通っている動くコードをいじくる」ためのものじゃないと思う。 #tddbc
    • TDD で大切な目的は二番目の 'D' だと思う。ドライブする、ということ。 #tddbc
    • TDD の目的は「不安の克服」と「健康の維持」 by t_wada #tddbc
    • これから TDD で FizzBuzz を作ってみよう by t_wada #tddbc
    • テストは設計書だから日本語で書く by t_wada その局面なら、テスト以外のコードだって設計書だから日本語でいいと思う。 #tddbc
    • Test から先に書くのはプロとしての当然の振る舞い by ボブおじさん by t_wada #tddbc
    • TDD is not a ability but a skill. by t_wada #tddbc
    • "Test Driven" 著者の Lasse Koskela 氏の講演が始まりました。わくわくします。 #tddbc
    • 英語の講演なのでつぶやきながら聴くのはきつい。 #tddbc
    • TDD の良さは、「どう書くか脳」を「何を書くか脳」にうまく切り替える手段と機会をプログラマに提供することだと思う。 #tddbc
    • 「TDD の難しさ」がどこから来ているものかを真面目に考えるのが大切な気がしてきた。何故難しく感じるのか? 勘だが「プログラミングの本質的な難しさ」に関係している気がする。 #tddbc
    • 「コードの美しさ」についてよく考える。「コードを美しくする」っていう場合、それが誰にとってのどんな価値を上げることか、を考えるべきだと思う。 #tddbc
    • RT @tddbc: オススメ本。「レガシーコード改善ガイド」 Amazonのページ > http://bit.ly/555GSN #tddbc
    • Lasse さんの講演が終わりました。拍手! #tddbc
    • ランチタイム & スポンサー セッションです。ローソンおにぎり中。 #tddbc
    • そういえば (謎)、最近うちの奥さんは臨月になってないなー。 #tddbc
    • スポンサー セッション第二弾。マイクロソフト長沢さんの話が始まった。 #tddbc
    • おめでとうございます! QT @katzchang: まじで?おめでとーございます! #tddbc RT @KenTamagawa: 私が話している間に産まれていました!!
    • TDD の演習めちゃめちゃ楽しい。すばらしいイベントだ。 #tddbc
    • テストケースの粒度をわざと小さくして、ドライブ感を出す。 #tddbc
    • テストケースがビッグ リファクタリングにつながりそうになったときは、体調と相談。それが超えるのが怖いハードルに見えたときは、テストの粒度を小さくしてハードルを下げる。 #tddbc
    • 新たなテストケースに対応する勇気が出ないときは、スパイクして不安を消す。 #tddbc
    • テストが全部グリーンなのに、バグを発見したときは、レッドになるテストケースを追加して、それをグリーンにしてバグを消す。 #tddbc

    『第48回codeseek勉強会 & こみゅぷらす09合同勉強会 2009』
    日時 2009年12月19日(土)
    18:00~21:00
    場所 会場 新宿の貸し会議室
    住所 東京都新宿
    主催 codeseekこみゅぷらす
    詳細 http://www.codeseek.net

    『こみゅぷらすと codeseek の忘年会 09』
    日時 2009年12月19日(土)
    21:15~
    場所 東京都新宿
    主催 codeseekこみゅぷらす

    『こみゅぷらすの越冬隊 2009』
    日時 2009年12月20日(日)
    ~早朝

    ※ つぶやき:

    • こみゅぶらす越冬完了
    • 羽田空港のラウンジに到着。小松行の飛行機が飛ぶかどうかちょっとだけ心配。
    • 小松行きの飛行機は取り敢えずは飛ぶようだ。
    • 小松空港に到着。雪の為中々降りられず、空港上空で一時間以上待機していた。こちらは雪景色。
    • RT @kkd: TDDはあらためて、漸進的なコードの成長のプロセスなのだと実感した。TDDでなくてもこのプロセスは実現できるのだけど、それを誰でもできるようにしているのがTDD
    • 二日間東京で五つのイベントに参加したが、多くのエンジニアと会い、話すことができた。やっばり多くの気付きは人と話す体験から生まれる。自分が動かなければ得られないものだ。
    • (私は人見知りをする質なので) 人に話し掛けるのには勇気が要る。だが自分か、話し掛けることで体験を始められる。勇気を振り絞る価値はある。
    • 昨日の TDD Boot Camp で Lasse さんに話し掛けるのにも勇気が必要だったが、たどたどしい英語を一所懸命聞いてくれて、沢山アドバイスをくれた。良い人だ。

    2010年01月29日

    アップグレードふくい Vol.25 ~Web・IT技術者大交流会(UGF+FITEA+WCAFコラボイベント)~

    イベント名 アップグレードふくい Vol.25
    ~Web・IT技術者大交流会(UGF+FITEA+WCAFコラボイベント)~
    日時 平成22年1月30日(土)14:00-20:30
    会場 福井県産業情報センター (坂井市丸岡町熊堂)
    主催 (財)ふくい産業支援センター
    参加費 1,000円 <学生は無料(学生証もしくはコピーの提示が必要)> セミナー参加料、交流会飲食費を含む
    詳細/申し込み http://www.fisc.jp/ugf_detail.php?eid=00027

    ITエンジニアやその志望者を対象としたイベントで、内容は Android、iPhone、Processing、ソフトウェアライセンス、Windows Azure、Google Hackathon など盛り沢山です。ふくいソフトウェアコンペティション2009 入賞作品発表会もあります。

    福井情報技術者協会[FITEA] は、「FITEA ライトニングセッション三連発 ~OSSライセンス、Windows Azure、Google Hackathon~」で登壇します。

    私はいくつかのコーナーで司会をやります。

    2010年01月30日

    アップグレードふくい Vol.25 ~Web・IT技術者大交流会(UGF+FITEA+WCAFコラボイベント)~

    下記のイベントに参加してきた。

    イベント名 アップグレードふくい Vol.25
    ~Web・IT技術者大交流会(UGF+FITEA+WCAFコラボイベント)~
    日時 平成22年1月30日(土)14:00-20:30
    会場 福井県産業情報センター (坂井市丸岡町熊堂)
    主催 (財)ふくい産業支援センター
    • セッション1: 「ITエンジニア&志望者は、今何をすべきか?」 山下 大介氏
    • セッション2: 「Androidアプリ開発の基礎知識」 出村 成和氏
    • セッション3: 「私がiPhoneアプリ開発で使う10の書籍」 宮川 栄一氏
    • セッション4: 「Processingではじめるインタラクティブデザイン」 吉村 マサテル氏
    • セッション5: 「FITEA ライトニングセッション三連発 ~OSSライセンス、Windows Azure、Google Hackathon~」 司会: 小島 富治雄氏
      • 「オープンソースライセンス基礎知識入門」 森下 智弘氏
      • 「Windows Azure」 橋本 賢一氏
      • 「福井でGoogle Hackathonやろうぜ!」 伊藤 祥氏 
    • セッション6:  「ふくいソフトウェアコンペティション2009 上位入賞作品発表会」 司会: 小島 富治雄氏
      • 「Ondemand(オンデマンド)」 澤田 拓哉さん
      • 「TOY BOX(トイボックス)」 前田 知也さん、苗田 健作さん、野中 祐貴さん、橋詰 弘志さん、和田 泰知さん
      •  「Air Music Player(エアーミュージックプレイヤー)」 荒谷 佳美さん
    • 交流会

    ※ 当日のつぶやき:

    • 今日は午後から「アップグレードふくい Vol.25 ~:Web・IT技術者大交流会 (UGF+FITEA+WCAFコラボイベント)~」 http://bit.ly/5bVFio に参加。
    • 「勉強会は懇親会が重要」確かに。私の場合、懇親会でエンジニア人生が変わったと思う。 #ugf2010
    • 【急募】FITEAセッションの冒頭でやる一発ギャグ。(アイスブレーキング) #upf2010
    • 出村さんの「Android アプリ開発の基礎知識」が始まった。プレゼンツールがユニークで楽しい。 #ugf2010
    • このプレゼンツールいいなー。Windows 用でこういうのないかなー。 #ugf2010
    • UST はこちら。メイン: http://www.ustream.tv/channel/upgrade-fukui サブ: http://ustre.am/8gxT #ugf2010
    • 出村さんが使用中のプレゼンツールの紹介記事「Preziは過去に見たなかで最高のプレゼンテーション・ツールだ」 http://bit.ly/dHUX9 #ugf2010
    • iPhone と違って開発環境のハードルが低いのがいいなー > Android。私は iPhone ユーザーだけど。 #ugf2010
    • 「私が iPhone アプリ開発で使う10の書籍」by 宮川さん が始まった。「iPhone アプリを開発するのに先ず用意するものはお金」 #ugf2010
    • 「Processingではじめるインタラクティブデザイン」by WCAF 吉村さん。 #ugf2010

    DSCF7994.JPG
    会場の福井県産業情報センター

    DSCF8002.JPG
    セッション会場内の様子

    DSCF8058.JPG
    懇親会の様子

    2010年03月13日

    TDD Boot Camp 北陸

    TDD Boot Camp 北陸
    ■ 日時: 2010/03/13(土) 10:00~夕方
    ■ 場所: 白山里 (石川県白山市)
    ■ 主催: 北陸エンジニアグループ

    ※ この日のつぶやき。

    • http://kokucheese.com/event/index/1307/ TDD Boot Camp 北陸 に参加すべく石川県白山市に移動中。橋本さんの車。
    • TDD Boot Camp 北陸の会場に到着。iPhone がつながらないので、ネットがつながるのはありがたい。
    • 「TDDがテストかどうか、という議論は虚しい。」 #tddbc
    • 「TDDの心。複数を相手にしない。ひとりずつ対処する。by 宮本武蔵。問題を相手にするときの心得」 by t_wada #tddbc
    • 「TDDの心。すばやく回す。素早く回せるように問題を小さく切り取る。黄金の回転」 by t_wada #tddbc
    • 「TDDの心。自分が最初のユーザー。良いプログラム・悪いプログラムは自分に最初にフィードバックが来る」 by t_wada #tddbc
    • 「TDDの心。不安をテストに」 by t_wada #tddbc
    • 「TDDの心。不安な状態に持っていかない」 by t_wada #tddbc
    • 「TDDの真の目的は、健康なコード。無駄がなく変化に強いコード」 by t_wada #tddbc
    • 「Emergent Design」という本の紹介。「創発的設計」 by t_wada #tddbc
    • 「TDDの心。フィードバックや学びを否定しない」 by t_wada #tddbc
    • 「TDDの心。設計し続ける」 by t_wada #tddbc
    • TDDのデモ中。「テストを足していいのはグリーンの時だけ。実装を足していいのはレッドの時だけ」 by t_wada #tddbc
    • 「TDDで書くと自然とテストしやすい設計 (=良い設計) になる」 by t_wada #tddbc
    • 「リファクタリングを息をするように自由にやる」 by t_wada #tddbc
    • TDDのテストはペアに意図を伝えるための言葉でもあると思う。C#で意図をしゃべってそのままコンパイル&自動実行。 #tddbc
    • わんくまさんでも今TDD道場ってのをやってるのかー。 #tddbc
    • EM WEST ゲット。 #tddbc
      http://twitpic.com/188g4b
    • TDDの演習中! #tddbc
    • TDDの演習中。既存のテストや実装にインパクトの少ない方を選ぶ、という設計判断。 #tddbc
    • TDDの演習中。NUnit によるパラメタライズド テスト。 #tddbc
    • TDD Boot Camp 北陸の第一部終了。実に楽しかった。t_wada賞は橋本さん。 #tddbc
    • 今回も C# の勉強にもなった。同じ課題の他人のソースコードを読むのはとても勉強になる。 #tddbc

    dc031403.jpg
    会場の白山里 (石川県白山市)に到着。山の中の落ち着いた佇まい。前の週に降った雪が残っている。

    dc031411.jpg
    開始直前の様子。

    dc031414.JPG
    主催者による説明。

    dc031427.JPG
    和田氏と主催者のペアプログラミングによる TDD のデモ。

    dc031439.JPG dc031440.JPG
    TDD の一回目の実習が終わってのフィードバック。

    dc031474.JPG dc031483_stitch.jpg dc0314111.JPG
    TDD の二回目の実習が終わってのフィードバック。

    dc0314121.JPG
    第一部が終了して帰宅。

    2010年04月10日

    FITEA定期勉強会 第20回

    『FITEA定期勉強会 第20回 (2010年02回目)』

    ■ 日時: 2010/04/10(土) 09:00~12:00
    ■ 主催: 福井情報技術者協会[FITEA]
    ■ 内容:
    ・小島 富治雄 氏『C#、F#、Haskell による宣言型プログラミングのススメ』
    ・橋本 賢一 氏 書籍「Scalaスケーラブルプログラミング」による講義

    DSCF9822.JPG

    関数型言語・宣言型プログラミングの話をきっけけに、分かりやすいコードを書く話で盛り上がった。

    2010年12月09日

    12月のイベント参加予定

    [会社] 忘年会のような何か
    日時 2010年12月3日(金) 19:30~

    [Event] Tech Fielders セミナー 東京 [Agile Day 4]
    日時 12月10日(金) 13:30~19:30
    場所 マイクロソフト株式会社 新宿本社 5F セミナールームA&B
    主催 マイクロソフト株式会社

    [Event] 第61回codeseek&第2回日本C#ユーザー会勉強会
    日時 12月10日(金) 19:00~21:00
    場所 秋葉原近くの会議室
    主催/共催 codeseek日本C#ユーザー会tk-engineeringこみゅぷらすeパウダ~.Net/C# Group

    [Event] こみゅぷらす忘年会
    日時 12月10日(金) 21:00~
    場所 秋葉原
    主催/共催 こみゅぷらすcodeseek

    [Event] VSUG Day 2010 Winter
    日時 12月11日(土) 10:00~17:40
    場所 日本工学院専門学校 蒲田キャンパス 新校舎 7F
    主催 VSUG (Visual Studio User Group)

    [Event] アーキテクトアカデミー Vol.02
    日時 12月11日(土) 13:30~16:50
    場所 日本工学院専門学校 蒲田キャンパス 新校舎 7F
    主催 VSUG (Visual Studio User Group)

    [Event] FITEA 忘年会 2010
    日時 12月18日(土) 19:00~22:00
    場所 名古屋コーチンの翠翔 福井店
    主催 福井情報技術者協会[FITEA]

    [会社] 忘年会のような何か
    日時 2010年12月27日(月) 19:30~

    2010年12月15日

    2010/12/10-11 「Tech Fielders セミナー 東京 [Agile Day 4]」、「VSUG Day 2010 Winter」、「アーキテクトアカデミー Vol.02」

    [Event] Tech Fielders セミナー 東京 [Agile Day 4]
    日時 12月10日(金) 13:30~19:30
    場所 マイクロソフト株式会社 新宿本社 5F セミナールームA&B
    主催 マイクロソフト株式会社

    ■ 内容

    • 『マイクロソフトのアジャイル支援と Agile Day について』
      マイクロソフト株式会社 長沢 智治 氏
    • 『アジャイルでのテストを考えてみる』
      近江 久美子 氏
      • 反復の中でテストをどう進めるか
    • 『やさしいアジャイルの始め方』
      西村 直人 氏
      • 十分な事前の検証
    • 『ワークショップ『自律的、自己組織的チームを作るコミュニケーションワーク ~ NLP のメタモデルとミルトンモデルの基礎から質問の技法へ ~』
      林 栄一 氏
      • NLPのワークショップ
      • メタモデルとミルトンモデルの話
    • ライトニングトークス

    [Event] 第61回codeseek&第2回日本C#ユーザー会勉強会
    日時 12月10日(金) 19:00~21:00
    場所 秋葉原近くの会議室
    主催/共催 codeseek日本C#ユーザー会tk-engineeringこみゅぷらすeパウダ~.Net/C# Group

    [Event] こみゅぷらす忘年会
    日時 12月10日(金) 21:00~
    場所 秋葉原
    主催/共催 こみゅぷらすcodeseek

    [Event] VSUG Day 2010 Winter
    日時 12月11日(土) 10:00~17:40
    場所 日本工学院専門学校 蒲田キャンパス 新校舎 7F
    主催 VSUG (Visual Studio User Group)

    ■ 内容

    • 「Silverlight アプリケーション開発の最新情報」
      マイクロソフト株式会社 大西 彰 氏
      • Silverlight 4 によるAutomationFactory というクラスを使った COM Automation によるエクセルの操作のデモ
      • サーバー側: Expression Encoder → Live Smooth Streaming、クライアント: Silverlight でライブ ストリーミングを即席でやってみるデモ
      • Silverlight + WCF サービスを作って Windows Azure にデプロイするところまでのスクラッチなデモ
      • Silverlight 5 に関する速報 - 3D対応、P/Invode 対応など
    • 「Team Foundation Server を乗りこなすコツ教えます~知る、そして評価する編」
      マイクロソフト株式会社 長沢 智治 氏
      • Team Foundation Server の環境をスクラッチで構築するデモ
      • Team Foundation Server を「基本構成」でインストールすると、文書管理、ポータル、レポートがない
    • ライトニング トークス
      • 「F#」で登壇。

    [Event] アーキテクトアカデミー Vol.02
    日時 12月11日(土) 13:30~16:50
    場所 日本工学院専門学校 蒲田キャンパス 新校舎 7F
    主催 VSUG (Visual Studio User Group)

    ■ 内容

    • 「 アーキテクチャ、ソフトウェア工学、そしてアジャイル」
      平鍋 健児 氏
      • "Dear Mr. Architect" を題材に「(建物にくらべて) ソフトウェアの設計がなぜ難しいのか?」のワーク
      • ソフトウェア開発の本質的困難性について - 複雑性、同調性、可変性、そして不可視性
      • 複雑な問題の解き方の話。現実の問題 → 問題を分析してモデル化して理解しやすくする → モデル化された問題から解を得る (設計) → 現実の解を得る (実装) → 検証 (テスト)
      • 所謂ウォーターフォールは、問題が時間とともに変化するようなものの解決には向かない
    • 「オブジェクト指向設計の原則」
      小井土 亨 氏
      • 設計の目的とは? という問いに答える、というワーク
      • これまでに経験した「悪い設計」を紙に書く、というワーク
      • アーキテクチャーの選び方によって、品質特性が変わる
      • アーキテクチャー選択時の話 - 品質特性は全てをフルにすることはできないので、どれを優先するかによってアーキテクチャーを選ぶ

    2011年01月20日

    26回目のライトニングトーク

    今週末に26回目のライトニングトークをやる。

    これまでに出た/これから出るトークスのメモ:

    日時 イベント 演目 チーム 人数
    1 2003/07/18 XP 祭り 2003 XP (XP Pedagogics: XP 的教育法) ---- 1人
    2 2004/07/09 オブジェクト指向実践者の集い 第二弾 『サルでもわかるオブジェクト指向』失敗談 ---- 1人
    3 2004/07/26 XP 祭り 2004 新人研修 XP式 ---- 1人
    4 2004/12/09 オブジェクト指向実践者の集い 第三弾 TDD Player ---- 1人
    5 2005/06/29 オブジェクト指向実践者の集い 第四弾 こんなチームはいやだ 社内の新人とのチーム 5人
    6 アジャイルとジャグリングの不思議な関係 アジャグラー チーム 6人
    2005/09/03 XP 祭り 2005 アジャイルとジャグリングの不思議な関係 アジャグラー チーム 7人
    8 NAgile のススメ NAgiler チーム 4人
    9 2005/12/03 VSUG設立記念セミナー 『開発プロセス フォーラム』のご紹介 ---- 1人
    10 2006/02/10 Developers Summit 2006 アジャイル開発のコツ ~キーワードは“視点変換”~ with NAgiler 2人
    11 2006/12/20 オブジェクト倶楽部 2006 クリスマスイベント 『メタボリック症候群からの視点変換』~果たして真の男前豆腐とは?~ ---- 1人
    12 2007/01/12 ソフトウェア技術者サミット in 福井 2007 「みんなでAha Experience!!」 『メタボリック症候群からの視点変換』~果たして真の男前豆腐とは?~ ---- 1人
    13 2007/06/01 VSUG Day 2007 Summer Visual Studio でテスト駆動開発 ~TDDで美しいコードを書くコツ~ ---- 1人
    14 2007/12/21 RejectTalks 2007 社内改善大会フィードバック編 奥様メソッド 2人
    15 2008/01/19 VSUG Day 2007 Winter 大阪 Silverlight 2.0 ---- 1人
    16 2008/02/14 Developers Summit 2008 「きれいなコードは好きですか?」~品質の高いソースコードを書くコツ~ 意図を表現編 ---- 1人
    17 2008/03/29 コミュニティ勉強会に参加しよう~第4回・福井編 きれいなコードを書こう with C# 3.0 意図を表現編 Part II ---- 1人
    18 2008/06/28 VSUG Leaders Summit 2008 "My ways of learning English" ---- 1人
    19 2008/10/03 Microsoft 最新技術最強セミナー in 福井 .NETで学ぶ英語 ~Learning English on .NET~ ---- 1人
    20 2008/12/12 VSUG Day 2008 Winter 東京 .NETで学ぶ英語 ~Learning English on .NET~ ---- 1人
    21 2008/12/13 Tech Fielders セミナー 東京 Silverlight 2 アプリケーション開発 .NETで学ぶ英語 ~Learning English on .NET~ ---- 1人
    22 2009/03/27 福井コンピュータ 開発本部大会 企画開発部 ---- 1人
    23 2010/07/17 Hokuriku.NET Vol.4 最適なテクノロジーの選択とアーキテクチャ ---- 1人
    24 2010/10/23 Hokuriku.NET Vol.5.5 Microsoft MVP プログラムへのお誘い ---- 1人
    25 2010/12/11 VSUG Day Winter 2010 F#。 ---- 1人
    26 2011/01/22 Mashup Seminar in FUKUI 2011 ~アップグレードふくい Vol.28~ 「IT勉強会のススメ」(予定) ---- 1人
    27 2011/02/17 Developers Summit 2011 Microsoft .NET 上でのマルチパラダイム プログラミング ---- 1人

    2011年01月22日

    Mashup Seminar in FUKUI 2011 ~アップグレードふくい Vol.28~

    以下のイベントに参加してきた。

    Mashup Seminar in FUKUI 2011 ~アップグレードふくい Vol.28~
    日時 2011年1月22日 14:00-20:00
    会場 福井県産業情報センター (福井県坂井市)
    主催 財団法人 ふくい産業支援センター
    協力 福井情報技術者協会[FITEA]

    会場の福井県産業情報センター


    「Mashup Awards 6 ~過去最高544作品が集まった日本最大の開発コンテストをふりかえって~」
    山本 大策 氏 (リクルートメディアテクノロジーラボ)


    「IT系イクメン Emiriパパ流育児日記の作り方 ~Mashup Awards 6 最優秀作品「育児日記EmiriSystem」について~」
    上田 哲郎 氏 (自動車メーカー研究所勤務、東京大学非常勤講師、筑波大学非常勤講師)


    「透明化する境界線 ~ワンパクの制作事例からみるWeb業界の今後について~」
    山 健太郎 氏(株式会社ワンパク テクニカルディレクター)宮城 秀雄 氏(株式会社ワンパク チーフデザイナー)


    「FITEA ライトニングセッション」
    小島 富治雄 氏 (福井コンピュータ株式会社 シニアエキスパート)堀江 武 氏 (江守商事株式会社 SE)橋本 賢一 氏 (田中合金株式会社)


    ふくいソフトウェアコンペティション 2010 上位入賞作品発表会」

    「Tukkoみった~ (つっこみったー)」<福井県ソフトウェア大賞>
    森本真理恵さん・福田大志さん・金具花保里さん・乗川英己さん・井上茜友美さん・中村汐歩さん (アイビーテクノカレッジ システム工学科・高度情報技術科 3年)
    「ファイル整理」<福井県ソフトウェア優秀賞>
    輪違恵祐さん (福井工業大学 経営情報学科 4年)
    「双方向通信授業支援システム」<福井県ソフトウェア優秀賞>
    山口龍太郎さん(福井大学 工学部 知能システム工学科 4年)
    進行: 小島 富治雄 氏

    ふくいソフトウェアコンペティション 2010の審査結果と各作品の概要はこちら


    交流会


    この後、福井駅前で講師の方たちとの交流会に参加した。

    2011年02月20日

    Developers Summit 2011

    Developers Summit 2011 に参加してきたのでメモ。

    参加は今回で8回目。昨年は Microsoft 2010 MVP Global Summit とぶつかったので不参加だが、それ以外は毎年参加している。

    今回は中学生を始めとした若く、プレゼンテーションが驚くほど上手で、技術的をしっかり学んでいる人たちの活躍が目立った。

    Developers Summit 2011
    日時 2月17日(木)・18日(金)
    場所 目黒雅叙園 (東京・目黒)
    主催 株式会社 翔泳社

    • 【17-C-1】『Big Dataを扱うアーキテクチャの原則』
      萩原正義 氏 / 福井厚 氏
      • 「デブサミに毎年来てると技術の流れが見える」
      • 「Universal Scalability Law C(N) = N / (1 + Contention × (N - 1) + Coherency × N × (N - 1))」
      • 「SQLは関係代数をベースにしている」
      • CQRS の説明。「今のデータベースは更新と参照が一緒になっているためにスケールしない」「更新は行指向。参照は列指向なので分けないとスケールしない。分けると更新直後に参照すると古いデータになることがある。即時一貫性は犠牲になる」
    • 【17-C-2】『クラウド上でのエンタープライズアプリケーション開発』
      小野和俊 氏 / 松本幹 氏 / 中村研二 氏 / 宮崎貴司 氏 / 渡辺俊史 氏 / 内藤浩史 氏
      • 「英会話教師予約システム」という同じ題材を Windows Azure、Google App Engine、Force.com、AWS で作って比較。
    • 【17-D-3】『MVP & .NET Community Members Lightning Talks』
      奥津和真 氏 / 原水真一 氏 / 福岡寿和 氏 / 酒井達明 氏 / 小島富治雄 氏 / 瀬尾佳隆 氏 / 後藤雄介 氏
    • 【Open Jam】『XAMLプログラマーになろう ~僕と契約して、.NETプログラマーになってよ~』
      codeseek & こみゅぷらす
    • 【17-D-6】『.NETアセンブリの宿命』
      近藤和彦 氏 / 岩沢宏美 氏
      • なんかマイクロソフト近藤さんの台詞が芝居がかってきた。
      • dotfuscator による .NETアセンブリの難読化のデモ。ウチの新人は能力が高いのでこの位の難読ソースはツールなしで書ける。(謎)
      • スライドは: こちら
    • 【17-D-7】『C#(VB)プログラマのためのF#入門』
      bleis-tift 氏
      • 「関数型言語ではプログラムが式で構成される」みたいな話。
      • スライドは: こちら
    • 【17-E-7】『デブサミオフィシャルコミュニティから選出のLT大会2011』
      よしおかひろたか 氏 / 永田祐子 氏 / 16コミュニティ参加
    • 【アンオフィシャル パーティ】『今夜、我々は未来のために帆を立てた』
      produced by DevLOVE
    • 【18-B-1】『プログラマが知るべき、たったひとつの大事なことがら』
      和田卓人 氏
      • 「学び続ける姿勢」
    • 【18-D-2】『Windowsフォームで大丈夫か?一番良いのを頼む。』
      八巻雄哉 氏
    • 【18-A-4】『ウェブアプリケーション関連技術5年間の変遷とこれからのはなし』
      藤本真樹 氏
    • 【18-D-5】『SmartPhone - アプリ開発とその未来』
      張 惺 (a.k.a. Tehu) 氏
      • 15歳とは思えないプレゼンテーション力。
      • スライドは: こちら
    • 【18-D-7】『全てのAndroidアプリ開発者に次ぐ 【application Next Generation】』
      日本アンドロイドの会女子部

    ■ 関連サイト

    2011年09月08日

    Lightningtalks Timer by HTML5

    lightningtalkstimer.png

    HTML5 で ライトニングトーク用のタイマーを作成した。

    詳しくはソースを参照のこと。

    使い方等:
    • クリックするたびカウントダウン (デフォルト 5分)
    • 残り時間が少なくなると赤くなる (デフォルト 1分)
    • クエリー文字列:
      • max で、時間 (秒) の設定 (lightningtalktimer.html?max=100 で 100秒)
      • danger で、赤くなる時間 (秒) の設定 (lightningtalktimer.html?danger=10 で 10秒、lightningtalktimer.html?danger=0 だと最後だけ赤くなる)
      • font で、文字サイズ (%) の設定 (lightningtalktimer.html?font=90 で文字の高さが最大値の90%)
    • HTML が 1 ファイルだけで他ファイルへの依存なし (オフラインでも OK)
    • Internet Explorer、Firefox、Safari、Google Chrome、Opera の現時点での最新版で動作
    • iPhone、Android フォン等スマートフォンで動作

    2011年10月20日

    多体問題シミュレーション by HTML5

    nbody.png

    # 「Lightningtalks Timer by HTML5」の続き。

    HTML5 で多体問題 (N‐body problem)のシミュレーションを作成した。

    4次のルンゲ=クッタ法を使用。

    詳しくはソースを参照のこと。

    • 物体は球体として表現し、見掛け上の半径は各質量の3分の1乗の比になるようにした。 但し、衝突は考慮していない。

    使い方等:

    • クリックでスケールの変更。
    • クエリー文字列:
      • number で、物体の数の設定 (nbody.html?number=8 で 8 個。1-10個、デフォルト 5 個)
      • size で、物体を表示する大きさの変更 (nbody.html?size=100 で 100%。1-800%、デフォルト 50%)
    • HTML が 1 ファイルだけで他ファイルへの依存なし (オフラインでも OK)
    • Internet Explorer、Firefox、Safari、Google Chrome、Opera の現時点での最新版で動作
    • iPhone、Android フォン等スマートフォンで動作

    2011年10月26日

    多体問題シミュレーション by HTML5 3D版

    nbody3d.png

    # 「多体問題シミュレーション by HTML5」の続き。

    HTML5 による多体問題シミュレーションの 3D 版を作成した。

    詳しくはソースを参照のこと。

    使い方等:

    • 物体は球体として表現し、見掛け上の半径は各質量の3分の1乗の比になるようにした。 但し、衝突は考慮していない。
    • 3D アニメーションを見るためには「交差法」で立体視を行う。
    • クリックでスケールの変更。
    • クエリー文字列:
      • number で、物体の数の設定 (nbody.html?number=8 で 8 個。1-10個、デフォルト 5 個)
      • size で、物体を表示する大きさの変更 (nbody.html?size=100 で 100%。1-800%、デフォルト 50%)
    • HTML が 1 ファイルだけで他ファイルへの依存なし (オフラインでも OK)
    • Internet Explorer、Firefox、Safari、Google Chrome、Opera の現時点での最新版で動作
    • iPhone、Android フォン等スマートフォンで動作

    参考:

    2012年02月20日

    Developers Summit 2012 と codeseek & C# ユーザー会勉強会

    以下に参加してきた。

    Developers Summit 2012
    会期 2012年2月16日(木) - 17日(金)
    会場 目黒雅叙園 (東京・目黒)
    主催 翔泳社
    デブサミの会場に到着。 @ 目黒雅叙園
    参加受付を済ませた。 @ 目黒雅叙園

    2月16日(木)

    【16-A-1】 見る前に翔べ ~ギークの工夫で社会を変えよう~ 及川 卓也 氏

    • グーグルの及川卓也さんのセッション中。 @ 目黒雅叙園
    • 及川さんセッション。製品開発の考え方。プロダクトアウトのみならずマーケットインにも欠陥がある理由のお話。
    • 及川さんセッション。ローンチ&イテレート。プロダクトアウトの後マーケットインを取り入れる。アジャイルだ。
    • 「マーケットを作ろうとするとするときに、マーケット リサーチに引っ張られ過ぎないように。明日のユーザーの為に開発。ローンチ&イテレート。」
    • 「ローンチ&イテレートは、仮説と実証を繰り返す科学のやり方と同じ。」
    • 「これからのシステムの欠点を云うが今までのシステムの欠点を云わない人ばっかり。これからのことを考えよう。」
    • 「自分の快適ゾーンからあえて一歩不快ゾーンに踏み出して行こう。」
    100人のプロが選んだソフトウェア開発の名著」会場先行販売で購入。
    休憩中の会場の様子。
    会場では書籍の販売も。
    100人のプロが選んだソフトウェア開発の名著」の100冊が展示されている。
    百冊本のサイン会中。
    日本XPユーザグループのOpen Jam。

    【16-B-4】 アジャイル開発の10年と今後を語ろう。 平鍋 健児 氏

    • 平鍋さんの「アジャイル開発の10年と今後を語ろう。」この10年は本当に語るべきことが沢山ある。

    【Open Jam】 codeseek

    • codeseek の Open Jam 中。Windows 8 の新たな API の WinRT のお話 by 岩永さん。数々の疑問点がすっきり氷解。

    【16-B-7】 デブサミオフィシャルコミュニティから選出のLT大会2012

    100冊本の著者サイン、今日は29人分集めた。
    雅叙園からの帰りのエスカレーターが出来てた。

    2月17日(金)

    会場に到着。 @ 目黒雅叙園
    二日目。 @ 目黒雅叙園
    二日目。 @ 目黒雅叙園

    【17-D-1】 Kinectが創る未来 中村 薫 氏

    • 「Kinect が創る未来」中村薫さん。Kinect でプレゼン。
    • Xtion という Kinect そっくりのデバイスと Kinect の違い等の説明中。OpenNI の話も。
    • Kinect for Windows SDK と OpenNI の比較等。
    • Kinect で次から次へとデモ。作るのが楽しい、とのこと。素晴らしい。
    • 100冊本へのサイン、現在36人。
    会場に展示されている「100人のプロが選んだソフトウェア開発の名著」の現物。その一。
    会場に展示されている「100人のプロが選んだソフトウェア開発の名著」の現物。そのニ。

    【17-B-3】 言語の世界 まつもと ゆきひろ 氏

    • まつもとゆきひろさんの「言語の世界」。
    • 「27年前のクレイ社のスーパーコンピュータと iPhone 4 の MIPS 数が同じ」
    • 「FORTRAN vs. LISP の勝者は Algol。」
    • 「優れた言語のアイディアは1970年代 (言語のカンブリア爆発期) に出揃ってる。」

    【17-D-4】 どうなる?Windows 8時代の業務アプリ開発 八巻 雄哉 氏

    • 八巻さんの Windows 8 セッション中。
    • タッチ対応していない Windows 7 用アプリでタッチ対応できる部分と無理がある部分のお話中。
    • 100冊本のサイン、現在38人分。

    ライブコーディング

    • Kinect ライブコーディングの発表会中。
    10周年コンボパーティ会場に来た。

    関連記事

    codeseek & C# ユーザー会勉強会 「Windows で Kinectを使ってみる@新宿」
    会期 2012年2月16日(木) 20:00~23:00
    会場 新宿の居酒屋
    主催 日本C#ユーザー会codeseek
    共催 tk-engineeringこみゅぷらすeパウダ~.Net/C# Group
    codeseek & C# ユーザー会勉強会参加中。

    2012年03月31日

    「10年後も世界で通じるエンジニアであるために」 at Developers Summit 2012

    Developers Summit 2012 でライトニング トークスをやってきた。

    資料: 2012/02/16 Developers Summit 2012 【16-B-7】 LT「10年後も世界で通じるエンジニアであるために」 - slideshare

    2012年04月18日

    [Windows Programming] ドキュメントの内容をクリップボードへ (MFC版)

    SyntaxHighlighter を使って C++ のソースコードに色を付けてみる実験。

    // MFC版
    // ドキュメントの内容を:
    // ・クリップボードへメタファイルと独自形式でコピー
    // ・クリップボードから独自形式でペースト
    // ※ MyDocument::Serialize と MyView::OnDraw でのドキュメントの描画を実装しておくこと
    
    // MyView.h
    
    class MyView : public CView
    {
        DECLARE_DYNCREATE(MyView)
        DECLARE_MESSAGE_MAP()
    
        HGLOBAL globalMemoryHandle;
    
    protected:
        MyView() : globalMemoryHandle(NULL)
        {}
    
        MyDocument* GetDocument() const
        { return reinterpret_cast<MyDocument*>(m_pDocument); }
    
        virtual void OnDraw(CDC* pDC)
        {
            if (GetDocument() != NULL)
                /* ドキュメントの描画 */ ;
        }
    
        afx_msg void OnEditCopy()
        {
            if (GetDocument() == NULL)
                return;
    
            // ドキュメントが空なら何もしない
            // 例.
            // if (GetDocument()->IsEmpty())
            //     return;
    
            // 拡張メタファイルの作成
            CClientDC   clientDC(this);
            CMetaFileDC metaDC;
            metaDC.CreateEnhanced(&clientDC, NULL, NULL, NULL);
            OnDraw(&metaDC);
            const HENHMETAFILE enhancedMetaFileHandle = metaDC.CloseEnhanced();
    
            // メモリへのシリアライズ
            CSharedFile sharedFile;
            {
                CArchive ar(&sharedFile, CArchive::store);
                GetDocument()->Serialize(ar);
            }
            globalMemoryHandle = sharedFile.Detach();
    
            // クリップボードへの書き込み
            if (OpenClipboard()) {
                ::EmptyClipboard();
                ::SetClipboardData(CF_ENHMETAFILE, CopyEnhMetaFile(enhancedMetaFileHandle, NULL));
                ::SetClipboardData(CF_PRIVATEFIRST, globalMemoryHandle);
                ::CloseClipboard();
            }
    
            ::DeleteEnhMetaFile(enhancedMetaFileHandle);
        }
    
        afx_msg void OnEditPaste()
        {
            if (GetDocument() == NULL)
                return;
    
            if (OpenClipboard()) {
                const HANDLE clipboardData = ::GetClipboardData(CF_PRIVATEFIRST);
                if (clipboardData != NULL) {
                    CSharedFile sharedFile;
                    sharedFile.SetHandle(clipboardData);
                    {
                        CArchive ar(&sharedFile, CArchive::load);
                        GetDocument()->Serialize(ar);
                    }
                    sharedFile.Detach();
                    GetDocument()->SetModifiedFlag();
                    Invalidate();
                }
                ::CloseClipboard();
            }
        }
    
        afx_msg void OnDestroyClipboard()
        {
            CView::OnDestroyClipboard();
    
            // WM_DESTROYCLIPBOARD 時に CF_PRIVATEFIRST で確保したメモリを開放する必要がある
            if (globalMemoryHandle != NULL) {
                ::GlobalUnlock(globalMemoryHandle);
                ::GlobalFree  (globalMemoryHandle);
                globalMemoryHandle = NULL;
            }
        }
    };
    
    // MyView.cpp
    
    #include "MyView.h"
    
    IMPLEMENT_DYNCREATE(MyView, CView)
    
    BEGIN_MESSAGE_MAP(MyView, CView)
        ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
        ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
        ON_WM_DESTROYCLIPBOARD()
    END_MESSAGE_MAP()
    

    2012年12月29日

    [Event] Developers Summit 2012 の LT「10年後も世界で通じるエンジニアであるために」の資料公開

    大分前のものだが、Developers Summit 2012 (2月16-17日) の「デブサミオフィシャルコミュニティから選出のLT大会2012」でやったライトニングトークスの資料も公開。

    ■ 関連リンク

    2013年01月22日

    [Event] Developers Summit 2013

    devsumi_2013_300.gif
    Developers Summit 2013 (デブサミ2013)
    会期 2013年2月14日(木)・15日(金)
    会場 目黒雅叙園(東京・目黒)
    会場 株式会社 翔泳社
    参加費 無料
    詳細/申込み http://codezine.jp/devsumi/2013/

    2013年10月30日

    [C] CP/M80 シミュレーターで懐かしの BDS-C を動かしてみた

    BDS C プログラミング

    先日、自宅の本棚を見ていたら、ちょっと古めのIT関連本が有ったので、写真を撮って SNS にアップしてみたところ、IT系の知人が結構懐かしがった。

    「ちょっと古めのIT本」
    「ちょっと古めのIT本」

    Z80MC6809アセンブリ言語の話題から、BDS-C の話題になった。

    私も色々思い出してきて、どんどん懐かしくなってきた。

    BDS-C について

    BDS-C は、BD Software 製の i8080/Z80 用のプログラミング言語 Cコンパイラーだ。CP/M80 上で使えた。

    C のサブセットで、浮動小数点数を直接サポートしておらず、代わりに浮動小数点演算ライブラリを使うようになっていた。廉価版に α-C があり、当時の C の処理系としては安かった (はっきりとは覚えていないが、他が10万円クラスだったのが、α-C は数万円程度だった気がする)。

    BDS-C を試してみよう

    懐かしくなったので、BDS-C を動かしてみることにした。ちなみに、手元の環境は、Windows 8.1。

    BDS-C は現在無償で公開されている。

    このサイトで、BDS-C のコンパイラー (cc.com、cc2.com) やリンカー (clink.com)、そして、それらの CP/M80 用のアセンブリ言語のソースコード、ユーザー マニュアル等をダウンロードすることができる。

    CP/M80 は手元にないので、シミュレーターを使うことにした。

    SIMH Altair 8800 simulator

    シミュレーターと CP/M、BDSーC のディスク イメージのダウンロード

    CP/M のシミュレーター/エミュレーターは色々とあるようだが、Altair 8800 のシミュレーター SIMH Altair 8800 simulator を使うことにした。

    Altair 8800 は、1974年に開発された世界初の個人向けコンピューターで、これ用の BASIC インタープリタービル・ゲイツポール・アレンが書いたのがマイクロソフトの始まりになったことで有名だ。

    サイトではシミュレーター本体だけでなく、CP/M80 を含んだ BDS-C のディスク イメージもダウンロードすることができる。

    尚、このサイトでは、他にもこのシミュレーター用の沢山のプログラミング言語の処理系や OS、アプリケーション、ゲーム等のディスク イメージをダウンロードできる。

    シミュレーターと CP/M、BDSーC の起動

    ダウンロードした二つの圧縮ファイル (altairz80.zip と bdsc.zip) を解凍して、一つのフォルダーに入れる。

    ここでは、「C:\Altair 8800 simulator」というフォルダーを作成した。

    中身は、次のようになった (コマンド プロンプト)。

    Microsoft Windows [Version 6.3.9600]
    (c) 2013 Microsoft Corporation. All rights reserved.
    
    C:\>cd C:\Altair 8800 simulator
    
    C:\Altair 8800 simulator>dir /b
    altairz80.exe
    altairz80_doc.pdf
    bdsC
    bdsc160.dsk
    bdsc160source.dsk
    cpm2.dsk
    i.dsk
    simh_doc.pdf
    simh_faq.pdf
    
    C:\Altair 8800 simulator>
    

    シミュレーターを起動し、CP/M 付き BDS-C のディスク イメージを読み込み、CP/M を立ち上げてみよう。

    コマンド プロンプトで、「altairz80 bdsC」と入力する。

    画面は次のようになる (コマンド プロンプトの続き)。

    C:\Altair 8800 simulator>altairz80 bdsC
    
    Altair 8800 (Z80) simulator V3.9-0 build 1625 (scp created Feb 10 2013 at 09:37:
    45 with gcc 4.2.4)
    
    
    64K CP/M Version 2.2 (SIMH ALTAIR 8800, BIOS V1.23, 2 HD, 08-Oct-06)
    
    A>
    ---------------
    Altair 8800 (Z80) simulator V3.9-0 build 1625 (scp created Feb 10 2013 at 09:37:
    45 with gcc 4.2.4)
    
    
    64K CP/M Version 2.2 (SIMH ALTAIR 8800, BIOS V1.23, 2 HD, 08-Oct-06)
    

    通常のドライブ A の他に、BDS-C のドライブが二つ (B ドライブと C ドライブ) 追加されている。C ドライブには、CC.ASM 等 BDS-C 自体のソースコードが入っているようだ。

    試しに、それぞれのドライブの中を見てみよう。

    A>dir
    A: PIP      COM : LS       COM : XSUB     COM : STAT     COM
    A: GO       COM : RSETSIMH MAC : SYSCOPY  COM : XFORMAT  COM
    A: SPEED    COM : W        COM : L80      COM : M80      COM
    A: WM       HLP : WM       COM : SUBMIT   COM : FORMAT   COM
    A: SYSCPM2  SUB : SYSCPM2Z SUB : DDTZ     COM : DSKBOOT  MAC
    A: EX       MAC : EX8080   COM : ED       COM : DDT      COM
    A: LOAD     COM : ASM      COM : LU       COM : MBASIC   COM
    A: ELIZA    BAS : DUMP     COM : CREF80   COM : EXZ80DOC COM
    A: EXZ80ALL COM : EX       SUB : UNERA    COM : BOOT     COM
    A: OTHELLO  COM : WORM     COM : LADDER   DAT : LADDER   COM
    A: ZSID     COM : ZTRAN4   COM : SURVEY   MAC : SHOWSEC  COM
    A: BOOT     MAC : HDSKBOOT MAC : TIMER    MAC : UNERA    MAC
    A: R        COM : CFGCCP   LIB : CFGCCPZ  LIB : MOVER    MAC
    A: CCP      MAC : CCPZ     MAC : USQ      COM : MC       SUB
    A: MCC      SUB : MCCL     SUB : RSETSIMH COM : CPU      MAC
    A: TIMER    COM : UNCR     COM : SURVEY   COM : CPU      COM
    A: COPY     COM : SID      COM : LIB80    COM : CCPZ     TXT
    A: ZAP      COM : PRELIM   MAC : PRELIM   COM : BDOS     MAC
    A: CBIOSX   MAC : DIF      COM : DO       COM : BOOTGEN  COM
    A>dir b:
    B: BDSCPAT  Z80 : -READ    ME  : BDS      LIB : CMODEM   C
    B: C        CCC : C        SUB : CASM     C   : CASM     SUB
    B: CC       COM : CC2      COM : CCC      ASM : CCONFIG  C
    B: CCONFIG  COM : CCONFIG  H   : CCONFIG2 C   : CHARIO   C
    B: CLIB     COM : CLINK    COM : CLOAD    C   : CRCKLST1 CRC
    B: DEFF     CRL : DEFF2    CRL : DEFF2A   CSM : DEFF2B   CSM
    B: DEFF2C   CSM : FILES    DOC : L2       C   : SOURCES  LBR
    B: STDIO    H   : STDLIB1  C   : STDLIB2  C   : STDLIB3  C
    B: ZCASM    LBR : -LBR     NOT : BCD      LBR : BDSCIO   H
    B: BUGS     DOC : CDEBUG   LBR : CRCK     COM : CRCK     DOC
    B: CRCKLST2 CRC : DEFF15   CRL : LBREXT   COM : LDIR     COM
    B: LONG     C   : MCONFIG  H   : RED      LBR : TARGET   C
    B: UNCRUNCH COM : CASM     CRL : CASM     COM : CHARIO   CRL
    B: L2       COM : CCV16PAT HEX : CLOAD    COM : TAIL     C
    B: CCV20PAT HEX : CMODEM   H   : CMODEM2  C   : CP       C
    B: DATE     C   : DIO      C   : DIO      H   : HARDWARE H
    B: LPR      C   : NDI      C   : NOBOOT   C   : RM       C
    B: UCASE    C   : WILDEXP  C
    A>dir c:
    C: A        SUB : CC       ASM : CC       SUB : CC2      ASM
    C: CC2A     ASM : CC2B     ASM : CC2C     ASM : CC2D     ASM
    C: CC2E     ASM : CC2L     ASM : CC2SLR   ASM : CCA      ASM
    C: CCB      ASM : CCC      ASM : CCD      ASM : CCL      ASM
    C: CLINK    ASM : CLINKA   ASM : CLINKB   ASM : CLINKL   ASM
    C: LASM     COM : NCC      SUB : NCC2     SUB : NCC2S    SUB
    C: NCC2Z    SUB : NCCD     SUB : NCCZ     SUB : NCLINK   SUB
    C: NZCLINK  SUB : PUT      BTM : README   TXT : CHARIO   C
    C: L2       C   : STDIO    H   : CC       COM : C        CCC
    C: CLINK    COM : DEFF     CRL : CC2      COM : DEFF2    CRL
    C: L2       COM
    A>
    

    B ドライブに、BDS-C のコンパイラー (CC.COM、CC2.COM) やリンカー (CLINK.COM) がある。ちなみに、A ドライブには、BDS-C で書かれたオセロゲーム (OTHELLO.COM) が入っている。

    BDSーC で "Hello world!"

    では、お約束の "Hello world!" をやってみよう。

    CP/M で B ドライブに移動して、ライン エディターの「ed」 (CP/M が内蔵している テキスト エディターの一種) を立ち上げ、hello.c というファイル名で Hello world! と出力する C のプログラムを書く。

    勿論、古い C の文法で書く必要がある。

    A>b:
    B>ed hello.c
    
    NEW FILE
         : *i
        1:  #include <stdio.h>
        2:
        3:  main()
        4:  {
        5:      puts("Hello world!");
        6:  }
        7:
         : *e
    
    B>
    

    hello.c の中身を覗いてみる。書いた通りのソースコードになっているのが確認できる。

    B>type hello.c
    #include <stdio.h>
    
    main()
    {
        puts("Hello world!");
    }
    
    B>
    

    では、BDS-C でコンパイルし、リンクしてみよう。コンパイルは cc、リンクは clink だ。

    B>cc hello.c
    BD Software C Compiler v1.60  (part I)
      36K elbowroom
    BD Software C Compiler v1.60 (part II)
      33K to spare
    B>clink hello
    BD Software C Linker   v1.60
    
    Last code address: 0901
    Externals start at 0902, occupy 0006 bytes, last byte at 0907
    Top of memory: E405
    Stack space: DAFE
    Writing output...
      46K link space remaining
    B>
    

    エラー無くコンパイルとリンクができたようだ。

    実行ファイルが出来たことを確認しよう。

    B>dir hello.*
    B: HELLO    C   : HELLO    CRL : HELLO    COM
    B>
    

    問題ないようだ。

    では、愈々実行だ。

    B>hello
    Hello world!
    B>
    

    無事 Hello world! と表示された。

    めでたし、めでたし。

    2014年01月17日

    [TypeScript] Lightningtalks Timer by HTML5

    lightningtalkstimer.png

    以前作った HTML5 用のライトニングトーク用のタイマーを、TypeScript で書きなおしてみた。

    TypeScript を使うことで、よりすっきりと書ける。また、Visual Studio でのインテリセンスや静的な型チェックが行える為、とても楽だ。

    lightningtalktimer.ts

    TypeScript コンパイラーによって lightningtalktimer.js に変換される。

    // for lightningtalktimer.html
    // generated from lightningtalktimer.ts
    // Ver.1.01 2014-01-17
    // Copyright © 2014 Sho's Software by Fujiwo http://www.shos.info
    
    module LightningTalkTimer {
        export class Application {
            private static timer = null;
    
            private static get canvas(): HTMLCanvasElement {
                return <HTMLCanvasElement>document.querySelector("canvas");
            }
    
            private static get context(): CanvasRenderingContext2D {
                return <CanvasRenderingContext2D>Application.canvas.getContext("2d");
            }
    
            static run() {
                Application.sizing();
                Application.timer = new Timer(this.context, this.canvas.width, this.canvas.height);
            }
    
            static onClick() {
                Application.timer.start();
            }
    
            private static sizing() {
                var canvas    = Application.canvas;
                canvas.height = window.innerHeight;
                canvas.width  = window.innerWidth ;
            }
        }
    
        class Utility {
            static getQuerystring(key: string, default_: string = null): string {
                if (default_ == null)
                    default_ = "";
                key             = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
                var regex       = new RegExp("[\\?&]" + key + "=([^&#]*)");
                var queryString = regex.exec(window.location.href);
                return queryString == null ? default_ : queryString[1];
            }
    
            static secondsToString(totalSeconds: number): string {
                var minutes     = Math.floor(totalSeconds / 60);
                var seconds     = totalSeconds % 60;
                var secondsText = (seconds >= 10) ? seconds.toString() : "0" + seconds;
                return minutes.toString() + ':' + secondsText;
            }
    
            static getCurrentMilliSeconds(): number {
                return Date.parse(new Date().toString());
            }
        }
    
        class Parameter {
            maxSeconds       = 60 * 5;
            dangerousSeconds = 60 * 1;
            fontHeightRate   = 70;
    
            constructor() {
                this.setMaxSeconds      ();
                this.setDangerousSeconds();
                this.setFontHeight      ();
            }
    
            private setFontHeight() {
                var fontHeightRateText = Utility.getQuerystring("font");
                if (fontHeightRateText != "") {
                    var heightRate = parseInt(fontHeightRateText);
                    if (heightRate > 0 && heightRate <= 100)
                        this.fontHeightRate = heightRate;
                }
            }
    
            private setMaxSeconds() {
                var maxSecondsText = Utility.getQuerystring("max");
                if (maxSecondsText != "") {
                    var seconds = parseInt(maxSecondsText);
                    if (seconds > 0) {
                        this.maxSeconds = seconds;
                        if (this.dangerousSeconds > this.maxSeconds)
                            this.dangerousSeconds = this.maxSeconds;
                    }
                }
            }
    
            private setDangerousSeconds() {
                var dangerousSecondsText = Utility.getQuerystring("danger");
                if (dangerousSecondsText != "") {
                    var seconds = parseInt(dangerousSecondsText);
                    if (seconds >= 0 && seconds <= this.maxSeconds)
                        this.dangerousSeconds = seconds;
                }
            }
        }
    
        class View {
            private static normalDarkColor     = "#100";
            private static normalLightColor    = "#a99";
            private static dangerousDarkColor  = "#e00";
            private static dangerousLightColor = "#f99";
            private static shadowColor         = "gray";
    
            private context: CanvasRenderingContext2D;
    
            constructor(context: CanvasRenderingContext2D) {
                this.context = context;
            }
    
            draw(text: string, isNormal: boolean, width: number, height: number, fontHeightRate: number) {
                this.context.clearRect(0, 0, width, height);
                View.drawText(this.context, text, View.getDarkColor(isNormal), View.getLightColor(isNormal), width, height, fontHeightRate);
            }
    
            private static drawText(context: CanvasRenderingContext2D, text: string, colorDark: string, colorLight: string, width: number, height: number, fontHeightRate: number) {
                var fontHeight = height * fontHeightRate / 100;
                var y          = fontHeight * (16 + 1) / 16;
                context.font   = fontHeight + "px 'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro',Calibri,sans-serif";
                View.setGradient(context, fontHeight, colorDark, colorLight);
                View.setShadow  (context, fontHeight                       );
                context.fillText(text, fontHeight / 12, y);
            }
    
            private static getDarkColor(isNormal: boolean): string {
                return isNormal ? View.normalDarkColor : View.dangerousDarkColor;
            }
    
            private static getLightColor(isNormal: boolean): string {
                return isNormal ? View.normalLightColor : View.dangerousLightColor;
            }
    
            private static setGradient(context: CanvasRenderingContext2D, fontHeight: number, darkColor: string, lightColor: string) {
                var gradient      = context.createLinearGradient(0, 0, 0, fontHeight);
                gradient.addColorStop(0.5, darkColor);
                gradient.addColorStop(0.6, lightColor);
                gradient.addColorStop(0.7, darkColor);
                context.fillStyle = gradient;
            }
    
            private static setShadow(context: CanvasRenderingContext2D, fontHeight: number) {
                context.shadowColor   = View.shadowColor;
                context.shadowOffsetX = fontHeight / 36;
                context.shadowOffsetY = fontHeight / 36;
                context.shadowBlur    = fontHeight / 48;
            }
        }
    
        class Timer {
            private width    : number;
            private height   : number;
            private parameter: Parameter;
            private view     : View;
            private timerID =  0;
    
            constructor(context: CanvasRenderingContext2D, width: number, height: number) {
                this.width     = width  ;
                this.height    = height ;
                this.parameter = new Parameter();
                this.view      = new View(context);
                this.draw(this.parameter.maxSeconds, this.isNormal(this.parameter.maxSeconds));
            }
    
            private start() {
                this.reset();
                var start    = Utility.getCurrentMilliSeconds();
                this.timerID = window.setInterval(() => this.update(start), 1000);
            }
    
            private update(start: number) {
                var now = Utility.getCurrentMilliSeconds();
                var remainingSeconds = this.parameter.maxSeconds - (now - start) / 1000;
                if (remainingSeconds < 0)
                    remainingSeconds = 0;
                this.draw(remainingSeconds, this.isNormal(remainingSeconds));
                if (remainingSeconds == 0)
                    window.clearInterval(this.timerID);
            }
    
            private reset() {
                window.clearInterval(this.timerID);
                this.draw(this.parameter.maxSeconds, this.isNormal(this.parameter.maxSeconds));
            }
    
            private draw(seconds: number, isNormal: boolean) {
                this.view.draw(Utility.secondsToString(seconds), isNormal, this.width, this.height, this.parameter.fontHeightRate);
            }
    
            private isNormal(remainingSeconds: number): boolean {
                return remainingSeconds > this.parameter.dangerousSeconds;
            }
        }
    }
    
    window.onload = () => {
        LightningTalkTimer.Application.run();
    };
    

    lightningtalktimer.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,minimum-scale=1, maximum-scale=1, initial-scale=1">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
        <title>Sho's Lightning Talks Timer by HTML5</title>
        <style>
            html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, menu, nav, section, menu, time, mark, audio, video {
                margin: 0;
                padding: 0;
                border: 0;
                outline: 0;
                font-size: 100%;
                vertical-align: baseline;
                background: transparent;
            }
    
            article, aside, dialog, figure, footer, header, hgroup, nav, section {
                display: block;
            }
    
            body {
                width: 100%;
                overflow: hidden;
            }
        </style>
        <script src="lightningtalktimer.js"></script>
    </head>
    <body>
        <canvas width="500" height="500" onclick="LightningTalkTimer.Application.onClick()"></canvas>
    </body>
    </html>
    
    <!--
    Usage:
        Click: reset and start counting down.
    
        lightningtalktimer.html		               : max = 300 seconds, dangerous =  60 seconds, font height 70%
    
        lightningtalktimer.html?max=100&danger=50  : max = 100 seconds, dangerous =  50 seconds
        lightningtalktimer.html?max=100&danger=100 : max = 100 seconds, dangerous = 100 seconds
        lightningtalktimer.html?max=100	           : max = 100 seconds, dangerous =  60 seconds
        lightningtalktimer.html?max=10	           : max =	10 seconds, dangerous =  10 seconds
        lightningtalktimer.html?danger=0	       : max = 300 seconds, dangerous =   0 seconds
    
        lightningtalktimer.html?font=50	           : font height 50%
    
        - This HTML can work with lightningtalktimer.js online or offline.
    
    Ver.1.01 2014-01-17
    Copyright © 2014 Sho's Software by Fujiwo http://www.shos.info
    -->
    

    実際に動くもの

    使い方

    • クリックするたびカウントダウン (デフォルト 5分)
    • 残り時間が少なくなると赤くなる (デフォルト 1分)
    • クエリー文字列:
      • max で、時間 (秒) の設定 (lightningtalktimer.html?max=100 で 100秒)
      • danger で、赤くなる時間 (秒) の設定 (lightningtalktimer.html?danger=10 で 10秒、lightningtalktimer.html?danger=0 だと最後だけ赤くなる)
      • font で、文字サイズ (%) の設定 (lightningtalktimer.html?font=90 で文字の高さが最大値の90%)
    • Internet Explorer、Firefox、Safari、Google Chrome、Opera の現時点での最新版で動作
    • iPhone、Android フォン等スマートフォンで動作

    関連記事

    2014年02月14日

    「新人技術者にどうプログラミングを教えたか」 at Developers Summit 2014

    Developers Summit 2014【13-D-7】 コミュニティLT に参加した。

    資料

    2014年02月16日

    [Event] Developers Summit 2014 参加レポート

    概要

    Developers Summit 2014
    会期 2014年2月13日(木)・14日(金)
    会場 目黒雅叙園
    主催 翔泳社

    目的

    新人技術者教育とモバイル開発に関する情報収集。技術者との技術交流。

    参加セッション

    • 【13-C-1】 『Cocos2d-x によるスマートフォンアプリ開発のこれまでとこれから』 松浦 晃洋 〔シュハリ〕
    • 【13-C-2】 『iOS/Android/Windowsストア・アプリのハイブリッド開発における限界と可能性』 佐々木 志門 〔日本アイ・ビー・エム〕
    • 【13-C-L】 『iPad、Android、Windowsが文房具になる!デジタルインク技術のご紹介』 新村 剛史 〔ワコム〕
      13-C-L BOMBOO STYLUS
    • 【13-C-3】 『Smashing Android UI, Androidデザインの極意』 佐藤 伸哉 〔AKQA〕
    • 【13-A-4】 『新卒エンジニア研修ですべきことできること』 関口 亮一 〔ディー・エヌ・エー〕
      13-A-4
    • 【13-D-7】 『デブサミ2014 コミュニティLT - Story』 まっちゃだいふく 〔ネットエージェント〕/太田 智美 他
      13-D-7
    • 【14-A-1】 『Webの現在過去未来』 竹迫 良範 〔サイボウズ・ラボ〕/宮川 達彦/和田 裕介 〔ワディット〕
    • 【14-C-L】 『「開発手法は変えない」Windowsフォームとまったく同じ手法でWebアプリを開発』 森谷 勝 〔グレープシティ〕
      14-C-L
    • 【14-A-3】 『IMPACT MAPPING~インパクトのあるソフトウェアを作る』 平鍋 健児 〔チェンジビジョン〕
      14-A-3
    • 【14-D-4】 『 デベロッパー戦国時代!ストーリーをつなぐ開発環境と3つの秘訣』 長沢 智治 〔アトラシアン〕
      14-D-4
    • 【14-C-5】 『モーションセンサーの現状と2014年の予測』 中村 薫 〔Natural Software〕
      14-C-5
    • 【14-B-6】 『ソフトウェア工学からコンピューターサイエンスへ - 今後のシステムアーキテクチャーに必要な技術的切り口とその裏側』 萩原 正義 〔日本マイクロソフト〕
      14-B-6

    イベントの様子

    会場の目黒雅叙園。二日目は雪だった。
    目黒雅叙園 目黒雅叙園 目黒雅叙園 目黒雅叙園
    受付辺りの風景。
    受付 受付 受付 受付 受付
    書籍販売コーナー。
    書籍販売コーナー
    通路は人でいっぱい。
    通路 通路 通路 通路
    セッション会場。
    セッション会場 セッション会場 セッション会場
    休憩スペース。Wi-Fi や電源が利用できる。LEGO Mindstorms EV3Nao 等、色々な展示があった。
    ラウンジ 1 LEGO Mindstorms EV3 Nao
    ランチ セッションではサンドイッチが配られた。
    サンドイッチ サンドイッチ サンドイッチ
    OpenJam
    OpenJam
    1日目の夜に開かれたアンオフィシャル パーティー。
    アンオフィシャル パーティー

    所感

    • 今回で10回目の参加となり、感慨深いものがある (下にこれまでの参加の記事をまとめてみた)。
    • 私自身「新人技術者にどうプログラミングを教えたか」というごく短い発表を行ったが、『新卒エンジニア研修ですべきことできること』というセッションは特に興味深い内容だった。
      • 「自走できるエンジニア」を育てる。
      • 効果的だったのは、「計測」と「振り返り」と「フォローアップ」。
      • 人にフォーカスした研修で人材の柔軟性を高めることで、組織にフィットする人材に。
      など、自分に欠けていた視点に気付くことができ、今後若いエンジニアを育てていくにあたり、とても参考になった。
    • また、今回は iOS や Android 開発に関するセッションを多く受講した。特にマルチデバイス対応開発の情報が多く得られ、満足のいく結果となった。XamarinUnity の他、 について知ることができた。これから調べていきたい。
    • IMPACT MAPPING のセッションでは、説得力のあるプレゼンテーションによって、マインドマップをソフトウェア開発の様々な場面で活用していく方法を分かりやすい学ぶことができた。
    • 今回のDevelopers Summit では、NUI (Natural User Interface) に関するセッションや展示が多くみられ、今後のコンピューター技術の方向性を知ることができた。
    • 2日目は、関東地方の雪のため、帰りの飛行機が欠航となり、急遽早く帰ることとなった。最後の方のセッションが聴けなかったのが心残りだ。

    過去の Developers Summit の記事

    関連サイト

    2014年10月01日

    [C++] 『ラムダ式でステップアップ! C++のプログラムから汎用的なアルゴリズムを切り出し利用してみよう』 - CodeZine

    algorithm.png

    C++ によるプログラミングの記事を投稿。

    「本稿では、C++のプログラムをリファクタリングして、汎用的なアルゴリズムを切り出し、利用する流れをステップバイステップで解説します。また、C++11で採用されたラムダ式がそれを利用するのに、いかに便利なのかを紹介します。」

    2016年06月08日

    [Event] 『ソフトウェア技術者サミット in 福井 2016』 (2016年7月16日)が開催されます

    『ソフトウェア技術者サミット in 福井 2016』のロゴ

    ソフトウェア技術者サミット in 福井 2016

    ~ITアーキテクトの第一人者に聞く! 福井で一流のエンジニアになる方法~

    日本を代表するITアーキテクトの皆さんに、福井で語っていただきます!
    一緒に福井で一流のソフトウェア エンジニアになる方法を学びましょう。
    学生さん、新人さん、大歓迎です。

    どうぞご参加ください。

    ■ 日時:

    2016-07-16(土)13:00 - 18:30

    ■ 会場:

    福井大学 文京キャンパス
    総合研究棟VII (工学3号館 / 情報・メディア工学科) 311L講義室
    福井県福井市文京3丁目9番1号

    ■ 主催/協力:

    ■ お申込み:

    https://fitea.doorkeeper.jp/events/45122

    ソフトウェア技術者サミット in 福井 2016

    ■ 参考サイト:

    ■ イベント チラシ:

    『ソフトウェア技術者サミット in 福井 2016』のチラシ
     『ソフトウェア技術者サミット in 福井 2016』のチラシ

    2019年11月02日

    [TypeScript][WebGL][Three.js] Boids (an artificial life program) —shoal simulator written in TypeScript—

    Shos.Boids

    Boids とは

    Boids は、Craig Reynolds 氏によって作られた人工生命のシミュレーションだ。 Boid の名は、「Bird (鳥) oid (もどき)」から来ており、元は鳥の群れの動きを真似ている。

    それぞれの個体を次に上げる 3 つの規則にしたがって動かすというだけで、群れのような動きを実現している:

    Boids の 3 つの規則
    分離 (Separation): 近くの仲間にぶつからない方向に移動
    分離 (Separation)
    分離 (Separation)
    整列 (Alignment): 近くの仲間が平均的に向かっている方に向かう
    整列 (Alignment)
    整列 (Alignment)
    集結 (Cohesion): 近くの仲間の中心方向に移動する
    集結 (Cohesion)
    集結 (Cohesion)

    参考ページ

    デモ

    TypeScript などで Boids のデモを 3 種類作成してみた。

    鳥の群れではなく、魚の群れを意識した。

    ※ 各画像をクリックするとそれぞれのページへ飛ぶ

    2D版: Boids (an artificial life program) —shoal simulator written in TypeScript
    Boids (an artificial life program) —shoal simulator written in TypeScript
    3D版: Boids (an artificial life program) 3D —shoal simulator written in TypeScript with Three.js—
    Boids (an artificial life program) 3D —shoal simulator written in TypeScript with Three.js—
    3D 裸眼立体視版: Boids (an artificial life program) 3D (Cross-eyed/Parallel Free-viewing Stereoscopy) —shoal simulator written in TypeScript with Three.js—
    Boids (an artificial life program) 3D (Cross-eyed/Parallel Free-viewing Stereoscopy) —shoal simulator written in TypeScript with Three.js—

    2D版では2次元ベクトル、3D版では3次元ベクトルで、個体の位置や速度を計算している。

    2つの3D版は、Three.js というライブラリーを使って WebGL で動かしている。

    参考:

    3D 裸眼立体視版は、裸眼立体視 (交差法または平行法) ができる人向けだ。 立体視の方法については、次のページなどが参考になる。

    参考:

    なお、各版ともパラメーターを色々と変更できるので試してほしい。

    これらのデモ ページの実装については、ソースコードを参照してほしい。

    ソースコード

    ソースコードは、GitHub に上げた:

    開発環境/言語/ライブラリー

    以下を使って作った:

    Visual Studio Code

    上記デモは、Visual Studio Code 上で作成した。

    Visual Studio Code は、プログラミングに最適な Microsoft 製のテキスト エディターで、Windows 版、macOS 版、Linux 版がある。

    HTML や CSS はもちろんのこと、JavaScript や TypeScript、C# などの多種多様なプログラミング言語にも対応している。

    Git クライアント、ビルド、シンタックス ハイライト、リファクタリング、インテリセンスなどの機能を持ち、とても使いやすいのでお薦めだ。

    どのような機能や言語が使えるかは、Extensions for Visual Studio family of products | Visual Studio Marketplace が参考になる。

    参考:

    TypeScript

    TypeScript は、設定を変えることにより、"ES3"、"ES5"、"ES2015"、"ES2016"、"ES2017"、"ES2018"、"ES2019" にコンパイルすることができる。

    デモでは、"ES5" を使っている。

    TypeScript のコンパイル オプションは、"tsconfig.json"というファイルで行う。 今回は次のような内容とした。

    tsconfig.json

    
    {
      "compilerOptions": {
        /* Basic Options */
        "target": "ES5",        /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
        "module": "commonjs",   /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
        "sourceMap": true,      /* Generates corresponding '.map' file. */
    
        /* Strict Type-Checking Options */
        "strict": true,         /* Enable all strict type-checking options. */
    
        /* Module Resolution Options */
        "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
      }
    }
    

    TypeScript は、Visual Studio Code から簡単に JavaScript にコンパイルできる。

    Visual Studio Code でのコンパイル
    Visual Studio Code でのコンパイル

    ちなみに、次のような TypeScript の場合:

    class Vector3D {
        x: number;
        y: number;
        z: number;
    
        get absoluteValue(): number {
            return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
        }
    
        constructor(x: number = 0, y: number = 0, z: number = 0) {
            this.x = x;
            this.y = y;
            this.z = z;
        }
    
        clone(): Vector3D {
            return new Vector3D(this.x, this.y, this.z);
        }
    
        plus(another: Vector3D): Vector3D {
            return new Vector3D(this.x + another.x, this.y + another.y, this.z + another.z);
        }
    
        plusEqual(another: Vector3D): void {
            this.x += another.x;
            this.y += another.y;
            this.z += another.z;
        }
    
        minus(another: Vector3D): Vector3D {
            return new Vector3D(this.x - another.x, this.y - another.y, this.z - another.z);
        }
    
        minusEqual(another: Vector3D): void {
            this.x -= another.x;
            this.y -= another.y;
            this.z -= another.z;
        }
    
        multiply(value: number): Vector3D {
            return new Vector3D(this.x * value, this.y * value, this.z * value);
        }
    
        innerProduct(another: Vector3D): Vector3D {
            return new Vector3D(this.x * another.x, this.y * another.y, this.z * another.z);
        }
    
        divideBy(value: number): Vector3D {
            return new Vector3D(this.x / value, this.y / value, this.z / value);
        }
    
        divideByEqual(value: number): void {
            this.x /= value;
            this.y /= value;
            this.z /= value;
        }
    
        getDistance(another: Vector3D): number {
            return this.minus(another).absoluteValue;
        }
    }

    "ES5" でコンパイルしてできた JavaScript はこんな感じ:

    "use strict";
    var Vector3D = /** @class */ (function () {
        function Vector3D(x, y, z) {
            if (x === void 0) { x = 0; }
            if (y === void 0) { y = 0; }
            if (z === void 0) { z = 0; }
            this.x = x;
            this.y = y;
            this.z = z;
        }
        Object.defineProperty(Vector3D.prototype, "absoluteValue", {
            get: function () {
                return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
            },
            enumerable: true,
            configurable: true
        });
        Vector3D.prototype.clone = function () {
            return new Vector3D(this.x, this.y, this.z);
        };
        Vector3D.prototype.plus = function (another) {
            return new Vector3D(this.x + another.x, this.y + another.y, this.z + another.z);
        };
        Vector3D.prototype.plusEqual = function (another) {
            this.x += another.x;
            this.y += another.y;
            this.z += another.z;
        };
        Vector3D.prototype.minus = function (another) {
            return new Vector3D(this.x - another.x, this.y - another.y, this.z - another.z);
        };
        Vector3D.prototype.minusEqual = function (another) {
            this.x -= another.x;
            this.y -= another.y;
            this.z -= another.z;
        };
        Vector3D.prototype.multiply = function (value) {
            return new Vector3D(this.x * value, this.y * value, this.z * value);
        };
        Vector3D.prototype.innerProduct = function (another) {
            return new Vector3D(this.x * another.x, this.y * another.y, this.z * another.z);
        };
        Vector3D.prototype.divideBy = function (value) {
            return new Vector3D(this.x / value, this.y / value, this.z / value);
        };
        Vector3D.prototype.divideByEqual = function (value) {
            this.x /= value;
            this.y /= value;
            this.z /= value;
        };
        Vector3D.prototype.getDistance = function (another) {
            return this.minus(another).absoluteValue;
        };
        return Vector3D;
    }());

    class がないので、prototype と function での実装だ。

    一方、"ES2019" でコンパイルしてできた JavaScript はこんな感じ:

    "use strict";
    class Vector3D {
        constructor(x = 0, y = 0, z = 0) {
            this.x = x;
            this.y = y;
            this.z = z;
        }
        get absoluteValue() {
            return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
        }
        clone() {
            return new Vector3D(this.x, this.y, this.z);
        }
        plus(another) {
            return new Vector3D(this.x + another.x, this.y + another.y, this.z + another.z);
        }
        plusEqual(another) {
            this.x += another.x;
            this.y += another.y;
            this.z += another.z;
        }
        minus(another) {
            return new Vector3D(this.x - another.x, this.y - another.y, this.z - another.z);
        }
        minusEqual(another) {
            this.x -= another.x;
            this.y -= another.y;
            this.z -= another.z;
        }
        multiply(value) {
            return new Vector3D(this.x * value, this.y * value, this.z * value);
        }
        innerProduct(another) {
            return new Vector3D(this.x * another.x, this.y * another.y, this.z * another.z);
        }
        divideBy(value) {
            return new Vector3D(this.x / value, this.y / value, this.z / value);
        }
        divideByEqual(value) {
            this.x /= value;
            this.y /= value;
            this.z /= value;
        }
        getDistance(another) {
            return this.minus(another).absoluteValue;
        }
    }

    こちらは class があるので TypeScript のコードとあまり変わらない。"ES5" とは、まるで別の言語のように見えるのが面白い。

    About ソフトウェア開発

    ブログ「プログラミング C# - 翔ソフトウェア (Sho's)」のカテゴリ「ソフトウェア開発」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

    前のカテゴリはITです。

    次のカテゴリはドキュメントです。

    他にも多くのエントリーがあります。メインページアーカイブページも見てください。

    Powered by
    Movable Type 3.35