タグ

2013年12月4日のブックマーク (11件)

  • PHP 開発でも Grunt を使う - ngyukiの日記

    PHP Advent Calendar 2013 in Adventar の3日目です。 前日は @matsubo さんの コピペで出来るComposer導入 でした。Composer、私も使ってます。 Grunt とは Node.js で作られた色々な作業を自動化するためのツールです。 普通は Node.js での開発や js とかのフロントエンド開発に使われますが、PHP での開発でもわりと便利です。 PHP のための Grunt プラグインも色々あるので、とりあえず次の2つだけ使ってみます。 grunt-phpunit grunt-php 前提 php や node や npm はあらかじめインストールしておいてください。 ソースとテストの準備 とりあえず phpunit が実行できるソースツリーを用意します。phpunit は今風に composer でインストールします。 $ f

  • RedisのSortedSetベンチマーク

    5,000,000ユーザ分のデータを作成してテストしました。 Add: 18,483 queries/s Update: 17,065 queries/s Get score: 21,520 queries/s Get rank: 19,632 queries/s 測定環境 クライアントプロセス数:1 (普通はマルチコアで動かすのでxコア数分ぐらい出るのかなーと思います)PHP 5.3.15 + Redis 2.6.12Core i7 2.3GHz使ったスクリプト

    RedisのSortedSetベンチマーク
  • JSON-RPC 2.0のススメ

    RESTfulなHTTPリクエストでは、JSONでデータを返すのが一般的ですよね。 そんなJSONのスキーマが各社ばらばらで、統一感が無いけど、何かしらの仕様があるかと思って探したら、ありました。 JSON RPC 2.0 正常系なら、意識しないでデータを直接表現してしまえば良いと思いますが、エラーを表現するときにはある程度仕様に則っておいた方がクライアント・サーバの相互運用性が高まります。 2.0の仕様は2010-03-26に出ているし、1.0から長く運用されているようだし、様々なユースケースをカバーしているので、JSONをやりとりする場合は、使わない手は無いかと思います。 プロトコルの内容は以下のような感じで、すごい大枠だけ決まっているので、2分もあれば理解できるでしょう。 --> {"jsonrpc": "2.0", "method": "foobar", "id": "1"} <-

    JSON-RPC 2.0のススメ
  • やっと公式コーディングルールができた!PHPのコーディングルール

    概要 PHPの標準コーディングルール(コーディング規約)は、http://www.php-fig.org/によって、PSR-0からPSR-3までのドキュメントによって細かく決められています。 そのコーディングルールに準拠するように自動的にソースコードを修正してくれるスクリプトが以下です。 https://github.com/fabpot/PHP-CS-Fixer 使い方 composerの場合、composer.jsonへ以下を追記する。 + "fabpot/php-cs-fixer": "0.3.*@dev" + "sebastian/diff": "1.0.*@dev" % php composer.phar update して、 % vendor/bin/php-cs-fixer fix <target dirctory> --dry-run </target> すると、どのように

    やっと公式コーディングルールができた!PHPのコーディングルール
  • rsyncのスラッシュの扱い

    fromのディレクトリにスラッシュ付けるときと付けないときで挙動がかわるのですが、挙動が直感的じゃなくて、はまるんですよね。 まとめ スラッシュを付けないと:そのディレクトリがdestinationに作成されるスラッシュを付けると:そのディレクトリの中身がdestinationに作成される % mkdir from % mkdir -p from/001/010/100 % mkdir -p from/002/010/100 % rsync -aru from /tmp/dest/ % tree /tmp/dest /tmp/dest └── from ├── 001 │   └── 010 │   └── 100 └── 002 └── 010 └── 100 7 directories, 0 files % rm -rf /tmp/dest % rsync -aru from/ /tm

    rsyncのスラッシュの扱い
  • rbenvインストール

    rvmを2つのシェルから同時に実行してしまい、壊れてしまいました。 ついでに、rbenvに乗り換えました。 Mac OSなら以下のコピペでいけます。 brew update brew install openssl brew install readline brew install rbenv brew install ruby-build echo 'eval "$(rbenv init -)" ' >> ~/.zshrc rbenv install --list rbenv install 2.0.0-p247 rbenv global 2.0.0-p247 rbenv exec gem install bundler

    rbenvインストール
  • Macでionice

    以下をコピペすれば、ioniceコマンドをインストール出来ます。 wget https://raw.github.com/elmarb/ionice/master/ionice.c gcc ionice.c -o ionice sudo install -o root -g wheel ionice /usr/local/bin/ 参考: https://github.com/elmarb/ionice

    Macでionice
  • awkでアクセスログ集計

    アクセスログ集計するときのawkワンライナーメモ 前提となるデータ。access.tsv アクション名 レスポンスタイム アクション毎の平均レスポンスタイムを遅い順で表示 % awk ' { total[$1] += $2 } { count[$4]++ } END { for (x in total) { printf "%s\t%f sec\n", x, total[x]/count[x] } } ' access.tsv | expand -t 50 | sort -k2 -nr アクション毎の最も遅いレスポンスタイムを遅い順で表示 % awk ' max[$1] < $2 { max[$1] = $2 } END { for (x in max) { printf "%s\t%f sec\n", x, max[x] } } ' access.tsv | expand -t 50 |

  • tloadコマンド

    Load AverageをCLIでグラフィカルに表示。 いつもは、dstat垂れ流しているけど、視覚的にすぐわかるから便利。 スケールがデフォルトだとload average 2 = 100% なので、CPU数に応じてスケールを100%表示にするコマンド % tload -d 1 -s `cat /proc/cpuinfo|grep processor|wc -l` 追記: ttyload 色が付いたやつを見つけた。

    tloadコマンド
  • chatworkで人捜し

    シェルで以下を実行した結果を % for i in `seq 1 1000`;do; echo -n "[To:$i]" ; done; echo サンプル出力 [To:1][To:2][To:3][To:4][To:5][To:6][To:7][To:8][To:9][To:10][To:11][To:12][To:13][To:14][To:15][To:16][To:17][To:18][To:19][To:20][To:21][To:22][To:23][To:24][To:25][To:26][To:27][To:28][To:29][To:30][To:31][To:32][To:33][To:34][To:35][To:36][To:37][To:38][To:39][To:40][To:41][To:42][To:43][To:44][To:45][To:46][To:47

    chatworkで人捜し
  • コピペで出来るComposer導入

    Ruby on Rails, Web Services, Software Development, Startups 概要 1日目の「PHPのプロパティをStrictに定義する」に続きまして、PHP Advent Calendar 2013 2日目です今後、Composerベースでの記事が出来ると思うので、早めに解説しておきます!コピペで導入できるように心がけます。 Composerとは PHPのライブラリ依存管理のデファクトスタンダードなパッケージ管理ツールです。Rubyのgem,PerlのCPANにあたるツールです。PHPのライブラリ管理ツールとして、PEARやPEAR2などがありますが、昨今のライブラリの管理はComposerに統一されつつあります。また、PHPで自作したライブラリを他の開発者に利用してもらうためにも、Composerで導入出来るようにしておくと利用されやすくなりま

    コピペで出来るComposer導入