プログラマの技術尺度

まずはこちらを

技術者・SE・プログラマ面接時の技術的な質問事項(無精で短気で傲慢なプログラマ)
http://68user.blog27.fc2.com/blog-entry-41.html

プログラマー面接時の技術的な質問事項(アプレッソ版) (小野和俊のブログ)
http://blog.livedoor.jp/lalha/archives/50254634.html

キャー。やめてよして聞かないでボロが出るから。
あ、すでにボロ丸出しでしたね。すいません。

ってわけで、まともに教育を受けていないで実戦に投入された私としてはとても耳が痛い話ばかりです。いや、正確に言うと就職してからしばらくの間真面目に取り組んでいなかったことも…と、できていない理由をあれこれ述べることはできるけど、ここはわかっちゃいたけど自分の実力のなさを再認識してこれからを考えなければいけません。

課題がわかるか

両者ともに共通しているのは、WEB関連の技術が中心になっているように見えることだ。特に”無精で~”の方はそう。両者共通して.NETのかけらすら出てこないのはやはりそれぞれの会社で行っている業務がそうなんだろう。
なので言語に関する事はこの際割愛して考える。その上で、残された問いに対しての分野。特に共通して考えられていることに関しては一つの技術評価の尺度として考えられる。私自身のレベルアップはもちろんのこと、周りを巻き込むことでOJTを充実させていくことができればと考えた。
自社に閉じこもってしまうと、、、、これは中小のソフトウェア開発会社では多くあり得るのでは?と思う事なんだけど、自社で必要な内容だけで手いっぱいになってしまう可能性が高い。特に、既存アプリケーションに対しての保守や拡張を繰り返すような開発を行っていると特にその色は強くなる。
そういう意味では様々な案件ごとに技術選定を行うような受託開発を行うところは状況が異なるのかもしれない。ソフトウェア開発の多くはISVではなく受託による開発らしいので、私の考える理論は通じない可能性が高い。

では何を?

読んでみると、”無精で~”の内容はかなり細かい。いろいろなことを聞いているけど、たとえば遺伝的アルゴリズムなんて使ってるのかな?色々と疑問がわいてくる。色々な手法を使っているというよりも、技術知識全般に関してその人が何に興味を持ってこれまで従事してきたかをみたいのだろうとは思うけど。。。
ふむ。
共通点を~~って見ようとしたがそもそも共通点があまりない。言語に関係なく考えるのであれば小野氏側の内容を参考に考えていくのがいいように思える。
特にデザインパターンに関しては何となく既存のソースから読んで知っている部分はあるんだけど、ちゃんと学んだわけじゃない。というわけでまずはデザインパターンに関して勉強していこうと思う。
さてはて。どう勉強していこうか。

仕事はストーリーで! in 築地朝食会

今日は朝から築地で朝食会。本日のゲストは”仕事はストーリーで動かそう”の著者である川上徹也さん

仕事はストーリーで動かそう
川上徹也
クロスメディア・パブリッシング(インプレス)
売り上げランキング: 3573

築地朝食会への参加はこれで2回目。まだまだ朝が苦手である。
築地朝食会は、著者の方からお話を聞く時間は短い。ただ、その分テーブル内でディスカッションする事が出来るので、自分たちの話題で掘り下げることができるのが面白いところですね。
4人テーブルの中でいろいろな話を聞かせていただきました。特におもしろかったのが、自分史を一人30分。4人で2時間話し合うという集まりを開いたという方の話。
確かに自分のこれまでを振り返って、しかもそれを人に話すなんて機会はほぼない。自分が面白かったり、辛かったりした部分と、聞き手が感じる部分は異なるかもしれないし、そこから新たに気付かされる部分は出てくるのかもしれない。
自分のこれまでのストーリー。そしてこれからのストーリー。
さてはて、どう描こうか。何を描こうか。うむむ

f:id:krote:20090220115935j:image

川上さん提供のくじ引きで引き当てたタレコミシート。広告塔となるべく配らねば

Microsoft Recite

高橋忍さんのブログでReciteなるものが紹介されていた

Microsoft Recite (高橋 忍のブログ)
http://blogs.msdn.com/shintak/archive/2009/02/15/9424448.aspx

MSDNのBlogはこちら
http://blogs.msdn.com/recite/archive/2009/02/15/announcement-microsoft-recite-technology-preview.aspx

なにやら音声による備忘録。ボイスレコーダーとしての機能と、音声を使った検索を行う事もできる見たい。ボイスレコーダーというものはちょっと興味があったけど、実際には持っていないんだよな。正直言ってボイスレコーダーに吹き込んでいる姿というものに少し恥ずかしさを感じてしまう。私だけだろうか?
面白そうなものは試してみないと!って事で早速Advanced/esにインストールしてみた。

インストールするためには
http://recite.microsoft.com
にアクセスするか
http://recite.microsoft.com/Base/DownloadAgent.ashx?cab
をダウンロードしてインストールする必要がある。

インストール後の画面
f:id:krote:20090217000254j:image

画面の”Remember”ボタンを押す事で記録する事が出来る。記録の終了は”Fnished”ボタン。

f:id:krote:20090217000255j:image

記録した内容から検索をするときは、一覧表示の状態から”Search”ボタンを押して音声検索を行う事が出来る。

f:id:krote:20090217000802j:image

記録した音声を削除するのにどうすればいいのか考えた

f:id:krote:20090217001759j:image

上の絵を見てわかるとおり、ここの記録音声を選択するとバツボタンがあるんだけどどれだけタップしても反応してくれない。かといって、他にメニューはなさそうだ。しばらく一生懸命タップしたのちに、キー操作でバツボタンにフォーカスをあてることを知った。わかりにくいな。

使ってみた感想

今まで、少なくともこの手のソフトを触ってきていないだけなのかもしれないけど、使い勝手には手間取った。ただ、そもそも備わっている機能が多いわけではないので覚えてしまえばそれほど苦にはならないだろう。
音声の解析に関しては、軽く試してみた限りではそこそこのヒットはする。まだ、そんなに多いデータで試しているわけじゃないからどこまでヒットするのかはわからない。その前に、一生懸命データを入れるのに苦労しそうなのでデータが溜まるまでお待ちください。
ただ、検索機能が付いていたとしても、もう少しメモを整理する機能がほしい。せめてあらかじめ指定した分類を設定できるとか、階層構造をとる事が出来るとか。
また、容量も気になるところだ。というか、どこに保存されるのかわからない。フォルダ自体はデバイスの「\\Program Files\Recite」と、「\\Application Data\Microsoft\Recite」の二つにできている。ただ、音声ファイルやそれっぽい更新日付のファイルが見当たらない。音声ファイルは下手するとサイズが大きくなるので空き容量が不足する日が来ないか心配だ。どこに保管しているんだろう…?
また、音声の判別をどうやっているんだろう。ぶっちゃけ、自分の声でしか検索はヒットしないかな?気になるけど、人に試してもらうのも微妙だ(笑)

どう使ってみよう

うーん、どう使ってみようかな。ボイスレコーダーとしての機能では終わらずに、最終的にはボイスメッセンジャーに対してこういう技術を適用していくのかもしれないんだけど、現状ではボイスレコーダーだよね。どう考えても。
ボイスレコーダーの一般的な使い方ってどういう時だろう。前、ほしいと思ったのは会議やセッションの内容を記録しておきたいからだった。私の場合、話を聞きながら考え事をしてしまう事があるので、聞き逃してしまう時がある。そういう時にあったらいいな~って思っていた。
ただ、Advanced/esだとさすがにそこまでの集音機能はないので使えない。あくまで自分のメモ代わりに限られるだろう。
そうなると…出勤退勤の途中…かな・・・。
だれか、ボイスレコーダーを有効利用している人いないかな…
そのうちナイトライダーみたいに認識してくれないかな

あぁ、テストエンジニア

いちばんやさしいソフトウェアテストを読んだ

いちばんやさしいソフトウェアテストの本 (技評SE新書 19) (技評SE新書)
石原 一宏 布施 昌弘
技術評論社
売り上げランキング: 14416

ソフトウェアを開発するうえでテストというものは必要不可欠な話である。ただ、ソフトウェアのテストエンジニアや品質管理者というものを目指す!という話をあまり聞いた事がない。これは私が聞いた事がないだけの話かもしれない。
本書はその現状を打破するために作られた本ではないかと思う。
テスト工程は、あくまでテストする対象となる機能。ここで言うとプログラムがない限りは実際のテストは出来ない。もちろん、仕様上の不備・不具合を指摘したりそれに合わせてテスト計画を練る事もとても重要な作業だ。ただ、肝心の開発が予定通り進む事は稀で往々にして遅れが発生する。その時に削られるのはまっさきにテスト工数がやり玉にあげられる。
バグを見つけたら見つけたで開発側からは裏切り者扱いされたりもするかもしれない。もちろん、バグを見つけたという事は間違いなく評価されるべき事で、そのままプログラムが世に出た時の被害を考えれば素晴らしい事。ただ、納期が迫ってただでさえ遅れが発生している開発担当者の感情的な心根としてそういう発想につながってしまう事もあるだろう。
本書でも第6章で涙ぐましい対策が語られている

常に挨拶と礼節を心がけ、開発者とチームメンバーとよりよい関係を目指します!
(中略)
そこで、テストエンジニアは常に開発者と良好な信頼関係を保ち気軽に話ができるようになっておく必要があります。(P126)

開発側に属する私としては色々と頭を下げたくなる内容だ。
これからのソフトウェア開発を考えると品質というものはより求められ、それに比例するかのようにテストエンジニアの価値というものはどんどん上がっていくだろう。
本書がそのきっかけとなってくれる事を願う。

ただ、本書は対象とする読者をどこに置いているのだろうか?実際に開発に携わっている人間にとっては本書は優しすぎる。そうなると、対象読者はだれになるのだろうか?
第1章は優しいものの、その後はV字モデルの説明、W字モデル。名前だけならAllPairsや直交表も出てくる。
うーん、対象は学生なのかな?

MSN相談箱と教えてGoo

私が使っているTOSHIBAのDynabookには、ドライバやユーティリティソフトを格納している「TOSAPINS」というフォルダがある。それなりに領域の取るこのフォルダに対しての扱いに実は困っている人は多いようで、時々私のブログにもアクセスがあるんだけど、そのアクセスログを見ていると・・・

MSN相談箱
http://questionbox.jp.msn.com/qa3974814.html

教えてgoo
http://oshiete1.goo.ne.jp/qa3974814.html

たまたま並んでいたから気が付いたけど、両方とも同じ「qa3974814.html」で、質問者や回答者まで全部同じ。ということは、この二つのサービスで利用されているデータベースは同一のものを参照しているということなのか?
ということが気になって両方のページを見てみると、一番下のほうに「Powered by OKWave」ってロゴが貼り付けてある

OKWave
http://okwave.jp/

そこで、ためしにOKWaveで「TOSAPINS」で検索してみた。結果は”該当なし”。むむむ???MSN相談箱で「TOSAPINS」で検索するとちゃんとヒットすることから考えるとキーワードがおかしいというわけではないんだろうけど。OKWave本体が保持しているデータベースとは別なんだろうか?それはそれで効率の悪そうな話だし。なんでだろう?まさか会員登録の有無で検索結果が変わるのか???

会員登録してみた

結果は変わらなかった!謎がますます深まった
うおおおお。なんでだー!

あ、これOKWaveで質問したら解答来るかな

時間の使い方を再考

PRESIDENTのムック本「24時間の達人」を読んだ

24時間の達人
http://www.president.co.jp/book/item/322/7047-6/

色々な方の一日の過ごし方。また、年収2000万円のビジネスマンと600万円のビジネスマンとで時間の使い方にどういう違いが出てくるのかを取り上げていました。
年収の違いによる時間の使い方の差は、色々な面で比較してあるものの余り何かの参考になるようなデータってわけでもなかったかな。
ただ、色々な方の時間に対する考え方を知ることで自分自身の時間管理やスケジュール管理。特に休日の過ごし方に関して再考する必要性を強く感じたのが一番の収穫であった。
私はこういう本を読んだ後、1~2週間くらいはそれなりにスケジュールを組んで動いたりするのだけど、ちょっとしたきっかけでやらなくなってしまうという事を繰り返してしまっている。ちょっとしたハネムーン効果だ。多分、短期的な目標や・・・いや、余りちゃんと目標や目的というものを考えずに取り組んでいるのが行き当たりばったりになってしまっている行動の一員になってしまっているのだと思う。
自分の人生において、何が重要で何を目標にするのか
常に考えながらベストな時間をすごせるように気をつけていかなければいけない。

RSSリーダー

少し前の記事になるんだけど、勝間さんのブログでこんな記事があった

RSSリーダー利用者急増に伴い、記事を畳むことにしました
http://kazuyomugi.cocolog-nifty.com/private/2009/01/rss-ccd9.html

簡単に言うと、RSSリーダーの設定方法をブログで紹介したら使う人が急増したから設定変えるよ!って話みたい。それを理由に設定なんて変える必要はないんじゃないのかな?個人的にはRSSでは全文配信をしてほしいと思っている人間なので。
ただそれよりも驚いたのが、RSSリーダーを使わずに一般のブログを渡り歩いている人の数は思ったよりも多いのだということ。使い方を教えたから増えたってことは純粋に「RSSって何?」と思っている人が多かったんですね。
私はというと、GoogleではなくLivedoorのRSSリーダーを使っている。Livedoorというと余り良いイメージを持っていない人も多いかもしれないけど、この手のサービスに関してはそれなりに悪くないと思う。RSSリーダー、メール。クリップとLivedoorを使っている。メールは正確に言うとLivedoorが自社で提供するのを辞めてしまって内部的にはGMailが動作しているけどアドレスはそのままlivedoorのものになっている。
さてはて、勝間さんに負けじとlivedoorのRSSリーダー設定方法を解説するのも面白いかと思ったけど、正直その手のものは調べれば出てくるのでRSSリーダーに関して以前読んで印象に残っているエピソードを紹介したい

母親がlivedoor Readerを使い始めた (むぅもぉ.jp)
http://muumoo.jp/news/2007/03/20/0kaachanldr.html

私がMixiの日記を余り好きでないのはフォローしづらいのも一つの要因であると思う。Mixi日記は読んだ読まないに関わらずどんどん記事が流れていってしまうし。マイミクが100人超えている人たちはもう人の日記なんて見てられないだろうなぁ。RSSリーダーにそんなに詰め込んでも未読がたまっていくだけなのでもちろんお勧めできないけど。
そう考えると、そもそもマイミクはやっぱり”読む”ためのリストではないのかもしれない。ふむぅ。もう少し何とかならんものかなぁ

Google検索結果がおかしくなってた

ブログを書きながらちょっと調べ物をしていたらおかしな検索結果に・・・

f:id:krote:20090201002230j:image

ほぼ全ての検索結果に「このサイトはコンピュータに損害を与える可能性があります。」とGoogleのマルウエア防止用文章がくっついている。この判定をされてしまうと、検索結果をクリックしても対象のページには行くことが出来ず、自分でURLをアドレスバーにセットしなければいけないというとても不便な状態になる。
最初はツールを検索していたので本当にマルウェアを疑ったんだけど、殆ど何で検索しても同じ結果になってしまったのでGoogle側で何か問題が起こったんだろうと推察。
そしてちょっと時間を待ってやってみたら

f:id:krote:20090201002231j:image

普通に表示できるようになった。やはり人為的なミスか。今回くらいの内容だとたぶん余り公式な原因発表はなくて終わるんだろうな。
Googleは大変便利で、私も公私ともども色々な場面で利用させてもらっている。ただ、やはりGoogleだろうと結局のところ人が動かしている以上ミスはつき物。それを踏まえた上で付き合わないと、全ての情報がGoogleにあってGoogleが落ちた瞬間に何も出来なくなる!ってなりそう。時にはアナログのライフラインも見直さないといけないなと思った。
でも、電気がなくなったら多分厳しい。ごめんなさい。

※やはり人為的なミスだったようですね。公式発表がありましたね。何でも「/」が入っていたら対象に含まれてしまうという設定になっていたみたいで。。。
http://headlines.yahoo.co.jp/hl?a=20090201-00000518-san-bus_all

techdays 初日

昨日のエントリーにも書いたとおり、今日一日はパシフィコ横浜で行われているMicrosoft社のイベントに顔を出していました。

tech days Japan 2009
http://www.microsoft.com/japan/events/techdays/default.mspx

今日一日は、Microsoftのクラウド戦略と題したセッションがメインになりました。その殆どのセッション内容はWindowsAzureに関するものです。WindowsAzureは、簡単に言うと今までそれぞれの会社やサービスの提供者が独自に保有していたサーバーをマイクロソフトが貸してくれるようなサービス。
これまではPCの寿命やHDD容量。メモリ等のスペックをあれこれ考えなければいけなかったものをマイクロソフトがやってくれる。ただ、従量制なので(予定?)必要に応じてお金を支払う形になる予定です。結局自社でサーバーを扱う場合にもデータセンターを利用したりする場合は天秤にかけるのも面白いかもしれませんね。
WindowsAzureは大きく分けて

  1. ファイルやデータ共有を提供するMesh Service
  2. ワークフローや他の媒体と接続することも可能な.NET Service
  3. SQLServerを提供するSQLService

が主だったところではないかな。他にSharePointやDynamicsもあるけど・・・。これらはちょっと置いておく。あんまり開発と関係なさそうだから。
個人的にずっと注目しているのはMeshService。ファイルの共有に関してはすでに一般公開されているβ版でも体験は可能だけど、Meshを利用したアプリケーション「Mesh Enabled Application」の開発を可能にするLive FrameworkはCTP(一部の人のみの限定公開)で手が出せないのが現状。ベータ版を公開しているConnectサイトでもLiveFrameworkの文字はまだない。以前、チャンネル9のサイトで公開されていた動画で、Meshを利用してアプリケーションデータの同期が取られていたのはすごかった
色々思うところはあるんだけど、取り合えず今日分かったことをずらずらと書いてみるよ!(Azure関係なく)

  1. MeshアプリケーションでSiliverlightも可能
  2. データもMeshのオブジェクトとして登録することになる
  3. Meshの共有を他のLiveIDと結びつけるのにはMeshバーからInviteをクリック
  4. Meshオブジェクトはローカルに作られてからサーバーと同期がされる
  5. そのため、Meshのアプリケーションは基本的にローカルのデータを見に行く
  6. そのため、Silverlightアプリまでクライアント上で動く
  7. データをクライアントに持つために大容量のデータを使用するアプリケーションには向かない
  8. データは現在のところ後勝ち。
    1. Aさんがデータ1を追加。Bさんがデータ2を追加なら両方追加される
    2. Aさんがデータ2を更新。Bさんがデータ2を更新したら後から更新したほうが勝つ
    3. Aさんがデータ2を削除。Bさんがデータ2を更新したら削除された後でBさんの更新が追加?
  9. データの共有は強制的になるのでデータによって共有をキャンセルなんてことは出来ない
  10. Meshアプリケーションの共有には許可が必要
  11. Meshアプリケーションを共有すると自動的にデスクトップにショートカットが出てくる
  12. 全然興味がなかったServiceBUSが意外と?
    1. AS400のようなものに対してもイベントを伝えることが出来る?
  13. VS2010では並列処理が若干のコード修正で対応が可能

うん。途中まで出来るだけ丁寧にわかりやすく書こうと思ったけど、ずらずら書いてみると全てが台無しだ!わっはっは
Meshに関しては実際に作ってはないけどなんとなく全様が見えてきたかな。落ち着いて考えてみたら分かることだったけど、アプリケーションが保持するデータもMeshオブジェクトとして共有することになるのだから、余り大容量のデータを扱うアプリケーション。要するに企業向けアプリには使いづらいって事ですね。ちょっとがっかり(仕事では企業相手なので使い道を失う)。純粋にストレージとしてみればデータをある端末で登録。基幹系でそれを読み取って削除みたいにすればデータ連携をすることは出来るけど・・・おとなしくSQLService使えって感じもする。ぐふぅ。
ただ、Silverlightがクライアントアプリのように動くのは面白いですね。ローカルデータにしかアクセスしないのであればオフラインでも動くし。
Microsoftの井上さんと話したところでは現状ではどちらかというとエンタープライズというよりはコンシューマ向けのサービスを意識しているようだ。データの共有方式を見ていると確かに厳密さの要求されない内容のアプリケーション=コンシューマ向けになるのかな。まだまだベータの技術なので今後変わっていくかもしれません。何かしらルールを追加・指定することが出来れば応用が利きそうかな。実際のところエンタープライズで考えると、LANの繋がっていなく、ネットに繋がる環境って事になるから・・・モバイルか事業所間?うううむ。コンシューマ向けのほうが確かに考えやすいかも。
VisualStudio2010で用意されるであろう並列処理に関しても中々すごかった。コードの変更は地味だったけど、効果は絶大。川西さんも相変わらず渋かった

さて、問題のLiveFrameworkですが、、、、Connectサイト上ではLiveFramworkではなく「Azure Services Invitations」がそれにあたるのだと思う。ここでトークンが送られてくるのでAzure Services Developer Portalにトークンを入力すればLiveFrameworkがダウンロードできる・・・・んだと思う。トークンの発行に時間がかかっていてブログを書いている現在はまだ試すことができていない。

Microsoft Connect
https://connect.microsoft.com/default.aspx

Azure Services Developer Portal
https://lx.azure.microsoft.com/Cloud/Provisioning/Default.aspx

そうそう、資料は必要な人は自分で印刷して持ってくる。IDホルダーも最後に回収と、随分とエコになっていました。今までが大盤振る舞い過ぎただけかもしれないけど。ん?エコっていうよりは不況??

※追記
Azure Services InvitationはLiveFrameworkとは関係ありませんでした。SQLServiceとかのほうね。なんで分けているんだろう:::

ビジネスマンのための40歳からの本を書く技術

三輪 裕範さんが書いた「ビジネスマンのための40歳からの本を書く技術」を読んだ。

ビジネスマンのための40歳からの本を書く技術
三輪 裕範
ディスカヴァー・トゥエンティワン
売り上げランキング: 4120

本書の著者は、サラリーマンでありながら7冊の商業出版を成し遂げている。昨今の勉強本ブームはその殆どがインプットに対するもの。本書ではそれら様々な本を読んで得たインプットを商業出版としてアウトプットすることに対する技術が語られている。
最近色々なところでお会いする方々は、話を聞いてみると商業出版を目指している方が多い。商業出版と聞くと、私としてはなんだか遠い世界の話のように聞こえていた。どちらかというと、今でもその気持ちは強い。
ただ、商業出版が出来るくらい問題意識を持ち、その分野に対して自身の知識を整理できる力を持つというのは非常に魅力的な話であり、必要なスキルであると考えて本書を手にとって見た。

大目次

  1. 本のテーマをいかにして見つけるか
  2. 情報をどのようにして集めるか
  3. 情報をどのようにして整理するか
  4. どう文章にするか
  5. どう出版に結びつけるか

本書は大きく上の5章に分けられている。
各章で色々なことを学ぶことが出来たが、特にテーマに関しては色々とやってみたいことは多かった。

一つのテーマだけを必死になって追いかけていくよりも、複数のテーマを持っているほうが、より充実した知的生産が出来るように思います。

まずはテーマを三つ持つことを目指していただきたいと思います。そして、出来ることなら最終的に十くらいのテーマを見つけ出すことが出来れば、本を書くことはぐっと楽になってくるでしょう(P39-40)

これが私にはとても重要。なんだかあっちに言ったりこっちに言ったりし過ぎているような気がする最近。とりあえず、本書にも書いてあるとおり「蔵書を眺めて傾向を見る」+「新聞で自分が何に興味を持つか」をしばらく継続的に見ていくことにしよう。
メモに関しては本書では本田直之氏のレバレッジメモを出してきている。私は、情報は1冊のノートにまとめなさい 100円でつくる万能「情報整理ノート」 (Nanaブックス)を読んで以来はずっとA6ノートにメモをつけているのでここはこれを利用。ただ、”メモの取り方”として

  1. ページ数を一緒に書きとめておく
  2. メモの題字を考えてメモする
  3. 週末に抄録する

というのは役に立ちそうだ。特に週末に行う抄録。私は記憶力がないのでその場でメモを刷るようにしているが、週末に再度見返して抄録しなおすようにすればさらに自分自身の身になるのではないかと思い早速やってみることにした。簡単な週報のようなものだろうか?

こうやって色々と考えてみると商業出版を目指してみるのも中々楽しいのかもしれないと思える。色々な方と話をし、色々なテーマを見つけて考えていきたい。