2009年8月3日月曜日

「良いもの」より「値段のつけやすいもの」

「なぜ、良いソフトウェアを作ることにこんなに力を入れないのだろう...。」
これは私が大学を卒業してソフトウェアを製作する会社で働いて最初に思った疑問でした。

「ただ、プログラムが書ければ良いわけではない」これは今時学生プログラマーであっても百も承知なことでしょう。どんな本にもドキュメントやユーザーマニュアルが大切だということは書いてあります。また、良いオープンソースプロジェクトではこれらが充実している(こともある)ので実践している人も多いでしょう。

しかし、最初に会社に入ったときショックであったのは「良い」ものよりも「形式の整った」ものであることが重視されていた点です。
しかも、形式に関するマニュアルや形式を整えるためのツール類が無く「以前のプロジェクトの形式に合わせて。」というのが唯一のマニュアルになっていたのが何より衝撃でした。

例えばプログラムの詳細設計にあたる関数の説明まで全てwordで書いていました。doxygen等は使いません。また、バージョン管理もバージョン管理システムを一切使わず共有フォルダ上で上書きで更新。リリース事に手作業で番号を振ってzipで固めていました。
それ以前にdiffもpatchも現場から管理職まで通じないのでバージョン管理システムの導入も不可能に近い状態でした。驚くことにプログラムのコメントのフォーマットはdoxygenスタイルなのですが、全員doxygenを使ったことがないのでだれもドキュメントにしたことがなく一部のタグは完全に間違った意味で使われていました。

また、これらの非効率な作業はその非効率性に判して几帳面なまでの厳格さをもって行われていました。そのため、ドキュメントのフォーマットは決まっていないのですが、レビュー時には以前のドキュメントの形式に沿っていない部分をきちんと指摘されました。当然追加作業が発生し、残業が増えます。つまるところ「空気をよめ」で作業が行われていたのです。

なぜこんなことになっているのか、当時理由をいろいろ考えてみました。
  • 技術の分からない人がルールを決めている。結果ツールで管理すればいいことを手作業でやっている
  • 技術力のある人は会社に失望し転職している。
  • そもそも会社にとって良いソフトウェアを作成する動機が無い。


私が最終的な結論として導きだしたのは「そもそも会社にとって良いソフトウェアを作成する動機が無い」ということでした。

上記で挙げていたフォーマットが決まっていないが、前例に沿ったものにする。という方法は「技術の分からない人間が発注し、最終的な評価をする」という場合には極めて重要であることが後に分かったからです。

ソフトウェアに詳しくない会社では、発注者は技術が分かっていないのでルールやフォーマットをうまく作ることができません。また、担当者にそれらができたとしても、さらに何も分かっていない上司や部門の査定を通過する必要があります。

こういったケースにおいて良いソフトウェアを作る努力や工夫の多くは「理解不可能で値段のつけにくいもの」と評価されます。一方で「前例に沿ったものにする」という努力は「理解しやすく値段のつけやすいもの」と評価されます。

技術に詳しい人間がおらず、予算の縛りがきつい会社では管理職は「良いもの」より「値段のつけやすいもの」を好みます。後で説明がつかないものに予算を使うと責任問題に繋がるからです。

ですから私のいた会社も売っていたものはソフトウェアではなく、「前例にそった作業でソフトウェアを作ること」そのものを商品にしていたのです。なぜならお客さんはそれに値段をつけ買ってくれるから。もしかすると「フォーマットに沿った作業でソフトウェアを作ること」よりは難易度が高く、我々の商品にはそれなりの値段がついていたのかもしれません。

今は幸いにも転職し、良いソフトウェアを作ることを重視する職場(すくなくとも自分はそう感じる)で働いています。
技術に無理解な人間が上層部に少ない組織であればそれもまた可能であることを知りました。
社会人になってから勉強することは本当に多いです。

2009年5月16日土曜日

街中で感じる景気

最近不景気が続いています...。

週末の東京を歩いての感想(2009/5/16)。

青山、丸の内とかのブランドショップはガラガラ。
ランチタイムに1000~3000円の値段でゆったり時間を使えるレストランは結構混んでる(品川、天王州アイル近辺)
繁華街の土曜夜の人出はあいかわらず多い(渋谷)

高い物は売れないけど、それなりに外出歩いたりはしてるのかな。

2009年3月12日木曜日

Fineprint で OKI プリンタ B2200n を両面印刷プリンタとして使う

最近不況とともに会社でもカラー印刷禁止が言い渡されました。

我が家でも1年程前からモノクロレーザープリンタ OKI B220n を導入しています。
さらに片面印刷プリンタを両面印刷のように使えるプリンタマネージャ FinePrint ver5 も導入済みです。
それも、まだ好景気の時からです、私にも先見の明があったと言えましょう(ウソデス印刷した紙を置く場所が無かったので両面2upで印刷する必要があったのです)。

今回はこのプリンタ B2200n とプリンタマネージャ FinePrint を紹介したいと思います。

OKI B2200n は沖データから2007年に発売された超小型&高速のモノクロレーザープリンタです。


この当時SOHO&個人向けにDELL, HP, ブラザー 等からポータブルなモノクロレーザープリンタが多数発売されたので、この商品もその流れに乗ろうとした商品の、一つだったのかもしれません。

このプリンタの素晴らしいところはなんといってもそのサイズにあります。321×204×181mmというサイズは半端ではなくオライリーの小型サイズの本より低く、給紙トレイを除けば奥行きも同じ本の高さより短くなります。



プリント性能も申し分なく毎分20ページ、つまり三秒で一枚の印刷が終了するというのはレーザープリンタならではと言えるでしょう。
モノクロプリンタで私は困ったことがないのでこれだけ揃えば私には十分です。主に印刷しているのはマニュアルなどのドキュメント、Google MAP、食べログの店舗情報等ですがこれらは特にカラーである必要がありません。写真を印刷しない人ならおそらく問題ないと思います。

ただし、このプリンタ両面印刷機能に対応していません。さらにドライバにも両面印刷機能が無いので、wordのように偶数ページ、奇数ページのみ印刷ができるソフトウェア以外は両面印刷ができなくなってしまいます。これ、非常に私には大きい問題で、片面印刷 + 高速プリントのコンボで一瞬のうちにプリントした紙の置き場所がなくなってしまうことになるのです。

そこで FinePrint の出番になります。 FinePrint はアメリカの FinePrint Software, LLC で作られたプリンタ用紙節約用のソフトウェアです。
日本では日本システムディベロップメントが販売しています。
http://www.nsd.co.jp/share/fineprint/

FinePrintをインストールするとアプリケーションからはプリンタドライバとして見えるので、どのソフトウェアから印刷を行っても最初にFinePrintのソフトウェアが起動し、片面、両面印刷の設定、一枚の紙に印刷するページ数の設定、さらにぺージ順の変更や削除がプレビュー画面を見ながらできます。
この機能が本当に便利で、片面印刷プリンタを両面プリンタとして使うことができる上に、webサイトなどの印刷でよくある、最後にほとんど白紙のページがまるまる一枚印刷されるといった無駄を防ぐことができます。エコですエコ。


両面印刷プリンタを導入するコストが省け、さらに細かい設定で印刷量を削減することができる FinePrint は不況時代を乗り切る必須アイテムと言えるでしょう。
プリンタもしばらくは OKI B2200n を使い続けるつもりです。カラーインクジェットよりモノクロレーザープリンタはインクカートリッジ安いし、長持ちするし。
まあ、Kindle2 買って一気にペーパーレス時代に突入してしまうのも有りなのですが...。

なお、FinePrint 5のVista 対応については、どうやら設定を少しいじることで使えるようです(下記のページに紹介がありました)
http://www.koutou-software.co.jp/junk/customize-vista.html


2009年3月5日木曜日

金融工学批判について思うこと

最近世界経済がえらいことになっています。
特に金融工学がやり玉のひとつに上がっているので初歩の統計しか知らない人間ながら思うことを書いてみました。

金融工学もみんなが普通に使ってる平均とか、分散と同じで正しく使えば有用な場面はいっぱいある。
でも間違えて使えばえらいことになる。

金融工学は過去のデータとモデルからリスクを求めるものなので、
正しく使えば許容リスクいっぱいまで自分の手持ち資金を流用できる。死蔵金が無くなるので社会も活性化する。
金融工学は今後も生命保険とか、消費者金融、住宅ローン(一般的なもの)には十分適用可能だと思う。

でも、過去のデータが摘要できなかったり、モデルが間違えていたら全然意味が無い。
担保の上に担保を重ねた証券に過去のデータも一般的な商品のモデルも当てはまるわけなかった。


平均体重からエレベーターの定員数を決めるのはありでも
世の中走ってる車の平均時速からパーツの強度決めたらえらいことになる。

そうやって自分の乗っている乗り物を作った結果、世界経済はバラバラに壊れてしまった。
でも、だからといって金融工学そのものを批判するのは間違いなのではないだろうか。

2009年2月28日土曜日

Kensinton の トラックボールマウスに新型が出るらしい


Kensinton のトラックボールマウスに新型が出るらしいです。
SlimBlade™ Trackball
http://us.kensington.com/html/16632.html
なんでも今度はボールをひねるとスクロールホイールの機能になるのだとか。

なお、現行のExpert Mouse®
http://us.kensington.com/html/2200.html

はボールの周囲にリングを配置することでホイールの機能を実現しています。

これはこれで素晴らしい機能なのですが、リングに彫られているローレット部分に手の汚れが溜まるという欠点もあるのです。

私はこのトラックボールを職場用、家用と2つ持っているのですが、とにかく肩こり対策にはすばらしい効果を発揮します。操作性も個人的にはマウスより好きです。

家ではさらにノートPCスタンドなるものを使っているので机の上はこんな風になってしまいました。


ノートPCスタンドは冗談みたいな商品ですが本当にいいです。
いろいろあるけどシンプルで片付けやすいサンワサプライ ノートPCスタンド CR-36がおすすめ。視線が正面を向くので肩こりが本当に減ります。

脱線しましたが、SlimBlade Trackballはいつ出るのでしょう。確か去年の末ぐらいには発表されていたはずなのですが...。それまではExpart Mouseを頑張って使い続けるしかなさそうです(爪楊枝でローレットの汚れを掻き出しながら)。

2009年2月25日水曜日

amazon で RealWorldHaskell の中古価格の方が高い件について

前回のエントリ
プログラムの解説サイトをScrapBook と w3m-emacs で読む
を作成している途中に気がついた







中古価格の方が明らかに高い!
Amazonの洋書だと結構あることのなのだろうか。

プログラムの解説サイトをScrapBook と w3m-emacs で読む

私はしばしば、プログラミング言語の学習をwebサイトを利用して行います。
特に新しい分野の場合、書籍になる前にwebサイトで公開されることが多いです。

しかし、ブラウザとエディタの間を行き来するのはどうにも面倒です。
さらにオフライン環境で読めないのは不便です。

この問題を解消するため、FirefoxのプラグインであるScrapBookと、emacsのマクロemacs-w3mを愛用しています。

まずScrapBookですがウェブサイトをローカルに保存できるFirefoxの拡張プラグインです。
http://amb.vis.ne.jp/mozilla/scrapbook/

firefoxのメニューバーから "ScrapBook -> ページの詳細な取り込み" を選択すると複数階層を指定して取り込むことができます。

emacs-w3mはemacsエディタでウェブサイトを閲覧することができるemacsマクロです。
http://emacs-w3m.namazu.org/

debian Linux ならば
$ aptitude install w3m w3m-el
でインストールできます。

ScrapBookを使って保存したサイトは.mozilla 以下に存在しますのでアドレスバーに表示される file:// で始まるURLをemacs-w3mで指定すればローカルに保存したサイトを開くことができます。

最近はこの方法で Real World Haskell のオンライン版を読んでいます(O'REILLYの洋書も買いました)。
http://book.realworldhaskell.org/

夏か秋ぐらいには訳書がでるらしいのでそれまでに予習しておきましょう。

2009年2月22日日曜日

xmonad と Vimperator で快適netbookライフ

最近筆者は外ではネットブック ASUS EEEPC 1000H を愛用してます。

HDD モデルなので少し重いのが玉に傷ですが、とにかく安くて使えるPCなので文句は言わない(VAIO type P 欲しいよう)。

で、EEEPC なのですが、ネットサーフィンをするには重大な欠点が2つあることに気づきました。
その欠点とは
  • 画面が小さい
  • ボタンが固い

の2点です。

画面が小さいのは最初から分かっていたのですが、ボタンが固いのは盲点でした。1000Hの鉄板のようなボタンは左右どちらのクリックをするにしても指が疲れます。

鉄板のようなタッチパッドのボタン

そこでユーザーインタフェースを変えて、この問題を解決してみました。
基本的にはとにかく「マウスを使わないようにする」というただ一点です。

まず、私はDebian Linux ユーザーなのでウィンドウマネージャーをxmonadに変えました。これでアプリの起動や画面の移動、配置の変更などが Alt+Space だけでできるようになります。
インストールはDebian Linuxであれば簡単で

$ aptitude install xmonad

だけで完了です。

次にFirefoxをvi風にキーボード操作だけで動かすことのできるプラグインVimperatorを以下のサイトからインストールしました。
http://vimperator.org/trac/wiki/Vimperator
これでFirefoxをほぼマウスを使わずに操作することができます(ただし、GmailなどJava scriptを多様したサイトは苦手な模様)


xmonad はLinuxユーザーしか使えませんが、Firefoxはwindowsでも使えるのでVimperatorはおすすめです。

xmonad の使い方は mod というのがデフォルトでは Alt キー のことを指すということと、Shift + mod(Alt) + Enter でコンソールウィンドウが開くということを知っておけば

$ man xmonad

するとだいたいわかります。私はコンソールウィンドウの開き方が分からなかったのでどうすることもできずハマりました。

Vimperator は以下のコマンドを覚えておけば大体なんとかなるでしょう
  • "f" リンクの番号を表示する、番号を入力(重複する場合はさらにEnterキーを押す)すると現在の画面で開く。
  • "F" リンクの番号を表示する、番号を入力するとタブで開く。
  • "gh" ホームページに移動する(go home)
  • ":o someurl" urlを入力したサイトに移動する
  • ":t someurl" urlを入力したサイトをタブで開く
  • "ESC" f,F その他のコマンドをキャンセルし、コマンド入力モードに戻る。
  • ":set go=bTm" メニューを表示する。"b"ブックマークバー、"T"ツールバー、"m"メニューバーの意味
  • ":help" ヘルプを表示する

一月程前から使っていますが、すっかり気に入りnetbook以外の環境もxmonadとVimperatorになってしまいました。もちろんnetbookでも快適にネットサーフィンできています。

netbookメーカーの方々は、小さい画面の解像度を無闇やたらに上げないで、ブラウザの操作方法を変えることで使いやすくできないか考えて欲しいものです。mozilla.orgにお布施して標準機能に特定のキーで操作できる機能を入れてもらうとかの戦略もあると思うのですが。

2009年2月21日土曜日

パチンコホールで顔認証? そして未来は自宅警備員が警備業界に参入?

2chでパチンコ板を興味本位に覗いていたらパチンコホールは顔認証システムを使って顧客を管理しているという話がでていました。

オムロン等で特許や商品案内を出していたので反応したらしいです。
特許はたいがいの会社でノルマ化されているので、現場では思いつくものなら何でも出しているのですが(笑)。


さて、顔認証システムを実際にパチンコホールで使う場合の話です。

顔認証(認識)システムというのは1万人のなかから特定(10人ぐらい)の人物を見つけ出す精度は非常に高いです
(メーカーが宣伝する「99%以上の精度で」とかいうのは主にこちら)

しかし、あまり知られていませんが、1万人をこちらはAさん、こちらはBさん...等とそれぞれ見分けようとすると
精度は5~15%まで大幅に低下してしまいます(パスポート写真のような見分けやすい写真でも)。
つまり、顔認証は顧客全体の管理よりは特定の得意客or危険人物の見極めに適したシステムなのです。

もっとも、20人の候補画像を出力してその中から選んでもらうなど最終的な判断に人を加えると
90%以上の精度が簡単に得られるので
顔認証のみをパチンコ店が顧客管理に使うとしたらこの方法が選択肢としてあります。

でも、そんなバイト聞いたことありませんね...(笑)。金もものすごいかかるし。
というわけで顔認証で顧客全体を管理しているというのは嘘だと思います
顔認証のメーカーは大げさなイメージを吹き込みたいのであえて否定していないだけでしょう。


おそらく、顔認識システムは(使われているとして)顧客管理システムの一部として使われているのではないでしょうか。
基本的には顧客カード等で識別(おまけのポイントとかつけるだけでお客さんが自ら進んで使ってくれます)。

顔認証システムは店内の移動情報の取得や
カードを使わないor新規カード客を危険なプロ客かどうか判断する等として使われるだけでしょう。

顔認証(認識)は使う側も使われる側もオカルト的な怖さに振り回されているのが問題だと思います。
そろそろメーカーも本当のところを伝えた方がいいと思うのですが。
あなたたちが話を持ちかける会社の重役さんたちも、それを使われる側の人たちも本当に何も分かってませんよ。

ところで上記の顔識別のバイトって本当にまだ無いんですかね。
一日中、どこの誰かもわからないままデータベースから抽出されてディスプレイに表示される
20ケ程の候補画像と実際の顔画像を比べて10秒以内に判断してクリックするだけの仕事(iPhoneでもできる!)。

在宅でも、引きこもりでも、海外の言葉通じない人でもできるので大きなビジネスチャンスだと思うのです。
自宅警備員が本当に警備業界に参入する日がくるかもしれません。

2009年2月19日木曜日

Android dev phone を買ってしまった

iPod touch に感動したが、jail break しないと面白そうなアプリが入れられないことに腹を立て、勢いでAndroid Dev phone を買ってしまった。
これで Openmoko, Android Dev phone, iPod touch (iPhone じゃないのが救い?)が揃うことになる。なんかの業者になった気分だ。

2009年2月18日水曜日

ipod Touch をオフラインで使う

iPod touch を買ってまだ3日目だが、オフラインで使えるアプリを探し回っている。

現在使っているのは
LDR touch (ライブドアRSSリーダー、無料)
i英辞朗 (英和、和英辞書, 1000円)
豊平文庫 (青空文庫リーダー, 230円)
stanza (web書籍リーダー、英語書籍中心、無料)

英語のリスニングの教材として
以下の英語ニュースをpodcatingしている
NBC TODAY show
NewsPod (BBC Radio)

LDR touch は ライブドアのRSSリーダーに登録してあるRSSのフィードがダウンロードされるので便利。ただし、RSSフィードに記事の全内容が書かれていない場合はオフラインでは一部しか読むことができない。また、OPML形式のファイルをインポートできるので新規に利用する場合でも自分のRSSリーダーのデータをすぐに移行できる。ただし、自分の場合はディレクトリが深くなっていたためか、ディレクトリ構造は正しくインポートされなかった。

i英辞朗は取り合えず英語の辞書として入れてみた。単語を調べたいだけならこれが便利に思える。安いし。

豊平文庫は青空文庫リーダーとして評判が良かったので入れてみた。特に違和感がなく使えるという印象(これは良いソフトの条件だと思う)。

stanza は
stanza -> オンラインカタログ -> Newspapers & Magazines -> Popular Newspapers
と選ぶと様々な記事のRSSがローカルに保存できる。
記事の全文が書かれている物は XXX (full) といったタイトルになっているのでそれを中心に保存している。現在登録しているのは以下
BBC Full Content
The Economist - Full Print Edition
The Guardian

英語のリスニングはなかなか10分以上あるものが見つけられなくて上記のものとなった。他におすすめがあったら教えて下さい。

そして現在探しているのは上記のものを定期的にアップデートしてくれるアプリ。これはさすがに無いのかな(自分で作るべき?)。

ついに日記ブログを作ってしまった。

日記ブログは作るまいと思っていたのだが、mixi以外にも書きたいことがあるので作ってみた。