タグ

ブックマーク / charsbar.hatenadiary.org (21)

  • JSON::XS 4.0の変更点と、それにともなうJSON、JSON::PPの変更について - Charsbar::Note

    これはPerl Advent Calendar 2018 7日目の記事です。 tl;dr 先日リリースされたJSON::XS 4.0が2013年に行われたJSONの仕様変更に追随したので、decode_json($json) の結果はかならずしもリファレンスではなくなりました。encode_json($value) にもリファレンス以外の値を受け入れるようになっています。結果、JSONモジュールの挙動がバックエンドによって異なる状態になり、各地でテストがこけるなどの影響が出ました。これを受けてJSON、JSON::PP側も変更に追随しましたが、みなさまの方でも適宜ご対応をお願いします。 2018年11月16日付けでJSON::XSのバージョン4.0が出ました。3.0が出たのが2013年10月29日のことですから、5年振りの大型アップデートということになります。今回の目玉は二点。いずれもこの

    JSON::XS 4.0の変更点と、それにともなうJSON、JSON::PPの変更について - Charsbar::Note
  • London Perl Workshop 2016に行ってきた - Charsbar::Note

    tl;dr: It was really awesome (again)! A big thank you to the organisers and the speakers and everyone. YAPC::Hokkaidoの前週ということで悩ましくはあったのですが、もろもろありまして、2016年12月3日にロンドンで開催されたLondon Perl Workshopに行ってきました。資料はそのうち公開されていくと思いますが、ひとまず参加できたセッションの情報をごく簡単にまとめておきます。 Custom Keyword Plugins Paul Evans氏によるKeyword Plugin (Perl 5.12で導入)、Custom Op (Perl 5.14で導入)まわりの話。仕組みについて解説した後、Keyword::Boolean、Switch::Plain、Functi

    London Perl Workshop 2016に行ってきた - Charsbar::Note
  • MojoliciousとWebSocketとiTunesと - Charsbar::Note

    これはMojolicious Advent Calendar 24日目の記事です。 iTunesに英語教材などを放り込んでエンドレス再生していると、「ここにテキストが表示されていればいいのになあ」と思うことがあります。あるいは、洋楽を流しっぱなしにしているときに、ふと聞き取れなかった歌詞を確認したくなるとか。 もちろんその都度メモなりなんなりを開いてもいいのですが、いちいち該当のトラックに関係のあるファイルを探すのも面倒ですから、トラックが変わるたびに自動でテキストが表示されるようにしたいものです。GUIをごりごり書くのは面倒ですし、ターミナルに流し続けるのも見づらいですから、ここはテキストはブラウザに表示することにし、WebSocket経由で更新し続けるようにしてみましょう。 Windows環境では以下のようにWin32::OLEを利用することでiTunesからトラック情報を取得できます

    MojoliciousとWebSocketとiTunesと - Charsbar::Note
  • DBD::SQLite 1.37 - Charsbar::Note

    報告が遅くなりましたが、週末にDBD::SQLite 1.37をリリースし(てもらい)ました。1.35以降の大きな更新については過去記事やDBD::SQLiteのChangesファイルもあわせてご覧いただくとして、今回のリリースでは1.35で問題噴出していた型指定時の数値の処理が修正されていますので、これまで1.35を使っていた方はぜひ更新をお願いします。 http://d.hatena.ne.jp/charsbar/20120119/1326981740 http://d.hatena.ne.jp/charsbar/20120508/1336487730 なお、既報の通り、今回のバージョンアップでは過去のDBD::SQLiteとの互換性が一部失われます。万一2006年以前に構築されたシステムとデータベースファイルをやりとりする可能性がある場合は「PRAGMA legacy_file_fo

    DBD::SQLite 1.37 - Charsbar::Note
  • DBD::SQLite 1.30_02 - Charsbar::Note

    あと、先日リリースしたDBD::SQLite 1.30_02の変更点について。 DBD::SQLiteはこれまで DBIが用意した枠組みの範囲内でのトランザクションを利用している(AutoCommit/begin_work) fork()などを利用して並列性を高めている 読み書きを平行して行っている といった条件が重なったときにトランザクションがデッドロックすることがある、という問題を抱えていました。最小限の再現コードはこんな感じになります。 use strict; use warnings; use DBI; my $pid = fork(); if ($pid) { do_transaction(); } else { sleep 1; do_transaction(); exit; } unlink 'test.db'; sub do_transaction { my $dbh =

    DBD::SQLite 1.30_02 - Charsbar::Note
  • Mojo::DOMとWeb::Scraper - Charsbar::Note

    すごい適当だけど、手元のWin32マシン(XP @2.40GHz)でこんな感じ。WWW::Mixi::Scraperとか、Mojoliciousベースで書き換えてもいいかもなーとか思った(しないけど)。ちなみにテキスト抽出時の空白文字の扱いがMojo::DOMとWeb::Scraperで微妙に違うので、$test = 1にするとテストがひとつこけます。あと、抽出するものが単純なら正規表現やらなにやらでごりっと抜いた方が速いはず。 追記:Craftworksさんからブクマでご指摘いただいたように、Web::Scraper::LibXMLを使えば桁違いに速いですね。すっっかり忘れていました。LibXMLありなし版のベンチを同時にとるのは面倒だったので、::LibXMLに差し替えた場合の結果も追記しておきました。ありがとうございます。>Craftworksさん cf. http://www.pe

    Mojo::DOMとWeb::Scraper - Charsbar::Note
  • Perl QA Hachathon 2012に参加してきました - Charsbar::Note

    報告が遅くなりましたが、2012年3月30日から4月1日にかけて、パリのシテ科学産業博物館で開催されたPerl QA Hackathon 2012に参加してきました。今回のイベントでは渡航費から現地での宿泊費、会場での朝、昼、そして会期中の夕=懇親会の費用に至るまで、ありがたいことにすべてスポンサー様からの出資で賄っていただきました。収支の概要については以前からサイト上に公開されていますが、過去最大規模となったイベントを支えてくださった運営チームおよび企業・団体スポンサーの皆様(Cité des sciences & de l'industrie、Diabolocom、Dijkmat、DuckDuckGo、Dyn、Freeside Internet Services、Hedera Technology、Jaguar Network、Shadowcat Systems Limited、

    Perl QA Hachathon 2012に参加してきました - Charsbar::Note
  • 手元のPODを簡単・綺麗に見るひとつの方法 - Charsbar::Note

    ほかにもやり方はいろいろあるわけですが、カレントディレクトリにCPANモジュール風のディレクトリ構成をもった何かがあるとすると、コマンドラインから > cpanm Mojolicious Pod::Simple (必要なら) > mojo generate lite_app podviewer > perl podviewer daemonとタイプして、http://localhost:3000/perldoc/lib/Hoge のようなURLを見ると、http://mojolicio.us/perldoc 以下で使われているPODビューアを構文ハイライトやらなにやら込みで利用できます。 また、実際には@INCの中をチェックしているので、必要ならpodviewerを起動するときに-Ilibを追加するか、podviewerの中でuse lib "lib";のような行を追加してやると、http

    手元のPODを簡単・綺麗に見るひとつの方法 - Charsbar::Note
    wkbyshnbtk
    wkbyshnbtk 2012/01/18
    あー、このやり方は気づかなかった。MojoliciousのPodしか見てなかったなぁ。
  • CGI::Carpでド派手なデバッグスクリーンを表示させる(2) - Charsbar::Note

    前回のはいささか手抜きが過ぎたので、nekokakさんのCGI::Application::Plugin::DebugScreenを参考にちょろっとブラッシュアップ。いくらなんでもここや家のような緑系で画面つくるのはエラー画面っぽくないよなあということでCSSはほとんどnekokakさんの(ひいてはid:nipotanさんやid:tokuhiromさんの、ですね。失礼しました)パクリですが、地味なところでoverflow(これはKickstart my heartを見ていいなあと思ったもの)とか入れてあります。あとはデバッグモードかどうかで吐き出すエラー画面が異なるのが特徴といえば特徴。フラグひとつ変えればそのままプロダクション環境に移行……しちゃ当はまずいんですが、まあ、そういうこともできるようにということで。 今度は use CGI::Carp qw/fatalsToBroswer

    CGI::Carpでド派手なデバッグスクリーンを表示させる(2) - Charsbar::Note
  • モダンPerl連載第31回 - Charsbar::Note

    報告が遅くなりましたが、例によって私の遅筆のせいで一日遅れの公開になりました(ごめんなさい)。今回からは日語まわりの処理について。jperlネタが混じっていたことで疑問に思われた方もいるようですが、「jperl自体はサポート対象外」だけど「そこからこちら側に出てくるための道はサポートの範囲内」ということです。なお、文中にもさらっと書いておきましたが、encodingプラグマは原則非推奨となっています。今回のような簡単なスクリプトの移植をするときには便利に使えますが、それ以外の目的で使うとハマる原因になるのでご注意をば。 http://gihyo.jp/dev/serial/01/modern-perl/0031 もう少し品のない話をしますと、今回の記事を書く直接のきっかけとなったのは、さる方に「that whole dist makes my brain hurt.」と言わしめた一連の

    モダンPerl連載第31回 - Charsbar::Note
    wkbyshnbtk
    wkbyshnbtk 2010/05/19
    隠されると知りたくなる。問題のモジュールってこれかな?http://search.cpan.org/dist/Sjis/
  • Pod::PerldocJp - Charsbar::Note

    Perlのドキュメントはわざわざサーバにアクセスして読むものではなく、インストールして読むものですよね?――というわけで、日人向けに特化したperldocをつくってみました。Pod::PerldocJpをインストールすると、perldocjpというコマンドが利用できるようになります。これを使うと、 =encodingが指定されている(たいていは日語の)PODも(端末の文字コードによらず)正しく表示できるようになります。 perlコアに付属している一部のドキュメントについてはperldoc.jpで公開されている日語のPODをダウンロードしてきてローカルで読めるようになります。 fによるコマンド検索などにも対応していますので、コマンドラインから $ perldocjp -Jf printとタイプすれば、日語でprintコマンドの説明が読めるようになります(perlfuncを訳してくださ

    Pod::PerldocJp - Charsbar::Note
  • 海外のPerlerの情報は - Charsbar::Note

    とりあえずmiyagawaさんのブクマ(あるいはmiyagawaさんのお気に入り)を追いかけておくのが適度にフィルタがかかって便利なわけですが、それでは物足りないという熱心な人にいくつかのポインタを紹介してみる。 初級編 http://use.perl.org/ http://www.perlmonks.org/ http://perlbuzz.com/ ちなみにタイトルとリンクだけでよければPlaggerでとってきたものをhttp://twitter.com/perlnews(とirc.perl.orgの#news)に放流してます。 中級編 http://www.nntp.perl.org/group/ http://london.pm.org/pipermail/london.pm/ さらに海外Perlerを追いかけたければブログよりMLを見た方がいいと思います。nntp.perl.

    海外のPerlerの情報は - Charsbar::Note
  • DBD::SQLite 1.26_04 - Charsbar::Note

    開発版だからというのもあって最近あまりここに書いていませんでしたが、1.25以降も細々とした修正や機能追加が行われています。細かなところでいくつか非互換な修正も入っているので、DBD::SQLiteを使ったアプリやモジュールをお持ちの方はテストしてみていただけると助かります。 大きめの変更としては、 1) 1.26_04でエラーを吐くタイミングを少し変えました。これでnot an errorは出づらくなったはずですが、カラムのユニーク制約違反などの場合は複数のエラーを同時に吐くことがあります。 2) column_info、primary_key_info、table_infoなどの返り値が変わっています。この辺の情報に依存したモジュールは挙動が変わっている可能性があるのでご注意ください。なお、この辺の情報取得まわりのメソッド/プロパティは近い将来もう少し変わる可能性があります。 3) ト

    DBD::SQLite 1.26_04 - Charsbar::Note
  • モダンPerl連載第5回 - Charsbar::Note

    今回はPerlのドキュメントまわりの話(つうか、perldocについて)を簡単にまとめてみました。市場やネット上に落ちてるドキュメントは玉石混淆ですから、うかつにググるくらいならCPANからたどれる由緒ただしいドキュメントを読んでくださいませ、という話。 http://gihyo.jp/dev/serial/01/modern-perl/0005

    モダンPerl連載第5回 - Charsbar::Note
    wkbyshnbtk
    wkbyshnbtk 2009/04/20
    超要約。ドキュメントの考え方としては正解だとは思うのだけど。
  • Test::Classy 0.07 - Charsbar::Note

    tokuhiromさんが嘆いておられたので日語対応してみました。utf8プラグマの有無でどうするかを決めるというかなり横着な実装ですが、こんな感じのテストモジュール(t/lib/MyApp/Test/Basic.pm)を書いて、 package MyApp::Test::Basic; use strict; use warnings; use utf8; use Test::Classy::Base; sub 日語 : Test { my $class = shift; ok 1, $class->message('日語も通るようになったよ'); } 1;こんなテスト(t/test.t)を用意すると、 use strict; use warnings; use lib 't/lib'; use Test::Classy; load_tests_from 'MyApp::Test';

    Test::Classy 0.07 - Charsbar::Note
  • DBD::SQLite 1.20 - Charsbar::Note

    長らくバグが放置されたままだったDBD::SQLiteですが、先日AliasことAdam Kennedyがメンテナを引き継いだのを受けて、いま何人かのCPAN Authorsが集まってごりごり直しています。tokuhiromさんのところでパッチが紹介されていたもののように、有名どころのバグはあらかた潰し終わって、これからSQLiteのソースをamalgamationに変えたり、unicodeまわりのバグを直したり、という作業が行われる予定なのですが、とりあえず一区切りということで、正式版の1.20が出ています。 Class::DBI、Jifty::DBI、Rose::DB、Data::ObjectDriverなどをお使いの方は、ぜひアップデートしてみてください(以上のものは、私のところで全部テストが通ることを確認済みです。ほかにテストしておいてほしいものがあったらご一報をば)。 追記:DO

    DBD::SQLite 1.20 - Charsbar::Note
  • On Module::New - Charsbar::Note

    昨日のSoozy Con4で発表したスライド。Text::Hatenaで加工していたのでここに(ほとんど)そのまま貼り付けておきます。 2008/01/31追記: 最新版はこちらから。近日中にアップの予定はありますが、まだCPANにはあがっていません。 http://svn.coderepos.org/share/lang/perl/Module-New/trunk Soozy Conf #4 Jan. 27, 2008 Kenichi Ishigaki (charsbar) はじめに 今日は日語オンリー Win32::IE::SlideShowとCharsbotというIRCボットでプレゼン動かします Module::Newとは? こんなの。 11:44 <t********> o 11:45 <t********> なんか妙なのが。 11:45 <t********> pmsetup

    On Module::New - Charsbar::Note
  • メソッドチェーンの話の続き - Charsbar::Note

    ぐだぐだ言う前に認定試験でも受けるつもりでMojoのコードを制限時間二時間くらいで通読してみれば自然と言いたいことがわかるようになるんじゃないかと思いつつ。 前回のサンプルの my $loader = Loader->new; my $book = $loader->load( 'Book' )->buildこのコード。 どのように書いてほしいかというと、 my $loader = Loader->new; $loader->load( 'Book' ); my $book = $loader->buildと書いてほしいです。 こう書けば、loadが何をしているのかが、コードから推測できます。buildが$loaderから呼ばれたことがコードを読んでわかります。 http://d.hatena.ne.jp/perlcodesample/20090219/1233929050 文脈にもよるけ

    メソッドチェーンの話の続き - Charsbar::Note
    wkbyshnbtk
    wkbyshnbtk 2009/02/07
    「みんな忙しいんだから、なるべく時間をかけずに読みたいんですよ。」
  • Test::PodとTest::Pod::Coverage - Charsbar::Note

    でもって、Tie::Slurp::Cachedと、CGI::Carp::DebugScreen (v0.12)にそれぞれPodとPod::Coverageのテストを追加。中身はこんなの。 t/pod.t use Test::More; eval "use Test::Pod 1.18"; plan skip_all => 'Test::Pod 1.18 required' if $@; plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD}; all_pod_files_ok(); t/pod-coverage.t use Test::More; eval "use Test::Pod::Coverage 1.04"; plan skip_all => 'Test::Pod::Coverage 1.

    Test::PodとTest::Pod::Coverage - Charsbar::Note
    wkbyshnbtk
    wkbyshnbtk 2009/01/04
    テストの基本1,2
  • Windows上でCPANモジュールを書いていた人は要注意 - Charsbar::Note

    詳細については下記メーリングリストのスレッドを追っていただくとして、問題の概要と、当面の解決策となりそうなことのみ書いておきますと、 http://www.nntp.perl.org/group/perl.qa/2008/09/msg11568.html 1) 通常Windows上でnmake distしてtarballをつくると、EUMM(というか、ExtUtils::Manifest)内部で(Perlの)chmod処理が入っているにもかかわらず、各ファイルのパーミッションは777になります。 2) これをCPAN(正確にはスモーカー)からインストールしようとすると、特定の環境ではworld-writableなファイルがあるということでセキュリティアラートを出す――らしいのですね。 3) それが現実的なセキュリティホールにつながるかどうかはまったくの別問題として、その状況を憂慮したPAU

    Windows上でCPANモジュールを書いていた人は要注意 - Charsbar::Note