2010年04月13日
2010年04月08日
2010年04月03日
今年のエイプリルフールでツボったもの3つ
自由に悪ふざけが出来るって、良い文化だと思います。「フリーダム!」と叫びながらメル・ギブソンが断頭台に送られるような世界は嫌ですからね。
というわけで、ネタ系サイトをざーーーっと見まわった中で、個人的にツボったのが、こちらの3つ。
続きを読む
2010年04月02日
昨日見かけた2chの面白い書き込み
2chは最近全然読んでいなかったのだけど、久々に読んでみると「ム」や「マ」板には相変わらずセンスのある書き込みが散見された。
というわけで、今日見かけた中で面白いと思ったものをいくつか並べてみる。
続きを読む
2010年03月31日
死亡フラグの実践的検証
前のとは違って初心者向けで真面目なヤツなので、多分このブログの購読者の皆様(初心者ではないでしょう)はターゲットに入っていないと思われます。なので告知とかはあまりしても仕方ないので置いておいてですね。
前々からどうしてもやりたいと思っていたことがあったのですが、今のタイミングって凄くそれに向いているのではないかと思ったりしたので、この場を借りて実践してみます。
続きを読む
2009年08月13日
脆弱性の男
朝早く、再び神殿の境内に入られると、民衆が皆、御自分のところにやって来たので、座って(※訳注 おそらくLISPか何かを)教え始められた。
そこへ、COBOLerたちやVB派の人々が、脆弱性を出した咎で捕らえられた(※訳注 眼鏡をかけた痩せ型の)男を連れて来て、真ん中に立たせ、主に言った。
「先生、この男は脆弱性のあるソフトウェアを世界中に売りつけている時に捕まりました。こういう経営者は石で打ち殺せと、FSFは律法(※訳注 実在するか不明)の中で命じています。ところで、あなたはどうお考えになりますか」
主を試して、訴える口実を得るために、こう言ったのである。主はかがみ込み、指で地面に何か(※訳注 おそらく脆弱性検証用のコードを)書き始められた。
しかし、彼らがしつこく問い続けるので、主は身を起こして言われた。「あなたたちの中で脆弱性のないシステムを作ったことがある者が、まず、この男に石を投げなさい。」
そしてまた、身をかがめて地面に書き続けられた。
これを聞いた者は、実務経験が長い者から始まって、一人また一人と、立ち去ってしまい、主ひとりと、真ん中にいた男が残った。
主は、身を起こして言われた。「ビルよ、あの人たちはどこにいるのか。だれもあなたを罪に定めなかったのか。」
男が、「だれも」と言うと、主は言われた。「わたしもあなたを罪に定めない。行きなさい。これからは、もう罪を犯してはならない。」
こうして男は経営者の座を退き、慈善事業に注力することとなった、というお話。
原文はこちら : http://tokyo.catholic.jp/text/senkyoshiboku/hint/2007/text0325.htm
2009年08月02日
Googleマップ上にラーミアを飛ばしてみた
今日はGoogleマップを使用した実用的なサンプルを作ろうと思い、リファレンスを見ながらちまちまコードを試していたら、いつの間にかこんなものが出来上がってしまった。
GoogleMapAPIの上を鳥が飛んでいく(注意:音が出ます)
http://www.mwsoft.jp/programming/googlemap/google_map_v3_lamia_ff.html
IE6等position:fixedが使えないブラウザはこっち
http://www.mwsoft.jp/programming/googlemap/google_map_v3_lamia.html
矢印キーを押すと、鳥が動きます
なんというか、実用的な匂いがさっぱり漂ってこない代物になってしまった。。。
その割に作るのはけっこう苦労していて、単純にposition:absoluteの画像を真ん中に置けば良いかと思いきや、そのまま置くと透過部分がうまく地図を透かしてくれなかった。
その為、鳥の画像をカスタムアイコンとして設置し、マップに対してset_centerして、それと同じ座標でアイコンに対してset_positionをしていたりする。
残課題
・コントロール部分が文字だけで分かりづらいので画像で見栄え良くする
・上に向かって飛ぶ時の画像が素敵過ぎる状態を解消する
・Speed downを連打すると逆送し始める
・ズームイン、ズームアウト時に鳥の画像サイズを変更する
・デフォルトを航空写真にしてるけど、Hybridの方がいいかも
・Move stop後、ストップ前と同一方向キーを押しても再発進しない
・毎回set_centerしているとアニメーションがスムーズにいかないので、画面より大きいMAPを保持しておいて、ブラウザのスクロールで移動しつつたまにポジションを入換えるようにした方が良さげ
などなど、たくさんある。たぶん手をつけずに放置。
2009/08/05追記
setCenter時のリクエスト量が変だったので、3画面分を先読みしてスクロールする形に変更。1.5画面分くらい飛ぶごとに画面がガクッとなる……
2009年07月24日
プログラマのクラスチェンジ表(イメージ図1)
「それはクラスチェンジじゃない」という苦情は受け付けません。
続きを読む
2009年07月06日
雨ニモマケズ
廃止モサレズ
りにゅーあるモサレヌ
丈夫ナ汎用機ニ載リ
ばぐハナク
決シテ止マラズ
イツモシヅカニ動イテイル
一日ニ電気代2400円ト
年ニ2度ノメンテガアリ
アラユル処理ヲ
えらーヲ起コサズニ動カシ
ヨク負荷ニ耐エ
はーどでぃすくモ飛バズ
外注ノPGノ書イタFORTRANノ
多クノこーどガ詰マッテイテ
東ニ業務ノ変更ガアッテモ
技術者ガイナクテ対応サレズ
西ニ予算縮小ガアッテモ
忘レラレタカノヨウニ触レラレズ
南ニオープン化ノ波アッテモ
移行スル予算モナク
北ニFORTAN技術者ガ来テモ
敬遠シテ寄ッテ来ナイ
停電ノ時ハナミダヲナガシ
猛暑ノ夏ハ冷房ニツカリ
ミンナニデカクテ邪魔ト言ワレ
ホメラレモセズ
クニモサレズ
ソウイウしすてむニ
ワタシハナリタイ
2009年06月30日
カミュ「異邦人」
思うに、私は在職もすでに長く、その間、幾たびかクビを要求しましたが、今日ほど、この苦痛な義務が、1つの正当、正義の意識と、非生産的なもの以外、何1つ読み取れないプロジェクトのマネージャーを前にして私が感ずる恐怖とによって、償われ、釣合いがとれ、光をうけるように感じたことは、かつてないことです」
話を終えた人事部長が腰をおろすと、かなり長い沈黙が続いた。
私は暑さと驚きとにぼんやりしていた。
取締役が少し咳をした。
ごく低い声で、何かいい足すことはないか、と私に尋ねた。
私は立ち上がった。
私は話したいと思っていたので、多少出まかせに、「故意にプロジェクトを破綻させようとしていたわけではない」といった。
取締役は、それは1つの主張だ、と答え、これまでの君自身の弁明はうまくいっていないように思うので、君の上司に話を聞く前に、君がプロジェクトを破綻させた原因だけでもはっきりしてもらえれば幸いだ、といった。
私は、早口にすこし言葉をもつれさせながら、そして、自分の滑稽さを承知しつつ、それはSunのせいだ、と述べた。
2009年06月23日
プログラマをピクッとさせる10の発言
http://news.livedoor.com/article/detail/4205853/
この記事になんとなく触発されて、これまで自分がピクッとなった言葉を適当に並べてみた。
10. Python? 聞いたことない言語だね
前にどっかで面談した時に言われた言葉です。
「そうですよねー。マイナーですから」と話を合わせた自分は社会人としては合格。
でも、殉教者としては失格。ごめんなさい。
9. 松屋より吉野家の方が肉がおいしい
電車で延々と言い合いをしているサラリーマンを見かけたことがあります。
私は具のない味噌汁の話を出されるとより反応します。
8. セガってゲーム機が売れなくて潰れた会社だよね
勘違い系の発言。
これも電車の中で聞いた。正気を保つのが大変なくらい威力があった。
7. 青春18切符で大阪まで行っちゃって、すごい疲れた
話し込んでいたら青函トンネルとか関門トンネルを超えた(2日かけて)強者が現れて思い出話が始まった。
あと5枚綴り時代の話も出た。
6. 初心者ですが質問です
調べごとをしているとあまりにもよく目にする。
見るたびにちょっとピクッとして、そのまま見なかったことにする。
5. 一番優れたディストリビューションはUbuntuです
「異論をどうぞ」と言っているような発言ですね。
より注目を集めたい時は「Vineが一番です」と言うのも良いかもしれない。
4. X Windowsは今ひとつ好きになれなくて
どこをつっこんでいいのか分からないので、もだえながらスルーする系の発言かと。
3. Cなんていまどき使ってる人いるんですか?
前に自分の後輩がした発言。
とりあえず飯に連れて行って穏やかに懇々と「お話」をしておいた。
2. Mac購入者はAppleロゴに500ドル払っている
私が言ったんじゃないですよ。
スティーブ・バルマーが言ったんです。
1. 地方自治体のサーバーにハッカーが進入し改ざん
だからそれはクラッカーだと何度(ry
2009年06月17日
プログラマのクラスチェンジ表(草稿)
・コーダー
プログラムを学び始めた人が最初になる職業。
クラスチェンジの条件はコードの読み書きができること。
英語で例えるとTOEIC500〜600点くらい。
RPGゲームで言えばレベル1〜5くらい。
簡単な記述を羅列することはできるが、難易度の高い言い回しやレアな処理は理解できない。
参照渡しと値渡しの差が分からなかったり、closeを書く意味を知らなかったりすることから、被害をもたらす記述を創造することもしばしばある。
・コピペプログラマ
WEBから情報を収集する技を身につけたコーダーのこと。
順調に学習していれば、コーダーを3ヶ月〜半年ほど続けているうちに自然とこの職業にクラスチェンジできるようになる。
Google検索から望みのコードを発掘して、コピペでソースファイルを埋め尽くすこと(通称、スクラップブックコーディング - 筆者命名)によって様々な難易度の高い処理を実現することができる。
張り付けているソースを100%理解した上で使用している人はコピペプログラマとは呼ばない。
なんとなく張り付けてなんとなく動いたというやっつけ仕事をする人を指す。
・プログラマ
コードの読み書きがつつがなくできる人。
TOEICで言えば800点くらい。日常会話に困ることはなく、専門用語にもある程度の知見があるレベル。
RPGゲームで言えばレベル20くらい。中級の魔法とかも使える。
プログラマはレベルが上がると、マネージャー、コンサルタント、営業などにクラスチェンジできる。
将来、どのクラスにチェンジするか早めに決めて準備しておかないと、会社命令による強制クラスチェンジが発生することがあるので注意が必要。
・マニア
1つ以上の技術に対して深く掘り下げている人。
好きな技術の話をすると笑顔になる人。
言語の歴史にやたら詳しい人。
「今週末、コードゴルフで勝負しない?」と声をかけた時に「オッケー」と気軽に乗ってくるような人。
などなど、ディープな要素を1つでも持っているプログラマを指す。
マニアになっても給与的に得をすることはないが、仕事は楽しくなるかもしれない。
筆者はおそらくこのクラスに所属する。
・アーキテクト
高い技術力を持つプログラマを高い値段で売る為に創設された比較的新しい職業。
案件に応じて適切なフレームワークや開発環境を選定できたり、ミドルウェアに近い部分を触っていたりするとアーキテクトっぽいかもしれない。
英会話の能力で例えると、ただ日常会話ができるだけでなく、韻を踏んだり、どこかの大統領とまではいかないがそれなりに人の心に届くスピーチができるレベル。
・スーパープログラマ
別次元のコードを書く人。
3倍速でコードを書きあげる人。
300倍速で動作するコードが書ける人。
難しい仕事を頼んでも顔色ひとつ変えずに引き受けて、予想より早いタイミングで「できたよ」と言ってくれる人。
RPGゲームで例えるとレベル70以上。ラスボスも余裕で倒せる。
・クラッカー
ダークサイドに落ちたプログラマが手を染める職業。
プログラムに対する知見を、情報の盗聴や破壊などに使用する人。
ニュースではハッカー(誤用)と呼ばれている人。
RPGゲームで例えると、PKでアイテム収集してたりボットで稼いでいる人。
クラッカーは非常に奥が深い職業だが、常に門戸は開かれていて、クラスチェンジ条件は緩い。コピペプログラマクラスの能力でもクラスチェンジ可能。但しリスクは高い。
・ハッカー
ハックするのが好きな人。
ハッカーが開発現場に出没するとスーパープログラマと呼ばれることが多い。
プログラミング言語やソフトウェアをただ使うだけでなく、その中身まで十分理解し、時には中身を自前で書き換えてしまう人。
RPGゲームで例えると、ダメージの計算式や乱数の生成ルールなどを踏まえてプレイするような人。
・ギーク
マニアよりも深く広い知見を持つ上級クラス。
RPGゲームに例えるとマザーのラスボスくらいの強さ。この人たちの得意領域に足を踏み込んでしまうとけして勝てないので、戦う際は祈るなどの手順を踏む必要がある。
ギークにクラスチェンジするには、食事を宅配のピザとコーラで済ませ、寝ている時間以外はすべて自分が愛するものに注力するという生活を、数年間続けなければならない。
端から見ると修行僧のような生き方に見えるかもしれないが、本人たちは好きでやっているだけで修行などしているつもりは毛頭ない。
・ウィザード
ハッカーの上級クラス。
全世界に推定1024人しか存在しないスゴい人たち。(数字は筆者妄想)
名前の通り魔法のようなことができてしまう。
例えば一般的なプログラマが「ファイルシステム的にこの処理速度が限界だ」という状況に出くわすと「それは仕方ないね」という結論にたどり着くが、魔法使いは「ファイルシステム書き直しといた」という答えを持ってきたりする。
RPGゲームに例えると、「がた」くらいの強さ。分かりづらい例ですまない。
開発現場で拝めるレベルの人たちではないが、メーリングリストや講演などで接触することができる。
以上、クラスチェンジ表に使う文章の草稿でした。途中からRPGの例がマニアックになってしまった気がするけど、まぁ、いいか。
2009年06月16日
川端康成「雪国」
向かい側の座席からSEが立って来て、部長席の前の受話器を取った。顧客の怒声が流れ込んだ。SEは手をいっぱいに広げて、遠くへ叫ぶように、
「仕様なんです、仕様なんです」
IDカードをさげてゆっくり入館して来た男はiPodで耳の穴をふさぎ、目に大きなクマを作っていた。
もうそんな状況かとプログラマは開発現場を眺めると、人が寝ていたらしい毛布が床に寒々と散らばっているだけで、彼の心はそこまで行かぬうちに闇に呑まれていた。
「お客さん、仕様です。議事録にもそうあります」
「ああ、話にならんじゃないか。部長はいるかい。また作り直しだよ」
2009年06月15日
枕草子
まったく白紙のままの、要求は少しも決まらないで、裁断された議事録の細くたなびきたる。
夏は実装
定時過ぎはさらなり。終電もなほ、プログラマの多く乗り逃したる。
またただ1人2人など、(力尽きて)儚く椅子に突っ伏して寝るもをかし。徹夜するもをかし。
秋は試験
夕日のさす頃にようやく仕事をする気持ちになりたるに、(定時までに)お客様のところへ確認へ行くとて、3人4人、2人3人など慌てて飛び出していく様などあはれなり。
まいて重役などの連ねたるが、肩を落として客先へ謝罪に行くのもいとをかし。
日入り果てて、(会議室から聞こえる)怒声、罵声などはまたいふべきにもあらず。
冬は運用
システムの落ちたるはいふべきにあらず。データの不整合も、またさらでも、不審な動作にログなどを急ぎ開いて、追いかけて回るもいとつきづきし。
昼になりて、障害票を持ていけば、上司の顔色が白く灰がちになりてわろし。
2009年05月28日
言語を変えた時にとりあえずつまづくこと
そこで、言語を変えた時にうっかりしたり悩んだりすることを適当に並べてみた。
・セミコロンを忘れる
文末にセミコロンを打たない言語(RubyとかVBScriptとか)を使ってから打つ言語(CとかJavaとか)を書くと、面白いほどセミコロンを付け忘れてエラーの海に溺れます。何度使用言語を変えても毎回やってしまう。
・$がしっくりこない
PerlとかPHPのような変数の前に$を付ける言語にスイッチした時に、しばらく馴染めない感覚がする。2週間も書いていれば逆に$がない方が不自然に見えるようになる。
・「else if」の書き方を忘れる
「if」と「else」の書き方はだいたい覚えているのですが、「else if」の書き方はさっぱり覚えられません。「else if」だったり「elif」だったり「elsif」だったり、いろいろあり過ぎです。そろえておくれ。
・文字列処理の関数の名前を忘れる
substringとか、indexofとか、replaceみたいな当たり前の関数の名前を忘れる。言語ごとに微妙に違ったりするところが厄介。適当な名前でtry and errorしてみて、たいていうまく動かずググることになる。
・配列の扱い方が分からなくなる
配列の初期化の仕方で一瞬悩んだりする。連想配列の初期化はもっと悩む。「=>」で区切ったり、「:」で区切ったり。
・括弧を付ける場所がわからなくなる
関数に引数を渡して実行する時に、引数を括弧で囲む必要がある言語と無い言語、それからどちらでもOKな言語がある。自分が使っている言語はどういうルールだったかしばし悩む。
・どの開発環境が良いかで悩む
エディタ最強説の人は関係ないかもしれないが、いろいろな開発環境を試している人間は言語が変わるたびに面倒な調査をすることになる。自分が目を離していた隙にデファクトスタンダードが変わってないかとか、使っていたソフトが寿命を迎えていないかとか。良い選択肢が見つからないと、調べた情報を放棄してエディタに還ることになる。
・処理速度の勘が狂う
多少重い処理をさせる時に、この処理なら実行時間はこの程度だろうということを頭の中で考えるのだが、言語を切り替えると意外とその通りにいかないことが多い。特にVBScriptやJavaScript、ActionScriptあたりを使った時は「まぁ、大丈夫だろう」と思って処理を実行してみると一向にレスポンスが返ってこなかったりしてびっくりする。
・値渡しされてるのか参照渡しされてるのか悩む
関数に渡したオブジェクトがどう渡されてるのかで悩む。どっちかというと参照が主流だけど値もけっこういる。PHPとかはバージョンで違ったりする。全部真面目に勉強するのはけっこう面倒。
・関数なのかメソッドなのか分からない
私は何も意識しないと「メソッド」と呼んでしまうJavaグラマーですが、時々、関数と呼んだ方が良いのではないかと悩む。クラス変数とかメンバ変数の呼び方はもっと悩む。