タグ

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

  • PHP5.6.0alphaリリース!新機能を試す

    こんにちは、久保田です。PHP5.6.0alpha1が1月23日付けでリリースされました。 この記事では5.6に搭載される以下の新機能や変更を紹介します。 phpdbgデバッガ 可変長引数のための文法の追加 定数定義での計算のサポート その他NEWSファイルに記述されている変更 PHP5.6.0をビルドして試してみる PHP5.6の新機能を紹介する前に、まずはMacOSXやLinux環境にPHP5.6をビルドして試す方法を紹介します。Windows環境の場合にはビルド済みのバイナリが用意されているのでそれをダウンロードして下さい。 まず5.6.0alpha1リリースの記事にあるリンクから、PHP5.6.0alpha1のパッケージをダウンロードして解凍します。次に解凍したパッケージのディレクトリに進んでconfigureスクリプトを叩きます。

    PHP5.6.0alphaリリース!新機能を試す
  • JavaScriptのコーディング規約を気軽にチェック

    こんにちは、中川です。 今回は「Google JavaScript Style Guide」を気軽にチェックできるClosure Linterをご紹介したいと思います。 http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml Google JavaScript Style Guideのいいところですが、 規約だけでなく、しっかりしたツールも揃っているところが素晴らしいと思います。 コーディング規約はあったとしても、それに従っているか定期的に簡単にチェックする方法がないと、 いつしか守られないまま開発されてしまうことになりますね。 ※今回の内容はMacにて動作確認を行なっています。

    JavaScriptのコーディング規約を気軽にチェック
  • PHP+Kestrel+Supervisorでお手軽タスクキューイング

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

    PHP+Kestrel+Supervisorでお手軽タスクキューイング
  • PHP5.5 Alpha1リリース! 新機能を俯瞰する

    ジェネレータでは、yield構文を使ってforeachなどで利用できる値の列を生成することができます。 このコード例を見ただけだと、関数で配列を返したりイテレータを使うのと何が違うのかわからないと思います。PHP5.5で実装されたジェネレータの一番の特徴は、ジェネレータ内で一度値を生成すると計算が途中で止まって呼び出し元へ制御が復帰し、再びジェネレータ内に制御が戻ると以前の計算の位置から処理が再開されるということです。 以下のような例を実行します。 <?php function hoge() { echo "generating a\n"; yield 'a'; echo "generating b\n"; yield 'b'; echo "generating c\n"; yield 'c'; } function fuga() { $ret = []; echo "add a\n";

    PHP5.5 Alpha1リリース! 新機能を俯瞰する
  • 続・イラストでわかるgit入門の入門:ブランチを切る

    こんにちは!志田です。 最近ドラクエモンスターズを購入しました。 だいあくまの書・シュプリンガー・メッサーラのパーティでがんがんいってます。 配合を繰り返していると、「この組み合わせ、AにもBにもなるのに!どっちが強くなるんだろう?」ということがたびたび起こります。 そんなときに使えたらいいのが、今回ご説明するブランチです。 前回のあらすじ 前回の記事では、バージョン管理と基的な動作について、ご説明しました。 ・バージョン管理にgitを使おう! ・コミットを繰り返し、キリのいいところでプッシュする ・コミットを重ねることでバージョン管理ができる こんな経験ありませんか みなさん、これまでの経験で、こんな経験ってありませんか? ・直すことによる影響範囲が広いため、もしきちんと改修できて、テストもできたら安定バージョンに含めたい 今まで何度もコミット・プッシュを重ねてきたプロジェクト。現在は

    続・イラストでわかるgit入門の入門:ブランチを切る
  • CakePHPで国際化の方法を試してみました

    __関数ですが、第1引数に文字列を渡し、第2引数はデフォルトはfalseでecho出力し、trueを渡すと戻り値として返却になります。 (※basics.phpに関数定義されています。) そして、cakeのコンソールを使って翻訳ファイルを作成します。 $ /path/to/myproject/cake/console/cake i18n Hello yoshiki, Welcome to CakePHP v1.2.0.6311 beta Console --------------------------------------------------------------- What is the full path you would like to extract? Example: /data/myapp [Q]uit [Q] > /path/to/myproject/app #

    CakePHPで国際化の方法を試してみました
  • screen(だけ)の時代は終わり。tmuxでリモートコンソールを便利に使うTips

    ※ コメントをいただきましたので、一部文を修正させて頂きました。 1.サーバー・クライアントモデルというのはネットワーク接続なイメージになってしまいますので、取り外しました 2.mouse-utf8に関してコメントを頂いたので補足しました 3.タイトルを「screenの時代は終わり。tmuxでリモートコンソールを便利に使うTips」から「screenだけの時代は終わり。tmuxでリモートコンソールを便利に使うTips」に変更しました(変な誤解を受けられた方がいらっしゃったため) お久しぶりの田中です。最近、ずっと大型案件に携わっていた関係で、あまりブログ等でのアウトプットができていませんでした。これからはドンドン書いていきますので、どうぞよろしくお願いします。日はGNU screenと同様の機能を持つtmuxを紹介します。 GNU screenやtmuxは、1つのターミナル画面上に複数

    screen(だけ)の時代は終わり。tmuxでリモートコンソールを便利に使うTips
  • jQuery用プラグイン「Autocomplete」を使って入力補完機能を実装してみる

    こんにちは、中川です。 アシアルブログの検索でも利用している、suggest(入力補完)機能、便利ですよね。 以前「jQuery用プラグイン「jquery.suggest」を使って入力補完機能を実装してみる」という記事で松田がライブラリ紹介しています。 しかし、「jquery.suggest」ですが、表示が味気なかったり、カスタマイズ面で、若干モノ足りない部分が出てきました。。。 で、補完機能を実装する為のJavaScriptですが、いろいろ探せば結構たくさんでてきまして、その中でも使いやすく、機能も豊富でカスタマイズもしやすいjQueryプラグインの「Autocomplete」というものを見つけましたので紹介したいと思います。 ■ダウンロード先 http://plugins.jquery.com/project/autocompletex ■デモ ※適当にアルファベットを2文字くらい入力

    jQuery用プラグイン「Autocomplete」を使って入力補完機能を実装してみる
  • Gitを使い始めたらやっておきたい便利な設定いろいろ

    こんにちは、中川です。 Gitを使い始めてから、Subversionを使う機会がめっきり減ったこの頃です。 Gitだとローカルだけで簡単に使い始められるのもいいですが、気軽につくれるbranchや、mergeのしやすさがたまりませんね。 インストール直後の状態でも普通に利用できますが、 ちょっとした設定でさらに使いやすくなる方法をご紹介したいと思います。 ※今回ご紹介する内容はいずれも私のMacBook上での動作確認となり、Windows環境は考慮していませんがご容赦ください。 ■ユーザー名とE-mailアドレスの設定 まずは、最初にユーザ名と、メールアドレスを設定してしまいましょう。 $ git config --global user.name "yoshiki" $ git config --global user.email "yoshiki@example.com"

    Gitを使い始めたらやっておきたい便利な設定いろいろ
  • とても便利なvimのコマンド紹介

    こんにちは。小川です。 今日はvimのコマンドでも紹介しようかなと思います。 僕はテキストエディタは大体vimを使っています。 執筆をしたときもvimでやっていましたし、PHPvimで書いています。 vimって色々コマンドがあって便利ですよね。友達vimのコマンドを教えあったりして、度々「こんな便利なコマンドがあるのか!」と驚かされます。 今日はそんなvimのコマンドの中から普段使っていて便利だなーと思うものをいくつか紹介していきます。 ちなみにShiftを押しながらのコマンドは、アルファベットキーの場合は大文字で表記します。 エンターやエスケープを押下する必要がある場合はエンターやエスケープと記述します。「:」ではじまるコマンドモードはエンターを押さないと意味がないので、そこは省略します。 同時押しは+でつなげて表記し、基的には1文字ずつ順番に押下します。 ■ページ移動 「ggで」

    とても便利なvimのコマンド紹介
  • Titanium で iPhone開発を始めるときに気をつけておきたいこと7つ

    こんにちは、亀です。 当は今日はアシアルの日常を書く、という名目のブログ当番なんですが、どうせエンジニアの日常なんてコード書いてますよね。 ということで、最近使ってみたTitaniumについて書いてみる事にしました。 さて、最近ちまたでTitanium Mobileがあつい!という話が出ていて、入門記事もいろんなところで上がり始めていますね。 Titaniumをご存じない方のために簡単に説明しておくと、JavaScriptを使ってiPhone/Androidアプリを作ってしまおう、という物です。 果たしてどんなもんか!と、手元で作成中だったアプリをTitaniumを使って再実装してみたのですが、世間で言われるとおり所々で凝った事をしづらいものの、想像していたよりはずっと、リッチ・簡単・高速に作れる印象でした。 早い、安い、うまいなんてぎゅうどn(ry その開発の際に、Objective

    Titanium で iPhone開発を始めるときに気をつけておきたいこと7つ
  • symfonyのルーティングでメモリが肥大化する問題と対処法

    こんにちは。小川です。 先日、symfony(v1.2.7)で番(prod)環境に設定した場合に開発(dev)環境の数倍のメモリが消費されるという状況に陥ってしまいました。原因を追及した結果、ルーティングの設定に問題があることが発覚したので、今日はそのことを書こうと思います。 原因先には述べてあるとおり、ルーティングの設定に問題がありました。symfony1.2ではルーティングのキャッシュということを行っており、そのキャッシュが肥大化してメモリを大量に消費する原因となっていました。 対策としてルーティングのキャッシュを無効にしてキャッシュファイルの読み書きを行わないように設定ファイルを修正したところ、上記の問題は無事に解決しました。 <strong>追記@2009/09/28</strong> symfony1.2.9以降では初期状態でキャッシュが無効になるように設定されています。sym

    symfonyのルーティングでメモリが肥大化する問題と対処法
  • flashとのAMF通信用CakePHPコンポーネント

    こんにちは、中川です。 以前、「AMFPHPを試してみました」でphpとFlashの通信を試してみましたが、 今回はCakePHPを使ったFlashとAMFでのやり取りする方法を考えてみました。 CakePHPでAMF通信ができるものを探してみたところ、 「CakeAMFPHP」、 「CakeAMF」、 「CakeSWXPHP」 など、いろいろ見つかりました。 一通り試してみましたが、設置が面倒であったりうまく動かなかったり (私のやり方が悪いと思いますが、)どうもしっくりきませんでした。 もっとCakePHPから使いやすそうなものがないか探してみたところ、 「SabreAMF」というライブラリを見つけました。 これを通常の使用方法で試したところ、非常に簡単にやり取りができましたので、 CakePHPからも使いやすいようにCakePHP用のコンポーネントを作ってみました。 ※動作イメージ

    flashとのAMF通信用CakePHPコンポーネント
  • FirebugでPHPをデバッグするツールまとめ

    こんにちは、亀です。最近は体調がすこぶる絶不調です。季節の変わり目なので、皆さんも気をつけてください。 さて、ちょろちょろと話題に上ることの多いFirefoxを使ったPHPのデバッグ手法ですが、いくつか出てきたのでこの辺でサクッとまとめておこうかと思いました。 結果的に、だいぶ膨らみましたが。。。まとめ力ないなorz 1.Buggy クラス AJAX magazine というサイトで公開されていたサンプルスクリプトで、クラス1つだけの小さなライブラリです。 以前、PHPプロ!ニュースでもご紹介した方法です。 この方法は、PHPのエラーをハンドリングし、その内容をscriptタグに出力し、console.info()を用いてFirebugのコンソールに渡す、という仕組みです。そのため、Firebugは必須です。 記事掲載当時は、buggy.class.phpがダウンロードできたのでしょうか

    FirebugでPHPをデバッグするツールまとめ
  • PHPスクリプトの遅い部分を簡単に見つける方法

    extension=xdebug.so xdebug.profiler_enable = 1 xdebug.profiler_output_dir = /tmp と設定して、apacheのリロードを行えばXdebugが動作します。 これで、あとは、ブラウザで調査したいページにアクセスすれば、 /tmp/ 以下にプロファイルデータが作成されていきます。 次にプロファイルデータの閲覧の為に、 http://sourceforge.net/projects/wincachegrind/からWinCacheGrindをダウンロードしてwindowsマシンにインストールします。 あとは、WinCacheGrindで作成されたファイルを取り込めば、関数ごとの 実行時間をたどりながら確認することができます。 ※WordPress2.7.1日語版インストール直後のTOPページで試してみた場合です。 We

    PHPスクリプトの遅い部分を簡単に見つける方法
  • symfonyの携帯絵文字プラグインを作りました。

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

    symfonyの携帯絵文字プラグインを作りました。
  • 絵文字ライブラリをPEARパッケージ化&sfPictogramMobilePluginをバージョンアップしました。

    絵文字ライブラリをPEARパッケージ化&sfPictogramMobilePluginをバージョンアップしました。 こんにちは。相変わらず携帯ネタで引っ張る亀です。 先日、第32回PHP勉強会へ参加してきました。 詳細はid:maru_ccさん、id:sotarokさんなどなど大勢の方がブログに書いてくださっているので割愛しますが、なんだかEthnaの話とPHP以外の話が非常に多い会でした。 そのなかでid:maru_ccさんがEthnaでの携帯サイト構築の話をしてくださったのですが、結構いろいろな質問が飛び交っていて、やっぱりもっと携帯周りの情報共有が進むといいのにね、もったいないよね、という話を何名かの方としていました。 そんな話に少しばかり触発されて、絵文字プラグインを公開していた自分としても、もっといろんな人の役に立ててもらいたいと思って、syfmony用のプラグインだったものを

    絵文字ライブラリをPEARパッケージ化&sfPictogramMobilePluginをバージョンアップしました。
  • 携帯でGoogleMapを手軽に表示するPHPクラス : アシアルブログ

    皆さん、こんにちは。 笹亀です。 === 追記:みなさんからのたくさんのはてブをしていただけているので、せっかくなのでちょっと宣伝させてもらいます。 弊社の携帯コンテンツとして、携帯専用イベント支援サイト「あつまろ☆ねっと」というサービスを開始しました。「あつまろ☆ねっと(http://www.atmr.jp/)」は現在ベータ版ですが、ぜひぜひ利用してみてください。 後、恥ずかしながらPHPを出版することになりました。 ご興味のある方、気になる方、こちらもよろしくお願い致します^^ http://www.amazon.co.jp/exec/obidos/ASIN/4798114383/ === 遅くなりましたが、明けましておめでとうございます。 今年度もよろしくお願い致します。 先日ですが、毎月恒例の誕生日会を行いました。 メンバーの誰かが毎月誕生日を迎えるので、アシアルで毎月行ってい

    携帯でGoogleMapを手軽に表示するPHPクラス : アシアルブログ
  • PHPSpecでユニットテスト

    こんにちは、牧野です。 今回は、PHPでユニットテストを行う際に便利なユニットテスト用フレームワーク、PHPSpecの紹介です。 PHPSpecは、phpで振舞駆動開発ができるようにと作られたものです。 PHPSpecの詳細はこちら http://dev.phpspec.org/manual/ja/ 日語マニュアルが大変充実しています。 振舞駆動開発について簡単に説明すると、テストありきの開発手法であるテスト駆動開発を発展させたような開発手法で、このプログラムはこんな動作をするべきだ、という要求仕様(スペック)を、そのままテストコードとして記述しながら開発を進めていく、という感じのものです。PHPSpecのような振舞駆動開発用フレームワークでは、要求仕様がすぐわかるようなテストコードの書き方をするようになっているので開発効率が上がるようです。 ではさっそく、まずはインストールについてです

    PHPSpecでユニットテスト
  • 「スパムちゃんぷるーDNSBL」をPHPから利用するServices_SpamChampuru_DNSBL

    こんにちは、いつもブログネタなしで泣いてる亀です。 昨日、livedoorが各所で利用しているというスパムフィルタ「スパムちゃんぷるー」のDNSBL(ブラックリスト)を利用できるサービス「スパムちゃんぷるーDNSBL」が公開されました。 今回は、これをPHPから利用するクラスを作成してみました。 作成といっても、CPANにあるWebService::Livedoor::SpamChampuru::DNSBLPHP移植です。 またか!と思ったあなたは、僕の記事を見すぎです。 またCodeReposに入れるかなー、と思っていましたが、細かすぎてそこまでのものでもない気がしたので、とりあえず以下に貼り付けておきます。 もうちょっと改変したり、スパムちゃんぷるー関連のその他API等が増えてきたら、そのうちまとめて入れようと思います。 利用に関してですが、このクラスは外部ライブラリとしてPEAR

    「スパムちゃんぷるーDNSBL」をPHPから利用するServices_SpamChampuru_DNSBL