タグ

関連タグで絞り込む (251)

タグの絞り込みを解除

Perlに関するxaicronのブックマーク (697)

  • Perlの食えない事情 - 演算子編 - アリ

    Perlえない事情 より おっと、そうです、Perlには演算子が多すぎるのでした。せっかくの機会なので、Perlの演算子を紹介します。 ビーナス演算子: 0+, +0 数値として評価してくれます。意外とよく見かけますね。 なぜこの演算子を使う必要があるのかというと、Perlは文字列と数値を明確に区別できないからです。scalarを文字列として解釈するならば文字列として、 print 0+ '10'; #=> 10 print 0+ '123b'; #=> 123 print '1.2e3' +0; #=> 1200 print [] +0; #=> 4303367864 ちなみに、文字列として評価するときにはこのようにするとかっこいいと言われています。 $obj.q(); 一見メソッド呼び出しのように見えますが $obj . ''; と等価です。 ベビーカー演算子: @{[ ]} 文字

    Perlの食えない事情 - 演算子編 - アリ
    xaicron
    xaicron 2013/02/04
    覚えられる気がしないなw
  • DBIx::Tracerを使って流れているSQLのテストをしてみた話 - $shibayu36->blog;

    DBIx::QueryLogを使ってちゃんとSQLが流れているかテストする - $shibayu36->blog;で、流れているSQLをテストしたいと言う話をしたら、tokuhiromさんにDBIx::Tracerを使えばもう少しシンプルにかけると言われたので、やってみました。 (再掲) テストしたい状況 package My::DBI; use strict; use warnings; use DBI; sub connect { my ($dsn, $username, $password) = @_; my $dbh = DBI->connect($dsn, $username, $password, { Callbacks => { connected => sub { my $dbh = shift; $dbh->do("SET NAMES utf8") or warn $db

    DBIx::Tracerを使って流れているSQLのテストをしてみた話 - $shibayu36->blog;
    xaicron
    xaicron 2013/01/22
    いちおう、$DBI::QueryLog::OUTPUT = sub { ... } とかでもできまする。でも DBIx::Tracer でよいとおもいます。
  • Released B::Size2, forked from B::Size 0.09 - Islands in the byte stream (legacy)

    B::Size が2006年のリリースを最後にメンテナンスされておらず、最近のPerlではビルドできないという問題がありました。そこで何年か前にパッチを書き、patched verをgithubにあげてはいたのですが、CPAN経由でインストール出来ないとどうにも不便です。 そこで、B::SizeをforkしてB::Size2とし、メンテナンスを継続することにしました。 https://metacpan.org/release/B-Size2 https://github.com/gfx/p5-B-Size2 B::Size2 2.00時点では機能的にはB::Sizeとまったく変わりありませんが、今後きちんとメンテナンスして精度を高めたり使いやすくしたりするつもりです。 参考文献: packageごとのメモリ使用量(と増分)を確認できる Plack::Middleware::MemoryUs

    Released B::Size2, forked from B::Size 0.09 - Islands in the byte stream (legacy)
    xaicron
    xaicron 2013/01/18
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
    xaicron
    xaicron 2013/01/18
    get_dailymotion.pl っていうスクリプトが手元にあった。
  • DBIx::QueryLogを使ってちゃんとSQLが流れているかテストする - $shibayu36->blog;

    DBIのconnectのCallbacksなどでSQLを実行している時とかに、実際にSQLが流れているのかチェックしたい時がある。そういう時どうするのがベスト・プラクティスなのかわからないのだけど、DBIx::QueryLogを使ったら一応できたのでメモ。 テストしたい状況 package My::DBI; use strict; use warnings; use DBI; sub connect { my ($dsn, $username, $password) = @_; my $dbh = DBI->connect($dsn, $username, $password, { Callbacks => { connected => sub { my $dbh = shift; $dbh->do("SET NAMES utf8") or warn $dbh->errstr; retur

    DBIx::QueryLogを使ってちゃんとSQLが流れているかテストする - $shibayu36->blog;
    xaicron
    xaicron 2013/01/09
  • カジュアルにデータを確率とか優先度で処理する - Articles Advent Calendar 2012 Casual

    こんにちは、こんにちは。カジュアルにPerl使っているkoba04 です。 Webアプリを作っていて、確率で処理を分けたり複数の要素を重み付けて選びたいことってありませんか? 真っ先に浮かぶのはガチャみたいなものですが、それ以外にもランダムでバナーを出し分けてみたり、接続するサーバーを重み付けて選んだり色々と使い道が思い浮かびます。 そんな時に使える二つのモジュールをご紹介したいと思います。 詳しくは下記の作者の方のブログを見てください。 Sub::Rate Data::WeightedRoundRobin 以上! でもいいのですが..順番に紹介してみたいと思います。 モジュールなしで実装 優先度を付けてデータを選びたい時はrandを使っての実装が思い浮かびますが、バグりそうな気もするし面倒だし出来れば書きたくないです。 (書き方が悪いという説もある) # 結果をdumpする関数 sub

    カジュアルにデータを確率とか優先度で処理する - Articles Advent Calendar 2012 Casual
    xaicron
    xaicron 2012/12/04
    寿司!!
  • @__gfx__ は病欠です。 - Articles Advent Calendar 2012 Hacker

    @__gfx__ は病欠です。 - Articles Advent Calendar 2012 Hacker
    xaicron
    xaicron 2012/12/04
    グロ注意
  • YappoLogs: WEB+DB PRESS Perl連載枠「Perl Hackers Hub」のまとめ

    WEB+DB PRESS Perl連載枠「Perl Hackers Hub」のまとめ そろそろ3周目も無事おわりそうなので、今までやった事をまとめて検討したい。 Vol.55 2010年2月24日発売 【第1回】PSGI/Plack……フレームワークとサーバをつなぐエンジン……宮川達彦 ベッケンバウアーだったんだけど、縁があって第一回目に。 Vol.56 2010年4月24日発売 【第2回】AnyEventでイベント駆動プログラミング……牧 大輔 たしか非同期プログラミングのブームが終焉してて実用的に使われだしてた時期だったかなと。 Vol.57 2010年6月24日発売 【第3回】DBIx::Classでデータベース操作……村瀬 大輔,Japan Perl Association[監修] まだまだ Skinny とかは早過ぎたし、世界的なビッグウェーブの DBIC で ORM のネタをダ

  • DBIx::TransactionManager の目的と、その使用法について - tokuhirom's blog

    おはようございます。 DBI では当たり前のように $dbh->do('BEGIN') と $dbh->do('COMMIT') をつかえばトランザクションがつかえるわけですが、なぜ DBIx::TransactionManager のようなものが必要になったのでしょうか。 それは勿論、DBI で直接 transaction をとりあつかうと問題が発生するケースが存在するからです。 トランザクションと RAII一番おおきいのは、トランザクションが中途半端な状態になってしまうことを阻止することです。たとえば、以下のようなケースでは、おかしなことになってしまいます。 my $dbh = DBI->connect(...); for (@stuff) { eval { $dbh->do("BEGIN"); $dbh->do(q{INSERT INTO t1 (v) VALUES (?)}, $_

  • Graphviz::DSLをリリースしました。 - Shohei Yoshida's Diary

    https://metacpan.org/release/SYOHEX/Graphviz-DSL-0.01 Ruby Gemの Gvizの移植版ということで Graph::Gvizという名前を つけていたんですが、それだけだと何をするものかわからないという 意見をいただいたので Graphviz::DSLという名前にしました。 機能 基的には Rubyの Gvizと同じですが、現状 Gvizの方が機能が 充実しています(おいおい実装するつもりです)。 Gvizから変更した部分 極力 DSLに書いたとおり、DOTファイルに出力されるようにしました。 以下に違いが出る例を示します。 Graphvizのサイトに載っているサンプルで次のような DOTファイルがあります。 digraph G { subgraph cluster_0 { style=filled; color=lightgrey;

    Graphviz::DSLをリリースしました。 - Shohei Yoshida's Diary
  • perlbrewなperlで共通のパスを@INCに入れたい、もしくはperl実行時にごにょごにょしたい話 - (ひ)メモ

    perlbrewでインストールしたperlたちの@INCは$PERLBREW_ROOT配下のディレクトリになります。おかげで互いに影響せずにモジュールを入れられるわけですが、システム全体で共通のモジュールも読ませたい局面もあります。 PERL5LIB(でパスを指定)やPERL5OPT(で-Mlib=/path/to)でもできますが、perl -MOrenoConf とした場合はまだ環境変数が評価される前なのでCan't locateと怒られてしまいます。 Ubuntuのsystem perlは /etc/perl が @INC に入っています。(確かGentooのもこんな感じだったと思います) $ perl -V ... @INC: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl

    perlbrewなperlで共通のパスを@INCに入れたい、もしくはperl実行時にごにょごにょしたい話 - (ひ)メモ
  • なんてこった…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_

    xaicron
    xaicron 2012/08/29
    なんてこった...
  • 「ボケて」のスケールアップとスケールアウト - ゆーすけべー日記

    オモロキで鎌団子さんと二人で開発している写真で一言ボケるWebサービス「ボケて」。 バックエンドの改修作業、それに伴うバグ等の修正を施し、やっと落ち着いて来たので、 そのことについて書いておこうと思います。 ボケてとは? 改修作業の詳細に入る前に「ボケて」とは、を紹介します。 ボケては「お題」と呼ばれる「写真」に一言「ボケ」を加えて笑いをつくりだせるWebサービスです。 ユーザーはお題写真のアップロードやそうした写真に対するボケのテキストを入力でき、 最新のものや評価されたお題とボケを見ていくことができます。 評価の高いものはやっぱり面白くて見てると吹き出しちゃうものもたくさんあります(当社比)。 開発は上記した通り鎌団子さんと二人でやっていて、 鎌団子さんがデザインやHTML絡み、 僕がバックエンドやシステム周りを行っています。 5月13日、爆発 さて、そのボケてですが、今年の「5月13

    「ボケて」のスケールアップとスケールアウト - ゆーすけべー日記
  • Stowを利用してソースからビルドしたソフトウェアを効率的に管理する - Glide Note

    同じチームの@lamanotramaさんと話していて、 これから一部パッケージはRPMを作らず、@hirose31さんの方式 (ソースから自前ビルドしたソフトウエアの効率的な管理方法 - (ひ)メモ) を採用するとのことで、「なるほど!!」と思いながら上記記事のはてブコメント を眺めてたらStowというものを発見。 早速検証してみた。検証環境はCentOS 6.3です。 Stowの概要 Perlで書かれている ソースからビルドしたソフトウェアを管理するソフト 任意のディレクトリ/usr/local/stowなどにパッケージ一式をインストール インストールしたパッケージから/usr/lib/{bin,lib,share}にリンクを貼って利用。 バージョンの切り替えはリンク張り直しで行う(ファイルの上書きはしない) zsh-4.3.17やzsh-5.0.0などバージョンの切り替えが容易になる(

  • PerlでTDD(テスト駆動開発)するなら覚えておきたいCPANモジュール群 | hirobanex.net

    最近、久しぶりに新規コードを書いたんですが、そのテスト書く中でTest::Mock::Guardってモジュール使って便利だったんで、ここらで、動作確認テストを書く上でいいな(使ってみたいな)って思ったモジュール群やテスト関連ネタを個人的なメモとしてまとめておきたいと思います。 いいなって思うPerlの動作確認テスト系CPANモジュール群 私が実際に普段使っているものから、これいいなー使ってみたいなーと思うものまで、一覧にまとめて見ました。結構いろんなモジュール使わないと、いい具合にTDDってできないものだと思います。 入門編 モジュール名 概要 参考日語記事

    xaicron
    xaicron 2012/08/03
    褒められたヽ(´ー`)ノ
  • Sub::Rateと言うのを書いた - unknownplace.org

    Sub::Rate - Rate based sub dispatcher generator - metacpan.org 確率に応じて処理を振り分けたいというような要件をカジュアルにクリアできる感じになっております。 たとえばいわゆるガチャ的なものを考えたときに、 my $rate = Sub::Rate->new( max_rate => 100 ); $rate->add( 0.1, sub { say 'Super rare' }); # 0.1 % $rate->add( 3, sub { say 'Rare' }); # 3 % $rate->add( default => sub { 'Normal' }); # 残り my $func = $rate->generate; みたいな感じで関数を生成できて、この生成した $func は呼ぶと確率に応じて登録された関数を呼び出

  • S3のエラーハンドリングPerl編

    S3は作ったばかりのバケットを扱おうとすると、307 redirectを返すことがある。他にも http://docs.amazonwebservices.com/AmazonS3/latest/API/ErrorResponses.htmlにあるように多数のエラーレスポンスは定義されている。が、3xx系は扱えないライブラリであるLWPがメインのperlの場合 CPANに登録されているAmazon::S3とNet-Amazon-S3ではこんな対応がされている。(というかここのコメント100%同じ。ライセンス的にはokだからいいんだろう) cpansearch.perl.org/src/TIMA/Amazon-S3-0.45/lib/Amazon/S3.pm http://cpansearch.perl.org/src/PFIG/Net-Amazon-S3-0.56/lib/Net/Amaz

    S3のエラーハンドリングPerl編
    xaicron
    xaicron 2012/06/29
    LWP::UserAgent->new(max_redirect => 0)->get(...) ではダメなのだろうか
  • App::RadというCLIがだいぶ良い - Perl勉強メモ アルパカDiary出張版

    App::Rad というコマンドラインツールがあるのですが、 手軽にサブコマンド作れてだいぶウマーな感じなのに 日語情報が全くないので紹介してみます。 基系 まずは「rad.pl」に「bucho」というサブコマンドを作ってみたいと思います。 use App::Rad; App::Rad->run; sub bucho { return "Hello Bucho!"; } たったこれだけです。まずは実行してみましょう。 $ perl rad.pl Usage: rad.pl command [arguments] Available Commands: bucho help show syntax and available commandsいい感じにヘルプが出ました。 定義したサブルーチン「bucho」が勝手にサブコマンドとして認識されていますね。 buchoコマンドを実行してみましょ

    App::RadというCLIがだいぶ良い - Perl勉強メモ アルパカDiary出張版
    xaicron
    xaicron 2012/06/24
    ほうほう
  • YAPC::Asia 2012 公式ロゴデータ| Official Logo Data For YAPC::Asia Tokyo 2012 | YAPC::Asia Tokyo 2012 - YAPC::Asia Tokyo 2012 [SEPTEMBER 27,28 & 29th]

    こんにちは、櫛井です。 今年も公式ロゴデータを配布いたします。 中身は ai、jpg、PDFの3種となります。 ダウンロードはこちらからどうぞ。 /2012/yapc_asia_tokyo_2012_logo.zip YAPC::Asia Tokyo 2012 by Japan Perl Association is licensed under a Creative Commons 表示 - 非営利 2.1 日 License. 今年もトークのスケジュールはGoogle Calendarのフィードを 公開する予定ですので、YAPCスケジュールアプリ作っていただける方など お待ちしています! ==== For those of you who want to link, or create applications related to YAPC::Asia Tokyo 2012, we

  • mosh: MITからモバイル時代のSSH代替品 - karasuyamatenguの日記

    http://mosh.mit.edu/ ローミング可能 断続的な接続でも平気 ローカルエコーで快適なレスポンス などの機能をそなえたSSH代替ターミナルソフト。その名も「モッシュ」 iPhone/iPadでウロウロしながらサーバ作業をするのを想定しているようだ。ドキュメントやパッケージの充実度からしてもかなり高質のプロジェクト。こいつら気でSSHを越えようとしている。 こんな能書き IPが変っても大丈夫 スリープ後もターミナルが生きている 遅いリンクでもローカルエコーにより快適 要は素早く打ち込んでいるときにスクリーンが止っちゃうことがない フルスクリーンモードでも有効 サーバ側と同期化されていない入力はアンダーラインで記される ルート権限がなくてもサーバのインストール可能 サーバは一般プログラムとしてインストールして、それをSSHで立ち上げる SSHをinetdとして使っている感じだ

    mosh: MITからモバイル時代のSSH代替品 - karasuyamatenguの日記
    xaicron
    xaicron 2012/04/11
    ローカルエコーはいいですね