2008-03-01から1ヶ月間の記事一覧

「Smarty は速い」は都市伝説

Smarty が広まった理由のひとつに、動作が速いというのがある。Smarty はテンプレートをコンパイルして PHP ファイルに変換し、それを実行する。そのため、実行速度が速いと信じられている。しかし、これは大きな誤解である。PHP ファイルを include() する…

子供が自転車に乗る練習をするときに教えるコツ

・ブレーキをかけることを叩き込む。 まず安全面を最優先するために、ブレーキをかけることを教え込む。 初めて自転車に乗った子供は、当然ながらブレーキのことも知らない。だから転びそうになったときやぶつかりそうになったときに、足を着くだけでブレー…

IBM コンサルタントの時給

IBM コンサルタントは、時給 2 万円だそうで。ほう。それだけ金とって動かないシステム作れば、そりゃ訴えられるわな。

スクリプトレットバッシングの時代にズダボロに引き裂かれたStrutsと、グングン成長したRails

ちょっと古いエントリだけど、これは言及しておかねばなるまい。 スクリプトレットパッシングの猛吹雪の中にいたのは、Struts(JSP)だけではない。Rails(eRuby)もいた、そしてRailsは、バッシングをくぐり抜けた。過酷な時代だった。スクリプトレットで、メン…

話し合いをダメにする論証パタン13個

話し合いをダメにする論証パタン13個(有意義な論争のための議論ハック)なんという参考になる情報。 13. 事実と規範の混同: 「Aである」という事実に過ぎないものを「Aであるべき」と混同する。あるいはその逆 「話し合いでは平和が達成されないことは、…

英語でプレゼンテーション

発音よりも語彙よりも大事なこと - 英語でプレゼンテーション その1 論理のルールに従って主張を整理する - 英語でプレゼンテーション その2 なんという参考になる情報。 ところが、まつもと氏ご自身がブログで触れられているように、コメント欄にはまつもと…

Ruby on Rails のほんとうにすごいところ

Ruby on Rails も一時の手放し絶賛状態が冷めてきて、いいところと悪いところを冷静に指摘する人が増えてきたように思う。個人的には、Rails の view layer まわりがあんまり好きじゃないし、performance の悪さは許容範囲を超えていると思うので、Ruby の他…

とても素敵なデータ表現言語(やや難あり)

とても素敵なデータ表現言語(やや難あり) JSONは便利なデータ表現なんだけど、 型情報が付加できない ハッシュのキーに引用符を付けるのがイヤ という理由で(2番目はあまり本質的ではないけど)、JSON改(後でXionに改名)というデータ表現を提案しました…

InfoQ: Ruby 1.9 のSymbol#to_procと(入ったばかりの)Procのカリー化

InfoQ: Ruby 1.9 のSymbol#to_procと(入ったばかりの)Procのカリー化 それでもやはり疑問は残る。確かに、 (1..100).map(&:to_s)は (1..100).map{|x| x.to_s } よりも短く書ける(この例では5文字短かい)。しかし、これは複雑さを増すに見合ったものだろうか…

Python と Jython とで動作が異なるスクリプトの例

C Python は Reference count GC であり、Jython はそうでない。それが原因で*1、C Python と Jython とで動作が異なるスクリプトの例。test.py (2008-03-23 modified): def test(filename, s): open(filename, 'a').write(s) filename = 'test.log' for i i…

Mark and Sweep GC より Reference count GC のほうがプログラミングが簡単になる

Python を使って驚いたことのひとつに、open したファイルを close しなくていいということがある。正確に言うと、close 自体は必要なのであるが、Python が勝手に close してくれるのでプログラマーが明示的に close しなくてもよい、ということである。 1:…

ドリブルテクニック集

kidsnet: 足ワザムービー: ドリブル編 あらゆるドリブルのテクニックが、動画付きで紹介されている。見ているだけでも面白い。 オコチャダンス&シザーズ とか見ると、素人にはもうわけわからん。

文字コードを変換するときに注意する文字

Pythonスレより。 144 名前: 136 Mail: sage 投稿日: 2008/03/02(日) 03:39:09 >>137 「〜」はEUC-JPとUTF-8を相互変換するときのテーブルがOS/言語ごとに違うために 変換できなかったり違うグリフで表示されたりします。 俺はよく使う文字について以下のよ…

議論がねじれているときは、互いの認識を一から確認した方がいい

経験上のことだけど、議論がねじれるのは、その前提となっている条件や、用語の意味といったことで、互いの認識がずれているのが原因であることが多い。 よって、議論がねじれてまとまらず堂々巡りになっていると感じたら、前提条件や用語について、ひとつず…

排他的ロックをしてるのに、1 プロセスより 2 プロセスのほうが速い?

ところで、<<476 のコードを改造して実験してみたとき、よくわからん現象に見舞われた。1 プロセスだと 1 分近くかかるのに、2 プロセスだと 15 秒で終わってしまうのだ。 コード (hoge.py): #!/usr/bin/env python N = 100000 filename = 'count-file' from…

ファイルを unlock して問題になるくらいなら、OS 任せにするほうがよい

476 名前: デフォルトの名無しさん Mail: sage 投稿日: 2008/03/05(水) 23:48:04 ファイルの排他制御のテストプログラムを書いています。 ただ単に1つのカウントファイルを100万回インクリメントするプログラム #!/usr/bin/env python for i in range(10…

hikidoc_pre.rb: Hiki の を拡張する plugin

Hiki では「<<<」と「>>>」で <pre></pre> を表現できるけど、それを拡張する plugin。 行番号をつける。開始番号も指定できる。また JavaScript で on/off できる。 インラインで <strong> と <em> が使える。「{{*foo*}}」が「<strong>foo</foo>」に、「{{/bar/}}」が「<em>bar</em>」になる。 class 属性…

勧誘

みなさん、るびまで記事を書きませんか。 最近は記事が少なくて寂しすぎる・・・Blogに書くのもいいけど、それをぜひるびまの記事に!

「インスタンス時の型」の問題は何が言いたいかというと何も考えたくない,軽く書きたいということ 伝わってなかったみたいです.「良い加減」(not いい加減)で書きましょうよという提案でもあります. LLやってる人ならわかると思ったんだけど(^^;.という…

Re: ローカル変数の型 #4

前のエントリの繰り返しになりますが、「ローカル変数ならアップキャストしなくてもいいよ」ということには反対していません。「ローカル変数の型宣言はできる限り特定しておいたほうがよく、そのためにアップキャストしないほうがいい」とおっしゃってるか…

Re: Re: 型宣言は汎用的にすべきか?

最初に書いておきますが、「ローカル変数ならキャストしなくてもよい」という意見なら賛同しますが、「ローカル変数ではキャストすべきでない (型宣言はできる限り特定しておいたほうがよい)」という意見には賛同できません。これは前のエントリから書いてあ…

Re: 型宣言は汎用的にすべきか?

『型宣言は汎用的にすべきか?』の続き。コメントより: とりあえずodzさんの日記を読んでください http://d.hatena.ne.jp/odz/20080307/1204898914 http://d.hatena.ne.jp/kwatch/20080308/1204939689#c1204952304 リンク先のエントリ、読ませていただきま…

PHP でクロージャを実現する「QIQ」がステキ

php

PHP でクロージャを実現する「QIQ」という拡張モジュールがあるそうだ。 続々・Zend Engine Hack (クロージャもあるよ) (拡張モジュールもあるよ) これによると、QIQ を使うと PHP で以下が可能になるという。 無名関数 クロージャ new/cloneからはじまるメ…

RubyKaigi2008 では海外スピーカーの応募がかなり多いらしい

噂によると海外スピーカーの応募がかなり多くて、このままだとプレゼンの多くが英語になってしまうという、英語アレルギーの私にはかなり恐ろしい事態が待ち受けているとかいないとか。 RubyKaigi日記(2008-02-10) プレゼンテーション募集の締め切り迫る! こ…

型宣言は汎用的にすべきか?

よく雑誌などの記事で生成時にいきなりダウンキャストしてしまうコードを見かけるのですが,「それってちょっと」という思うことが多いので,あえて書いてみました. http://cappuccino.jp/keisuken/logbook/20080307.html#p03 これってどういうことだろうか…

「読みやすさ」には静的な型よりも名前のほうが重要

『名前重要』というのは Ruby でよく言われるけど、これは Ruby に限らずどのプログラミング言語でもいえること。ただ、スクリプト言語では変数の型がないので、Java や C に比べてより名前が重要になってくる。たとえば、次のような Ruby プログラムがあっ…

老師曰く、「そんなものもあったかのぉ」:まとめ

老師曰く、「そんなものもあったかのぉ」:プログラミング言語編 Lisp の場合 弟子:「老師、Lisp はカッコが多くてわかりづらいです!」老師:「カッコ? おお、そういえばそんなものもあったかのぉ」 Java の場合 弟子:「老師、getter や setter のアクセッ…

はてなダイアリー実験中

本文テスト詳細編集では過去の日付で日記が書けるのか。これは便利かも。 なんか色々機能があるんだな。プレビューすら知らなかったオレがバカだった。 エントリとは別に、日ごとにもタイトルがつけられるのか。 いったん書いたエントリは、日付を移動できな…

今日のびっくり

Webエンジニア武勇伝 第18回 笹田耕一 氏 驚いた。何が驚いたって、東京農業大学に工学部があることだ。ありえん。東工大や東京理科大に経営学部があるくらいにありえん。「Rubyやってたら彼女ができました」くらいにありえん。 追記:コメントで、ささださ…

Ruby や Python が使いやすいのは動的だからではない

Java とは逆になるけど、Ruby や Python が使いやすいのは動的言語だからではない。単に言語設計者のセンスが良かったから。ただそれだけ。OCaml や Haskell は、静的言語だけど使いやすいと評判である。これも言語設計者のセンスが良かったのだろう。ただし…