ソフトバンクのIP帯域公表ページ

高木浩光氏の日記より「無責任なキャリア様に群がるIDクレクレ乞食 ―― 退化してゆく日本のWeb開発者」読んだ。
いまそこにある危機であると同時に、開発者の心構えとして胸に刻んでおきたい。
これ、誰も気付かなかったのか、誰も警鐘を鳴らさなかったのか。
僕は携帯Webの開発経験は無いけど、自分ならどうしてたか。


さて、本題はこっち。
ソフトバンクのIP帯域公表ページ、これかも。httpsもいけます。

エントリ中で紹介されていたのはこっちの旧いと思われるページ。


(もちろん旧いページが残っていて、それが旧いと判別できない状態なのは問題がある。)

IEのNumber.toFixed()の挙動が四捨五入としては微妙な件

JavaScriptで四捨五入する方法をググるとNumber.toFixed()で出来るよ、Math.round()よりこっちの方が桁数指定できて嬉しいよ、みたいな情報にたどり着いたり着かなかったりするわけですが、IEでだいたい0.5<=n<1のときに桁数0を指定すると結果が期待に沿わないっぽいです。

  • n=0.55
Math.round(n) n.toFixed(0) n.toFixed(1)
IE7 on WindowsXP SP2 1 0 0.6
Firefox 2.0.0.11 on WindowsXP SP2 1 1 0.6
Safari 3.0.4 on Mac OS X 10.5.1 1 1 0.6
  • n=0.85
Math.round(n) n.toFixed(0) n.toFixed(1)
IE7 on WindowsXP SP2 1 0 0.9
Firefox 2.0.0.11 on WindowsXP SP2 1 1 0.8
Safari 3.0.4 on Mac OS X 10.5.1 1 1 0.8
  • n=1.55
Math.round(n) n.toFixed(0) n.toFixed(1)
IE7 on WindowsXP SP2 2 2 1.6
Firefox 2.0.0.11 on WindowsXP SP2 2 2 1.6
Safari 3.0.4 on Mac OS X 10.5.1 2 2 1.6

その他にも浮動小数点の誤差なんかも関係してくるとは思いますが、豪快に違う例を挙げました。ちゃんと見てませんがIE6でも同様の結果だったはず。
結論としては、IEのNumber.toFixed()は四捨五入としてちょっとおかしいので、面倒でもMath.round()を使った方がよいでしょう。そもそもECMAScriptの仕様書(http://www.ecma-international.org/publications/standards/Ecma-262.htm)には何て書いてるのか、という話もありますが、ざっくり見た限りだとIEの挙動が間違ってるような気がするのですが、どうもよくわからない。

一応検証したコードを。

var srcs = [0.55,0.85,1.55];
for (var i=0; i<srcs.length; i++) {
    alert(Math.round(srcs[i]));
    alert(srcs[i].toFixed(0));
    alert(srcs[i].toFixed(1));
}

追記:少し似たようなことを書いている人を発見(http://d.hatena.ne.jp/onozaty/20070512/p1)。

ニコニコの極北(さよなら絶望放送)

ニコニコの絶望放送(画面真っ黒)

ニコニコ動画についての議論が盛り上がってる昨今ですが、そもそもタダでアニメが観たいだけなのか、みんなでワイワイやるのが楽しいのか、みたいな話もあって。そんな中で純粋にワイワイやってるだけのコンテンツもありますよ、というお話。

【ニコニコ動画】【さよなら絶望放送】  第12回 音無し 絵無し
【ニコニコ動画】【さよなら絶望放送】  第11回 音無し 絵無し
【ニコニコ動画】【さよなら絶望放送】  第10回 音無し 絵無し
【ニコニコ動画】【さよなら絶望放送】  第09回 音無し 絵無し

アニメ「さよなら絶望先生」関連企画のウェブラジオなんですが、ニコニコに上がってるのは黒い背景に経過時間表示入っただけの動画。音無し、絵無し。公式サイトから配信されている音を聞きながら、ニコニコする仕組み。
これが結構な活況を呈しているのは、ニコニコがただのコンテンツ置き場じゃないんだぞということを示しているようで、嬉しくもある。

ていうかこのラジオ、元々音源ごとニコニコに上げられてたんだけど、削除されちゃったみたいなんだよね。で、合法的にニコニコするためには、ということで発生した形態らしい。

以下余談

  • これで公式サイトは、コンテンツの聴取者のニコニコ率をはじき出せるわけで…。
  • CDとかでもいけるので、応用を考えると面白い。
  • 元々絶望先生とニコニコは相性が良く、作中・ラジオ中でも度々触れられている。

「128ビットSSL最強」を標榜するその他の銀行

「最強の暗号化システム」でググるとこれが出てくる。

http://www.google.com/search?q=%22%E6%9C%80%E5%BC%B7%E3%81%AE%E6%9A%97%E5%8F%B7%E5%8C%96%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%22

福邦銀行/法人WEBバンキング/セキュリティについて
http://www.fukuho.co.jp/anser/sec_hojin.html
秋田銀行−スーパー定期・スーパー定期300(インターネット)規定
http://www.akita-bank.co.jp/ban/se.html
熊本ファミリー銀行/ファミリーチャネル
http://www.kumamotofamilybank.co.jp/channel/secu/secu.html
インターネットバンキング | 岩手銀行
http://www.iwatebank.co.jp/ibanking/q_a/q_a_a.html
セキュリティ対策 - 〈はまぎん〉マイダイレクト - 横浜銀行
http://www.boy.co.jp/mydirect/support/security/security.html

128bit SSL 最強伝説

高木浩光氏が銀行のフィッシング解説の出来の悪さについて書いていた(http://takagi-hiromitsu.jp/diary/20070331.html#p01)。それで銀行のサイトをつらつらと見ていたんですが、暗号化強度についての言及について、気付いた事があったので、書きます。(フィッシングとは関係ありません。)

りそな銀行のサイトより。強調は筆者。
セキュリティ安心講座/質問集1
http://net.resona-gr.co.jp/resonabank/red/inetbank/security/qa01.html

Q1 インターネットって情報が漏れないか心配なのですが…。
A1 りそなダイレクトでは強力な暗号化で対応しています。
(中略)
「りそなダイレクト」では、現在、一般に用いられている中で最強の128ビット暗号化システムによりお客さまの情報を保護しています。

最新のセキュリティ対策で、ネットでのお取引きも安心|はじめての方|りそな銀行
http://www.resona-gr.co.jp/resonabank/kojin/hajimete/security/index.html

りそなダイレクト(インターネットバンキング)では、通信に一般の用いられている中で最強の暗号化システム「128ビットSSLによりお客さまの情報を保護しています。

…僕はSSLの知識があまりないのだけど「最強」のあたりに「うさんくさい文章」の臭いがプンプンする。というわけで少し調べてみたのだけど、多分以下のような実態なのではないかと思われる。

  • 「128ビットSSL」とはRC4 128bitを採用しているという意味らしい。
  • 過去に「40ビットSSL」の安全性が不十分であることが指摘された時期があり、128ビットに移行したらしい。
  • SSLの規格ではAESもサポートしていて、少なくともAES 256bitの方が強そうな気がする。
  • 現時点でInternet ExplorerWindows Vista上でしかAESをサポートしていない。
  • FireFoxはAESサポートしている。
  • りそなダイレクトのログイン画面をFireFoxで開くとAES 256bitで暗号化されている。
  • 本当に「128ビットSSL」が最強なのかは大変疑わしい。

「128ビットSSL」の採用がセキュリティ的に問題だというわけではないけれど、「最強」をうたうのは技術的にも社会責任的にも間違いだと思う。せめて「強力」ぐらいにしておけばいいのに。

プログラマの生産性って

SoftEther登大遊さんのブログで「論理的思考の放棄」というエントリ。
http://d.hatena.ne.jp/softether/20070324#p1

登さんは一日に多いときは10,000行ものコードを書くという。その方法について「論理的に考えないこと」とのこと。

僕は会社に入ってから本格的にプログラミングをするようになった職業プログラマだけど、これは感覚的に理解できる。職業プログラマの多くも身に覚えがあるんじゃないかな。半ばトランス状態でコードを書き続けるような経験。こういう時にはガッツリ高速に大量に高品質のコードを書くことができる。10,000行も書くのは無理だけど。

「こういう時」には共通点があって、それは深夜か休日に仕事をしてる場合に限られるということ。普段の仕事時間にこの集中力を発揮することができた試しは無い。日本のプログラマの標準的な作業環境は、平均的な能力のプログラマに集中することを許さないようです。(うるさ過ぎ。割り込み仕事多過ぎ。)

あと、出来るだけ自分の裁量で設計からコーディングまで一人で担当してる状態であること。チーム化して分業すればするほど、文書化だったり言語化だとか、調整だとか、壁がはだかります。

もう一つ条件を挙げるなら、得意な分野のプログラミングであること。当たり前ですけど。平均的な日本のプログラマは、個人の適性とかあまり考慮されずに、とりあえず来た仕事に突っ込んどけばいいだろう、みたいな話で売られたり。やあねえ、もう。そういうことも稀に無くはないらしいので。

とにかく、僕が言いたいのは、普通のプログラマだって小規模ながら同じことが出来る(条件さえ整えば)、ということです。てゆうか、プログラミングに限らないよね、多分。