Practice of Programming

プログラム とか Linuxとかの話題

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

Text::Parts 0.07 をリリース

Text::Parts 0.07 0.06も上げたのですが、微妙なところがあって、すぐに0.07をリリースしてしまった。変わったところ。Text::Partsにwrite_filesメソッド追加。 $s->write_files('file%d.csv', num => 4); みたいな感じ。 # 0.06で追加したけど、0.07でイン…

SQLを組み立てるもの

最近、Tengを使っていますが、それほど複雑でもないSQLを組み立てるのに、searchメソッドは使いにくいと思う時が割と多い(group by出来ないとか、x = ? or y = ? とか書きにくいとか)。たぶん、方針として、シンプルなSQL以外は、search_by_sqlをっていうこ…

[Linux][vim] samba上のファイルをvimで編集する時のtimestampの問題を回避する設定

どうも、samba上でvimでファイルを編集していると、変更してないのに変更されていると文句を言ってくる。 WARNING: The file has been changed since reading it!!! 警告: 読込んだ後にファイルに変更がありました!!!こいつです。 ググってみたところ、samba…

Hachioji.pm #10 に行ってきた

行きたいなぁーと思いつつ、遠いなーと思っていたのですが、行ってみることにしました。 僕は東京の東の方に住んでるので、会場までは、1時間20分くらいかかりました。交通費は780円。時間とお金で遠さを実感w 迷いやすい会場ということでしたが、方向音痴の…

YAPC Asia 2011行ってきた

とは言え、2日目のみの参加でした。1日目も出たかったなー。 個人スポンサーにもなってんだから、せめて懇親会くらい行きたいなーと思ってたんだけどね。夜に会議入っちゃったから、諦めた。 1日目後 Twitterで眺めてたら、PerlDojoとかいう面白いことをやっ…

Text::Parts てのを書いた

githubにおいてます。テキストファイルを複数のパーツに分けるものです(実際に分割するわけではなく、分けた部分を読むためのオブジェクトを返します)。 各パーツは、行頭から始まって行末で終わる感じになります。行の途中で分けられるということはありませ…

ログを監視して怪しげな文字列を見つけたら何かする

Parallel::ForkManagerを訳しました(nekokakさんの0.7.5の翻訳からの差分だけなので楽でした)。 で、複数のエラーログファイルがあって、そのログファイルを tail(File::Tailを使って)しつつ、Errorを見つけたら、何かするっていうスクリプト。 例として、そ…

Amon2を継承して自分のWAFを作る

2ヶ月くらい前からか、id:tokuhiromさん作成のAmon2を会社のFrameworkのベースにしています。 Amon2は拡張しやすい感じだし、Flavorをメンテするのは結構だるいし、会社なら共通させたほうがいいなーということで、継承して使ってます(Flavorも使っています…

巨大なファイルをgetする場合のLWP::UserAgentとFurlの場合

バッチ処理がやたらメモリくってると思ったら、なんかおっきいファイルをgetしてたせいでした orz 一旦ファイルに吐き出して、後でopenして使いたいような場合は、LWPでは、 my $ua = LWP::UserAgent->new(); $ua->get('http://example.com/big_file.gz', ':…

Perl で WebSocket クライアント(AnyEvent)&サーバ(psgi)

こんなんでいいかなぁ。その2。forkじゃアレなんで、AnyEventで書いてみた(https://gist.github.com/1000223)。 追記: 以下、to_stringですが、Protocol-WebSocket-0.00906 では、Protocol::WebSocket::Handshake は to_bytes に変わっているようです。 #!/u…

Perl で WebSocket クライアント

こんなんで良いかなぁ。 #!/usr/bin/perl use strict; use warnings; use POSIX ":sys_wait_h"; use Protocol::WebSocket::Handshake::Client; use Protocol::WebSocket::Frame; use IO::Socket; use open ':utf8'; use open ':std'; $| = 1; run(); sub run…

podの原文に=begin original =end originalを挿入する関数

perlのドキュメントを翻訳する際に原文残す場合は、該当部分を =begin original 〜 =end original で囲むことが推奨されています。以下みたいな感じ。 =begin original 原文 =end original 翻訳 手で書くのは面倒なので、以下のような関数作ってます。 (defu…

MMM for multiple cluster

These days, I'm using MMM(Multi-Master Replication Manager). MMM is for the cluster which has one writer role and some reader roles. If you have some master databases, you have to separate configuration file for their master databases like…

Gnomeを捨て、OpenBoxに変えてみた

compizも楽しかったけど、4GBメモリ積んでて通常作業でSwapも結構使っちゃうので、もういいや。 懐かしのblackboxにしようかと思ったけど、さすがに、数年間メンテされてないし、古すぎ感があるので、別のものを試してみた。 なお、Ubuntu 10.04の話です。 …

日本語入力メソッド Sekkaのインストール

sekka は kiyokaさんが作っている日本語入力メソッドです。下記参照。 http://oldtype.sumibi.org/show-page/Sekkasekka のインストールは下記のとおりです http://oldtype.sumibi.org/show-page/Sekka.Setupとりあえず僕の環境(Ubuntu 10.04)では...以下の…