タグ

ブックマーク / blog.64p.org (77)

  • Future Perl - YAPC::NA 2013 に参加して - tokuhirom's blog

    YAPC::NA 2013 に参加してきました。その中でも印象にのこったことを取り急 ぎアップしておきます。 今回は日からは @yusukebe と @xaicron と TPF の President である Karen が参加していたようです。 僕は今回がはじめての US だったので、いろいろと困惑することもありました が、旅行記などには興味がないという人も多いでしょうし、書くのがめんどく さいですし、たぶん xaicron が書くと、ほとんど内容がかぶるので割愛させ ていただきます。 デニーズのシェイクに興奮する yusukebe と xaicron エントリーでは YAPC::NA で僕が感じたこと、技術的に Perl Community が どこに向いているか、といったあたりのことについて述べていきたいとおもい ます。 今年は Perl 25 周年ですので、これまでの Per

    markup
    markup 2013/06/08
  • carton + 開発版の cpanm で、特定のバージョンのモジュールをつかいこなす! - tokuhirom's blog

    開発版の cpanm で、META file の version range がサポートされるようになりました。 CPAN の META spec v2.0 では、version range がサポートされていて、以下のような柔軟な指定が可能となっています。 Some fields (prereq, optional_features) indicate the particular version(s) of some other module that may be required as a prerequisite. This section details the Version Range type used to provide this information. The simplest format for a Version Range is just the vers

    markup
    markup 2013/02/03
  • なんてこった…CPANモジュールをnode.jsで動かしてしまうライブラリ「node-perl」 - tokuhirom's blog

    https://github.com/tokuhirom/node-perl/ ここ最近、プログラミング言語同士の壁が徐々に破壊されている気がします。あるプログラミング言語上で別なプログラミング言語を動くようにしたり、置き換えてしまったりするような類です。今回はその一つ、CPAN moduleをnode.js上で動かすという、かなり無茶な気がしなくもない、そんなソフトウェアnode-perlを紹介します。 var Perl = require('../index.js').Perl; var perl = new Perl(); perl.use('LWP::UserAgent'); var ua = perl.getClass('LWP::UserAgent').new(); var res = ua.get('http://mixi.jp/'); console.log(res.as_

    markup
    markup 2012/08/28
  • 最速な JavaScript のリファレンスマニュアルサイトをつくった - tokuhirom's blog

    JavaScript のリファレンスマニュアルといえば MDN(Mozilla Developers Network) が有名ですが、MDN の資料は探索がめんどくさいし、表示が遅いということで使い勝手がわるいという問題がありました。 そこで、jQuery のリファレンスマニュアルサイトとして有名な jqapi.com とおなじよような使い勝手のサイトがあったらいいのになーとおもいました。 なので、つくりました。 サイト自体はすべて static なデータで構成されているので、github からデータを取得すれば、イントラや自分のマシン内で閲覧することも可能となっています。 なお IE での動作確認はしていないので、うまくうごかない場合は pull-req してください。

    markup
    markup 2012/01/14
  • Time::Piece とstrptimeの甘い罠 - tokuhirom's blog

    my $time = Time::Piece->strptime('2011-11-30T18:19', '%Y-%m-%dT%H:%M:%SZ')->epoch;みたいなコードをかいたら、なんか FATAL Error になるよ! みたいなことをいわれたので、なんでやねん! みたいなことをおもったりしたわけですが、 https://metacpan.org/source/MSERGEANT/Time-Piece-1.20/Changes これによると 1.17 - Force all to use internal strptime then everyone gets %z even OSX users. - Finally figured out the timezone test failures on Win32 and fixed them.とかいてあって、要は strptim

    markup
    markup 2011/12/01
  • Amon2 の最近の変更(3.22〜3.25) - tokuhirom's blog

    Amon2::Lite が別 dist に分離されました(Amon2::Lite をつかっているアプリでは Amon2::Lite への依存を明示的に記述するようにしてください)各種依存がすくなくなりましたXslate でつかう bridge のデフォルトが Star になりました。 Star がつかいにくかったりする場合のご要望は #xslate までPragma: no-cache; Cache-Control: no-cache をデフォルトにしていましたが、なにかと問題があるので Cache-Control: private をデフォルトにしましたcarton をつかう人がふえてくるだろうという予測のもと、依存をへらす変更をしています。Amon2::Lite が別 dist になったのが唯一の非互換な変更かとおもいます。Any::Moose のからみで Moose をインストールし

    markup
    markup 2011/11/14
  • Catalyst が Plack に依存した - tokuhirom's blog

    Catalyst 5.90001 がでまして、こちらのバージョンは Plack に依存しております。これは非常に PSGI プロジェクトにおいてはひとつの節目となるリリースといえましょう。HTTP::Engine が最初にリリースされてから3年、みんなよくがんばった!感動した!(3年前(たぶん)のジョーク(10年前のテキストサイト風)) そういうわけですが、私としてはぜんぜん Catalyst の使用はおすすめしませんで、Amon2 つかうのがオススメですね!

    markup
    markup 2011/08/16
  • Fukuoka.pm #19 に参加してきました - tokuhirom's blog

    http://atnd.org/events/16157 JPAさんの支援をうけまして、dotcloud 的なかんじでウェブアプリをデプロイするための環境を構築する方法についての発表をしてみました。 当日の発表資料はこちらになります。 http://tokuhirom.github.com/talks/20110611-fukuokapm-dotcloud/#0 他の方の発表などは各種ブログをご覧いただくとして、僕が感じたことについて書いておきます。 Fukuoka.pm では、Shibuya.pm ではやらないワークショップなどもあって、形態がちがくて面白いなーとおもいました。 (というか perl-casual とかでワークショップとかやればいいとおもった) あと地方PM大集合みたいな企画もいいんだけど、出張Fukuoka.pmとかやったらいいんじゃないかみたいなことをいってみたりしま

    markup
    markup 2011/06/17
  • Perl5 works on browser! - tokuhirom's blog

    I hacked jslinux, so I injected Perl5 binary to jslinux!! You can run Perl5 on browser!!!!!!!!!!!!!!!!!!!!!11111 Modify root.bin with CocProxyThis is a note for hacking jslinux. Very easy. https://gist.github.com/978211 use microperl;Perl5 provides micro version of perl. I used it. You should modify the Makefile.micro file for static linking, change the following line. -LIBS = -lm +LIBS = -lm -sta

    markup
    markup 2011/05/23
  • dotcloud で Amon2 をつかう! - tokuhirom's blog

    Perl5 の PSGI アプリケーションが死ぬほど簡単につかえる dotcloud の beta 版がリリースされ、一部の Perl monger に invitation がばらまかれているとともに、id:miyagawa さんがdotcloud に join したというニュースもあり、ゴールデンウィークまっただなかの日Perl Mongers のあいだでは空前のコンフィブームとなっています。 というわけで、DotCloud で hello world をやる方法。 sudo easy_install dotcloud dotcloud create tokuhirom dotcloud deploy --type perl tokuhirom.hello mkdir hello cd hello echo "sub {[ 200, [ 'Content-Type' => 'te

    markup
    markup 2011/05/02
  • Perl のモジュールローダー選定委員会 - tokuhirom's blog

    UNIVERSAL::require$module->require() or die $@ ってかけるのが cool という話ではあるのだが、UNIVERSAL をつかうのに抵抗があるかもしれない。 そして、Module::Load にたいする優位性はとくにないので、最近はあまりつかってない。 Class::Load上記2つにくらべると、機能がおおい。これは Moose から派生したパッケージで、Moose の is_class_loaded 相当の機能もそなえている。 Moose 由来ということで、%INC の中にはいっていなくても、package がすでにつかわれていれば、ファイルをよみにいかないという点がすぐれている。具体的には package Foo; sub bar { } package main; use Class::Load qw/load_class/; load_c

    markup
    markup 2011/02/02
  • Perl で拡張可能なモジュールをかくときに s/^\+// ? $_ : __PACKAGE__ . '::Plugin::$_' とした方がいい理由 - tokuhirom's blog

    Data::Validator のコードの中にこんなのがあった。 sub with { my($self, @roles) = @_; foreach my $role(@roles) { next if ref $role; $role = Mouse::Util::load_first_existing_class( __PACKAGE__ . '::Role::' . $role, $role, ); } Mouse::Util::apply_all_roles($self, @roles); return $self; } この場合、やはり s/^\+// ? $_ : __PACKAGE__ . '::Plugin::$_' のイディオムをつかった方が問題がすくないようにおもう。たとえば、Data::Validator::Role::JSON っていう拡張があったとしよう(実際に

    markup
    markup 2010/12/10
  • perl5i について - tokuhirom's blog

    最近、ことあるごとに perl5i がヨイヨーといっている。 perl5i は、perl5 + i ということなのであって、perl6 にたいする洒落なのであって、かつこの i とはいうまでもなく sqrt(-1) のことである。 perl5 は、CPAN にあがっているモジュール郡を利用することにより非常に協力な言語となっているが、一方で初心者はモジュールの選定などがまずもってむずかしいという難点があり、「電池はいってます」という正直意味がわかりづらくて日語の標語としてはいかがなものかとおもうような標語をかかげる言語にくらべて初心者がとっつきづらいという問題がある。 そこで、perl5i では、perl5i のメンテナがえらんだモジュールが自動的にロードされるような仕組みを提供しているため、非常にとっつきやすくなっている。 use perl5i::2; とかくだけで、かなりいろいろなモ

    markup
    markup 2010/08/16
  • TokuLog 改めB日記

    HTML の pre を折り返したい HTML の pre 要素を利用して表示させているときに、通常は長い行があっても折り返されない。 折り返したい場合は以下のようにする。 .wrap { white-space: pre-wrap; word-wrap: break-word; } gradle の detekt と detektMain の違い ./gradlew detekt では一件も検出されないが、detektMain だと検出されまくるという時がある。 一般的な checkstyle などのプラグインではcheckstyleMain は checkstyle をメインソースセットに対してだけ実行するという意味なので、checkstyleMain と checkstyleTest を足したものにだいたい等しいのだが、detekt の場合は違う。 detektMain/detekt

    markup
    markup 2010/07/17
  • モダンな Perl の開発環境の構築方法 - tokuhirom's blog

    一般的な OSX 環境および Linux 環境における、モダンな Perl 開発環境の構築方法についてまとめてみたよ。 perlbrew のインストールperlbrew をつかうことにより、簡単に最新版の Perl5 を利用することができるようになる。 perlbrew をいれる。% curl -L http://xrl.us/perlbrew | perl - install % ~/perl5/perlbrew/bin/perlbrew init ~/.bashrc (または ~/.zshrc)に source ~/perl5/perlbrew/etc/bashrc を追記。あたらしいシェルをたちあげる。最新版の perl をインストールする。% perlbrew install perl-5.12.1 % perlbrew switch perl-5.12.1 ここまできたら、she

    markup
    markup 2010/07/17
  • mac ports やめました! ー homebrew で快適 OSX 生活! - tokuhirom's blog

    http://mxcl.github.com/homebrew/ 昨日 mac mini を購入しまして、「さて、mac ports いれなきゃなあ。でも mac ports での環境構築って時間かかるし、CPU パワーもくうし、電気代かかるしエコじゃないし」とかおもっていたところ、そういえば hsbt さんが homebrew ってのをオススメしてたなーとおもって、いれてみたところ、非常に快適。 mac ports は、システムにもともとはいっている perl とか ruby とかもいちいちコンパイルするので、序盤の環境構築が非常に時間がかかるのが難点です。 しかし homebrew は、system にもともとはいっているものはそのままつかうので、初動がはやい。自分の場合、macbook の調子がわるくって、mac mini にかいかえたので、すぐにでもつかいはじめたかったので、非常に

    markup
    markup 2010/06/28
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    markup
    markup 2010/04/23
  • perl5 でファンクションプロトタイプをつかっちゃいけない理由と使われる理由。 - tokuhirom's blog

    Damian Conway の Perl Best Practice は関数プロトタイプを非推奨扱いにしているが、一方で巷の Perl Hackers はこれを使いまくっている。このような状況が初心者を混乱させているのではないかと思い、解説することにした。 function prototype を Damian Conway の Perl Best Practice が非推奨扱いにしている理由は以下のような点だ。 Prototypes do not work on methods. Prototypes do not work on function references. Calling a function with a leading & (&foo) disables prototypes. But you shouldn't be calling functions like t

    markup
    markup 2010/03/23
  • リアルタイムWebのためのPubSubHubbub の Subscriber を構築する方法 - tokuhirom's blog

    PubSubHubbub(以下PuSH)は、フィードの更新をリアルタイムに通知するためのプロトコルである。 ウェブ上にころがっている"PuSH"の情報は、"Pub" の部分を実装する方法か、「PubSubHubbub の家GAE実装を手元でうごかしてみたよ」という記事しかなくて、"Sub"を実装する方法について解説しているブログなどはみあたらなかったので、ここに記す(英語だといくつかあった)。 基的に、ほとんどの人が興味あるのは "Pub" の部分である。自分のブログの更新情報等をリアルタイムにおくりつけたいと考えるからである。実際、ほとんどのブログソフトウェアではすでに PuSH 対応がすんでいる。see MT-PuSH, etc. しかし、私は今まさに Subscriber をつくりたいとおもったのである。なぜならば、"friendfeed.com/cpan" の更新情報を PuS

    markup
    markup 2010/03/07
  • cpan-outdatedを使うとメモリ制限のきついレンタルサーバーでもCPANモジュールが楽に更新できる - tokuhirom's blog

    http://search.cpan.org/dist/App-cpanoutdated/ 個人サイトで借りてる貸しサーバーはシェルが使えるんだけどroot権限が無く各種メモリの制限も強い。で、CPANコマンドを使うとlimit制限にひっかかってmoduleindexを伸張するところでOut of memoryエラーが出て落っこちちゃうという状態なんだけど。 今までは仕方がないからtar.gzでモジュールソースをもってきてperl Makefile.PL && make && make installと古典的な手段で入れていた。 しかし cpan-outdated を使うことでcpan使わずに楽に更新できるようになった。 cpan-outdated | xargs cpanmで古いモジュールがすべて一発更新される。 依存モジュールなどすべて排除し、perl5.8.0 or later でう

    markup
    markup 2010/02/22