月別アーカイブ: 5月 2012

jQueryで開発、テキストフィールドから数字以外を削除する

 数値だけしか入力できないINPUT type=textタグを用意したいことがある。
 簡単に実装する場合は、該当のINPUTタグからフォーカスが外れる時に数字以外を削除してしまうのが良いだろう。

 そんなわけで、そのようにしたjQueryコード

<script src=’https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js’></script>
<script>
    $(document).ready(function(){
        $(".numberonly").blur(function(){
            var str = $(this).val();
            $(this).val(str.replace(/[^0-9]/g, ""));
        });
    });
</script>

 blurイベントはfocusが外れた時。
 で、正規表現で[0-9]以外を消している。
 class=numberonlyにバインドしているので、

<input type=’text’ name=’zip1′ class=’numberonly’>-<input type=’text’ name=’zip2′ class=’numberonly’>

みたいに、郵便番号欄を半角数字に限定するみたいな動きをさせたり?

(859)


カテゴリー: jQuery | コメントをどうぞ

PHPのUserAgent設定

 PHPでfile_get_contentsなんかを使うとURLからもGETすることが出来る。
 $html = file_get_contents(“http://hogehoge.tld/”);
 みたいな感じ。

 で、この時、UAはPHPが入るんだけど、最近、Google検索をPHPで叩きに行くと403Forbiddenになってしまう。 ここのUA文字列を書き換えると表示できるので、PHPに任意のUAをセットしたい。

 方法は簡単で、iniに設定する。
/etc/php.iniファイルを修正する場合は[PHP]セクションで
 user_agent = “Mosaic”
みたいに設定する。

実行時に切り替える場合は、ini_set関数で
 ini_set(‘user_agent’, ‘User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6)’);
みたいな感じにする。

 独自BOTを作っていて、BOTのUAを定義したい場合など役に立つだろう。

(128)


カテゴリー: PHP | コメントをどうぞ

新しくVPSを契約したので、お名前.comとさくらで再度ベンチを取ってみた

 仕事関係で新しくお名前.com(KVM)とさくらのVPSサーバーの契約をしたので、それぞれのベンチを更新しておく。

お名前.com(KVM)の1380円コースのUnixBnech

========================================================================
BYTE UNIX Benchmarks (Version 5.1.3)

System: o2a.studioes.net: GNU/Linux
OS: GNU/Linux — 2.6.18-308.1.1.el5 — #1 SMP Wed Mar 7 04:16:51 EST 2012
Machine: x86_64 (x86_64)
Language: en_US.utf8 (charmap=”UTF-8″, collate=”UTF-8″)
CPU 0: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz (6133.4 bogomips)
x86-64, MMX, Physical Address Ext, SYSCALL/SYSRET
CPU 1: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz (6132.4 bogomips)
x86-64, MMX, Physical Address Ext, SYSCALL/SYSRET
CPU 2: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz (6134.8 bogomips)
x86-64, MMX, Physical Address Ext, SYSCALL/SYSRET
12:20:41 up 3 days, 19:14, 1 user, load average: 0.09, 0.03, 0.01; runlevel 3

————————————————————————
Benchmark Run: Mon May 28 2012 12:20:41 – 12:48:49
3 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 19161530.5 lps (10.0 s, 7 samples)
Double-Precision Whetstone 3797.3 MWIPS (9.8 s, 7 samples)
Execl Throughput 1738.7 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 988507.3 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 289959.6 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1526394.9 KBps (30.0 s, 2 samples)
Pipe Throughput 2619601.7 lps (10.0 s, 7 samples)
Pipe-based Context Switching 311905.9 lps (10.0 s, 7 samples)
Process Creation 6949.5 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 4281.3 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 1423.9 lpm (60.0 s, 2 samples)
System Call Overhead 4632913.8 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 19161530.5 1641.9
Double-Precision Whetstone 55.0 3797.3 690.4
Execl Throughput 43.0 1738.7 404.3
File Copy 1024 bufsize 2000 maxblocks 3960.0 988507.3 2496.2
File Copy 256 bufsize 500 maxblocks 1655.0 289959.6 1752.0
File Copy 4096 bufsize 8000 maxblocks 5800.0 1526394.9 2631.7
Pipe Throughput 12440.0 2619601.7 2105.8
Pipe-based Context Switching 4000.0 311905.9 779.8
Process Creation 126.0 6949.5 551.5
Shell Scripts (1 concurrent) 42.4 4281.3 1009.7
Shell Scripts (8 concurrent) 6.0 1423.9 2373.2
System Call Overhead 15000.0 4632913.8 3088.6
========
System Benchmarks Index Score 1346.0

————————————————————————
Benchmark Run: Mon May 28 2012 12:48:49 – 13:16:57
3 CPUs in system; running 3 parallel copies of tests

Dhrystone 2 using register variables 56858986.2 lps (10.0 s, 7 samples)
Double-Precision Whetstone 11326.2 MWIPS (10.0 s, 7 samples)
Execl Throughput 13070.2 lps (29.7 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 163497.5 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 50706.7 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 407272.4 KBps (30.0 s, 2 samples)
Pipe Throughput 7740792.9 lps (10.0 s, 7 samples)
Pipe-based Context Switching 1557688.3 lps (10.0 s, 7 samples)
Process Creation 39957.6 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 16021.8 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 2878.0 lpm (60.0 s, 2 samples)
System Call Overhead 7840433.7 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 56858986.2 4872.2
Double-Precision Whetstone 55.0 11326.2 2059.3
Execl Throughput 43.0 13070.2 3039.6
File Copy 1024 bufsize 2000 maxblocks 3960.0 163497.5 412.9
File Copy 256 bufsize 500 maxblocks 1655.0 50706.7 306.4
File Copy 4096 bufsize 8000 maxblocks 5800.0 407272.4 702.2
Pipe Throughput 12440.0 7740792.9 6222.5
Pipe-based Context Switching 4000.0 1557688.3 3894.2
Process Creation 126.0 39957.6 3171.2
Shell Scripts (1 concurrent) 42.4 16021.8 3778.7
Shell Scripts (8 concurrent) 6.0 2878.0 4796.7
System Call Overhead 15000.0 7840433.7 5227.0
========
System Benchmarks Index Score 2279.9

 相変わらずウェットストーンが高い。
 トランスコーダを走らせても、20fps前後出るので自宅に変換用PCを買うのがあほらしくなるスピードだ(Walkmanプロファイルだと100fps超えるし)

さくら2GB(v3) 1480円のUnixBench

========================================================================
BYTE UNIX Benchmarks (Version 5.1.3)

System: www3363uf.sakura.ne.jp: GNU/Linux
OS: GNU/Linux — 2.6.32-220.17.1.el6.x86_64 — #1 SMP Wed May 16 00:01:37 BST 2012
Machine: x86_64 (x86_64)
Language: en_US.utf8 (charmap=”UTF-8″, collate=”UTF-8″)
CPU 0: Intel(R) Xeon(R) CPU E5645 (4800.2 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSCALL/SYSRET
CPU 1: Intel(R) Xeon(R) CPU E5645 (4800.2 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSCALL/SYSRET
CPU 2: Intel(R) Xeon(R) CPU E5645 (4800.2 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSCALL/SYSRET
13:08:05 up 6 days, 50 min, 1 user, load average: 0.41, 0.20, 0.12; runlevel 3

————————————————————————
Benchmark Run: Mon May 28 2012 13:08:05 – 13:36:03
3 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 20218009.8 lps (10.0 s, 7 samples)
Double-Precision Whetstone 2702.1 MWIPS (7.5 s, 7 samples)
Execl Throughput 1405.1 lps (29.3 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 571262.0 KBps (30.1 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 164788.5 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1143543.4 KBps (30.0 s, 2 samples)
Pipe Throughput 1416847.9 lps (10.0 s, 7 samples)
Pipe-based Context Switching 218994.1 lps (10.0 s, 7 samples)
Process Creation 3338.4 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 2728.8 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 782.9 lpm (60.0 s, 2 samples)
System Call Overhead 3000141.3 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 20218009.8 1732.5
Double-Precision Whetstone 55.0 2702.1 491.3
Execl Throughput 43.0 1405.1 326.8
File Copy 1024 bufsize 2000 maxblocks 3960.0 571262.0 1442.6
File Copy 256 bufsize 500 maxblocks 1655.0 164788.5 995.7
File Copy 4096 bufsize 8000 maxblocks 5800.0 1143543.4 1971.6
Pipe Throughput 12440.0 1416847.9 1138.9
Pipe-based Context Switching 4000.0 218994.1 547.5
Process Creation 126.0 3338.4 264.9
Shell Scripts (1 concurrent) 42.4 2728.8 643.6
Shell Scripts (8 concurrent) 6.0 782.9 1304.8
System Call Overhead 15000.0 3000141.3 2000.1
========
System Benchmarks Index Score 881.0

————————————————————————
Benchmark Run: Mon May 28 2012 13:36:03 – 14:04:01
3 CPUs in system; running 3 parallel copies of tests

Dhrystone 2 using register variables 60631625.5 lps (10.0 s, 7 samples)
Double-Precision Whetstone 8157.5 MWIPS (7.7 s, 7 samples)
Execl Throughput 7662.9 lps (29.5 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 406180.4 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 120266.1 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1120928.0 KBps (30.0 s, 2 samples)
Pipe Throughput 4245141.3 lps (10.0 s, 7 samples)
Pipe-based Context Switching 581530.1 lps (10.0 s, 7 samples)
Process Creation 16977.0 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 8931.4 lpm (60.1 s, 2 samples)
Shell Scripts (8 concurrent) 1361.9 lpm (60.1 s, 2 samples)
System Call Overhead 6741630.9 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 60631625.5 5195.5
Double-Precision Whetstone 55.0 8157.5 1483.2
Execl Throughput 43.0 7662.9 1782.1
File Copy 1024 bufsize 2000 maxblocks 3960.0 406180.4 1025.7
File Copy 256 bufsize 500 maxblocks 1655.0 120266.1 726.7
File Copy 4096 bufsize 8000 maxblocks 5800.0 1120928.0 1932.6
Pipe Throughput 12440.0 4245141.3 3412.5
Pipe-based Context Switching 4000.0 581530.1 1453.8
Process Creation 126.0 16977.0 1347.4
Shell Scripts (1 concurrent) 42.4 8931.4 2106.5
Shell Scripts (8 concurrent) 6.0 1361.9 2269.9
System Call Overhead 15000.0 6741630.9 4494.4
========
System Benchmarks Index Score 1940.0

 さくらとお名前.com(KVM)のUnixBenchの比。
 File周りでさくらVPSは2倍以上優速だけど、その他はドライストーンが微妙に勝っている以外、ほとんど負けている。
 DB処理でディスクアクセスが多発する場合はさくら、オンメモリで動作しちゃうような場合はお名前の方が良い感じかな。

(20)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP] | コメントをどうぞ

その他:レジストリはファイルなんだね

今回はVPSからちょっと離れてWindowsネタ。
 Windowsを操作するときに毎回不便に思うのがレジストリってやつ。
 UNIXであれば設定ファイルはだいたい/etc/に揃っているから、これをコピーしたり外部から書き換えたりして移行したり回復したりできる。
 しかし、Windowsってレジストリエディタプログラムでツリー状の設定をいじらなきゃならないので、手が出しづらかったんだけど、調べてみたら、レジストリも普通のファイルとして保管されていて、別マシンで書き換えることも出来た。
 レジストリの実態が入っているファイルはハイブファイルというやつで、HKLMなら\WINDOWS\SYSTEM32\CONFIG配下にSOFTWAREやSYSTEMなどの拡張子なしのファイルがあって、これがハイブファイルだ。 ユーザー(HKCU)のハイブファイルは、ユーザーディレクトリ(\USERS\ユーザ名\)のNTUSER.DATが該当する。
 マシンが起動しなくなったときにレジストリをいじりたい場合、別マシンにHDDをつないで、該当ファイルをコピーして、レジストリエディタを開いて、HKLMかHKUを選んだ状態でメニューにある’ハイブの読み込み’を使って先のファイルを開くとレジストリツリーの下にハイブファイルのレジストリ構造を表示できる。 この状態で普通にレジストリ編集を行って、メニューの’ハイブのアンロード’をすればOK。
 ハイブファイルを元の場所に戻してやれば、別のマシンからレジストリを編集できたことになる。
 起動しなくなってどうしようもなくなったとき、覚えていると役に立つかもしれないメモ。

(25)


カテゴリー: 未分類 | コメントをどうぞ

VPSを開発で利用する為にバーチャルドメイン&キャッチオールメールを活用する – postfix

 お名前.com VPSさくらのVPSを利用している人は、サイト運用以外に開発環境としている人も結構居ると思う。
 Web系の開発をしていると、メールアドレスを色々使ってテストしたい場合があるけど、アドレスをいくつも作るのは面倒なので、キャッチオールで飛んできたメールを全て特定のアドレスで受信してしまうのが便利。 しかし、本番環境共存の場合にキャッチオールするとぐちゃぐちゃになるので、開発テスト用のバーチャルドメインも設定しておく。

・前準備 DNS設定
 DNSのMXレコードを設定する。

mx mail.hoge.tld. 10 orange
mx mail.hoge.tld. 10 yellow

のように、サブドメインのMXを受信するメールサーバに向ける。

・postfixの設定
main.cfに追記する

/etc/postfix/main.cf

virtual_alias_domains = orange.hoge.tld, yellow.hoge.tld
virtual_alias_maps = hash:/etc/postfix/virtual

・virtualを設定する

/etc/postfix/virtual

@orange.hoge.tld orange@hoge.tld
@yellow.hoge.tld yellow@hoge.tld

dbを生成して、postfixを再起動する
#postmap /etc/postfix/virtual
#/etc/init.d/postfix restart

以上の設定で、foo@orange.hoge.tldやbar@orange.hoge.tldはorange@hoge.tldに、foo@yellow.hoge.tldやbar@yellow.hoge.tldはyellow@hoge.tldに配信されるようになる。
 開発時にテストユーザのメール受信を一括できて良い。

(59)


カテゴリー: サーバ設定 | コメントをどうぞ

お名前.com VPS(KVM)のHDD容量が増えていた

 先日までさくらVPSに比べてHDD容量で大きくマイナス評価になっていたお名前.com VPS(KVM)のHDD容量が増量されて1380円プランで200GBにアップしていて、さくらの1480円より100円安く同じリソース量に揃った感じ。
 200GBあると、トランスコードシステムで変換した動画を100時間以上保管することも出来るだろう。
 さくらでの記事だけどこんな風にSubsonicを入れてメディアサーバ化するのも良いかもしれない。

 従来からCPUの演算性能はお名前の方が高くて、HDD容量さえあればなぁと思っていたところに良い感じのリソース追加が行われたので、イメージコピー法を使ってサックリと移行してしまおうかな・・・

(48)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP] | コメントをどうぞ

攻撃を受けた可能性がある場合にメール送信する – VPSセキュリティ設定

 昨日、ログイン試行して失敗した場合にbtmpに記録が取られる関連の記事を書いた。
 今日は、このファイルを監視して、サイズが変更された(ログイン失敗した)場合に通知するようにしてみる。

#!/bin/bash
LAST_SIZE_FILE=’/var/log/last_btmp_size’
BTMP_SIZE=wc -c < /var/log/btmp
LAST_SIZE=cat $LAST_SIZE_FILE
if test $BTMP_SIZE -ne $LAST_SIZE; then
NOW=LC_ALL=en_US.utf8 date
LOG=lastb -n 20
echo "HOGEHOGE's btmp file size was changed.[old:$LAST_SIZE, now:$BTMP_SIZE]
$LOG"|mail -s "HOGEHOGE's btmp file size was changed.[$NOW]" hoge@piyo.tld
fi
echo $BTMP_SIZE > $LAST_SIZE_FILE

 こんな感じのスクリプトをCRONで回してみる。
 btmpファイルのサイズをLAST_SIZE_FILEに設定したファイルに保存しておいて、現在のbtmpファイルのサイズと差違があった場合、hoge@piyo.tld宛にサイズが変わったことと、最近20行のbtmpログをメール送信するスクリプト。
 まぁ、とりあえず回しておくとある程度は役立つだろう。

(9)


カテゴリー: サーバ設定 | コメントをどうぞ