ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

地球温暖化対策には、仮想化技術ですよね(^^)!

2008-04-11 18:34:28 | Weblog

 やっぱ、地球温暖化の一因は、サーバーが多すぎて、電気くいすぎだからですよね。
 最近はCPUが早いけど、フルに使うのは、ピーク時だけだし・・・

 電気を減らすには、深夜テレビを減らすより、
 チームマイナス6%するより、

 サーバー統合をするべきだと思うわけであります。

 ムダにCPUは発熱し、さらにその熱を冷ますために、ファンをまわして、
 電気を食っているわけであります。
 まさに、ムダの2乗であります。

 地球温暖化には、サーバーを統合してへらすしかなーい!!

 そのためには、仮想化技術を使って、物理的なサーバーを減らし、
 仮想的なサーバーを構築するべきであります。。。




 。。。とかいう、環境団体からのアプローチはないのだろうか?
 サーバーの台数が減れば、電気代だけじゃなくって、

 そのための
   コンピューター作成+コンピューター廃棄
 のエネルギーも、いらないと思うけど・・・

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

正規表現でのチェック方法を考える-その4 数字○桁、2進、8進、16進

2008-04-11 14:25:30 | 正規表現

 チェックは、正規表現でやれば、いろんな言語でいけそうなので、正規表現で、いろんな値をチェックする方法を考える、シリーズ「正規表現でのチェック方法を考える」

 今、数字関係をやっているのですが、今回は、数字何桁っていう桁数指定の話です。

 で、それだけだと、あまりにも短いので、2進数、8進数、16進数についても、書いてみたいと思います。

 なお、このシリーズにおいて、説明文中の¥は、断りがなければ、半角の円マーク(ないしは、バックスラッシュ)に変えてください(入力が面倒なので全角にしています)




■数字○桁

 これは、数字指定の¥dのあとに、中カッコで、桁数を書けばよい
 数字3桁なら、

  /^¥d{3}$/

 だし、3桁以下(0桁、つまり未入力もOK)なら

  /^¥d{0,3}$/

 みたいなかんじ。




■2進、8進

 2進数なら、0,1なので、[01]でOK
 なので、たとえば2進数3桁以下なら

 /^[01]{0,3}$/

 みたいなかんじ。

 8進数は、0から7までなので、[0-7]でOK
 なので、たとえば8進数3桁以下なら

 /^[0-7]{0,3}$/

 みたいなかんじ。





■16進数

16進数の場合、0-9と、A-Fまでだけど、a-fで表すときもあるので、
 [0-9A-Fa-f]となる。
 なので、たとえば8進数3桁以下なら

  /^[0-9A-Fa-f]{0,3}$/

 みたいなかんじ。




■きょうのサンプルソース

 16進のところ、上記の条件だと、
 7Fdのように、大文字小文字混在もOKになる。
 まー、OKでもいいんだけど、やっぱそれは・・・(^^;)

 っていうので、混在はいけない!とする場合
(ただし、大文字、小文字どちらも可)のサンプル


<HTML>
<HEAD>
<TITLE>JavaScriptテスト広場</TITLE>
<SCRIPT LANGUAGE="JavaScript"> 
<!--
function load()
{
}

function mycheck(val)
{
	if (val.search(/^([0-9A-F]{0,3}|[0-9a-f]{0,3})$/)	!=	-1 )
	{
	}
	else
	{
		alert("エラー");
	}
}
-->
</SCRIPT>

</HEAD>
<BODY onload="load()">
<FORM NAME="buf">
<INPUT NAME="Text1" TYPE="hidden">
</FORM>

<FORM NAME="zikko">
<INPUT NAME="text1" TYPE="TEXT">
<INPUT NAME="button1" TYPE="BUTTON" VALUE="実行" onclick=mycheck(text1.value)>
</FORM>
</BODY>
</HTML>

(上記< > ¥は、本当は半角)




■なお。。

数字の場合、頭の0は、省略するのが普通です。

010とかかず、10とかきます。

でも、16進の場合、dとかかずに、0dと書くことも
多いです(バイト単位で書く場合などは、このように
0を省略しないです)。
 なので、今回の例は、頭の0も許していますが、
もし、0以外、頭の0は許したくないなら、

たとえば、16進なら

  /^(0|[1-9A-Fa-f][0-9A-Fa-f]*)$/

みたいなかんじになります。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

むかしは、大量データ読み込みでMySQLが有利だったけど、今は。。。

2008-04-11 08:46:23 | Weblog

どうなんでしょうね?

MySQL祭りでは、ほかのオープンソースRDBMS(まあ、PostgreSQLだろうけど)との比較で、
・企業として製品開発、知財(著作権、商標)を管理していること
・製品開発元のMySQLが、技術サポート、コンサル、研修を提供
していることをメリットとしていました。

でも、昔は、
ここ(PDF) http://www.nttdata.co.jp/netcom/pdf/nc04_ss_01.pdf
の21ページからあるように、10万件程度のデータをよませたとき、
PostgreSQLより、MySQLのMyISAMの場合、圧倒的にはやかった。

まあ、それはあたりまえで、MyISAMは、たしか、トランザクションをかけてないんだよね。
だから、あんまり変わんないようなデータで、かつ検索は頻繁に行われる(コーパスとか
蔵書とか)にはよかった。

 ただ、トランザクションをかける場合、InnoDBでも、PostgreSQLより、まだ早かったと。
(ただし、大量データを挿入する場合、デフォルトのオートコミットOn状態だと、遅いと感じる場合は、オートコミットOFFで、トランザクションを、100件なり、1000件なり、ある程度の大きさのところごとにコミットすると早くなった)

まー、上記の図だと、ロード10万件で、PostgreSQLでも、5652ミリ秒=5秒ちょっとっていえば、十分で、MySQLのMyISAMの882ミリ秒(0.8秒)って、そこまでは、求めないだろうけど(^^;)

 なんで、昔は、速さの面からMySQLが選ばれたけど、今は、どーなんでしょうねえ・・
 PostgreSQLも、3年前よりかは、かなり改良されてるだろうし、そもそも、CPUも早くなってるし・・はやさでは、差がないのかしら、どーなのかしら??

 まー、いま、MySQLが選ばれる理由は、Windowsで、簡単に無料のDBを使いたい場合、インストール便利だし・・っていう感じなんでしょうかね(^^)




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする