perl
この記事はPerl Advent Calendar 15日目の記事です。 qiita.com さて 様々からの現実逃避とISUCONに向けたPerlのリハビリでmustache template engineをちまちま自作してたんだけどついにmustache/specなどから作ったテストが全部通ってしまった— かるぱねる…
この記事はPerl Advent Calendar 14日目の記事です。 qiita.com チーム「銀河鉄道の昼」としてISUCON13にPerlで挑みました。 最終的に2台構成で最終スコア7083、最高スコアは1台構成での9381でした。 上位30チームが50000点弱以上なので、残念ながら惨敗と言…
3年前、2020年の2月にこんな記事を書きました。 blog.perlassociation.org まだその脅威の全貌が明らかにならないままに刻一刻とタイムリミットは迫り、 YAPC::Kyoto 2020のために積み上げてきたものとそれをその状況下で実施することのリスクを直視して、頭…
WEB+DB PRESS vol.119 Perl Hackers Hubも第64回ということでキリが良いですね。 個人的にはありがたいことに3度目のPerl Hackers Hub掲載です。 今回は「少しマニアックなPerlのテクニック」ということでPerlにまつわる少しニッチなTips集のようなものを書…
こうすることで消せた: rm -rf local carton install --deployment carton install なんか良い方法ないかなー。 追記: 2015-06-11 17:03 CIでcpanfile.snapshotを生成すれば解決しそう 参考: Carton考2014 | おそらくはそれさえも平凡な日々www.songmu.jp
タイトルが長い。 YAPC::Asiaとは ここを読むと良い。 概要 / ABOUT - YAPC::Asia Tokyo 2014 概要 / ABOUT - YAPC::Asia Tokyo 2014 Perlのトーク殆ど無いじゃんという意見についての個人的な見解 いまどき色々な言語が開発に利用されるのは当たり前だし、…
Message Queueとか だいたいみんな、Message QueueとしてGearmanとかQ4MとかResqueとかRabbitMQとかZeroMQとかまあたくさんあるけど、なにかを使っていると思う。 Perlの人だとQudoとかTheSchwartzとかをつかっている人も多いと思う。 でも、preforkなworker…
頭を悩ませながらのんびり作ってます。 https://github.com/karupanerura/Time-Strptime Time::Strptimeとは strptimeのpure perlによる実装です。 epochとoffsetだけを返すシンプルな機能を持っています。 pure perlですが最小構成のperl codeを文字列とし…
タイトルの通り。 まあ、初期化は1度しか行われないので、あたりまえといえばあたりまえですがハマったのでメモ。 以下検証コード。undef,2,2となるかと思いきや初期化は1度しか行われないのでundef,undef,undefとなる。 static variable be undef if throw …
前夜祭 前夜祭では昨年のLTソンと同じくらいの熱気が会場を沸かせ、ときにはApache::LogFormat::CompileとかNorikuraとか真面目なプロダクトの紹介もありつつ、Acme系のはなしなどいろいろあっておもしろかったです。 ぼくも熱気に当てられて飛び込みLTとか…
昨日の13:40から多目的教室3で「ぼくがかんがえたさいきょうのMVC」という題でトークをさせて頂きました。 ぼくがかんがえたさいきょうのMvc from karupanerura </xmp> http://yapcasia.org/2013/talk/show/f60b8522-d43e-11e2-ac80-4cc16aeab6a4 …
YAPC::Asiaとは 日本で最大級の規模のPerlのカンファレンスです。Perlのカンファレンスですが運用、プロトコル、テスト等開発に関わる様々なトークがあり、和気あいあいとした雰囲気でときには意識高い話もしつつ、ゆるふわにPerlとその周辺技術等への学びや…
まだ構想段階だけどこれだいぶイケてね?って思ったので勢いで書いてみる。 Yomiuriとは 手軽に拡張出来るJekyllインスパイア系ブログフレームワーク/オーサリングツール 特徴 CLIで記事が書ける vimやemacsなどお好みのエディタでどうぞ。 Github Flavord M…
怖い話 割とハマりがちなので。 たとえば、以下のようなコードがあったとします。 use strict; use warnings; use utf8; use Data::Dumper; sub yyy { my $key = shift; return unless $key; return "yyy_$key"; } my $hashref = { xxx => yyy(), aaa => 'bb…
VS.pmとはワンライナーでおてがるにベンチマークを取るためのPerlモジュールである。 ソースフィルタを実験したくなっただけなので実用性はほぼない。 こんな感じで使える。 perl -MText::Xslate::Util -MVS=1000000 -MURI::Escape -E 'xslate { Text::Xslat…
#1も#2も行ったけど#1のレポ牡蠣忘れてたのでついでにかく。 #1 内容は他の方々が既にしっかりまとめてくださってるのでそれに頼らせていただくとして、 Perl初心者な人とある程度がっつり使ってる人の両方がいて、 Perl初心者な人はこういうのやりたい!も…
ちょびっと追記したり、書きなおしたりしました。Hachioji.pm #26のハッカソンでなにつくろうかなーと思ってたので、 ちょうど旬だったplenvのemacs lisp拡張でも書いてみようかなと思い至った。 plenv.el (require 'plenv) としておくと、だいたいperlbrew.…
以下のような、RowObject内の値が信頼出来なくなるようなupdateをかけたあとに、 masterからrefetchし直した値が引けると嬉しいのかなと思った。 say($row->xxx_pt); # 20 $row->update(+{ xxx_pt => \sprintf('xxx_pt + %d', 10) }); say($row->xxx_pt); # …
YAPCはおわっちゃいねえ。俺達のYAPCはまだ始まったばかりだ! と言ってるわけにもいかないので、いい加減書きます 今年のYAPC 今年は東京大学のなんちゃら記念館というところで開催されました。 今年出来たばかりみたいで新しく、綺麗な建物でした。 運営も…
Socket::inet_atonをoverrideするとLWPに特化せずにより汎用的になるのではと思って、 それらしきものを書いてみた。 ただし、Socket::inet_atonがexportされる前にuseしなければいけないので、 実用性はあまり高くなさげ。https://github.com/karupanerura/…
メソッドや関数の引数をバリデーションするときにData::Validatorを使わせて貰っているのですが、 低レベルAPIと高レベルAPIで同じバリデーションルールを適用したい事があって、 そういうときに複数箇所にコピペして使ったりしていると、 低レベルAPIのイン…
[追記] @bokutin さんから Devel::InnerPackage が使えると教えていただきました。 シンボルテーブルを走査して取得してるみたいです。こっちのほうが賢いですね! @karupanerura 不完全かもしれませんが Devel::InnerPackage をよく使っていますよ。2012-06…
例えば、Perlではオブジェクトを文字列として評価したときの挙動をコントロールしたい場合は、 以下のようにoverloadプラグマを利用して文字列化のためのメソッドをcoderefとして登録すると良い。 package MyURI; use strict; use warnings; use utf8; use C…
勢い余ってKyoto.pmのトークに申し込んだらぎりぎりにも関わらずやらせてもらえる事について発表してきました。 運営のshiba_yu36さんありがとうございました。また、会場を提供していただいたはてなさんありがとうございました。 トーク内容について 正月発…
とりあえずプロジェクトを列挙 いろいろなところに手を出しすぎて自分でも混乱してきたのでまとめてみる。 XOClock https://github.com/karupanerura/XOClock 時刻を指定してJobを実行出来るJobQueue Server。 最近はJobの保存先を変えられるようにしたり、 …
JSDefferedとかData::Monad::CondVarとかあるし車輪の再発明だけど、 頭の体操にはよいかなーとか思ってミニマルな実装を心がけてcallbackを直列化してみた。 たぶん上から順に JSでOOPっぽく実装 JSで単純なfunctionによる実装 PerlでOOPっぽく実装 Perlで…
更に追記 MouseX::Typesですが、その後検証してみたかんじ、 要素を「=>」で繋げてしまうと左辺が文字列として認識されてしまうようなので、 要素を「,」で繋げなければいけないようです。 等価だと思っていましたが微妙に違うんですね。 package HogeProjec…
さりげなくないけど今年初bloggingです。 あけましておめでとうございます。 正月発火村とは 主に 僕 と @kfly8 が「ハッカソンやりたい!」とか言って適当に集まった面子で、 水上温泉に行ってやってきたhackathonです。 僕はXOClockというものをPerlで開発…
blessed arrayrefは色々と悪いのでblessed hashrefか、カプセル化したいならblessed scalarref使いましょうというお話。 12:11:00 tkhrm> あとあれ 12:11:05 tkhrm> ArrayRef を object にすると 12:11:15 tkhrm> 気軽に拡張できなくなる 12:11:27 tkhrm> あ…
怖い話 友人がこんなコードがうまく動かなくてハマっていました。 擬似コード use strict; use warnings; # ... sub hogemethod { # ... try { A; } catch { die $_; #(comment out) # ... }; # ... } # ... 1; このコードはtryの中で死ぬかもしれない処理A…