Developing applications to handle the natural languages and written scripts of the world—or even a small handful of them—is an impressively large task. …

Q4M + Parallel::Prefork + Signal handling + Log::Minimal conditions precedent: use daemontools & multilog Points: make DB connection after fork do not trap SIGTERM while calling queue_wait(), so that the process can be shut down while waiting for the response from q4m remove $time and add $PID for log. Because I'm using multilog. It prints the tai64n automatically(and, tai64n is better). package O
こんにちわこんにちわ!YAPC::Asia 2010でベストスピーカー賞(次点)を頂いた nekokak です。 今回は拙作 Jonk でオレオレJobQueueフレームワークを作るお話をします。 はじめに なぜJonkをつくったのかについては、JobQueueManagerについてを ご覧頂ければと思います。 簡単に言うと、やりたい事って案件によりけりだから、自分でその案件にあったJobQueueフレームワークつくれたほうがいいよね! です。 install $ cpanm Jonk だけです。依存モジュールはTry::Tinyというモジュール一個だけなので、 全く問題無く入るでしょう。 依存モジュールが殆ど無いのがJonkの売りの一つです。 JobQueueを管理するためだけに、よくわからないORMがインストールされてしまったり よく分からないモジュールがインストールされるのってやじゃ
それ Proc::Guard 0.04 でできるよっていう話 http://d.hatena.ne.jp/antipop/20101130/1291112500 Proc::Guard をつかってこういう風にするのはどうか。$worker_guard ってのが Scope::Guard あるいは AnyEvent の guard みたいなかんじになってます。スコープをぬけるときに、自動的にプロセスを kill した上で wait して、ゾンビプロセスをのこさない設計になっています。 proc_guard(sub { }) の中は、子プロセスの中でうごくっていうのがキモですね。 use strict; use warnings; use Test::TCP; use Test::More; use Proc::Guard 0.04 qw/proc_guard/; use Gearman::W
Docker をいじって遊んでいる。 http://www.docker.io/ Docker は PaaS ベンダの DotCloud がその PaaS のバックエンドとして使っている (?) ミドルウェアを公開したもの。適当な条件の VM をポコポコ生み出してはテストや実際の運用に使うことができたりするもの。例えば「Ruby と Bundler が入っている VM」みたいなのを設定で作っておくと、後日何か Ruby でアプリケーションを動かしたいと思ったときにそのイメージをベースに VM を作ってデプロイしてやればすぐにアプリケーションが動き出す。そもそも PaaS がやっているのはそういう事で、それを汎用化したのが Docker。Travis CI のような、各言語ごとの実行環境が整った VM みたいなものに任意のコードを渡してビルドさせる、みたいなプラットフォームを作るのにも使える
昨日 http://d.hatena.ne.jp/naoya/20130620/1371729625 で書いたように Docker を使えば、欲しい VM を "任意の状態" で簡単にかつ" "瞬時に" コピーして作り出すことができる。 「任意の状態」というのは、例えば「OS は CentOS で、Ruby と Chef が入っている」みたいな VM のこと 「瞬時に」というのは本当に瞬時。VM の起動時間を待ったり、Ruby や Chef を入れる時間を待つ必要はない serverspec でテストをする場合、真っ新な VM を用意してそれにプロビジョニングを行って、その後に破棄するみたいなことを良くする。このとき「真っ新なVM」を立ち上げるのに、Vagrant などが使えるが、Vagrant だとテストの度に VM を一から作り直す・・・つまり vagrant up しなければいけない
Docker はひとつの Linux システムの上で、複数の Linux システムを動かすためのソフトウェアだ。システムの分離には Linux Containers (LXC) を、ファイルシステムまわりには Advanced multi layered unification filesystem (Aufs) をつかっている。 Docker は Go で書かれている。ソースコードは全体でだいたい15,000行で、そのうちおよそ 2/3 が本体、1/3 がテストとなっている。 % cat **/*.go | wc -l 14976 % cat $(ls **/*.go | grep -vi test.go) | wc -l 9797 % cat $(ls **/*.go | grep -i test.go) | wc -l 5179 % Docker Init, Docker Daemo
伊藤直也さん, 宮下剛輔さんをゲストに迎えて、Docker, chef, serverspec, Travis CI, Vagrant, サーバプロビジョニング、テスト などについて話しました。 0:00 miyagawa: 今日もゲストが二人いまして、一人目はおなじみの、直也さんです。 naoya: こんにちは。若干食傷気味だと思うんですが……。 miyagawa: いや(笑)。そんなことないと思います。 naoya: これ4回目でしたっけ。 miyagawa: そうですね。もう一人は昨日Twitterで声をかけて、ブッキングするっていう。ラクな時代になった感じなんですけど、serverspecとかの作者でもあるmizzyさんこと宮下剛輔さんです。 mizzy: こんにちは。よろしくお願いします。 miyagawa: 土曜日にすいません。 mizzy: いえいえ。 miyagawa: 最
Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 Go言語は、システムプログラミング言語であり、目標は、C++のような多目的システム言語です。このドキュメントは、熟練したC++プログラマ向けに書かれたもので、GoとC++との違いについて説明します。両言語の類似点については、このドキュメントの範囲外です。 より一般的なGo言語の手引きは、チュートリアルまたは実践Go言語をご覧ください。 Go言語の詳細な解説は、Go言語仕様をご覧ください。 コンセプトの違い Go言語には、コンストラクタやデストラクタを持つようなクラスはありません。Go言語では、クラスメソッド、継承によるクラスの階層、仮想関数が無い代わりとして、あとで解説するインタフェース
だいたいこのへんで教えてもらった話のまとめです。 http://lingr.com/room/perl_jp/archives/2013/04/03 CPANで名前空間を取るのは簡単です。今ならCPANに上げるコードベースの「どこか」に package Hoge; と書けば、CPAN Indexerにインデックスされていとも簡単にHoge名前空間のオーナーになれます。 (執筆時現在Hogeのオーナーはいません) これはlib/以下の.pmファイルやファイル先頭のpackage宣言だけに限った話ではありません。 例えば、example/MyApp.pmとかも対象です。 ちなみに誰がどの名前空間を持っているかは以下を見ることでわかります。 http://www.cpan.org/modules/02packages.details.txt 多くの場合この挙動に困ることはありませんが、以下の様な
2013-06-23 新人研修 最近仕事で新人研修やってるのでそれについて。 JavaScriptの教材を作る 業務システムでもJavaScript大事になってきてるよーって事で、初学者用のJavaScript入門教材を作った。Excel方眼紙駆逐したかったのでSphinxで作った。誰もできる人いなかったっぽくて僕に丸投げされたのでやりたい放題やった。 Sphinxはファイル変更する度に自動ビルドさせたかったのでCoffeeScriptでビルドさせてた。 fs = require 'fs' exec = require('child_process').exec path = 'source/' console.log "start watch: #{path}" fs.watch path, (curr, prev) -> cmd = "make html" exec cmd, time
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く