2009-01-01から1年間の記事一覧

フライング日記: SapporoRubyKaigi2009 で発表してきました

SapporoRubyKaigi2009の感想としては世界最速のエントリに違いない!発表タイトル: ビュー層におけるキャッシュの問題点とその解決策http://www.slideshare.net/kwatch/ss-2623061全体の感想: sumim氏の話が聞けてよかった。「GUIのMVCとWebアプリのMVCの違…

PHPの言語仕様がウンコな理由個人的トップ10

php

「PHPerの問題点はPHPしか知らずに的外れなことを言うことだ」と、Javaしか知らなくて的外れなことを言っている連中にすら言われちゃってるPHPerのみなさん、こんにちは。PHPは「使える道具」であることは事実です。しかし同時に言語仕様がウンコなのも事実。…

PHPをDisってるブログエントリを集めてみた

php

スクリプト言語の範疇に入らないかもしれない言語を使っているPHPerのみなさん、こんにちは。 PHPの歴史は、Disられ罵られバカにされ続けた歴史です。 本日は、その歴史を紐解いてみたいと思います(一部、PHP擁護派のエントリも含んでいます)。なおここで…

PHPとJavaScriptはスクリプト言語の範疇に入らないかもしれないんだってさ

(追記: 2009-11-16: 引用元のブログは「SH2の日記」のコメント欄からであり、SH2氏とは別の方のコメントです。) さすがはJava屋さん。スクリプト言語をバカにする態度は堂々としたものだ。 JavaBlack >PHPなどのスクリプト言語もいつでもかけるようにしと…

グーグル、C/C++に代わる新言語「Go」をOSSで公開

Google が新しい言語を発表。Noop涙目。 Goはグーグルの社員7人が「20%の自由時間」を利用して開発した。設計・実装を行っているのが分散OS「Plan 9」の創案者であるロブ・パイク氏や、Unix、Cの生みの親、ケン・トンプソン氏、Google ChromeのV8エンジンを…

そのコードがわかりにくいのはクロージャのせいではない

せっかくPythonの話がホットエントリに入っているのに、あまりいいサンプルとは思えなかったので、書き直してみたい。 クロージャと無名関数を使うと、こんな風に実装することができる。 import yaml def _get_from_disk(): data = open('config.yaml').read…

練習不足でしたごめんなさい in YAPC::ASIA2009

先日、YAPC::ASIA2009で「Basic Mechanism of OOPL」というタイトルで発表させていただきました。場を提供してくれた事務局の皆様、ありがとうございました。それから聞きにきていただいた方、ありがとうございました&ごめんなさい。完全に練習不足でした。…

裏番組が強すぎる リターンズ

さっき気づいた。前もそうだったけど、今回も裏番組が強力すぎる。またですよ奥さん。 参考: http://conferences.yapcasia.org/ya2009/schedule?day=2009-09-11

続: Python での組み込み型をより自然な名前にする

なんかしらんけど、前のエントリはPythonistaをたいへん刺激してしまったようだ。べつにもとの名前を使えなくするわけじゃなく、単にエイリアスを追加するだけなのに!そこで、Pythonistaのお怒りを沈静化するべく、__builtins__を汚染しないように改造してみ…

Pythonistaはtypedefすら拒絶する? (Re: Python での組み込み型をより自然な名前にする)

反論のためにこんな極端な例を出すほうがおかしい。 以下、エキスパート C プログラミングより引用。ちょっと極端過ぎる例だけど、言語独自の慣習・標準などを無視することの一つの到達点がこれだ。 「CはAlgolではない」1970年台の後半、ベル研でUNIX Versi…

YAML 1.2 仕様書リリース

YAML 1.2 の仕様書が正式公開されました。YAMLメーリングリストに流れたClark C. Evansのメールに、今回の変更点が紹介されてました。それによると、今回の目玉はずばり「JSONの仕様を取り込む」ことです。つまり、YAML1.2からはYAMLはJSONの完全なスーパー…

RubyKaigi 2009 お疲れさまでした&ありがとうございました

RubyKaigi 2009 事務局の皆様、お疲れさまでした。それから低視聴率番組を見に来ていただいたみなさん、ありがとうございました。オリックスvs楽天の試合くらいガラガラになるかと思いましたが、そこまでひどくはなく、ホークスのホーム試合くらいは入ってい…

ローカル変数で「L」や「D」を使うのはダメプログラマ

pashango_pさん曰く: 本当にローカル変数でlistやdictを表すために「L」とか「D」を使っていたとしたら、相当なダメプログラマですよ。 わたしはそこまでは思いませんが、pashango_pさんによると、ローカル変数名として「L」や「D」を使うのはダメプログラマ…

Re: "sep".join(list) が気持ち悪い理由

みんなー、トラックバックって知ってるよねー!? 他人のとこに長いコメント書くくらいなら自分のブログに書こうぜ! #隠れてコソコソ陰口叩かれるぐらいなら超長いコメントのほうがいいけどな!!methaneさんのコメント: えぇ、そうですね。だからスレッドのjoi…

セッション予告 #1

映画は予告編の出来しだいで興行成績が大きく変わるらしい(たとえそれが詐欺みたいな映像だとしても)。ドリフターズとひょうきん族を相手に戦わなきゃいけない教育テレビとしては、面白そうな予告編を流してみるぐらいの努力はすべきだろう(たとえそれが詐欺…

映画感想: ハゲタカ

まわりがエヴァの感想ばかりだというのに、先週末にあえて「ハゲタカ」を見に行って、それがとても面白かったのでその感想を書いてみる。 ドラマも原作も見てないけど、非常に楽しめた。主人公の経歴とか知らない状態だったのでちょっと不安だったけど、まっ…

Re: 大量のハッシュデータを簡潔に作成する

これもどこまでマジなのかよくわからんのだけど…… つ injectとだけ言わせていただく。 jijixi's diary - Re: Python での組み込み型をより自然な名前にする - kwatchの日記 , Re: 大量のハッシュデータを簡潔に作成する - kwatchの日記 inject()があればHash…

変数名として「lst」や「dct」や「L」や「D」がどのくらい使われているか

せっかくなので、変数名として「lst」や「dct」がどのくらい使われているかを調べてみる。ターゲットは Python 標準添付ライブラリ。 ### Python 2.5.4 $ cd /usr/local/lib/python2.5/ $ egrep '\blst\b' **/*.py | lv # けっこうある $ egrep '\blst\b' **…

Re: Python での組み込み型をより自然な名前にする

ネタなのかツリなのかマジなのかさっぱり判断が付かないんだが、マジだとしたらそんなの勘弁してと思うし、ネタだとしてもはっきりそうだとわからない書き方のせいで影響される人がいたらイヤなので、あえてマジレスしとく。 jijixi's diary - Re: Python で…

Python での組み込み型をより自然な名前にする

あと10枚ぐらいスライドを減らさないとまずいことになりそうなのに、なぜかPythonネタを投下してみる。Ruby での String, Array, Hash に相当するのは、Python では str, list, dict になる (小文字であることに注意)。 困ったことに、これらは変数名として…

大量のハッシュデータを簡潔に作成する

スクリプト言語では Hash や dict のリテラルが用意されているので、書きやすい。しかしテストデータなどで大量の記述が必要になると、さすがにちょっと面倒である。 data = [ {:name=>"Haruhi", :gender=>1, :role=>"Leader of SOS Brigade"}, {:name=>"Mik…

プレゼン資料:「白地に黒字」vs「黒地に白字」

プレゼン用のスライドって、「白地に黒字」と「黒地に白字」のどちらがいいんだろう。個人的には「白地に黒字」のほうが好き。理由は、暖色系の色も寒色系の色も見やすいから。白地だと、文字を部分的に赤くしたり青くしても読みやすいけど、黒地だと青のよ…

60分じゃ足りない?!

今回、RubyKaigiのセッションでは60分という長い時間を頂いた (謝謝!) ので、話を盛るぜ〜、超盛るぜ〜、とばかりに詰め込んだら、スライドが80枚を超えてしまった。高橋メソッドならどうということはない枚数だが、ふつうのプレゼン形式ならどう考えても60…

Python での join() は StringBuffer の代替と考えると、str.join(list) が自然なのかも

ここまで書いて思ったんだけど、StringBuffer 相当の機能がない Python にとっては、join がその代替なのかもしれない。つまりだな、Python の str.join(list) は Ruby の Array#join(str) 相当ではなくて、String#<< 相当なんじゃないか、という新しい仮説…

"sep".join(list) が気持ち悪い理由

list が必須で separator はオプションなんだから、list が receiver になるほうがどう考えても自然だろう。省略可能な separator が receiver にくるほうが不自然だ。

Python の unittest では assertRaises が Exception を返してくれない

ちなみに Python 付属の unittest では assertRaises の定義は以下の通り。見ればわかるけど、exception を返してくれない。 ## assertRails は failUnlessRaises の alias def failUnlessRaises(self, excClass, callableObj, *args, **kwargs): try: calla…

Rubyの例外クラス設計

具体的には、テストです *2 。例えば foo(1, 2) で wrong number of arguments が投げられることをテストしたいとします。以下のテストだと、wrong number of arguments 以外の ArgumentError が投げられる場合でも合格になってしまいます。 assert_raise(Ar…

Web アプリのボトルネックはテンプレートシステムにあり

Ruby のネタがないので Python でお茶をにごす。Python の速度を 5 倍速くするという目標を掲げている unladen-swallow というプロジェクトがあるんだけど (日本語はこちら)、その中に次のような一節があった。 Unladen Swallow's benchmark suite is focuse…

裏番組が強力すぎ

RubyKaigi2009 のタイムテーブルが発表されたんだけど。。。裏番組、強すぎだろ。「ドリフ」と「ひょうきん族」が同じ時間にやってた時代のTVプロデューサの心境だわ。 調子こいて「1時間!」とか書いたら、こんな枠に allocate されてもうた。アホすぎる。 …

ソフトウェア工学は知識や技術を体系化するけど属人性の排除はできてない

dev

ソフトウェア工学は、知識や技術を体系化することには成功している。だけど、属人性の排除はまるっきりできてない。たとえばオブジェクト指向を考えてみるとよい。オブジェクト指向という考え方は、プログラミング言語においても設計方法論においても大きな…