All slide content and descriptions are owned by their creators.
All slide content and descriptions are owned by their creators.
https://metacpan.org/pod/from_unixtime をみてやってみた。 > cat sql_result id 1 created_at 1419702037 updated_at 1419702037 > perl -MTime::Piece -pe 's/\b(1[0-9]{9})\b/"$1(".localtime($1)->strftime("%F %T").")"/ge' < sql_result id 1 created_at 1419702037(2014-12-28 02:40:37) updated_at 1419702037(2014-12-28 02:40:37) 自分の場合だとこんぐらいのワンライナーでいいかな、と。 上記の正規表現は極めて雑だが、以下のように、一般的に求めたい範囲の unix time にはそれなりにマッチする。 > ep
1日目感想かいてからだいぶ間が空いたけど、2日目感想まとめた。LTは除く。 謎の腹痛に悩まされて午後から参加。途中タリーズでうずくまったりもした。 地域pm Meet up 思った以上部日本全国あちこちにpmあった。 都内出身なので地域pmに行くことは殆どなさそうだけど、地方pmの人を都内pm呼ぶの楽しそう。 YAPC::Europe 2014にいってきました ブルガリアはビールクズ天国。覚えた。 ヨーロッパは英語あんまり喋れなくても寛容。覚えた。 そもそも日本から出たことないんですけどね。 趣味開発のためのクラウド/VPS活用術 VPSは2社ほど、レンタルサーバは1社ほど使ってるけど、正直そんなに活用してない。 聞いて改めてまた引っ越そうということはないけど、最近のVPS情報を知ることができてよかった。 キーノート エンジニアとして生きる 「20代の経験が今後の人生のベースになる」ときい
この記事は↓に移転しました。 laysakura.github.io
来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…
yusukebe のObject::Containerを応用したModel呼び出し のあたりをよんでの感想ですが。 一時期 Catalyst の影響もあって、モデルのインスタンスつくったりなんだりもしていたのですが、結局のところウェブアプリケーションにおいては、モデルをがんばってオブジェクトにモデリングしようとか考えるよりも、つまり手続として扱った方がしっくりくるな、ということに自分の中でなりまして、最近は、ごちゃごちゃ考えるのをやめて、手続きとして実装しています。 yusukebe の例をベースにはなしをすすめると、コントローラを以下のようにかきます。 package MyApp::Web::Controller::Root; use Mojo::Base 'Mojolicious::Controller'; use MyApp::M::Entry; sub index { my $se
Try::Lite supported of older perls I fixed Try::Lite's nexted try-catch block don't work on older perls, because I received that bug report by koba04. https://metacpan.org/release/YAPPO/Try-Lite-0.0.3/ Try::Lite は最近の Perl で開発したため、うっかり古い Perl の例外処理が変なやつに対応するのを忘れてました。 pull-req 受け取ってから4ヶ月かかってしまったんですが、例外処理ややこしいせいがあってパッチの意図が良くわからんくて放置してたってのがあります! 最初貰ったやつだと RAII して $@ を良い感じに元に戻すみたいな事してたけど、よく考えたら普通に書けば R
※2013/07/25 スクリプトと概要をUpdateしました 次期バージョンであるRedis 2.8ではこの問題を少しでも解決しようと、 CONFIG REWRITE というコマンドで、redis.confの書き換えを行えるらしい、 が、結局それを忘れたら同じことなのでこの問題の解決にはなるかは微妙なところだ。 メモリ上にしか反映されていない設定があるかどうかをなんらかの方法でチェックすることができれば監視するなどできると思うのだが…。 http://unknownplace.org/archives/twilio-redis-incident.html 書き捨てっぽいですが、差分をとるスクリプトをペロッと書いてみました。 概要 以下のようなことをしています。 値が空のキーはデフォルト値を設定 単位(K/M/G)を最小単位に戻す メモリ上のキーを正とします*1 メモリにのみキーが存在する
ユーザーからのPOST等された入力値の妥当性をチェックする Validation をどこでやるか問題が個人的にありまして〜、DBを使わないケースならばいわゆるFomrValidator::*を使ってControllerでやればいいのですが、Modelを経由するようなアプリだとControllerだけじゃ不安よねぇ〜、Modelだけ使う時もあるし、Model単体のテストで再現出来ないよね〜なんて思ってます。で、実際の実装をControllerではFormValidator::Lite、Modelの一部にData::Validatorを使っているのですが、なんかコレも効率悪い感じしてたんで、ちょいと実験的に理想の一つを実装してみました。 こんな条件です。 エラーメッセージを簡単に設定したいのでValidationモジュールにはFormValidator::Liteを使う 色々錯誤していたらOR
この前 XslateのテンプレートをCSSインライン化する - $shibayu36->blog;という記事をかいたのだけど、その時にgfxさんにコメントで gfx BKっぽい気もしますが他にいい方法は思いつかないし、最近 pre_process_handler という機能も足したので、まあ許容範囲じゃないすかね。 と言われた。 pre_process_handlerというものがあったことを知らなかったので、試しに利用してみた。 pre_process_handlerを使ってtemplateに対してCSSインライン化する さてやりたかったことを振り返ると メールを一通一通CSSインライン化するのではなく、先にtemplateをインライン化しておいて、それを利用してrenderしたい ということでした。 例えば以下のようなtemplateを用意します。 <html> <head> <styl
最近はperlでテスト書く時はTest::Classを使うようにしている。その理由の一つとして、subtestだけのテストだと少しだけ困ることがあるからだ。 具体的には以下の事がある。 subtestは書かれている順に実行されるため、前のテストの状態に依存したコードが書かれがち 特定のsubtestだけを実行するのが面倒 前のテストの状態に依存したコードが書かれがち 僕の中では、テストが前のテストの状態に依存しないようにすべきと思っている。各テストの依存度が増えると、その後テストを追加したいときにコードの見る範囲が増え、テストが書きづらくなってしまうからだ。 しかし、subtestは単に書かれた順にテストが実行されるので、前のテストの状態に依存したコードが書きやすいと思っている。例えば以下の様なコードが書かれがち(少し極端な例だが)。 use Test::More; # insert_en
Kyoto.pm 05 Tech Talksを開催しました。JPA様の講師派遣プログラムを利用し、nekokakさんにお越しいただきました。 今回は30人を超える方に参加していただき、発表もnekokakさん、通常トーク7つ、LT7つと、なかなか盛り上がったと感じます。遠方からも数人お越しいただき、発表もして頂きました。 またTech TalksなりHackathonなり開催しようと思いますので、次も是非ご参加ください。 トーク内容 トーク内容はスライドなどが上がるたびに随時更新していきます。 通常トーク nekokakさん y_uukiさん : サーバのメトリクス取得とグラフ化 Kyoto.pm 05で自作のサーバリソース可視化ツールのはなしをしました - ゆううきブログ songmuさん : TengとRedisに関するお話 おそらくはそれさえも平凡な日々: Kyoto.pmに行ってき
https://github.com/tokuhirom/Spellunkerhttps://metacpan.org/release/SpellunkerNowadays, I got trouble by xt/01_spelling.t. Then I wrote a new spelling checker written in perl. Pros. No C compiler required.Dictionaries included in distributionInstallable from CPANReadable code for CPAN AuthorsOptimized for CPAN modulesCons. It's new. Bit unstable.You can use it as testing module like following: use
Perl::Critic loads all installed policies by default. It means, perlcritic loads "ProhibitAccessOfPrivateData" if it's installed. I don't like that policy. I don't want to write excluding rules for each optional policies. And so, I need to write a lot of policies for 'excludes' section to exclude policies, I don't like. I got an idea. I SHOULD list include policies instead of excludes policies. It
StarmanとStarletの違いはいくつかありますが、Starletにいくつか手を加えたあと、速度はどうなっているのか比較してみた。 なお、以下の記事はHello Worldのベンチマークなので、実際のアプリケーションのパフォーマンスにはあまり影響がないと思われます。 各ソフトウェアのバージョンは以下。 Plack-1.0023 Starman-0.3008 Starlet-0.18 Starletのベンチマークとほぼ同じアプリケーションを書いてサーバを起動した use Plack::Builder; use Plack::Request; my $length = 12; my $body = 'x'x$length; builder { enable 'AccessLog', logger => sub { }; sub { my $env = shift; my $req = P
複数バージョンのモジュールで同じコードを実行してBenchmark.pmで計測したい、というケースにこう書けばいいかな、という例。 普通にBenchmark.pmを使ってしまうと同一モジュールを違うバージョンで複数読み込むことができないため、 バージョンごとに子プロセスを fork 子プロセスで use lib して @INC を追加してから use 計測した結果をファイルに保存して親プロセスで集約、表示 という流れで書きます。 use strict; use Benchmark qw/ :all /; use File::Temp qw/ tempfile /; use Storable qw/ nstore retrieve /; # 計測したいコード my $code = sub { my $c = Cache::Redis->new; for ( 1 .. 10 ) { $c->s
追記: 2013/03/17 21:11 githubに上げました 単にログ持ってくるだけの簡単なモジュールなのでSimpleつけた。 発言機能をつけてもいいけど、ID/Passが必須になるので考え中。 ==ここまで追記== ゆるふわなかんじで perl の話題をするためのチャットルームをつくってみた - tokuhirom's blog. Perlの話題を日本語で – Lingr ということで、Lingr でカジュアルにPerlの話するのがブームみたいなので、 非常にやっつけではあるが、WWW::Lingr かいた。 ただ、発言を拾ってくるだけの非常にシンプルなものとなっているが、Lingrアカウント持っていなくても見ることはできるので、 雰囲気を軽く見てみたい人 ~ 張り付いてみていたい人まで使えます。 これを10分感覚ぐらいで拾ってくるようにして社内でも観察できるような感じにした。
いま書いてるコードで、forkしてexecするんだけど、execする前にSTDIN/STDOUTを任意のファイルハンドルに置き換えたいなー、もっというとexecするプログラムのSTDINにソケットのREADから流れてくるデータを流し込んで、STDOUTの出力をソケットのWRITEに流し込んでやりたいなー、というようなことを考えていた。 で、これが例えば今のプロセスのSTDOUTの出力をファイルに置き換えるには、以下のようにすればいい。 open(STDOUT, '>', '/path/to/file'); シェルスクリプトでも簡単。*1 exec >> /path/to/file さて、STDIN/STDOUTとconnect済みのソケットを結合したい。connect済みのソケットはファイルディスクリプタは持っているがファイルパスを持っていない、ので、普通にopenし直すだけではうまくいか
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く