2006-01-01から1年間の記事一覧

最適化

単純だがデータが大量にあるため時間の掛かるプログラムを最適化した。 処理速度が良くなると何とも気分がいい。まだまだ無駄はあるけど。 改めて最適化のポイント。 かならずプロファイルをとる。どんなに遅いポイントが見当がついている(と信じている)場…

マイプロジェクト

最近、MonaOS のブログや新エディタ Shiki を作る日記 を読み、 まとまった技術的な挑戦の記録に憧れるようになった。 しばらく前からやろうと思っていた自分のための勉強記録を表に出そうと思う。 これはC++で書かれた特定分野のプログラム集をCommonLispで…

Perl の難しさ

いまさらだがPERLは初心者向けどころか取得が難しい言語だ。 複数のスタイルを許し、多量のライブラリを誇り、文字列処理に無類の強さを発揮する、巨大な言語。

Perl シュワルツ変換

ハッシュの配列を、ハッシュの値などでソートする場合、すなわち、 ソートする際にハッシュの参照が多数発生する場合、 シュワルツ変換というテクニックを使うことで高速化されるらしい。 Perl の FAQ にも載っているが使ったことはなかったので、試してみた…

Emacs CPERL-MODE

M-x cperl-mode で起動。デフォルトでは、別の Perl モードが有効になっている場合が多い。 M-x cperl-perldoc で Perldoc を Emacs で参照できる。これは便利だ。

Perl のユニットテストについて。

スクリプト言語でもユニットテストは大切にしたい。 Perl の場合は Test::Simple や Test::Unit が使える。 Test::More を使うのがよいようだ。

Perl で関数型プログラミング

関数型プログラミング(functional programming)について。Wikipedia にあるように(http://en.wikipedia.org/wiki/Functional_programming)、 関数型プログラミングはスタイルであって、高階関数を扱える最近の高級言語(Perl, Python, Ruby, JavaScript, …

レンタルサーバー(Sakura Internet)で WiLiKi を動かす

Scheme で動く WiKi エンジン WiLiKi を Sakura Internet のレンタルサーバーにインストールした。 まだインストールしか行っていないが、一応データが保存されている。以下の手順で行い、 実作業は15分以下ですむと思われる。 gauche のインストール WiLi…

Perl 高階関数:File::Find

Perl のFile::Find 標準モジュールは高階関数の良い例だが、高階関数について知らない人には分かりにくいらしい。 まず、関数のリファレンスについて。Perl で関数をデータとして扱いたいとき、?& 関数名とすれば良い。逆に&関数名とすれば、元の関数に戻る。

GNUPLOT

GNUPLOT は使えば使うほど実に UNIX 的なツールだ。 その豊富な機能、データのプロットに特化したミニ言語、バッチ化可能なデザイン、などなど。Perl を使うと一時ファイル無しでプロットできることに今更ながら気づいたのでメモ。 データの加工をテキスト処…

Perl のオブジェクト指向について。

「続・初めてのPerl」がかなり良書だ。クロージャーについてもちゃんと記述がある。 肝心のオブジェクト指向が出てくるまで長いが、順番に読む価値があると思える (逆に、Perl のオブジェクト指向の分かりがたさ、も見て取れるが)。今のところPerl のクラ…

AWK のパターン

Awk の教科書「プログラミング言語Awk」。 Awk によってデータを処理し、レポートを生成する際の典型的な処理順序は以下の通り。 「準備」 「整列」 「整形」 パターンというほどのモノかは分からないが、重要だと思う。

Data munging

という言葉があるらしい。以下の本を発注する予定。 "Data Munging with Perl" http://www.manning.com/books/cross

Perl でフィルタを書く際の注意

perl はフィルタを書くことを支援してくれるが、注意しなくてはならない場合もある。その一つが eof の扱いだ。行単位で処理するフィルタに複数のファイルを読み込ませる場合でも、各ファイルの末端で何か処理したい場合がある。 空のダイヤモンド演算子を使…

AirMac

横浜某所にて。 メールチェックのためにネットカフェを利用。AirMac が動作するので楽。 Hacking UNIX の基本コマンドのソースを取得して、 C 言語の学習にあてる。apt-get source でソースを入手。