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

Programing in ScalaのeBook版は、単なるPDFバージョンじゃない

Scalaが勉強したくなったので、Programming in Scala, Third EditionのPDFバージョンを買いました。 で、これが単なるPDF版じゃなくて、いくつかの工夫がされてて驚いた。 PDFのページ番号と、ヘッダのページ番号が一致してる 普通の本は、前書きや目次はカ…

Games::Puzzles::SendMoreMoneyを試してみた

30分プログラム、その357。CPANにあるSEND+MORE=MONEY専用モジュールのGames::Puzzles::SendMoreMoneyを試してみた。 # Log4perlを入れないと使えない。依存関係のミス? cpan> install Log::Log4perl cpan> install Games::Puzzles::SendMoreMoney SとMが0以…

『Unix/Linuxプログラミング理論と実践』読み終わったよ

Unix/Linuxプログラミング理論と実践作者: Bruce Molay,長尾高弘出版社/メーカー: アスキー・メディアワークス発売日: 2008/04/21メディア: 大型本購入: 9人 クリック: 280回この商品を含むブログ (47件) を見るなかなかにいい本。IPC(プロセス間通信)に関す…

Network.Socketを試す

30分プログラム、その356。Unix/Linuxプログラミング理論と実践を読んでたら、じかにソケットを触りたくなったので、試してみた。 gethostbynameを呼ぶ方法が分からなかったので、getAddrInfoでごまかしてみた。 使い方 $ get example.com / <HTML> <HEAD> <TITLE>Example Web P</title></head></html>…

リストの要素のシャッフル

30分プログラム、その355。bogo sortをやろうと思ったら、シャッフルするための関数がなかったので、そちらから。 リストの要素をいれかえるのは思い気がしたので、いったん配列に変換するようにしてみた。 Erlangの配列は破壊的じゃないんだ。 使い方 1> sh…

Gaucheでgetpassっぽいやつを実現してみる

30分プログラム、その354。GaucheでPythonのgetpassモジュールっぽいやつを実現している。 Unix/Linuxプログラミング理論と実践の端末の項目を読んでたら、"エコーなしの入力を実現するにはsttyを使うだけで簡単にできるよ"と書いてあったので、それを試した…

Macでswfmillのビルド

Macでswfmillをビルドしようとしたら、次のようなエラーがでてしまった。 g++ -I/opt/local/include/libxml2 -I/opt/local/include ... Undefined symbols: "_GetHandleSize", referenced from: _FT_New_Face_From_LWFN in libfreetype.a(ftbase.o) _FT_New_…

Pythonで無限リスト(をやろうとして失敗)

30分プログラム、その353。itertoolsを試してみる。 Pythonのライブラリを眺めてたら、SMLとHaskellを参考にしました、と書いてある素敵なモジュールを見つけたので試してみた。 使ってみた感想としては、相当クセが強い。HaskellやSMLのプログラミング方法…

Test::Moreを試してみる

30分プログラム、その352。Perlのユニットテストを試してみる。 Test::SimpleとかTest::MoreとかTest::Unitとか多すぎるだろ。第1回 Perlにおけるテストの概要/TAPとは?:Happy Testing Perl|gihyo.jp … 技術評論社あたりを見るかぎりでは、Test::Simple…

Erlangでwho

30分プログラム、その351。前回(id:mzp:20080818:who)の続きで、Erlangでwhoを実装してみる。 やっぱりバイナリ構文は便利ですね。ただ、定数が実際にどう宣言されているかを全部見にいかないといけないのが面倒くさい。 使い方 1> who:load("/var/run/utmpx…

タプルの第2要素にのみ関数を適用したい

タプルの第2要素にのみ関数を適用したいことがよくあると思います。Janestreet coreのTupleモジュールにはこれをやる関数が用意されています。 # Core.Tuple.T2.map2;; - : f:('a -> 'b) -> ('c, 'a) Core.Tuple.T2.t -> ('c, 'b) Core.Tuple.T2.t = <fun> # Core</fun>…

whoコマンドっぽいやつ

30分プログラム、その350。whoコマンドっぽいやつ。 Unix/Linuxプログラミング理論と実践を読んでたら、whoコマンドを実装したくなった。ホントはErlangで実装してバイナリ構文すげー、ってやろうしたら処理系がインストールされてなかった。 なので、とりあ…

OCamlで_による桁区切り

OCamlでもPerlやRubyみたいに_で数字を区切れるんだぜ。 # 1_000;; - : int = 1000 # 1_000.;; - : float = 1000. マスクパターンみたいな数字が長くなる場合、これを使うとだいぶ読みやすくなるよ。

Gaucheでインターバルタイマ

30分プログラム、その349。gauche.threadsを使って、インターバルタイマを作ってみる。インターバルタイマは、 gosh> (add-interval! 10 (cut print "hello")) とすると10秒ごとに"hello"と出力されるようなタイマ。JavascriptのsetIntervalを思い出すといい…

Gmailのメール一覧を取得

30分プログラム、その348。imaplibを試してみる。 前にid:dmp939が、『定期的に受信ボックスをチェックして、特定のメールをトリガーとして何かを起動するプログラムを作ろうぜ』っていう「それなんてprocmail」って感じのことを言っていたのを思いだしたの…

Remeber the milk APIのauth keyを取得

30分プログラム、その347。やっとRemember The Milk: Online to-do list and task managementで認証に必要なauth keyの取得する方法が分った。 参考にしたのは、Remember The Milk - Services / API / Authentication。簡単にまとめると、 RESTでrtm.auth.ge…

Remember the milkのAPIで認証する

30分プログラム、その346。Remember The Milk: Online to-do list and task managementのAPIで認証が必要なやつにチャレンジしてみる。 が、うまくいかない。Remember The Milk - Services / API / Authenticationを参考にしてるはずなんだけどなぁ。 使い方…

Remember the milkのAPIで遊ぶ

30分プログラム、その345。Remember The Milk: Online to-do list and task managementのAPIで遊んでみる。特に作りたいアプリは無いので、rtm.test.echoを使った贅沢なechoを作ってみた。APIはRESTなので http://api.rememberthemilk.com/services/rest/?me…

レコードの名前空間

モジュールAの中でレコードを宣言する。 module A = struct type t = {a:string; b:string} end 各フィールド名はモジュールに属するので、このレコードを作るには次のようにしないといけない。 let f () = { A.a="foo"; A.b="bar"; } でも、全部のフィール…

OSC2008 名古屋

オープンソースカンファレンス2008 Nagoya - ハックの日(8/9)は、名古屋へ 行こみゃぁ! 当日撮った写真たち: http://f.hatena.ne.jp/mzp/OSC-Nagoya2008/OSC Nagoyaに行ってきました。NBUGの人が作ってたワンセグチューナがとてもおもしろそうだったけ…

やさしい梵字

やさしい梵字仏―幸せを祈る文字作者: 三井〓円,窪田成円出版社/メーカー: 知道出版発売日: 2006/01メディア: 単行本 クリック: 6回この商品を含むブログ (1件) を見る栄で適当に入った本屋で見つけて、あまりのマニアックさに買ってしまった。栄のあおい書店…

明日はOSC nagoya

オープンソースカンファレンス2008 Nagoya - ハックの日(8/9)は、名古屋へ 行こみゃぁ!明日はOSC nagoyaに行きます。ocaml-nagoyaのブースがあるらしいので、そこに居ると思います。よかったら、寄ってみてください。

ブランチ切った

Sceme-abc - みずぴー日記クラスをサポートするために、いろいろと試してみたかったのでブランチを始めて切ってみた。Networkでブランチが可視化されるのは楽しいかも。よく分からないけど、git branchでブランチを切ったあと、 $ git push --allのように--a…

図書館行ってきた

大学の図書館でプログラミング言語の基礎理論 (情報数学講座)とプログラム意味論 (情報数学講座)を借りてきました。 これ二冊で3万5000円だと思うと、ちょっとビクビクしてしまう。 しかも夏休みだから、返すのは10月だぜい。

Haskellのリスト操作をOCamlに移植(3)

30分プログラム、その344。昨日に引き続き、http://www.haskell.org/ghc/docs/latest/html/libraries/base/Prelude.htmlの関数をOcamlに移植。これで最後。 使い方 # unzip [(1,2);(3,4)];; - : int list * int list = ([1; 3], [2; 4]) ソースコード let re…

Haskellのリスト操作をOCamlに移植(2)

30分プログラム、その343。昨日に引き続き、http://www.haskell.org/ghc/docs/latest/html/libraries/base/Prelude.htmlの関数をOcamlに移植。OCamlってtakeもないんだぜ・・。 使い方 # take 3 [1;2;3;4;5];; - : int list = [1; 2; 3] # drop 3 [1;2;3;4;5…

『Rubyスクリプティングテクニック』読み終わったよ

Rubyスクリプティングテクニック ―テスト駆動による日常業務処理術作者: Brian Marick,菅野良二出版社/メーカー: オライリー・ジャパン発売日: 2008/02/23メディア: 単行本購入: 9人 クリック: 214回この商品を含むブログ (39件) を見る最近は、積読の消化を…

Haskellのリスト操作をOCamlに移植(1)

30分プログラム、その342。たまにはProject Euler以外も。 Haskellの関数、特にPreludeにあるようなやつは実に考えられている。例えば、foldl1あたりは簡単に書けるのに、かなりいろんなところで使えて便利だったりする。 というわけで、このあたりの関数をO…

『プログラミング言語の基礎理論 』が読みたい

プログラミング言語の基礎理論 (情報数学講座)OCamlの型について知りたいけど何を読めばいいですか、とid:yoshihiro503さんに訊いて、教えてもらった。目次を眺めるかぎりでは、型推論とか多相型とか知りたいことが書いてあるっぽい。 ただ残念なことに、Ama…

『インターフェイス指向設計』読み終わったよ

インターフェイス指向設計 ―アジャイル手法によるオブジェクト指向設計の実践作者: Ken Pugh,角谷信太郎(監訳),児島修出版社/メーカー: オライリージャパン発売日: 2008/05/24メディア: 大型本購入: 16人 クリック: 357回この商品を含むブログ (67件) を見る…