osiire’s blog

ふしぎなそふとやさん

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

列多相な型を宣言

id:mzpが書かないようなので、私が書く。 OCamlでは、「int型のidというメソッドとstring型のunameというメソッドを持つ何か型」という書き方が出来る。例えば、 Objective Caml version 3.11.0+beta1 # open Format;; # let show (lst : 'a t list) = List.…

「革新的ソフトウェア企業の作り方」読了

Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方 | Eric Sink, エリック・シンク, 青木 靖 | 本 | Amazon.co.jp 徹夜してるときに思わずぽちっとなして買った。読了。基本的に「製品」を開発して売るというビジネスモデルをやってるI…

自前のユーティリティ関数を晒してみる

let id x = x let (@@) f x = f x let ($) f g x = f (g x) let (!$) = Lazy.force let (+>) f g = g f let curry f x y = f (x, y) let uncurry f (x, y) = f x y let flip f x y = f y x let rec forever f x = let v = f x in forever f v let spawn_loop…

穴があったら入りたい

「穴があったら入りたい」ようなミスをしたことがありますか? | スラド Slashdotに聞け 会員向けにメールを自動配信するプログラムを書いてて、何を間違えたか、会員のメールアドレスがCcだかに含まれた状態で送られてしまうバグがあり、会員に他の会員のメ…

double -> int

QRectFにすべきところがQRectになってて、doubleがintにまるめられていたー。ぐわー。コンパイルエラーにしてくれー。何時間悩んだと思ってるんだーー。

ブロックの回避

OCamlから呼ばれるCの関数内によく書いてある、caml_enter_blocking_sectionとcaml_leave_blocking_section。なんとなく関数名から処理のブロックと関係があるんだろう、OCamlから呼ばれるCの関数の最初と最後に書いておくお約束なのかなーとも思いつつも、…

システム開発を複雑にしていると思われる要因ベスト10

ね・む・い。独断と偏見で選ぶ、システム開発を複雑にしていると思われる要因ベスト10。 閏とサマータイム(こいつのせいで、いま寝れない) 日本語の符号化体系(この前の障害の原因) 二進基数の数値表現(こないだのバグの原因) NULL SQLデータベース…

オブジェクト指向は広すぎ?

二つのオブジェクト指向とそれぞれのメリット - Smalltalkのtは小文字ですより、id:sumim氏によるオブジェクト指向講座を拝見。要約すると、OOPはADT(TAPLでいうところのADT)もπ計算のような分散計算も両方含めた概念ですという事なのだろうか?もしそうだと…

まわるーまーわるーよ♬

GUI作ってて、ユーザーの操作とプログラムからの操作が区別できないのは困る事がよくある。例えば、スクロールバーと画像表示が連動していたとして、ユーザーによってスクロールバーの位置が変わった事を知らせてくれるイベントを拾って画像の表示位置をずら…