悪態のプログラマ -18ページ目

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

朝、会社に着くと、IT関連ニュースのメールマガジンを一通りチェックする。昼休みには、いくつかお決まりのブログを読み、Google ニュース で一般のニュースを眺める。それに株価のチェックも。夕刻には、システム開発関連の情報サイトで新着記事を物色。ネットの普及により、情報が増えたのはいいが、その収集には時間をとられる。


ご存知の通り、RSS や Atom を使えば、更新があったサイトだけを効率よくチェックができる。そのためには、RSS リーダーと呼ばれるソフトが必要だ。RSS リーダーには、メールソフトに似たタイプのもの(メーラー型)、電光掲示板のように自動表示するもの(ティッカー型)、Webサイトが提供する機能をブラウザから利用するもの(ホスティング型)、メーラやブラウザのプラグインなど、様々なものがある。

RSSリーダー:フレッシュリーダー サイドフィード(株) の フレッシュリーダー は、ホスティング型と同様にWebサーバ上で動作する RSS リーダーだ。しかし、既存サイト上にサービスが提供されているのではなく、プログラム自体が配布されている。つまり、自分で自分のサーバにインストールして使うわけだ。その分、導入に際しての敷居は高いのだが、他のユーザーの利用のために「混む」ことがないなど、メリットも多い。複数ユーザーで使えるので、社内での利用にも適している。

私も実際に導入してみたが、既に Apache と PHP が動作している環境があれば、セットアップは簡単だ。画面は、サイトの追加やカテゴリ管理の操作にちょっと迷ったものの、全体的にはシンプルで使いやすい。動作も軽快で、非力なサーバでもストレスなく使えるのが嬉しい。

さて、気になるお値段だが、個人で使うだけなら、ブログ等で紹介記事を書けば無料になる「ブロガーライセンス」というのがある。ブロガーなら利用しない手はないだろう(というわけで、本ブログの今回の記事となったわけである)。


RSS リーダーを導入すると、調子に乗ってサイトをどんどん登録したくなる。しかし、あまり沢山登録すると、読みきれなくなってしまう。ブログはともかく、ニュース系のサイトなどは、しばらく読んでいないと、どんどん「未読」が溜まっていく。そうなると「読まなければ」という妙なプレッシャーがかかり、ストレスを感じたりする。

考えてみれば、所詮ニュースは「そのときだけ」のもの。TVのニュースを録画してまで毎日視ようとは思わないのだから、ニュースサイトもそのとき読めなければ放っておけばよさそうなものなのだが・・・。

情報の氾濫が進む中、いかに効率的に情報を集めるかということは、個人のレベルでも重要な課題である。そして、それをサポートするソフトウェアを作ることは、システム開発者の課題だろう。RSS リーダーの歴史は始まったばかりだが、今後の進化が期待される分野である。

← このブログを誰かに読ませたいと思った方は、クリックを


後日談(2006/4/9記)。Lighttpd + FastCGI + PHP でも動作確認しました。


■関連リンク
あなたの Web サーバにも設置可能な RSSリーダー、フレッシュリーダー



Web開発者のためのRSS & Atomフィード
ベン ハンマースリー Ben Hammersley 菅野 良二
オライリー・ジャパン (2005/09)
売り上げランキング: 88,334


入門RSS―Webにおける効率のよい情報収集/発信
新納 浩幸
毎日コミュニケーションズ (2004/11)
売り上げランキング: 19,952


多くのアプリケーションでは、画面上でマウスの左ボタンを押したまま移動させれば、いわゆる「範囲選択」ができる。そして、そのまま画面の端まで移動させて、その先にまだデータがある場合、自動的にスクロールしてくれるだろう。本来、広い範囲を選択しやすくするための機能である。

ところが、私は、この機能を単にスクロールする目的で使っている人を見たことがある。つまり、スクロールするために範囲選択するのである。まだ、マウスにホイールが付いていないころの話だ。確かに、この方法ならスクロールバーを使うよりも素早くスクロールできる。変わった使い方をする人がいるものだと思って、感心した。


話は変わるが、文書やソースコードを編集していると、「直前に編集していた位置に戻りたい」ということがある。文書内の他の場所を見ているうちに、どこを編集していたか分からなくなってしまうのだ。

例えば、Microsoft Word なら [Shift] + [F5] キー、Eclipse なら [Ctrl] + [Q] キーで戻れるのだが、ソフト間で統一感がないし、そのような機能がないソフトも多い。地道に目で探しながら戻るのは面倒だが、文字列検索して探そうとすれば、余計な場所までヒットすることも多い。ブックマーク機能(※1)のようなものは、あらかじめ登録していなければ、意味がない。

こんなときは、ただ「アンドゥ」して「リドゥ」すればよい(多くのソフトで、ショートカットキーは [Ctrl] + [Z] → [Ctrl] + [Y] に統一されている)。

アンドゥ(Undo)機能は直前の編集を元に戻し、リドゥ(Redo)機能は、その戻した編集をやり直す。つまり、データを編集するという点では、「アンドゥしてリドゥ」しても、何もしていないのと同じだ。

しかし、この機能には副作用があって、対象の編集が行われた場所が表示されるのである。そうでないと、ユーザーには何が起こっているかわからないからだ。つまり、「アンドゥしてリドゥ」することは、「直前の編集位置にジャンプする」ということなのである(※2)。


これらは、設計者が想定しなかったソフトの使われ方である。そこにはユーザーのニーズが反映されており、コンピュータの操作性向上のヒントが隠されている。

冒頭の話は、マウスによるスクロール操作の不便さを物語っている。不便だからこそ、後にホイールマウスが開発されたわけである(※3)。

次の話では、直前の編集位置に戻るための統一的な操作が求められている。この関連では、最近、「直前に見ていた(フォーカスがあった)場所へ戻る」という機能を [Alt] + [←] キーに割り当てたソフトが出てきている(Web ブラウザの「戻る」機能が進化した形だろう)。これはもっと普及すればと思う。

他にも、こうした「想定外の操作」はいくつもあると思う。収集してみると面白いかもしれない。




※1
Web ブラウザの「お気に入り機能」も「ブックマーク機能」と呼ばれることもあるが、ここでは、あらかじめ文書の任意の位置に印をつけておき、後からその場所にジャンプできるようにする機能。

※2
多くのソフトでは、アンドゥ、リドゥ は [Ctrl] + [Z] や [Ctrl] + [Y] といったショートカットキーが割り当てられている。これを使えば、一瞬で「直前に編集していた行に戻る」ことができる。

※3
以前は(今も?)マウスドライバに、スクロール補助機能みたいなものがついていたりもしたが、あまり使いやすいものではなかった。また、水平スクロールについては従来のホイールマウスでは対応できないが、最近は、ホイールを傾けることで対応するようなものも出てきている。




← このブログを誰かに読ませたいと思った方は、クリックを


■関連記事
キーボードを使おう その2 ~ ショートカットキー ~
一般的な使い方



インターフェイスの街角―本当に使いやすいユーザー・インターフェイスの極意
増井 俊之
アスキー (2005/09)
売り上げランキング: 3,033


Microsoft Wireless Notebook Laser Mouse 6000 Ice Blue
マイクロソフト (2005/12/02)


「YYYYMMDD」形式で今日の日付を表せば、「20060304」である。

この「YYYYMMDD」のような表現方法は、この業界では共通の認識だと思う。

日付を8桁の固定長で表現するために、月や日が1桁の場合は前に「0」をつけて2桁をつける。1桁のままだと「1月12日」と「11月2日」が両方とも「112」になり、区別できないからだ。・・・などということは、あらためて書く必要もないことだろう。

このことから、「MM」や「DD」という表現は、日付の月や日を2桁で表記するという意味であることが分かる。

しかし、先日、ある設計書の中に、それをあえて打ち消すような表現を見つけた。

 YYYY/MM/DD形式(MM、DD は、1桁の場合には1桁で出力)

つまり、「2006/03/04」ではなく、「2006/3/4」と表すということだろう。

しかし、そのような場合、「YYYY/M/D」と書くのが普通ではないか? Excel の書式設定でもそうなっている。

おそらく、設計書を書いた人は「YYYY/MM/DD」と「YYYY/M/D」の使い分けなど知らなかったのだろう。このような「常識のズレ」とは恐ろしいもので、そのままバグに繋がることもある。

しかし、私は、彼がその代わりに「1桁の場合には云々」という但し書きを付け加えたことを評価する。これなら、誤解されることはまずない。むしろ、「YYYY/M/D形式」とだけ書くよりも意図が明確に伝わるかもしれない。そういう意味では、この1行はよく書かれているといってもいいと思う。

専門的知識が少ないとか、語彙が少ないとかいったことは、ある程度は仕方がない。技術文書を書く上でもっと重要なことは、誤解されずに意図を伝えることである。常に「この表現で誤読されないだろうか?」などと考えながら書くことが大切なのである。




← このブログを誰かに読ませたいと思った方は、クリックを


■関連記事
コンピュータに興味がないプログラマ
どこまで書くか設計書



SEを極める 仕事に役立つ文章作成術―百戦錬磨のプロマネが伝授するドキュメント作成の極意
福田 修 日本情報システムユーザー協会
日経BP社 (2005/11)

ThinkIT の記事「だからあなたの会社のシステムは動かない ~システム発注担当者の悩みを解決します~ (第4回:見積もりについて)」より引用(太字は引用者)。

 予算の関係で、開発会社から出された見積もりに対して値引きを交渉することもあるでしょう。値引き交渉についてはそれぞれ事情もあるでしょうから、是非について一概にはなんとも言えませんが、よく聞く話であり、実際に私も多く経験しているのが、発注側の企業体質として「見積額からいくら値引きさせたか」が、発注担当者の社内評価になるというものです。

 その値引きへの根拠もなく、とりあえず値引きしたかどうかを上司は尋ねます。こうなると、開発会社も値引きされることを前提に見積額を算出するようになります。「値引きありき」のような考え方はなるべく避けたほうがいいでしょう。思い当たる企業の方も多いのではないでしょうか。


見積が高いと言われることは慣れていたが、正直なところ、その裏側をここまで想像したことはなかった。見積をするのがますます嫌になるような話である。

「安かろう悪かろう」という言葉は、システム開発のためにあるようなものだ(※)。システム開発を「値切る」ということは、自ら品質を下げるのと同じである。こんな発注者、本当になんとかしてほしい・・・。



※といっても、オープンソースなどは違うのだが・・・。



← このブログを誰かに読ませたいと思った方は、クリックを


■関連記事
建築屋は鉄を、システム屋はテストを削る
やってみなきゃわからないという現実
システム開発費の削減方法教えます




システム発注の基礎知識―システム担当者が知っておきたい
藤広 哲也
すばる舎 (2003/05)
売り上げランキング: 58,905
おすすめ度の平均: 4.5
4 システム担当者として最低限の知識
5 目的が明確で○


失敗のないファンクションポイント法
アレア
日経BP社 (2002/09)
売り上げランキング: 14,360
おすすめ度の平均: 4.5
4 私はこれでFP法を覚えました
4 ファンクションポイント初心者でも
5 このような入門書を待っていた!

自動車運転の教習中は、ちょっと運転しただけで、とても疲れたことを覚えている。ただ左折をするだけでも、「ええと、いまから左に曲がるから、サイドミラーを確認して、ウインカーを出して、巻き込みを確認して・・・」などと、ひとつひとつ頭で確認しながら運転していたように思う。

しかし、何度も運転をしているうちに、そうした基本的な安全確認は、何も考えずとも自然にできるようになった。


車の運転と同じように、プログラミングにも多くの危険がある。ヌルポインタ、アクセス違反、メモリリーク、ゼロ除算、ファイルI/O エラー・・・。こういった危険を避けるために、プログラマは常に安全確認をしなければならない。

ある程度経験を積んだプログラマなら、このような基本的な安全確認は、やはり自然にやっているものである。初心者の頃は、こうした危険に直面しては、バグを作りこみ、痛い目に会う。何度かそんな経験を積んでいくうちに、確認せずにはいられない「体質」になってしまうのだ。

プログラミングには、このように、体で覚えるという面がある。安全確認だけでない。アルゴリズムやデザインパターンのようなプログラミングの「定石」も、頭で覚えただけでは不十分だ。実際にプログラムをいくつも書いてみなければ、適切に使えるようにはなれないだろう。


工芸にしろスポーツにしろ、何らかの技術を体得するには、相応の練習が必要である(※)。もちろんプログラミングも同じである。本を読んで、頭で理解しただけでは、決して自分のものにはならない。

会社は十分な研修もしてくれないし、仕事もテストしかやらせてもらえないし・・・などと、甘えてはいけない。職人にも例えられるプログラマの仕事。その下積み時代は、料理人でいえば「皿洗い」である。現場では先輩の技術を目で盗み、影では人知れず練習をする。それくらいの気持ちを持っていなければ、立派な職人にはなれないのである。




※もちろん、才能も必要だが・・・。



← このブログを誰かに読ませたいと思った方は、クリックを



Javaのドリル
Javaのドリル
posted with amazlet on 06.02.18
瀬戸 遙
ソシム (2005/09)


プログラミング問題集5 VB .NET版 空の巻
オープンナレッジ
オープンナレッジ (2005/04/18)
売り上げランキング: 274,078


C言語トレーニングブック―これから始める人のCプログラミング練習帳
平田 豊
ソーテック社 (2004/04)
売り上げランキング: 535,928