YAPC::Asia 2012
Webアプリケーション開発時などに依存するバックグラウンドプロセスを管理するツールとして rubyで作られた foreman というツールがあります Procfileという名前のファイルに worker: ./bin/worker web: plackup web.psgi と書いて $ foreman start とやると指定したプロセスを起動してくれるらしいです。 cho45やtokuhiromからの提案もあったので、Procletをベースに同様の機能を持つprocletコマンドを作り、Procletに同梱してリリースしました。 https://metacpan.org/module/Proclet バージョン0.11で追加されました。 インストールは $ cpanm Proclet 使い方 実装されていない機能もあるけどだいたいforemanと一緒です Procfileを用意して p
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_
冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtech Perl の utf8 関係が未だ全く理解できない。わからないことがわからないので整理 現状やってること * utf8 フラグを全く考慮せずに書き、文字化けした時点で 1. use utf8 つけたりはずしたり 2. utf8::encode, utf8::decode を適当にする モダンなPerlでは use strict; use warnings; use utf8; と書くのが作法ですが、utf8に関しては確かに取っ付き辛かったです。 過去に、 にひりずむ::しんぷる:uft8+Encodeで日本語は解決する というような記事を書いたり、ほかの人がいっぱい書いているのでその辺は割愛して、「文字化けした時点で」自分がやっていること use utf8 use Encode スクリプトはutf8で書く 外部か
トリップとは、匿名掲示板「2ちゃんねる」「4chan」「8chan」など電子掲示板で、個人の識別のために使われる文字列を表示する機能、またはその機能によって表示された文字列を指す。開発者は2ちゃんねる元管理人の中尾嘉宏と8chan元管理人のロン・ワトキンスとされる[1][2]。 概要[編集] トリップは暗号化された文字列であり、使用者のトリップキーという文字列の入力により表示できる。キャップに準ずる機能であり、表示することによって簡易的に個人を証明および識別できる。 名前の由来は『1人用(ひとりよう)キャップ』を略して『トリップ』。 トリップは、トリップキーという文字列を暗号学的ハッシュ関数(一方向ハッシュ関数)に通したものである。トリップキーが同一であれば、誰でも同一のトリップを表示できる。トリップキーは、パスワードとも呼ばれている。トリップキーが他者に知られることを「トリ(鳥、鶏)バレ
僕はWebアプリの開発言語にPerlを使っていますが、Perlで書くためのWeb Application Frameworkとして、 Mojoliciousを最近では利用しています。 Web Application Framework(WAF)とは、 Webアプリケーションの開発を効率的に行うためのライブラリ群(つまりフレームワーク)で、これがなければ少しでも大きめのアプリになると大変な思いをします。以下Mojoliciousについてとりあえずの、参考リンクです。 ちなみに昨日かな?Mojoliciousはバージョン3.0が出ました。 PerlのWAFはMojolicious推しな件とそのノウハウ - ゆーすけべー日記 Mojolicious - Perl real-time web framework Mojolicious 3.0 released: Perl real-time we
以前http://tech.naver.jp/blog/?p=1369の記事を読んだのだけれど、それまでにprocessの知識が無かったりして、まったく理解できませんでした。そこでWorking with UNIX ProcessesやServer::Starterの中身を呼んでようやくhot deployの仕組みを理解できた(気になっている)ので、Server::Starterの実装を追いながら、それをまとめてみます。 hot deployとは hot deployとは「再起動の時にリクエストの処理を続けながら、変更の内容を反映するための手段」です。 通常serverをrestartさせるときは、stop -> startの流れになると思いますが、この場合stopしてから、start出来るまでの期間にリクエストを処理できない期間が発生します。その期間なしにdeployする仕組みがhot
App::perlbrewはrvmやvirtualenvのように各バージョンのPerlをインストール、スイッチできるソフトウェアです。 各種バージョンのPerlを切り替えて使えるようにするのがApp::perlbrewです。他の言語でも同様の仕組みがありますが、App::perlbrewもまたコマンド一つで各バージョンのPerlをインストールしたり切り替えられるようになります。 使い方は他のbrew系と同じです。perlbrew install 5.8.10といった具合です。 切り替える場合はswitchを使います。 cpanもちゃんと入っています。 App::perlbrewを使えば個人のHOME以下に各バージョンのPerlが配置されるのでプロジェクト単位で切り替えたりするのが簡単になるでしょう。各バージョンでのテストを手軽に試せるようになるはずです。 App::perlbrewはPer
XSを書く練習の続き。 前回はごりごりとXSで書くというものだったので、 今回はライブラリのバインディングにチャレンジ。 扱うライブラリは An ascii-art library というアスキーアートを作るためのライブラリ。 開発リポジトリ syohex/p5-Text-AAlib · GitHub 現状 必要最低限な機能だけとりあえず実装しました。 機能的にドキュメント読んだだけではよくわからないところが あるので、それについてはソースを読んで充実させていく予定です。 テストの書き方も今一つわかっていないので、他のライブラリの 実装も見て勉強する必要がありそうです。 #!perl use strict; use warnings; use Text::AAlib; use Imager; my $file = shift or die "Usage: $0 image"; my $im
Shell::Perl と pirl を試してみる id:naoya氏がブクマしてたのを見て入れてみた。 pirlは、perlshのような対話型のperlシェルです。 Shell::Perlをinstallしようとすると、新しいExtUtils::MakeMakerを要求されるので、cpanコマンドでいれずに、Makefile.PLを書き換えた -use ExtUtils::MakeMaker 6.31; +use ExtUtils::MakeMaker; 同時にinstallされるpirlコマンドを実行するとこんな感じ。 $ pirl [~] Welcome to the Perl shell. Type ':help' for more information pirl @> 1+1 2 pirl @> log 10 "2.30258509299405" pirl @> :helpでヘ
gistなどで公開されているPerlスクリプトを実行する際、モジュールが足りないことがよくあります。そういう場合はCan't locate Foo.pm ...というエラーメッセージを見ながらモジュールをインストールするわけですが、決まりきった作業にうんざりしたので自動的にそれをするモジュールを書きました*1。 https://github.com/gfx/p5-lib-xi `perl -Mlib::xi script.pl`とするだけで、足りないモジュールをcpanmで適当にインストールしてくれます。 -Mlib::xi=extlibとすれば既存の環境を壊すことなくlocal::lib的にextlib/にインストールして実行できますし、-Mlib::xi=-L,extlib,-qなどとしてcpanmにオプションを渡すこともできます。 これで退屈なインストール作業をしなくてすむはずです。
Blog Post Featured post Sprinkle delicious dishes as a cook with gourmet cookware Continue reading Points to Note When Shopping for a Washing Machine There are different washing machines brands in New Zealand. When shopping, therefore, you need to ensure that first, you get a quality machine; a machine that will last through many years without breaking down. You check product warranties and review
Perl › モジュール › here Perlの5.10からTime::Pieceと呼ばれる時刻を便利に扱うためのモジュールが標準モジュールに加わりました。Perlの5.10以上を使用している場合はTime::Pieceモジュールを日付と時刻を扱いたい場合に利用すると便利です。 従来のPerlでは日付や時刻を直感的に扱う手段が標準モジュールにはありませんでした。日付や時刻を扱うためには少し面倒な作業が必要でした。Time::Pieceは日付と時刻の直感的な操作を提供します。また日付・時刻の書式化の機能や解析する機能も備えます。 Perlには実質的に日付を扱うモジュールのスタンダードといえるDateTimeというモジュールがあります。ただしこのモジュールは標準モジュールではなくCPANからインストールする必要があります。また巨大なモジュールですのでモジュールを読み込む時間が非常にかかります
UPDATE: The module was originally written using constant overloading, but it is a dangerous and gross hack, so I changed that to use autobox framework instead (wondering why I didn't try that at first!). I updated the post accordingly.Rails has ActiveSupport, something to add funky methods to Ruby core object, to do fancy things like 2.months.ago to get Time duration object etc.I found it pretty i
-> 趣旨と注意書き -> 身近なpackage -> なんのためのpackage ? -> What's `new' ? -> bless ( reference => package ) -> Hello, Module World! -> オブジェクト? -> main パッケージと関連付けてみる -> クラスとメソッド -> オブジェクト指向 -> オブジェクトがリファレンスなら… -> -> を連続する -> 継承 -> 多重継承 -> 多重継承をやめる -> 多重継承をやめる(もう少し簡単に) -> 情報源(書籍等) <- モドル 趣旨と注意書き これを読んでも、あんまりきちっとした知識は、身に付きません(^^; オブジェクト指向の概念はほんの少ししか説明しません。ここで述べるのは、Perlでどうやるかってのが主です(それも不十分&嘘まじりかも)。 とりあえず、モジュールを作り
仕事メモ。 インタラクティブなコンソールアプリケーションだと、STDIN/STDOUT を使ったやりとりが発生します。こういうのをテストするときに、いままでは、 { local *STDOUT; open(STDOUT, '>', 'stdout.txt') do_something(); #STDOUT を使う何か close(STDOUT); } open(my $MY_STDOUT, '<', 'stdout.txt'); #... $MY_STDOUT の中身を読み出してテストする みたいな処理を書いて、ファイルの中身でチェックしてました。(STDIN の場合は逆で、入力データをファイルに書いて、捻じ曲げた STDIN をアプリに読ませる)。 ファイルを噛ませるのが嫌だったのと、ちょっとトリッキーなのが気に入らなかったので、モジュールを使ってもうちょっと優雅に(?)書けないかな、と
公開 2006年8月25日、 更新 2009年1月17日 Perl でコマンドラインオプションを処理するときの覚え書き。基本的ないし実用的な事項のみで、中級以上のトピックはばっさり省いています。Perl ドキュメントをもとに作成しました。 1. 基礎知識 オプション名の大文字小文字は区別されない。 短いオプション名(例: -a)は長いオプション名(例: --all)から自動的に作られる。 オプションとして処理されなかったコマンドライン引数(ファイル名など)は @ARGV に残る。 2. GetOptions 関数 コマンドラインオプションを処理するには Getopt::Long モジュールの GetOptions 関数を使う。 use Getopt::Long; 以下のコード例では use Getopt::Long; は省略している。 2.1. 単独で指定するオプション my $opt_a
inotifyはファイルだけじゃなくてディレクトリもウォッチできて、配下にファイルが作られたり消されたりなどなどを監視できます。 $ watch-it.pl ~/tmp (ls) tmp - IN_ISDIR IN_OPEN tmp - IN_ISDIR IN_CLOSE_NOWRITE IN_CLOSE (echo test > foo) tmp/foo - IN_CREATE tmp/foo - IN_OPEN tmp/foo - IN_MODIFY tmp/foo - IN_CLOSE_WRITE IN_CLOSE (echo test >> foo) tmp/foo - IN_OPEN tmp/foo - IN_MODIFY tmp/foo - IN_CLOSE_WRITE IN_CLOSE (touch foo) tmp/foo - IN_OPEN tmp/foo - IN_AT
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く