YAPC::Fukuoka 2017 HAKATA
plenv + carton でテスト時に -Mlib::core::only 指定してデプロイ時に module 足りんよ...とかって突っ返されないようにしてるけど、この3者間の PATH 調整がいろいろと面倒。 carton をバージョンアップしたら -Ilib オプションが deprecated されててまた迷子になった...Orz。 起動順とかオプションで整合性を合わせられるかと思ったけど、結局のところ、 --exec "plenv exec perl -Mlib::core::only -Mlib=lib -Mlib=local/lib/perl5" -Pretty --merge --failures --verbose --recurse -w のような lib::core::only を全面にした .proverc に落ち着いた。 ちなみに、試したバージョンは以下の通り。
Perl5 の場合、Data::DPath をつかえば、 my $data = { foo => { bar => 'candy', }, }; のようなデータから、 say dpath('/foo/bar')->match($hashref); などとして、candy を簡単にとりだすことができます。 しかし、ここで、たとえば以下のように複雑なデータになってしまった場合は、DPath をつくるのがまじめんどいかんじになります。 my $data = { foo => { bar => 'candy', boz => 3, iyan => { bakan => 7, yappo => 'candy', dan => [ 'suspender', 'hige', 'candy'] }, }, }; そんな場合、以下のようなコードをささっと書いてcandyをさがしましょう。 #!/usr/bi
あだ名の多さは人気の証明? POEという名前にはあきれるほど多くの寓意がこじつけられています。もともとはPerl Object Environment「Perlのオブジェクト環境」の頭文字を並べたものですが、POEの公式サイトを見てみると、Edgar Allan POE「エドガー・アラン・ポー」に始まり(そう、POEは「ポエ」ではなく「ポー」(ないし「ポゥ」)と読みます)、Parallel Object Executor「オブジェクトの並列処理機」、Pathetically Over-Engineered「涙がちょちょ切れるほど作り込みすぎた」、Perl Obfuscation Engine「Perl難読化エンジン」、Perl Objects for Events「イベント用Perlオブジェクト」、Persistent Object Environment「永続オ
宣伝と注意書き このサイトが元になったCPANモジュールガイドという本を書きました。 本書でもとりあげています。 このページでは解説していない内容として、scraper { }を入れ子にするやり方も扱いました。scraperコマンドについては本書では割愛しました。 2007-12-29 use Web::Scraper; 年の瀬にさりげなく再開。 久しぶりということでネタはたくさんあるのですが、ぱっとすぐ思いつくおススメ Web::Scraper を紹介。これはその名のとおり、ウェブのスクレイピング(HTML のある部分を抽出)用のモジュールです。半年くらい前に生まれた新しいモジュールでありながら、すでにこの分野でメジャー感がある miyagawa プロダクトです。 API が用意されているサイトの情報は普通に API で取ればよいですが、世の中そうばかりでもないわけで、HTML を文字列
Perlではじめるテキストマイニング - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? ■前置き みなさんこんにちは。ダウンロードたけし(寅年)です。来年は年男なので今からお正月が待ち遠しい35歳2児の父です。 ここ数年、web広告業界ではコンテキスト解析とかユーザの行動分析とか、いわゆるデータマイニング/テキストマイニング系の話題が花盛りです。 自分もそんな業界に属しているんですが、ふと気がつくと日本語のテキストマイニング系モジュールを量産してしまっているので、ここらでいくつか紹介してみたいと思います。 今回はインターネットからブログなどのコンテンツを取得して、それを意味解析してクラスタリングする、といったようなことを題材にモジュールの紹介をしてみます。 ■HTML::Featureで本文抽出 まずは
名称 Algorithm::NaiveBayes - ナイーブベイズアルゴリズム 概要 use Algorithm::NaiveBayes; my $nb = Algorithm::NaiveBayes->new; $nb->add_instance (attributes => {foo => 1, bar => 1, baz => 3}, label => 'sports'); $nb->add_instance (attributes => {foo => 2, blurp => 1}, label => ['sports', 'finance']); # ... いくつかのインスタンスに対して繰り返した後 $nb->train; # 未表示のインスタンスに対する結果を探索 my $result = $nb->predict (attributes => {bar => 3, blu
2ch系まとめサイトのアンテナ?的な新着サイトは結構あるんですが、勉強もかねてAlgorithm::NaiveBayesでベイズ使ってカテゴライズしてみたメモ。 Algorithm::NaiveBayes http://search.cpan.org/~kwilliams/Algorithm-NaiveBayes-0.04/lib/Algorithm/NaiveBayes.pm 目標 はてぶみたいに自動でカテゴリ分けしたい 参考に・・ 新はてなブックマークでも使われてるComplement Naive Bayesを解説するよhttp://d.hatena.ne.jp/tkng/20081217/1229475900上のサイトをみるとはてなではComplement Naive Bayesがつかわれてるっぽいです。 ここではAlgorithm::NaiveBayes 単純ベイズを使いました。
第三回 ISUCONの本選に、参加しました。予選から引き続き、@kazeburoさん、@tagomorisさんとの「LINE選抜チーム」。 #isucon 2013予選に参加した - すぎゃーんメモ 第三回 #isucon 本選リアルタイムフォトレポート【更新終了】 : ISUCON公式Blog 結果はなんと、優勝!! おや、優勝2回目だ。→第1回のとき タイムライン 予選のとき同様に、自分の手元にある記録と記憶を辿ってどんな雰囲気だったか書き残してみます。間違っていたらゴメンナサイ。 使用言語はPerlです。 〜10:00 出社…じゃなくて会場入り。ちゃんと前日に早寝したので寝坊せずに済みました。 〜11:00 開会待ち。早くきすぎた、でも他の参加者さんたちも早くからしっかり集まってる。 ルール説明。ストーリー仕立てで緊張感が走る。画像系サービスか〜。 11:00〜 開始。用意されたのは
Perlの単体テスト、特にMockObjectを使ったテストについての情報が少ない気がするのでまとめてみる。 前提 モジュールは、CPAN形式であると前提。雛形は、Module::Starterで作成すると良い。 テストは、Test::Perl::Criticを入れる。 インストール $ sudo cpan Module::Starter $ sudo cpan Module::Starter::PBP $ sudo cpan Test::Perl::Critic 初期セットアップ $ perl -MModule::Starter::PBP=setup モジュールの作成 $ module-starter --module=Ysm::Example $ cd Ysm-Example $ ls Build.PL Changes MANIFEST Makefile.PL README ignor
特に、Plack アプリに限定する話でもない部分は多々ありますが、Plack アプリを Devel::NYTProf でプロファイリングする方法について。 シングルプロセスの場合 plackup -MDevel::NYTProf 開発環境で plackup する場合など、シングルプロセスで起動する Plack アプリでプロファイルを取得するには、以下のように実行します。 NYTPROF="sigexit=int" plackup -MDevel::NYTProf -e 'sub { [200, [], ["ok $$"]] }' 通常なら、-d:NYTProf とするところを、-MDevel::NYTProf としていますが、動作は同じです。 環境変数 NYTPROF に設定している sigexit=int は、ワンライナーの実行を Ctrl + C で止めたときに、profiling を
2013-05-14 Server::Starter、Starman、Starletを使ったオレオレ運用方法 インターネットからリクエストを直接受け付けるのはApacheやnginxで、そこからリバースプロキシでPSGIアプリを使ってレスポンスを返しているというケースを想定して書いてます。 やり方は色々とあるんだろうけれど、apachectlライクにstart,stop,restartでお手軽に運用したいのでstart_serverスクリプト(Server::Starter)をラッピングしたものを書きました。 使い方は下記の通りです。 usage: /path/to/script/appctl --stage=[development|production] [--start|--stop|--restart] githubのソースはこちらで、以下はappctlスクリプトのソースです。ログ
Monoceros というPSGI/Plackサーバ書きました https://metacpan.org/release/Monoceros https://github.com/kazeburo/Monoceros StarmanやStarletのようなPreforkなアプリケーションサーバでは、コネクションの維持イコールプロセスの占有なので、HTTPのKeepAliveは無効にするのが一般的ですが、負荷の高いサービスではTIME_WAIT状態のソケットが溜まったり、SYN-ACKの再送問題などあり、KeepAliveを使いたいという欲求があったりなかったりします。 Monoceros はリクエストを処理するworkerの他に、イベントドリブンで動くコネクション管理プロセスを立てて、クライアントからの接続ソケットをunix domain socketを使いプロセス間でやりとりします。待機
GitHubはオープンソース開発者にとって便利なサービスですが、ビジネス用途においてはセキュリティ上の要件が通らないと言ったケースもあるでしょう。そこで使ってみたいのがGitHubクローンです。今回はPerl製のGitPrepを紹介します。 こちらはデモサイトです。まずユーザ一覧があります。 ユーザの下にリポジトリがあります。 リポジトリの詳細です。ファイルブラウザと、READMEの内容表示がされています。 ファイルブラウザはリンクをたどる事ができます。 タグやブランチの一覧を見られます。 コミットの一覧。 もちろん差分をグラフィカルに確認できます。 ネットワークもサポート。 GitPrepは一つ前のGitHubのデザインそのままと言えます。ソースコードを確認したり、コミットを見たり、差分をチェックする事ができます。これだけできれば開発用途で使うには十分ではないでしょうか。 MOONGIF
Perl歴、webエンジニア歴、共に1年未満の俺が、何かしらのWebサービスを作ろうとしたときのパターン。 個人的なメモのつもりが長文になってしまった... で、なにこれ? ゆーすけべーさんのMojoliciousのチュートリアルのエントリを見て、 俺も似たような感じのものを作ってみようかな、ってのがモチベーション。 全く同じのもアレだし、MojoX::JSON::RPC::Service を利用して、 単にデータ出し入れできるようにしてみたチラシの裏です。 結果としてだけど、Nopaste 全然関係ないです 今回はperlだけで、js側 のコードはありません。そのうち追記できたら ソースコード https://github.com/luckypool/mojo_skinny 動作例 # create $ curl -X POST http://localhost:3000/jsonrpc
はじめに このチュートリアルでは Advent Calendar の形式を借りて24日間にわたって Ark をつかったウェブアプリケーションの開発方法について説明します。 各章は約1時間ほどで終わる程度であり、実際のWebサイトを最初から最後までコーディングすることで Ark を学習します。 1日1時間24日で合計1日になります。これは Ark の基本を学ぶために必要な時間であると私たちは考えています。毎日、新しい機能がアプリケーションに追加され、Ark の Web 開発のベストプラクティスと同時に新しい機能を紹介するためにこの開発プロセスを利用します。 24日間で作成するアプリケーションの名前は Jobeet です。これは PHP のフレームワークである symfony のチュートリアルと同じです。このチュートリアルでは同じアプリケーションを Ark を使用して作成していきます。 Why
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く