2012年 1月 の投稿一覧

広島帰省から帰ってきた。

帰ってきたのは10日(火)、成人式の次の日。
酒飲みながら振り返っております。

——

広島帰省から帰ってきた。
9ヶ月ぶりの広島だった。
めったに帰れないから今回は1週間いることにした。
テスト、レポート、その他諸々やることがあり、学校も始まるからそれ以上長くいるのは正直帰ってからがキツい。
久しぶりに帰省するからしばらく会ってない人がいる、会いたい人がいる。
帰省1週間は毎日誰かに会いに行く予定だったけど、1週間はあまりに短すぎて予定が入り切らない。
泣く泣く断った誘いもあった。

帰省前日、広島の友達と待ち合わせ時間とか場所とかの予定の詳細を詰めていた。
途中で話が逸れて成人式のことを話してた。

続きを読む

CakePHP findで年、月検索

MySQLのdatetime型のカラムで年or月で検索する方法ないかなーって調べてたら出てきた。
[MySQL]MySQLで月、年単位で値を抽出する方法::僕のススメ。
MySQL 5.1 リファレンスマニュアル :: 7 関数と演算子 :: 7.6 日付時刻関数

DATE_FORMAT(date,format)
MySQLのDATE_FORMAT関数を使うことで解決。
これは第1引数のdate(日付)を第2引数のformatに基づいてフォーマットする関数だ。
format文字列に使用することができる指定子%Yは西暦4ケタを指し、%mは月2ケタを指す。

この関数をCakePHPのfindのconditionsで使って年・月にマッチしたレコードを抽出した。(CakePHP1.3)

[php title=”model”]
<?php
class TStatusObj extends AppModel {
var $name = ‘TStatusObj’; // t_status_objsはツイート(statusオブジェクト)を保存しているテーブル

function getMonthlyArchive($months = 12)
{
$archive = array();
$i = 0;

// 最新12ヶ月ぶんのアーカイブを取得する, 引数で何ヶ月分取得するか指定可能
while(count($archive)<$months){
$month = date("Ym", mktime(0, 0, 0, date("m")-$i , 1, date("Y")));
// ツイートした時刻のカラムcreated_atから月毎のツイート件数を取得
$archive_count = $this->find(‘count’, array(
‘conditions’ => array(
array(‘DATE_FORMAT(TStatusObj.created_at, "%Y%m")’ => $month)
)
));

// 件数が0じゃない場合、日付と件数をpush
if(!empty($archive_count)){
$month = preg_replace(‘/^20\d{2}/’, ‘$0-‘, $month);
array_push($archive, array(‘month’=>$month,’count’=>$archive_count));
}
$i++;
}

return empty($archive) ? false : $archive;
}
}
[/php]

あとはcontrollerからmodelのgetMonthlyArchiveメソッドを呼んでviewに渡せば良いんじゃないのでしょうか。

[php title=”Archiveの出力例”]
Array
(
[0] => Array
(
[month] => 2012-01
[count] => 22
)

[1] => Array
(
[month] => 2011-12
[count] => 142
)

[2] => Array
(
[month] => 2011-11
[count] => 162
)

[3] => Array
(
[month] => 2011-10
[count] => 166
)

[4] => Array
(
[month] => 2011-09
[count] => 166
)

[5] => Array
(
[month] => 2011-08
[count] => 131
)

[6] => Array
(
[month] => 2011-07
[count] => 137
)

[7] => Array
(
[month] => 2011-06
[count] => 179
)

[8] => Array
(
[month] => 2011-05
[count] => 160
)

[9] => Array
(
[month] => 2011-04
[count] => 110
)

[10] => Array
(
[month] => 2011-03
[count] => 104
)

[11] => Array
(
[month] => 2011-02
[count] => 58
)

)
[/php]

ここ半年は月平均で150回ツイートしてますね。ということでTwitterのほうもフォローよろしくお願いします。=> @Chan_tera

HTML5API Drag&Dropを使ってみた

ただいまHTML5を勉強中。新しい要素とかコンテンツ・モデルとかマークアップの部分はだいぶ覚えたけどAPIがまだまだ。
だってJavaScript全然わかんないんだもん。JavaScriptも勉強します。

以下試しに書いてみたコード。(Chromeでは動きます。他のブラウザで動かないよって人は教えてください。)

続きを読む

Hello World!

あけましておめでとうございます。

2012年になったということで今年はブログを書いてみようと思う。
内容はふだん自分が思ったことや発見、技術系の備忘録とか。
ブログでなんらかのアウトプットをすることで思いがけない良いことが起きたらいいなと密かに思ってる。