Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
2007年05月 @ 過去ログ @ ratio - rational - irrational @ IDM
[go: Go Back, main page]

2007年05月


目次


2007年05月29日

今さらにFizzBuzz

まぁ、いい加減流行りを過ぎて、弊社では採用面接の際にこの手のを入れることに決定したFizzBuzzですが、「Lisp風Javaの解」を見つけたので触発されて、「C風Ruby」で。

format_table = {
  0 => "FizzBuzz", 3 => "Fizz", 5 => "Buzz",
  6 => "Fizz", 9 => "Fizz", 10 => "Buzz", 12 => "FIzz" 
}
format_table.default = "%d"

(1..100).each do |i|
  puts format_table[i%15] % i
end

つーか、Cで同じものを回答した人は既に絶対にいるだろうけれども。

コンパイラと仲良しな先輩方に影響されて育つとこうなる。でも、Cの気持ちに戻ってくると、Hashを使うコストとかformatのparseコストとか数値出力の基数変換コストとか剰余のコストが富豪的に見えてちょっとやましい気持ちになる。除算とか、ましてハッシュ関数を呼ぶとかはものすごーく高価だったよなぁ。そのへんはやっぱりまだRuby風が残っている回答なのでした。


悪法の啓蒙は悪であるか

著作権侵害 - フジログ」を読んだ。

「違法だが小さい」と「違法じゃないよ」にはユーザの意識として大きな違いがある

というのは総論としてもちろん賛成で、法治国家にあってこれに真向から反対する人っていうのは少ないだろう。ただ、事が著作権に関する話題だけにもうひとつ注意してほしいことがある。



2007年05月27日

inject + Symbol#to_proc = fold

4chan BBS - Evolution of a Python programmer - Mazにっき」を読んで今頃になって気がついた。

そうか。ActiveSupportのSymbol#to_procがあればinjectで極めてシンプルに畳み込みできるんだ。

(1..10).inject(&:*)
 =>  3628800

うーむ。素晴らしい。でも、to_procが出た時点で気づくべきだよなぁ。


2007年05月25日

プログラミング悪徳の栄え

日経ソフトウエア 2007年7月号』から、「俊敏な開発のためのプログラミング悪徳の栄え」を連載させていただくことになりました。まずは今回「ペアプログラミング」をお題に書いてみました。

アジャイル開発のプラクティスというと、例えばXPのeXtremeさ加減だったりと、奇矯というか不真面目というか何か悪徳じみたものがあったりするわけです。まして、今回紹介したような私が独自に付け加えた手法はなおさらに。けれども、そういう「悪徳」を通じてソフトウェア開発がうまくいくなら悪徳は大いに結構です。

タイトルはサド侯爵から拝借しました。「美徳の不幸」の冒頭部の語りのように開きなおって、こじつけて、それでもどこかしらより良い世界の探求が見え隠れするものを書けたら素敵です。そうして、アジャイル開発の手法に馴染がない層に伝わればよいと思っています。


2007年05月17日

IDAHO

Idaho07-1.jpg

5月17日はIDAHO(International Day Against Homophobia; 国際反ホモフォビアの日)だそうです。同性愛が精神疾患のリストから削除された日を記念して、同性愛嫌悪について考えてみようという日です。私も過去に何度かこうした問題について考えてみました。

いまや、日本では公的には同性愛に対する明白な侮辱行為は非難され得るような状況にまでなってきています。けれども、私的領域では依然として侮辱行為を正当化するような状況がありえます。また、既に性差別や人種差別が経験したように、公的領域で積極的差別行為が排除された後、差別は一見そうとは見えない形に潜在化します。そして……(詳しくは上記の記事あたりを読んでくださいね、っと)

異性愛者が異性愛に無自覚でいられるのはなぜなのか。BL/百合ブームは何をもたらしたのか。どうして同性愛をジェンダーパターンの問題と混同したがる人がいるのか。色々と考えてみてください。

冒頭のバナーはhttp://www.geocities.jp/keitorontako/より拝借しました。


2007年05月14日

JSR 294

JavaSE 7に採用予定のJSR 294によって、super packageができるらしいね。

というと、『憂鬱なプログラマのためのオブジェクト指向開発講座』に書いてあったC++のfriendの説明を思い出した。

つまり、friendはアクセスを受けるクラスがアクセスするクラスに対して指定するものであって、逆方向に勝手にfriend指定することはできない、と。これを「『俺たち友達だよな』と言って勝手に財布の中身にアクセスすることはできない」と説明していた。

そこへ行くとJavaのpackage privateはさしずめ、「あーもしもし、オレオレ。ほら、同じパッケージの」と言ってアクセスが可能だった訳だ。まぁ、その気になれば、ということではしたない真似ではあったけど。

まぁ、C++を心の母語だと思ってる人間としてはJRS 294は面白い機能だね。


RSpecでのGetText::Railsローカライズの確認

FunctionalTestとIntegrationTestでローカライズの確認テスト」を読んで、RSpecでやってみた。

1つ考えるべきは、メッセージのローカライズはViewの仕様なのかということだ。これはTest::Unitで書くのが正しくて本当はRSpecを使うのが根本的間違いなのかもしれない。これはあとで落ち着いて考えよう。

それはそれとして、もしRSpecでRuby-GetTextによるRails viewのローカライズを確認するなら、1つ注意が必要だ。自動的にはgettext gem標準のrails.poによるエラーメッセージやなんかが翻訳されない。コントローラーを通らないせいだろう。

setupブロックで明示的にGetText.bindtextdomain('rails')したら期待通りに翻訳された。あぁ、あと、GetText.localeも設定が必要ね。


2007年05月13日

自意識過剰

なんかで、「この人、えらい自意識過剰だなー」と感じたのだったけれども、どういう状況だったか忘れた。つーか、誰のことだったっけ。

なんというかねー。みんながみんな、いつでもあなたに注目してる訳じゃない。世界はあなただけの都合の良いようにはできていない。世界はあなたを中心に回ってない。いい年してそれぐらい分かってほしい。

世界は私を中心に回ってるんだよ。


踊るプログラマ

最近、会社で「あやしいおどり」を踊ってないなぁ。コーディングにノッてるとき、長めのグリーンバーが伸びていくのを見つめながら踊るんだけど。

要は、コーディング以外の業務が忙しいんだよね。仕事中に踊らんというのはプログラマとしてどうかと思う。


2007年05月12日

私は【猫】である

ルシファー効果 - 医学都市伝説」を読んだ。

20070512-dragon-and-cat.jpg

そう。規律には魔力がある。それは容易に組織を硬直化させ、人間知性という高価なリソースを浪費し、あまつさえそれを正しいことだと思わせる。

だからって、無秩序であっていいはずがない。……というのは確かであるけれども、それ自体が規律という毒の一部だったり。だからって、無秩序であっていいはずがないんだが。必ずしも自己組織化に期待できる場合ばっかりではないし。こと企業組織ともなれば、少なくとも対外的には安全策としての規律の導入をアピールせねばならなかったり。

では、どうすればいいのか。規律は認めよう。ただ、毒を薬として使いこなすには制御が必要だ。反対方向への力によって微調整すればいい。だから、規律を有害無益なままにしないためには道化が必要なのである。

世界は【猫】【竜】によってできている。

効率性、リソースの希少性を考え続け、自動化できるものと自動化すべきでない者を考えつづけるのがソフトウェア開発者である。よりよいプロセスを求めつづけなければ競争力を失うのがソフトウエア開発である。だから、それらに開発者にとって規律という毒は人ごとではない。

そういうわけで、私は開発者として【猫】を実践する。意味を失った規則に小さな力を加えてそれを崩壊させようとする。組織が健全であるためには規律化する部門が必要であると同様に非規律化する部門が必要であり、開発部門は後者にうってつけなのだ。

規律化作用と非規律化作用の不断のある意味八百長なせめぎあいによって、組織の機能と秩序とが同時に守られる。

というわけだから、機能要件のヒアリングにわざわざ多重の階層を挟む規則は色々おちょくりかたを考えて有名無実化してみて、最終的に撤回されましたですよ?


Webの終わる日 - 遥。これ以外の何か

先日、id:uzuki-firstさんにworld wide webの終わる日についてちょっと話した。

まぁ、webはいつか終わる。ブラウザベースの枠に押し込められたユーザーインターフェースは決して完全なものではないからだ。じゃあ、どう終わるかね。私たちはその中でどうするかね。

ちょっと長くなるけど、そんなことをつらつらと書いてみる。



2007年05月06日

嘘を付く理由

堕落した日本のわたし」を読んだ。

だいたい子供なんて物心ついた頃から嘘をつき (中略) だいたい嘘をつかねばならぬような状況をつくるから嘘をつくのであって,そこで嘘をつくということは,やってはいけないことをやっている自覚もあるのだろう。

というくだりがある。元の記事の論点はそこじゃないのは承知の上で、黙ってられないので突っ込む。

嘘をつくのは事実を述べることが非難を呼ぶであろうという予期を持つからである。「やってはいけないこと」と「非難されるであろうこと」は一致するケースは多いであろう。けれども、両者を無批判に同一視することはマイノリティ差別の無条件な肯定である。一般には独立と考えるべきだ。

非難されることが分かっていればそれを正直に述べようとはしない。家庭や学校の言論において力を持たない小さな子供であれば余計にそうだろう。それが正しいかどうか、本人が正しい行為であると信じているかどうかは関係ない。非難の原因となる規範を内面化していれば、本人は疚しさを感じてすらいるかもしれない。けれどもそれは関係ない。

非難されるであろうという予期を「やってはいけないことをやっている自覚」とみなすなら、その論理は宗教、性的指向、性同一性、思想信条による差別を肯定する。


2007年05月05日

マッドサイエンティスト

マッドサイエンティスト」は良くも悪くもWikipediaらしい記事だと思う。しょうもないスタブとして始まり、英語版からの訳出で強化され、複数人の手で継続的に改善され日本語版独自の発展を見せて。一方「独自の研究」が混じっている節もあり、極めつけは末尾の「列挙癖」だ。今は削除されているけれども各種アニメに登場するマッドサイエンティストのリストが載っていたこともあった。

小さい頃はマッドサイエンティストになりたかったなぁ。3歳〜6歳ぐらいのとき。前掲記事で指摘されているようにマッドサイエンティストは物語においてステロタイプな悪役として振る舞うわけだけれども、でも当時の私はマッドサイエンティストが登場すると完全にそっちに感情移入してた。

さすがに「将来はマッドサイエンティストになる」と表立って口にするのはどうかと思ってたので、人に尋ねられると「パン屋さん」とかそれらしいことを答えていた訳だけれども。いくらなんでも「パン屋さん」は無いだろうと思わないでもないけど、3歳児が考える「3歳児らしいと外部から期待されている振る舞い」なんかそんなもんだ。

今はマッドWeb開発者になりたい。


この人は頭が悪いと思われないためのたった1つの方法

「こういうタイトルの記事や本を読まない」

すんません。一時期こういうタイトルの本がいっぱい平積みになってるのを見て以来、どうしても言ってみたかった。

「↑こういうくだらないことを言わない」


2007年05月04日

監視カメラから考えた科学技術中立論

東京新聞のニュースで、学習型の異常検出技術を安価に防犯カメラの監視業務に適用できるとかで、将来は異常行動の自動通報も、という話。



2007年05月03日

Gnomeでpbcopy

MacのpbcopyみたいなやつがGnomeにないかと思って探してみた。xclipboardが近いっぽいけど、結局よくわからないので自分で書いた。

GTKのTutorial見ながら初めて書いたGTKアプリなのでソースがひどくても笑わないように。つーか、絶対に車輪を再発明してる気がするので誰か教えてください。


Blog操作

検索


カテゴリー

このブログについて

あわせて読みたい

© Yugui

Powered by Movable Type 3.2-ja-2