タグ

ブックマーク / ktat.hatenadiary.jp (27)

  • YAPC Asia 2011行ってきた - Practice of Programming

    とは言え、2日目のみの参加でした。1日目も出たかったなー。 個人スポンサーにもなってんだから、せめて懇親会くらい行きたいなーと思ってたんだけどね。夜に会議入っちゃったから、諦めた。 1日目後 Twitterで眺めてたら、PerlDojoとかいう面白いことをやっていたので、参加。 gfxさんの問題に回答おかしくないですか?と質問したら、自分が問題読んでないことが発覚。すみませんでした m(__)m ツッコミを受けた後、 と言われたので、perldojo を fork。 動作確認してから、pull request したかったので、Arkのインストールから、依存モジュールをいれていると… …Perl 5.12以降でしか動かないことが発覚。 がーん。 で、仕方ないので、Perl 5.14系のコンパイル、依存モジュールのインストールなどなどしているうちに、結構な深夜に。 なんか眠れないし、1日目行け

    YAPC Asia 2011行ってきた - Practice of Programming
    otsune
    otsune 2011/10/24
  • 巨大なファイルをgetする場合のLWP::UserAgentとFurlの場合 - Practice of Programming

    バッチ処理がやたらメモリくってると思ったら、なんかおっきいファイルをgetしてたせいでした orz 一旦ファイルに吐き出して、後でopenして使いたいような場合は、LWPでは、 my $ua = LWP::UserAgent->new(); $ua->get('http://example.com/big_file.gz', ':content_file' => '/path/to/big_file.gz'); Furlの場合、write_fileオプションを使います。こちらはファイルハンドル。 my $f = Furl->new(); open my $fh, '>', $filename; $f->request(url => 'http://example.com/big_file.gz', write_file => $fh); Furl::HTTPのドキュメントにあるけど、Fur

    巨大なファイルをgetする場合のLWP::UserAgentとFurlの場合 - Practice of Programming
    otsune
    otsune 2011/09/06
  • Util::All だいたい終わった - Practice of Programming

    Util::Allですが、終わったというか、キリがないので、そろそろやめる。 CPANにあげようかと思ってるんですが。Allなんて厚かましいのはいいんだろうか。 現在、250以上の関数(まじめに数えてない)を集めました。一部は自分で新たに書いたものや、wrappingしたものもあります。70個くらいのモジュールに依存してます。全部の関数の説明の podは3500行近い(Util::All::Manual)。 なお、ほとんどの説明は自分で書いたものではなく、Pod::Sectionで、抜き出したものを埋め込んでいます。ので、ちょっと見づらいところがあるかも。あと、説明書いてなくて、代わりに関数定義がそのまま埋められてるのもあったりしますが、それはそのうち直します。 一部をのぞいて、script/definition/functions.yml を変更して、script/create_util

    Util::All だいたい終わった - Practice of Programming
    otsune
    otsune 2010/05/06
  • デモでパスワードが必要な時は - Practice of Programming

    perl-casual #2 の ustream を聞いてると、makiさんが、Live Codingしているときに「パスワード見えちゃうなー」みたいなことを言っていたので。 たぶん、ご存知だとは思いますが、パスワードが必要なデモをする時は IO::Prompt 使うといいんじゃないでしょうか。 use IO::Prompt; my $password = IO::Prompt::prompt("input password:", '-echo', '*'); print $password->{'value'}; 打った文字は、-echo で指定した、"*" に変換されて表示されます。 Reviewによると、Windowsじゃ動かないようなのですが、Windowsの場合に使える代替モジュールは...なんかあるのかな?

    デモでパスワードが必要な時は - Practice of Programming
    otsune
    otsune 2010/05/01
  • こんな人たちに税金使わせちゃダメだろ - Practice of Programming

    確定申告の期限が迫って憂な時にこんなニュースを教えてもらった。 県警の電子申請、利用者ゼロで廃止に 税金4億円消える なんでこんなに開発費と維持コストの高いシステムを発注するっていう予算が通るんだろう? システムを入れずに人が処理をすると、年間1万4千件の申請を処理するのに5千万以上(休止中にかかった維持コスト)かかるっていう計算がないと導入しないよね。ほんとーですかー?1件の申請を処理するのに平均4万千円(寝ぼけすぎorz)くらいかかるってか?使われてなくて良かったですね。こんなん、もし使われてても、廃止したほうがいいし。金かけすぎ。 システムを導入するからには、 1. 自動化することで現在かかっているコストを軽減できないと意味ない 2. それにかけるコストを軽減されたコストで回収できる見込みないと意味ない。 これ、両方成り立たないんじゃないの? 人がやった方が安いなら、おとなしく人が

    こんな人たちに税金使わせちゃダメだろ - Practice of Programming
    otsune
    otsune 2010/03/13
  • tran - Practice of Programming

    アホな記事は新しい記事で忘れよう。 というわけで、tran、久々に手を入れてみた。 http://github.com/ktat/tran init 死んでたんじゃないかと思います。直したつもり。 backpanから、ソースを取得するようにしました。 他はドキュメントの修正。 CPANには結構ないバージョンが多いので、自動でbackpanから取りたいなーとは思ってたんですが、僕はbackpan.perl.org を見てしまっていて、ここには、Authorからの一覧しかないんです。 で、どうにもならんなーとか、思ってましたが、ちょい前に、IRCで backpan.cpan.org を教えてもらい。こっちなら、module名からの一覧があるので、これを使うようにしました。 依存の多いモジュールはオプションにして、体は依存少なくても動くようになればいいなぁ。Data::Visitorの依存を切

    tran - Practice of Programming
    otsune
    otsune 2010/03/13
  • 翻訳のバージョン管理ツール作り始めた tran - Practice of Programming

    明けましておめでとうございます。年もよろしくお願いします m(__)m 昨年末ころから、Perlのドキュメント日語訳関係で動きがあったので、前から作ろうと思ったものをちょっと、作り始めてみた。 翻訳作業において、オリジナルがバージョンアップすると、オリジナルのバージョン間のdiffをみつつ、翻訳のバージョンアップをするっていう作業が必要なんですが、以外と邪魔くさい。 というのは、自分で、オリジナルのバージョン管理までやんないといけないハメになっちゃうから(もちろん、モジュール作者がリポジトリを持っている場合はあるけど、各モジュールで違うってのはめんどくさいし)。 なので,古いバージョンから新しいバージョンへのアップデートは一から訳すよりは楽なはずなのに、ちょっとめんどくさい。 svk を使った方法は以前試したものの、それでもめんどくさいので、やはりそれように何かほしい。 というわけで、

    翻訳のバージョン管理ツール作り始めた tran - Practice of Programming
    otsune
    otsune 2010/01/02
  • JPRPの翻訳文書をPOD2::JA対応 - Practice of Programming

    昨日一昨日は、perldocjp/new-perldocjp懇親会行ってきました。 皆様お疲れ様でした。いろいろ話せて有意義でした。 弾さんに「真面目過ぎる」と怠惰分が足りないという指摘を受けましたw その後、なんとなく、POD2に準じた形でいけないかなぁと思って、ちょっとプログラムを書いてみました。 http://coderepos.org/share/browser/lang/perl/POD2-JA 特徴ですが、 JPRP(Japanized Perl Resource Project)のcvsからチェックアウトしたデータを使う ので、最初に、cvs checkout が必要 =encoding がついていないドキュメントにはEncode::Guessで判断して、自動でつける バージョンは同じか直近の新しいバージョンを拾う インストールされていないドキュメントの翻訳はインストールしな

    JPRPの翻訳文書をPOD2::JA対応 - Practice of Programming
    otsune
    otsune 2009/12/17
  • KiokuDB::Tutorial 翻訳 - Practice of Programming

    YAPC::Asia 2009で行われた、「記憶」のセッションですが、相変わらず僕の翻訳が拙いので、英語が不得手な人には難しかっただろうと思いまして、訳しました(スライドを理解するために、半分くらいは訳してましたけど)。 http://perldoc.jp/docs/modules/KiokuDB-0.32/KiokuDB/Tutorial.pod ※久々にあげたので、基EUC-JPって忘れてました。utf-8で読み直していただければと思います。そのうち直るかと思います... とは言え、ぶっちゃけ、あんまり翻訳に自信はないです。 tokuhiromさんが、以前に解説されているので、そちらも見るといいのではないかと思います。 しかし...やたら時間かかってしまったので、ヘコむ。 KiokuDB体の方を訳す予定は今のところありません。

    KiokuDB::Tutorial 翻訳 - Practice of Programming
    otsune
    otsune 2009/09/16
  • Util::All Perlのユーティリティを集めてみる - Practice of Programming

    YAPC::Asia 2009 面白かったです。運営の皆様方、お疲れ様でした&ありがとうございました。 今回、「記憶」のセッションを訳したのですが、相変わらず拙くて申し訳なかったです。 Tutorialを訳し中なので、近々あげたいと思います。 で、YAPCで刺激をもらったので、新しいモジュールに手を付け始めました。 Util::Allというモジュールです。 これは、以前に作ったUtil::Any を使って,色んなモジュールのユーティリティを集めたものになります。 使い方は、Util::Anyと変わりません。 use Util::All -list, -md5; print md5_base64("aaaaaa"); print uniq (1,2,3,1,3,4,5,8); こんな感じ。 今まで手をつけなかった理由として、僕自身がそんなにモジュールのユーティリティ関数を知らないっていうのと

    Util::All Perlのユーティリティを集めてみる - Practice of Programming
    otsune
    otsune 2009/09/13
  • UtilをまとめてしまうUtil::Any - Practice of Programming

    #coderepos で、「怪しい名前空間w」と言われてしまいましたが(^^;; Util系のモジュールがPerlにいくつかあって、便利なんだけど、紛らわしいというか、覚えてなくて、毎度調べるみたいなことがあります。 たとえば、List::UtilとList::MoreUtils。 「uniq関数どっちやったけ...?」 みたいな。そんな、わずらわしさを解消するために、Util::Any というものを作ってみました。 まとめるだけじゃ芸が無いので、まとめるモジュールを自作しやすいようにしてみました。 CPAN http://search.cpan.org/dist/Util-Any CodeRepos http://coderepos.org/share/browser/lang/perl/Util-Any/trunk/ 使い方は非常に簡単。 use Util::Any qw/list/;

    UtilをまとめてしまうUtil::Any - Practice of Programming
    otsune
    otsune 2008/12/09
  • use Test::Base instead of Test::More - Practice of Programming

    以前Test::Moreで書いたテストが通らなくて、テスト結果を見たのですが、結構長いテキストの比較だったので、、gotとexpectedで全部だされてもなぁ...と思ったのですが、Test::Baseは、Test::Moreと互換性があるんだった、と思いだして、変えてみた。 use Test::More ...; のところを、 use Test::Base ...; とするだけ。 こうすることで、diffが表示されるようになります。簡単な例だと、 #!/usr/bin/perl use Test::More qw/no_plan/; is(<<END_GOT, <<END_EXPECTED); aaa bbb ccc END_GOT aaa bob ccc END_EXPECTED Test::Moreだと、 not ok 1 # Failed test in scripts/test_

    use Test::Base instead of Test::More - Practice of Programming
    otsune
    otsune 2007/06/18
  • YAPC::Asia 2007 - Practice of Programming

    感想は適当気味。 1日目 英語ばかりでちょっときつかった。 Kwiki and the Symlink デモ動いてなかったけど、依存性を全部リポジトリ内で解決しているから、動きそう。 Spork大好きだし、Kwiki体も使ってみようかな。 Virtualization and Package Deployment with EC2 amazonのEC2の紹介。インスタンスのスペックがよさげ。 Higer-Order Parsing techiniques for Perl HOP::Parserというのがあるらしい。構文解析に使ってみようかなぁ...。 昼飯 中華料理が混んでたので、抜けた。なんか待ち合いでちょっと会釈していただいた方がいたんだが、すんません、誰か分からなかった...。失礼しました...。で、もうちょっと先に行って、パスタべました。 perl i18N in 20 m

    YAPC::Asia 2007 - Practice of Programming
  • SVKの翻訳2本 - Practice of Programming

    許可が取れず公開してなかった翻訳2つ。YAPC::Asia 2007で、ご人に聞いて、OK取れたので、公開しました。 Thanks! Distributed Version Control with svk Collaborative document editing with svk どちらも古い記事だけど。Collaborative document editing with svk とかは役に立つと思う。 前者は、記事書くときの調査がてらに訳した感じ、だったと思う。 YAPC自体の感想は、明日にでもまとめて、書くかも。 とりあえず、去年も言ってたけど、英語わかんないとつらい...(つまり、成長してねー)。 でも、楽しい。 あっ、一点だけ。 弾さんが、Perlish magazineのネタ(http://jp.rubyist.net/PerlMa/wiki.cgi?page=2006

    SVKの翻訳2本 - Practice of Programming
    otsune
    otsune 2007/04/06
  • svkで/etcの管理 - Practice of Programming

    svkのMLで流れていたのでやってみた。 http://www.enricozini.org/2005/tips/etc-under-svk.html リポジトリはあるので、 % svk import --to-checkout //etc /etcだけ。 --to-checkout オプションは、importと同時に、そのパスをチェックアウトパスにするということです。 以後は、 % cd /etc % svk diffとか、できるようになる。 (追記って、リンク先に書いてるけど)システムが勝手に変更してしまうようなファイルで管理したくないものは、 % svk rm -K adjtimeとする。-K は、チェックアウトしたローカルファイルからは消さないというオプション。

    svkで/etcの管理 - Practice of Programming
    otsune
    otsune 2007/01/16
    svkをpkg_addする手間さえ許容すれば使える技だ
  • CVSとの連携捕捉 - Practice of Programming

    SVKとCVSとの連携ですが、cvs commit すると、CVSディレクトリのEntriesファイルとかが変更されて、svk で管理するのがめんどいです。 svk propedit svn:ignore とかで指定出来ますが、いちいちやるのは大変ですね。 svk は、.subversion/config を見ているようですので、ここで設定してやるのがいいです。 [miscellany] ### Set global-ignores to a set of whitespace-delimited globs ### which Subversion will ignore in its 'status' output. # global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_StoreCVSを追加して、ここのコメン

    CVSとの連携捕捉 - Practice of Programming
    otsune
    otsune 2006/11/22
  • Shibuya.pm テックトーク #7 - Practice of Programming

    EC2 詳しくはよくわからなかった。 オールインワンのインスタンスを起動すると、apache, MySQLとかがいろいろ動くみたいな? lightppd + FastCGI lightppdは設定簡単で、いい感じ。Catalystの開発サーバはしょぼいから捨てて、lightppd使えとか。 FastCGIはmod_perl並に速いとか、名前空間をがアプリごとで競合しないとか。 shellの出力結果を設定として取り込めるらしい。 apache だと、mod_perlでやれるらしい(ircにて) PMConnect これはスゴい。JavaScript <-> Perl ソース http://ajaja.alphageek.jp/trac/browser/trunk/ajaja/pmconnect/samples/glade.js データの相互交換もいい感じ Catalyst + MogileF

    Shibuya.pm テックトーク #7 - Practice of Programming
  • Test::Base翻訳 - Practice of Programming

    Shibuya.pmの宮川さんのテクニカルトークを受けて、翻訳テンションがあがったので、 訳してみました。 Test::Base 0.52(エンコードをutf8に変更してください) <- 追記:perldoc.jp 側で対応していただけました。宮川さんありがとうございます http://perldoc.jp/docs/modules/Test-Base-0.52/lib/Test/Base.pod Test::Base::Filterもそのうち訳します。

    Test::Base翻訳 - Practice of Programming
    otsune
    otsune 2006/10/22
  • svkとCVSの連携 - Practice of Programming

    今日は普通の更新。SVKはCVSとの連携もなかなかうまくできます。 % cd ~/cvs/ % svk import //cvs_repos/project_x project_x % cd ~/svk % svk checkout //cvs_repos/project_xとかすると、CVSでチェックアウトしているproject_xが、 svkで管理されます. この際、各ディレクトリにあるCVSディレクトリもimportされているので、checkout先のディレクトリでsvkコマンドを打てばSVKのリポジトリに対してとなり、cvsコマンドを打てば、CVSのリポジトリに対してになるという感じになります。smerge とか、push とか、pull とか, syncは使えないので、cvs update で pull、cvs commit で push みたいなイメージとなりますが。 もう一つ

    svkとCVSの連携 - Practice of Programming
    otsune
    otsune 2006/09/25
  • SVK - 分散バージョンコントロール - Part II - Practice of Programming

    Ron BieberさんによるSVK - Distributed Version Control - Part IIの翻訳です。 イントロダクション In our last article, we installed SVK and created our local mirror of our repository. Since the writing of the previous article, we have caught up on a lot of TV by making code changes to our local SVK workarea and using the svk commit command to commit our changes to our local repository. During this time, one of my other

    SVK - 分散バージョンコントロール - Part II - Practice of Programming