kawama.jp

SugarSyncは有料版から無料版にダウングレードできない

カテゴリ: 技術関連 — タグ: , — 2011年8月2日 21:38 — Comments (0)hatebu count

今月は一時的にファイル共有量が多いので、あまり深く考えず有料版30GBにアップグレードしました。

すぐに解約する予定なので、アップグレード後にメニューから有料版のダウングレード方法を探したのですが、見つけられません。

そこでFAQを探してみたら、ありました。

http://www.sugarsync.jp/support/answer.html#payment03

有料プランから無料プランへのダウングレードは行えません。

まじっすか。。(泣)

絶対後戻りできない一本道、アカウントごと解約するしかないみたいです。

まさかSugarSyncにこんな落とし穴があったとは、、、

SugarSync使ってる人で、有料版アップグレードを検討している人は気をつけましょう。

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

カテゴリ: 技術関連 — タグ: — 2011年7月20日 09:45 — Comments (0)hatebu count

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

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

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

about:config

browser.tabs.animate

false

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

カテゴリ: MySQL,PHP — タグ: , , — 2011年7月17日 23:37 — Comments (0)hatebu count

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

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

カテゴリ: サーバー — タグ: — 09:23 — Comments (0)hatebu count

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

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

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

カテゴリ: PHP,サーバー — タグ: — 2011年7月14日 22:57 — Comments (0)hatebu count

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);

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

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

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

カテゴリ: 技術関連 — タグ: — 2011年7月13日 20:34 — Comments (0)hatebu count

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

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

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

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

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

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

CentOS5でmod_sslの設定

カテゴリ: サーバー — タグ: , — 2011年7月7日 22:37 — Comments (0)hatebu count

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

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

Ajaxデザインパターン

カテゴリ: 技術関連 — タグ: , — 2011年7月6日 20:27 — Comments (0)hatebu count

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

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

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

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

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

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

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

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

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

カテゴリ: 技術関連 — 2011年7月5日 20:20 — Comments (0)hatebu count

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

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

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

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

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

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

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

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

カテゴリ: Ajax,JavaScript — タグ: , — 2011年7月1日 21:54 — Comments (0)hatebu count

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

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();
}
);
}();

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

Copyright (C) 2002 - 2017 kawama All Rights Reserved. — Powered by WordPress