カテゴリー: Programing / Coding
【メモ】FuelPHPをインストールしてgitでプロジェクトを管理するまで
なんだか凄く嵌まってしまったのでメモだけでも残しておこうと。
手順
- gitをインストール
- FuelPHPをインストール
- FuelPHPの新しいプロジェクトを作成する
- 新しいプロジェクトを含むディレクトリ全体をgit管理下に置く
- eclipseにインポート
前提
- サーバ側:CentOS 5.6
- クライアント側:Windows 7 64bit / Eclipse 3.7.1
- SSH等の設定は終了しているものとする
$.post()のコールバックが動くのはHTTPステータスコードが2xxのとき(jQuery)
前回の続き、というか補足メモ。 jQueryで作るAjaxな検索フォーム(テスト) | mutter
JavaScript: 検索部分
function sampleSearchFilckr () {
var word = $('#sampleSearchWord').val();
if(!word) {
alert('検索語を入力してください');
return false;
}
//検索
$.post(
'/sample/flickr',
{"q": word},
function(data, status) {
//searchに成功したら結果を表示する
$('#sampleSearchResult').html(data);
},
"html"
);
}
jQueryで作るAjaxな検索フォーム(テスト)
技術的にはだいぶ今さら感ある話題ですが作業のまとめとして。
サンプル
表題のフォームというのはこんな感じのです。 #sampleSearchResult a { border: none !important }仕様
- 検索語句を入力して「Flickrで検索する」を押すと僕のFlickrでの検索結果を表示する
- 「クリア」を押すと検索語句と検索結果を削除する
- 検索語句入力欄でリターンキーを押しても検索を開始する
InnoDBをリカバリして学んだこと
とても情けない理由でデータベースを壊してしまい、リカバリをすることに。破損個所はその直前の作業から言って何千万件のレコードを持つInnoDB。考えただけで己の「ポチ」を恨みたくなりますが、唯一ラッキーだったのはそのレコードの99%以上はノイズ(必要の無いログなど)で、最終的にはサイズを1000分の1以下にする予定だったということ。じゃなかったら多分復旧には日単位で時間が掛かっていたと思われる… 以下、解ったこと。
[CSS3] 先頭の要素にだけ別の設定をする(疑似クラス「:nth-child(n)」を覚えた)
Webデザインにおいてカラムをいくつか並べて、間に境界線を引くという場合がよくあります。
イメージ
こういう場合これまで、1行目の2要素に適当なクラス名を付けた上で、それ以外の要素にborderを設定する…というような対処を行ってきました。ソース例
#sample-list li {
padding: 20px;
border-top: solid 1px dotted;
}
#sample-list li.first {
border-top: none;
}
【PHP】 セッションファイルを階層分けして格納する
とあるシステムのセッションディレクトリを覗いてみたらミリオン単位のファイルが詰まっていることが解って、I/O重いの当たり前じゃねーか…!(普通は1ディレクトリ1000ファイルまでに抑えるべき)となったので改善を試みました。 具体的にはディレクトリを階層化します。
改善前
/path/to/session/sess_hogehogehoge
改善後
/path/to/session/0/1/2/sess_hogehogehoge
以下、手順。
- 階層化されたセッションディレクトリを作成する
- 作成したセッションディレクトリのパーミッションを変更する
- PHPの設定を変更する
- httpd再起動
- 古いセッションを削除するように設定する
【メモ】 2カラムでも満足できなかったので1カラムにしてみた、それとデザインの選択とユーザビリティの話。
さすがに怒られそうですが、怒られついでに「どうせだったら1カラムだってありじゃね」と思ったので試してみました。
前回
【メモ】 3カラムのブログデザインが好きになれないので2カラムにする | mutter 3カラム(オリジナル) 2カラム(前回)【メモ】 3カラムのブログデザインが好きになれないので2カラムにする
MySQLのスロークエリログをmysqldumpslowで解析してファイルに書き出し、ログをローテーションする
MySQLのチューニングに当たってスロークエリログを書き出すことは良くあります。設定によっては放っておくと膨大なログになってしまうため、適度なタイミング(日毎とか週毎とか)でログローテーションしてやります。logrotateを使うのが常套手段。 スロークエリログの解析にはmysqldumpslowを使用します。mysqldumpslowを使用するとログを解析した上で、オプションに従って並べ替えて出力してくれます。ログ全体のまとめになるので、定期的これを実行すれば、どれくらいの頻度でスロークエリが発生しているかを定量的に計ることが出来ます。 …というわけで、この2つを組み合わせてみました。
/etc/logrotate.d/mysql
/var/log/mysql-slow.log {
# create 600 mysql mysql
notifempty
daily
rotate 5
missingok
prerotate
EXT=`/bin/date +%Y%m%d`
/usr/bin/mysqldumpslow -s t /var/log/mysql-slow.log > /var/log/mysql/mysql-slow.${EXT}.log
endscript
postrotate
# just if mysqld is really running
if test -x /usr/bin/mysqladmin && \
/usr/bin/mysqladmin ping &>/dev/null
then
/usr/bin/mysqladmin flush-logs
fi
endscript
}