今月の Software Design : 2013/02 (その4)

 「今月の Software Design 」の2月号の投稿第4回目です。

 ところで 前回の投稿 で、僕が Trema について喋ったイベントを開催した会社の名前を伏字にしましたが、内容から敢えて伏せるほどのものでもないので言ってしまいますと「グリー」です。

 グリーと言えばアプリ屋さんと思われるかも知れませんが、実は巨大なインフラ基盤を持っている企業でも知られています。どれくらいの規模かというと、同社は昨年だけで推定で約 400 億円規模の予算をインフラ投資に割いています。

 上場企業が毎年提出している有価証券報告書なる書類によると、販売費及び一般管理費で約 624 億円を計上しています。ここから高給取りで知られる同社社員の給与の約 102 億円をまず引きます。そして六本木ヒルズの賃借料や備品の購入費用、そして役員報酬(夏野さんへのお布施代を含む)が合計で約 20 億円でこれを引きます。ここには、非正規労働者への給与や各種福利厚生に伴う費用は入っていませんが、非正規労働者が正規労働者と同額の給与をもらっている計算でも 20 億円も行きません。残りの 400 億弱のどれほどがインフラ設備に使われているかはわかりませんが、他に使うあては見当たらないのでこの大部分が使われていると思って間違いないでしょう。とすると、人件費の 3 倍以上の費用をインフラ投資にまわしているわけですから、凄まじい規模です。

 恐らくグリーほどの企業であれば、OpenFlow 導入は経済的な面では問題では無いでしょう。NTT データさん、NEC さんチャンスです。グリーを OpenFlow 漬けにしてやりましょう。そしてグリーさん、OpenFlow 導入の際には是非 Trema を!

 というわけで本題の SD 記事について、今月も以下のフォーマットで、各記事の要約と感想を書いてゆきます。

 

・記事のタイトル
( 1 行目 ) 記事の要約
( 2 行目以降 ) 感想

 

・Samba 4.0.0 がやってきた

 Samaba 4 の新機能 ADDS (Active Directory の Domain Service 機能) の実装についての話と、これまでの Samba の開発についての振り返りの話。そして、Samba4 のインストールと環境設定についての紹介をしています。

 記事によれば、Samab 4 の開発が開始されたのが 2003 年で、リリースされたのが 2012 年の 12 月と、ほぼ 10 年の歳月を要しています。記事を読む限りでは、どうやら ADDS の機能があまりに複雑で、且つこいつをいじるための MS の仕組みが公開されていなかったために、開発が難航していたみたいです。ただ、Samba はそんなに頑張らなくてもいいんじゃないかと思えてしまいます。

 Samba は元々、Unix 系のシステム向けに開発された Windows と相互運用するためのソフトウェアですが、Windows なんていうオレオレ実装の得体の知れないものにこれ以上付き合ってやる(譲歩してやる)必要は無く、相互運用したいなら向こうがオープン規格に則って実装すべき、と個人的には思っています。またファイル転送だけであれば、幸い Windows からも NFS クライアントは使えますし、Windows Server においては NFS サーバも利用できます。

 ただ Samba の仕事はファイル転送だけではないですし、Samba の開発にはかつての FSF の大物も開発に関わっており、Samba が非常に有用かつ優秀なツールである事は疑いようがないので、無闇に不要論を唱えるつもりは全くありませんが、アプリレベルで MS なんぞと連携してやるのは腹立たしく思えてなりません。

 

 

FreeBSD 正式認定の狙い

 NEC が販売する Express 5800 シリーズのサーバが、BSD コンサルティング株式会社が発行する Free BSD 認定なるものを貰ったよ。という内容の記事です。

 かつて RDBMS 全盛の頃、Oracle が自社で開発しているサービスをどれくらい使いこなせるか、またどれくらい熟知しているかを測る資格ビジネスをやっていました。技術のよくわからない IT 企業の人事担当者の心をくすぐる非常に上手い(汚い)ビジネスで、当時もてはやされていた記憶があります。

 この記事のタイトルを読んで「BSD コンサルティングも、そんなえげつない商売始めちゃうんだ…」と一瞬思ったのですが、記事を読んでみると、どうやら NEC から単なる保守契約をさせられただけなんじゃないかと思える内容になっています。

 NEC としても、意外に利用されている BSD について、問題があったら専門集団に任せたいところでしょうし、BSD コンサルティングとしても知名度や事例を上げるために貢献したいところでしょう。

 

 

IPv6 化の道も一歩から

 IPv4IPv6 で何が違うのかについてのお話。ネットワークレイヤにおける違いについての話だけでなく、DNS などのアプリレイヤにおける違いについて、10個の具体的で詳細な違いを解説しています。

 IPv6 との違いについて、要点を絞って分かりやすく解説してくれています。IPv6 と言えば、ソフトイーサVPN サービスが IPv6 対応してから速度が急に出るようになったという話を聞きました。調べてみると、IPv4 のパケットは一旦大手町まで行くんだけど、IPv6 のパケットはつくばの中継地点から返ってきてたんだとか。

 この記事を読んで思ったのが、第二特集で解説されている上手い説明を体現させたような記事で非常に関心させられます。

 

 

・Emacs64bit化計画

 COM を使って Excel を操作する処理を e-lisp で書く話です。まず Perl で記述した場合について見せて、どんな処理が必要なのかといった処理の流れについて示しています。そして COM の処理を行う C プログラムを書き、それを e-lisp から操作するための処理について解説しています。

 vim ユーザの僕としては、毎月 Emacs のディープな話が書かれた記事を読むのはしんどいです。でもこの記事は「Perl で書くとこんな感じだよ」という例を示し、それを e-lisp で書きなおしてゆくというスタイルなので、内容が非常にわかりやすいです。そして最後に、ここで作成した記事の使い方について示しています。記事では字面だけで、インパクトが薄いように感じますが、e-lisp から Excel をいじるとかめちゃめちゃワクワクさせられます。「Windows プラットフォームでの開発なんて...」とか正直思ったりしていますが、この記事を読んで COM コンポーネント技術にかなり興味を持たされました。

 

 

・開眼シェルスクリプト

 Maildir に格納されたメールに対して、オリジナルのフィルタールールを設定してメールを振り分けるスクリプトの紹介をする記事。

 記事中で使っている usp-Tsukubai を使ってみました。Tsukubai は USP Lab (Universal Shell Programming Laboratory) が開発を行なっているユーティリティ群で、主にデータベース用途向けのものになるそうです。データといえばバイナリというある種の固定観念みたいなものがあったので、新たなパラダイムのようで非常に興味深いです。

 早速ダウンロードして使ってみます。GitHub からダウンロードして、インストールします。ドキュメント (README) を見ると「 "$ make install" しろ」と言っています。全く automake も使われて無いのか(┐(´д`)┌ヤレヤレ)と思いつつ Makefile を見るとギョッとします。仮想ターゲットしかありません。これが Makefile である必然性がどこにあるのか!? っていうかそもそもビルドしてなくね!?? っと思ったら、公開版は同じインターフェイスのコマンドを Python で再実装したものだとか(そりゃ automake 要りませんよね)。

 Tsukubai を使った例では、[ "$(plus PIPESTATUS[@])" -eq 0 ] でエラー判定を行なっているのにはちょっと感動しました。特集でも触れられたように、パイプライン中のエラーは、終了ステータスコードが格納された特殊変数 "$?" を参照するだけではわからないので、ここでは plus を使ってパイプライン処理中のステータスコードの和をとってからゼロチェックしています(ただ別のサンプルでファイルが空かどうかの確認に Tsukubai の gyo コマンドを使っていましたが、あれは普通に test でいいんじゃなかろうかと思いました)。

 なお usp-Tsukubai が提供する各種コマンドのマニュアルは、本家のページ(https://uec.usp-lab.com/tukubai_man)から見ることができます。

 あと ${val:n:m} で文字列操作ができることを知らなかったので、非常に参考になりました。これまで同様の処理を行うために、わざわざ cut コマンドを使って行なっていたので、これを使うと短い記述で済みます。