ページ

2010年2月24日

Software Design総集編

Software Design総集編が先週末送られてきました。無料でもらえてうれしいですが、もらえなかったとしても2000円せずに10年分の記事が収められていてお買い得なので、買っていたでしょう。ユニマガの記事を集めたDVDが2万円ぐらいなので、この安さがわかると思います。いつから定期的にSoftware Designを買っているかよく覚えていませんが、Software Designは僕の大好きな雑誌です。ほかはあまり好きなものはありません。

アリエルができたときにはすでに定期的に読んでいたので、アリエルには僕が読み終わって捨てたものが、9年分あります。そもそも、僕がP2Pに興味を持ち始めたのもSoftware Designを読んだからだというのは、あまり知られていない事実です。

とりあえず、DVDからPDFをMac Bookにコピーしておくとスポットライトの検索対象になるので、簡単に検索できて便利です。説明を読むとAcrobatを入れないといけなさそうですが、僕は入れていません。

PCで全部検索できるので会社の雑誌は捨ててもいいですね、と開発部長に言ったら、「僕は紙のほうがいいです。PDFだとあまり読む気がしません」とおっしゃっていました。まあ、そういう人もいますね。

まあ、自分の興味のないこともある程度知っておくためには雑誌を買って読むのがよろしいかと。Webだと、興味のないことはあまり読まないような気がするし・・・。

 







2010年2月23日

WEB+DB PRESS vol.55


雑誌が送られてきて、今月は偶数月だったと改めて思い出されるWEB+DB PRESSですが、今日の朝、会社に来ると置かれていました。今日ちょっとだけ気になったところだけ読みました。

まず、一番気になった記事はHTML5です。HTML5は何かと話題になりますが、企業が使う日本のシステムではまだIE6が多いので、HTML5の話を聞くたびに悲しくなります。ただ、悲しくなるだけだと意味がないので、一応、ウォッチしてますが・・・。記事の内容は、HTML5を全く知らない人にとっては網羅的な記事になっていていい内容だと思います。でも、ある程度調べているとかなり物足りない内容です。このあたりは、想定読者が違うので、言っても仕方ないことです。

それから、HTML5自体の感想としては、「HTMLの範囲を逸脱している」と感じるところもありますが、多分、おっさんだからかもしれません。

次に気になったのが、モダンネットワークプログラミングです。アリエルは昔はP2Pの会社だったので、ネットワークにうるさい人が多いです。まあ、みんながみんな、ネットワーク周りをやっていた訳ではないですが。で、このWeb全盛の時代にsocketとか、そんな低レベルなこととか、同期・非同期とか男っぽい記事を掲載するとはなかなかあなどれません。実際にネットワークプログラミングしなくても、知っているだけでWebアプリケーションを作るときに幅が広がります。JettyとTomcatの違いを説明しても理解の仕方が変わってきます。それ以外にもネットワークをちょっと意識すれば、楽しいことが広がります。

ただ、言語がCで説明されています。僕がCやC++を触っていたのはもう、5年ぐらい前です。LLでもほとんど同じコードがかけるので、そっちで説明してくれる方がうれしい・・・。で、残念なことがコルーチンによる処理について書いていないことです。ひょっとしたらイベント駆動に含めたのでしょうか?boostだとコルーチンで書けたような気がするのですが、良く覚えていません。

一番大きく書かれている設計を実装に活かす技術は、タイトルからあまり好きでないので、流し読みしただけです。僕はそもそもソースコードが詳細設計書だと十年ぐらい信じているので、記事そのものに違和感があります。十年よりもっと前は、多分詳細設計書ってしらなったかも。もしくは何かスケジュールを作るときに、実装している期間のことを詳細設計と書いていたような気もしますが、昔のことなので良く覚えていません。ただ、詳細設計と実装を分けて考えている人もいるので、それがどういうものか知っておくのは重要です。知っていて、それでも反対するのがよろしいかと。





2010年2月20日

ライブコーディングもあるありえるえりあ勉強会#3

ありえるえりあ勉強会 #3が3月18日 19:00から溜池山王と赤坂の駅の中間ぐらいでやります。お題はEmacsです。Emacsは最初の勉強会でやったので、これが2回目です。申し込みを始めたので、興味のある人はどうぞ。当日はニコニコでも配信するので、遠方の人も楽しめると思います。

ちょっとおもしろそうなので大きな会場をとってみました。100人ぐらい入るそうですが、多分そんなに来ないでしょう。会場はこのページの写真みたいなとこ。会場の写真で公開されているところがここしかなったので、採用とかは関係ありません。一応。

さて、今回は前座が菅原さんのライブコーディングです。前座で何かしゃべってとお願いしたら、「じゃあネタを探しておきます」と。「それじゃ、ネタを探さなくても言いように、ライブコーディングにしましょう。お題もその場で募集すれば何も準備する必要ないですよ」と言う経緯で決まりました。まあ、前回の感想を聞いたりすると、ライブコーディングって、一番アリエルのスタイルに合っているのかなー、と思っています。社内でも似たようなことがあるし・・・。ちなみに、僕はEmacsに限らずライブコーディングはできません。人に見られていると駄目です。

それから、本題の松山さんの発表は、よく分かりません。ごめんなさい。それから、社外の人にもう一人話して欲しいと思っていましたが、うーん、都合つかなかったのかな?



2010年2月17日

地域でGWがずれる?

地域でGWが一週間ずれるかもしれないそうな。もし、これが施行されたら困ったことになります。政治的な意味じゃなくって、技術的な意味です。一週間ずれるかもしれないと言っていますが、ずれるのは官公庁だけかもしれません。局所化されたち地域内だけで休日がずれるのは、技術的な影響はほとんどありませんが、ちょっと大きな会社など、地域をまたいだところで休日がずれるととてもやっかいな問題を引き起こします。

多分、多くのソフトウェアはタイムゾーンごとに祝日を管理しています。たまに、個人ごとに管理しているものもありますが、企業で使うものはタイムゾーンごとが多いです。また、日本のソフトウェアであれば、日本のタイムゾーンしか扱えないもの、つまり、日本の祝日しかあつかえないものもあります。 でも、タイムゾーンに一対一になっていることに変わりがありません。

アメリカとかは祝日がどうなっているか知りませんが、週ごとにタイムゾーンを持っているので、問題ないのでしょう。でも、日本は一つです。一つのタイムゾーンで複数の祝日のカレンダーを持つのはやっかいです。タイムゾーン以外に別のカレンダーを持つ必要がでてきます。手っ取り早いのは、日本のタイムゾーンを複数に分割することなんですが。

フランスは地域ごとに祝日が違うらしいですが、実質タイムゾーンが一つのフランスはどのようにこれを扱っているんでしょう?やっぱり、祝日はタイムゾーンに結びつけるんじゃなくって、人(これは移動しちゃうのでちょっと違うかも)とか、地域に結びつけるものなのでしょうか?難しくてやっかいな問題です。

電車の休日ダイヤもどうシステム化されるか、わくわくします。

誰か、教えてください。



2010年2月16日

アーキテクトへの道

僕はアーキテクト(設計者?)と言う言葉が嫌いです。アーキテクトとプログラマを分ける基準がないからです。強いて言えば、プログラミングするとき(始める前)にどれだけ大きな絵が描けるかと言う違いはあるかもしれません。でも、大きさは違ってもやることは基本的には同じです。また、大きな絵が描けても細部ができないと、単なる絵に描いた餅です。僕にとってはどちらも同じように尊敬できる存在ですが、優劣の区別はありません。

さて、僕や開発部長などは会社の中で偉そうにしているせいで、会長からは時々「あーきてくと」と言われます。僕自身は特別何か変わったことをしているわけではありません。そんな風に言われるたびにこそばがゆくなります。それに大きな絵を描いた後は、今後の方向性を示す以外にアーキテクトなんてすることはないと思っていました。

最近、別の会社の開発体制についていろいろ話を聞いたりしました。その開発チームにはアーキテクトと呼ばれる人はいませんでした。個々の開発者が、良く言えば自発的に、悪く言えば、好き勝手に開発していました。その結果、ソースコードのレイヤー構成は統一感がなく、使っているライブラリはまちまちでした。

例えるなら、Railsでビューの中でSQLを発行していたり、コントローラの中でHTMLを作っているようなものです。ライブラリの混在は、ある画面ではprototype.jsを使って、別の画面ではjqueryを使っているようなものです。さらに、一つの画面で両方のライブラリが混じっているところもあって、そのあたりは動かないとか、いろいろ問題がありました。

アリエルの中では、基本的にみんながレイヤー構造を意識していますが、崩れると必ず指摘が入るし、どうしても崩さないといびつになりすぎるところは、相談に来ます。ライブラリも、新規のライブラリを使うかどうかや、バージョンアップするかどうかも相談に来ます。内心は、そんなこと勝手に決めてもいいんじゃない?と思わなくもないことがありましたが、先ほどの開発体制を聞くと、どのライブラリを使うか、どの技術を使うか、などを決めるだけでも、アーキテクトの存在は重要です。

そんなわけで、最近は「アーキテクトとはソフトウェアの中で使うライブラリ、技術を決める人」と言う定義になっています。そして、それはすべてのプロジェクトで一人いなければならないと思っています。




2010年2月13日

Googleバズがやってきた

Googleバズがやってきました。騒いでいる人はとっても騒いでいるようです。騒いでいる人も賛否両論あって、傍観していると1年後どうなっているか楽しみです。

僕の嫁もgmailを使っています。僕と違ってWebからアクセスして使っています。昨日gmailを使おうとすると、いきなりGoogleバズの説明が表示されたみたいです。「何これ?」とつぶやいて、一番大きなボタンを押した後、「わかんない。」とつぶやいてとっとと受信箱に移動してしまいました。「バズ」という項目は「迷惑メール」と同じで「見る必要がないもの」に分類されたようです。Google涙目です。嫁はTwitterもよく分かっていないし(僕の主観)、blogもよく分かっていないし(僕の主観)、RSSリーダなんてしらない(僕の主観)一般人なので、そういう反応なのかもしれません。でも、mixiには何やら書き込んだりしているので、mixiはすごいと思います。

便利かどうかでいえば、gmailとYahoo!オークションと楽天とオンラインの写真のプリントサイトだけのようです。多分オークションのせいで、Yahoo!のニュースは見ている見たいです。



2010年2月12日

チョコ

会社の女の子たちにチョコもらった。写真の絵は手書きです。

ありがとうございます。多分、子供が食べます。

2010年2月9日

会社のPCをWindows 7にした

会社のPCをVistaからWindows 7にアップグレードしました。6時間の苦行でした。僕のMacBookのSnow Leopardへのアップグレードは1時間ほどだったので、実に6倍の時間です。素敵なものは簡単に手に入らないという教訓です。

さて、一番困ったのは、Ctrlキーの位置が左下になってしまったことです。Ctrlキーの位置はAの左と相場が決まっています。いろいろ試行錯誤したのですが、結局Ctrl2Cap v2.0というソフトでないとCtrlキーとCapsがスワップしてくれませんでした。これを展開して、管理者権限でターミナルを開いてctrl2cap.exe /installを実行して再起動、と言う手順になります。

次にcygtermを起動すると変な(本当は変じゃないんですが・・・)ウィンドウが二つあらわれます。teraterm proをアップデートしても変わらず。で、cygwinをふるーいものから1.7.1にアップデートすると、変なウィンドウも現れずに、ちゃんと動きます。Windows7でCreateProcessの振る舞いが少し変わったらしいです。

あとは、多分、そこそこ動いていると思います。僕はFirefoxとIEとThunderbirdとHidemaruとCygterm(cygwinのため。TeraTerm本体は使わない)とSafariとChromeとEclipseぐらいしか、会社では使わないのでそれいじょうはよくわかりません。EmacsとかはWindowsではつかいません。

「もうコーディングしたらどう動くか想像できちゃって飽きちゃった」

「もうコーディングしたらどう動くか想像できちゃって飽きちゃった」と、知り合いの知り合いが言っていたそうな。これを読んでプログラミングで一番楽しい部分が抜け落ちていると、もったいなくなりました。プログラミングの楽しみって、コーディングしたものをちゃんと動くようにするとか、どう動くか想像するのが楽しんじゃなくって(これはこれで楽しんだが)、どうプログラミングするか考えるのが楽しいのです。そして、どうプログラミングするか考えたものをコードに落とす作業が楽しいのです。その過程で考えたものはそのままではコードに落ちないと分かったり、欠陥が見つかったりして、また考えるのが楽しいのです。自分が何年プログラミングやっているか分かりませんが、飽きたという経験はまだ、ありません。その製品自体に興味をなくすことや、ちょっと疲れてプログラミンをお休みすることはありますが・・・。

まあ、楽しいと言っても、たまにかなり退屈なコーディングもありますが、それは全体の中の一部分です。

時々、プログラマとコーダーという分け方をする人がいます。アリエルの開発部長はこの分け方が嫌いなようですが、僕は妥当な分け方だと思います。コーダーとは、言われた通りにコーディングするだけで、創造性はあまり発揮しません。ただ、0か1かで分けられるものでもないのも事実です。

先の発言をした人は、コーダーのような人なのかな?と想像しますが、ひょっとしたら、コードを見ればデバッグする必要もないくらいすごい人なのかもしれません。世の中にはcatコマンドでコードを書く人もいるぐらいだし・・・



2010年2月6日

電子書籍欲しいなー

iPadが発表されて電子書籍が一気に華やいできました。Amazonの電子書籍の値上げとか、電子書籍がはやるとか、はやらないとか、価値があるとかないとか・・・。僕は早く電子書籍が使えるようになって欲しいと、首を長くしてまっています。今のKindleのように、電子書籍専用のデバイスであればお金を出してまで欲しいとは思いませんが、電子書籍も快適に使える汎用的なデバイスであれば欲しいですね。そもそも、快適に本が読めないと話になりませんが・・・。

電子書籍が欲しい理由は、本は重いしかさばるからです。今でも、本を持ち歩くのはそこそこ大変です。文庫本であれば気になりませんが、専門書になるとそこそこ重くなります。Code Completeなんて持ち歩けないし・・・。学生のころ、とっても重い専門書を持ち歩いたりしていましたが、それら解消されるってすごいことです。

それに読んだ後もスペースを占有し続け、さらにどんどんばっちくなっていくので悲しいです。それだけでも、十分価値があります。

電子書籍があれば読みたいものは、今まで読んでいた分野もそうですが、じつはマンガが読みたいです。マンガって、すぐに読み終わるし、読んだ後もじゃまだし・・・。

なので、電子書籍はそれ自体で価値あるものです。でも、物理的な本にできて電子書籍でできない悲しい機能があります。本は好き勝手に書き込みができます。でも電子書籍は無理です。本の隅っこにぱらぱらマンガを書けないのは、重大な欠陥です。なんとかして欲しいです。



2010年2月4日

プログラマという職業は普通の人には厳しい

プログラマという職業は普通の人には厳しくないか」と。とてもおもしろい記事です。業務外に勉強をしないとまともなソフトウェアを作るのが難しいので、普通の人には厳しいという内容です。大体、その反論として、どんな職業でも勉強しないといけないし、プログラマに限った話じゃないでしょ、と。

さて、 反論などを読んでいて驚いたのが、プログラマの報酬の形態として時間給(つまりは残業代)があると言うことです。僕は残業代がある会社で働いたことがないし、むしろそういう雇用形態は避けていたので、すぐにそういうシステムがるということを忘れます。プロであれば過程ではなく、成果物で判断すべきであると、誰か偉い人が言っていました。

でも、最近は二種類の人がいてもいいと思っています。時間外はそれほど勉強しなくてもいいので、言われたことを正確にこなしてくれる人と、「普通の人じゃない」プログラマです。どちらも組織にとっては必要です。ただ、普通のプログラマは代替するものが用意しやすいので必然的に安くなります。35才で高い給料だすより、同じ仕事を20才の安い給料で行う方が会社としては正しいです。なので、年をとった普通のプログラマは姿を消していくんじゃないかな。

それから、


結婚して妻子がいて、そういう勉強の時間があまり取れないって人もいると思う。そういう人達にプログラマはもう無理だねと言ってしまってもいいのだろうか。

 僕は、結婚して妻子がいて、あと数年で40ですが、そこそこ勉強しているつもりです。でも、昔ほどじゃないですが。まあ、もっと言えば、勉強って何?僕は勉強しているつもりはこれっぽちもないけどね。

と言いつつ、受託開発の現実は知らないので、本当に病んでいるところあるのかも。



2010年2月3日

高速道路無料化って・・・

本当に高速道路の一部無料化するんだ。無料化になるところに、西湘バイパスとかあって、月に2回ぐらい使っています。でも、そこそこ、混むんだよなー。特に、横浜方面の出口は2車線が1車線になるので、休日はかなり渋滞します。もっと混むんだろうか?いやだなー。新湘南バイパスはよくわかりません。車が一杯走っているのをみたことがありません。

さて、西湘バイパスって、ETCで200円ぐらいだったと思うんですが、月に数回乗るだけであれば200円が無料になったってあんまりうれしくはありません。伊豆に行く途中で2、3キロでお金を取られるところがありますが、それは高いと思いますが・・・。

東名が無料になればうれしいですが、それはないでしょう。お金をとってもいいので、さっさと第2東名を作って、できれば制限時速を160km/hぐらいにしてくれればいいのに・・・。160はさすがに無理か。140でお願いします。

ありえるえりあ勉強会#2 テスト編

先週金曜は、「ありえるえりあ勉強会#2テスト編」でした。今までと言うか、アリエルはなぜか他と一緒に何かをするというのが少なかったですが、今回はウノウと共催で、テスト番長を迎えての開催でした。僕は昔からテスト番長のファンだったので、「テスト番長に会いたい!」というのが勉強会の一番の理由かもしれません。

勉強会の資料は公開されているし、にこにこでも配信されているので、詳しい内容はそれを見てもらえれば分かると思います。今回はちょっと欠席率が予想より高かったのが残念です。多分、年末に募集を開始したのがまずかったのかも。年を越せば忘れちゃいます。それから、来てもらった人が満足したかどうかは、よく分かりません。好意的な反応をくれた人もいますが、日本人は悪口を言わないので判断が難しいところです。アリエル側の発表は途中から急に難しくなったので、ちょっと心配です。

正直に言うと、僕はテストについてよく分かりません。プログラマーの気持ちは分かるつもりなんですが、テストについてはまだ、試行錯誤です。何をやるべきで何をやらなくてもいいとか、リソース(人)の配分をどうするとか、分からないことばかりです。今回の勉強会というか、テスト番長にあえば少し分かるかな?と期待しましたが、結局謎のままでした。

オフトピックとしては、

 * ウノウはスキンヘッドのおにいさんが沢山いるらしい。

 * ウノウに入るとスキンヘッドにさせられるという噂も。

 * ウノウに行くと、特攻服をきたスキンヘッドのおにーさんが事務所の部屋に優しく案内してくれるらしい。そこから、その人が無事に出られたかどうかは僕は聞いていないので分かりません。



2010年2月2日

websocketsのpipeline

websocketsでpipelineの記事を読んでいて、とってもおもしろいです。と言うか、やっとちゃんと読み始めました。なにやらすごそうらしいと聞いていましたが、何なのかさっぱり分かっていませんでした。と言うか調べようとしてませんでした。
基本はwebsocketsでだらだらとデータを送信して、ぽこぽこと受信したデータを処理して表示すると言うものらしいです。まあ、データの受信を待たずに非同期で送信する感じ。さて、この記事を読むとwebが速くなるらしいです。自分で計測していないし、コードもちゃんと眺めてはいないのですが、ざっと見た感じは正しそうに見えます。

websocketsについて初めて聞いたとき、「それってHTML5じゃなくてHTTPの拡張じゃない?」と思った後に、「なぜHTTPにこだわる必要があるんだろう?」と。で、先ほどの記事をよんで、やっぱり「HTTPである必要性って何?」と。既存のインフラがそのまま使えるとか、そういうことは分かるんですが・・・。HTTP over WebSockets見たいな感じかな?P2Pの頃に、物理ネットワーク上に仮想ネットワークが形成されているという話がありました。結局、そのころのそうした仮想ネットワークのデジャブーを感じてしまったりします。で、websocketsはとってもおもしろいなー。ブラウザとライブラリ(クライアントの方ね)の対応がもっと進んで、互換レイヤーみたいなのを介してシームレスにwebsockets(みたいなもの)が扱えればいいな。まあ、HTML5のwebsocketsを直接処理してもいいんですが・・・。

何の結論もない単なる感想でした。

Avatar 3Dみました


Avatarを見ました。もちろん3Dです。この手の映画は割と好きです。嫁には、「おばかな映画が好き」だとよく言われますが、その通りかもしれません。Avatarは反米・反軍という噂もありますが、難しいことは考えずにみるのが一番です。

さて、今回は3Dがいたる所で騒がれています。僕も3Dの映画を見るのは初めてですが、以前にも3Dの映画はあったと思います。なぜ、今回はこんなに騒がれているのでしょうか?全国規模で3D映画を推し進めたからなんでしょうか?これはこれですごいことだとは思います。

映像で言えば、一番最初にジュラシックパークを見たときはびっくりしました(古い?)。恐竜たちが生きているように歩き回っていました。今となっては普通なのですが、当時はとてもびっくりでした。まあ、僕が恐竜好き(正確にはゴジラが好き)だったのもあります。3Dも確かにおもしろいのですが、実はジュラシックパークほどの衝撃はありませんでした。映画としては初めてでも、ある程度3Dの映像は見たことがあるからかもしれません。

で、衝撃はありませんでしたが、3Dは確かに迫力があっておもしろいです。一度見れば、やっぱり映画館では3Dでみたいなー、と思います。少なくとも家ではまだ見る機会がないし、家であんな変なめがねを掛けてまで見る気はまだしません。映画館まで足を運ぶ理由にはなります。

で、唯一どうかな?と思ったのは字幕です。字幕を見ていて気分が悪くなったりしないのかな?あと、字幕を読んでいると3D楽しめるのかな?と。特に縦書きの字幕の時にそう感じました。あと、時々字幕の方が目立ちすぎる感じがしましたが、どうなんでしょう?