8. • gihyo.jp Puppet, Func • http://gihyo.jp/admin/serial/01/puppet • http://gihyo.jp/admin/serial/01/func • MASHUP++ Plagger • http://www.amazon.co.jp/dp/4861671655/
8. • gihyo.jp Puppet, Func • http://gihyo.jp/admin/serial/01/puppet • http://gihyo.jp/admin/serial/01/func • MASHUP++ Plagger • http://www.amazon.co.jp/dp/4861671655/
全裸で有名なPerlハッカーsugyanの、上司に「ゆーすけくん、最近全然仕事してないね。ウケる!」って言われてるyusukebeです。今日はPerlソースコード内のPODドキュメントをHTMLで出力して、奇麗にみたいなーと思っていた時に考えたモジュールの組み合わせについて紹介します。 やりたいこと Perlのソースコード内のPODをHTML化 さらにPOD内で書かれてるPerlコード(というかインデントされたブロック)をハイライトシンタックスしたい JS使ったら負け PODをHTML化 PODを整形化してHTML化するモジュールはたくさんあります。今回僕が使うのは、Pod::Simple::XHTMLというモジュールです。XHTMLを出力してくれるので後々POD内のPerlコードの部分を指定しやすいです。 use Pod::Simple::XHTML; my $source = '...
daemonの起動 下記のようにdaemonとして起動します。 daemon起動オプションに関してですが、PODの記載は誤りで--daemonizeでは無く--daemonです。 $ sudo gearmand --daemon --pidfile=/var/log/gearmand.pid --debug=1 関数の登録 次にgearmanに実行させたい処理を予め登録し、さらにjob queを待ち受けるworkerを記述します。 #!/usr/bin/perl use strict; use warnings; use Data::Dump qw(dump); use Gearman::Worker; use Storable qw(thaw); use List::Util qw(sum); my $worker = Gearman::Worker->new; $worker->job
スタック(要は配列)の一番後ろに値を追加するのは、push という操作になる。Perl ではpush という関数があるし、PHP ではarray_push という関数がある。ところが、Perl とPHP ではこれらの関数の使い方、挙動が若干異なるので、簡単にまとめておく。push 以外の配列操作関数(pop, shift, unshift)もほとんど同じ考え方なので、これが参考になると思う。 array1: a, b, c array2: d, e, fこういう3つの要素を持つ、1次元の2つの配列があるとする。これらの配列を用いて、2次元の配列を作りたいときにPerl, PHP ではそれぞれどのように書けばいいのだろうか。 Perl Perl では厳密には多次元配列を扱うことはできない。配列の要素に、配列のリファレンス(これ自体はスカラー値)を持たせることで、擬似的に多次元配列を表現する。
本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはnekokakさんこと小林篤さんで、テーマは「ジョブキューで後回し大作戦」です。 ジョブキューとは 一時代前は時間のかかる処理もすべてWebアプリケーションで行っていましたが、最近ではいろいろな部分で処理の非同期化が行われるようになってきました。たとえばWebのインタフェース側ではAjaxがその最たるものでしょう。アプリケーションのバックグラウンド側でも今回のテーマであるジョブキューと呼ばれるしくみが多く利用されるようになりました。ジョブキューを賢く上手に利用することで、ユーザにストレスを与えることなく、またサーバのリソースも有効に使えるようになります。 ジョブキューは延々と動き続けるバッチ処理、というイメージが最もわかりやすいでしょう。通常のバッチ処理であればcrondを利用し、一定周期でプログラムを起動して
Perl › モジュール › here Class::Accessor::Fastはアクセサを簡単に作成するためのモジュールです。アクセサとはオブジェクトの属性にアクセスするためのメソッドのことです。 mk_accessorsメソッドを使用してアクセサを生成することができます。Class::Accessor::Fastを継承してパッケージ名からmk_accesors()を呼び出します。 # アクセサの生成 package YourClass; use base 'Class::Accessor::Fast'; __PACKAGE__->mk_accessors($meth1, $meth2, ...); 一般的なクラスのサンプルです。Pointクラスはx()とy()というアクセサを持ちます。Class::Accessor::Fastのnew()はハッシュのリファレンスしか受け取ることしかで
NAME Test::More - yet another framework for writing test scripts SYNOPSIS use Test::More tests => 23; # or use Test::More skip_all => $reason; # or use Test::More; # see done_testing() require_ok( 'Some::Module' ); # Various ways to say "ok" ok($got eq $expected, $test_name); is ($got, $expected, $test_name); isnt($got, $expected, $test_name); # Rather than print STDERR "# here's what went wrong\n
メタデータからテスト件数を取得する 前回はテストファイルやテストデータの数からテストプランを計算するモジュールを紹介しました。今回はその続きとして、テストファイルのメタデータからテストの数を求めるモジュールを紹介していきましょう。これらのモジュールの多くは1994年にケント・ベック(Kent Beck)氏がSmalltalk向けに書いたSUnitを祖先にもつ、いわゆるxUnit系のフレームワークに属するものですが、Perlにはそれ以前からTest Anything Protocolを使った独自のテスト手法が存在していたため、Javaなどで使われている同種のフレームワークとはやや毛色の違う部分もあります。一般的にはクラスをひとつ書くたびに対応するユニットテスト用のクラスを書くのがよいように言われていますが、ここではもっとゆるく、テストを自動的に検出してくれるだけでなく、テストの事前事後になん
それってHamakiなんですが、試しに作ってみたので一応。ただし、Tatsumakiは、 This is considered as alpha quality software. Most of the stuff are undocumented since it's considered unstable and will likely to change. You should sometimes look at the source code or example apps in eg directory to see how this thing works. Tatsumaki なので自己責任で:-p 後、このエントリより eg/chat を見た方が勉強になりますw Tatsumaki概要 TatsumakiはPlackとAnyEventをベースにしたTornadoっぽくWE
ウォッチャー AnyEventでプログラムを作成する場合「ウォッチャー」を作成、管理することが基本的な作業となります。ウォッチャーとはI/Oやタイマーなどの何かしらのイベントが発生したことを通知してもらうためのオブジェクトです(図2のコールバックの指定および実行の部分を担当します)。 現在から5秒後にコールバック関数を呼び出してもらうにはリスト1のようなコードを書きます。 リスト1 ウォッチャー use strict; use AnyEvent; my $cv = AnyEvent->condvar; ……(1) # タイマーウォッチャーを作成 my $w; $w = AnyEvent->timer( after => 5, # 今から5秒経ったらイベント発生 cb => sub { # イベント発生時にこの関数が呼ばれる warn "5秒経ちました!"; undef $w; ……(2
perlで動いているircプロキシのTiaraとIrssiのドキュメントやソースを読んでいます。 英語のサイトで非常に分かりやすい説明があったので自分なりに解釈してみた。 非常に拡張性が高く、プラグインもperlで書いて追加する事ができるなんて便利ですね。 今回は、A Guide to Efficiently Using Irssi and Screen内に Screenを使った利用のススメが書かれていました。 Screenについては、screenを初めて使うためのチュートリアル - UNIX的なアレに詳しい説明が載っています。 irssiの基本的なコマンドまとめ irssiの起動 irssiirssiの終了 /quit IRCサーバへ接続 /connect irc.nullirc.netチャンネル#testへjoinする /join #test /commandで実行できるコマンドのヘル
インターン講義初日「Perlによるオブジェクト指向プログラミング」by id:hakobe932の資料と録画を公開します。前半はUst放送が安定しなかったため、録画は後半のみとなってしまっています。 明日はAM10:30より、JavaScript で学ぶ イベントドリブン(id:cho45)を放送しますので、是非ご覧ください。Ustream放送の機材調整もしておりますので、安定した放送ができると思います。 自己紹介 id:hakobe932 (はこべ) はてなスタッフ1年生 はてなココチームのエンジニア Perlだいすき! JavaScript/Ruby/Javaも使います。 最近はScalaがブームです。型かわいい インターン1期生でした きっちり2年前 この講義の目的 明日以降、Perlではまらない 今日、いろいろやって、なるべくはまってください 疑問があったらどんどん質問してください
node.jsの衝撃とWebSocketが拓く未来 (1/2):WebSocketで目指せ! リアルタイムWeb(1) - @IT という記事を読みました。node.js という V8 を用いたサーバーサイド JavaScript フレームワークを使うと簡単にイベント駆動のサーバが書ける、node-websocket-server.js を使うと node.js で WebSocket サーバが実装できる。Ajax による polling や Long Polling などと WebSocket のアーキテクチャ比較といった内容でした。 WebSocket を使うと手軽にサーバプッシュ的なアプリケーションが作れて嬉しいのですが、現時点では、HTTPサーバー側で WebSocket を処理する下地の実装をどう用意するかというところがひとつ課題でしょう。node.js はその回答のひとつとして
Perl › Mojolicious Mojolicious::Liteでさまざまなルートを記述してみましょう。 GETメソッドとPOSTメソッド GETメソッドによる「/」へのルートです。GETメソッドはページを取得するときや検索を行うときに利用されることが多いです。 # Via get method use Mojolicious::Lite; get '/' => sub { shift->render(text => 'Hello') }; app->start; 次はPOSTメソッドによる「/create」へのルートです。POSTメソッドは新しい記事の投稿や更新、削除などサーバーに存在するデータに対して変更を行う場合に利用されることが多いです。一般的にフォームの送信処理で利用すると考えるとよいでしょう。 # Via post method use Mojolicious::Lit
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く