2011年7月20日水曜日

firefoxでタブを閉じる時のアニメーションをオフにする

最近一度chromeに浮気して、またfirefoxに戻ってきました。
chromeは爆速でいいんですが、自分的にはまだfirefoxのほうが使いやすかったです。

さてfirefox4から追加されたタブのアニメーション機能。正直ゴミ同然の機能です。
特にタブを閉じるときにワンテンポ間があって、その後アニメーションして消えるのがうざいです。

これを設定でオフにできることが分かったので、さっそくオフにしました。これでかなりすっきりします。

about:config

browser.tabs.animate

false

2011年7月18日月曜日

Pear::DBからMDB2への移行で修正した箇所

Pear::DBからMDB2への移行をしたのですが、けっこう面倒でした。
覚えている範囲でメモしておきます。

■DBへの接続

変更前
$db = DB::connect(DSN);

変更後
$db = MDB2::connect(DSN);
$db->loadModule('Extended');



■FETCHMODE定数の変更

変更前
$rs->fetchRow(DB_FETCHMODE_ASSOC)

変更後
$rs->fetchRow(MDB2_FETCHMODE_ASSOC)


■limit句

変更前
$db->limitQuery($sql, 0, 10);

変更後
$db->setLimit(10, 0);
$db->query($sql);



■quote関数

変更前
$db->quoteSmart($v["value"])

変更後
$db->quote($v["value"])


■その他

※MDB2ではexecuteMultipleで連想配列が使えないので注意。DBから値を取得して使う場合などは、MDB2_FETCHMODE_ASSOCじゃなくMDB2_FETCHMODE_ORDEREDを使うと良い。

※quoteSmartではnullを自動的に空白文字列化してくれていたが、quoteではその機能がないので、nullが入る可能性のあるカラムは予めnull化にしておく。

※上記修正の該当箇所はこんなふうにfindで調べました。

find . -name \*.php -print xargs grep limitQuery

2011年7月17日日曜日

Linuxでシンボリックリンクを張る

いつも引数の順番を間違えるのでメモしておきます。

ln -s リンク先のファイル 作成するシンボリックリンクのファイル

2011年7月15日金曜日

OpenPNEを2.14から3.3にアップグレード

OpenPNE2.14を使ってたんですが、既に主流は3系になっており、また2系はphp5.2以上では動作が保証されないということなので、面倒ですが3系にアップグレードすることにしました。


アップグレード手順はこちらを参考にしました。
http://www.openpne.jp/doc-upgrade-from-2x/


とりあえず深く考えず、手順通りにアップグレードを実施します。

が、案の定エラーがたくさん出てうまくいきませんでした。


ある程度時間がかかりそうな雰囲気だったので、腹をくくってアップグレードに取り組んでいきます。


・phpモジュールを入れる

そもそも動作環境が用意できてませんでした。yumでパッケージ入れます。

# yum install php53-xml
# yum install php53-gd


などを実行し、

# php -m

で指定のモジュールが入ってることを確認します。


・InnoDB化

$ ./symfony openpne:upgrade-from-2 --origin=2.14

を実行すると、SQLでエラーが出まくってました。
詳細は割愛しますが、テーブルが作れないとか、インデックスがどうのこうのとか言われました。

phpMyAdminでテーブルを見ると、もとからある2.14のテーブルはMyIsamで、新しく作られた3.3系のテーブルはInnoDBになってました。

ということは、InnoDBじゃないといけないのかな?と思ってググってみたらそのとおりでした。

http://d.hatena.ne.jp/shiku_otomiya/20110530/p1

というわけで、ALTER TABLEで2.14系のテーブルをInnoDBにします。

ALTER TABLE table_name ENGINE = InnoDB;

これでエラーが出なくなりました。


・php.iniの設定

アップグレード処理でメモリを使うみたいなので、一時的にmemory_limit=-1にしました。


・日記コメントの添付画像

アップグレード完了後、ログインして巡回してみたところ、日記コメントの添付画像が消えてるのに気付きました。

DBを見てみたところ、diary_comment.has_imagesのデータが移行できていなかったようなので、以下のように画像があるコメント調べてupdateしました。

select distinct diary_comment_id from diary_comment_image;

update diary_comment set has_images = 1 where id in (↑で抽出したid);



以上でアップグレード完了です。

多少手間取りましたが、勘と経験で乗り切ることができました。

2011年7月14日木曜日

facebookで特定の友達の投稿をニュースフィードから非表示にする

facebook、たまにログインして見る程度なんですが、いちおうアカウントは持ってます。

中にはすごい勢いで投稿しまくる人がいて、それがけっこうウザかったりします。

そこで役に立つのが、特定の人の近況のみをニュースフィードから非表示にする方法。

該当ユーザーの投稿の右上にある☓印をクリックすると、プルダウンで「○○○からの投稿を非表示にする」というのが出てくるので、それをクリックします。



もちろん非表示された側がそれを知ることはありません。

やり方がちょっとわかりにくいと思ったので、メモがてら記事にしておきます。

2011年7月8日金曜日

CentOS5でmod_sslの設定

こちらのページを参考にさせていただきました。

http://akibe.com/2010/10/centos-setup-20-ssl/

以下は作業ログ。

# yum -y install mod_ssl
# cd /etc/httpd/conf
# openssl genrsa -out server.key 2048
# chmod 400 server.key
# openssl req -new -key server.key -out server.csr
# chmod 400 server.csr
# openssl req -new -out server.crt -key server.key -x509 -days 10950
# chmod 400 server.crt
# vi ../conf.d/ssl.conf
SSLCertificateFile /etc/httpd/conf/server.crt
SSLCertificateKeyFile /etc/httpd/conf/server.key
# service httpd configtest

2011年7月7日木曜日

Ajaxデザインパターン

オライリーのAjaxデザインパターンを読みました。

が、イメージしていた内容とだいぶ違いました。。

この本でのデザインパターンというのは、Ajaxを使ったアプリケーションの形式(?)で、具体的には「XmlHttpRequestでサーバーからコンテンツを取得して、innerHTMLでDOMに挿入する」みたいな例が、最初から最後まで淡々と紹介されています。

自分はアプリケーションの設計パターンを学びたかったので、完全にミスマッチでした。


ちなみに本書のコンテンツは文字と絵がほとんどで、サンプルコードはほとんどありません。

技術者向けではなく、上流のエンジニア向けといった感じがします。

またAjaxが出始めた頃の本なので、初心者ならともかく、今となっては読んでもあまり得るところがありません。。

新品じゃなく、中古で買ったのが不幸中の幸いでした。

2011年7月6日水曜日

HTMLエンコードフォームを紹介していただきました

このサイトはだいたい1日のユニークユーザーが1000弱あります。

それが先週、突然その数字が跳ね上がっており、13001200という突出した日がありました。

また新しいbotでも来たかな?と思ってAnalyticsを見たのですが、botではなく、はてブで人気のwebクリエイターボックスさん経由のアクセスでした。


当サイトのHTMLエンコードフォームを、Web屋の私がブックマークしているサイト65というエントリで紹介していただいてました。なるほど、ここから来てたんですね。


自分もよく見させていただいてますが、さすが人気ブログ、集客力があります。

しかしこんな何年も前に作った超シンプルなツールが取りあげられるとは、意外でした。

でも、リンクしてもらえたのは素直に嬉しかったです^^

2011年7月2日土曜日

jqueryでAmazon商品情報をツールチップ風に表示

↓カーソルを乗せるとツールチップ風の小窓が表示されます。

JavaScript 第5版 jqueryドーナツ本 iPad2 アビイ・ロード

まずはphp側で、こんな風にtip=1がある場合は画像とタイトルだけを出力するようにします。
http://kawama.jp/php/amazon_products/?asin=4048684116&tip=1

そしてjqueryのhoverを使い、mouseover時にajaxで上記のデータを取得し、DOMに追加。
mouseoutの時にはDOMから削除します。

マウスオーバーのたびに$.getでデータを取得するのは無駄なので、キャッシュするようにしてみました。

//Amazon商品情報のチップを表示
var amazonProductsTip = function() {
var apt_cache = [];
$('a[href^=http://kawama.jp/php/amazon_products/?asin=], #amazon_products_tip').hover(
function(e){
e.stopImmediatePropagation();
var $this = $(this), $index = $this.index();
$(this).append('<div id="amazon_products_tip"></div>');
$('#amazon_products_tip').css({'padding-bottom':'5px', 'left':$this.offset().left+10+'px', 'top':$this.offset().top+12+'px'});
if(!apt_cache[$index]){ 
$.get($this.attr('href')+'&tip=1', function(data){ 
$('#amazon_products_tip').append(data);
apt_cache[$index] = data;
});
} else { 
$('#amazon_products_tip').append(apt_cache[$index]);
}
},
function(e){ 
e.stopImmediatePropagation();
$('#amazon_products_tip').remove();
}
);
}();


意外とあっさり実装できました。
なんか落とし穴がありそうな気がしますが、ひとまずここまでにしておきます。

2011年7月1日金曜日

FlickrとPicasa(とフォト蔵)

FlickrとPicasaを使ってみての感想です。
フォト蔵はちょっと覗いた程度ですが、いちおう入れておきます。

Flickr
ウェブでの写真管理が主。
ローカルの写真管理アプリはない。
アップロードツール(Flickr Uploadr)もあるが、イマイチ。
アップロード遅い。
年$25で無制限。

Picasa
ローカルでのファイル管理が充実。
逆にウェブアルバムはシンプル。
アップロード速い。
従量課金制。20GBで年$5~

フォト蔵
コンセプトはFlickrに近い。ただし機能数は少ない。
アップロードツール(貼る蔵)もあるが、Flickr Uploadr以上にシンプル。
アップロードは試してないので不明。たぶん遅いと思う。
完全無料


それぞれ一長一短ですね。
今はFlickrを使っていますが、今後ウェブアルバム機能が充実してくるようならPicasaへの乗り換えもあると思っています。