memo.xight.org

日々のメモ

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

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への移行

Install

# aptitude install subversion subversion-tools


Reference

Debian -- Debian-Installer subversion リポジトリ
http://www.debian.org/devel/debian-installer/svn.ja.html

subversion への移行
http://ukai.jp/debuan/2002w/subversion.txt

ま!(2005-07-17)
http://popo.dyndns.info/~manhole/diary/20050717.html

nDiki: cvs2svn - cvs2svn (2004-02-24)
http://www.naney.org/diki/dk/cvs2svn.html

Debian パッケージディレクトリ検索 (バイナリ) - subversion
Debian パッケージディレクトリ検索 (バイナリ) - subversion-tools

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