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

OUnitの結果をHTMLに

30分プログラム、その557。OUnitの結果をHTMLしてみる。 OUnitは便利なんだけど、結果の出力がテキストだけなので、ちょっとさみしい。JUnitみたいな感じでカラフルに表示して欲しい。 というわけで、テキストじゃなくてHTMLで結果を出力するようにしてみた…

レポジトリの状態をscreenのステータスラインに表示する

30分プログラム、その556。レポジトリの状態をscreenのステータスラインに表示する。 ボクは自分の書いた文章やら設定ファイルやらを~/cにつっこんで、gitで管理してる。青木さんのオレポータビリティをマネしてるんだけど。 でも、このレポジトリのコミット…

各位の和を10の倍数にする

30分プログラム、その555。http://kanasoku.blog82.fc2.com/blog-entry-9709.html via http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_116をやってみよう。元々の問題はこんな感じのを、C言語で解くのが問題。 入力された整数の各桁の和が10の倍数…

portfileを書いてみた

MacPortsに登録されているxml-lightが、findlibを使ってないことに嫌気がさしたので、自前でportfileを書いてみた。で、そのときの流れをメモしようと思ったけど、http://lapangan.net/darwinports/index.php?cmd=read&page=HowTo%2FPrivatePortfileTutorial…

UTF8のBOMを取り除くスクリプト

30分プログラム、その554。UTF8のBOMを取り除くスクリプト。 BOMって邪魔ですよね。ASCIIしか書いてないファイルに、なぜか0xFEとか入ってるんですもん。何も考えずにcatでファイルを連結してると、途中にBOMが入ってしまって死にそうになる。 というわけで…

コマンドラインからVisualStudioをビルド

ボクだって、たまにはWindowsを使うんです。 C:\hogehoge> devenv some_project.sln /Build C:\hogehoge> devenv some_project.sln /Clean C:\hogehoge> devenv some_project.sln /ReBuild

マルチンゲール戦略を試してみる

30分プログラム、その553。資金管理(ピラミッド法) - komamitsu.logがおもしろかったので、ボクも試してみた。 ボクが試した戦略は、マルチンゲール戦略というやつで 1万円掛ける 勝ったら、やめる 負けたら、掛金を倍にして、再チェレンジ というもので、(…

OCamlでCompositeパターン

30分プログラム、その552。CompositeパターンをOCamlでやってみる。 OCamlのOはオブジェクトのO、オブジェクト指向と言えばデザインパターンということで、OCamlでCompositeパターンを実装してみた。 バリアント使えと言うのは野暮ってもんです。 使い方 let…

SKK Syncを作ろう

SKK Syncを作ろう。ATOKの人はATOK Syncで辞書の同期ができて、とってもうらやましい。でも、ボクはAquaSKKユーザなので、SKK syncを作りたいなぁ、という妄想をしてる。 予定してる機能 Webアプリは追加、削除、一覧取得ぐらいのAPIを公開しておく 辞書の更…

GoogleAppEngineでテンプレートと静的ファイル

30分プログラム、その551。GoogleAppEngineでテンプレートと静的ファイルを使おう。 テンプレートを使う templates/index.htmlに適当なファイルを作って、template.renderを使って表示してやる。 templateモジュールにはたいした機能がないので、djangoモジ…

いまさらだけどGoogleAppEngineを使ってみる

30分プログラム、その550。いまさらだけどGoogleAppEngineを使ってみる。 ダウンロード/インストール http://code.google.com/intl/ja/appengine/downloads.htmlからダウンロードする。展開したあとは、/Applications/にでも放り込んどけばいい。 新規作成 …

Perlって末尾再帰の最適化ってやってるの?

30分プログラム、その549。Perlって末尾再帰の最適化ってやっているかを調べようとしてみた。結論としては、よく分からない。普通の再帰もなかなかスタックオーバーフローで落ちないし、使用しているメモリ量で比較しようとしたけど、メモリ量を取得するうま…

OCamlでCの関数を呼んでみよう

30分プログラム、その548。OCamlでCの関数を呼んでみよう。 OCamlバインディングの無いライブラリを使いたいときに必要になるよ。便利かどうかは分からないけど。Interfacing C with Objective Camlを参考に、階乗計算モジュールを作ってみよう。 OCaml側の…

Erlangが末尾再帰最適化をしてるか調べようとした

30分プログラム、その547。Erlangが末尾再帰最適化をしてるか調べようとして、挫折した。 fact(0) -> 1; fact(N) -> N * fact(N-1). という由緒正しい再帰のコードが、全然スタックオーバーフローしないんだもん。fact(65536)にも耐えるとは・・・。 という…

HEVEAを使ってTeXをHTMLにしよう

HEVEAって何? HEVEAは、TeXファイルをHTMLファイルに変換するためのツールです。OCamlプログラマなら一度や二度は見たことがある緑色のHTMLファイルは、HEVEAで変換したやつです。 TeXをHTMLにしたい \documentclass{article} \begin{document} \title{Schem…

~/.*rcへのシンボリックリンクを貼りまくるシェルスクリプト

30分プログラム、その546。~/.*rcへのシンボリックリンクを貼りまくるシェルスクリプトを書いた。 ボクは~/.*rcみたいな設定ファイルを全部gitのレポジトリに突っ込んで、すぐに自分の環境を構築できるようにしている。ただ、.*rcのままだとlsで表示されなく…

Mac OS X用Twitterクライアント: SnowRabbitを公開しました

Mac

紹介 @banjunさんが作ったTwitterクライアント:SnowRabbitを公開しました。 followingのグループ化と、スクリーンネームの補完が売りらしいです。是非、お試しください。 詳しい説明/ダウンロード http://howdyworld.org/snowrabbit.htmlからダウンロードで…

ディレクトリのTree表示

30分プログラム、その545。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_040あたりに触発されて、ディレクトリのツリー表示をやってみる。 末尾の処理をさぼったので、ちょっと表示表示が変。 +[a] | +--hoge | +[c] | | +--bar | +[b] | | +--f…

let多相を持った言語を実装したよ

これは何? Types and Programming Languages (The MIT Press)やプログラミング言語の基礎理論 (情報数学講座)を読んだけど、let多相がよく分からない。 ならば、let多相を持った簡単なプログラム言語を作ってみよう。 名前は「Scala + let多相」なんでscalet…

Re:Re:PythonでRubyのeach_with_indexみたいなもの

30分プログラム、その544。PythonでRubyのeach_with_indexみたいなもの。 kyeeva blog!を読んで、そういえばRuby1.9から [1,2,3].each.with_index do|x,i| p x,i end って書けるようになったんだよなぁ、と思ったのでやってみた。最終的に、 for (x,i) in ls…

Windowsじゃaux.rbは作れないよ

古の慣習により、Windowsじゃaux.rbは作れません。 だから、うっかりMacやLinuxで作ってレポジトリにコミットしてしまうと大変なことになります。ここ1週間で2回遭遇したので、メモしときます。

ファイルの先頭にテキストを追加するスクリプト

30分プログラム、その543。ファイルの先頭にテキストを追加するスクリプト。 ファイルの末尾にテキストを追加したいときは、 $ echo hogehoge >> some_file.txt でいいけど、先頭に追加するのは大変だよね。作っておけば、全ソースコードの先頭にライセンス…

二桁の西暦のソート

30分プログラム、その542。二桁の西暦のソートをやってみる。 元ネタはhttp://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_105だけど、先頭二桁とかはややこしいので考えず、単純に整数だけのソートにしてみた。 使い方 1> year_sort:sort([07,06,05,0…

文字数カウント用のスクリプト

id:GemmaさんがTwitterにこんな発言をしてた。 エントリシートの文字数チェックにもGauche使ってる。(string-length (file->string "./hoge"))8:30 PM http://twitter.com/Gemmat/status/1295313793 ためしに使ってみたら予想以上に便利だったので、さくっと…

ベンチマークのための時間計測関数

30分プログラム、その541。ベンチマークのための時間計測関数を書いてみた。 http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_102にあるようにビルトインの関数とオレ関数の速度を比較しようと思ったけれど、そのための時間測定のほうが面倒くさい…

ドメインを逆順にしてみる

30分プログラム、その540。パッケージ名のようにドメインを逆順で表示してみる。 すんなり書けてしまったので、特にコメントはない。 使い方 gosh> (domain-rev "mzp.sakura.ne.jp") "jp.ne.sakura.mzp" ソースコード #! /opt/local/bin/gosh (define (domai…

XPの本が届いた

XP関連書籍をまとめ買いした。これで、エクストリームなプログラマーになれるぜ、やったね。 アマゾン・マーケットプライスのおかげで、これだけ買っても送料込み4000円。やばいね。衝動買いが加速してしまうじゃないか。

文字列の反転(UTF8対応)

30分プログラム、その539。文字列の反転(UTF8対応)をやってみた。 文字列の反転は簡単だけど、日本語対応も含めるとわりと大変そうだなぁ、と思ってやってみた。 が、日本語対応も考えなくても難しかった。なんで、Pythonには破壊的なreverseしかないんだよ…

最近はビルドスクリプト書いてます

ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーションを読んだら、無性にビルドスクリプトが書きたくなったので、最近はビルドスクリプトを書いてます。GitHubはpushしたあと指定したURLを叩いてくれる機能がある。 こ…

複利計算

30分プログラム、その538。anarchy golf - Compound interest via http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_018。 素直にforでループすればいいのに、無理に再帰で書いてしまった。どうせ、出力するときにfor使ってるのにね。 あと久しぶり…