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

XAMLによる開発

日本のMicrosoftでWPFやSilverLight関連でいろいろな情報を出している
川西さんのブログが更新されていました。

川西 裕幸のブログ
新しいイテレーション型開発
http://blogs.msdn.com/hiroyuk/archive/2008/03/20/8326702.aspx

デザイナと開発者の役割分担。

実際、どこまでこの分担はちゃんとできているのだろうか。
かえるが務めている会社の開発現場にはデザイナという職種は存在しない。
みんな開発者状態になってしまっている。

デザイナがいるわけではないので、結局のところ開発者がコントロールとかも
決めたりなんだりの作業を行っているのが現状だ。

コントロールのデザインという意味においては、プロダクトの中である程度
統一されているべきなのであまり悩む必要はないのだが、
コントロールの配置だとか、色づかいだとか。
このあたりはどうしても弱くなってしまっているのを感じている。
自慢じゃないのだが、俺は絵心なんてものは持ち合わせてねぇーーーー!!

まぁ、川西さんが書いたホワイトペーパーにもある通り、
開発者としてXAMLが正しく理解できるように勉強しないといけないですね。

ちょっと川西さんの本、置いておきますね

XAMLプログラミング
http://www.amazon.co.jp/s/ref=nb_ss_gw?__mk_ja_JP=%83J%83%5E%83J%83i&url=search-alias%3Daps&field-keywords=XAML%83v%83%8D%83O%83%89%83%7E%83%93%83O

Oracle VM

ZDNetJapanのサイトにOracleのVMに関する記事が載っていました

Oracle VMの実力を試そう
http://builder.japan.zdnet.com/news/story/0,3800079086,20369653,00.htm

以前、時々参加させていただいていたOracleの無料セミナー
OracleTwirightでVMの話があって、行きたかったのですが気がついたのが遅く
すでに満席になってしまっていました。
OracleTwirightは夕方に行う無料セミナーなのでやっぱり人気なのはすぐに埋まってしまうなあぁ

Oracle Japan イベント・セミナー情報
http://www.oracle.co.jp/events/

で、早速読んでみたのですが。。。
うーむ。Oracleをアプリケーションサーバーとして使用している場合には
VMとしての使い道もあるのかもしれないけど、現在のところ私は
あくまでデータベースとしての用途でしか使っていない。
そうなると、基本的にはOracleユーザーを切り替えればいいだけの話
になりそうだなぁ~。

今回のOracleVMは、直接的にすぐに使用することはあまりないかもしれないけど
Xenのような仮想化技術はちょっと押さえておきたいところ。

VMWareやVirualPC、WindowsServer2008もVirtualization機能も含めて
これからはこういった仮想化技術。充実してきそう。
開発者としてはこれらの技術をうまく組み合わせて自分の作業を
快適にしていきたいですね!

SilverLight2 コントロールのスキン

SilverLight2のコントロールに関してちょっとネットを徘徊していたら
面白いページがあったので紹介

Silverlight 2 Control Skins
http://blogs.msdn.com/corrinab/archive/2008/03/11/silverlight-2-control-skins.aspx

コントロールに対してStyle指定を行うことで使えるようですね。
これはこれで面白いかも!

ver.1に比べるとようやくver.2になってコントロールの幅も増え、
少しずついわゆる「ストリーミング」以外の用途でも使える道が見えてきたようです。

ただ、いかにせんまだ少ない。
どのみち標準として用意されているコントロールはそのまま使うのは難しい場合が多いので
カスタマイズしていったりしないとつらいのかもしれないけど。
せめてツリービューくらいはほしいよね。

ま、物は試しってことでこのスキン、試してみようかな。
私は残念ながら絵心がないのでこういうものを作れる人は素直に”すごい!”って思う。
うーーん、うらやましいぞ

Silverlight Tutorial Part 3に潜む罠

ScottさんのTutorial。週末は別のことを少しいじっていたのでTutorialは2までしか
やってなかったのですよ。
いよいよ、Web上のサービスとやり取りをするTutorial3やってみました。

Silverlight Tutorial Part 3: Using Networking to Retrieve Data and Populate a DataGrid
http://beta.weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-3-using-networking-to-retrieve-data-and-populate-a-datagrid.aspx

いや~~~~~~~~~~~~~~~~~~~~~~

正直疲れた。

今更Tutorial通りになんかやらねぇー!って人もいるかもしれませんが、
同じ道を歩く人が少なくなるように。

まず、紹介されているコードでは期待された動きをしません。
というか、まずビルドが通りません。

まず、ソリューションにXml.Linqを追加します。もしかするとXmlも追加しないと?
f:id:krote:20080319024054j:image

こんな感じ
f:id:krote:20080319024053j:image

あとは

using System.Net;
using System.Xml;
using System.Xml.Linq;

をPage.xamlに追加。
DataGridにある「Data:DataGrid」の記述は「my:DataGrid」でも問題なく動作したけど、Tutorial通りにいくのであれば

xmlns:Data=”clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data”

をネームスペースの所に追加しなければいけない。

これで何とか動きました。

f:id:krote:20080319024611j:image

やったーーーー!!
なんか苦労した分感動

まぁ、何を隠そう一番手間取ったのは慣れないインテリセンス。
そしてそれによって追記されたカッコが邪魔でいつまでたっても
まともに動作しなかったことなんですが。。。。

だって今まで会社で使ってたのVisualStudio6なんだもん!
しょうがないじゃないかー!

ゴメンナサイ

うわ、明日起きれるかしら。。。。

Macで戸惑っていること

使い始めてまだ3日ほどしかたっていない+使っているのは一日2時間ほどなので、やはりまだまだ慣れません。

とりあえず、現時点で「うーん」って思っていることを備忘録代わりに書いてみることにします。

ショートカットキーの違い

Windowsでは主に編集操作を行うときにはCtrlキーを利用しています。
コピー時にはCtrl+cであったり、ペースト時にはCtrl+vですね。
Macではこれらの操作にはCtrlキーではなくCommandキーを使うことになるようです。
また、ブラウザ等で最新情報に更新するときにはWindowsではF5キーを利用することが多いのですが、Macでは「Command+r」を使うようです。

また、完全に習慣として染み付いてしまっているのが漢字と英数の切り替えです。ホームポジションに近い位置にあるにもかかわらず、習慣としてApple純正のキーボードには存在しない「半角/カナ」キーを押そうとして「1」が押されてしまいます。。。。

こればっかりは覚えていくしかないのでしょうが、慣れないうちはちょっと面倒ですね。
ふむぅ

ペイント

ブログに利用する画像を、これまではペイントを利用して加工していました。GIMPとか立ち上があるの遅いし。
ただ、Macでこの役割を担っているのがなんなのかがよくわかっていません。
そもそも最初からはインストールされていなくて、GIMPなり何なりをダウンロードしてこないといけないのかな~?

これに関しては、それほどの緊急性がないことからまだ細かくは調べていない。
いいのないかな

そもそも触りきっていないので、これからも戸惑うことは数多く出てくるだろう。
実際のところの戸惑いはここに書き尽くせるものではない。戸惑いというか、なんというか。

やっぱり「知らない」ってことは大変だね。
週末に少しでも経験値をつめるようにしていきたいものです

ちょっと遊んでみた

チュートリアルも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でできることの多くはそのうち追加されるかもしれない。それを考えるととても楽しみである。

今月の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勉強したいと思っています。

単焦点レンズのチカラ

先日お会いした方から単焦点レンズでの撮影を薦められた。レンズ自体は少し前に購入していたもので十分なようだ

Canon EFレンズ 50mm F1.8 II
Canon EFレンズ 50mm F1.8 II

posted with amazlet at 09.01.18
キヤノン
売り上げランキング: 357

今日は予定していたことが、私のポカミスでなくなってしまったので折角だから購入したレンズを装着して昔住んでいた下総中山を少しフラフラしてきた。まだまだカメラ小僧の駆け出しだから恥じらいが抜けません。別に変な子としているわけじゃないのに(><

f:id:krote:20090117161852j:image

今日は少し出店も出ていてちょっとにぎわっていた。お札っぽいものを持って歩いている人もいたので何かあったんだろう

f:id:krote:20090117161618j:image

少し夕暮れ時。昨年まで改修工事が行われていた塔の朱色がとてもきれいに見えます

f:id:krote:20090117162023j:image

このお寺にはアチコチに猫がいます。参拝者が餌を与えるのか、丸々と太って人にじゃれてきます。冬は寒いのでは~と思ったら、お店の中の暖房が聴いているところで丸くなっている猫もいました。たくましいです

f:id:krote:20090117213638j:image

今日の私の夕食。カボチャの煮物は最近ヒットしてよく作ります。肉じゃがも好きで、具材はゴボウやらネギやら体によさそうなものを適当に入れてます。ネットでフラフラとレシピを見ていたときに使われていた”最後にバターを乗せる”ってのをやってみたんですが、バターの香りが強すぎて私には余りあいませんでした。素朴な味わいのほうが私は好きですねぇ。
煮物は体によさそうですが、日本の煮物は砂糖も結構入れるのでちょっと気をつけないといけないかも?もう少し味付けには気をつけなければ!

いつものレンズと違ってズームが使えないけど、実はそれほど困らなかった。できばえは・・・・まだまだ修行が足りませんね。どういう設定で撮るのがベストなのか!?設定を変えて撮って比較しないと私にはちょっとわからないなぁ
でも、なんか気分が良くなった気がするのでよしとしよう!

プログラマの技術尺度

まずはこちらを

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

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

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

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

課題がわかるか

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

では何を?

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

ソフトウェアアーキテクトが知るべき97のこと

O’REILLYから出ている「ソフトウェアアーキテクトが知るべき97のこと」を読んだ

ソフトウェアアーキテクトが知るべき97のこと
オライリージャパン
売り上げランキング: 747

珍しくAmazonが新刊を速攻で届けてくれた。つまり、予約があまりされなかったということだろう。技術書なんてそんなものだ…。

本書は、読んで字のごとくソフトウェアアーキテクトが知っておかなければいけないことや、何に注力していかないといけないのか?ということに関して数々の人がその考えを述べている。
本全体としてまとまっているというわけではなく、どちらかというと「あなたはどう思いますか?」って感じの質問に対しての解答集のようなものだ。

ちなみに、日本語訳は無いが原文はこちらにある

97 Things Every Software Architect Should Know – The Book
http://97-things.near-time.net/wiki/97-things-every-software-architect-should-know-the-book

日本語版である本書は、上記97の内容以外に日本人アーキテクトによる追加の内容11本を含んでいる

何を知るべきなのか

実際には、それぞれの立場や会社の性質。従事しているプロジェクトの内容やチーム編成によっても立ち位置は変わってくると思うので、「おー!そうだよね!!」って思うこともあれば「ふーん」と思うこともあった。
ただ、まとまっていないといっても、考えることというのは比較的似通っていて、言っていることはある程度のカテゴリに分けられている

  1. 技術を正しく把握・使うことの重要性
  2. コミュニケーションの重要性
  3. ビジネスを考えることの重要性

とってもざっくばらんに分けるとこんな感じじゃないかな?
たぶん、この人たちにとっては”ソフトウェアや技術に対する知識を持っているのは当たり前”で、プラスして何が重要かということが言いたいんだろう。技術ばっかりの頭でっかちになってはだめですよって。本書でたびたび出てくるところの「象牙の塔」ですね

  • 象牙の塔 http://ja.wikipedia.org/wiki/%E8%B1%A1%E7%89%99(Wikipedia:象牙)
    • 現実からかけ離れた夢想の世界。学者が閉じこもる研究室の比喩。ミヒャエル・エンデの『はてしない物語』にも登場する

面白いと思い、やはり悩ましいのはコミュニケーションだろう。

そんなときに必要なのは、昔から定評のあるテクノロジーです。実際、そのテクノロジーは、人類の歴史で最も重要な技術上のイノベーションです。何だと思いますか。それは話し合いです(P.6 Mark Ramm)

ソフトウェアアーキテクトをビジネスとデベロッパーの間に置くとなると、やはりこのスキルは必須になるだろう。これはプロジェクトをチームとして、会社として成功に導くためには間違いなく必要なことだ。
その割に、これにかかるコストだとか労力というものは軽視されがちで、結果としてプロジェクトはとん挫したりする。
また、もうひとつ。重要なコミュニケーションがある

ソフトウェア・アーキテクトは、どのプラットフォームの仕事をしているかにかかわらず、相互のコミュニケーションを円滑にするための手段を持たなければなりません。その手段の1つが、アーキテクチャー/デザインパターンによるコミュニケーションです。(P.84 Mark Richards)

そう。同じプラットフォーム、同じ言語で開発を行ったとしても別のチームのプログラマがすぐに他のチームで活躍できるとは限らない。仕様書が情報を知るための重要なリソースになることもあるが、プログラマであればまずソースを見ることが多いのではないか?その時に内容を理解したり、プログラムの意図や流れというものを理解するのにこれらデザインパターンというのは間違いなく威力を発揮する。
逆を言えば、本来であればデザインパターンを適用すると効果的な場面において適用されていないとすると、不必要な誤解を招く可能性まであるということだ。

私自身は、デザインパターンに対して習熟しているとはまだまだ言えない。
一人の技術者としてのコミュニケーションがとれるよう、勉強していかなければいけないと痛感することになった。