タグ

ブックマーク / blog.bz2.jp (6)

  • pseudoQueue作った(PHP) - ベイエリア情報局

    元Vine SPARC開発者。2003年度未踏ユース採択者。ウノウ株式会社立ち上げ時に参画して4年間CTOとして従事。退職して現在P&Aラボにて客員起業家として起業準備中。 メッセージキューとは 異なる処理の間でキューを用いてメッセージ交換を行う仕組みのことです。 生産者(キューを登録する)側は単純にキューに対してメッセージを追加します。 消費者(キューを消費する)側は単純にキューからメッセージを取り出して処理を行います。 PerlだとTheShwartzやGearmanが有名。 身近なところではcodereposでTheShwartzが使われています。 PHPでやるには akkyさんがJavaのActiveMQを使う方法を紹介してくれてます。 秋元@サイボウズラボ・プログラマー・ブログ: PHPでメッセージキューを使う もっと簡単にできないかなと思ってpseudoQueueというクラスを

    sotarok
    sotarok 2008/05/06
    メッセージキュー / sqlite
  • 1プロセスだけが実行されることを保証するクラスを作った(PHP) - ベイエリア情報局

    元Vine SPARC開発者。2003年度未踏ユース採択者。ウノウ株式会社立ち上げ時に参画して4年間CTOとして従事。退職して現在P&Aラボにて客員起業家として起業準備中。 cronにジョブを登録して、バックグランドで定型処理を実行することをよくやるかと思います。 その時に必ず一つのプロセスだけが実行されることを保証したい時があります。 こういう時にみなさんはどのようにやっているでしょうか。 案1: cronに時間間隔をある程度あけて実行する 毎分実行するとかじゃなくて、5分くらい間隔を開けて実行するようにする。 5分以内に処理が終われば、複数プロセスで実行されることはありません。 cronの設定をちょこっと変えるだけで簡単にできます。 でも、こういうことするとメンテナンスが面倒だし、いつの間にか複数プロセスが立ち上がってたりするんですよね ToT 案2: ロック処理をいれる ロック処理を

    sotarok
    sotarok 2008/05/04
    「同じプロセスが実行されてない場合は、続きの処理を実行しますが、既に他のプロセスで実行されてた場合は直ちに終了します。 」 これは良い!!!
  • ベイエリア情報局: ライブラリが直接実行された場合はプログラムとして実行する

    元Vine SPARC開発者。2003年度未踏ユース採択者。海外でも活躍できる国際的なLinuxエンジニアになることを夢見て日で頑張っています。ウノウ株式会社にて写真共有SNS「フォト蔵」を開発中。 rubyのライブラリとかで、ファイルの最後に次のような感じになってるものがある。 if __FILE__ == $0 ... end こういう風に書いておくと、他のファイルからインクルードした場合はライブラリの機能だけ提供するんだけど、そのライブラリ自体を直接単体のスクリプトとして実行できるようにもなる。 でもこれはスクリプトとして使われることを意図してなくて、単なるサンプルプログラムとして提供されています。 これ結構便利なんですよね。 簡単なライブラリの使い方がすぐに分かるし、ちょっとお試しで使ってみるのも簡単にできる。 ドキュメント読むよりも、プログラム見た方が早いし。 でも、PHPでや

    sotarok
    sotarok 2008/04/21
    if (isset($argv[0]) && __FILE__ === realpath($argv[0]))
  • ARGFを作った - ベイエリア情報局

    元Vine SPARC開発者。2003年度未踏ユース採択者。ウノウ株式会社立ち上げ時に参画して4年間CTOとして従事。退職して現在P&Aラボにて客員起業家として起業準備中。 ARGFとは rubyで使える機能で、入力を抽象化してくれます。 ARGFを使うとフィルタプログラムのようなコマンドラインプログラムが簡単に書けます。 ARGF これ、とっても便利でrubyでプログラム書くときは(知らずに)よく使います。 ARGFを使うと入力が標準入力だろうが、ファイルが引数で複数渡されようが、プログラムを全く変更しないで動作させることができます。 % vim cat.rb # cat と同じプログラム ARGF.each {|line| print line} # 当はもっと簡単に書ける % ruby cat.rb < cat.rb # 標準入力から % ruby cat.rb foo.txt b

    sotarok
    sotarok 2008/04/20
    コマンドラインからPHPを実行するとき rubyのAGRFを移植
  • PHPのyaccを作ったよ - ベイエリア情報局

    元Vine SPARC開発者。2003年度未踏ユース採択者。ウノウ株式会社立ち上げ時に参画して4年間CTOとして従事。退職して現在P&Aラボにて客員起業家として起業準備中。 yukobaさんがkmyaccをpythonに対応させたというので、僕も頑張ってPHPに対応させてみました。 他の言語のテンプレートを参考にしながら作ったら当にできたよ。\(^o^)/ kmyaccの言語依存部分の切り離し具合は当にすごい!! yukobaさんがpythonに対応させたものにパッチをあてました。 パッチとパッチをあてたものを公開しておくので、お好きな方をダウンロードしてコンパイルして使ってみてください。 kmyacc-4.1.4-php-patch kmyacc-4.1.4-php.tar.bz2 なんでこんなことやってるかというと、無謀にもPHPでHaskell Hackathonに参加しようとし

    sotarok
    sotarok 2008/01/28
    Haskell実装のPHP代表がんばってください!!w
  • phsh(PHPでシェル)を公開します - ベイエリア情報局

    元Vine SPARC開発者。2003年度未踏ユース採択者。ウノウ株式会社立ち上げ時に参画して4年間CTOとして従事。退職して現在P&Aラボにて客員起業家として起業準備中。 PHPカンファレンス2007のライトニングトークでPHPでシェルを作るというお題で発表しました 思いっきりウケ狙いで発表したのですが、思いのほか好評なようでよかったです。 プレゼンの資料は公開しておきますが、やっぱりデモでみせないと、あまりインパクトがないですね。 デモでは、実際に使ったり、phsh をログインシェルにしてみたりしましたw ソースコードは個人的な公開リポジトリで管理してますので、ダウンロードして使ってみてください。 煮るなり焼くなりいじってやってくださいな。 phsh 要 PEAR::Console_Getopt, readline, pcntl です 快適なシェルライフを!!

    sotarok
    sotarok 2007/11/29
  • 1