タグ

ブックマーク / anatoo.hatenablog.com (8)

  • 適当なスクリプトをデーモン化するのにSupervisorが便利 - id:anatooのブログ

    適当なスクリプトをデーモン化しようと思った時の典型的な要件が以下であるが、この記事でも紹介したpython製のプロセス管理ツールであるSupervisorを使うことによって解決できる。 プロセスの生死の監視する プロセスが死んだら勝手に再起動する 標準出力やエラー出力のログを取る 場合によっては複数プロセスを起動したい プロセスのステータスを簡単に確認したい この記事では、プロセス管理ツールSupervisorの導入を簡単に紹介する。 インストール easy_installからインストールできる。そもそもeasy_installが入ってない場合は以下みたいにインストール。 $ curl -O http://peak.telecommunity.com/dist/ez_setup.py $ python ez_setup.pySupervisorをeasy_installからインストールしま

    ariteku
    ariteku 2016/03/26
  • 自分が職を失った経緯 - id:anatooのブログ

    この記事は、How I Fired Myself.という記事の試訳です。 2010年の7月、私は22歳で、カリフォルニアのあるソーシャルゲームのスタートアップで働いていた。卒業したてで、私にとって初めての物の職だった。給料をもらってアパートに住んだ。そのころ私は初めて大人になったような気分でいた。 その会社の主力製品であるRPGのコードを書く二人のエンジニアのうちの一人が私だった。大学では哲学を専攻していた。これはどういうことかと言えば、問題に対してどうやって考えればいいかを知っていた一方で、ベストプラクティスや実用的なデザインパターンに関する知識は最低限しか持っていなかった。私は信じられないほどの熱意でもって自分が持っているごく普通のLAMPの知識を駆使した。 私の悩みの種であるゲームデザイナーはしばしばWorld of Warcraftからインスピレーションを得ていた。WoWは、Bl

    自分が職を失った経緯 - id:anatooのブログ
    ariteku
    ariteku 2013/03/09
  • Webプログラマーを志す学生さんがやっておくべきことは、目に見えるアウトプットを公開することだけ - id:anatooのブログ

    Webプログラマーを志す学生さんが、学生のうちにやっておきたい11の事 - Aggressive Style 5 「やっておきたいこと」ではなくてウェブプログラマとして就職したい人向けの話。上のエントリに触発されて(とかいいつつあまり内容を精読してないけど)自分の狭い視野で言えることを書く。 すごい単純なんだけどたったひとつだけで、ウェブアプリひとつ作って公開してソースコードも公開しておくこと。 これをやっておくと面接するときとかに話の種になっていいんじゃないですかねーと思った。っていうかもうこれやるだけで十分な気がする。自分が作ったものを引っさげてそのへん回れば、受託はやりたくないとか変にこだわったりしなければ拾ってくれるところはある。どんなアプリを作ってみればいいかがわからなかったら、学習用に作ったってことで既存のウェブサービスの簡単なクローンでも作ってみるといい。言語はなんでもいい。

    Webプログラマーを志す学生さんがやっておくべきことは、目に見えるアウトプットを公開することだけ - id:anatooのブログ
    ariteku
    ariteku 2013/01/03
  • Node.jsがどうして注目されているのか、もしくはどうして他のサーバサイドJavaScriptはスルーされているのか - id:anatooのブログ

    サーバサイドJavaScriptにはNode.js以前にもいくつかの実装がある。ちょっと前に注目されかけたものだと、現在はAppcelerater社に買収されたAptana社が出していたJaxerなどがあるが、きちんと調べるとRingoJsやnarwhalやv8cgiなど選択肢の一つとして数えられるサーバサイドJavaScript実装がいくつかある。ただ、これらはNode.jsのように注目を浴びているわけではない。 Node.jsとこれらの既存のサーバサイドJavaScriptの違いは、他のサーバサイドJSの動作モデルが既存のサーバサイドのものと変わらないのに対して、Node.jsの場合はそうではないから。具体的には、HTTPコネクションのハンドリング戦略が違っていて、既存の動作モデルが1コネクションに対して1プロセス/スレッド消費するのに対して、Node.jsの場合は非同期I/Oを用いて

    Node.jsがどうして注目されているのか、もしくはどうして他のサーバサイドJavaScriptはスルーされているのか - id:anatooのブログ
  • PHPとJavaScriptでHTTPストリーミングする話(Transfer-Encoding: chunked編) - id:anatooのブログ

    HTTPレスポンスをajaxでストリーミング的に受け取りたいとき、要するにHTTPストリーミングをしたい時には、Transfer-Encoding: chunkedなレスポンスを生成してやるとよい。こうするとAjaxではHTTPレスポンス全体を受け取るのを待たずに、レスポンスの中身にアクセスすることが出来るようになる。従って、一つのHTTPコネクションでサーバ側から任意のデータを好きなタイミングでプッシュすることが出来る。 コード 一秒ごとに生成されるJSONをストリーム的に受け取るデモのコードが以下。 <?php // push.php function output_chunk($chunk) { echo sprintf("%x\r\n", strlen($chunk)); echo $chunk . "\r\n"; } header("Content-type: applicati

    PHPとJavaScriptでHTTPストリーミングする話(Transfer-Encoding: chunked編) - id:anatooのブログ
  • PHPで失敗するかもしれない処理の返り値を配列で表現すると都合がいいという話 - id:anatooのブログ

    値を返すのに失敗するかもしれない処理を扱う場面というのは多い。 例えばあるファイルの中身を取得する処理について考えると、ファイルが存在する場合はその中身を取得して返すことができるが、そうでない場合は中身を取得するのに当然失敗する。 PHPに予め用意されているfile_get_contentsはまさにそれだが、この関数は処理に失敗するとfalseを返す。 ここでは別にもう一つ似た関数を作ってみる。 <?php function my_file_get_contents($path) { $buf = file_get_contents($path); return $buf === false ? array() : array($buf); } このmy_file_get_contents関数は、ファイルの中身を成功した場合は結果を持った配列を返し、そうでなければ空の配列を返す。 これから

    PHPで失敗するかもしれない処理の返り値を配列で表現すると都合がいいという話 - id:anatooのブログ
    ariteku
    ariteku 2011/06/16
  • PHPの次の十年のためのフレームワークBlankaの話 - id:anatooのブログ

    http://github.com/anatoo/Blanka タイトルはここからインスパイアされた。 最近PHP5.3で動く新しいウェブアプリケーションフレームワーク作っている。 まだ一度もリリースしていないが以下その概要について箇条書きとサンプルコードを少し書く。 PHP5.3以上で動く コントローラ = コールバック コントローラを作るのに必ずしもクラスを書く必要がなく、匿名関数でもよい hello worldのコード <?php include_once '/path/to/Blanka.php'; Blanka::app()->respond(function($b) { return 'hello world'; }); コントローラの最初の引数には必ずBlankaオブジェクトが渡される。 Blankaオブジェクトは、リクエストを得るためのメソッドや、レスポンスを返すメソッド、

    PHPの次の十年のためのフレームワークBlankaの話 - id:anatooのブログ
  • jQueryはモナドだ - id:anatooのブログ

    この記事はjQuery is a Monad | Important Shockという記事の勝手訳です。 追記1: bonotakeさんが補足記事を書いてくれています → JQueryがモナドかどうかとか - たけをの日記@天竺から帰ってきたよ 追記2: hirataraさんが補足記事を書いてくれています → jQueryは当にモナドだった - 北海道苫小牧市出身のPGが書くブログ Haskellプログラマーは誰しもがモナドに関する各々のチュートリアルを書くと言われる。というのも、一度モナドの定義とその可能性を理解すれば、モナド全体を囲む神秘性に挑戦して打ち破るのが容易になるからだ。門外漢からすれば、モナドはHaskellを真に理解することを妨げる不可解な障壁だ。モナドはとても不適当な名前で呪われていて、一風変わった文法を持ち、一度に何もかもやってしまう様に見える。しかしながら、その動き

    jQueryはモナドだ - id:anatooのブログ
  • 1