タグ

ブックマーク / mt.endeworks.jp (10)

  • perlbrew - D-6 [相変わらず根無し]

    perlbrew Perl 5.6 とか Perl 5.8を今だに使ってるあなた!そうです、これを読んでるそこのあなたです。Perl5の開発チームは後方互換に関しては大変神経をつかっていますので、 Perl 5.6とかで動いてたコードをいきなり 5.12で走らせても基的には動くはずです(多分警告とかは一杯でるだろうけど)。でもだからといって新しいバージョンで施されている様々な最適化や新しい機能を使えないのはちょっと悲しくないですか? ということで新しい Perlを使いましょう!最新安定版は5.12.1ですよ!ちなみにどのバージョンを2010年8月時点で使うべきか、はこちらのエントリを参照してください。 え?アップグレードできない?システム管理者が許してくれない?前入れてたアプリが壊れる?いやいやいや、全然いけますって。自分用のPerlをインストールすればいいんですよ! ここではそれを簡単

  • Plack + Router::Simpleで簡単なジョブキュー書いてみた - D-6 [相変わらず根無し]

    Plack + Router::Simpleで簡単なジョブキュー書いてみた まだちゃんと使ってないから問題点とかわからないけど、とりあえずStarmanを使うとかで結構スケールできる気がする。そのあたりを自由に変えられるのもPlack++だね。 使用想定としては、これをplackupしておいて、クライアント AnyEvent::HTTPで http_postして非同期で応答待ちする感じ。 package Lyra::Server::Worker; use Moose; use Router::Simple; use JSON::XS; use namespace::autoclean; use constant NO_SUCH_WORKER => [ 404, [ "Content-Type" => "application/json" ], [ q|{ "status" => 0, "

    oinume
    oinume 2010/03/23
  • CoroでFlickrにアクセスする - D-6 [相変わらず根無し]

    CoroでFlickrにアクセスする もうずいぶん前からCoroを使いたくて使いたくてしょうがなかったのだが、やっときたよ。Flickr APIを叩いて、非同期I/OしながらCoroで写真の情報をダウンロードするよ! まず某sukebeさん作のWebService::Simpleを使ってみるよ(当に使ったコードは違うフレームワーク用にいろいろついてたので、あまり利便性とか考えずに説明用のコードだけ書きだします) package MyFlickrModel; use strict; use WebService::Simple; my $webservice = WebService::Simple->new( \%必要な引数 ); # 写真のIDを渡すとinfo, context, sizes, permsを全部ひっぱってくる sub find_photo { my $class =

    oinume
    oinume 2010/02/11
    [Coro::LWP]
  • Test::mysqldとかでテスト走らせる時に際行ったいろんな事。 - D-6 [相変わらず根無し]

    Test::mysqldとかでテスト走らせる時に際行ったいろんな事。 Test::mysqldを使うとクールにMySQLを起動させられるので、それを使おうとしたんだ。でもおいらのローカルにあるmysqlMacPortsのmysqlで、ファイルレイアウトがメタメタなんだ。だからまずこんな感じで、Test::mysqldを継承するMyApp::Test::mysqldを書いたわけさ! 必要とあればMacPortsとかの環境じゃなくてもMYSQL_INSTALL_DBMYSQLDを設定すればテスト時にTest::mysqldが見るバイナリを変更できるのがミソだね! さて、これを使っても、何個もテストスクリプトがある時に一回一回mysqlを立ち上げ直してちゃ意味がない。遅いし、毎回DBの設定をしなくちゃいけないじゃないか! だもんで、まずmake testが走るときに前もってTest::mys

    oinume
    oinume 2009/10/17
    [Test::mysqld]
  • Mooseは「使いやすいオブジェクト定義ツール」じゃないよ - D-6 [相変わらず根無し]

    Mooseは「使いやすいオブジェクト定義ツール」じゃないよ Mooseは「使いやすいオブジェクト定義ツール」じゃないよ。MooseはPerlにおける「オブジェクト指向の革命」ですよ。 http://dann.g.hatena.ne.jp/dann/20080814/p2http://d.hatena.ne.jp/fbis/20080814/1218689670http://d.hatena.ne.jp/a666666/20080813/1218628821http://anond.hatelabo.jp/20080621124021 ぶっちゃけ"has"が使えるとか、勝手にnew()を作ってくれるとか、そういうことはどうでもいいのです。Mooseが革命児たる所以はオブジェクトの初期化・クリーンアップ・メソッドのコールチェインをPerlという言語において初めて(呼び出される順番とか、そういう

  • Apache::Test事始め - D-6 [相変わらず根無し]

    Apache::Test事始め 年末前後からApache::Testで真面目にテストを書き始めている。 ところが全くドキュメントがないんだね。いや、あるんだけど、携帯の機能を使いたいだけなのにあの厚いマニュアル読むの?みたいな感じで。まぁというわけでとにかくざくざくっとドキュメント読んでテスト書いてたらようやくなんとなく分かってきた。この間ある程度他人にも説明できたので自信ついたしw Apache::Testはmod_perlハンドラをテストするときに使う。ディストリビューション等でmod_perlをテストしようと思うとApache自体を立ち上げたりなんだりしなければいけなくて「一体どうテストすればいいんじゃ?!」となりがちだが、Apache::Testを使うと、テスト用httpd.confの生成テスト用のapacheの起動/停止mod_perlハンドラ上で動かしたTest::More等の

  • 才能の無い人がやれる事 - D-6 [相変わらず根無し]

    才能の無い人がやれる事 色んなところで自分の今までの経歴を話す時に話してるけど、俺は基的に落ちこぼれです。大学は工学部でComputer Scienceを専攻したけど、イマイチぱっとせず、基中の基みたいなコースも落とした事あるし、授業なんて(アメリカの大学なのに)全然出てなかった。自分の専攻のクラスはさすがに退学にされたくなかったんで出てたけど、それ以外の数学、経済、化学、物理、ことごとく出席日数は50%以下だ。物理なんて全行程を通して2回しか出てない。 特に創造力があるわけでもない。若かりし頃、高校生とかその頃は漫画家を目指してみたり、ミュージシャンを目指してみてレスポールを膝くらいの位置に吊って弾いてたりしてみたけど、結局そういうシナプスがばりばり音を立てて何かをゼロから生み出すような事もたいしてうまくなかった。 だから正直大学卒業間際は相当焦ってた。卒業後紆余曲折あって、2年後

    oinume
    oinume 2008/03/08
  • バグ見つけた→それってどんなテスト?もしくは、なんでMVCなんて使うの? - D-6 [相変わらず根無し]

    バグ見つけた→それってどんなテスト?もしくは、なんでMVCなんて使うの? 最近ソフトウェアエンジニアリングに置ける開発手法に関して考えている。 ぶっちゃけ言ってしまうと「やっぱりTDDっぽいのがいいな」というところに落ち着きつつあるのだが、厳密にTDDをしたほうがよい、と思ってるわけではない。TDDとかExtremeプログラミング、Agileプログラミングにしても理想はいいんだけど、原理主義っぽい使い方は現実にそぐわないと思ってるからだ。 前置きはこれくらいにしておいて・・・重要だと思うのは以下の点: 開発サイクルに自動テストツールを組み込むエンジニアによるバグ/不具合発見時には「動かない」は許可しない。必ず再現コードを提出してもらうテストを自動テストツールを組み込む(=次回リリース前にはかならずテストを実行できる状態にする)テストが通るまで修正を続けるという開発サイクルを取るべきだ、とい

  • Cache::Memcached::LibMemcached の非同期モードはありえないくらい速い。 - D-6 [相変わらず根無し]

    Cache::Memcached::LibMemcached の非同期モードはありえないくらい速い。 先輩! 仕事で疲れた脳を休めようと、先ほどlibmemcachedが備えているno_blockをCache::Memcached::LibMemcachedからも設定できるようにしてみたんです。で、ベンチマークを取ってみたところ・・・ daisuke@beefcake Cache-Memcached-LibMemcached$ perl -Mblib tools/benchmark.pl ==== Benchmark "Simple set() (scalar)" ==== (warning: too few iterations for a reliable count) Rate perl_memcahed memcached_fast libmemcached libmemcac

  • Text::MeCab::Dictでカスタム辞書 - D-6 [相変わらず根無し]

    Text::MeCab::Dictでカスタム辞書 ちょっとリリースそのものでバタバタしてしまいましたが、Text::MeCabを使って、mecabのカスタム辞書に語句を比較的容易に追加できるようにしました。例はText::MeCab 0.20004に同梱されているeg/add_custom.plを参照してください。 自分の場合はちょっと人名をがばっと追加したかったのでAcme::Actor::JA(codereposのみ -- CPANにはアップしてません)とText::MeCab::Dictを使って3000人程の人名を追加してやりました。これをすると何がいいかというと、これまでだとものすごく有名な人の名前で検索する場合とかに「姓」「名」に名前が分けられてしまっていたところがその名前全体をひとつの語句として認識してくれるようになります。 # 追加前 shell > 堂光一 堂 名詞,

    oinume
    oinume 2008/01/14
    カスタム辞書の作り方のポインタ
  • 1