memo.xight.org - 2006-01-04

2006-01-04 Wed

メールアドレスが正しいかを判定するモジュール

- Email::Valid

#!/usr/bin/perl
use Email::Valid;
print (Email::Valid->address('user@example.com') ? 'yes' : 'no');


- Mail::CheckUser
#!/usr/bin/perl
use Mail::CheckUser qw(check_email last_check);
 
my $email = 'user@example.com';
 
if(check_email($email)) {
	print "E-mail address <$email> is OK\n";
} else {
	print "E-mail address <$email> isn't valid: ", last_check()->{reason}, "\n";
}


- Data::Validate::Email
use Data::Validate::Email qw(is_email is_email_rfc822);
 
if(is_email($suspect)){
	print "Looks like an email address\n";
} elsif(is_email_rfc822($suspect)){
	print "Doesn't much look like an email address, but passes rfc822\n";
} else {
	print "Not an email address\n";
}


- Reference
Email::Valid
Debian パッケージディレクトリ検索 (バイナリ) - libemail-valid-perl

Mail::CheckUser

Data::Validate::Email

Nagios

- Summary
指定された監視タイミングでステータスを収集する
フリーの高機能ネットワーク・サーバ監視ツール.
- Reference
Nagios
http://www.nagios.org/
FrontPage - Nagios Infomation Ja
http://nagios.x-trans.jp/naija/
@IT - Webサーバ周辺、これだけおさえれば、落ちても大丈夫?
http://www.atmarkit.co.jp/fnetwork/tokusyuu/22tool/01.html
@IT - NagiosでWebサーバを頑丈にする方法
http://www.atmarkit.co.jp/fnetwork/tokusyuu/22tool/02.html
cubic9.com - Nagios
http://cubic9.com/Nagios/

Subversionへの移行

XML::Simple + JSON で Ajax

1. [Perl] XML over HTTP な API を叩く
2. [Perl] XML::Simple で parse
3. [Perl] そのまま objToJson でJSONに変換
4. [JavaScript] XMLHttpRequest で結果取得
5. [JavaScript] JSON を eval
6. [JavaScript] 復元したデータで DHTML

JKL.ParseXML[2005-10-21-1]でクライアント側でXMLをparseしてもOK.

- Reference
JSON
XML::Simple

- via
はてな技術勉強会 - 2005年08月26日
http://www.hatena.ne.jp/info/tech#tech050826

私がグーグルのアドワード広告を止めた理由

- Reference
PDF 千夜一夜: 2005年12月28日 - 私がグーグルのアドワード広告を止めた理由(1)
http://blog.antenna.co.jp/PDFTool/archives/2005/12/28/
PDF 千夜一夜: 2005年12月29日 - 私がグーグルのアドワード広告を止めた理由(2)
http://blog.antenna.co.jp/PDFTool/archives/2005/12/29/
PDF 千夜一夜: 2005年12月29日 - 私がグーグルのアドワード広告を止めた理由(3)
http://blog.antenna.co.jp/PDFTool/archives/2005/12/30/
PDF 千夜一夜: 2005年12月29日 - 私がグーグルのアドワード広告を止めた理由(4)
http://blog.antenna.co.jp/PDFTool/archives/2005/12/31/
PDF 千夜一夜: 2006年01月01日 - 私がグーグルのアドワード広告を止めた理由(まとめ)
http://blog.antenna.co.jp/PDFTool/archives/2006/01/01/
- via
スラッシュドット ジャパン - Google AdSenseを偽広告に置き換えるトロイの木馬
http://slashdot.jp/security/article.pl?sid=06/01/03/037234

JavaScriptのデバッグ方法

- Venkman JavaScript Debugger
FirefoxのExtention.
クリックして拡大

- JSUnit

メソッド 内容
assert([コメント], booleanValue) assertTrueと同じ
assertTrue([コメント], booleanValue) booleanValueがtrueか
assertFalse([コメント], booleanValue) booleanValueがfalseか
assertEquals([コメント], value1, value2) value1 == value2か
assertNotEquals([コメント], value1, value2) value1 != value2か
assertNull([コメント], value) value == nullか
assertNotNull([コメント], value) value != nullか
assertUndefined([コメント], value) value == undefinedか
assertNotUndefined([コメント], value) value != undefinedか
assertNaN([コメント], value) value == NaNか
assertNotNaN([コメント], value) value != NaNか
fail(コメント) 必ずエラーにする

特殊なメソッド
setUp() 各テストケースメソッドが実行される前に呼び出される.各テストケースで毎回実行する初期化処理等を記述する.
tearDown() 各テストケースメソッドが実行された後に呼び出される.各テストケースで毎回実行する終了処理等を記述する.

- JavaScript Shell と Web Development Bookmarklets
FirefoxならBookmarkletから起動可能!
ものすごい大量にあるので一部紹介.
CSSを動的に切り替えるBookmarkletもある.

  Built-in function (抜粋)
print(str) strを表示
clear() 画面を消去

  - JavaScript Shell (Bookmarklet)
クリックして拡大

  - JavaScript Development Environment (Bookmarklet)
クリックして拡大

- JavaScript Code Improver
コード整形ツール.
クリックして拡大
  - 使用前
var i=0,s="",k=0;function foo(){for(j=0;j<10;j++){for(i=0;i<10;i++){s="string1";
k=Math.floor(Math.random()*10);}for(i=20;i>9;i--){s="string2";k=i;}}}


  - 使用後
var i=0,s="",k=0;
function foo()
{
	for(j=0;j<10;j++)
	{
		for(i=0;i<10;i++)
		{
			s="string1";
			k=Math.floor(Math.random()*10);
		}
		for(i=20;i>9;i--)
		{
			s="string2";
			k=i;
		}
	}
}


- JavaScriptUnit
functionテストに.
ファイル名 説明
common.js Cookie,XMLHttpRequest,ブラウザ判定関連
commontest.html テスト用HTML
JavaScriptUnit.js JavaScriptUnitの本体

メソッド名 説明
initTest() テスト開始
showResult() テスト終了,結果表示
assertEquals(テスト名,値1,値2) 等しいかどうかのテスト
assertTrue(テスト名,値) Trueを返すかどうかのテスト
assertFalse(テスト名,値) Falseを返すかどうかのテスト
fail(テスト名) テスト失敗する
debug(メッセージ) デバッグメッセージを記録(テスト失敗時のみ赤字で表示される)

- Web Developer
実行環境のコントロールに.

- objectdump
オブジェクトを見やすい形に表示する.
<div id="dumparea"></div>
<script src="objectdump.js"></script>
<script>
objectdump( window, document.getElementById( 'dumparea' ) );
</script>


- FireBug
Firefox で JavaScript を Debug するためのエクステンション

- DebugWindow


- print_r(obj)
ウノウラボより.
function print_r(obj) {
    var count_obj = 0;
    function _output(str) {
        document.writeln(str + "<br/>");
    }
 
    function _print_r(obj, name, level) {
        var s = "";
        if (obj == undefined || level > 4) return;
        for (var i = 0; i < level; i++) { s += " | "; }
        s += " - " + name + ":" + typeof(obj) + "=" + obj;
        _output(s);
        if (name == "document" || typeof(obj) != "object") return;
        for ( key in obj ) {
           if (count_obj++ > 150) return;
           _print_r(obj[key], key, level + 1);
        }
    }
    _print_r(obj, "*", 0);
}


- Reference
Venkman JavaScript Debugger - Development Page
http://www.hacksrus.com/~ginda/venkman/
Getahead - Venkman for Firefox 1.5
http://getahead.ltd.uk/ajax/venkman

JsUnit
http://www.edwardh.com/jsunit/introduction.html
SourceForge - JsUnit
http://sourceforge.net/projects/jsunit/

JavaScript Shell
http://www.squarefree.com/shell/

Web Development Bookmarklets
http://www.squarefree.com/bookmarklets/webdevel.html

JavaScript Code Improver
http://www.jcay.com/javascript-code-improver.html

侍ズム: JavaScript のテストのコツ
http://yusuke.homeip.net/diary/archives/000175.html

Firefox Extensions - Web Developer
https://addons.mozilla.org/extensions/moreinfo.php?id=60

nazoking - nazono.objectdump
http://nazo.yi.org/nazonojs/?name=objectdump
nazoking - nazono.objectdump - Overview
http://nazo.yi.org/nazonojs/js_docs_out/overview-summary-objectdump.js

JoeHewitt.com - FireBug
http://www.joehewitt.com/software/firebug/
Mozilla Update :: Extensions -- More Info:FireBug - All Releases
https://addons.mozilla.org/extensions/moreinfo.php?id=1843&application=firefox

eto.com/d - 0503 - DebugWindow
http://eto.com/d/0503.html#DebugWindow

- Reference 追記[2006-11-24]
ウノウラボ Unoh Labs: JavaScriptのバグを退治する3つの手法
http://labs.unoh.net/2006/11/javascript.html

- via
はてな - JavaScriptプログラマの方にお聞きします…
http://www.hatena.ne.jp/1123227040

nothing but trouble - JavaScript開発のお供に。
http://d.hatena.ne.jp/send/20060120/p2

- via 追記 [2006-08-24]
phpspot開発日誌 - 2006-08-24 - JavaScriptデバッグツール集
http://phpspot.org/blog/archives/2006/08/javascript_24.html

Term::ANSIColor

- Summary
コンソール上で色付けした文字を扱うためのPerlモジュール.
これは便利!

- Sample

#!/usr/bin/perl
use strict;
use warnings;
use Term::ANSIColor qw(:constants);
 
$Term::ANSIColor::AUTORESET = 1;
 
print BOLD RED   "RED\n";
print BOLD GREEN "GREEN\n";
print BOLD BLUE  "BLUE\n";


- Reference
Term::ANSIColor

- via
naoyaのはてなダイアリー - 無線LANブリッジのIPアドレスを探せ
http://d.hatena.ne.jp/naoya/20051231/1135992917

富豪刑事

- Summary
Amazon - 富豪刑事 新潮文庫: 本
大富豪の息子で刑事の主人公「神戸 大介」,通称「富豪刑事」がお金で事件を解決!
登場するキャラクターがとっても個性的で愛着が持てる.
たったの4話で終わってしまうなんて悲しい!
筒井 康隆著.

どこかで見たことある題名だと思ったら,ドラマの原作でした.
Amazon - 富豪刑事 DVD-BOX: DVD

- Reference
富豪刑事 新潮文庫: 本
富豪刑事 DVD-BOX: DVD