タグ

ブックマーク / blog.livedoor.jp/xaicron (22)

  • にひりずむ::しんぷる - 勝手に YAPC::NA 2013 に行ってきた!!

    6/3 ~ 6/5 にメインで開催された YAPC::NA 2013 に参加して来ました。特に JPA のなんたらではなく、会社のお金で行って来ました!! DeNA++ 日からは、@yusukebe と @tokuhirom と The Perl Foundation の President であるところの Karen が参加していました。 すでに @yusukebe と @tokuhirom がレポートを書いているので、パクかぶっているところもあるかと思いますが、ご容赦を! Future Perl - YAPC::NA 2013 に参加して - tokuhirom's blog. YAPC::NA 2013に行って来た - ゆーすけべー日記 開催場所 今回の YAPC::NA の開催場所は、アメリカはテキサス州にあるオースティン大学でした。日からだと、成田とかからサンフランシスコ o

    kamawada
    kamawada 2013/06/11
  • にひりずむ::しんぷる - 死んでほしくない人のための Sub::Retry

    Sub::Retry はクールでクレバーなモジュールなのですが、retry の条件が exception のみでちょっと悲しかったので、retry 条件をカスタマイズ出来るようにしてみました。すでに取り込まれて、0.03 としてリリースされています。 Sub-Retry-0.03 - FrePAN ユースケース としては、Cache::Memcached::Fast とかで set とか get に失敗したときに retry するとかが挙げられます。 第4引数に coderef を指定することで、retry 条件を変えられます。 retry したいときは、true を返し、そうでない場合は(つまり、成功した場合は)false を返すようにします。default は 以前の挙動と同じです。 coderef の引数は return value と同じなので、その結果如何で処理を切り替えることが

    kamawada
    kamawada 2013/04/08
  • にひりずむ::しんぷる - Hokkaido.pm #09 に行って来ました!

    報告が大変遅くなってしまいってすいません>< 去る 03/08 から 03/10 まで JPA (Japan Perl Association) の支援を受けて北海道に行って来ました。 以下が当日の資料に大幅に加筆修正を行ったものになります。 https://xaicron.github.io/slide/hokkaidopm-09/ じつは、北海道に行っている間はずっと風邪をひいていましたことをここに告白いたします。 が、そんなことはさておき、とにかく吹雪がすごくてなんというかテンションダダ上がりでござました。 飛行機が遅れてしまって、ホテルに着くのがだいぶ遅くなったんですが @techno_neko さんの寝坊好意により、タクシーで迎えに来てもらえることになり、無事に懇親会会場まで辿りつけました。 とりあえずついたらジンギスカンです。なにはともあれジンギスカン。そして地ビールがあるじゃ

    kamawada
    kamawada 2013/03/24
  • にひりずむ::しんぷる - JSONPath が便利でスクレイピングが捗る話

    JSONPath というのがあって、いわゆる XPath の JSON 版です。 仕様は以下 JSONPath - XPath for JSON XPath すべての機能が使えるわけではありませんが、巨大な JSON から目的の key を探す場合にはなかなか便利です。 たとえば、Dailymotion の JSON なんかはダンプすると 900行ぐらいあったりして、しかも超絶階層が深い。更にいうと配列が多くて、順番が変わる可能性も高い (というか実際に昔作ったスクリプトがうごかなくなっていた)。 そういう場合にサクッと指定してモリっと取ってきてくれると便利ですね。 例えば Dailymotion の動画のタイトルが欲しい場合は、JSONPath を使わないと以下のようになります。 my $title = $json->{sequence}[0]{layerList}[0]{sequenc

    kamawada
    kamawada 2013/01/21
    なにこれすごい
  • にひりずむ::しんぷる - Webサービスのつくり方、あるいは世界を変える方法

    著者のゆーすけべーさんから「Webサービスのつくり方」を献いただきました。ありがとうございます!! 「Webサービスのつくり方」は、Webサービスを作って公開し、運用するまでの幅広い内容がコンパクトにまとまった一冊。実際に、Webサービスを作ってそれでっている著者が、自分の哲学からノウハウを余すところ無く書いています。 対象読者としては、「Webサービスとか作ってみたいけど、なにから始めたらいいかわからんな〜」って感じの人でしょうか。技術書というわけではないので、「プログラミングの知識がほしい!」って人には刺さらないかと思います。とはいえ、コード自体は皆無ではないし、実際に動作するサンプルなので、動かしてみるのは面白いと思います。 さて、以下は自分的に印象に残ったところ 勉強会に是非参加しましょうよっていう話。勉強会って言うとなんか堅苦しいものを感じるかもしれませんが特にそういうもので

  • にひりずむ::しんぷる - Yokohama.pm #9 で LT してきました

    久々の Yokohama.pm でした。例によって会場についてから資料を書いていたのでだいぶアレゲですいませんでした>< 発表資料は以下になります。 http://xaicron.github.com/yokohamapm-09/ あんまり何に使うかよくわからなかったかもしれませんが、「token 自体に署名があって、かつ token 自体に構造化されたデータを埋め込めるのが便利よねー」ってところが良いというアレなのであります。 とりあえず、http://hdknr.github.com/docs/identity/index.html あたりに Spec がまとまっているのでこのへんを読むとよいかと思います。ドラフトなので変更される可能性が大いにありますが。 ちなみに、JSON::WebToken は github においてありますがまだまだαクォリティです。近いうちにちゃんとした奴にし

  • にひりずむ::しんぷる - Re: Sub::Rateと言うのを書いた

    Sub::Rateと言うのを書いた - unknownplace.org 別に Re でもないんですが、Data::WeightedRoundRobin とかいう謎モジュールで同じような事を実現すると、以下のような感じかな。 use strict; use warnings; use feature 'say'; use Data::WeightedRoundRobin; use Data::Dumper; my $dwr = Data::WeightedRoundRobin->new; $dwr->add(+{ weight => 0.1, value => sub { 'Super Rare' } }); $dwr->add(+{ weight => 3, value => sub { 'Rare' } }); $dwr->add(+{ weight => 96.9, value =>

    kamawada
    kamawada 2012/07/18
  • にひりずむ::しんぷる - blog のデザイン変更または canvas 入門

    HTML をいじるのはめんどかったので、CSS だけ変更した。いちいち blog の管理画面から CSS を適用してプレビューとかやってたら日が暮れるどころの騒ぎではないので、まず HTML をローカルに保存する。 $ wget http://blog.livedoor.jp/xaicron/ で、index.html とかが保存されるので、おもむろに </body> の直前に以下の JavaScript を書く。 <script type="text/javascript"> (function() { var i = 0; var css = "http://localhost:5000/style.css"; setInterval(function() { document.getElementsByTagName("link")[1].href = css+"?id="+i++

    kamawada
    kamawada 2012/06/02
    mac book欲しい!
  • にひりずむ::しんぷる - そういえば、WWW::Google::ClientLogin 書いた

    Perlから非公式Google Reader APIにアクセスする - ゆーすけべー日記 そういえば、ちょっと前に WWW::Google::ClientLogin っていうのを書いてました。 WWW::Google::Auth::ClientLogin っていうのもあったんですが、若干実装と戻り値とかがいけてないのと、もう一個作った WWW::Google::C2DM とインターフェースを揃えたい欲求があったので作った次第です。 ゆーすけべーさんのコードをこれを使って書きなおしてみると、以下のような感じになるます。 use strict; use warnings;use XML::Feed; use LWP::UserAgent; use WWW::Google::ClientLogin; my $email = 'my@emailaddress'; my $password = 'm

    kamawada
    kamawada 2012/02/15
    「あんまり変わってないですかね!」あれw
  • にひりずむ::しんぷる - Data::Dumper と Data::Dump の実行速度の違い

    Data::Dump はデフォルトでそれなりに整形して表示してくれるのと、コンテキストを見てよしなに処理を変えてくれるので、スクリプトのデバッグなどに使うのはまぁまぁ便利だったりします。 が、この子は PurePerl で実装されているので実行速度が結構遅いです。 どのくらい遅いかというと use strict; use warnings; use Benchmark qw(cmpthese :hireswallclock); use Data::Dump (); use Data::Dumper (); my $data = { foo => [qw/bar/], bar => { hoge => 'piyo', }, heavy => So::Heavy::Object->new(10), }; cmpthese -1, { 'Data::Dump' => sub { my $res

  • にひりずむ::しんぷる - Data::Encoder っていうのを書いた

    Yuji Shimada / Data-Encoder - search.cpan.org ネットワーク越しにデータを転送する場合、Storable や JSON や Data::MessagePack なんかを使うと思うのですが、いかんせん全部インターフェースが違います。 このあたりを共通のインターフェースで透過的に扱える、シンプルなモジュールが欲しくて書きました。 似たようなモジュールとして、Data::Serializer というのがあるんですが、ちょこっとコードがゴテっとしているのと、特に encrypt の機能はいらないなーという感じだったので、新しく書いた次第。 使い方は以下のようになります。 use Data::Encoder; my $encoder = Data::Encoder->load('JSON'); my $json = $encoder->encode([qw

    kamawada
    kamawada 2010/12/21
  • にひりずむ::しんぷる - WWW::YouTube::Donwload 0.20 release!!

    ラブプラスのクリスマスパーティのチケットに抽選漏れして、もう生きる気力がわかない xaicron です。こんにちは。これからはラブプラスをやってる奴もリア中扱いすることに決めました。 さて、数日前に唐突に WWW::YouTube::Download が動かなくなっていて、「なんじゃこりゃぁ!!」と思ってみてみたら、http://www.youtube.com/get_video が 404 を返すようになっていました。 これはオワタと思ったんですが、気を取り直して firebug とかでコンテンツをちらっとみてみたらなんか video っぽいのを普通に DL してる!って気付いたので、とりあえず、頑張って対応してみました。 今までと違って、api っぽいのを使っているのではなく、動画ページの HTML 内の JSON ぽい値を正規表現でぶっこ抜いて、そこからダウンロード URL を取って

  • にひりずむ::しんぷる - make test で Test::mysqld を永続化させる方法

    実際にどうやってんのかなーって話をあんまりしてなかったので。 まず、こんな感じのモジュールを t/lib/Test/MyApp/mysqld.pm とかで作って M::I::TestTarget の default_test_target() で `make test` を書き換えてやり、t/script/setup_mysqld.pl に とか書いてあげます。 それぞれのテストでは、Test::MyApp::mysqld->setup で mysqld を立ち上げるようにして置けば、 prove で個別にやった時は、それぞれ立ち上がる make test したときは、最初に立ち上げて、あとは使いまわす という感じになります。 ポイントとしては、 $ENV{TEST_MYSQLD} に Test::mysqld のデータ構造をそのまま JSON にして突っ込む Test::MyApp::m

  • にひりずむ::しんぷる - YAPC::Asia 2010 で発表してきた #yapcasia

    「Web API のすすめ」は割と概念的な話に終始していて、コードベースのもっとゴリっとした話を期待していた人には申し訳ありませんでした。 が、やはり既存の WAF を使っているだけだとわからないことっていうのが多いと思うので、もっと下のレイヤーに降りて、自分で実装するのもありなんじゃないのかなって思っています。 「let's database testing」では、割と見落とされがちなんじゃないかという、DB のテスト方法についてざっくばらんに話しました。ちょっと質的でないことも書いてありますが、重要なのは、「実際に運用される環境に*なるべく*近い環境で、ローカルでテストをする」ってことです。DB テストのほんの足がかりになれば幸いです。 BD テストの話で使ったサンプルのリポジトリは以下になっています。 xaicron's Mayoi at master - GitHub 結構中途半

  • にひりずむ::しんぷる - Yokohama.pm#6 x Perl Casual#3 で LT してきた

    ビデオ・オン・デマンドは(VODは略す)制御のための聴衆を容易にしたり、独自の選択とプログラムビデオクリップを決定インタラクティブTVシステムです。顧客が望むプログラムや、時計が表示されたときに決定することができるようにビデオレンタルなどのVOD使いやすさ、。選択科目は、映画のタイトル、テレビシリーズの可能なシリーズは、事実、ビデオストリーミングだけでなく、他のプログラムを示しています。ちょうどその観客は自由にプログラムを格納し、ダウンロードすることができ、見ていません。観客を見てのために既にダウンロードされているビデオのセットトップボックスを活用する、またはPC、携帯電話などを開いて、オーディオとビジュアルコンテンツを有効に電子通信機器の使用を行うことが可能です。いくつかは、支払・パー・ビューペイ・パー・ビューの様々なVODサービスを提供しています。

  • にひりずむ::しんぷる - .tpagerc が何気に便利

    TT をインストールすると、tpage というコマンドラインツールが付いてきます。こいつを使うと、コマンドから template を扱うことができて、あら便利ですね。 モジュールの雛形とかは下記のような感じで、 $ cat hoge.tt package [% module %]; use stict; use warnings; use 5.008001; our $VERSION = '0.01'; 1; __END__ =head1 NAME [% module %] - =head1 SYNOPSIS use [% module %]; =head1 DESCRIPTION [% module %] is =head1 AUTHOR [% author %] E<lt>[% email %]E<gt> =head1 SEE ALSO =head1 LICENSE This libr

    kamawada
    kamawada 2010/07/19
  • にひりずむ::しんぷる - Web+DB PRESS vol.56 に載りました

    4月24日発売の Web+DB PRESS vol.56 になんと、このブログのことが掲載されました!! が、特に家に届くということはなかったので自分で買いました>< 掲載されたのは、あの PerlCasual 主催の yusukebe こと 和田裕介 氏の「Twitter時代の技術者コミュニケーション術」という記事で、今時のギークな人たち(?)が使っている Web ツールなんかをいい感じに紹介されているので、一読の価値ありです。 ブログが掲載されたのも嬉しかったですが、yusukebe さんに 「Perl仲間」と書いていただけたのが光栄です。これからも精進したいとおもいます!! 今回の Web+DB は他にも、 はてなの id:naoya さん、 えとらぼの Yappo さん、そして我らが JPA の 牧さんの記事が載っているので、Perl やってる人は是非読んでみるといいと思います!(

    kamawada
    kamawada 2010/04/26
    hehe
  • にひりずむ::しんぷる - Perl Casual #02 にフレッシュマンとして参加してきた

    自分は今回は、あまりにもフレッシュマンだったので、後ろの席でじっと縮こまってましたが、ライブコーディングから、海外からの飛び入りLTまで、色々と内容の濃い勉強会でとっても楽しめました。国際色豊かなところも perlcasual のいいところですね。 そのうち、インド人とかもLTするようになるんじゃないかと思っています。 2次会ではなんだか高級感ただよう個室居酒屋なるところで、わいわいがやがややってて、普段見かけない人も一杯いたのでなかなかよかったと思います。 あと、気付いたら danさんにサインを貰っていました。 次回はどういう回になるか分かりませんが(実際に手を動かすタイプの勉強会とかもいいよね)、今のところ皆勤賞なので、なにかしら参加したいと思います。 yusukebe++

  • にひりずむ::しんぷる - yokohama.pm #5 で、cpanm について話してきました

    yokoahama.pm はYAPC2009前夜祭が初参加だったので、今回が2回目の参加になりました。 トップバッターだったのですが、電車が止まったり、道に迷ったりして、たどり着ける気が全くしなかったのですが、なんとかGPSを駆使して発表までには間に合いました。 今回は、Modern Commandline Tools と題して、昨今のコマンドラインツールについて話そうとおもってたんですが、なんか、いろいろと時間がなかったので、cpanm についてだけ話しました。 Demo が動かなかったのは、僕が exeport PERL_CPANM_DEV=1 していなかっただけなので、cpanm 悪くないよ!って言うことだけ言っておきます。

  • にひりずむ::しんぷる - 去年を振り返ってみる

    もう三ヶ日もとっくに過ぎているけど、今更ながらに、去年を振り返ってみる。 1月 うるう秒があった Win32::Unicodeを書き始める てってってーとか流行る 2月 JavaScriptをちょっと触る Twitterを始める 40℃ぐらいの熱がでる いまさらTTとかを触り始める 3月 WWW::Mechanizeデビュー githubデビュー しょこたんが今までどれくらいBlog記事を書いたのか気になった 中古のMacBookを購入し、Macデビュー 4月 WWW::YouTube::Download書いた さくらレンタルがバージョンアップして、ユーザー領域のCPANが動かなくなった Amazonの拡大画像を見れるようなブックマークレット書いた JPAセミナー行った Shibuya.pm#11に行った Javaやった 5月 Javaやった 会社が移転した 6月 Config::Pit