限りなくmoonshine...

GarageBandなどDTMネタとバンドネタと甘いもの中心に。たぶん。

プロジェクト終了。

2009-05-31 07:10:36 | work

 どちらかというと今まで unix 環境でC言語メインの開発が多かったんだけど、ついにこの
時代の流れに乗らされたというか、Java それも Struts フレームワーク、アプリケーション
サーバは webLogic、開発環境は Eclipse という割とイマドキなプロジェクトにいた。
 客先独自のフレームワークがあって、追加や変更に多少制限があるものの(例えばちょっと
したタグくらいは追加させて欲しかった、とか)大きな足枷となるような前提条件も特になく、
開発自体はそれなりに順当に進めることができるプロジェクトだった。
 ただし量がめちゃめちゃ多く、画面数から見てもデータベースのプロシージャ数から見ても
一体これは何人のプロジェクトで期間はどのくらいなんだ、と思わず聞きなおしたくらい。
 ちなみに、Dao の SQL も軽く 400 本を超えている。

 基本設計自体が3ヶ月近く遅れている状況で駆け足で詳細設計書を作成していた3月、そこ
からプロジェクトは一気に盛り上がりを見せた。4月に入ってから土日出勤の数が増え、世間
では 16 連休とか言ってた人もいたゴールデンウィークは、2日を残して全て出勤、結局その
ままの状態で今に至る。正確に計算してないけど、今月は今のところ残業時間 140H くらい?
160H くらいになってたかな。まあまだ死なない程度に何とかなるレベルだ。
 おかげで、バイトの回数が減ってしまって、結構シャレになってない。
 いくら残業しても自分の手元には1円も入ってこないんだから、それなら真面目に仕事して
残業するよりも、適当な時間で切り上げて帰ってバイトしてた方がよっぽど実入りがいい。
 とは思っていても、こんな炎上しやすいプロジェクトに参加してることが多いんだよな。
 今回のは、単純に量が多かったのと、最初に客先がきちんと仕様を固めなかったがために、
後から全体に影響を与えるような変更が多数入ったことが原因なので、こちらに非があるわけ
でもなく、あまり精神的に参ってしまう状況になってないのが救いかも。

 で、まあそれはそれとして、大人数のプロジェクトで多彩な年齢層のメンバがいると、みん
なのいろんな面が見えて面白い。今回は、若いメンバが行き詰った時の対応がイマドキだった
ので、印象的だった。例えば、こんな会話。

「すみません、ここがわからないので作れずに止まってます、教えてください」
「あ、それなら JavaDoc か API 仕様書に載ってたと思うので見てみて」
「見たんですけど、初めてなのでよくわかりません」
「…おれだって Java って初めてなんだけど」
「そうなんですか?Java をやってないって、先輩は今まで何の仕事してたんですか?」
「…ほっといてくれ。Java 以外でも仕事は色々あるんだよ」
「ともかく、JavaDoc も API も英語なので何を書いてるのかさっぱりで」
「…おれも日本人だけどな。難解な英文じゃないから、がんばってみて」
「英語は昔から苦手なんですよ。翻訳されたのってないんですかね」
「…自分で翻訳してくれ」

ってカンジで始まって、

「どう?読めた?使い方、わかった?」
「それが…使えそうなサンプルが全然載ってないんです。わかりにくいサンプルだけで」
「えー、でも基本的な仕様で書かれていると思うんだけどな、サンプルは」
「うちで使えそうな実用的なサンプルじゃなかったので、使い方が良くわからないです」
「そう言わずに、もうちょっとがんばってやってみて」

となって、

「あのー、やっぱりできません」
「え…っと、どのくらい調べたの?」
「ネットでググって結構調べたんですけど、ありませんでした。最新技術だから、まだ誰も
 ネットにアップしてないんですかね」
「いやいや、そんなに最新じゃないよ、バージョンも1つ前だし」
「でも、ネットになかったので、他にどこを探してよいものやら」
「ネットが全てかい!」
「ネットにも無いくらいの技術なのに、まだ○年目の自分なんかができるわけないですよ」
「…本とか、読んでみた?」
「いえ。ネットに大抵ありますよね、だからいつもネットで」
「今、なかったでしょ」
「だからもう終わりかなと。で、先輩の知恵を借りようと」
「おまえ、間違ってるから。とにかく、今日にでも本屋で探してみなよ」
「えー、、、本、ですか、、、じゃとりあえず行ってみます」

となり、翌日に

「本屋に行ったのですが、たくさんありすぎて選べませんでした。しかも高いし」
「自分への投資だと思って、1つ買ってみなよ。1万以下なら安いと思って」
「えー!そんなに出せませんよ!何を買って良いかもわからないし、そうだ、先輩が選んで
 私に買ってくださいよ、それ読みますから」
「いや、自分で買って自分のものにしてくれよ…」
「そのうち誰かがネットに上げるでしょうから、いいですよ」
「だから間違ってるって」

てな会話にまで発展することがあった。
シチュエーションはちょっと違うけど、これ、特別な彼の話というわけではなく、割と普通に
あちこちで聞かれる会話だってのが、将来的に非常に不安だったりする。
 あ、きみのプロジェクトにもいるの?ああ、あなたのチームにも、ってカンジ。
 昔話をする気はないけど、サクっとネットで検索して、無かったら終わり、ってのはどうも
感覚的に違う気がするなぁ。あと、「やったことがないのでわからない」というような感じの
言い訳も、良く聞く気がする。「初心者なので」とかもね。
 「本よりもネットで検索した方が早い」と言い切ってる根拠が知りたかったりする。

 そもそも、ネットにそんなに都合よく、自分たちと同じ環境で使いまわしの利くサンプルが
上がっていることなんて、殆ど無い。社外秘事項だったり、ソースにも会社のコピーライトが
付いていたりするので、仕事のソースをそのまま上げること自体が背任行為なわけで、それを
マトモな社員がやってるとも思えない。
 また、よくある話で、「ネットに書いていた動作するサンプル通りに書いているのに、全く
動作しない。何がおかしいのか」と悩んでいるメンバもいる。ググった結果、運よくたまたま
ヒットした「自分の求める動作と同じ動きをするように見える」ソースをそのまま持ってきて
動くなんて、よほど運が良くないと無いと思う。大抵は、環境が影響していたり、制限事項が
関係していたりして、ネットに上がっているような、個人が自分の学習のために作ったソース
がそのまま動くなんて事は稀だ。また、必ずしも正しいことを書いているとは限らない。
 そりゃ本だって、誤りは結構ある。でも、著者や出版社が責任を持って値段をつけて売って
いるものと、どこの誰ともわからない人が、閲覧自由の場所にちょこっと書いてるものとでは、
信頼度の違いは言うまでも無いと思う。
 にもかかわらず、ネットを無条件で信頼して、そのままコピペしてる。
 そのサイトをブックマークすらしないところも、その場しのぎの対応に思える。
 「ここの作りがちょっとおかしいよ」と指摘しても、「でもネットにそう書いてました」と
反論してくるのも、よほど疑うことを知らないのか責任転嫁してるのかってカンジだ。

ある新人が「間違ったら恥ずかしい、笑われるくらいなら死んだ方がマシ」と言ってた。
間違ったり、笑われたりすることを極端に怖がる人種、みたいなことはどこかで読んだような
気がするけど、目の当たりにすると、ちょっとね。
 「質問」に対する「正解の答え」を探していて、見つからない時は「わからない」で通す。
 既に答えを持っている先輩が質問したことに対して、正解をネットで探して、回答する。
 そんな感じに受け取れる。
 「自分の意見」という定義が違っていて、単なる自己主張はあるけど、色んな条件を元に、
自らの力で未知の発想を導き出す、というのが、あまり無いように思う。
 もちろん、質問した先輩だって、正解を持ってるわけじゃない。そもそも正解なんて無い。
 ある意味、全てが正解だとも言える。
 ここは学校じゃないんだよ、って、毎年言ってる気もする。

 それでも、そんな彼らも、「自分は大学の時に○○言語をしていたので、プログラミングは
ちょっと自信があります。きっと先輩の役に立ちます」みたいなことを言ったりする。
 その逆で、「自分は大学で情報科ではなかったのでプログラミングは苦手です」なんてこと
いう人もいる。いや、そういう問題ではないんだけどね。

 そういえば、昔発見したときに、その皮肉度があまりに高くて面白おかしく人に紹介してた
真・コンピュータ用語辞典」。去年1月で更新が止まってるけど、そろそろ 10 年くらいに
なるんじゃないかな。同作者の「真・プログラマになるには」も皮肉度は高い。
 久々に読み直してみたら、ちょっと言いすぎだよなぁと思ってみたり。丸くなったのかな。



 どーでもいいけど、激しく眠い。明日は久々に何も入れてないので、やっと寝れる。
 明日(というか今日だな)何時に目が覚めるか、楽しみだ(笑)。

軽くツッコミ。

2009-02-03 23:13:45 | work

会社に「提案制度」というのがあって、会社の利益となるような提案をすると、内容次第で会社から
賞金が貰える。部署や自分のプロジェクト内容にかかわらず、何でも良い。
去年、「携帯電話についての斬新なアイデア募集(ソフトウエア/ハードウエア問わず」というのが
あって、その結果、数字キーを押すだけで好きな画像が呼び出せるだとか、交通事故などの緊急時に
自動的に GPS から取得した位置情報を送信するだとか、ちょっとなんだか微妙と思えるアイデアが、
賞を取っていた。
「今までに無い斬新なアイデア」ということで。
「今までに無い斬新な」。そうか。無かったのか。
誰かツッコミ入れてくれよ。

でともかく、それにそこそこ提案数があったからか流行だからなのか知らないが、ソフトウエアの
B to C ということで、また提案募集の掲示があった。お題は、
  「 iPhone と Android を利用したソフトウエア」
だそうだ。
iPhone「と」Android を利用する「ソフトウエア」の提案を募集、だそうだ。
要旨にも、「 iPhone と Android を利用して」とある。
ハードが iPhone、プラットフォームが Android?
iPhone で Android が動いているのが前提か?
単に WebKit のことを指しているとも思えないし。
なんか、間違ってないか?それとも、おれが間違っているのか?
誰かツッコミ入れてくれよ。

ちなみに、自分の提案した「簡易 4trMTR/ミキサー」とか、「思いついたフレーズをすぐに楽譜
として入力できるツール」は、何の賞も貰えなかった。賞金目当てで色々と考えてみたんだけど、
ピアノアプリは有名だしドラムも既に存在するし、楽器関係は割とあるので新しいものは難しく、
会社は「案は何でも良い」と言う割には無難な、ビジネスっぽいソフトを推している気がしたので、
あまりにも趣味によりすぎたアプリはダメなのかなと。

どうも聞いた話によると、「 GPS 」「加速度センサー」を使っているものが「斬新なアイデア」と
して取り上げられるらしい。さらに、「内蔵カメラ」を使っていると、なお良いらしい。
誰かツッコミ入れてくれよ。



色の関係。

2009-01-31 21:40:28 | work

会社では、DELL の PC + SHARP のアナログ RGB 17インチ液晶ディスプレイ、という
組み合わせで仕事をしている。リースなので、殆どのマシンがこの組み合わせである。
いまどき 17インチは狭い気もするが、仕事で使ってるだけだし、テキストエディタが主な
使用アプリなので、妙に横長な EXCEL 資料を修正する場合以外は、特にストレスとなって
しまうことも殆どない。
が、どっちかって言うと色のほうがストレスになるときがある。

例えば EXCEL でグラフを作成したとする。
ウイザードに従って作ると、とてもセンスが良いとは言えないカラフルな色の割り振りで、
勝手に折れ線なり棒グラフなり作成してくれる。
デフォルトだと要素1から順に、濃い青、ピンク、黄色、水色、と色が付く。
この色の名前は、グラフの色を選ぶときに開くダイアログ上で、色の上にマウスを乗せると
表示される色の名前である。
で、これをカラープリンタ出力するわけだが、予想通りというか予想外というか、まったく
ありえないほど、ディスプレイに表示されている「見た目の色」と違う色で出力される。
一応ディスプレイの設定は変えられるのだが、標準で省電力モードになっていて少し画面が
暗い上に、そもそも DVI ではなくアナログ RGB である。その上、色温度が非常に高い。
つまりとても青白い画面なのだが、Windows の人はこっちの色の方が普通らしく、Mac の
画面を見た人は暗いだの赤っぽいだの「Mac って標準ディスプレイがショボいよね」という
事を言われることも多い。
「やっぱ液晶も、品質を言えばナナオだよ」なんて言ってた「自称」PCに詳しいという人
も、色温度設定が 9200K で RGB ともデフォルトのままだったのを見たときは、どう反応
して良いものか悩んだ。

で、カラープリンタの方はレーザープリンタなんだけど、C社のとかF社のとか数種類あって、
設定はどれもデフォルト。
画面上でピンクの線で引かれたグラフは、カラープリンタで出力すると見事にくすんだ朱色
とでも言うような色で出力される。黄色は黄土色っぽいし、水色もしかり。
一見プリンタがおかしな色を出しているようにも思えるが、それは色の名前から推測される
「人間の勝手な判断」であり、もしかすると(というか確実に)ディスプレイに表示されて
いる色のほうがおかしい可能性だってある。そもそも安い液晶ディスプレイなのだし、勿論
キャリブレーションなんて行っていないのだから、当然だと思う。

が、たいていの人は、上司を含め、「プリンタがおかしな色を出す」といって愚痴る。
「これは青じゃなくて群青色だ」「これは赤じゃなくて朱色だ」なんて具合に。
でも、それは作った人自身が EXCEL 上で群青色や朱色に設定しているからかもしれない。
いつだったか、資料作りを頼まれて作ったとき、「線は緑で」と言われていたので、画面で
きちんと緑を選んで作成したが、プリントアウトされたものは深緑だったことがある。
そのプリントアウトした資料を上司に見せて確認してもらったのだが、開口一番、「これは
緑じゃないだろう、オマエ、目がおかしいんじゃないか?色盲か?」ってことを言われた。
さすがにカチンときたので、「画面上では緑ですよ。ちゃんとキャリブレーションを行って
いないですし、そもそも Windows で表示される画面の色なんて、滅茶苦茶じゃないですか」
と反論したが、キャリブレーションを知らなかったようで、「ともかく、いくらなんでも、
これを緑とは誰も思ってくれない、明日までにちゃんと作り直せ」と言われたが、もちろん
どうすることもできないのでそのまま何もせずに翌日に出した記憶がある。
翌日そのファイルを開いて画面で見ていた上司は、「よしよし、ちゃんと緑色に直してるな」
なんて言ってた。「指示したんだから指示通りの色で作れよな」と文句を言いながら。
でも、実際は何も修正していないんだけどね。
たぶん、プリントアウトしたときに「またプリンタが壊れた」とか言うんだろうな、と。
自分の失敗で怒られるのは仕方ないが、こんなことで理不尽に怒られるのは気分が悪い。

ちなみに、プロジェクタでも同様なことは起こる。
「この表の赤文字の部分が」「どこが赤だよ、そりゃ茶色だろ」「いえ画面上では赤です」
「その隣の黄色のセルが」「何も見えねえけど」「実は隣にセルがあるんです」なんていう
不毛なやり取りが続くから、会議が長引く。突っ込むほうも突っ込むほうだよな。
当然と言えば当然だが、「プロジェクタで映し出された色と画面の色が違う」ということで
「プロジェクタと繋ぐ線が断線しているんじゃないか」と交換し始める人もいる。
「みんな無線LAN 使ってるから変な電波飛んでて、それを拾ってるんじゃないの?だから
線にノイズが乗って色が変になってるとか」なんて言い出す人もいたりして、そうなると
もうオカルトの世界な気がする。そりゃあなたは変なデンパ出してるんでしょうけど。
年配の人だと、コネクタを抜いてフッフッと息を吹きかけて繋ぎ直す人もいた。
繋ぎ直しても同じままだったりすると、また抜いて今度はさらに強くフーッ!フーッ!って
吹いていたりして、見てるこっちは笑うしかない。
ええと、懐かしのファミコンカセットですかそれは。
RGB の調整画面を出して、当ても無く数値を上げ下げしてる人のほうがまだマシっぽい。
R の数値を上げて、「あ、赤くなった」って、そりゃそうだろ。本当に IT 業界かここは。
そんなヤツに「この業界にいるんだから日々もっと業界のトレンドには敏感になれ」とか、
「オマエ程度じゃ全然足りてねえよ」とか言われてもね。
楯突くと面倒なので、「あー全然色が正しく出ないですねー」なんてボケた会話しながら、
会議が再開されるのを待つしかないという状況になる。

といったカンジで、今日も「なんでこんな変な色で出るんだろうなぁ、これはもう修理に
出すしかないかな、同様な症状が同じ機種で出てないか、C社の営業担当に電話して確認
してみてくれよ」と言う声が聞こえる。いや、それが正常動作だと思うんだけどな。
「オマエが近くにいるから変な色になるんじゃねえの?」なんて、言う人によっては全く
冗談と取る気も失せるような気分を害する戯言を言い出しませんように、と祈りつつ。
ええ、過去にそんなこと言われた事ありますよマジで。



なんだろね。

2009-01-30 02:41:51 | work

今に始まったことではないけど、結合テストの真っ最中に概要設計レベルの変更を平然と
出してくる客先。影響が大きすぎると説明して、やっとゴリ押しをやめてくれたと思って
いたのに、リリース時の確認で「バグ扱い」に。設計書の記述だとか議事録だとか、全て
無視した上で「現行と動作が違うから」だけの理由で突っぱねてきた。
いやそりゃ仕様変更してるんだから現行と動作が変わって当然だろと。
その説明は概要設計書に書いてある。ただ、顧客の使った言葉とは違う言葉で、だけど。

また、多少システムをかじって知った気になっているのか、かなりズレたことを平然と
言って来る。ある要求にしたがって、Aから情報を取得して加工したのち、Bという情報
を出力することになっていたが、ざっと関連を見た感じではCから情報を取れば良いよう
に見えるものであるため、顧客はそれをイメージしていたらしい。ところが、システムを
詳細に調査すると、それはCから情報を取らなくてもBの情報が正しく出力できることが
わかったので、そのようなアルゴリズムでプログラムを作成した。
その後、顧客からリリース前確認ということで「Cから情報を取得していますよね?」と
聞かれたので、Cからは取得していないことと、取得をしなくても正しい情報が得られる
ことを理由とともに説明した。
ところが、どう説明しても、納得できないという顔をして受け入れてくれない。
「それは仕様がおかしいんじゃないか」の一点張りで、こちらの説明を一切受け付けない。
このシステムはうちのシステムだから、うちの人間の方が詳しいに決まってる、といった
ような内容の反論を繰り返すばかり。うちのシステム、と言っても、その担当者は作成を
しておらず、飽く迄使う側の人間である。
挙句、本当に正しく出ているのか検証するように言われ、単体テストや結合テストの結果
報告書さえも疑ってかかり、再検証結果の添付を納品の条件にしてきた。今更、納品物件
の変更なんて契約と違うだろなんてこと、言ったって聞きゃしない。
当然、検証結果は正常で何も問題なかったのだが、この顧客はやっぱり納得いかなかった
ようで、「Cから情報を取得する」という仕様を設計書に明記するように指示してきた上、
現時点ではCから情報を取得するようなプログラムではないためにロジックが違っている、
と言うことで、わざわざ営業担当経由でプログラムの修正依頼まで出してきた。
ちなみにその仕様を馬鹿正直にコーディングすると、データベースに対する問い合わせで
副問い合わせが3つ4つ増える。1テーブル数千万件もレコードがあるテーブル同士で。

つまり、だ。
どういったことがやりたいかについて、その人なりに漠然と方法がイメージされていて、
結果的に正しく実現できているにもかかわらずその方法が違っていることを「今たまたま
偶然正しく出ているだけ」「思っていた方法と違う=間違っている」いう認識で、自分の
思い描いている方法以外に正解は無いと信じて、それ以外の方法を受け入れない、という
ことだ。どこからその自信が出てくるんだろう。

算数で、公式とかを真面目にアタマから順番に解くタイプかな。
あと、例えばディスク残量 128MB の 25%を計算するのに、128×0.25 をわざわざ電卓
出してきて真面目に計算していたりとかってのも意外と普通にいるんだけど、そのタイプ?
方法はどうであれ、正しい結果が出ているのだから、もっと信用してもらいたいもんだ。
自分の信じるものだけが正だなんて、ちょっと寂しい人のような気がするよ。



またかよ。

2008-11-11 23:56:17 | work

「オレまだ仕様きちんと見てないから良く知らないんだけどさ」と言いつつも、しっかり
「普通はあり得ない」だの「こんなの見たこと無い」だの文句たらたら。
「もしかしてこういう仕組みじゃないよね?笑っちゃうよそんなの」とか言うので、つい
「ああそうですね、でも元々の作りがコレなのでそんなこと言われても」って軽く笑うと
「笑ってる場合じゃねえよお前、笑ってどうにかなんのかよ」と返してくる。
仕舞いにゃ「どーすんのよ、これ」とか「どーにもなんねーじゃん、このままじゃ」とか、
言葉で追い詰められるだけ追い詰めてくる。
顔は笑っているけど、目が笑っていない、という状態で。
で、返事に困ってると、決まって「まあ、いいんだけどさ、オレは」なんて言ってくる。

今月から、肩書きのある先輩と同じプロジェクトになったんだけど、まあほぼ毎日こんな
カンジのやり取りが延々と続く。
以前からそのやり方は個人的には「生理的に受け付けない」タイプだったけど、仕事だし
スキル的には確かなものを持っている人だけに、ある程度は諦めていた部分もあった。
数年ぶりにその先輩と同じプロジェクトになったのだが、これが上記の通りだ。
今回のチームに新人はいないんだけど、これ、新人に対してもこんなカンジなんだよな。
出る杭を打ちまくるというか、育てる気が無いというか。
それとも、あれで育てている気になっているのかもしれない。

今回、珍しく概要設計から担当しているが、正直今まで上流工程の作業は殆ど経験が無い
ために、手探りでやってる。しかし、この先輩からしてみれば、「何年やってんだ」とか
「新人のときに何やってたんだ」とか「大卒のクセにそんなことも」とか、まあとにかく
ありとあらゆる精神破壊的攻撃を繰り出してくるわけだ。
威張れることではないけど、営業職から IT 業界のシステム部門へ転職して数年、最初の
会社では社員教育やマナー研修、OJT すら受けてないから、何もかも独学だ。
新卒なのに、入社翌日から単独で飛び込み営業させる会社なんて、以降見たことが無い。
なんか中途採用だっていえば、同じ業界でスキルを積んできた人間であるという勘違いを
している人が多いようで、転職以降、何度も「中途なのにそんなこともできないの?前は
いったい何をしてたの?」みたいに言われた。
で今回も似たようなもので、今までこういった開発案件に携わってなくて経験が無いから、
先輩に教えを乞おうとして頭を下げているのに、応対は変わらない。
たとえば、記述内容が妥当かどうか相談しても「お前がそれで良いと思うならそのように
書けばいいじゃん、お前が設計してんでしょ、もしかして何も考えずに書いてないよね?
まあその段階でアレが書かれていないなんて普通じゃ考えられないけどね」なんて具合。
カチンと来ること請け合いだ。
以前より多少オトナになったというか、客観的に見れるようになってきているので、まだ
「しょうがねえな」と受け流すことができているけど、こんな状態でプロジェクトが成功
するのかそっちのほうが心配だ。
ちなみに数年前は、別の上司に対してカチンときた直後に「ふざけんじゃねえ」と叫んで、
当時の主任だった人の机を蹴り飛ばして、翌日そのプロジェクトから外された。
明らかに相手に非があったのだが、まあ、やっちゃいけないことだな。
ちなみにそこから数ヶ月は仕事ももらえず、会社ではどのプロジェクトにも属さず、ただ
ひたすら技術書を読んだりプログラミングの独学をするしかなかった。所謂、干されてた。
あぁあの頃は若かった。なんて。

割と短期のプロジェクトだから、諦めてちょっと我慢するか、と思ってる今日この頃。
ただ、残業だけは無駄に増えていく。

危ない危ない。

2008-10-17 01:12:41 | work

以前のネタの続きじゃないけど、
離席するために「コンピュータのロック」をしようと、Ctl+Alt+Del キーを押して、
何の迷いも無く Enter を押した。
ところが、片手でサクっと押したのが悪いのか、Del キーのみ押したように認識されて
いたようで、たまたまアクティブになっていたエクスプローラー( IE ではない)上で
選択されていたフォルダを「削除」する動作になっていた。

そのフォルダは、Dドライブ直下の個人用フォルダ。
仕事のファイルは、そのディレクトリに全部入っている。
というか、そのディレクトリ以外には入れていない。
個人用だけに、バックアップは何処にもない。
機密情報持ち出し禁止の規則があるため、外部メディアに保存できないから。

コンピュータがロックされると思っていたのに、画面には、「フォルダ削除の準備」と
いうようなダイアログが開いて、
 「このフォルダとフォルダ内のファイルを全て削除しますか?」
というメッセージが表示されていた。
「 Enter 」を押していたために「はい」が選択されたことになっていて、ダイアログは
一瞬で閉じ、驚く暇も慌てる暇もなく全てのファイルが削除され始めた。
たまたま上の方のフォルダに「読み込み専用」の属性をつけたファイルがあったため、
「読み込み専用ですが削除しますか?」というダイアログが開いて削除が止まった。

ここ数年分の仕事のファイル、全部削除。約7GB。1万数千ファイル。
もし、SHIFT キーが押されていたら、ゴミ箱に行くことなく削除されるところだった。

キャンセルボタンを連打して削除を止め、ゴミ箱から取り出して元に戻した。
なんでそんなに簡単に、全部削除できるようなインターフェースになってるのか。
精神衛生上、全くよろしくない。
「自分の操作ミスを棚に上げて」と言われそうだが、今まで Mac や Linux を使っていて
こんな「本来の作業以外の部分」の操作に余計に気を遣わなければならないような場面に
殆ど遭遇してないので、つい言いたくもなる。
みんな、よくあんな神経質なモノを手軽に扱ってるよなぁ、と。



萎える。

2008-08-30 00:28:28 | work

自分の開発していないシステムのプログラムを解析することが多い。
それを開発した人がすでにいなくなっていて、仕様書も無い、という場合だ。
だいたい、新規開発後に機能追加や変更が何度も入り、その都度メンバが違っていたり
することはザラなのに、コーディング規約などが正式には存在していないのも問題。
開発メンバによっては、そのへんの空気を読んで合わせてくれている人もいるんだけど、
そんな人ばかりとは限らない。

今見ているあるシステム、プログラムの変数名に英単語を使っている。
例えば件数合計なら「 count_summary 」、システム状態なら「 system_status 」、
負荷率なら「 load_rate 」なんて具合。

ところが、どういうわけか、ある時期に作成されたものに↓なのが多数出現。

 平均カバー率:average_kabar_rate
 機械コード:machine_cord
 契約番号:contruct_number
 テリトリー:teritorry
 日付:dete
 関数:fanction
 修正パラメータ:mod_parameta
 顧客リスト:kokyaku_list
 事業所コード:gigyousyo_cd

辞書ぐらい引いてほしいなと。ローマ字もあるがヘボン式とは限っていないし。
タイプミスをそのまま使っていたりとか。
変数名なので、英単語が間違ってるからといって安易に修正してしまうとまずい。
他のどこに影響するかわからないため、しらみつぶしに全部調査しなければならない。
そんなコトしてる余裕はないわけで、しかたなくその変な英単語を使わざるを得ない。
aとかiとかアルファベット1文字だけの安易な変数名のために、ソース解析で非常に
苦労して萎えることも多いけど、こういった類のも別の意味で、ね。

笑うしか。

2008-07-22 21:50:23 | work

連休明け、日焼けしているからっていつまでもしつこく「どこに遊びに行っていたの?」
と聞くのは如何なもんだろう。
そんなに人の休日が気になるものなのか。何してようと、一切無関係だと思うんだけど。
海だの山だのイベントだの次から次へと聞いてきて、その全てに「ノー」と答えてたら、
ついに「じゃあなんで日焼けしてるんだ」って。おかしな人もいるもんだ。
その人は、聞いてもいないのに朝から延々と休日に遊びに行った話をしている。
いろんな人に、繰り返し同じ話を。
何かの拷問かと思った。
「こっちは休日の出来事を全部喋ったんだから、お前も喋れ」的な感覚?
昼休憩後に居眠りするなら、せめて午前中くらい死ぬ気で仕事してくれよ。

ちなみに、連休はバイトしてました。マンション案内のプラカード持って、炎天下。
帽子とかかぶってなかったので、微妙に脱水症状気味。危ない危ない。

++++++++++++++++++++

「いやぁ、こればっかりはA社の文化だからね、無理だよ」
って、とても理不尽で非常識、筋の通っていないことを、そんな一言で片付けられても。
「文化」って何だよ。悪しき文化なら駆逐してしまえよ。
大名商売って言っちゃえばそれまでだけど、仕事でしょ、それで幸せになれるのか?
頑張ってくださいよ、担当者さん。と、こんな場所で苦言を呈してみる。
これを現場で大声で言えない自分も、たぶん、悪しき文化の象徴。

++++++++++++++++++++

仕様未確定部分について早急な回答を求め、回答なき場合はスケジュールに遅れが発生
することを再三再四メールなり議事録なりで残してきたと言うのに。
回答をしないばかりか、「スケジュール、遅れてませんか?」とは何事だ。

++++++++++++++++++++

客「本当に、php で作ってるんですか?」
私「はい」
客「世の中的に、どうかと思いますよ。php で会社のサイト構築なんてありえない」
私「納期ほか諸々を考慮し、あなたの上長の了承を得ていますが」
客「いやでもね、例えば銀行のシステムが php なんて考えられないでしょ、つまり、
  セキュリティを考えたら、ありえないんですよ、php ってのは」
私「でもあなたの上長の了承を得ていてますし」
客「世の中で php で構築されているサイトってのは、多少情報が漏れてもいい、と
  いう考えで作られているんですよ。うちはそれじゃ困るんですよ」
私「でもあなたの上長の了承を得ていてますし」
客「情報漏洩が起こったら、あなたが取れるレベルの責任じゃないですよ。会社間の
  賠償問題ですよ。いいのですか?具体的にはどんな対策をしているんですか?」
私「セッション管理をはじめ(中略)などです」
客「あ、まあ、現時点で考えられることは対応済みですね。でも―(最初に戻る)」
私「…とりあえず、データの送受信テストを行いたいので、あなたが作成したという
  開発環境の URL を教えていただけませんか?どこにデータを POST すれば?」
客「えーと、www.△△△△△.jp/○○○.php ですよ」
私「・・・・・・」

どうやらこの担当様、php で作ってるみたいです。

++++++++++++++++++++

ブログなどにメールアドレスを書くと、悪意のある業者にメールアドレスを収集されて、
膨大な量の迷惑メールが来るようになる、と、以前確かに言ったことはあるけど。
このブログの左下にあるプロフィールに、メールアドレスが書かれているが大丈夫か、と
ご親切な人から連絡があった。

画像なので、大丈夫です。
メールアドレス収集の仕組みを知らないと確かに不安だと思いますが、そんなもんです。

メールアドレス収集は、悪意のある業者の人たちが、1つ1つサイトを見ながらコピペを
して収集しているわけではありません。
そんな手間の掛かる事をしている人もいるかもしれませんが、割に合いません。
ただ、ちょっとプログラム書ける人なら、割と簡単にできちゃうと思います。
しかも、上手くいけば短時間で数百個とか数千個とか。
最近は収集よりも、それらしいアドレスを自動生成して無差別送信、かもしれませんが。

とりあえず、そんなもんです。連絡、ありがとう。



簡易自宅サーバ。

2008-06-29 23:58:13 | work

以前のエントリ時に、「あとは php のソース落としてきてコンパイルして」などと書いたけど、
実は MacOS X(10.4)インストール時に、すでに以下のものがインストールされている。
 ・Apache 1.3.41
 ・php 4.4.8
以前のエントリ時には、「 php5 」を想定して書いたんだけど、よく考えたら php5 じゃないと
困るようなソースは書かないし、仕事で今使ってるのが php4 なので、色々と試してみたりする
にしても敢えて php5 をインストールする必要も無いな、と考えを改める。

というわけで、あっさりと自宅サーバを立ててみる。
「自宅サーバ」なんていうと、結構大変なモノみたいなイメージがあるけど、Mac に関しては
その限りではない。むしろ、あまりのあっけなさに「こんなもん?」と思うくらい。
具体的には、「システム環境設定」の「共有」で「サービス」タブを選び、左側のリストから
「パーソナル Web 共有」にチェックを入れるだけ。
トップの画像がその設定したところ。

冗談抜きで、たったこれだけ。
これでもう、自分の Mac がインターネット上に公開されいる状態になる。
(ルータなどを通していて、設定をしなきゃならない場合を除く)
なお、どのアドレスで接続すれば良いかは、このシステム環境設定画面の右下に、ご丁寧にも
「このコンピュータの Web サイトを表示するには」と表示してくれているので、その通りに
URL を入力すれば良い。
ぶっちゃければ、これにチェックを入れる事で Apache が起動しているだけだと思うんだけど、
所謂 httpd.conf の中身とか、OS をインストールした段階でそれなりに設定されているという
のが助かるというか簡単というか。
DocumentRoot にしても、デフォルトだと自分のホームディレクトリ直下にある「サイト」と
いう名前のディレクトリが公開ディレクトリになっていて、ここに適当なファイルを置くだけで
それがそのまま公開される。
試しに、お約束の php バージョン表示ソース(というほどのものでもない)をサクッと書いて、
自分のホームディレクトリ直下にある「サイト」ディレクトリに置いてみる。
なお、ソースは↓で、保存ファイル名は index.php としてみる。

   <?php phpinfo(); ?>  

で、表示した結果が、↓である。


こんなに簡単にできてしまう上、インターネット上に公開だなんて書くと、あまり詳しくない人
から「自分の Mac が外から勝手に色々といじられるのでは?ファイルを勝手に削除されたり、
ウイルスをインストールされるのでは?」なんて言われそうだが、それは、無い。
外からアクセスされるのは、「サイト」ディレクトリ以下のみである。
ただし。
逆に言えば、ここに置いたファイルは全て、インターネット上の何処からでも見る事ができるし、
実行させる事もできる。
ということで、この「サイト」フォルダに置くファイルだけ、気をつければ良いことになる。

とまあこんなカンジであまりにもあっさりと公開できてしまうのであるが、ちょっと物足りない。
というのも、先日のエントリの通り、現在 PostgreSQL がインストールされているのであるが、
デフォルト状態では MySQL へ接続するモジュールは組み込まれているものの PostgreSQL は
接続できない。
また、GD モジュールもデフォルトでは組み込まれていないため、グラフなどが扱えない。
ここまでやったのだから、せっかくだから組み込んでしまおう、と思ったが、やっぱコンパイル
するとなると気楽にやれないので、躊躇。
とりあえず、httpd.conf を弄ってカスタマイズするにとどめ、後日することにした。弱っ。

とはいえ、うちのプロバイダは IP 固定じゃないので、不定期に IP が変わってしまう。
そのため、自宅サーバを本格的に稼働させるなら、Dynamic DNS の自動登録しなきゃだけど、
常用する Mac をサーバとして公開するのもナニなので、それはまたいずれやることにしよう。



サーバでスクリーンショット。

2008-06-26 02:12:35 | work

先日エントリした、かなり無謀なスケジュールの開発依頼について。
近年になく本気モード全開で、スケジュール上では割とオンスケ。実働時間は聞かないでね。
1点の躓きをのぞいては。

仕様の中に、簡単に言うと、「ログインしたユーザさんが指定した条件に一致するデータを
データベースから取得して、直近6ヶ月分サマリを表とグラフにしてブラウザ表示」という
ものがある。
これ自体は、普通に php でデータベースからデータを取ってくることができるので問題ない。
グラフは単純な棒グラフで、X軸が6項目のグラフが6個表示されれば良い。
したがって php で GD モジュールを使えば割と簡単にできるし、開発サーバとして使用して
いる他システムの本番サーバ(ありえねえ)には、すでに GD2 がインストール済み。
いまだにこの開発しているシステムの本番サーバ環境が決まっていないというのが気になるが、
開発サーバ上で動けば良いらしいので気にしないことにする。

ところが、この「現在表示されている表とグラフを、ボタンクリックすることで画像にして、
その画像を自分宛にメール送信する」という仕様も書かれていて。
仕様を見た時、確かネット上で、 URL を指定すればそのサイトのイメージを作成してくれる
サービスがあったな、と思い出し、機能的には実装可能だろうと判断。
つまり簡単に言うと、ブラウザで開いている画面を、キャプチャして画像保存するような感じ。
それを、サーバ側で実行して画像ファイルを作ってしまおう、ということ。
そんな事くらいはユーザで勝手にやってくれ、とも思ったが、画面キャプチャ( Windows で
いうところの、Alt+Print Screen )すら、やり方のわからない人もいる、ということで。

で、フンフンと色々調べていて気がついたのだが。
すみません。簡単にはできません。後輩くん、ごめんよ、「できるんじゃね?」とか言って。
いやできなくはないんだけどね。実装がかなり重い。しかも、環境次第。
まあ要するに、渡された URL をブラウザで表示するかの如くレンダリングして、それを画像
ファイルとして保存する訳だが。
なんか、ネット上では非常に情報が少ないの。
そういうサービスをやってるサイトはいくつも見つかるんだけど、勿論ソースが公開されて
いる訳でもなく、個人で検証されているようなサイトも殆ど見当たらない。
まして、Linux や Windows Server ならともかく、Solaris は皆無。
Windows なら IE のスクリーンショット作れるから、仕様にも合致。こんな時だけ羨ましい。

結局、たぶん妥当な手順としては、

・Xvbf(仮想フレームバッファ)を使用して、X の仮想環境を作る
・その仮想フレームバッファに、mozilla なり Firefox なり、ブラウザを起動する
・画像にしたいページを表示
・仮想フレームバッファをキャプチャ
・必要であれば、ファイル形式の変換、リサイズ等

なのかな、と。ただし、情報元は Linux。
しかも、Xvbf なんて勿論インストールされていないだろうから、他の本番システムが 24時間
年中無休で稼働している開発サーバ(笑)に載せられるはずも無い。
Xvbf 使わなくても、コンソールで X Window を上げとくというのもアリかなと思ったけど、
セキュリティ的にもメモリ占有的にもマズいだろう。
またスクリーンショットが IE ではないのも、「使用ブラウザは IE6 以上」となっているので、
使うがわからしてみれば違和感アリアリだろう。よく考えたら、IE にしか存在しないタグとか
CSS とか使ってるんだから、どのみちサーバサイドで正しいスクリーンショットは無理か。

結論。
自前でスクリーンショットを作成するのは、サーバ環境的にも工数的にも厳しい。

じゃ、どうするか、だけど、仕方ないので imagecreatetruecolor() で新規画像作成をして、
表の部分とかグラフの部分をちまちまと描いていって、imagejpeg() でファイル出力するしか
ないかな、と。
「できるんじゃね?」と言ってしまった償いの意味も込めて、明日作ってみよう。

ところで。
SimpleAPI の中の人は、これを独りで開発したそうだから、やっぱ凄い人はいるもんだ。
サーバを自分の好きな環境に構築できるなら、もうちょっと何とか…は、負け惜しみ。


#参考リンク

■Jamz - サーバ側でWEBサイトのスクリーンキャプチャ、サムネイルを作成する方法

■papasan's Home - ウェブサイトの自動スクリーンショット

■ImageMagick

■ImageMagick 簡単な説明(ITpro)