はてなキーワード: 徳丸とは
クレジットカード番号のセキュリティ番号を何度も試せるとか話題になっていたけど、サービス側で10回に制限しても意味ないでしょ。
クレカ使うECサイトなんか幾らでもあるんだから10回試せるECサイトを100個見つければ簡単にできる話であってクレカ会社側でロックしてもらわないとどうにもならない。
ちなみにVISAはこれがちゃんとできてなくてニュースになってた。
http://www.itmedia.co.jp/enterprise/articles/1612/06/news057.html
サイト側で制限をかけようとするとクレカの番号にソルト付けてハッシュ化したりして試行回数を保存しておかないといけないんだけど、それをサイト毎に実装した方がセキュリティ的にまずいこと起こる確率が高まるのでは?
徳丸先生もECサイト側でクレカ情報に触れなくなってきているというので、そういう流れなのであれば実装したくないよねー。
https://twitter.com/ockeghem/status/1075355119573581826
徳丸先生も悪い流れだと書いてないので、サービス側でチェックしなくても良いということだと思う。俺は徳丸先生を信じる。お前らも信じろ!
https://togetter.com/li/1300564
結局なんでこんなことになってしまったのかといえば、きっと素人目に安全そうに見えなかったのがいけなかったのだ。
セキュリティ的に大した違いが無くてもWeChatPayの方が安心できそうな見た目をしている。つまりただのお気持ち案件。
ブコメでもそうだったけどやっぱりセキュリティ的に問題あるようには見えないよね?
PayPayに関してはいろいろあったものの対応が早い方だと思うし、言いがかりに近いものまで対応していてお疲れさまでしたという感想しか出てこない。
NTTの退職エントリが流行っているようなのでそもそも入れなかった人の話でも書きます。
といっても1X年前の話です。
リーマンショック直前の超売り手市場に新卒で4月初頭というゴールデンタイムにNTT系列何社も受けて全滅したアホ。
趣味はプログラミング。ICPFCとか参加したり小さいツールを書いたりしてた。
大学の専攻は数学。日本ではやたら偏差値の高いらしいT大学に現役で入ってそのまま修士卒。
NTT株、NTTD、NTTS、NTTH、NTTCなど。略称がどこを指すかは適当に考えてね。
全部落ちてます。4月はこのせいでお祈りされまくり、結局決まったのはNTT以外で夏ごろで。
電話がとても好きだった。高校ぐらいのときはモデムから高速リダイヤルをかけるアプリとか、
公衆電話の番号を探すツールとかを書いていた。PHS、携帯が普及しだしたころから
そもそも仕様があまり手に入らなかったので興味を持てなくなった。113はよくお世話になった。
就活のときそのへんのことを思い出したのと、プログラミングが好きだったのでNTTなら
なにかできるんじゃないだろうかと思いたくさん受けた。
当時はプログラマというものの地位がものすごく低い時代だったと思う。
そんな時代に「プログラミングやりたいです。ICPFCとかめっちゃ楽しいです。」という割に
基本情報すらとっておらず、コミュ力も非常に低い上に専攻が純粋数学とか落ちて然るべき。
更にNTTがどういう人材を欲しているのかという企業研究もろくにしていなかったため、
自分が御社にどういう貢献ができるのかを説明できず、ただやりたいことだけを喋っていたた。
また純粋数学は研究内容の説明がしにくいというのはわかりきった話だったので、それは対策するべきだった。
3分で研究内容を話すというプレゼン。SPIがよかったらしく1次面接は免除という連絡をいただき、
喜んで2次面接に望んだところ純粋数学の研究発表で、「この研究の社会的意義はなにか?」という質問をされ無事死亡。
社名にソフトウェアなんてついてるぐらいだからプログラミングがガッツリできるんだろうと思い、
某CPUの命令セットの素晴らしさとその効率的なエミュレータ実装について熱く話す。
面接官の「そんなことにしか興味ないんですか?」という返事は今でも覚えている。
グループディスカッションで落ちる。コミュ力とか見られてたきがするが審査員は見てただけなので詳細は不明。
面接前に社員と雑談する謎の時間があり、「T大の人、ぜひ来てほしいんですけどNTTDとかNTT株に
取られちゃって蹴られてしまうんですよね…」という話を聞く。その時点でDには落ちていたので苦笑いして面接へ。
当時盛り上がっていたNGN関係の話で面接官と盛り上がるも俺が考える最強の通信スタックの実装法を
NTT系列はだめだったので結局某SIerに就職。年収は300万弱から5年ぐらい在籍しても500万弱ぐらいだった。
最初は流石に年収低すぎということで某Rエージェントで転職活動をするもリーマンショック真っ最中で
在籍も1年とかだったため「君なにしにきたの?」オーラがすごかった。その時点での転職は失敗。
SIerによくある通り仕事でコードというものはほとんど書かず、Excel、Wordがメインであった。
ただ仕事自体は暇だったので、合間にひたすらProject Eulerをやっていた。
今はお仕事が変わり、AI関係のソフトウェアエンジニアみたいなお仕事をしている。
相変わらず面接ではコード書きたいですとかAtCoderとかの競技プログラミングの話しかしていないのだけど、
10年前に比べると反応がとてもよくなったと感じる。年収も都内に何の不自由もなく暮らせるぐらいまでは
もらえるようになった。プログラマの地位は相当向上しているのではないだろうか。
個人的にはAtCoderやTopCoderで黄~青ぐらいのプログラマの社会的地位が10年で年収400万から1000万ぐらいまで上がった感じがある。
今は1000万!と言いたいところですが、うまい棒5万本分ほど足りません。一本行けるように今後も精進します。
ただ今都内はソフトウェアエンジニアバブルといってもよく、かなり年収水準が上がっている気がします。
ですので多少は夢を持ってもよいのかなと。
キリの人も入社時は優秀だったんだと思います。あともし採用されるポテンシャルがあったとしても
ちゃんと業界研究しないのはだめかと。いろいろな意味で私はだめでしたね。
1990年代はまだ固定電話の古い交換器や緑・ピンク電話などが残ってた時代で、電話の面白い挙動が
NIFTY-SERVEのフォーラム等で盛り上がっていた時代でした。そのため当時は同じような人が結構いました。
うけてません。NTTの社風に合わないと全滅する可能性もあった(そして実際そうなった)ということで、
最近のNTTDのOSS関係へのコミットは凄まじいですね。あの部隊は尊敬しています。
あのへんのコミッタ方たちはどういうルートで採用されたんでしょうね?
大学時代はXSSとバイナリ解析に興味があったはずなのですが、就活ではその道は選びませんでした。
忘れていたというのもあるのですが、その数年前に日本のセキュリティ系の団体とちょっともめてしまった
というのがあるのかもしれません。日本のセキュリティ業界はちょっと前までアングラっぽい雰囲気が
漂っていました(世界的にそうだっただけな感じもします)が、そんな方たちも某FF○Iとか某NAとか
ホワイトハッカー側で大きく活躍されてるようで、もしセキュリティ業界に身をおいていたら
そういう変化も楽しめたのかなぁとは思います。
あ、徳丸さんのブログはいつも楽しく拝見させていただいています。
あの某NAのLuminさんでしょうか。当時はとても落ち込みましたが、今では楽しくやれているので
おじさん、バイトをすることにした。
おじさん、平日は普通に働いている。
IT関連の会社で、社員ではなく役員という立場。有難いことに収入もそれなりにある。家のローンも十年以上前に完済している。
子供達も大きくなり休日はそれぞれ部活やら友人と遊びに行ったりで、自分にも持て余す時間が出てきた。
趣味を見つけるのも良いのだが、趣味というのもなかなかに金がかかる。
おじさんも不惑と言われる年代になり、会社の一員である人生も折り返す時期だし。
副業で小規模な開発でもやろうかとも考えたが、会社役員という立場上、関連する業種での副業は何かとヤバイらしいよ。いやマジで。法律的に。
ならば全く異業種で働くのも楽しそうだなといろいろ探していたら、近所のスーパーのフードコートでバイト募集してた。
おじさんで副業でも大丈夫らしいので、何も考えずに勢いだけで応募したら受かった。マジかよ。
行ってみたら、調理のお爺さん以外は全員女性という賑やかなバイト先だった。
若さゆえの勢いで、根掘り葉掘り聞かれた。
なんでバイトなの?奥さんは?子供は?平日はどんな仕事?え、それ殆ど趣味じゃん!うける!趣味でバイトヤバい!!すげー普通にいい人じゃん!その年でバイトとか絶対あぶない人だと思った!
なんか、とても新鮮だった。
平日の「増田さん、今度、中途希望者の面接の件ですが……」「増田さん、今期売上目標の状況ですが……」なんて話も良いが、こんな風に若い子や人妻さん方と笑い話するのもまた良い。
おじさんこれまで飲食関連はシステム作る以外で関わった事無かったし。
いい気分転換だわ、て思う。しかも時給まで発生するし。なんのご褒美だよ、これ。
てなわけで、休日家でゴロゴロしてる俺みたいなおじさんはバイトするといいよ。
■追記
とりあえず、おじさんのイメージがすごい事になってる気がするけど、誤解だよね。
「会社役員」て言っても、会社なんてピンキリだよ!うちは零細企業だし。
「収入もそれなり」て言ったけど、「僕みたいな底辺にしては」ていう前提でだし。そのへんの大企業の役員報酬とか想像したらダメだよ!むしろグイグイいわしてる大企業の中堅社員にも満たない収入だよ!
まあ、でも、好きに仕事させてもらってるから、社長や社員さんたちにはいつも超感謝してるよ。
>SndOpさん こういうのは夜間警備員になって残業で働いている新入社員をねぎらうものだろう
いや、ネタ的には良いけど、夜間勤務とかおじさん死んじゃうよ。
やんごとなき方の話はおいそれとは口にできないんだよ。まあ典型的B型クズの僕を訓練されたB型にしたとんでもない功績の持ち主だよ。うん。
>youco45さん これ人当たりよくて有能、かつ変なプライド持ってない、という三拍子揃わないとできない芸当だと思うの
プライドは油揚げに挟んで焼いて食べちゃったよ。有能だったら今頃、鎌倉とかで房総とかで海見ながら暮らしてると思うよ。勝手なセレブのイメージだけど。
>sovietrocketsさん 不惑とは数え四十前後。それで十数年前に家のローン完済となると三十路前。やだー超有能
家なんてピンキリだよ。新築とか戸建てとかに拘らなきゃ安くていい物件が割とあると思うんだ。
>lavandinさん 増田さん、私約束しましたよね?決して本業をおろそかにしない事、バイト先の女の子に手を出さない事。あなたはもう手遅れです。一生フードコートでお過ごしなさい!ドーーーーーン!!
ぎにゃーーーーーーーーー!!!
て、手だしてないし。
dcvb.sytes.netというspamサイトで報告していたGoogle alert spamサイトだが、その後変化があった。
まず、このサイトが Google八分にあい、Google検索で一切引っかからなくなった。徳丸さんが報告しているこのあたり。
https://twitter.com/ockeghem/status/753359665971367936
https://twitter.com/ockeghem/status/753360671287283712
そして、dcvb.sytes.netもDNSがひけなくなり、閲覧できなくなった。
しかし、このまま終わるはずもないと思っていたところ、少し形を変えて同様のspamサイトが出現した。違いは、こうだ
俺の目に止まったそこのおまいらにあだ名を付けてやる!
mizchi | ちくわ入りラーメン380円 |
vvakame | アイコン君 |
江添亮 | 磯野波平 |
はむかず | どうぶつの森の精霊 |
cocodrips | 永遠の女子大生 |
NEKOGET | キリ番ゲット動物園 |
hnw | 原点原理主義 |
徳丸浩 | アルソック徳丸 |
chokudai | まじかる☆リズむートくん |
chomado | 松屋の長距離電車オタク |
kazuho | 水素爆弾 |
yamamoto yusuke | 任天堂ルイージ |
koron | 香料官房長官 |
mattn | 大阪の露出狂おじさん |
takata | ジャパネット熱狂信者 |
ichizok | 一族鬼を継ぐ者 |
ujihisa | うじおちゃん |
haya14busa | コンドル中2隊長 |
thinca | ちんこ |
rbtnn | 紅茶りぶとん |
Lindan | グリニッジ標準時 |
tyru | 風間トオルのおっかけ |
shougo | 替え歌製造機 |
osyo-manga | ご隠居様 |
cohama | 横浜 |
yoshiko_pg | そめいよしこプギャー |
zchee | 未来から来たトランクス |
新卒で入社したA社は、親会社B社のシステムの内製と、B社の顧客層向けのパッケージソフトウェアを制作販売するソフトウェアハウスだった。
入社1年目の自分は、いくつかの細かい業務を平行して担当することになったが、その中にホームページの管理があった。主な業務は、ページの文章の更新と確認、誤字脱字の修正、古く間違ったHTMLの修正など。
会社のホームページには自社のサービスや製品だけを扱う小さなショッピングシステムがあり、ユーザ登録・ログイン・購入・履歴確認など一通りの機能を持っていた。このシステムを改修したり更新したりする予定はなかったが、せっかく担当となったわけだし、以前から興味のあったWebアプリケーションのセキュリティを勉強しようと、徳丸本を購入した。(当時は紙の本しかなかった)
http://tatsu-zine.com/books/sbcr-taiketekinimanabu
この本は説明不要の名著で、平易な文章で細かく正確な記述がなされている。Webアプリケーション制作に携わる新人プログラマは必読だ。
頭から読み進める。1章に用語の整理があるおかげでだいぶ理解しやすい。2章の実習環境の用意は、都合がつかず読み飛ばした。3章は流し読みし、いよいよ4章。様々な脆弱性を個別にとり挙げ、原因と対策について具体的な説明がされており、非常に興味深い。
なるほど、XSS(クロスサイト・スクリプティング)という言葉は知っていたが、具体的にこういうものなのだな。入力ボックスに入力した内容が遷移後のページに表示されるというUIはよくあるから、気をつけなければ……そういえば、会社のホームページにも検索機能があって、「検索ワード:○○」と表示されるところがあったな。あれもXSS対策がされているはずだ。どれ、見てみよう。テスト用サーバで画面を表示して、<script>alert(1)</script>(本当は半角)と入力……
検索ワード: +----------------+ | | | 1 | | [ OK ] | +----------------+
なるほどこれがXSSか。実習環境の用意はしなかったが、実物を拝むことができたぞ。脆弱性の修正の実習もできるな。
このようにして、徳丸本を読み進め、(テスト用サーバで)攻撃を実践しながら、脆弱性を直していった。覚えている限りでは、以下の実習ができた:
ショッピングシステムの中身が、フレームワークやライブラリなし・SQL発行共通関数なし・オブジェクト指向なし・数万行の巨大ファイル1つであることを知ったのは、脆弱性の修正にとりかかってからだった。その他のシステムもすべてこのショッピングシステムを参考に作られているらしく、プレースホルダもエスケープもない文字列組み立てSQL発行があらゆる場所に散乱していた。とても直し甲斐があるシステムであった。
これらのシステムは、日付zip以上のバージョン管理が行われていなかったため、該当部分を誰が書いたのかはわからなかった。そんな状況であったので、大量に報告された脆弱性の始末書は、すべて現在の担当である自分が書くことになった。
自分が入社するより前からあった、誰が作ったのかもわからない脆弱性を、探し修正し始末書を書いた。「私が担当になる前からあった脆弱性なので、原因はわかりません。おそらく不勉強が原因です。対策は、勉強会とコードレビューとバージョン管理です。」などと書いた。今思えば、"よい始末書"の書き方を勉強する機会を逃していたのかもしれない。
自分の作業はすべてgitで記録していたので、自分が担当になったときにはすでに脆弱性があったと主張したが、「自分だけバージョン管理などという便利なものを使っていてずるい」と怒られて終わった。(なお、それよりも前に社内でのバージョン管理ツールの使用は提言していたし、それが「よくわからないから」と却下されてからは、自分だけで使う許可は得ていた。)この経験から、バージョン管理をしていない、もしくはクソみたいな管理しかしていない組織内で、自分だけでも上手く管理する方法についての知見を得た。
こうして、徳丸本の内容を実践しながら学習できたので、セキュリティ分野についての興味はより高まり、知識も増え、A社に対する信頼はほとんど失われたので、さらに勉強し、3年目に入るころには情報セキュリティスペシャリスト試験に合格し、転職した。
Webサービスのセキュリティを勉強したいと思ったならば、徳丸本を読んで、実践しながら勉強することを強く推奨する。紙の本には実験用環境のCDもついているので、A社でホームページを担当していなくても、実践しながら勉強することが可能だ。(電子版の場合はどうなのだろうか。申し訳ないが各自確認していただきたい。)
というのが、作ってる人たちは「これ、正直やばいけど稼げるし短期決戦で得るもん得ていこうか〜」くらいの気持ちでやってるのかと思ってた。
実際この考えの人は少なからずいるはずだ。
あるいは、「ヤバいけど、ライバル会社もやってて生き残るには自分も参加するしかない。」っていう、
ある種の邪悪なチキンレースに乗ってしまっている事を自覚してる人たち。
この人たちは、まぁ、邪悪だけど仕方ないのかなと思う。
※なお、本当に本当の意味で『邪悪』な人たちはとっくの昔に上がりを頂戴して既にあの場にはいないはず。
少なくとも某女史は完全に逃げ切ったのかなと。
けれども、どうも中の人たちのレスポンスを見る限り、「俺たち悪い事してねーし!」みたいなことを本気で考えている人たちがいる様子。
この人たちはヤバい。何がヤバいかと言うと、「罪の意識の希薄化」がされたことに一切気づいていないと言う点でヤバい。
そしてそのヤバさが、プログラマーっていう職業に対する社会の認識が悪い方向に傾きかねないのでヤバい。
いや、もう手遅れだ。多分、後一年後にはIT業界に対する世間の目そのものが冷たいものに変わっているだろう。
まず僕はあの場で「俺悪くねーし!」って言ってる末端を攻めるつもりは無い。
(といっても役職持ちでこんなことを言ってる連中には残念ながら、だけど。)
けれども、彼らが嵌った「脱法的ソシャゲー開発」の一端は解き明かしておきたい。
何故なら、このロジックは非常に単純で、かつ効果がテキメン。特に技術職に従事する連中に対しては。
さて、例え話をしよう。
それは先端のライブラリを使い、高負荷をものともしない作りにし、
またユーザーを飽きさせないよう常時色々なキャンペーンを打っていくアプリケーションだ。
ユーザー数は膨大で、アクティブなユーザー数だけでも10万を超す。
このアプリケーションを作成して運用するのは、いくら何でも一人では無理だ。
そこで仕事を分割し、プログラマー、インフラエンジニア、UXデザイナ、WEBデザイナー、ディレクター、
アナリスト、PM、営業…などなど、それぞれの専門職を適切に配置し、
それぞれが自分の得意な事に集中できるようにする。
こうすることで、それぞれの専門職にとって雑多な事は、耳半分で会議を聞きつつうまく回る。
さて、次の例え話をしよう。
とある邪悪な人間が、邪悪で脱法的な方法でお金を稼ぐロジックを思いついたとしよう。
しかし、規模が大きいので人手がいる。けれども、他の邪悪な連中を誘い込むと美味しいところを奪われたあげく、
責任をなすり付けられる可能性が高い。
ならばどうするか?「普通の人」を巻き込めばいい。
でも、「この方法で情弱を騙して稼ごうぜwww」というと、人は訝しみ、拒絶する。
けれども、その邪悪なロジックを分割して、分割したそれぞれの仕事が違法ではないものにすると…?
あるいは、分割したロジックを事前に3つ前後の別のクリーンな仕事に適用して失敗して後が無い状況を演出しておき、
ここで、だ。結合された後のサービスのありようを見て、「これって、ダメなんじゃない?」という人は必ず出てくる。
ここで、技術職の悪い癖を利用する。
技術職は「0か1か」での判断をすることに常にさらされているため、
そうではない世界でも「0か1か」で決まるものだと錯覚しやすい。
「うちの法務に事前に確認しましたが、法律上問題ないとのことです」と。
※注意
法務の方々の名誉の為に言っておくと、システムの邪悪さを理解して邪悪さを誤摩化す回答をする法務も一部にはいるが、
そこで、邪悪な人は特定の条件下で起こりうる例外を提示して「それならグリーンだ」と言わせておき、
その例外を隠して「この前うちの法務に事前に確認しましたが、法律上問題ないとのことです」と
法律は「0か1か」に見えてそうじゃない。
少なくとも過去に判例が出ていないものについては「0か1か」すらわからない。
ようは「未テストの項目」に過ぎない。
「裁判所」というテストを通らない限り、「0か1か」なんて本当はわかるはずもない。
それも、テストの内容によっては関係するモジュールや実行環境、タイミングによって結果が変わる事すらあり得る。
法務の言う「大丈夫」なんて、ようは自動テストやってない職場でベテラン開発者がいう「あ〜あそこはきっとOracleのバグ(※ただし未検証」と同じ程度の回答だ。
(本当はOracleのバグではなくそいつが作りこんだバグなのかもしれない。)
さて、普通の技術者が邪悪なテスト結果をまんまと信じたら、あとは邪悪な人の思い通りだ。
まず、そのテスト結果を信じた普通の人は、他にも不審に思った人に対して「あれは問題ないって法務が言ってたよ」と伝える。
が、ここでは同じテストを繰り返さず、過去のレポート、それも又聞きのレポートを伝えているに過ぎない。
もう一度同じテストをかけていない。自分の目と耳で、法務から直接話を聞いていない。
また、結合前のクリーンな仕事をしているそれぞれの担当者に取って、
結合後の姿より結合前の状態がその人の仕事の大半であり、「本当の意味での」結合後の姿を見てるようで見ていない。
単体テストはバリバリこなすだろう。しかし結合後のストレステストやセキュリティのテストは専門外として見向きもしない。
いや正確には「何かあったら、専門の担当者が文句つけてくるはずだ」と待ちの姿勢でいる状態だ。
邪悪な人は、間違いなくその専門の担当者が各部署を回って抜き打ちテストをやらせるなんて事はしない。
そもそも専門の人を社内に常駐させないか、もしくは置いても他の事(例えば他社とのライセンス問題など)にリソースをさくよう仕向ける。
だから否定されると「俺悪くねーし!」と言い出す。
細分化された仕事のことしか見なければ悪いことは何も無いだろうね。
しかし…もう…嵌っちゃったんだなぁというのが外野からの印象。
まぁせいぜい人身御供になってくれ。
今回の件、役職だけではなく実務の担当者まで引っ張られる可能性はある。
裁判にかけられるかどうかは謎だけど、企業や業界への揺さぶりの手段としては有効だしね。
なお、最初に言ったが本当に邪悪な人はもう既にあの場所にはいないはずだ。
もう既に後進に道を譲るだの自分の力を別の場所で試したいだのもっともらしい理由を付けて、
「普通の人々」のその後がどうなるかはこれからの物語なので、とても楽しみではある。
おそらく、なのだが、この件、ワーストケースで転がれば、当該の企業だけではなく
「ITの技術者はマッドサイエンティストと同じで法の遵守する気がない連中だ!」と言われる日は意外とそう遠くないと思う。
そんな風がもし吹こうなら、政治家の先生方や警察のお歴々も「インターネットの健全性を保証する」という名目で、
色々と無茶な法律を作るかもしれませんね。
少なくとも、「インターネット=悪」として自分らの有利な方向にネットをコントロールしたい方々にとってはとても好都合でしょうよ。
そろそろ、誰かが「良い意味で」健全化のために何かを仕込む頃合い。
政治家や警察といったレイヤーではなく、業界の自主努力のレイヤーで。
2、3年後、どんな団体ができでどんな人が所属するかなぁ?
ダンコーガイ、津田、はまちちゃん、ちきりん、高木先生、漢のMySQLの人、徳丸本の人…多分この中から二人は自ら、あるいは担ぎだされる/巻き込まれる形で関わってくるかな。
切込隊長は面白おかしくレポートしつつ裏で謎の秋波を送るんだろうなぁ。
多分ひろゆきはその集まりを「つまらない」と見て何もしないかな?
Webゲームっていうか、ブラウザ上で動くような奴。PHP(5.3)で突貫工事したので、ペラペラな感じだけど、なんとか公開できて、たまに遊びに来てくれる人がいて(一時はVIPに募集スレも立ったらしい)、何戦かして帰っていくので、とりあえずサーバー代を払った価値くらいはあったかなーという感じ。
で、どういうゲームかっていえば、人狼みたいに「陣営に別れて、決められた目標をクリアするゲーム」です。
『レジスタンス』っていう卓上ゲームというのかな?それを参考にして作りました。
ちょうど開発してから、一ヶ月程度になったので、宣伝をかねて、現状みたいなのをメモ。
一応、前提としては、Pythonだったら、何かしらのシェルプログラムを書いてcronしてるけど、それ以上のことはしていない程度の、技術ワナビー。
ほぼ業務経験なし。継続してスクリプトを開発したのは、今回が始めてという感じ。
単純にPHPで何か作りたいなーと思ったから。一度はPHPを書くべきだなあと思ったりした。それで、何かいい題材ないかなーと思って探してた。
「昔、人狼BBSで遊んだことあるなー、でも同じ人狼のゲームを作っても芸が無いしなー」と考えていたところ、知人と遊んだ『レジスタンス』ってゲームにピンと来て、「こういうゲームをWeb上で遊べたらいいかな。調べたところ、Web上でも人狼っぽいって言われるし、上手くそういう層にアピールできそう」ということで作り始めたのでした。
とはいえ、最初は勢いで書き散らしたので、本当にClassとかまったくなかった。それを徐々に整え直して、なんとかファイル分割できるようになった。それでも、全く足りない。具体的には下のような部分が汚い。
本当はCakePHPとかそういったフレームワークを使えば良かったんだろうけど、「重いんだったら仕方ないしなー」というわけで、フレームワーク無しで使ってみたんだけど、結果として表示部分にやたらと処理が入って醜いったらありゃしない。
表示部分と、実際のシステム部分はわけられるべきだし、フレームワークを使わないまでも、そういう風な機能分割は必要。
で、そういうコードを書いたせいで、下のようなことが起きる。
PHPUnit使ってユニットテストは書いているんだけど、まったく足りない。
全部グリーンにはなるんだけど、実際に動かしてみるとバンバンエラーが出る。
幾つかの関数はテストを先に書いたりしたんだけど、表示部分とかは「ここテスト書きにくいから誤魔化しちゃえー」といって書いたりした。
で、何が起きるかっつーと、リファクタリングするときにガンガン機能が落ちる。そして死ぬ。
さすがに一つのClassが1000行くらいになってきたので「うっわー、これは駄目だわ。分割するべき」って、ゴミみたいなコードに手を入れ始めるんだけど、全く歯が立たない。
とりあえず、既存のテストはグリーンになるけど、どこかで処理がつまづいているという状態でこれは駄目。
「うわ、この部分、テスト書きにくい!」って思った時点で、何かを嗅ぎつけてちゃんとテストに落としておけばよかった、と反省することしきり。
結果として手作業で複数ブラウザ起動して……みたいなことになっちゃう。バグの温存。
CSSとか勉強のために、自分で1から書いているけれども、これは本当にだるい。
知人から、綺麗にコードが書けるから、と薦めてもらったSaSSを使っているけれども、なかなか綺麗にできない。
一応、Twitter BootStrapは知っていたけれども、それに頼るよりは一から書こうと決心して書いたためか、ようわからないし、デザインとしてもこなれていないために気持ち悪いことになっている。
上記のフレームワークについてもそうだけど、流行っているものには、それなりの理由があって、それをわざわざ避けても、結果として、それ以上のものは(素人に毛が生えているくらいでしかない以上)ならないような気がする。
ならばとっととそういうものを使って、さっさと済ませてしまえばよかったなーと思ったりした。
ゲームという性質である以上、どんどん情報量が増えていくために、そういうのを表示しまくっていると、本当に画面がぐちゃぐちゃになる。
セキュリティーには本当手をつけられていない。(徳丸本読めという話になると思う)
(略)
で、本当にボロボロになりながら作ってみて良かったことをメモしておく。
自分は割と現実逃避の為に何かに没頭することがあって、その逃げ先としてプログラミングっていいなあと思ったりした。
あと、自分が書いたコードがヒョコヒョコ頑張っている姿をみていると、すごくかわいくなる。形にもなるし、「こういうものを作ったよ」とも言える。それは単純に楽しい経験。
元々、自分が好きそうなものから題材をピックアップしただけあって、自分が作っているものが、自分が一番愛用しているというのは幸せなことだなと思う。
自分が楽しむためのものだから、自分が一番のユーザーであるし、自分が快適に使いつづけるために改良を続けてる。
人から「こうしたらいいんじゃないの?」というのも勉強になるし、自分がちゃんと&楽に機能を拡張できるように、ちゃんと勉強しようとも思う。そういうのは本当にいい循環。
大抵は、自分が使うから自分だけのものだったので、あまり他の人が使ってくれることを期待していなかったんだけど、今回のは、ときどき遊びに来てくれる人が居る。
例えば、VIPでスレが立ってたり、あるいはニコニコ生放送でプレイ実況を配信してくれたり。
割と「くっだらねー」と思うけど、一人で細々と開発していると、そういう些細なことが嬉しかったりする。
なので、ついついみてしまったり、場合によっては、プレイしているところをいつまでも一緒に徹夜して観戦していたりする。人のプレイしている姿が楽しいというのも、自分が作って良かったなあと思う。
逆に言えば、使ってくれる人がいるからこそ、一ヶ月間開発が続いているようなもので、「ああ、自分のプログラムで楽しんでくれる人が居るんだな」という手応えみたいなものが、モチベーションになっている。
遊んでくれる人が見えるというのは、自分にとっては、モチベーション維持に大切になってる。
だいたい三日坊主で終わっている自分としては、開発が長く続いているほうだと思う。
目指すところは、もっと綺麗なソースコードにして、Githubで公開すること(いや、もうアカウントは既に持っているんだけど、公開するのは凄く恥ずかしい)。