インターネット

プログラムはコミュニケーションツール

■人と話すのは好きだ、だけど…

僕は小さな頃から、人と話すのは好きでした。特に、自分自身と興味関心が近い人と会話する事が非常に楽しく、時間を忘れて話し込んでしまう事もしばしです。

また、中学生の頃にアマチュア無線をやっていたせいか、10代の頃から年齢が何倍も上の人と話す機会も少なくなく、その時の年齢では得難い知見をたくさんいただきました。

しかし、この1年で気づいた事がありました。自分から話を振る事はあっても、人から話を引き出すのはあまりうまくない、と。

■直接の会話ではどうも解決しない

人の話をなぜ引き出せないのか。振り返りますと、僕は話し出すと押しが強く、かつ矢継ぎ早に言葉が出てくるように、はたからは見えるようです。だから、それを上回るペースや、よほど念が体から発せられるような存在感の強い人でない限り、僕には「話は聞いてもらえないだろう」と思われるのです。

最近は、自分の話している事が通じないだろう、というどちらかというと消極的な理由で、あまり話さないようにしています。人の会話は、1割も伝わっていればいいということです。たくさん話したところで自分が想像する程伝わってはいないのです。

しかし、これは自分の話す量を制御するだけであって、相手から話してもらう量が変わる訳ではありません。相手の話を引き出すための手法としては失敗しています。

■プログラム開発を通じて人から話を引き出せる

プログラム開発、そして出来上がったソフトウェアを世に広める行為は、開発者の自己主張であるというのが一般的な見方であります。これは主にWebサービス開発やオープンソースソフトウェア開発に言える事でしょうが、受託開発であっても言われるがままという事はありません。

それと同時に、ソフトウェアを通じて利用者から「意見」「感想」そして「苦情」といったフィードバックが届きます。ソフトウェアはコンピュータやネットワーク上で動く道具ですから、使えばフィードバックが来るのは当然です。

これです、これなら自然と相手から話を引き出せます。これに気づいて以来、僕はプログラムと自分自身の関係を聞かれると「プログラムは世間とのコミュニケーションツール」と捉えるようになりました。

■最近は会話が減った

最近、仕事をしていて会話が減りました。いわゆる上流工程のSEをしているので、要求定義を行う上でのステークホルダーとの会話やプログラマとの情報交換はありますが、それは必要最低限のこと。プログラムを書く仕事はもうありません。ですから、自分でプログラムを書く時間を作らなければなりません(※1)。直近では大学院の講義で出たレポートを仕上げる際や、新しい技術を確認するために書く程度です。

しかし、これでは不足している。4年前のシムエントリのように、自分自身でプログラムを書き、ソフトウェアを世に公開しなければならない。最近、そう考えるようになりました。プログラムを書けば、また広く世間の方々から意見をいただけるようになるのではと思うからです。

■ソフトウェア開発は少人数でいい

多くのソフトウェアは、とりあえず書ける人を山ほど集めて取りかかるより、敏腕のプログラマが数人集まってささっと書いてしまうことがうまくいきます。そのような体験をされた方は少なからずいらっしゃるはずです。

僕もSEという仕事をしておきながらあれなのですが、正直な所、自分を含めて少人数でプログラムを書き、商品をリリースするほうが効率も良く、より世間の役に立てるのではないかと考えています。僕がやる事は、人をまとめたり指示する事ではなく、出来上がるソフトウェアの品質に責任を持つ事だと自覚しています。それなら、尚更コスト上の「オーバーヘッド」である管理だけの仕事というのは、無駄な気がしているのです。

これは、ソフトウェア開発のマネジメントを放棄しているのではありません。要求定義をはじめとしたソフトウェア開発として向かうべき方向を定め、必要な知識を獲得し、最終製品を作り上げる責任は、変わらずに負うのです。ソフトウェアを自分自身も書いていれば、そのソフトウェアに対してより深く理解するでしょうし、また多くの人とコミュニケーションが出来るのではという期待があります。プログラマによって関わる工程の幅が変わる、それだけの事です。

それが、僕の考える「普通の開発」です。

※1 プログラムを書く行為は、筋トレと同じで続けていないと知識が腐っていきます。文法やライブラリは見れば思い出せますが、プログラムを書く時の「型」を忘れて行く事で書けなくなるのです。


2011/08/31 を持ってシムエントリの運用を終了します

2008年2月より運用しておりました『シムエントリ』は、2011/08/31をもってサービスを終了します。

■お願い

折角ブログパーツを貼付けていただきましたが、こちらを外していただけますでしょうか。外し忘れられている場合は、2011/09/01より『サービス終了』の旨のメッセージのみを出力する予定です。

登録いただいているブログのURI情報は、サービス終了を持って削除されます。改めて削除申請を行っていただく必要はありません。

■背景

端的に申し上げますと、メンテナンスを行う意欲と時間が確保しづらくなったのが背景です。折角使っていただいている方がいるのですが、放置するのもどうかと考えまして、サービス終了を決断しました。

また、現在は Tospy をはじめとした優秀なソーシャルメディア検索エンジンも登場し、その中に類似度の高いブログを抽出する機能があります。そちらの方がリアルタイム性も高く、かつ性能も上です。私の開発したツールではとても力が及ぶものではありません。

■最後に

本サービスをご利用、および応援いただいたみなさま、どうもありがとうございました。私自身も、自然言語処理の学習の一環としてこのサービスを提供していましたが、教科書だけでは得られない様々な知識を得ることが出来、非常に有意義でした。

また、何らかしらのサービスを開発した際には、どうぞよろしくお願いします。


hbstudy#18 で GPGPU サーバの選び方についてLTしました

11日は、株式会社ハートビーツさんが主催する 「hbstudy」 のLTにて、『写真で見るGPGPUサーバの選び方』を発表してきました。

■資料の補足

最近、グラフィックボードをベクトル型コンピュータのように活用するGPGPUという言葉が聞かれるようになりました。もともとGPUは3D描画を支援するハードウェアとして、主にゲーマーの方々に普及していました。3Dは単純な繰り返しの計算が非常に多いのですが、これは物理演算や類似検索を行う時も同じ。そこで、 CUDA などのAPIの整備とともにGPUを安価なベクトル型計算機として用いることが盛り上がっているようです。

さて、最近のCPUで100Wを超えるTDPになるものはハイエンドのものばかりですが、GPUはミドルレンジも100W台のTDPであり、結構な電力量と発熱量があります。そのため、ただ単にPCI Expressの拡張スロットに挿そうとしても、すんなり行かないことは珍しくありません。

そこで、私が GPGPU のシステムを構築する際にいろいろ悩んだ部分の一部をLTにまとめて、 GPU はどういうものがあって、サーバはどういう構造がある、だからこういう点に気をつけて機材を選んでみてください!という発表をしてみました。 GPGPU を始めてみたいけど、どういったサーバを用意すればいいのだろうとか、 1U/2U サーバでどうやったら GPU は搭載できるのだろうか検討してみたいという方の力になれば幸いです。

ちなみに、大規模かつハイエンドの GPGPU コンピューティングを行う場合はこの資料では対応しきれないもっとディープな話がたくさんあります。例えば、科学計算のクラスタや、レンダーファームの構築を行う場合は、この内容だけでは対応しきれません。その際、設計する方は、データセンターのファシリティからアプリケーションの実装の癖まで、しっかり垂直統合して考えて行くことが求められます。

■頂いたお話

GPGPU のプログラミングができるエンジニアはどれくらいいるのか?」。根本的な問題を指摘されてます…。本格的にやろうとするとバッドノウハウがいろいろありなかなか難しいのですが、 NVIDIA のこの2〜3年くらいに出た GPU (GeForce 9800とかで十分)を搭載したマシンで単に CUDA の API を叩く…例えば自然言語処理でよく用いられる TF/IDF を求める計算を行ったりすると、その威力を身近に感じることができるはずです。また、いい例かは悩みますが『Cracking Passwords In The Cloud: Amazon’s New EC2 GPU Instances ? stacksmashing.net』も GPGPU を要領よく使った例の一つです。

最近の GPU は、ストリームプロセッサ(計算部分)数が安いものでも 100 個程度、ミドルグレードなら 400 個以上あります。単純比較はできませんが、 Core i5 の同時4スレッドなんてのは「屁でもない」パフォーマンスを叩き出します。取り急ぎ始めてみる場合は、外部電源端子接続不要な GeForce の 1万円台のものをポンと買ってきてちょちょいと取り付けるのが一番手軽だと思います。

■勉強会の様子について

今回はライブドアの伊勢さんによる『インフラエンジニアに一言』がメインセッションでした。インフラに関する特殊な技術を解説するという形ではなく、どちらかというとこの20年くらい、伊勢さんの経歴をなぞりながらテクノロジーがどう遷移しているか、おさらいをするようなセッションだったのが印象的です。3Dの話もあったのですが、その際にレンダーファームの話題もあがっており、LTの際にこんなレベルの話をしていいのかとちょっと悩みました(苦笑)。

LTのセッションは8名もの登壇者がおり、僕は1人目立ったのですが、持ち時間5分ギリギリでした。皆さんも5分を目一杯使って、様々なパフォーマンス(あえてプレゼンとは申しません!)を繰り広げられていました。LTはメインセッション登壇に比べてずいぶんと敷居が低いですし、簡単に登壇申し込みできる場合が多いので、皆さんもぜひ挑戦してみてください。5分に凝縮して話すのは、意外に知恵がいりますよ!

あと、いちびりな方へもう一言。100人に名刺交換をするより、1回のLTのほうが、自分の存在を広く伝えやすいです。

■最後に

はじめての参加でしたが、ハートビーツの皆様に大変お世話になりました。また、セッティングおつかれさまです。どうもありがとうございました。

Togetter – 「hbstudy#18 「インフラエンジニアに一言」 ライブドア 伊勢 幸一さん」
Togetter – 「hbstudy#18 LT~懇親会」

1 Comment more...

bpstudy#38 で VMware HA の中小企業での導入事例を紹介しました

株式会社ビープラウドさんが主催する勉強会 “bpstudy” のLTで『VMwareで手っ取り早く社内システムをHAサーバ化してみました』を発表してきました。

■ポイント

今回の発表のポイントは2点あり、ひとつは「HA構成が楽に組める」、もうひとつは「中小企業でも業務別に細かくサーバを立てられる」ことです。

先ず一点目のHAですが、 VMware vSphere をお金を出して買う最大のメリットはここではないかと考えています。シングルサーバで仮想化するなら、今回の本発表で長谷川さんが解説されたKVMをはじめとした様々な無償のものが選択できます。 VMware でさえもハイパーバイザーだけなら無償です。ただ、1台で運用していれば、サーバ本体が故障すると全ての仮想サーバも共倒れです。物理サーバ単独で運用しているより被害が大きくなることさえあるかもしれません。そこを、機材を冗長化することで、再起動こそ挟むもののすぐに業務が復帰できるHA構成を全ての仮想サーバに対して施すことができるのは、管理をしている現場の人間にとってこれほど業務的・精神的に楽なものはありません。

そして僕が最も強くつたえたかったことは、二点目の中小企業におけるプライベートクラウドの可能性についてです。これまで仮想化を売り込むベンダーさんは「大量にあるサーバを少数のサーバにまとめられるからTCO削減できてウマー」を中心に提案されていました(例:『日本HP HP ProLiant VMware 仮想化ソリューション – 導入事例』)。では、サーバ台数が少ない中小企業にメリットはないのかという話になるのですが、探しても事例が余りありませんでした。

中小企業は、ITインフラに投資できるコストも制約され、もし投資できても設置場所や電源確保に苦心することが多々あります。中小企業で、立派なサーバルームが確保できるところってあまり無いと思うんです。サーバ台数が少ないと、必然的に1サーバあたりが支える業務の個数も増えて、ひとたび障害が起きると切り分けは面倒だし、回復するまでそのサーバに乗っかっている…それも障害を起こした業務と関係のない業務まで止めなければならなくなることも珍しくありません。

そこで、小さいながらも社内プライベートクラウドを立ち上げることで、シンプルに業務を切り分けて運用を楽にしようというのが、このシステムの特徴になります。

■書いていないけど話したこと

プログラミングと違い、インフラ整備=投資であります。ですから、導入計画策定は会社のお財布を管理している経理の人と二人三脚です。減価償却、支払サイト、そして計画の妥当性に対する最後の一押し。この「最後の一押し」が無かったら、こうして発表できる状況になっていなかったのかもしれないのです。本計画に協力してくれた経理の先輩(女性)に大変感謝しています。

インフラ仕事は、自分の上長に説明することはもちろんですが、会社全体を巻き込んで物事を進めることなのだということをを忘れてはなりません。特に、中小企業であれば、全員の顔が見える訳ですから。

■頂いたお話

一番大きかったのは、「ディスク11発は大丈夫?」ということです。ディスクの寿命は大体同じ時期に来るのですが、故障すると次々とまとめて落っこちるのじゃないかという。これは、スペアを1個は入れて入るものの、導入時に少し不安には思っていました。可能であれば、わざと数本ある時期に入れ替えてみてはどうか、というお話を頂戴しました。予防保守ってやつですね。

■反省点

本発表である @hasegaw さんのKVMのアーキテクチャの話の後だったので、ネタ的に外してなくてよかったです。発表後にいただいた tweet を見て、良かった、と心から思いました。

今後の改善点は2つ。説明が10分で終わらなかった。そして、あまり笑いが取れなかった。ことでしょうか。

今回は早口でしゃべりすぎました(苦笑)。次は笑いが取れるようにがんばります!

■他の発表の感想・メモ

@hasegaw さん

  • AMDとIntelの互換性の問題について
    Xenだと、CPU依存の命令のマスクが可能。VMwareでもできるかも(今度調べます)。こうすれば移行時に動かないってことは回避できる。実はAMDからIntelに動かした時に動かなくてはまったことがあったのです。
  • Nehalem 未満ならXen それ以降ならXenでもKVMでも
    VMWareは歴史が長いので、CPUID別に細かく仮想化の制御方法を切り替えていて、それぞれカリカリにチューンしてある。

@kazunori_279 さん

  • Google Apps Engine のチャネルAPI … Google waveでできたことを自分の手元でできて面白そう!
  • Googleのスケーラビリティが高度に洗練された環境でできるところがポイント。

@toshiak_netmark さん

  • 一眼レフデジカメの話は、一家言ありそうな人が周りに一杯いてウケたw もちろん僕も。
  • KVM 夏の怪談(トラブル事例)が興味深い。ハードリンクで逃げる方法は覚えておく。

■おまけ

グループライド練習会で何度かお会いしたことがある人に、はじめてヘルメットなしでお会いしました。最初、お互い誰かはっきりわからなかったのは、ちょっとした笑い話。今回も、 @key3 さんつてでこの催しを知って参加しました。そして、初めての参加なのにLTの機会を設けていただいた幹事の @haru860 さんにとても感謝しています。

発表に拍手を送っていただいた皆様、その後の懇親会でご一緒させていただいた皆様、どうもありがとうございました。またよろしくお願いします。

Togetter – 「BPStudy#38」 – twitterでの当日の模様

コメントは受け付けていません。 more...

【シムエントリ】更新時刻が変更になりました

シムエントリご利用の皆様へお知らせです。

■更新が1日2回になりました

これまで、更新は午前2:00からの1日1回のクロールのみでしたが、10月18日(月)より1日2回体制に変更しました。更新時刻は、2:30と16:30となります。クロール完了から類似ブログ計算まで4〜5時間を要しますので、実際に反映されるのはその計算後となります。この点は変更ありません。

これは、クロールおよび計算を行うサーバを自宅サーバから外部のVPSに移設したことによるものです。

今後は、クロール回数の増加、および計算をすべて行わずずリクエストベースで行う形に変更し、より素早く反映できるようにしようかと考えております。気が向いたらやります。

【おまけ】

・なぜ2:30と16:30なのか

まず、グラフをご覧ください。

BlogPosts

これは、シムエントリのサーバに蓄積されているブログ記事が更新された時刻のみを抽出したものです。縦軸が記事数、横軸が時刻(時)です。これを見たところ、1〜2時頃に1回目の落ち込み、16〜17時頃に2回目の落ち込みがあります。

1回目を2:30にしているのは、この時間は1:00頃に計算しても結果が出る6時頃は見ていただける方が少なくわざと遅らせて7時頃の反映を狙っていること、そして16:30はちょうど落ち込んだところを狙いつつ21:00頃のピークタイムに反映されている状況を見てもらいやすいようにしたためです。

・VPS移行のメリット

家で使っているマシンよりも最近のVPSのほうがいいマシンであること、そして電気代が下がることであります。

RSSフィードの登録受付も引き続き行っております。下記からどうぞ。

http://se.koemu.com/

コメントは受け付けていません。 more...

  • 自己紹介


    昼は要求定義からインフラ構築まで担当するサーバサイド技術のSE、夜は焼酎をこよなく愛す兄ちゃんです。
    >> プロフィールページ
    >> メール送信フォーム
    ※コメントは承認制です。公開されるまで少々お待ち下さい。

  • Blog Parts

    track feed

    Copyright © 1997-2012 Yuichiro Saito All Rights Reserved.
    iDream theme by Templates Next | Powered by WordPress