ソフトウェア開発」カテゴリーアーカイブ

SilverLight2の情報更新

SilverLightはMicrosoftが提供するRIA技術として現在バージョン1.0がリリースされている
2.0が先日めでたくβ1のリリースを迎えたわけだが
まだまだ日本語の情報は少ない。

仕事ではちょっと使えるかどうかはわからないが個人的には気になる技術なので
少しずつ独学になってしまうだろうが勉強していきたいと考えている。
注目の技術ってやつだ

そんなわけで狭い範囲ながらも多少のアンテナを張っていたのだが
「Dan Wahlin’s WebLog」が更新されていた

Dan Wahlin’s WebLog
My SilverLight Articles
http://weblogs.asp.net/dwahlin/archive/2008/03/12/my-latest-silverlight-articles.aspx

SiverLightでのアニメーション作製においての導入部分といったところだろうか。
記事が追加されていた

Silverlight XAML Primer 11: Getting Started with Animations
http://visualstudiomagazine.com/columns/article.aspx?editorialsid=2530

記事のど真ん中にIBMのバナーがあったのだが、当然のようにFlashで作成されていた。
SilverLightのアニメーションの記事なのに~って思ったが現在のWebバナーの常識を考えればしょうがないか。

SilverLightを勉強する上で参考になるBlogとしてScottさんのブログがある

ScottGu’s Blog
First Look at Using Expression Blend with Silverlight 2
http://weblogs.asp.net/scottgu/archive/2008/02/28/first-look-at-using-expression-blend-with-silverlight-2.aspx

このあたりの情報を参考に勉強していかないといけないなぁ

SilverLight2 インストール!

ようやく、SilverLight2をインストールしてみました!
仕事ですぐに使うわけではないのですが、面白そうだから!

VisualStudio2008でSilverLight2を作るのは今の所、以下のモジュールを使う事になる。
VisualStudioだけでも開発は出来なくは無いが、見た目をもう少しいじりたいのであれば
デザイナツールであるBlendも見逃せない。
と言うか、XAMLをゴニョゴニョするの大変

Microsoft SilverLight Tools Beta 1 for Visual Studio 2008
http://www.microsoft.com/downloads/details.aspx?FamilyId=E0BAE58E-9C0B-4090-A1DB-F134D9F095FD&displaylang=en

Microsoft Expression Blend 2.5 March 2008 Preview
http://www.microsoft.com/expression/products/download.aspx?key=blend2dot5

SilverLight Toolsのインストール

ダウンロードしてきたファイルをインストールします
f:id:krote:20080316235121j:image
ぽちっとな
f:id:krote:20080316235120j:image

インストール、結構時間が掛かりました。
私の開発環境としてはそんなに素晴らしい~~環境ではないので
時間が掛かっただけなのかもしれませんが。
VisualStudio2008のインストールもとっても時間が掛かりましたし。。。
いや~~。懐がキビシー

Blendのインストール

f:id:krote:20080316235119j:image

Blendは比較的すぐに終わったかな?
この状態でVisualStudioを立ち上げてみると。。。

f:id:krote:20080316235118j:image

あったあった!
これで一応作る事が出来ますね~。

とりあえず、先に紹介したScottGu’Blogにあったチュートリアルを色々と試してみています。
うーん。ちょっと面白いかも。

ただ、XAMLでGUIをいじるのはやっぱりめんどうだなー

f:id:krote:20080317002555j:image

せっかく上にデザインが出ているのに!!!
そこで編集したいんだぁーーー!!!

あ、おとなしくBlend使えってやつですね。そーですね。ハイ
ごめんなさい

Slides from Silverlight for Business Applications Webcast

SilverLightをビジネス用途で使用するのに
現状のできることや、なんなりをよくまとめてあった
WebCastがあったので紹介

irritatedVowel.com
http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/03/20/Slides-from-Silverlight-for-Business-Applications-Webcast.aspx

これを見ると、Hosting環境としてはIISだけじゃなくて
Apatchでもいけるのかな~
クライアント側にダウンロードして起動するものだから
たぶん行けるんだろうとは思っていたけど、確証がなかった。

今度やってみようかな

ちょっと遊んでみた

チュートリアルも8つあるうちの6つが終了。一番最後のチュートリアルはWPFでのものなので実質的には残るはテンプレートに関する一つのみ。と言う事で、今までのサンプルで少し遊ぼうとした。下はリストのタイトル列を2段組みにしてみた

f:id:krote:20080331003238j:image

と、見てみるとエラーを引き起こしているじゃないか。

f:id:krote:20080331003235j:image

なにやらGifファイルが見つからないみたいなエラー。よく見ると、リストのうちの一つのサムネイルが表示されてない。

どうやらすべての抽出結果にサムネイルが付いているわけではないのか、サムネイルがSilverLightで表現できない形なのか。そういう事に起因しているエラーのようだ。サンプルを見返してみると、ちゃっかりLINQの所に以下の記述が追加されていた

where story.Element("thumbnail") != null && !story.Element("thumbnail").Attribute("src").Value.EndsWith(".gif")

これでOK。ちなみに、さらにいじって、ユーザ名を表示させてみた。

f:id:krote:20080331003232j:image

Listの内容をグリッドにし、1行目にさらにグリッドを追加して1行目は2列。2行目は1列のような表を作ってみた。xamlを使った表現は、なれると結構いろいろなことができることがわかる。比較的簡単に。SilverLightでは機能が少ない分動作に困ることはあるかもしれないけど、WPFでできることの多くはそのうち追加されるかもしれない。それを考えるととても楽しみである。

SilverLight Songs

いつもどおりネットを徘徊していたら、こんな記事を見つけた

Silverlight – The Song
http://weblogs.asp.net/dwahlin/archive/2008/04/27/silverlight-the-song.aspx

Silverlight開発チームを混ぜての作品。ちょっとした「New Relase」だ。ちゃんとプレーヤーもSilverlightですね。

正直少しうらやましいと思った。実際の開発現場がどうであるかはわからないが、これくらいの遊び心を上が持っているというのはそれだけ下のモチベーションも上がるかもしれない。。。(って、それはどういう人によるのかもしれないが)。何にせよ、開発の現場は明るいに越したことはない。どーんよりとした雰囲気の中で開発を行うよりは厳しくとも明るい雰囲気の中で開発を行うほうが効率は上がるし、変に精神的なトラブルを抱え込んで会社に出てこなくなる奴が減ると思う。

もちろん、マネージメントの立場から言うと「納期や品質を守ってこそ」のものである事は確かなのだが。会社対会社。社内の人間関係。様々な問題はあるけれど、開発者にとって何ができるのか。どうなりたいのか。考えていかないとね。

Silverlight検定

Silverlight検定なるものを「Programmable Life」さんが作成していたので挑戦してみた

Silverlight 基礎知識検定 (Programmable Life)
http://d.hatena.ne.jp/coma2n/20080623/1214229546

Silverlight 基礎知識検定
http://kentei.cc/k/11346

結果は何とか合格でしたが、簡易Webサーバーの○○っていうのは知りませんでした。。。まだまだ勉強不足ですね

あー。。。最近プログラムできてないなぁ。。。。
管理・マネジメント関連の仕事ばっかりです。いや、それはそれで面白いのですが。。。

それにしてもこの「けんてーごっこ」って仕組みは面白いですね。簡単そうだし、ちょっとしたクイズだとかに使えそう。もう少し画面サイズが大きいといいのだけど、大きければ大きいだけ背景だとか気を使わないといけないことが多くなるからまぁいいのかな。何か遊んでみようかな?

今月のDBマガジンが面白かった

今月のDBマガジン、特集が2つとも個人的にはヒットして面白かった

DB Magazine (マガジン) 2008年 09月号 [雑誌]

DB Magazine (マガジン) 2008年 09月号 [雑誌]

特集1 リッチクライアント技術最前線
特集2 失敗しないOracleRAC構築ノウハウ
特集3 Python開発フレームワーク

●リッチクライアント最前線
ここでは「Ajax」、「WPF」、「AIR」に対して実際にWebサービスと組み合わせたサンプルを手ほどき。Silverlightに関しては照会のみで終わっていますが、WPF自体にも興味があったのでこのサンプルはとてもうれしい。ちょっとかじってみようかしら。DBマガジン、やるじゃないか

●失敗しないOracleRAC
OracleRAC・・・。すでに失敗したことがあります。可用性という意味では非常に効果があるのはわかっているのですが、この構築。全然すんなりと行ってくれませんでした。実際にはハード側の問題等もあいまってセットアップが全然進まなかった苦い思い出があります。

今回の記事では、OracleRACを構築する上での注意点だけでなく、実際に運用フェーズに入った場合の問題点早期発見のために、何に気をつけて考えていかないといけないのか。このあたりにも踏み込んで話がされています。個人的にはハードに対する考察だけでなく、OSに対する設定だとかに関しても言及してほしかったところ。このあたりは広げようと思えばどこまでも広がる話なのかもしれないのでしょうがないところか。

Pythonに関しては・・・すいません。ほとんど知りませんでした。。。どちらかというと今から勉強するくらいならPowerShell勉強したいと思っています。

プログラマの技術尺度

まずはこちらを

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

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

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

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

課題がわかるか

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

では何を?

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

革新的ソフトウェア企業の作り方

Eric Sink著。青木 靖訳の「革新的ソフトウェア企業の作り方」を読んだ。内容は、Eric Sinkという人がMSDNのコラムにしるしたものを集めたのだと思う。

Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方
Eric Sink エリック・シンク
翔泳社
売り上げランキング: 24226

本書はソフトウェア開発者に向けられて作られた本であるけど、実際の内容は完全なビジネス書だと思う。著者はもっと多くのソフトウェア企業が世の中にはあるべきだと考え、マイクロISVという形態を提唱している。
本書で言うところの「マイクロISV」というのは、個人がISV(Independent Software Vendor:独立系ソフトウェア会社)を立ち上げる事になる。ただ、本書で薦められているものは脱サラ起業ではなく、いわゆる”週末起業”的な話。技術者であるソフトウェア開発者がそれを行おうとした場合に何に留意するべきか。どういう方向性で考えて行くべきかが本書では指南されている。
先般、ソフトウェア開発未来会議においてクラウド・コンピューティングが話題になった。ここで個人からみた視点として、iPhoneで言うところのAppStoreを例に挙げ、個人が作成したソフトウェアを世界に向けて配信する方向性の話が聞けた。オフライン会議に参加して、ここに強く共感を覚えたのはおそらく本書を読んでいる最中だったからだろう。

かなり刺激的な内容で、私自身も小さいながらISVに努めている事から色々と学ぶ事が多い一冊だった。また、昨今のクラウドに対する考え方やMarketPlaceがこの時期に出てきたのはもはや自分のためにあるのではないかと甚だ恥ずかしい勘違いをしたくなった。
また、ソフトウェア開発者であるならばぜひ読んでいただきたい私にとってお勧めの本となった。

何を作るのか

どんなアプリケーションを作るのか。技術者の多くにとって不足しがちな商品開発におけるマーケティングの重要性があげられている。私もどちらかというとそうなのだが、”この技術を何かに使えないか?”という出発点ではなく、”この内容を実現するのにはどの技術が使えるのだろうか?”という、本来当たり前の出発点が必要になる。

「重要なのはユーザーにとってどうかということ」というのを覚えておこう。ユーザーが普通の人たちなら、彼らが.NET CLRをダウンロードしインストールする準備ができているだろうか注意して考える必要がある。普通の人々はすべてが「当たり前のように動く」ことを期待している(P.174)

そう、結局のところ技術は技術者にとっては主役なんだけどユーザにとってはどうでもいいことなんだ。Silverlightがどんなに操作性が良くても.Netの生産性が高くて製品の値段が抑えられても、インストールの手間がかかっていたのでは障壁になってしまう。これは意外と馬鹿に出来ないコストだ。言ってしまうと、我々開発者はその技術が一般化するまでは待たなければいけないことになる。ユーザーがアプリケーションを仕事として使っているのでない限り。

また、製品のマーケットの中での位置づけはどうするのか。
最近よく読む”週末起業”だとかの中では主に”その分野の先がけ・パイオニアになれ”という事がしきりに言われている。本書でのアプローチはこうだ

競合を避けることの大きな問題は、それが顧客をも避けることになるという事だ。競合の存在はお金を払っている顧客の存在を意味する。あなたのアイディアで商売をしている人が誰もいなかったとしたら、それが本当にお金になる事なのか怪しいと思うべきだ
(中略)
彼は、一番良いアプローチは「大きくて無能な」競合を見つけることだと言っている。(P.144-145)

完全に新しいマーケット。ブルーオーシャンは認知されるまでに大変大きい労力を要する。個人が週末レベルでそれを広めているのでは何年先になるのかがわからない。また、それがマーケットとして成り立つのかが不明だ。
マーケットの中で出来るだけ無能な競合を選び、そことの差別化を図る。製品の値段を決定する場合にも競合製品と見比べ、さらに価値を高めて値段を上につけて売り出す。もちろん、差別化した内容が、その価格差に適合しているのかは見極めないといけない。
だが、これらを考える基準を作る事が出来るのも競合がいて、そこのビジネスが成り立っているからであろう。やみくもにブルーオーシャンを探してニーズを無理に自分で想像していないか、確認する必要がある。
もちろん、そこにマーケットを見つけ出せるのであればブルーオーシャンを否定するものではない

より多くの失敗をしろ

この本で面白いのは、この主題を書きあげるためにEricが自らソフトを作って試してみたということだ。彼が作った”必ず勝つ方法があるソリティア”。その名も「Winnable Solitaire」だ。だが、彼の試みた今回の挑戦は結果として失敗した。

2004年9月29日の時点で、Winnable Solitaireは6本売れ、あんまりすごくない合計42ドルの収入を上げた。
支出が0だったなら、新たに得られたこの富で豪勢に買い物をするところだが、開発の際、アートワークのために379ドル使った。また、リリースして以来271ドルを広告で使っている。<中略>結論として、私の損益計算書には現在純損失626ドルと記されている。(P.50)

この失敗に対してEricは10の考えを記事にしている。「勝てる」というのは差別化要因としては弱かったのか?別な種類の製品であったなら?等々
これはよく言われる話ではあるけど、成功するためには多くの失敗をし、その多くの失敗から学ぶ必要があるという事だ。今回もEricは「これは素晴らしい失敗の仕方だと思う」、「小さな失敗で私が傷つくことは全くないと思う」等々の記事を記している。
結局のところ、多くの失敗をして学んだとしても次につなげることができなければ最終的な成功を収めることはできない。そのために致命的な失敗をしないための保険なりをかけておくべきなのだろう。
作ったばかりで売れてもいないソフトウェアに一人で惚れこんで、勢いあまって会社を辞めてしまうようなことはするべきじゃない。そこまでしなくてもマイクロISVという形態であれば十分可能性を試すことができるんだよってことだろう。

実際のところ、環境は整ってきていると思う

実際のところこのマイクロISVという事を実践するための環境は着実に整ってきているのではないだろうか。
クラウドコンピューティングは多くの開発者にサービスを提供する場を与え、AppStoreやWindowsMarketPlaceはモバイル端末に対してアプリケーションを配布する一つの入り口としての機能を持っている。
これらの場を生かして、早く、小さくともアウトプットを出していくことが大切なのだろう。エピローグに載せられた言葉をもって今日のエントリーを締めくくりたい

(君の考えは)クールなアイディアに聞こえる。実装はそう難しくないだろう。君にはそれをやる時間がある。基本的に心配すべきリスクはあまりない。このアイディアが良いものか見極めようと多くの時間を使ったところで。結局確かなことはわからないだろう。そうする代わりに、同じ時間をこのアイディアの実装に使う事も出来る。そうすればこのアイディアが良いものかどうかが本当にわかるだろう。

基幹システムにパッケージの適用は?

ZDNetに日本でSaaSが普及しない理由として、各企業内での独自システムに関して記事が載っていた

日本でSaaSが普及しない理由
http://japan.zdnet.com/sp/feature/enterprise-trend/story/0,3800089971,20389127,00.htm?ref=rss

記事を読んでいると、SaaSが普及しない理由というよりは基幹システムをパッケージソフトウェアに一新する事の難しさに対する理由が書かれているように感じた。

独自のシステム

記事にもあるとおり、日本の企業。特に中小~中企業では自社システムを手組で作っている場合が多い。
欧米で主流となるトップダウンな効率化と違って、日本では効率化の手段を現場主導で行う場合が多い。そうなると、どうしてもこの記事の中にあるとおり”その企業内での最適化”という形になってしまう。ましてや終身雇用が約束された時代に作られたシステム。業界内のシステムがどうであれ、あまり関係のない話だ。そして現場手動で作り上げた”その企業にとってかゆい所に手が届く”システムだけに現場が現行システムに対して思い入れを持っている場合も少なくない。
パッケージソフトウェアのビジネスは、基本的には業界で一般的であろうモデルで作られたパッケージソフトに対し、社内の業務を改革して適応させていく形が望ましいと私は考えている。パッケージに含まれる機能が不十分であるのであれば別ではあるが。
ただ、実際の導入事例を見ているとそのほとんどがアドオン等のカスタマイズ開発を要している。企業独自の付加価値を見出すような機能を追加しているのも多いが、そもそもパッケージの原形をとどめていないくらいのカスタマイズが入る案件も中にはある。この場合、パッケージ費用よりもカスタマイズ費用のほうが多くなり、なぜこのパッケージを選定したのか疑問が出てくるくらいだ。
この一つの要因が、現行システムの存在だ。カスタマイズを、”現行システムでこう動いているから”という理由だけで行っている場合もあれば、現行システムの全容を把握していないがために、あとから追加の機能に気付き、追加カスタマイズを要する場合もある。なかなか難しいものだ。なにせ導入企業自身が、自分の欲しい機能(現行システムが保持している機能)を知らないのだから。

決して個別企業における最適化が間違いだとは思わない。事実、それによって力をつけてきた企業は日本には多いと思う。経営のスタイルとして現場手動での最適化を目指すのであれば、結局のところ現状のようにカスタマイズ前提の基幹システムは続くのだろう。逆にトップダウンで動くのが主流になるのであればパッケージに適応させるような現場の改革が行われることになる。
それ抜きにSaaSへの移行は難しいのではないだろうか

所有する事への安心感

仮にパッケージを受け入れたとしてもSaaSに踏み切りづらい理由の一つに、システムを外部に置くことに対しての危機感があると思う。企業にとっての生命線ともなるべき財務や顧客の情報を社外に持つことそのものに対する恐怖感があるのだろう。
ただでさえ個人情報保護法等が施行されたり情報流出、内部統制だの言われている中でこの問題にどう対応をするのか。そういう懸念を抱く層が多いのだと思う。たぶん、手元に持っておきたいのだろう。気持ちはわかる。

これに対してはSaaSプロバイダー側がある程度の保障や、障害児の対策を明確に提示する必要があるだろう。セキュリティ等は確かに懸念される点ではあるかもしれないが、普通に考えると自社に持つよりも”場所”としてのセキュリティはしっかりしている可能性が高いのではないだろうか。また、自社でデータセンター並みのセキュリティを整備しようとすると初期コストだけでなく維持にもかなりのコストがかかるはずだ。
以前、企業内におけるITに対するコストのそのほとんどが、現状システムの保守に対して割り当てられているという調査結果を見たことがある(確かMicrosoftのカンファレンスか何かだったと思うがうろ覚え)。自社で運用するという事はそれ相応の保守のためのコストもかかる事を忘れてはいけない。コストのほとんどが現状維持のために使われている状態は決していい状態とは思えない。
経営資源の有効活用という意味でも一考の価値があると思われる

日本でのSaaS

全ての企業において基幹システムがSaaS形態になるかというとそんなことはないと思う。
現在、日本で出始めているのはCRMや営業支援関連のパッケージがSaaS形態で提供されているように見える。これから少しずつ他のシステムにも波及していくのだろう。アプリケーションを提供しているベンダーもSaaS対応を考慮しているが、オンプレミス環境でのシステム提供がなくなるわけではない。そうなると、比較的乗り換えが容易なSaaS形態で複数のシステムを試し、決定した段階で自社保有するような形をとる場合なども出てくるのかもしれない。
いずれにしても各パッケージベンダーがどういう対応を取ってくるのか。今後が楽しみではある