まだ重たいCMSをお使いですか?
毎秒1000リクエスト を捌く超高速CMS「adiary」
毎秒1000リクエスト を捌く超高速CMS「adiary」
2012/12/19(水)MySQL設定メモ
InnoDBでMySQLを運用することを前提に書きます。
my.cnfの設定
MySQL 5.5以降ならばInnoDBの新しいエンジンが入っているが、5.1.xの場合はプラグインとなっているのでそれを有効化する。
[mysqld] ignore-builtin-innodb plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so
また同時に、デフォルトエンジンとしてInnoDBの設定、及びutf8を設定する。
[client] default-character-set=utf8 [mysqld] character-set-server=utf8 default-storage-engine=InnoDB
mysqlコマンド
コマンドライン書式の例。
# mysql -u root -p # mysql -u user -pPASS dbname # mysql -h db-server.dummy.xxx -P 3306 -u user -pPASS dbname
DBとユーザーの作成
CREATE DATABASE dbname DEFAULT CHARSET=utf8; GRANT all privileges ON dbname.* TO dbuser@localhost IDENTIFIED BY 'PASSWORD'; GRANT SELECT,INSERT,UPDATE,DELETE ON privileges ON dbname.* TO dbuser@localhost IDENTIFIED BY 'PASSWORD';
IPアドレス等を指定する場合は次のようにする。
書式 | 意味 |
---|---|
uname@localhost | UNIXドメインソケット通信を許可 |
uname@127.0.0.1 | ローカルホスト(TCP/IP)を許可 |
uname@'%' | 全てのホストを許可 |
uname@192.168.1.12 | IPアドレス指定 |
uname@'192.168.%' | IPアドレスが192.168.* のホストを許可 |
この他、Firawall(iptables)を設定するのはもちろんのこと、MySQLはhosts.allowも参照する。
mysqld: ALL
ユーザー情報の確認
use mysql; select host,user,password from user;
パスワード以外は直接書き換えれば良い。
パスワードは次のようにする。
SET PASSWORD FOR user@localhost=PASSWORD('password'); SET PASSWORD FOR user@your.host=PASSWORD('password');
文字コードの確認
show variables like 'char%';
2012/09/28(金)Perlの型グロブと名前空間アクセスの応用
Perlの名前空間と型グロブに関する応用的な話です。高度な内容ですので、少なくともリファレンスについては理解している人向けです。型グロブも多少知らないと難しいかもしれません。
※以下特に断りがない限りPerl 5.10での動作確認です。
2012/08/22(水)input type="text"等の自由リサイズスクリプト
Google ChromeやFirefoxには標準で<textarea>の自由リサイズ機能(マウスでのリサイズ機能)がありますが、input type="text"等のテキストボックスにはその機能がありません。
jQueryで実装してみました。
使い方
以下のCSSとJavaScriptを導入してください。あとは自動的に機能が導入されます。
- jQueryを先にロードしてください。必要バージョンは分かりません(苦笑)
- Google ChromeとFirefoxで動作確認しています。
- CSSの width が掴める部分のサイズになります。
- CSSの z-index の下3桁(1000で割った余り)がテキストボックスの最小サイズになります。*1
- CSSの display:none を有効にするとフォームリサイズ機能を無効にできます。
- テキストボックスの初期サイズの方が小さい場合はそちらが最小サイズになります。
- IE6,7で動作しましたが、IE8,9では動作しませんでした(動作しないだけで不具合はありません)。
- 手前にあるspanよりも裏側にあるテキストボックスが優先される謎の仕様のせいです。
2011/05/25(水)enterでフォ-ム内容を送信させない細工
JavaScript
//----------------------------------------------------------------------------- // ●enterで送信させない //----------------------------------------------------------------------------- // Tested : Fx4, GC, IE7/8 function enter_not_submit(evt) { evt = evt ? evt : event; var e = evt.target || evt.srcElement; if (e.tagName != 'INPUT') return true; if (evt.keyCode == 13) return false; return true; }
フォーム側
<form action="" method="POST" onkeypress="return enter_not_submit(event);">
(フォーム内容)
</form>
Formに仕込むだけです。INPUTタグやSubmitボタンの細工は不要。
全INPUT要素を探し出してイベントを登録するハンドラのような無駄な処理も不要。
2010/08/18(水)Pure PerlでのOAuth実装メモ
adiaryに、twitter投稿のためのOAuthを実装したときのメモです。PurePerl動作。
OAuthモジュール(OAuth::Lite::Consumer)を使わずに実装したので、同じことをやりたい人には参考になるかと思います。*1