2014/02/28(金)しがらみのある飲み会
2014/02/27(木)12分の2
2014/02/26(水)久しぶりのサークル
今週の頭からeAmusementにQMAが追加されたので、ようやくサークルに参加できるようになりました。カードを引き継いでいれば(変更はできなかったとはいえ)サークルに参加できたのですが、私は引き継がない派なのでそういうわけにもいきませんでした。
というわけで、昨日は久しぶりにアニ並サークルに参加しました。去年の夏にちょこっとだけ参加して以来なので、もう半年ぶりくらいになります。アニ並どころかQMA自体のブランクが長いので、300に行ったり行かなかったりという程度の成績でしたが、これはボチボチ鍛えていくしかないでしょう。しばらくはサークルに参加する程度の余裕はありそうなので、頑張りたいと思います。
しかし、やっぱりガンダムとか特撮とか、もともと苦手なところから忘れていくものですねw
2014/02/25(火)お金を落とすということ
Twitter経由の話なのですが、とても140文字には収まりきらないのでブログのほうで書くことにしました。
先日、こんなツイートが何度もリツイートされて、私のTLに表示されていました。
「なんで映画見に行く人が減ったのか?」みたいな話が出る度に、「350円でドリンクを売り、ペラッペラのパンフを800円で売り、1800円も払って入ってくれた人に対して延々20分も広告を見せた挙句に犯罪者呼ばわりする」という現状を把握した上で言ってんの?…と思う。
しかし、広告と犯罪者呼ばわりの部分はわからないでもありませんが、金額に関してはまったく共感できませんでした。そして、この意見が10000回以上リツイートされる状況を見て(まあ、リツイート=同意とは限りませんが)、今の興行って大変なんだなーと感じました。
私はそれほど頻繁に映画を観にいくわけではありませんが、行ったときには入場料以外にも買い物をして、無理のない範囲でできるだけ映画館にお金を落とすようにしています。そして、それが映画館を支えることだと思っています。飲み物1杯が1万や2万もするのであればさすがにためらうでしょうが、350円はそういった意味では望むところだ、という値段です。
これはほかの娯楽、たとえば野球観戦でも同じです。ですから、らき☆すたデーのたびに諭吉さんが行方不明になるのも、私がライオンズを愛してやまないからなのです。
……何の話でしたっけ。
これは両親の影響があるのだと思います。そして、私が友人と遊びに行っても、みんな同じようなお金の使い方をしていますから、私の家庭が特殊な環境だというわけでもなさそうです。まあ、類は友を呼ぶという言葉もありますし、単に私の周りに似た考えの人が集まっているだけという可能性もありますが。
しかし、先ほどのツイートが共感を集めたということは、私の考え方は一般的ではない(あるいはなくなった)のでしょう。これは良い悪いの話ではなく、常識が変わってしまったということです。
ということは、映画館(だけではなく、入場料以外でも利益を上げるビジネスモデル全般)も今までのやり方が通用しなくなるのかもしれませんね。
2014/02/24(月)ソースコードのコピペは危険
ソースコードのコピペミスでで深刻な脆弱性が生み出されてしまったそうです。
Apple史上最悪のセキュリティバグか、iOSとOS XのSSL接続に危険すぎる脆弱性が発覚──原因はタイプミス? | アプリオ
こんなことが起こらないようにPythonを使おう! だと1行で終わってしまうので、もう少し真面目に書いてみますw
最初にこの記事を読んだとき、無条件でfailラベルにジャンプするということは、脆弱性というよりは、成功するべきケースでも必ず失敗するんじゃないのかと思ってしまったのですが、ソースを見てみると、failという名前とは裏腹に成功時にもここを通るようですね。いいのか、こんなラベル名で。
さて、すでに昨日のニュースですから、Twitter上でも様々な意見を見かけました。しかし、ちょっとずれている意見が多いんじゃないかなーという印象を受けました。
まず、gotoを使うのがおかしい、という指摘は的外れと言わざるを得ません。忌み嫌われるgotoではありますが、今回の使い方はC言語では許されることの多いケースの一つです(ほかに許されやすいケースは多重ループから一気に抜ける場合)。そりゃ例外機構があれば使いますけど、ないものは仕方がないじゃないですか。
ちなみに私の今のプロジェクトではgotoが禁止されているため、関数の途中で抜ける場合はそのたびに後処理を書かなければいけません。
if (処理A() != 正常コード) { 後処理; return; } if (処理B() != 正常コード) { 後処理; return; }
ものによっては後処理が全体の半分を占めるという笑えない関数も存在します。もうやだ……。
閑話休題。
また、中括弧をつけないことを許容するコーディングルールが悪い、という意見もありました。確かに、if文、for文などで、たとえその内部の処理が1つの文であっても中括弧をつける、というルールを採用しているプロジェクトも多いと思います。そして、そのルールを採用していれば、今回の事故は防げたはずです。
今回の事象だけ考えれば、そのようなルールを持ち込むことで解決できるでしょう。しかし、根本的な部分である、きちんとテストをしていないという問題点は解決しません。
今回のケースは、網羅性で言えばC0すら満たしていないわけですし、一番メインの処理である(ように見える)sslRawVerify()を通していません。私たちはまともにテストをしていませんよ、と公言してしまったことにも等しいわけです。また、テスト以前にこれは静的解析ツールで発見できるレベルのミスですし、そもそもコンパイラが警告を吐いているレベルの間違いです。
これ、ほかのところは大丈夫なんですかね。かなり重要なはずのSSL関連の部分をちゃんとテストしていないのですから、それ以外のところはもっと酷いかもしれませんよ。