タグ

ブックマーク / blog.asial.co.jp (23)

  • PHP+Kestrel+Supervisorでお手軽タスクキューイング

    こんにちは、久保田です。 ウェブサービスでは、ユーザのアクションに従ってバッチ処理を行わなければならないケースがままあります。この記事では、バッチ処理の手法の一つであるタスクキューイングをPHPとKestrelとSupervisorを利用して行うやり方の導入を紹介します。 なぜなにタスクキューイング ウェブサービスでは、ユーザのアクションに従って非同期にバッチ処理を行うようなケースがよくあります。 例えばflickrのような写真を共有するウェブサービスで言えば、ユーザが写真をアップロードしたあとに非同期でその画像の複数のサムネイル生成や加工をしなければならないケースがあります。 よく見られるのは、DBにバッチ処理のためのタスクデータを入れておいて、後でcronで定期的に起動するワーカープロセスからバッチ処理を行う方法です。このやり方には、ワーカーを複数プロセスで扱いづらい、処理がリアルタイ

    PHP+Kestrel+Supervisorでお手軽タスクキューイング
    cocoiti
    cocoiti 2012/02/09
  • PHPでリフレクション

    <?php // Entity/User.php namespace Entity; class User { private $name; private $gender; public function __construct($name, $gender) { $this->name = $name; $this->gender = $gender; } public function getName() { return $this->name; } private function getGender() { return $this->gender; } } 名前を保持するnameプロパティと、性別を保持するgenderプロパティを定義します。genderプロパティに対するゲッターメソッドはprivateにしてあります。 ■ ReflectionClass まずクラスの情報を抜

    PHPでリフレクション
  • PHPでバイナリプログラミング その1

    はじめまして、5月から入社した久保田と申します。 九州からはるばる上京してエンジニアとして働いています。 普段はanatooというIDでブログ書いたりしています。 また、BlankaというPHP5.3で動くフレームワークを開発していたり、はてな記法パーサなどに利用されているパーサコンビネータなどを公開しています。 今後、勉強会などにも積極的に参加していこうと思いますのでお会いしたときはよろしくお願いします。 さて、この記事ではPHPでのバイナリの扱い方について説明します。 バイナリとは、ざっくりと言えばテキスト以外のバイト列のことです。 バイト列とは1バイトで構成される任意の長さを持つ列の事で、1バイトとは256通りの値を表現できる8ビットのデータのことです。 画像や音楽、映像などのバイナリは全て、テキストエンコーディングに沿わないバイト列によって表現されています。 これらのバイナリを扱う

    PHPでバイナリプログラミング その1
    cocoiti
    cocoiti 2010/06/16
    バイナリプログラミング連載ktkr
  • symfony/lime + phpUnderControl を使ってみる

    と言うディレクトリに展開したという前提で説明していきます。 CruiseControlを起動するには、展開したディレクトリ直下にあるcruisecontorl.shを実行します。 気をつけるべき点は、起動時に環境変数の$JAVA_HOMEを呼び出して使う点です。 debianの場合だと、/usrを指定してやらないと、javaコマンドの呼び出しに失敗します。 exportするなり、cruisecontrol.shの中でJAVA_HOME=/usrを指定してやるなり、何かしらの対策処理は施しておきましょう。 phpUnderControl の準備 次に、phpUnderControlとそれに関連するるライブラリをインストールします。 phpUnderControl、および関連ライブラリは独自のpearチャンネル上で配布されているので、それらのチャンネルを登録したうえでpearコマンドでインスト

    symfony/lime + phpUnderControl を使ってみる
  • symfonyのウィジェット TIPS

    こんにちは、牧野です。最近、symfony1.2を使っています。 ということで今日はsymfonyのウィジェットについてです。 ウィジェットクラスはHTMLフォームのinputタグ等を簡単に生成するためのクラス群です。 詳しくはこちらのページを見てください。 http://www.symfony-project.org/forms/1_2/ja/A-Widgets フォームクラス、バリデータークラスと一緒に組み合わせて使うとデータの登録、編集画面が簡単に作れるようになります。 また、ウィジェットクラスは様々なものが用意されていて、大抵の入力項目はウィジェットを使って作ることができます。 が、使っているうちにちょっとカスタマイズしたい場面が出てくると思います。 今回はそんな時に役立つかもしれないTIPSです。 ・ラジオボタンのHTMLタグ デフォルトのままでテンプレート内でrenderメソッ

    symfonyのウィジェット TIPS
  • IBを使わずに作るiPhoneアプリ作成入門:第3回

    呼び出そうと思ったら、もうそこにはオブジェクトがなかった。。。何を言っているかわからねーと思うが(ry みたいなエラーになります。(こういう状態になったポインタを「ぶらさがりポインタ」と呼んだりもします。) ・・・ということは。 誰かが勝手にオブジェクトを破棄できてはいけないわけです。 ちゃんと「誰も必要としていない」という事が判って初めて、破棄/解放してよいのです。 ・・・ということはということは。 誰がこのオブジェクトを保持しているか、を、何かしらの方法でプログラム側が知っておく必要があります。 少なくとも「まだ必要としている変数がいるかどうか」が把握できる仕組みと、「誰も必要としなくなったときに自動的に破棄する」という仕組みが必要です。 そして、この仕組みを上手い事やってくれる手法が、「リファレンスカウンタ」方式です。 リファレンスカウンタとは、オブジェクトのポインタが別の変数にコピ

    IBを使わずに作るiPhoneアプリ作成入門:第3回
  • 箸袋でバラの箸置きを作ろう

    9月/10月社内Tech勉強会レポート – NodeJS/Privacy Sandbox API/3rdPartyCookie/NodeJS/PromiseAll/cascae/

    箸袋でバラの箸置きを作ろう
    cocoiti
    cocoiti 2009/02/12
     これはすごい。
  • MemcachedではなくRepcachedをセッション管理に使用する(ついでにTokyo Tyrantについても少し)

    9月/10月社内Tech勉強会レポート – NodeJS/Privacy Sandbox API/3rdPartyCookie/NodeJS/PromiseAll/cascae/

    MemcachedではなくRepcachedをセッション管理に使用する(ついでにTokyo Tyrantについても少し)
    cocoiti
    cocoiti 2008/12/24
    Flare はかなりいいかと>セッションストレージ
  • アシアル社員のイラスト公開 番外編 ~Saity先生3D化への道~

    こんにちは、阿部です。 最近、3Dソフトを使う機会があり、せっかくなのでSaity先生を3D化してみようかと考えました。 (Saity先生は、アシアルが運営するPHP情報ポータル&コミュニティサイト「PHPプロ!」で活躍中です!PHP初心者向けの講座「PHP基礎講座」の先生なのです☆ちなみにPHP講座では、日yossy先生のSmarty講座も連載を開始いたしました!) 今回からアシアル社員イラスト公開の番外編という事で、3D版Saity先生を紹介していきます! なかなか時間がとれず、完成は来年になりそうですが。年末の事務員は忙しいのです。。 現状は、少し顔の形ができてきたくらいです。(まだ後頭部や左側はハゲの状態です。Saity先生ゴメンネ。) 何かに使う予定もなかったので、ポリゴン使い放題で進めたら多すぎるのも面倒なものでした。やっぱり無駄遣いはよくないんですね。。 作っていて楽なとこ

    アシアル社員のイラスト公開 番外編 ~Saity先生3D化への道~
    cocoiti
    cocoiti 2008/12/04
    500get
  • Doctrineで論理削除を意識せずに扱う

    上記のように記述すればSoftDeleteテンプレートが実装されます。 それではSoftDeleteテンプレートがどのようなことを行うのかを少し説明します。 SoftDeleteテンプレートを実装したモデルは自動的に deletedカラムがモデルに追加され、trueの場合は削除として扱われるようになります。 検索時は、Doctrine_Queryのexecuteメソッドが実行されたタイミングで、(deleted = false OR deleted IS NULL)の条件が追加されます。もちろんエイリアスも張られます。 Doctrine_Tableに実装されているファインダメソッド(findXXX)や$article->getComments()などとやったときも内部でDoctrine_Queryが生成されるので Doctrineのオブジェクトを取得する場合は大体大丈夫なのではないかと思い

    Doctrineで論理削除を意識せずに扱う
    cocoiti
    cocoiti 2008/10/27
    O/Rマッパとして着々と進化してる感
  • フリーで使えるセキュリティスキャナ・ツールまとめ

    これで、インストールしたマシンの8080番ポートをプロキシとして指定して、チェックしたいサイトをブラウジングするだけです。 絶対に自分で管理していないサイトに対して実行しないでください。 こうしてできた、hoge.log を同梱のratproxy-report.shで解析すれば、レポートがHTMLとして出力されます。 レポートのHTMLもスクリーンショットも公開されています。 その他のプロキシ型スキャナ その他にもプロキシ型のスキャナは色々とあるのですが、RatProxyのドキュメントページに自分が調べたものは大体記述されていました。なので、簡単に触れるにとどめておきます。 1. WebScarab 2. Paros 3. Burp 4. ProxMon 5. Pantera 6. Chorizo! それぞれのプログラムについて、検索すれば使い方はわりと簡単にわかると思います。また、Pro

    フリーで使えるセキュリティスキャナ・ツールまとめ
  • ImageMagickでいろいろなサムネイル画像作成に挑戦

    ■画像サイズの変換方法 resizeオプションとサイズを指定して画像サイズを変更することができます。 縦横比は自動的に適切な比率で調整してくれるのが特徴です。

    ImageMagickでいろいろなサムネイル画像作成に挑戦
    cocoiti
    cocoiti 2008/05/09
    imagickは月に一回のペースで更新されてるよね
  • symfonyの携帯絵文字プラグインを作りました。

    こんにちは、亀です。 最近はあつまろ☆ねっとで携帯のことをあれこれやっているのもあって、携帯回りの事に妙に詳しくなってきました。 あつまろ☆ねっとは携帯向けの掲示板とメーリスを備たサイトとして考案していたので、必然的に絵文字周りは ・HTMLコーディング時の容易な入力 ・最低3キャリアの絵文字相互変換 ・auからのメール絵文字の解析 等が必要とされることになり、やっぱしっかり作らないとだめだなぁ、と思ってあつまろ☆ねっと開発の傍らで絵文字ライブラリの作成を行っていました。 で。。。最初は普通のライブラリとして作成していたんですが

    symfonyの携帯絵文字プラグインを作りました。
    cocoiti
    cocoiti 2008/02/29
  • ハリー・ペチパー ☆ミ

    こんばんは。2008年の初投稿となる高橋です。 年もどうぞよろしくお願いいたします。m(_ _)m さて、年明けにアシアルでは社内コンペがあり、その時のプレゼン資料としてFlashムービーを作成しました。 Flashムービーを作るのは初めてな上に締め切り間際に慌てて作ったため、すごいしょぼしょぼなのですが、折角なので公開してみます。 時間もちょうど30秒と短いので、気楽に見ていただければと思います。 これだけ見るとなんのプレゼンだったのかわかりませんね(^^; そこは皆さまのご想像にお任せするとして、私はセンスがないので、どなたかトレーラームービー風にかっこいいのを作ってくださると嬉しいです。 なお、このFlashムービーを作るにあたって、無料で利用できる Suzuka を使いました。開発者ならびに関連ファイルの開発者の皆さま、まことにありがとうございます。

    ハリー・ペチパー ☆ミ
    cocoiti
    cocoiti 2008/02/15
    にやっとしてしまった
  • VistaでVMWare Serverを使う

    現在の私の開発サーバはVMWare Server 1.0.4上で動作しているDebianです。 以前はcoLinuxを使用してその環境を構築していたのですが、Windows XPからVistaに移行した結果TAP-Win32を使用してのNATでネットワーク接続が使えなくなってしまいました。XPの頃は下記のようにnetshコマンドを使って設定ができていたのですが、 netsh routing ip nat install netsh routing ip nat add interface "ワイヤレス ネットワーク接続" full netsh routing ip nat add interface "ローカル エリア接続" full netsh routing ip nat add interface "Tap" private netsh routing ip dnsproxy ins

    VistaでVMWare Serverを使う
    cocoiti
    cocoiti 2007/12/26
    悩んでたのが解決したありがとうございます。
  • Smartyのバグ ~default_modifiers~

    わかりやすいネタのほうがソーシャルブックマーク数が稼げるからこういうネタを掲載するわけじゃないです。 そう、ぼくはただこの土日を使って社内のイケメンリストを作りたかったんです。 硬派なぼくはerror_reportingは常時E_ALLだし、クロスサイト・スクリプティング(以下XSS)の脆弱性を産むようなミスは犯したりしないゼ。 へなちょこでもいい。たくましいプログラミングをしたいんだ。 しかし悲劇は起こりました。 1 イケメン一覧スクリプトを作成する まず、Asial社内のイケメンリストを配列に持ち、Smartyのassignメソッドで配列をテンプレート変数に割り当て。 また、XSSの脆弱性を未然に防ぐため、Smartyのdefault_modifiersにescapeをセットし、自動的にhtmlspecialchars関数がかかるように設定します。 ikemen_list.php <?

    Smartyのバグ ~default_modifiers~
    cocoiti
    cocoiti 2007/12/02
    やや、個人情報が流出している感がある。女性版があると大問題に。
  • Silverlightで動画プレイヤーを作ってみた

    MicrosoftのSilverlightを使ってみました。 Hello Worldを出しただけじゃ面白くないので、簡単な動画プレイヤーを作ってみました。 SilverlightではXAMLと呼ばれるXMLベースのファイルで視覚的な構造を定義し、それをJavaScriptを使って動かします。 Flashとは違いテキストのままで動作させることが出来るので、コンパイル作業は必要ありません。 Silverlightはマルチプラットフォーム・クロスブラウザ対応ということですが、現状だと結構動かない環境もあるようです。Windows2000などでは動作しないかもしれないです。 Silverlightで構築するときは、基的に以下の5つのファイルを使用します。 Silverlight.js  ・・・Silverlightの体 Default_html.js ・・・基礎部分。ほぼ編集することはない。

    Silverlightで動画プレイヤーを作ってみた
  • アシアル社員のイラスト公開!

    9月/10月社内Tech勉強会レポート – NodeJS/Privacy Sandbox API/3rdPartyCookie/NodeJS/PromiseAll/cascae/

    アシアル社員のイラスト公開!
    cocoiti
    cocoiti 2007/11/22
    社員イラストとかうらやましいぃ
  • PHPにおすすめのエディタ(個人的に)

    <?php //(※使っているPHPエクステンションにより、使える関数が変化します) $func_list = get_defined_functions(); sort($func_list["internal"]); echo implode("\n", $func_list["internal"]); ?> あとは、PHPをやる場合は、必ずひつようになってくるHTMLと、JavaScript用の設定ファイルが、たしか同梱されていたと思いますので設定しておきます。(同梱されてなくても、Web探せばすぐ見つかると思います。) 2.コード補完 これも、どのエディタにも大抵あります。単語等を最初数文字入力してCtl+Spaceなどで残りの文字を補完して出してくれる機能です。 さらに、PHPの関数も補完対象に設定ですが、これもサクラエディタの場合、さっきのスクリプトで使ったファイルを設定してし

    PHPにおすすめのエディタ(個人的に)
    cocoiti
    cocoiti 2007/10/23
    ヘビーな、phpエディタ(std版)ユーザが来ました
  • 久々の趣味プログラミング

    森川です。 今回は秋元さんのブログをみて興味がわき、休日に趣味プログラムしてみました。 題材は、話題?のSeam Carvingです。あまり時間もとれなかったので、論文の最初に出てくるseamの削除しかやっていません。というかそれ以上のことを実装しようとすると、1日ではできません。。。 最初は難しいのかなと思ったのですが、意外や意外、すんごく簡単でした。でもPHPで実装したら、メモリ消費量がとんでもないので、実際の画面は公開できません。 せっかく実装したので、ソースコードだけアップロードします。 seam.php energy functionをひょっとしたら勘違いしているかもしれません。中心のコンテンツが大部分を占めるような画像ではあまり綺麗にリサイズできません。それと人間の顔も変な風になります(家のほうでは顔認識と組み合わせているようです)。 もっと効率的にできると思うのだけど、中々

    久々の趣味プログラミング