WEBアプリケーション研究室 開発ノート TOP

WEBアプリケーション研究室 開発ノート

How to see all commit messages from docker image.


docker history -q --no-trunc IMAGE_NAME | xargs docker inspect --format='{{.Id}} {{.Created}} {{.Comment}}'


    このエントリーをはてなブックマークに追加

とくにPHPというわけではありません。ちょっとしたテクニックなので紹介しておきます。ちなみにここを参考(というか丸パクリですが)にさせていただきました。


$date = new Zend_Date();
$date->setTimestamp(ceil($date->getTimestamp() / (10 * 60)) * (10 * 60));


サンプルはZend_Dateを使ってますが、UNIXTIMESTAMPなら何でもいけます。時間や日付の繰り上げがあるので、分だけに注目しないで、TImestamp全体でやるのがキモでしょうか。ceilを変えてやれば切り捨ても可能です。いつもの通り、言われてみれば単純ですが、皆さん賢いですなあ。

    このエントリーをはてなブックマークに追加

飛び飛びの連番が入ったテーブルで、ある数字より大きい空き番号を探す、という要件があり悩みました。

こちらのサイトを参考にさせていただき、なんと、一回のSQLでいけました。

下記の例では4より大きな空き番号を探してます。


SELECT
main.entry_number+1 AS start
FROM point_history AS main
LEFT JOIN entry AS r ON main.entry_number + 1 = r.entry_number
WHERE r.entry_number IS NULL
AND main.entry_number > 4
ORDER BY main.entry_number


答えを知ればそれほどむずかしい事ではないですが、思いつかくて悔しかったです。

    このエントリーをはてなブックマークに追加

Smartyでいつもわからなくなるのでメモです。

配列のキーに動的にアクセする時は


{$form[$key]->render() nofilter}


こんな感じでアクセスできますが、このキーの部分に連結した文字列を使いたい時の方法がはっきりマニュアルに出てません。

正解は下記のとおりです

{$form["{$key}_date"]->render() nofilter}


ポイントはダブルクオーテーションで囲むこと。省略するとエラーになります。

関係ありませんが、Smartyの日本語版マニュアルが`2011-01-10`から更新されてません。英語のマニュアルを見るようにしましょう。

    このエントリーをはてなブックマークに追加

何度も調べてるので備忘録でメモします。

■特定のURLに来たアクセスをIPアドレスごとにグルーピングしてカウントする


zcat access_log.23.gz | grep -E 'GET [^"]+/path/to' | cut -d ' ' -f 1 | sort | uniq -c | sort -n


zcatは圧縮したままcat、grepのEオプションは拡張正規表現、cutは半角スペース(dオプション)で区切って1つ目(fオプション)のみを抜き出す。sortで並び替えた後、uniqで同じ物をまとめカウント付き(cオプション)で表示、改めてsortで数の昇順で並び替えてます。

■特定のURLのアクセスログを特定のデータのみ表示

zcat access_log.23.gz | grep -E 'GET [^"]+/path/to' | cut -d ' ' -f 4,5,1,6,7,8,11


cutコマンドはdオプションで区切り文字(デリミタ)を指定し、fオプションでn番目を指定して、特定の文字のみを抜き出すコマンドです。

■おまけ - 複数のログにまたがって検索

zcat access_log.23.gz access_log.22.gz access_log.21.gz


zcat(cat)はスペース区切りで複数のファイルを一気に出力可能です。


    このエントリーをはてなブックマークに追加