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

Catalyst::Manual::Aboutの個人的な要約

読みながらメモっただけなので超適当な日本語だと思います。読み返してもいないし。Catalyst::Manual::About - The philosophy of Catalyst - metacpan.orgCatalystはWebアプリケーションフレームワーク。Webアプリケーションのタスクにはこんなものがある。…

vimでChangeLog

忘れないだろうと思ってメモらないと激しく忘れそうなのでメモっておく。 $ vi changelog \o「バックスラッシュ+アルファベットのオー」で新しいエントリ?ができる。 ファイル名はchangelogとかChangeLogとかそんな感じで。

WebService::Livedoor::Auth

使ってみたんだけど。以下のエラーメッセージが出てました。 [Sun May 20 02:22:23 2007] [error] [client 192.168.0.3] [Sun May 20 02:22:23 2007] livedoor.cgi: Use of uninitialized value in string eq at /usr/lib/perl5/site_perl/5.8.8/WebService/…

WebService::Gnavi使ってみた

http://d.hatena.ne.jp/lestrrat/20070510#1178769165 ページャーがなんか変。 #!/usr/bin/perl use strict; use warnings; use WebService::Gnavi; use YAML; my $gnavi = WebService::Gnavi->new( access_key => '...' ); my $res = $gnavi->search({ cate…

Rubyist Magazine 出張版 正しいRubyコードの書き方講座 1

Rubyは使ったことがないけど、 青木さんの本 添削なので言語が違っても学ぶことがあるはず ということで買った。 せっかくなんでPerlで同じコードを書いた。 http://takatoshi.dyndns.org/repos/tktsh/rubima/trunk/pukipa/ 正規表現の使い方とか、いろいろ…

Munin on Fedora Core 6

とりあえず動かすだけ。 $ su - $ yum install munin munin-node $ /etc/init.d/munin-node startmuninのcronは/etc/cron.d/muninで5分毎に動くようになってる。 $ tail -f /var/log/munin/munin-updateしてそれっぽいログが流れてればおk。 デフォルトの設…

vimのplugin

vimのsnippetsEmuがすばらしい - otsune's SnakeOil - subtech を見て入れてみようと思ったんだけどプラグインなんて使ったことなくて30分くらい苦戦したのでメモ。 Linuxでvim7使ってます。 $ mkdir -p ~/.vim/after/ftplugin $ cd ~/temp $ wget http://ww…

魔方陣

「憂鬱なプログラマのためのオブジェクト指向開発講座」に魔法陣(正しくは魔方陣らしい)プログラムが載っているので、Perlでも書いてみた(C++のプログラムを書き写しただけ)。C++だと3×3の魔法陣を解くのにそれほど時間はかからなくてサクサクと答えが出…

Catalystで使ってるモジュールのバージョン管理って

Catalystを使うために perl -MCPAN -e 'install Task::Catalyst'とかすると、大量のモジュールがインストールされるけど、実際にサービスとして運用環境にあるサーバーの場合、これらのモジュールのバージョン管理ってどうやるんだろうか、と思った。という…

Mixi::Shell

http://d.hatena.ne.jp/lestrrat/20070412#1176352515 Twitter-Shell-0.02 - Twitter From Your Shell! - metacpan.org を見てTerm::Shellというモジュールを知ったので、全面的にまねをしてMixi::Shellというのを作った。 でもまねしすぎてちょっと反省。 m…

chrootするとsyslog関連が・・

ふつうのLinuxプログラミングもやっと最後まで終わりました。 で、HTTPサーバを作るところの終わりでchrootするコードを追加するんだけど、chrootするとsyslogに書き込まれなくなるようです。 Cのソースを模倣しているPerlプログラムのほうではdieしてしまう…

HTTPサーバを作る

ふつうのLinuxプログラミングもやっと16章。HTTPサーバを作るってところまで来ました。 17章になるともうちょっと複雑になるようなので、そのまえにPerlでも同じコードを書いてみた。 なにごともやってみることが大事、ということで。 ふつうのLinuxプログラ…

MyISAMの読み取りロックについて

MyISAMのテーブルに対してSELECTするとテーブルに対して読み取りロックがかかるけど同時INSERTが可能な場合もある。具体的には可変長カラムのUPDATE、レコードの削除が発生していないテーブルに対しては同時INSERTが可能。これはSHOW TABLE STATUSした時のDa…

continuation(SmallTalkの場合?)

Smalltalkはまったくわからないけど。 継続(continuation)では、センダ(呼び出し元)が後でやらなければならない処理を、ブロッククロージャ(継続)にして、レシーバ(呼び出された側)に渡していき、メッセージを受信したレシーバは、自分のやらなければならな…

strace

久しぶりに「ふつうのLinuxプログラミング」をやってる。だいぶさぼっていたおかげでまだ6章。 straceというコマンドを知った。プログラム中で使用されるシステムコールを表示してくれるツール。 使い方はコマンドの前にstraceと書くだけ。たとえばlsだった…

Lingua::JA::Summarize

Lingua::JA::Summarizeのテストがこける。 t/02-keyword....NOK 13 # Failed test 'file_keyword_summary' # at t/02-keyword.t line 60. # got: '京' # expected: '京都' t/02-keyword....NOK 14 # Failed test 'charset' # at t/02-keyword.t line 63. # g…

部分的GET

HTTP/1.1にはリソースの一部だけを要求する部分的GETというのがあります。 部分的GETではリクエストに次のようなRangeヘッダというのが使われます。 Range:bytes=0-499これを受け取ったWebサーバーはレスポンスに次のようなContent-Rangeヘッダを付加してリ…

DjangoをFastCGIで動かす

まずはflupを入れる。少し苦労した気がするのだがもうだいぶ時間が経ってしまったので忘れた。 FastCGIサーバーを動かすのは簡単。 FastCGIをExternalServerで動かすのは初めてだったのでなんか新鮮。 それよりmod_rewriteで苦戦。mod_rewriteにはいつもいつ…

Djangoのフォーム処理と汎用ビュー(チュートリアル その4)

フォーム処理はごく普通。tryがあるとラクでいいですね。 汎用ビューは便利なのかどうかまだよくわかんない。なれないせいか設定(urlpatterns)の複雑さの方が目についてしまう。 これだとぱっと見でよくわからん。汎用的にすると省けるところもあるけどその…

Djangoのビュー(チュートリアル その3)

URLとそれに対応するビューの定義から始めるというのはとてもわかりやすくていい。ここでビューって呼ばれているものはテンプレートとかのことじゃなくて、いわゆるコントローラというもののことだと思う。ビューが単なるコールバック関数だというのもシンプ…

第128回 TOEIC公開テスト

毎年書いてるので今年も書いておく。 前回から50点アップの690点。 LISTENING/READINGともに345点。試験会場は神奈川大学でした。試験内容が変わって初受験だったので点数下がるかもと思ったけどそんなことなく順調に?上昇してます。 595 -> 640 -> 690とい…

Django adminサイト(チュートリアル その2)

ちょっと!すごいよ!すごすぎるよ! コンテンツの追加や変更,削除を行うための admin サイトをスタッフや顧客向けに作る作業は,創造性の欠けた退屈なものです. これはもう、ほんとにその通りです。いままで似たような管理画面を何回か作ってきて痛感して…

Djangoチュートリアル(その1)をやった

データベースはMySQLを使いました。MySQLdbというのが必要なのでインストールしておきます。 $ sudo apt-get install python-mysqldb モデルの作成 モデルを作成するにはクラスを定義すればいいです。 1つのテーブルが1つのクラスになります。クラス定義には…

Djangoをインストール

Djangoは0.95.1、Pythonは2.3.5で。 インストールは簡単だったので、プロジェクトを作成してとりあえず動かしてみようかと。 $ django-admin.py startproject mysite $ cd mysite $ python manage.py runserverで Validating models... 0 errors found. Djan…

mod_python 3.2.10

Apache 2.2.2とmod_python 3.2.8 - libnitsuji.so で、Apache 2.2だとmod_pythonが使えなかったのですがさすがにもうFixされていた [MODPYTHON-78] No support for Apache 2.2 yet - ASF JIRA のでアップデートしました。 無事インストール&Apche再起動に成…

tail -f よりlessでF

なんかのデバッグとかでApacheのログをtail -fで流しておくというのはよくやるけど、それよりlessでFしたほうが便利だと思った。 lessしてるときにFと打つとtail -fみたいな動きになってCtrl+Cで元に戻せる。 だからリクエストしてから元に戻せばそのログを…