2012年12月30日日曜日

ログは結構繊細なんです

ログのローテーションが失敗して困っている人を見かけました。

それで話を聞いてみると、
書き込み中のログに対して監視を行なっているというではありませんか。

監視中にログをローテートさせれば失敗するのは自明と言えます。

分からないという方は、
以下のコードをお試しください。

Const ForReading = 1 

If WScript.Arguments.Count <> 1 Then
 msgbox "コマンドオプションでファイルを指定してください。", , "エラー"
 WScript.Quit
End If

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.OpenTextFile(WScript.Arguments(0), ForReading) 

 msgbox WScript.Arguments(0) & "を読み込みロック中です。", , "確認"

objFile.Close

適当なファイルをログファイルに見立て、
このスクリプトの第一引数につっこんでください。

メッセージボックスが表示されている間に、
ログファイルに見立てたファイルの名前を変更してみてください。

その操作は失敗するはずです。

読み込みロック中は名前の変更ができないからこうなるのですが、
意外と知らない人が多いみたいなので口にしてみました。

ちなみに常時監視とまでいかなくても、
アンチウイルスのスキャンなどでも起こる可能性があります。

だからアホな監視の設定はしないようにお願いします。

意外な相性問題?

Ubuntuにeclipseと入れたら、
奇妙な現象に出くわしました。

PropertiesのInstalled JREsのページがエラーで表示できないのです。

調べてみると、
どうやらOpenJDK7を入れているときに起こる現象のようです。

手っ取り早い解決方法は、
eclipse.iniに以下の設定を加えることです。


-Dcom.ibm.icu.util.TimeZone.DefaultTimeZoneType=ICU

情報の出処はこちらです。

…つまり、OpenJDK7のTimeZoneになんかあるってことですかね?


第5回 Java7はここが違う!


前回<>次回

登場人物
  • NRT
    猪突猛進なプログラマー
    考える前に体力勝負でプログラミングするタイプ。
    たまに鋭い洞察力を見せるため、
    周囲からは落ち着いてさえいれば…と言われている。
  • SSK
    冷静沈着なプログラマー
    20:80の法則に習い、実は仕事の一部分を学習に当てている。
    他の人はそれに気がついていない。
    Java7についても以前からチェックはしていた。
  • SKR
    紅一点なプログラマー
    暗算は早いけど、プログラミングはそこそこ。
※登場人物は忍者ではありません。架空のプログラマーです。

新機能:Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods


~~~ 社内 - 会議室 ~~~


SSK「どうして…こうなった…」

SKR「仕方ないわね、本当にJava 7を使うことになっちゃったんだし。」

NRT「へへっ!腕が鳴るってばよ!」

SSK「とりあえず、構文のみに絞るからな。
       クラスの変更や追加は流すくらいにしかやらない。
       せっかくだし新しいJavadocにでも慣れればいい。」

SKR「新しいJavadoc?Java 6とどう違うの?」

SSK「ハッキリ言って別物に見えるくらい違う。
       …そんなことよりも、今回の本題を始めるぞ。」

NRT「よっしゃー!どんとこい!」

SSK「今回は強化された警告について説明する。
       とりあえず、この2つのソースを見てくれ。」

*ひとつめ*
List fooList = new ArrayList<number>();
List<string> barList = fooList;

*ふたつめ*
public static <t> void foo(List<t> list, T... elements) {
    // 何かの処理
}

public static void bar(List<string>... l) {
    // 何かの処理
}

SSK「Java7では、こいつらは警告扱いになる。」

NRT「ど、どういうことだってばよ!?」

SKR「ひとつめは分かるわ。…というより、今まで警告が無かったの?」

SSK「そうらしいな。
       ひとつめは総称型が違うものへの代入、
       ふたつめは…可変長引数の使い方だな。」

NRT「あ!俺もひとつめは分かったってばよ!
       でもふたつめがぜんぜんわかんねぇぇ…」

SKR「もしかして、可変長引数にListを使っているのがいけないのかしら?」

SSK「そう思っていてだいだい間違いはないと思う。
       具体例が出せなくて悪いが、
       この実装を避けるように組んでくれればそれでいい。」

NRT「なら簡単だってばよ!」

SSK「おまえにこんな処理が必要な箇所は任せないから安心しろ。」

NRT「な、なにお〜!」

前回<>次回

ドット絵描くならWindows?

そろそろ気の抜けたアイコンを変更しようかと思い、
Ubuntuでドット絵を描くためのツールを調べました。

まぁ〜ったり☆ブレンドで紹介されているmtPaintを試してみましたが、
ドラッグ中に右クリックで中断できない事や、
すぐに色スポイトが見つからない事などから諦めました。

自分のドット絵はiDraw2が基盤となっているせいかもしれませんが…
素直にWindowsでEDGEを使うことにしましょう。

Macはどうなんでしょうか?
やっぱり充実したツールがあるんでしょうか?

とりあえず、
LinuxとWindowsではWindowsの方が有利だと判断しましたとさ。

ドッターはまだまだ死なんよ!


2012年12月22日土曜日

レイアウトを変更しました

マイリンクに色々集約させて、
右側の見た目をすっきりさせました。

本当はソースコードの表示も改善したかったのですが、
Bloggerに簡単に導入できるのが少なかったので見送りました。

しかし、思ったよりも色々なサービスを利用していたんですね。
…Pixivとか何か描かないと。


2012年12月13日木曜日

理解できないことを否定する理由

(当てはまる人物が多すぎて)誰とは言いませんが、
理解していないのにも関わらず、
むやみやたらにその理解できない物事を否定する人がいます。

例えば、
「関数で共通化すると読みにくくなるから使うな」
とか、
「オブジェクト指向なんて業務には使わないから無駄なものだ」
とか、
「ユーザーインターフェースなんて飾りでしかない」
あたりが良く聞くやつでしょうか?

それぞれ分からないことを前置きした上での発言です。

もし論理的に考えるのであれば、
分からないことは不定なので、
評価できないが答えなはずです。

学習を続けることで誤解が解ける人もいるんですが、
大半の場合は罵り、蔑み、学習しようという意欲すら見せません。

自分にはむしろそこが理解できません。

なぜ「分からない」と言う事ができないのでしょうか?

…と最近まで思っていましたが、
ファンタジーものを読んでいてひとつの仮説が思い浮びました。

未知なるものに対し、
無意識に恐れているのではないでしょうか。

ほら、異端な能力を持った人を排斥する村人Aみたいな人物です。

それのスケールダウンだと思えば、
いくつか符号する点が見えてきませんか?

つまり彼らを説得するのは、
排他的な村社会の住人を意識改革させるのと似た難易度なわけです!

これって、
つんでない?

2012年12月7日金曜日

意志の強さと頑固さは、多分見分けがつかない

自分が小学校のときでしょうか。

町内のレクリエーションか何かで、
小学校の校庭の○☓クイズがありました。

最初の1問目が何だったのか思い出せませんが、
自分が選んだほうは自分一人だけしか居ませんでした。

小さな子供が、
大きなマスに一人ぼっちで立っている状態です。

自分はそれでも、
少数派という理由で答えを曲げることはありませんでした。

まあ当然間違っていて、
自分は唯一の1問目失格者となってしまいました。

問題はこれをどう評価するかです。

意志が強いと見るべきなのか、
ただの頑固さと見るべきなのか…
自分はこれに明確な回答を持ち合わせていません。

きっと意志の強さと頑固さは、
そんなに違わないのではないでしょうか。

周りの大勢から見て、
正しい選択を貫いているように見えれば意志が強いと言い、
間違った選択を死守しているように見えれば頑固だと言うのではないでしょうか。

貴方の周りの方に頑固者と評価している方がいるなら、
ちょっとだけ考えてみていただけませんか?

もしかしたら、
貴方の方が意志の通そうとする人を邪魔する悪者なのではないかと。

その上で頑固者だと評価するだけの意志の強さがありますか?


2012年12月5日水曜日

評価方法を評価しよう

自分は目標設定型の評価を、
自立性を阻害する評価方法として嫌っています。

いえ、厳密に言えば違います。
自分自身の目標を目標設定型の評価に当てはめるのが嫌いです。

目標を決めること自体には何の異論もありませんが、
評価が上がるというニンジンをぶら下げていることに強い危機感を覚えるのです。

自律的であったはずの行動を、
飴とムチの世界に引きずり下ろしている可能性があるからです。

自律的なモチベーションと言うのは、
一度喪うと森林を丸々焼き払うのと似た状態になります。

つまり復旧するには膨大な努力が必要で、
もしかしたら元に戻らないかもしれないのです。

少なくとも、
強力な反証が無いうちにおいそれと飛び込むことはできません。

それでどうでも良い目標を設定し、
どうでも良いため達成していない日々です。

それは自己責任なので置いておくとしましょう。

問題は本当に評価方法が間違っているかどうかです。

自分にしかマイナスで無いのであれば、
自分を例外扱いとして評価方法を継続するのは正しい選択です。

もしも多くの人に効果が見られないのであれば、
動機付けとして問題を抱えていると言っても良いでしょう。

…あれ?

今の評価方法って評価されてるの?

そういえば、
こういう統計がでたから評価方法をうんぬんとか聞いたことがありません。

測定されてないのは大問題ですし、
幹部クラスにしか知られていないならぜひとも公開して欲しいです。

自分の会社で採用した評価方法なんですから、
自分の手で正しさを証明して欲しいです。

2012年12月4日火曜日

その言葉、言い換えてみようよ

「ITは文系領域も多いからコンピュータサイエンスなんて知らなくていいんだよ」的な言説が蔓延ることが業界の現状を招いているのだが
を読んでいて、
ふと思ったことがあります。

この記事では“文芸センス”という言葉が使われていますが、
もっと分かりやすい言葉で言い換えた方が良いのではないかという話です。

そこで“文芸センス”を発揮するために必要な知識やスキルの集合を、
“アート”と読み替えることを提唱したいと思います。

用例はこんな感じ、
「おまえのプログラミングは“スキル”であって“アート”ではない。」

なんて、どこかのラノベで見たような表現を使えます。

こんなタイトルの本だってあるんですし、
そこまで中二病ってわけじゃないと思います。

というわけで、
“アート”と呼べるプログラミングをしていきましょう!


ソフトウェア会社以外でも最高の開発環境を手に入れるべきか

ソフトウェア会社ではない企業へ面接へ行ってきました。

そこであまりに開発環境について質問しようとしてしまったので、
「ソフトウェア会社じゃないんだから…」
という返答をいただいてしまいました…

ああ、これで面接はダメだったな…と思いながらの帰り道、
「本当にそうなのだろうか?」
とも考えてしまったわけです。

終わったものは仕方ないにしても、
今後のことを踏まえればまとめておく価値があると判断しました。

まず自分としての結論は、
「最高の開発環境が必要とは限らないが、
 規模が大きくなるほど必要になる確率が上昇する。」
と考えています。

大きな企業であればあるほど、
良いシステムであることの効果がスケールするからです。



「社内システムのGUIがきれいだからって何になる?」
確かに、何にもなりません。

でもUIは見た目だけではありません。

UIで誤操作率や作業時間を半減させることができたなら、
それは生産性の向上へ貢献しています。



UIはバカにできませんが、
内部の動作はもっとバカにできません。

バッチ処理に必要な時間が10分の1にできれば、
余ったリソースを別のことに割くなりコスト削減することもできます。

BIの情報収集であれば、
経営判断の速度も向上します。



例えERP導入していたとしても話は違います。

ソフトウェアに使われるのではなく、
ソフトウェアを従えるためには、
高度なスキルが要求されます。

経営的に言えば、
お金に使われるかお金を従えるかと言い換えた方が良いでしょうか。



紙に書いてやり取りした方が早いパターンなんていくらでもあります。

自分だってシステム手帳は未だに紙ベースです。

しかし、本当に電子化に不向きであると言い切れるでしょうか。

電子化のメリット・デメリットは?
導入のコストは?
何も考えずに無条件で紙を選択していませんか?

最新のOCRを導入すれば和洋折衷も可能なのでは?

おっと、その場合の連携プログラムはどうするの?



要は大きくなればなるほど、
システムが経営の根深いところまで影響を与える確率が上がるのです。

そして良いシステムを生み出すためには、
最高の開発環境が必要で、
最高のプログラマーやプログラムマネージャーが必要なんじゃないかと考えました。

というより、
転職先が良い開発環境なのか気になるのは普通じゃないの?



なんだかんだ言ってますが。

今回の面接先では杞憂の問題かと思います。

私服OKかと質問したときに、
「ネクタイで生産性が上がりますか?」
と返されました。

そのことを理解しているのであれば、
自分の企業に最適な環境は自然と追求できているはずです。



それが分かっていない企業が星の数だけあるんです。

変な質問をして、
申し訳ありませんでした。


2012年12月2日日曜日

管理者権限に隠し事は難しい

何の話かはあえて語りませんが、
やっぱりどうやっても隠すには難しいです。

実行中のメモリダンプを取ってしまえば、
よほど工夫していない限り中の文字列は筒抜けなんです。

実はメモリダンプを想定していないソフトウェアって多いんじゃないでしょうか?

え~あ~、
もしもソフトウェア中に操作者から隠したいデータが入っているなら、
それはバレると思ってください。

まあパーミションまで見てないので、
管理者権限で無ければなんとかなるかもしれませんが…

逆に言えば、
管理者権限があったらアウトです。

少年ハッカーに破られて恥をかいても、
自分は知りません。


stackoverflowのTシャツは大事にするべき

stackoverflowのTシャツが気に入ったので、
追加注文しようとしました。

しかしオンラインショップがもう閉店していたのです!

閉店理由を日本語訳(適当)してみると、
思ったよりも売れすぎててんやわんやな上に、
税金もかかってさあ大変。
だから閉店しました!う~☆

…のように読めました。

どうやら今の手持ちを大事にしないといけないようです。

というよりも、
日本でこのTシャツ持っている人どんだけいるんでしょうね?


2012年11月26日月曜日

ひとりカラオケとカラオケは別物

ちょっと時間をつぶす必要があって、
ひとりカラオケ専門店に行ってみました。

まあ何から何まで普通のカラオケと違っていて、
曲を予約する端末くらいしか見慣れたものがありませんでした。

って、そこを言いたいのではないんでした。

ヘッドホンで自分の声を聞きながらの、
誰も聴いていないひとりきりの歌唱は、
歌う心情がまるで違うんです。

普通のカラオケですと、
歌を聞くのは同席した自分以外の人になります。

少ないながらも観客が居るわけです。

しかしひとりだけのカラオケであれば、
歌い手=観客となります。

自分のライブを自分で聞いているような、
不思議な状態になるのです。

そして同一人物なわけですから、
歌い手の心情をすべて理解して聞くことになります。

思い入れの強い曲を歌うと、
普段は気がつかない自分の想いが聞こえてくるのです。

気がつけば、
涙を流しながら必死に歌っている自分が居ました。

…これは誰かに見られたら悶死しかねません。

ちょっと値段は張りましたが、
貴重な体験でした。

…いやもしかして、
そんなこと感じるのは自分だけだったり?(顔面蒼白)

2012年11月21日水曜日

SIerへのアクシズ落とし

自分はSIerで働いていながら、
SIerという形態そのものについて疑問を持っています。

どこかで読んだ例えで言えば、
チョコレート屋がチョコレートの作成をアウトソースしているようなものだからです。

自前で作っているのは包装だけ…って、
それはラッピング屋って言うのではないのですかと。

これが多重派遣構造…
いやいやいや、事態はもっと深刻です。

チョコレート屋はSIerを指していのではありません。

俗に言う、ユーザー企業を指して言っているのです。

チョコレート屋に対して、
チョコレートの製造工程を効率化するように提案しているのがSIerってわけです。

しかもチョコレート屋だけではなく、
たい焼き屋さんや定食屋さん、
和菓子屋さんとかにも提案できる必要があります。

自分には、
スーツを着た料理もろくにできないような人が近づいてきて、
厨房を荒らした挙句にお金を巻き上げているような嫌悪感を覚えてしまうのです。

要はソフトウェアと経営はもはや密接に結びついていて、
ソフトウェアを外に依頼することは経営を依頼することと同義になっているのです。
(参考:プログラミングとは経営判断の集積である )



こんな状態ですと、
アクシズのひとつでも業界に落としてやらねばと思いませんか?

SIerに対してのアクシズ落としとは、
技術のある人を片っ端から別の業界へ移すことです。
(参考:たしかに本当の大変化はこれから始まるのかもしれない。でもその前に大崩壊が)


技術が大事と口だけでは言いつつ軽視しているSIerに、
本当に技術が無ければどうなるかを体感させるのです。

人月計算は、
一部の優秀なプログラマーでバランスが取られていた事実を突きつけるのです。
(参考:人月単価が諸悪の根元)



もしそこにアムロ・レイのような存在が登場するのであれば、
それはそれで良いでしょう。

是非ともSIerの持つ可能性とやらを示して欲しいものです。
※政府に泣きつくのは可能性でもなんでもありません。

少なくとも、
今までのSIerよりはずっと良い姿になるでしょうから。



ああ、記事を書いていたら本当にやりたくなってきました。

さっさとSIerから抜けだして傍観者になろうと思っていましたが、
日本がソフトウェア開発が腐るのを見届けるのも忍びないです。

賛同者が多ければ、
本当に実行に移したいです。

いっしょにアクシズ、
落としませんか?


ROWEはなぜ普及しないのか

皆さんROWEは知っていますか?

ある意味ホワイトカラーの働き方では、
究極形と言えるかもしれません。

全体にしろ部分的にしろ、
それを導入して成功している企業は多く聞き及んでいます。

しかしそうでありながら、
その数は本当に少ないようなのです。

別に全てがそうなるとは微塵も思っていませんが、
もうちょっと増えてもいいような気がするのです。

日本で導入している例で言えば、
自分が知っている限りゼロベース株式会社のみです。

少ない、どう考えても少ない。

いくら考えても情報が足りないので仕方がないですが、
どんな可能性があるのか考えてみたいと思います。


  1. 知られていない
    ROWEについて知っている経営者が少ないのかもしれません。
    プログラマーのアンテナと経営者のアンテナでは、
    情報の取得範囲が異なります。
    個人主義を好むような人しか知らないニッチな話題なのかも?
  2. 知られていない~パート2~
    いえいえ、知らないのは自分の方かもしれません。
    実際にはROWEを導入している企業はたくさんあるのですが、
    自分がそれに気がついていないだけかも?
    なるほどなるほど…って、そんなことあるんでしょうか?
  3. 食わず嫌い
    経営者は知っているのですが、
    あまりに突拍子もない思想に拒絶反応を見せているのかもしれません。
    クリエイターとしての感覚が無い経営者であれば、
    1ミリも理解できないことは容易に想像できます。
    生産性と経済の両方に素養がある人なんて、
    正規分布の隅っこの存在であるからして、
    ROWEの存在も正規分布の隅っこの存在…という理屈です。
  4. 影に隠れた失敗を知らない
    実はROWEを実践した企業はたくさん存在するのです。
    ただし、成功するのはほんの一握りでしかないのです…という可能性。
    確かにこと理由は何となくな説得力があります。
    でもそれって、ROWEとは別の原因のように思えるのですが…
  5. 適用可能な企業が少ない
    ROWEを適用できる企業には条件があって、
    その条件が針の穴を通すように繊細だったりするのかもしれません。
    自分の企業に使えるか考えてみて、
    条件に当てはまらないため諦めてしまうわけです。
  6. その他
    適当に考えた可能性ですから、
    当然抜けもあるでしょう。


自分は本命が3番、
対抗が4番、
大穴が2番です。

ど れ だ ?



気づけばたった半分だった…

去年とブログの投稿数を比較してみると、
この記事でちょうど去年の半分になることが分かりました。

いやあ、三日坊主は回避できたとはいえ、
なかなか頻度が下がってしまったものです。

ニコニコ動画とelonaに人生の大半を捧げているのも問題ですし、
部屋の大掃除という最優先課題も全くできていません。

むしろAmazonで買い物し始めてからというもの、
専門書の冊数が一挙に増えてしまったのでさらに混沌としてしまいました。

来年は倍書きたいですね!

もしくはブログ以外のちゃんと体系化した文書を!

あ、絵のトレーニングだって再開しないと!

う~ん、そういえば作曲の基礎練習もしたいの忘れました。

いやいや、
作りたいソフトウェアが何本あるか覚えている上でそれ言ってる?



…溜まったいるブログに書くネタリストも消化しろっての。


2012年11月16日金曜日

自分が質問したいことはそんなにない

自分は技術系の質問掲示板が結構好きなのですが、
自分自身が質問したことは無かったりします。

単純に、
「あ、これは質問したいな。」
という感覚が無いんです。

だって動作見て、ヘルプ見て、ソースコードを見れば、
大抵のことは判断が付くじゃないですか。

つまり最初のスタートアップに成功すれば、
もうほとんどクリアです。

後はハックするのみです。

そのスタートアップだって、
メジャーどころは誰かしらが丁寧な解説記事を書いています。

マイナーなら質問しても回答がないでしょうし…ん?

…いやもしかして、
質問したいと思うほど難しいことをしていないのでは?

(嫌な汗)

今年はもう少ないので、
来年はこの疑念が晴れるようにしたいです。


2012年11月12日月曜日

本物と思えるプロの言葉

まったく業界が違っていても、
この人はプロだと思える瞬間があります。

誤用?もはや正解?「印鑑をご持参下さい」にひっかかった
の記事はまさにその瞬間でした。

注目したのは最後の一文、

日本語は「ひっかかりどころ満載」だ。だから面白い。

これだけ日本語の不条理さを噛み締めてもなお、
面白いと言える心意気。

自分はこれこそがプロの発言だと感じ、
思わず涙がこぼれそうになりました。

ですから自分もこう胸を張って言えるようになりましょう。

プログラミングは「ひっかかりどころ満載」だ。だから面白い。

気持ちだけではプロにはなれません。

でも、気持ちがなくてもプロにはなれないのですから。


2012年11月10日土曜日

中身を鍛えるのが先か、中身をよく見せるのが先か

自分は中身が充実した状態でないと、
相手に自分をよく見せる工夫をしたくないと考えています。

それは詐欺的行為であり、
少なくとも自分は行うことができない邪悪な行為と判定しています。


しかし他にも考え方があります。

自分をよく見せられるようになるまでの間に、
自分の力を披露するチャンスを逃しているのではないかという考えです。

それに心理学的な見地からも問題があります。

第一印象の見栄えは想像以上に重要で、
それを覆すのは相当な苦労が必要なことが行動経済学からもわかります。

つまり見栄えの問題は、
先行有利の原則が働くのです。

まいったまいった…


おっと、
ここでもまだ見落としがあります。

中身が無い状態で見栄えを良くしたら、
本当に良く見えるのかってところです。

これは微妙なところなんですが、
よっぽど上手くやらないとバレるんじゃないでしょうか?

分裂勘違い君劇場では、
コミュニケーション能力をウリにする人が醜悪な理由
なんて説明されています。

最初に言った通りで、
詐欺的行為だってことです。

詐欺師のように振舞わない限りは、
それは醜悪に見えてしまいますし、
自分がやるならその醜悪さに耐えなければいけなくなります。


自分としては、
プログラマーのスキルツリーを伸ばすのに必要でない限り手をつけないでしょう。

例え後攻不利であったとしてもね。


2012年11月8日木曜日

感情労働は何色?

職種をものすご~~く大雑把に分けると二種類あって、
知的労働と肉体労働に分けれられます。

しかし最近もう一つの種類として、
感情労働」なるものが提唱されていることを知りました。

ものすごくひねくれた説明をすれば、
感情をすり減らしたり、ごまかしたりするタイプの労働だと思ってください。

負債の催促なんかは、
その極値の職業ではないかと囁かれています。

サラリーマンでも覚えがあると思いますが…

こういうのははっきりとした分類ではなく、
どのタイプが一番大きい比率を占めているかということでしょう。



さてさて、
ここからがどうでもいい本題。

知的労働はホワイトカラー、
肉体労働はブルーカラー、
では感情労働は?

調べたのですが、
どうにも決まっていないようです。

知的労働がホワイトなのが悔やまれます。

もしこれがグリーンであれば、
感情労働をレッドにしてRGBにできるというのに。

そしたら各職業を色で表現するという、
素敵な分類ができたでしょう。

まあ今さら覆らないでしょうし、
せめてブルーとホワイトが混じっても美しい色にしたいです。

それでいて特徴をつかむような…

やっぱりレッド?

ああ、くそ!
ならグリーンが!
グリーンが!!



「情けは人の為ならず」を好きになれない

あ、別に間違った意味の方じゃないですよ?

一応説明しておくと、
情けは相手の為にならない…というのはよく聞く間違いです。

情けは巡り巡って自分に返ってきて、
自分を助けるというのが本当の意味…で合っているはずです。

でまあ、
自分に還元されるってところが好きになれないわけなんですよ。

自分は、
情け…つまり親切に見返りがあるかのようにしたくはありません。

見返りを求めないからこそ、
本当の情けなんだと思っているからです。

「誰かを助けるのに、理由がいるかい?」

これはゲームの台詞ですが、
まさに言いたいことそのままです。

一切の見返りを求めず、
重すぎる重荷をそっと持ち上げてあげたい。

相手が潰れることなく道を進めた結果だけを糧に、
また誰かを助けたい。

そういう情けを、
自分は目指したい。

…ん?
なんか宮沢賢治っぽい?


2012年11月5日月曜日

本の薦めかた

「この本絶対面白いから!
ほら、貸してあげるから読んでみなよ!」

何て言われて、
本を借りることになったことはありませんか?

自分の場合、
このパターンで借りた本を読む気が全く起きません。

ペット自慢を延々と聞いている感覚に陥って、
読む前から食傷気味になってしまうのです。

相手に本を読ませる手段としては、
最悪の方法じゃないかと勘ぐってしまいます。

ならどうやって本を薦めればいいのか?

まだ答えは出ませんが、
多少はこうしようというものがあります。

まずは、
その本を読んでいない事をバカにしてはいけません。

例え【人月の神話】を読んでいないマネージャーがいたとしても、
ブルックスの法則を思いっきり無視した管理をしていたとしても、
まずはぐっとこらえます。

そして、
自分は本を読んだことをアピールするまでは良いのですが、
読んで欲しいとは言わないことです。

どんな内容で、
どういった人向けの本なのかを軽く説明するに留めます。

ここでポイントなのは、
多少調べる余地を残すことです。

「検索すれば色々と分かりますよ。」

なんていい文句ではないでしょうか。

とにかく、
自分の意思で手をつけるのが大事です。

もしそこで興味を持てば、
自分で買うなりするでしょうし、
貸して欲しいなり言ってくるかもしれません。

…それでも読まない人は、
多分難しいと思います。

自主的に読んでこそ身になると思うので、
無理矢理読ませたところで効果は薄いです。

何か必要性を感じる出来事が必要になると予想していますが、
さすがにそこまでのシーンメイキングを提案する技量はありません。

ひと芝居打てるならやってみては?
という程度でしょうか…

自分としてはキッカケは出したわけですし、
それを必要とするかは本人次第としてしまいます。

芝居を打つのは…やりすぎかな?

読ませたいというエゴは、
本当に押し通さなきゃいけない程の価値はあるのか…

そこで相手のエゴを軽視してはいないだろうか?

まあ何が言いたいかと言うと、
あんまり無理矢理薦めても逆効果ってことです。

2012年11月3日土曜日

世間一般の理解

「ハッカーとクラッカーは違う!」
と細々と叫んでいるのが自分の立場でしたが、
最近はさらにこの亜種が出てきました。

「システムエンジニアとプログラマーは違う!」
と細々と叫ぶ機会が増えました。

いえ、世間ではもはやプログラマーという言葉が忘れ去られているかの如くです。

これは、
これだけは、
認めない、
認めるわけにはいかない…!

大衆は、我々から誇りある称号まで獲ろうというのか!?

プログラマーの人たちはもっと社交的になるべきだとか言われていますが、
こんな屈辱を受けてもなお言い続けるというのか!?

ああ、
その個人それぞれは悪くないんだ、
それは分かっているんだ。

だからこそ!
この問題は放っておけないんだよ…!

つい思ってしまいます。
システムエンジニアという言葉を作った方々の破滅を。

…という独白。

2012年11月2日金曜日

一点特化の幻想の幻想

よく日本では、
一点特化型の成長が嫌われる気来があります。
(いえ、海外でもそうかもしれませんが。)

良くいう、
短所を無くせというやつです。

長所を伸ばしても短所が足を引っ張るという意味だと思われます。

でも一芸に秀ていなければ、
他の凡庸な誰かと大差ありません。

いざとなれば十把一絡げに切り捨てられるではなきでしょうか?

…と言いたいところですが、
厄介な落とし穴があります。

一点特化はその能力が高すぎる故に、
正しく測定できる人間が限られてしまうのです。

だから短所ばかりが目に行ってしまい、
貴重な人材だと気づかれることなく切り捨てられてしまいます。

ドラゴンボールに例えれば、
スカウターが壊れるようなイメージでしょうか?

戦闘力に10倍の開きがあったとしても、
どっちもスカウターが壊れれば違いなんて分からないのです。

ああ、一点特化は幻想なのか!?

…本当にそうでしょうか?

一芸に秀ることで成功している人間は確かに居ます。

彼らはなぜ能力の高さが理解されたのでしょうか?

彼らは、
彼らはもしかして、
スーパーサイヤ人になれたのではないでしょうか。

とっても目立つ逆さ金髪的な意味で。

彼らはサイヤ人の壁を突破したのです。

例え墓穴を掘ったとしても、
掘り抜けたなら、
あなたの勝ちってわけですよ。

つまりはスーパーサイヤ人になれれば、
一点特化の幻想は幻想になります。

…ならどうするべきか?

自分が思うに、
一点特化にこだわりすぎて失敗してるんじゃないかと予想しています。

たった1つのスキルしか振り分けないせいで、
スキルツリーに限界が来ているのです。

スキルを本当の意味で極める為には、
周辺にある関連スキルを取得しないと到達できないのです。

例えば日本人ブログラマーがプログラミングを極めようとします。

しかしある段階になると、
英語をいくばくか取得しないと次へ進めなくなのです。

ここで英語を覚えないと、
スーパーサイヤ人は夢のまた夢となってしまいます。

一点特化は正しいのです。

ただ、一点特化を成立するには多少は一点特化ではない必要があるのです。

だから一点特化は幻想であり、
一点特化の幻想もまた幻想なのです。

…実際にはそんな単純な話ではないでしょうけど。

カレンダーに予定がいっぱい

自分はGoogleカレンダーを使っているのですが、
大抵は真っ白な状態です。

着の身着のまま…ってほどではないですけど、
ダラダラとナマケモノのように過ごすのが大好きだからかもしれません。

しかしここ数日は(自分にしては)キッチリとスケジュールが埋まりました。

時代の風が吹いているのかも?

帆を立てて風に乗ってみるのも悪くないかもしないですね。



2012年11月1日木曜日

アナログ電話は基本筒抜け

よく通販などのサービスでは、
電話一本で商品が購入できるサービスがあります。

そこでお客様を識別するのに発信者番号と暗証番号を使います。

発信者番号はまあ仕方ないとしても、
問題は暗証番号です。

0~9、*、#で構成された複数桁の番号を押すわけなんですが、
まあ筒抜けなわけです。

ちょっと電話線を引っ張れば、
簡単に盗聴することが可能です。

通販ならまだ良いですが、
証券会社などになるとかなりこれが致命的です。

そこで、
ジャミング入力という仕組みが導入されました。

暗証番号を入力している最中に、
相手側からランダムに電話機のボタンの音を流して混ぜこぜにしてしまうんです。

これで一安心…にはなりません。

このボタンの音、
まず本物の音と違うと言っていいでしょう。

なぜなら本物のボタンの音がマイク側に入ってしまうと、
ボタンを押したと勘違いしてしまうからです。

んで、電話機のタイプや使い方によっては入ってしまいます…

気が付かれない程度に音の高さをずらして回避するわけなんですが、
機械相手ならもろバレです。

ちょっとしたツールを通すだけで、
本物のボタンの音だけ引っ張ってくることができます。

いえそもそも、
ボタンの音の大きさを合わせるなんて難しいので、
音の大きさの違いでも識別が可能です。

それを言い始めると、
ノイズの量でも(ry

とにかく、
アナログの電話の内容はどうやったって秘密とは成り得ないと思ってください。

セキュリティが甘いってこと、
気がついていますか?



2012年10月31日水曜日

githubから始まるストーリー?

どこかの書き込みで見てはいました。

github経由での転職紹介…

それを見た自分は、
「こやつめ!ハハハ」
とまるで信じていませんでした。

そんな自分に、
github経由で案内が届いたんです!

実話だったのか!?

もしかして、
日本人であそこ使えるってだけでかなりのフィルタリングになるんでしょうか?

それは何ともはや…
技術平均が低くて悲しくなる予想です。

あんなコードで紹介が来るのであれば、
転職を切に願う人はソースを乗っけてみては?

あんなのより良いソース出せる人なんて腐るほどいるでしょ?

追記:転職エージェントに踊らされない技術ということで、あまり鵜呑みにはしないように~

追記2:電話は滅多に出られないし、折り返しても受付に怪訝な顔されるのでメールを待っていたら、同じ会社の別の人から紹介メールが…そんなものか。



2012年10月30日火曜日

10000アクセスを突破しました

もうしばらく先かと思っていましたが、
5桁の大台に乗りました。

閲覧してくださった方々、
どうもありがとうございます。

なんだかんだで、
継続は力ってことなんだと感じます。

これからもくだらない記事を書き続けると思いますが、
よろしくお願いいたします。


2012年10月29日月曜日

Log4j2はもう試した?

肩赤な話題ですが、
Log4jのバージョンが2.0になってしばらく経ちました。

公式ページを覗いてみると、
今までとはガラリと変わった仕様の数々を垣間見ることができます。

今まで自作していたあのアペンダが、
2.0では不要になる…かもしれません。

そろそろどこかが特集でも組むかと思いましたが、
ググった限りでは(日本語記事は)まだ無さそうです。

Java7の記事をさっさと終わらせて、
自習代わりにこいつの記事を書きたいものです。

いや、記事を書く気力がね?
次回の中身は半分くらいできてはいるのですが…

そんな早朝…



2012年10月26日金曜日

オーダーメイドという名のギャンブル

オーダーメイドというのは、
よくよく考えれば難しいものです。

完成品はまだこの世に存在していないのに、
想像通りのものが出来上がるのを期待されるわけですから。

オレゴン大学の実験の画像を知っていれば、
それがどれだけ分の悪い賭けか分かると思います。



と言っても、
そこまで分が悪くない業界もあるでしょう。

スーツのオーダーメイドなどがその例です。

完成品に近いものがショーウィンドウに飾ってあるでしょうし、
どんなスーツが欲しいかもかなりハッキリしているからです。

それでも失敗はあるでしょうが、
全体から見ればそれほどでもないでしょう。

建築などになると土地の形・大きさ、
要望などもあってぐんと成功率が下がります。

そしてソフトウェアになるともっと下がることでしょう。

これは職人の腕の問題なのでしょうか?

自分はそれだけではないと思います。

オーダーメイドは職人の腕以外にも成否を分けるパラメーターがあるわけです。



それは顧客の理解度ではないでしょうか。

理解度が低いと伝える要望が間違っている可能性が高まります。

誤りを正せばいいという考えもありますが、
顧客は誤りを認めるでしょうか。

認めたとしても、
真偽が入り混じった状態から簡単に真実が導きだせるものでしょうか。

名探偵はそうそう居ないから名探偵なわけです。

何が言いたいかと言うと、
よく分からない状態でオーダーメイドを頼むのは危険だということです。

注文したい物についてよく理解するか、
既に出来上がった商品から選ぶべきでしょう。

そうしないと、
大抵の場合手に入れるのはゴミクズとそう変わりません。



ほら、ゲームとかでよくあるじゃないですか、
主人公専用の武器とかそんなやつ。

武器が主人を選び、
その人以外使えないようなタイプのあれです。

世界でただひとつの一品は、
あなたにも素養を要求するものなのですよ?

あなたはそれを手に入れるに値しますか?

注文する前によく考えてみてください。



追記:
スーツ屋さんや建築屋さんの話は憶測なので、
間違っていたらゴメンナサイ。


2012年10月25日木曜日

靴やスーツを寝かせる効果

よく、靴やスーツはローテーションさせろと言います。

連続で使用すると痛みやすくなるため、
数足・数着で回して連続使用を抑える訳です。

どうにも人間の汗が原因と言われていて、
完全に乾燥させるには一晩では足りないとか何とか。

んで、自分は疑問に思ったわけです。

「本当にそうなのだろうか?」

そこで研究論文や参考文献がないか探しましたが、
今のところ発見できていません。

…何か怪しいです。

通説や経験則だけで、
真面目に研究されたことはないのでは?

もし効果が無いという結果が出たら、
かなり世間を騒がせる話題かもしれません。

なかなか面白そうです。

しかし実験はしたいですが、
日常生活の中では誤差が大きすぎる気がします。

何が決定的になる測定方法はないものか…



2012年10月24日水曜日

Online Service Gateが隠しているパスワードを手に入れる

この記事で指摘した脆弱性は既に修正済みです。

Office365との連携ツールのひとつです。

Office365には端末ごとにアクセスを制限する機能がありません。

例えば仕事場のパソコンからはアクセスできるけど、
自宅のパソコンからはアクセスできないようにする…ことはできないわけです。

Online Service Gateを使うと、
Office365のパスワードを隠してしまいます。

社員にはOnline Service Gateのパスワードだけが通知されます。

そしてOffice365にアクセスする際には、
必ず(認められたパソコンに入っている)Online Service Gateを使うことになります。

そうすることで、
Online Service Gateが認めたパソコンからしかアクセスできないようにするわけです。



  • しかし…

派遣先にこれが入っていたわけなんですが、
この隠されたパスワードを覗く方法を見つけてしまいました。

問い合わせフォームに連絡を入れてから3週間以上返信もないことですし、
啓蒙活動ということで方法を公開したいと思います。

返信がないということは、
きっと取るに足らない事象なのでしょうしね。

返信がありました。
連絡が無い間、
改修を頑張っていたそうです。



  • というわけで

キャプチャー画像を交えつつ説明していきます。
あ、環境はWindows XPとIE8で試しています。
…多少違ってもいけると思いますが。

まず、以下がログイン直後の状態です。

[OWA Helper]を選択し、Webブラウザを開きます。
そうすると何やらサインインしている画面が…

ここで画面が遷移する前にすかさずWebブラウザの停止ボタンを押します。
IE8なら上部にある赤い✕印のボタンです。

しばらくすると、画面が晴れて通常のサインイン画面になります。

さてこれで、
○Office365のURL
○ユーザーID
○パスワード
が一同に顔を合わせているのにお気づきでしょうか?

え?パスワードが伏字のままですって?

そんなの適当なフリーウェアを使えば一発ですって。

今回は「PeekPassword+」を利用させていただきました。
眼のアイコンを伏字部分にドラックアンドドロップすると…

何か出てきましたよ?

はい、これが伏字の中身になります。

ね、簡単でしょ?

補足:なぜかPeekPassword+の挙動が不安定でした。
やっぱり無理やり止めた画面相手は辛かった?


  • フリーウェアが使えないときは?

Online Service Gateを入れているような職場環境では、
そもそもフリーウェア自体が使えないかもしれません。

でも大丈夫、
少なくともIE8ならね。

IE8には、
「IE Developer Toolbar」という心強い味方がいるのです。

はい、出し方は以下の通り。


表示している画面のHTMLがツリーで表示されるので、
パスワードのテキストボックスがある位置を探してみましょう。
※結構階層が深いので骨が折れます。Findを上手く利用した方がいいです。

見つけたらそこで右クリックします。
[Element Source]を選択してやりましょう。

選んだ部分のソースが表示されます。
後はvalue属性の値が知りたかったパスワードになります。



  • 見つけたパスワードを使って

さすがに社外で試したらクビになりかねないので、
社内のOnline Service Gateが入っていないパソコンで試しました。

すると見事にサインインが成功しました。

試しはしませんが、
きっと社外でも通用するでしょう。

ただこの隠されたパスワードは、
Online Service Gateが定期的に変更をかけるらしいです。

間隔は社内ポリシーによって違うと思うのですが、
毎日更新されたとしても十分役に立つでしょう。

会社から帰る前にパスワードを調べ、
家でサインインすればいいわけですから。

やらないですけど。

Online Service Gateはパスワードを隠すだけのツールというわけではないですが、
これでいいんでしょうかねぇ?よくないですね。

そこらへんはセキュリティに詳しい人が何か意見を出すかもしれないので放置。



追記:返信が来まして、近いうちに改善されるそうです。
改善が確認できたら、色々取り消し線を引いておくことにします。

追記2:修正プログラムがリリースされたそうです。
自動更新されるそうなので、特に手作業は必要なさそうです。


2012年10月16日火曜日

あまりもの料理

…名付けるなら、
オニオン炒めのベーコン添えでしょうか?
そしてこういうときに限って、
調味料の濃さが改心会心の出来なのはどういう訳でしょう?
二度と見ることは無いでしょう。
さよなら

2012年10月10日水曜日

大つけ麺博(第1弾)レポ




今更ながら大つけ麺博のレポでもしようかと思います。

頑張って2人前食べてきました。
ちなみに1食800円です・

まずは「ラーメン 龍の家」の"つけ麺 もつ"です。


つけ麺 もつ
ちなみにトッピングは全部入りの400円を選択しました。

もつ入りスープが特徴のこのつけ麺、
極めてスタンダードなよくあるつけ麺という感想でした。

ただちょっと香ばしさを感じるような…
焼きラーメンでも食べている、そんな感じがします。

ラーメンの延長線にあるのかもしれません。
むしろこの店のラーメンが気になります。

あ、トッピングの卵は絶品でしたね!




つぎは「麺屋 あごすけ」の"越後甘海老つけ麺"です。


トッピングの追加は無かったので、
素の料金となります。


自分が居たときは、
この店が一番の行列でした。

いやあ並んだ並んだ、
まずは具材を見てみますか。

まず気になるには、
せんべいとラスクです。

…これもつけるんでしょうか?
パクっと…合うような、合わないような?

というかこのスープ、
なんか…違和感が。

それは麺をつけたことでハッキリと分かりました。
スープが予想以上に絡む!?

よくスープに絡むようウェーブ麺を選ぶ店がありますが、
この店は違う、
スープが麺に絡むようにできている!

すごい!
麺とスープが同じペースで減っている!

食べれば食べるほど食が進む!!

変わった味で人を選ぶかもしれませんが、
自分は気に入りましたよ。



後はつけ麺以外のお店の紹介です。


これで600円します。

普通のかき氷かと思いきや、
ほんのり甘いミルキーな氷でした。



こちらは1個100円です。

やや薄味なので、
つけ麺のつけ合わせ用に調整されているのかも?



こんな感じでした。
興味があれば行ってみてはいかがでしょう?
(さすがにステマじゃありませんよ)


2012年10月9日火曜日

遠隔操作はどこまで想定外だったのだろう

最近掲示板に犯行予告を書き込んだ容疑をかけられた冤罪がありました。

マルウェアによる書き込みということで色々騒がれていますが、
個人的な感覚としては肩赤な話題です。

クラッカーが踏み台を使うなんて初歩の初歩です。

マルウェア感染済みPCの操作権なんて、
闇マーケットでは売買されているはずですしね。

別に買わなくたって、
数台分を確保するだけなら個人でも何とかなります。

とにかく許せないのは、
マルウェアやCSRFからの遠隔操作の可能性を考えていたように見えないことです。

色々と対策費を充てている話は聞きますが、
こういうのは費用よりも人材です。

お金だけかけて素人ばかりを雇い、
同じ事の繰り返しにならなければ良いのですが…


2012年10月8日月曜日

Windows7からUbuntuへthunderbirdの中身を移す

自分はめんどくさがりなので、
できるだけ手間を少なくして表題をこなそうと頑張ってみました。

基本的には

"C:\Users\(ユーザー名)\AppData\Roaming\Thunderbird\Profiles\xxxxxxxx.default"


"~/.thunderbird/xxxxxxxx.default"
へコピーして、

"~/.thunderbird/profiles.ini"
をちょっと編集するだけかと思いました。



…しかし認識してくれない。

"man thunderbird"
が使えたので調べてみると、
"-P"オプションがあるとのことでした。

"thunderbird -P"
で起動すると、
ユーザープロフィールの設定画面が…これです!

コピーしたフォルダを選択して起動し直すと、
今度は上手く動作しました。



今回の教訓としては、

「基本を忘れず」

"man"コマンドはやっぱり大事でした。


2012年9月19日水曜日

ソフトウェアは劣化するもの

よく昔の建造物では、
わざと未完成なまま作られていることがあるそうです。

確かどこかの建物では、
柱が一本だけ逆さまになっているとか何とか。

これには理由があり、
作ったものは完成した直後から劣化するという考えから来ています。

つまり未完成であれば、
完成に至らず劣化することはないというわけです。

あくまで心情的なものですが、
実に粋な考えではないでしょうか。



しかしソフトウェアはただのデータです。

未完成だろうと完成だろうと中身が変化することはありません。

ではソフトウェアは劣化しないのか?

それは違います。

ソフトウェアは時間と共に劣化してしまうのです。

ではどうして劣化してしまうのか、
それは周りの環境が進歩してしまうためです。

そしてソフトウェアの中身は変わらないので、
その進歩に追いつくことはできません。

そうです、
相対的にソフトウェアが劣化しているのです。

開発者としては当たり前の話なのですが、
一般の方には知られていないのではないでしょうか。



ほらあるじゃないですか。

…IE6でしか動かないWebサービスとか。

私達から見れば、
劣化するのを修繕もせずに放置していたのが悪いとしか…

開発者と経営者の意見の相違はここに一端があるように思えます。


2012年9月9日日曜日

からあげ丼

できたてを撮影しました。

しかし食材の期限が際どかった…
見た目と匂いは普通だから大丈夫ですよね?

作り終えたら意識が朦朧としてきた…
朝一で食べるか…


2012年9月6日木曜日

FizzBuzzの亜種問題を解く

White scenery @showyouに掲載されていた問題を解いてみることにしました。

邪法なのでこれから解こうという人の参考にはならないと思います。



問1の解答
https://gist.github.com/3656758

JavaScriptで解きました。

この手の問題では手垢のついた方法ですが、
正規表現を使っています。

4の倍数、100の倍数、400の倍数は、
実は正規表現に有利だったりします。
※おそらく最悪なのは7の倍数とかかな?

しかし通常の方法とは違い、
4桁年までしかサポートしていない欠点を持っています。

まあ頑張ればそこも直せるでしょうけど、
もうめどいんでいいです。



問2の解答
https://gist.github.com/3656792

Javaで解きました。

Java6から和暦をサポートしているので、
それさえ知っていれば赤子の手をひねるようなものです。

と言っても、
これはバージョン2だったりします。

最初のバージョンは日単位でループさせていたのですが、
デバッグ中にDAY_OF_YEARの仕様に気がついて年単位に修正しました。

その結果、
なんとif文が登場しないソースコードになりました。

え、卑怯?
車輪の再発明を防いだと言ってくださいよ。



こういう風にプライベートでも前向きにプログラミングに望める人なら、
才能は無くても上達できる可能性はあると思います。

…それが3分なのか3000時間なのかは分かりませんけどね。


ガリガリ君コーンポタージュ味レポ

売れ過ぎで生産休止になるらしいので、
慌てて買い食いしました。

食べる前は完全にネタだと思っていました。
だってアイスですよ?
あったかいことが大前提の味に感じるじゃないですか?
スープですよ?
ちょっとは甘いかもしれませんけど、
おいしいって表現の方が適切ですよ?

でもですよ?
でもですよ?

甘くておいしいんです。
すごく冷たいのに、
コーンポタージュの味がしっかりとするのに、
なぜかおいしいんです。

食べ終えた頃には、
お腹が膨れているんです。

新手のスイーツなのか?

…とにかく、
近くのコンビニで買い占めてきます。

近所の人にはごめんなさい。

追記:既にない…だと…?

2012年9月2日日曜日

オニオンリングの山

オニオンリングをたくさん食べたかったので自作したら、
作り過ぎてしまった…

なぜかレシピ通りなのにタネが半分余ったからです。

衣が薄すぎたんでしょうか?

まあこれにて、
しばらくごはんはオニオンリング確定です。


2012年9月1日土曜日

遊戯王WCS2012レポ

そういえば行っていたのに、
全然記事にしていませんでした。

1日目と2日目の両方に参加させてもらって、
2日目はエクゾディアが揃う瞬間の中継を生で見ることができました。

いやあ、年甲斐も無く興奮してしまいました。
ああゆうのは夢があっていいですね!

そうそう、
イベントごとには滅多に参加しない自分ですが、
思ったよりも女性が多かったのにはビックリです。

まあヴァンガード勢の比率には負けると思いますけど…

それ以外では勝ち抜き戦をひたすらやってました。

ファンデッキなのでメタメタにされましたが、
むしろあのデッキで何勝かできたのは上出来なんでしょうか?

そのとき使ったデッキでも晒しておくとしましょう。
※手持ちがそんなにないので、色々と改善点があります。

デッキ名
【きまぐれ1キル】

モンスターカード:20枚
《きまぐれの女神》×3
《名工 虎鉄》×3
《シャインエンジェル》×3
《コーリング・ノヴァ》×3
《オネスト》
《クリッター》
《マシュマロン》
《異次元の精霊》
《エフェクト・ヴェーラー》
《スクラップ・ワーム》
《ダーク・リゾネーター》
《デルタフライ》

魔法カード:13枚
《進化する人類》×3
《巨大化》×3
《ビッグバン・シュート》×3
《アームズ・ホール》×2
《移り気な仕立屋》
《大嵐》

罠カード:7枚
《盗賊の七つ道具》×2
《神の警告》×2
《神の宣告》
《光の護封壁》
《砂塵の大竜巻》

エクストラデッキ:15枚
《A・O・J カタストル》
《マジカル・アンドロイド》
《フレムベル・ウルキサス》

《大地の騎士ガイアナイト》
《グラヴィティー・ウォリアー》
《パワー・ツール・ドラゴン》

《ヴァイロン・シグマ》
《ギガンテック・ファイター》
《メンタルスフィア・デーモン》

《スターダスト・ドラゴン》
《ガチガチガンテツ》
《弦魔人ムズムズリズム》

《No.17 リバイス・ドラゴン》
《No.39 希望皇ホープ》×2

解説
《きまぐれの女神》、
《進化する人類》、
《巨大化》、
《ビッグバン・シュート》、
この4枚を揃えてコイントスを当てて殴る、以上。

成功すれば10400の貫通持ちが誕生します。

闇のゲームなどでは、
「混沌幻魔を超える女神の一撃を受けるがいい…!!」
とでも言うと良いかもしれません。

でも《きまぐれの女神》ってあくびしているイラストだから、
いまいち締まらない(汗)
攻撃名とかどうしろと…

エクストラデッキのシンクロ・エクシーズ勢は、
中継ぎとして機能します。

ひとつだけ例外なのは、
《弦魔人ムズムズリズム》です。

こいつは直接攻撃には対応していませんが、
《きまぐれの女神》よりも確実に1キルに持って行けます。

なので手頃なレベル3を模索しているのが現状です。
今は軸と言えるほど召喚できません。

うまく軸にできれば、
【きまぐれムズムズ1キル】に改名しましょう。

最後に、
このデッキのコンボが決まったときの爽快感は格別ですよ?






ベリーメロン

実家から貰っていたマスクメロンを、
ようやくカットしました。
これ以上サボっていたら、
流石に腐りますからね。
一玉まるまる貰ったので、
半分はカットして冷凍庫です。
さあ、食べるか…!

2012年8月30日木曜日

FirefoxのGoogle検索をHTTPに戻すには その2

前回からの続きです。

さっそくFirefoxにアップデートがあったので、
前回の方法では設定が消えてしまうことがよく分かりました。

というわけでOpen Search 1.1を組んで、
HTTPのGoogle検索を再現することにしました。

まずはgoogle.xmlをダウンロードしてください。
前回でも少しだけ話しましたが、
(ユーザーフォルダ)\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\searchplugins\
にこのファイルをコピーしてください。

あとはFirefoxを再起動すれば完了です。

Google(HTTP)というのが追加されていませんか?
だったら成功です。

一応サジェストが動くところまでは確認したので、
自己責任でどんどんご利用ください。

…ってやっぱりいませんよね。


2012年8月25日土曜日

積み上がる怠惰

紙パックをバラすのをサボっていたら、
いつの間にか凄い枚数になっていました。

流石に床が紙パックの絨毯になりそうだったので、
ようやく重い腰をあげることにしたわけです。

ハサミを入れるだけで手が痛い…


2012年8月23日木曜日

FirefoxのGoogle検索をHTTPに戻すには

少し前の話です。

Firefoxに標準でついている検索バーでGoogleを使うと、
HTTPSを使うようになりました。

個人的には良い変更だと思うのですが、
勤め先で使うときにはマイナスだったのです。

会社のproxyに阻まれて、
いちいちHTTPに戻さないと検索結果が見れなくなってしまいました。

今日は流石に我慢の限界に到達し、
HTTPに戻すことにしました。

と言っても、
わかってしまえば簡単な話です。

Windows7であれば、
(ユーザーフォルダ)\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\search.json
をメモ帳で編集するだけです。

Google関連のURLを、
全てHTTPSからHTTPに変えれば作業は完了します。

保存したことを確認し、
Firefoxを再起動してみましょう。

HTTPに戻っていることが分かると思います。

…ただこれってバージョンが上がったら元に戻る可能性が大なんです。

本格的に変更したい場合であれば、
(ユーザーフォルダ)\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\searchplugins\
に追加検索バーのXMLを配置してください。
ここを参考にさせていただきました。

書き方は…自分で調べましょう。
追記:できたよ!

こんなレアな話題を知りたがる人はいないと思いますが、
まあ念のため。


2012年8月22日水曜日

すぐそばにある絶望

退職者が続出する部署があり、
どうにか解決しようという話を耳にしました。

しかしそこで出された解決策は、
どこからか人を入れる以外無かったのです…

策は全て*どこから*に集約されていて、
人を入れて解決しようという趣旨は変わりません。

…退職者が偶然続くわけないじゃないですか。

そこには理由があると考えるのが普通じゃないですか。

理由を取り除かずに人をいれても、
それは元の木阿弥です。

暗黙的に人を使い捨てるって言っているのと変わらないじゃないですか。

くそ…


アスペルガー症候群の対極は実在するのか? その3

前回

3回目を書くつもりは無かったのですが、
まあ思考実験ということでお願いします。

今回のターゲットは双極性障害です。

情緒不安定なところが、
何か対極って感じがします。

ただ気がするだけで、
やっぱり違います。

正規分布的に数が違いますし、
対極というには特徴の真逆さが弱いからです。

…多分分類的な意味で対極が無いのかもしれません。

ケーキなどに対して、
大きさを考えず適当に切れ目を入れたようなものです。

反対側を探そうにも、
大きさも形もバラバラな状態ってことです。

このカットごとが名前の付いた症状であり、
比較しようがありません。

いくつかのカットを繋いだり、
逆に大きなカットをさらに分割する必要があります。

そうなった頃には、
もはやアスペルガー症候群とは言えない別の何かです。

医学の発展に期待ってことでお願いします。

前回

コミュニケーション能力の定義

ふぅ、忙しい期間と夏休みを終えて復帰しました。

夏休み中は外との関わりをほとんど絶っていたので、
精神的な休養にはなったと思います。



さて、そんな中で一発目の話題はコミュニケーション能力です。

ブログ内でよくコミュニケーション能力についてdisっていますが、
定義のあいまいなものをdisっても暖簾に腕押しです。

自分はコミュニケーション能力をこう定義していて、
その為の努力については怠らないようにするべきと答えられねばなりません。

他人とは違うものであったとしても、
主軸も無しに話していてはまさにコミュニケーション能力の欠如です。

面倒な過程は(覚えてないので)すっとばして、
いきなり定義を発表したいと思います。

自分にとってコミュニケーション能力とは、
「相手を尊重しながら意見を聞き取り、自分の意見を分かりやすく伝える能力」
と定義します。

ようは会話や文書のやりとりのI/Oロスが少なく、
相手が不快にならなければそれでOKです。

と言っても、
これは相当難しいです。

自分は相手の立場になってものを考えるようにはしていますが、
価値観が違いすぎる相手だと役に立たないです。

日本人のコミュニケーションは価値観が同じことを前提としていることが多く、
これが国際的なコミュニケーションを阻害しているのではとこっそり思っています。

なんだかんだ難しい言葉を並べてはいますが、
考えの違う人どうしで一緒に生活できればそれでいいのではないでしょうか。

同じ考えを強要することは、
断じてコミュニケーション能力とは言えません。


2012年8月2日木曜日

プログラマーに対するマナー

ちょっとある事に対して、
ご意見を募集している方が居ました。

…まあ会社絡みなんですが、
技術スキルに関するうんぬんだと思ってください。

言いたい事なんていくらでも出てきそうですし、
2~3言ぐらいは意見と出そうかと思っていました。


しかし…


しかし…!


意見募集のフォーマットが、
エクセル方眼紙だったのです…


何も答える気が無くなりました。


賛否両論あるのは分かりますが、
相手が不特定の場合にエクセル方眼紙は避けるべきだと思います。

ということで、
宗教上の理由で返答しないことにしました。

コミュニケーション能力がどうとか言うのであれば、
プログラマーに対するマナーも知るべきではないでしょうか?

同じ業界で、
自分よりもキャリアが長くて、
それでエクセル方眼紙を知らないは通りません。

それはプログラマーから見れば、
技術軽視の強いサインではないでしょうか?



言わなきゃわからないなら既にアウトなんです!
(自分でアンテナを広げていない的な意味で)


2012年7月24日火曜日

あ、300件超えてた

いつの間にやら投稿件数が300件を超えていました。

あと65件で1年分か…

長いような、短いような…

とにかく、
マイナー路線一直線で400件目も目指します。

Eclipse BIRT vs Jasper Report

レポーティングツールはいくつかありますが、
Javaですぐに使えそうなのは表題の2つではないでしょうか?

今まではJasper Reportを使っていたのですが、
最近はBIRTの方がいいじゃないかと思っています。

理由はいくつかありますが、

まずは必要なライブラリが少なくて分かりやすい点です。
Jasper Reportは最小限ってだけでも結構なjarファイルを要求されます。

そしてレポートテンプレートの開発ツールです。

どっちもeclipseのプラグインが提供されていますが、
eclipseと仲がいいのは断然BIRTです。

基本的に経験の有無はそれほど加点対象には含めないので、
BIRTかな~っと思うわけなんです。



…なんてあれこれ言ってますが、
仕事場ではそれを扱うであろう部署のレベルの関係で使われないだろうという皮肉。


同ブラウザで挙動が違うのはやめてケロ

対象ブラウザがIE8のWebサイト構築を仕事で行いました。

普段はlocalhostで試験をしていて、
終盤になってIPアドレスのURLに切り替えたときです。

レイアウトが崩れている!?

ブラウザが違うなら分かりますが、
同じブラウザで!?

調査を進めた結果、
ドキュメント互換性の定義
ということでlocalhostだとレンダリングエンジンに違いがあるということです。

とりあえず時間も無いので、
metaタグ使って同じレンダリングエンジンを使うように指定しました。

この仕様は…どうなんでしょう?

引っかかる人結構居るのでは?

それともWebデザイナーにとっては常識?

う~む…


2012年7月12日木曜日

標準出力をJUnitでテストするには

久しぶりにソースを公開してみます。

標準出力に結果を出すプログラムをJUnit 4.1でテストする方法とかで解説されていますが、
それを汎用的にしてみました。

名付けて、StandardOutputSnatcherクラスです。
略してSOS!

import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

/**
 * 標準出力・標準エラー出力の出力先を奪うクラスです.
 * テストなどでコンソール出力の内容を知りたい場合に使います.
 * このクラスはスレッドセーフではありません。
 * マルチスレッド環境では利用しないでください。
 */
public final class StandardOutputSnatcher  {

    /** シングルトンパターンのためのインスタンス. */
    private static final StandardOutputSnatcher INSTANCE =
        new StandardOutputSnatcher();

    /** 元の標準出力. */
    private PrintStream nativeOut = null;

    /** 元の標準エラー出力. */
    private PrintStream nativeErr = null;

    /** 変更後の標準出力. */
    private ByteArrayOutputStream snatchedOut = new ByteArrayOutputStream();

    /** 変更後の標準エラー出力. */
    private ByteArrayOutputStream snatchedErr = new ByteArrayOutputStream();

    /** 奪取済みフラグ. */
    private boolean stealFlag = false;

    /** デフォルトコンストラクタの禁止. */
    private StandardOutputSnatcher() { }

    /**
     * このクラスのインスタンスを取得します.
     * このクラスはスレッドセーフ化しにくい形で標準出力に干渉するので、
     * シングルトンパターンを採用しました.
     * @return インスタンス
     */
    public static StandardOutputSnatcher getInstance() {
        return INSTANCE;
    }

    /**
     * 出力先を奪い、
     * コンソールからこのクラスへ出力するように設定します.
     */
    public void snatch() {
        // ダブルスティールの禁止
        if (!stealFlag) {
            nativeOut = System.out;
            nativeErr = System.err;
            System.setOut(new PrintStream(new BufferedOutputStream(snatchedOut)));
            System.setErr(new PrintStream(new BufferedOutputStream(snatchedErr)));
            stealFlag = true;
        }
    }

    /** 標準出力をクリアします. */
    public void clearOutput() {
        changedOut.reset();
    }

    /** 標準エラー出力をクリアします. */
    public void clearErrorOutput() {
        changedErr.reset();
    }

    /**
     * 標準出力の出力内容を取得します.
     * @return 標準出力の出力内容
     */
    public String getOutput() {
        System.out.flush();
        return snatchedOut.toString();
    }

    /**
     * 標準エラー出力の出力内容を取得します.
     * @return 標準エラー出力の出力内容
     */
    public String getErrorOutput() {
        System.err.flush();
        return snatchedErr.toString();
    }

    /**
     * 奪取した標準出力先を取得します.
     * @return 奪取した標準出力先
     */
    public PrintStream getNativeOutputStream() {
        return nativeOut;
    }

    /**
     * 奪取した標準エラー出力先を取得します.
     * @return 奪取した標準エラー出力先
     */
    public PrintStream getNativeErrorOutputStream() {
        return nativeErr;
    }

    /**
     * 出力先を元に戻します.
     * このメソッドの呼び忘れにご注意ください.
     */
    public void release() {
        // ダブルリリースの禁止
        if (stealFlag) {
            clearOutput();
            clearErrorOutput();
            System.setOut(nativeOut);
            System.setErr(nativeErr);
            stealFlag = false;
        }
    }

}

JUnitではないですが、
使い方はこんな感じです。

StandardOutputSnatcher sos = StandardOutputSnatcher.getInstance();
System.out.println("開始");
sos.snatch();

// 標準出力
System.out.print("標準出力テスト");
if (sos.getOutput().equals("標準出力テスト")) {
    sos.getNativeOutputStream().println("標準出力テスト成功!");
}

// 出力内容のクリア
sos.clearOutput();

// 標準出力(2回目)
System.out.print("標準出力テスト2");
if (sos.getOutput().equals("標準出力テスト2")) {
    sos.getNativeOutputStream().println("標準出力テスト2成功!");
}

// 標準エラー出力
io.clearErrorOutput();
System.err.print("標準エラー出力テスト");
if (sos.getErrorOutput().equals("標準エラー出力テスト")) {
    sos.getNativeOutputStream().println("標準エラー出力テスト成功!");
}

// 出力内容のクリア
sos.clearErrorOutput();

// 標準エラー出力(2回目)
System.err.print("標準エラー出力テスト2");
if (sos.getErrorOutput().equals("標準エラー出力テスト2")) {
    sos.getNativeOutputStream().println("標準エラー出力テスト2成功!");
}

sos.release();
System.out.println("終了");

ちなみにLog4jの出力テストにも使えることにお気づきでしょうか?
そうです、ConsoleAppenderで出力すれば、
Log4jで出力した内容をStringで取得できるのです。

適当にコピー&ペーストでお試しあれ。
…ちゃんと意味を理解したうえでね。

2012/07/08追記:微妙に修正

初心者税を踏み倒しているかい?

ハッカーに伝わる格言として、
「技術さえあればタダ」
というのが隠れて存在しているような気がします。

技術を磨けば磨くほど、
少ないコストで何かを為せる可能性が高まるということです。

そして技術が無い者は、
お金を支払うことでその差分を埋めます。

自分はこれを初心者税(Beginner's Tax)と呼んでいます。

技術の無い企業が大金を支払ってソフトウェアを作ってもらうのは、
この初心者税がとんでもなく高いからです。
追記:なぜか作っているSIerも初心者税を払っているので、その分上乗せされて(ry

大規模だからだと言っていますが、
本当に大規模な開発にする必要があるのでしょうか?

関わっている人達が全員バカなだけで、
効率の良い方法に気がついていないだけなのでは?

初心者税の割合を計算することができれば、
どれだけボッタクリなのか説明することができるのですが…

コミュニケーション能力がうんぬんって言う人達は、
これの踏み倒し方が上手いからなぁ…


2012年7月5日木曜日

意外と紙は手放せない

最近は電子書籍が色々と騒がれていますが、
自分は今のところ食わず嫌いでどうにも好きになれていません。

いや、可搬性の高さは疑いようもありません。
魔術師本やドラゴンブックなんて電車の中で読むのは不可能です。

本棚もよくこれほど買ったものだと感心してしまいます。
ああ、認めます。
そのうちの大半は再読する可能性が極めて低いです。

でも、
それでも、
自分は紙が好きなんです。

あのページをめくる感触が、
インクの眼への優しさが、
読み終えた後の本の重みが…

とにかく読んだという実感が!

まだ電子書籍では再現できないのです。


普段はインターネットで何でも調べられると息巻いてますが、
重要な情報はその実感を得る為に紙へ戻ります。
(つまり読み切りなら電子書籍の方が良いですな。)

IT系って呼ばれる人達には、
同じ考えの人が多い気がしませんか?(自分の幻覚?)

ヒートアップしているのは、
非IT系の方が多かったりしませんか?


最も紙から遠くあるべき人種が、
最も紙のありがたみを知ってたりして…






という妄想。



2012年7月4日水曜日

ビジュアルプログラミング言語はやっぱりダメだ

仕事でビジュアルプログラミング言語を使っているのですが、
効率よく開発するにはどうしたら良いか試行錯誤したわけです。

それでこの前完成形の設計ができたのですが、
処理の大半をJavaScriptで書くことで効率化を図るという形になったのです。

GUI操作だとどうしても生産性が下がるため、
生産性を上げるためにはGUIの比率を下げるのが一番効果的なのです。

でもそれは、
ビジュアルプログラミング言語=効率が悪い
という図式を認めることにも等しいわけです。

趣味でやる分には一向に構いませんが、
仕事で使うには疑問を持たずにはいられません。


経営者たちは、
生産性を下げてでも、
初心者が使えることを重視しているということなんでしょうか?


人件費が増える要因なのは明らかなんですが…


本当に経営者は分かってないのでしょうか?

2012年7月3日火曜日

何よりも近く、限りなく遠い世界

こんな記事を見つけました。
IT企業の東京進出とブラック化

んで、その話題となった企業の返答記事がこちら。
リスクばかりを並べても、何も実らない。

ふたつの記事を読んで、
よく考えてみてください。

お互いの主張はどちらも正しく見えます。

しかしふたつを衝突させると、
水と油のように反発し、
矛盾となってあふれています。

自分はJavaBlackさんの主張がすごく身近に感じられますが、
だからと言ってtomoyaさんが嘘を言っているようには見えないのです。


…もしかして、全く別の世界について話していませんか?


この業界、同じに見えて平行世界レベルで食い違う5つの世界が存在するからです。


カテゴリーで表現すれば、
JavaBlackさんはインターナル界の話をしています。
tomoyaさんはパッケージ界の話をしています。


世界が違うから、
根本となる前提から食い違っていたのではないでしょうか?




そして自分もインターナル界の住人です。


人月システムによって、
スキルが上がるほど評価が下がる世界です。


自分個人としては、
パッケージ界へ移転するための準備を少しずつ進めている最中です。

既に移転した人もいます。

以下の記事などはその良い例です。
アマゾンにおけるソフトウェア開発の仕事について感じたこと

パッケージ界は甘くはないですが、
少なくともスキルの上昇によって評価が下がるようなことはありません。

SIerの上位1~2割のプログラマーは、
パッケージ界へ移転できるのではないでしょうか?
(自分が上位1~2割に入っているかは微妙ですけどね…)

そして上位陣が消えたインターナル界を、
滅ぼすことも可能なのではないでしょうか?
(新人が誤ってインターナル界に入らないようサポートする必要はありますけど。)

インターナル界の未来を嘆くのであれば、
インターナル界を捨ててしまいましょう。



…そういえば、元は移転の話でしたっけ。

自分なら京都に移転できないか考えると思います。

京都には京都大学があります。

京都大学にはSICPが講義として存在する(日本では)数少ない大学です。

京都大学の成績優秀者をインターンシップに誘い、
継続的な人材の確保を狙うわけです。

単純に人口密度が高さだけを考えるよりかは良いと思うのですが…
皮算用なんでしょうかね?


2012年7月2日月曜日

iKnowを始めてみた

ちょっとキッカケがあったので、
iKnowを初めてみることにしました。

まだ一番簡単なコースの序盤なので、
知らない単語は全く登場していません。

中学英語の復習をしている気分で、
少しだけ気持ちが弾みます。

英文を読むためにはず~っと先のレッスンまで攻略する必要がありますが、
千里の道も一歩からです。

これで年6000円はお買い得だと思います。
※キャンペーンは今日までらしいので、明日からは割引がないですよ。

英語の必要性を痛感している方がいれば、
一緒に勉強してみませんか?


2012年7月1日日曜日

これだけで満腹なスイーツ(笑)

難易度が低くてちょうど良い…ん?

混ぜるだけのスイーツの方がもっと楽だろうに。

フルー○ェとか…

何で火を使う手間をかけてまで作ってしまうのか…

満腹で動けなくなるし…

ぐ…寝ては、いけない。


2012年6月28日木曜日

コメント嫌いを嫌いにならないで

最近はブログや記事のコメント機能を封印しているところが出てきたように思えます。

これに関して批判の声が聞こえるわけなんですが、
書く側からはどうしてもこれを批判できないんです。

体感的にはよくわかることですが、
コメント機能ってまったく議論するのに向かないからです。

むしろ議論破壊機能っていいかもしれません。

理由は議長不在でしょうか。

コメントが伸びれば伸びるほど、
論点の数が増えて収束せずに拡散してしまいます。

いくら管理人がまとめようとしても、
コメントを禁止する以外に収束する方法が無いのです。

自由とは混沌なのです。

ブログや記事に議論を付けるには、
もっと別な仕組みが必要なのかもしれません。


2012年6月11日月曜日

twitterはなんなのか?

自分がtwitterを始めてそれなりに経過しました。

しかし、まるで活用できているとは言えない状態です。

やっぱり本当に言いたい事はブログの方が良いです。

つぶやきは短すぎますし、
連投も美しくありません。

やっぱり、
ブログとはまったくの別ものと捉えるべきなんだと思います。

停電が起こったときの近所の反応を見れるとかは、
まさにtwitterらしいですしね。

自分としては、
このようなリアルタイムさがtwitterの肝だと思っています。

…ちゃんとプライバシーを意識している人がどれだけ居るのかは
怪しいところですが。

2012年6月10日日曜日

プロフェッショナルの危険

少し前に、
啓蒙的な意味である書類が配られました。

内容は、
プロフェッショナルとしての自覚を持って仕事をしよう的なものです。

その後は、
プロフェッショナルとしての規範となる行動とはうんぬんかんぬんと続きます。

…う~ん。

言っていることそのものは正しいですけど、
これを書いた人の思った通りにはいかない気がします。

なぜなら、
プロフェッショナルはバズワードと言えるほど意味がぶれるからです。

「社会人としての」とか、
「技術者としての」とか、
そんな接頭辞がついていても同様です。

そうですね、
あなたがよく知っている業界で構いません。

その業界のトップレベルの人達に、
「プロフェッショナルとは何か?」
と聞いてみた場合を想像してください。

まったく同じ答えが返ってくるでしょうか?

おそらくは違うでしょう。

各人ごとに信念があり、
こだわりがあります。

その中には決して相容れないようなものも少なくありません。

変な言い回しですけど、
プロフェッショナルの定義を同一と捉えることは、
既にプロフェッショナルではないのです。

プロフェッショナルは押し付けられるものではありません。

プロフェッショナルらしい行動を推奨することで、
相手のプロフェッショナルとしての意識を奪ってはいませんか?

2012年6月1日金曜日

盛者必衰の真理

虚構新聞の騒ぎを傍観していましたが、
ちょっと思った事があるので語ってみます。

今回の騒ぎは大衆化がキーワードのように感じました。

例えば、
小さな島に移民が突然大量に流れ込んできて、
移民側の文化を押しつけていきます。

この移民が大衆で、
原住民から見たら侵略者です。

いつしか島は、
侵略され、
搾取され、
後には何も残りません。

何も無くなると、
移民は次の島を求めて旅立つのです。

彼らは本当に弱者なのでしょうか?

自分には、
弱者の皮を被った強者のように見えます。

大衆は、
全ての島を破壊する気なのでしょうか?

住む島が無くなれば、
今度滅ぶのは自分達なはずなのに…

なるほど。

人間が人間である限り、
滅びもまた必然ですか。

インターネットは大衆に島の位置を大量に教えています。

滅びもまた加速…なんてしてないですよね?

2012年5月31日木曜日

メタファーの危険

誰しも一度は、
何かに例えて説明したことがあると思います。

「夢みたいな話」とか、
「マシュマロみたいや柔らかさ」とか、
まあ何でもいいです。

そして何かに例えて説明することは、
その分野を知らない人に対して有効と言えます。

「プログラミングはアートだ!」
なんかこの一例でしょうか?

しかし例えて説明することは、
それそのものを説明した訳ではありません。

どんなに優秀なメタファーにも漏れがあり、「厳密には違う」部分がどこかにあります。

抽象化の漏れの法則の変種です。

GUIのボタンが良い例です。
名前の通り現実のボタンのメタファーですが、
*厳密には*離したときに反応するか、押したときに反応するかで違いがあります。

パソコンをちょっと知れば分かることですが、
この違いが完全な初心者を苦しめます。

これは分かりやすい例で、
漏れの場所が小さくて分かりにくい場合もあります。

メタファーとして優秀な証拠だと言えますが、
その優秀さが問題となることもあります。

その説明をされた相手が、
「厳密には違う」部分に気がつかずに理解した気になることです。

これが厄介で、一度浸透するとなかなかうまく修正できません。

例えば、「VXMLはHTMLの音声版みたいなもの」という説明をしたとします。
※ああ、分かりにくい例だなぁ…

一言で説明するにはなかなかなんですが、
VXMLブラウザがサーバー側に存在するという違いを隠しています。
ユーザーは電話さえあればいいですから。

そして、プロの中でも勘違いしている人が居て…はぁ。

そんな感じ。