All slide content and descriptions are owned by their creators.
All slide content and descriptions are owned by their creators.
この記事は、Perl 5 Advent Calendarの17日目の記事です。 Redis::Fast の reconnect についての中で DBIx::Classのreconnectについても触れています。 DBIx::Classの安全にreconnectionが行えるように考慮されていますが、色々と注意点があります。 reconnection周りで調べてみたので、Advent Calendarの枠を借りてまとめたいと思います。 DBIx::Classとは DBIx::ClassはPerlのO/Rマッピングモジュールです。 テーブル間のリレーションを定義でき、JOIN句の入ったクエリもサポートする等、かなり高機能なモジュールです。 もう僕はJOIN句をDBIx::Class以外で書ける気がしません。 詳しくはtypester先生の解説記事をどうぞ。 Perl Hackers Hub 第
仕事のコードで,子クラスがたくさんいる難しいクラスがいて,継承関係を整理したいけど,どこがどうなってるのか一見すると分からなかったので,静的解析してクラス図をレンダリングするやつを作った. github.com package2plantumlclassdiagramっていうコマンド(長い)に,このファイルたちをレンダリングしてくれ,って渡して,PlantUML形式のファイルを作る PlantUMLでPNGとかに変換 という手順で使う. % package2plantumlclassdiagram ~/Plack/lib/**/**.pm > plack.plantuml % GRAPHVIZ_DOT=$(which dot) plantuml -charset UTF-8 -tpng plack.plantuml Plackのソースコード全体をレンダリングするとこんなかんじで,継承してる
Perl入学式 公式ブログ プログラミング未経験者/Perl初心者を対象としたワークショップ『Perl入学式』のブログです。 一緒にプログラミングの楽しさを体感しましょう! みなさまこんにちは, Perl入学式校長のpapixです. いきなりですが, Perl入学式は今年で4年目となりました. ここまでの3年間, 多くの方と一緒にPerlを学ぶことができていて, とても嬉しく思っています. その中で, Perl入学式の卒業生からよく頂く意見の1つが, 「卒業後に使えるカリキュラムが欲しい」というものです. Perl入学式で扱う内容は, プログラミングを学ぶために不可欠な環境構築からスタートし, Perlという言語を通して「プログラミングに必要な考え方」を学んでいくという, まさに「基礎中の基礎」といえる内容になっています. 最終回でMojoliciousを利用したWebアプリケーションの開
先日行われた Gotanda.pm #5 でも発表させていただいたが、まさしく experimental な cpan client cpm を作った。 github.com Why new? cpan module の install にはいつも cpanm を使っており そのシンプルさと安定性には感心するばかりである。 が、cpanmにも不満がないわけではない。 perlである程度のことをやろうとすればすぐにcpan moduleの依存は 100を超える。 そういった場合、cpanmは直列でcpan moduleをインストールしていくため かなりの時間がかかる。 これをなんとかしたい。 Features of cpm cpm は如何に速くcpan module をインストールするか、しか考えていない。速くするために以下のようにしている。 cpanm を並列に使って cpan modul
Howdy Perlites, After over 2.5 years of work, I'm very proud to (finally) announce the full release of RPerl v1.0 on CPAN! Installation should now be as simple as: $ cpan RPerl OR $ cpanm RPerl For more information about install options, please see: https://github.com/wbraswell/rperl/blob/master/INSTALL As outlined in step 3 of the install notes file, we can now automatically compile our test prog
Perl 書いてりゃ Test::More でテスト書きまくると思うのですが、Test::More っていうか、まあ別に Test::More だけがそうというわけでもないのですが、テストこけたときのケアが十分じゃないなと思うときがけっこうあります。 開発過程で書いてるコードというのは、いつもいつも確信を持って書いているわけではないわけで、それでなくてもうっかり間違うときもあり、せっかくテスト書いているのに何だかよくわからない理由でこけてパスできなくて時間を浪費してしまったりが日常になってたりしませんか? そういうのを繰り返しているとやがてテスト嫌いになりテスト書かなくなって本番コードにデバッグコードが入り乱れ、リファクタもどんどん不可能になって小回り効かないままプロジェクトが失敗して彼女に振られてしまうわけですね。困ります。 note diag explain Test::More には
First, little bit of background: I was working on cpan-common-index branch for cpanm and the branch adds CPAN::Common::Index and its all subdeps, which might make fatpacking on 5.8 difficult because of the amount of its non-core dependencies, some of which are dual XS/PP. To clarify: it’s not impossible, but just harder and more stuff to add to be able to bootstrap on 5.8. Also, at this point I’d
mRuby.pmにmrubyの任意の関数を呼び出すインターフェースを追加しました。バージョン0.08としてリリースしています。 Perlのデータを引数として渡してmrubyの世界で扱い、mrubyの世界の値を返してPerlから使うことができます。 mrubyからPerlにデータを渡すことは今までのmRuby.pmでも可能でしたが、Perlからmrubyにデータを渡すことは0.08から新しくサポートしました。 つまり、以下のようなコードが動きます。 use mRuby; my $mruby = mRuby->new(src => <<'...'); def add(l, r) l + r end ... my $ret = $mruby->funcall(add => 1, 2) + 3 + $mruby->funcall(add => 4, 5); # => 15 これによって、iOS/A
今、perlがあつい!よって require について知るしかない! "普通" のrequire require(もしくはuse)関数は Module をロードしたいときに使う。 例えば、 require Foo::Bar; # もしくは use Foo::Bar とすると、perlは@INCに入っているディレクトリ以下のFoo/Bar.pmファイルを探しload(eval)しようとする。 すなわち仮に@INCが @INC = ("/path/to/dir1", "/path/to/dir2", "/path/to/dir3") ならば、perlは 候補1: /path/to/dir1/Foo/Bar.pm 候補2: /path/to/dir2/Foo/Bar.pm 候補3: /path/to/dir3/Foo/Bar.pm の順に Foo/Bar.pm を探し、見つかった時点でそれをlo
2014年10月1日にクララオンラインで開催した Ansible 勉強会の資料です。 グローバルソリューション事業部 ソリューションビジネスグループ吉村 真輝
掲題の通り、Perl におけるテストに関するモジュールの情報をまとめてみました。 既に類似の記事もありましたが(後述)、自分が最近使ったモジュールの情報がなかったりしたので、自分なりにまとめ直すことにしました。 そこそこ書いてみたつもりですが、そんなに網羅性は高くないと思います。 ここで紹介しきれていないモジュールについては、末尾の参考記事等をご参照下さい。 他に抑えておいた方がいい、よく使われるモジュールもあると思います。 何かありましたら、コメントや編集リクエストをお待ちしています。 フレームワーク系モジュール Test::Xxx なモジュールは数多あるのですが、Perl でテストを書くために必要十分なモジュールをここでは「フレームワーク系モジュール」と称することにします。 Test::More Perl におけるテストのためのデファクトスタンダードといえるモジュールでしょう。 こだわ
The Tilt.com website was originally built using Perl. Perl on the backend helped us get to where we are today, but about a year ago we began …The Tilt.com website was originally built using Perl. Over the years, we added jQuery UI to build widgets that had dynamic page behavior. Perl on the backend and jQuery UI on the frontend helped us get to where we are today, but about a year ago it was clear
First, little bit of background: I was working on cpan-common-index branch for cpanm and the branch adds CPAN::Common::Index and its all subdeps, which might make fatpacking on 5.8 difficult because of the amount of its non-core dependencies, some of which are dual XS/PP. To clarify: it’s not impossible, but just harder and more stuff to add to be able to bootstrap on 5.8. Also, at this point I’d
The Perl Jam - Exploiting a 20 Year-old Vulnerability より Perlを普段から書いている人にとっては常識ではあるが、そうではない人のために書いておく。 リストと配列 Perlにおける「リスト」とは何かというのを確認しておく。まず、Perlにはコンテキストという他のプログラミング言語にはない概念があり、単数(スカラー)と複数(リスト)を区別する。 # 配列 my @a = ('a', 'b', 'c'); # リストコンテキスト # 配列をリストコンテキストで評価 print @a; #=> abc # リストをリストコンテキストで評価 print ('a', 'b', 'c'); #=> abc # スカラーコンテキスト # 配列の要素はスカラー print $a[0]; #=> a # 配列をスカラーコンテキストで評価 print s
要約 Server::Starterの0.17以下のバージョン(とStarlet)によって動かしているときに無限ループ等でいつまでも処理の終わらないリクエストが発生すると、アプリケーションプロセスの再起動のためのHUPシグナルをServer::Starterが正しく処理してくれないことがある。 この挙動によってアプリケーションプロセスが古いリビジョンで動かしてしまうなどの問題があって困っていたんだけど、気付いたら0.19でこの挙動が改善していた。 前提 perlでdaemontoolsを用いてアプリケーションプロセスを動かし、かつホットデプロイを実現しようと思ったときの有力な選択肢がServer::Starterによるstart_serverとStarletの組み合わせだと思う。start_serverとStarletは以下のような挙動を示す。 start_serverはHUPを受け取った
この記事は Perl Advent Calendar 2014 の 15日目 の記事です。 14日目の記事は karupanerura さんの Carton時代の必須インストールモジュール(Webアプリ編) でした。 目次 はじめに $classと$self mapの使い所 doブロック内でreturn 終わりに 明日は はじめに はじめに言っておきますが、Perlを分かってそうで分かってない人 = 僕 です。 この記事では、Perlの扱いにある程度慣れてきたけれど、実はあんまり理解せず使っています、という方が陥るであろうミスをアンチパターン形式で紹介する。と見せかけて僕の恥ずかしい失敗というか、勘違いを書いていきます。 $classと$self Perlでメソッドを定義するとき、私は全てこういう風に書き始めていました。 sub method { my $class = shift; #
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く