2006/11/19

[技術系]   JavaScriptのreplaceで正規表現による後方参照

at 03:01JST
a. ○できる
 txt.replace( /hoge(.*)huga/, "huga$1hoge");

b. ×できない
 txt.replace( /hoge(.*)huga/, "huga" + $1 + "hoge");

c. ×できない
 txt.replace( /hoge(.*)huga/, "huga" + RegExp.$1 + "hoge");
 ※いったんmatchさせたあとでないと使えないらしい

bができない理由がわからない…_| ̄|O(そんなに難しいことか?)

で、代わりにこうする。

d. ○できる
 txt.replace(
   /hoge(.*)huga/,
   function (whole,s1) {
    return( "huga" + s1 + "hoge");
   }
 );

なげー。だいたいこの、関数の引数決めうちってのがキライなのだが…まぁ、Perlでもsortとかそうだから文句言えないか。

意外に常識らしい。なんでも無名関数なJavaScriptであった。

2006/11/18

[技術系]   VistaのOpen Command Prompt Here

at 20:11JST
どっかで拾ってきたレジストリファイル。

vistacommandprompthere.reg

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\cmd2]
@="Open Command Prompt Here"
[HKEY_CLASSES_ROOT\Directory\shell\cmd2\command]
@="cmd.exe /s /k pushd \"%V\""
[HKEY_CLASSES_ROOT\Drive\shell\cmd2]
@="Open Command Prompt Here"
[HKEY_CLASSES_ROOT\Drive\shell\cmd2\command]
@="cmd.exe /s /k pushd \"%V\""

[技術系]   Vistaでログオン画面をスキップする

at 07:17JST
XPだとTweakUIでやってたんだけど。

昔のアカウント管理コントロールパネルが残ってるので、
「ファイル名を指定して実行」
→control userpasswords2
で、特定ユーザーで自動ログオンするように設定すればいいようだ。

ただ、正式リリース版でこのパネルが残ってるかどうかは不明。しかしまあ、いろいろ盲腸が残ってるなあ…Windows Vista。これでFAT32をシステムドライブのフォーマットに指定できれば言うことないのに(NTFS死ね。NT4時代からのトラウマで信用しとらん)。

2006/11/17

[技術系]   Vista IE7+のCSS動作

at 13:54JST
…うそだろ。

なんかDTDつけてなくても標準準拠モードで動作するようになってる気がするんだけど…。

えーん。くじけそう…。

ToDo:
・IE6以下でないときは、
 blockquoteのfirst-letter magin-left を-1em
・JavaScriptで記述

[技術系]   「ユーザーアカウント制御」無効にできねえ…

at 04:51JST
Vista RC1で感心しつつ邪魔っ気に感じた「ユーザーアカウント制御」(UAC)だが…。不評を買って簡単に無効にできると聞いていたのに…。

セキュリティホール memo - 2006.10
http://www.st.ryukoku.ac.jp/%7Ekjm/security/memo/2006/10.html#20061011__sec
>あらららら……。そんなに簡単に無効にできちゃうのですか

…誰だよ、簡単に無効にできるなんて言ったの-_-#
だめだよこれ、マイクロソフトは今回
「セキュリティを無視するくらいなら
 Windows使うな!」
くらいの勢いだよ…。

確かに上の元記事が言うように、UACは「見た目簡単にオフにできる」ように見える。

オフにする方法はいくつかあって、上記の方法のほか、
・msconfigを使う
・secpol.mscを使う
とある。ちなみにsecpol.mscだと「パスワードを要求する」に設定することも可能。

…だが、どれをやっても厳密な意味では完全無効にはならない。

XP SP2からおなじみの「セキュリティセンター」が
「無効だ!
 危険だ!
 すぐ直せ!」
とバルーンをしつこく出してくるのだ。これじゃUAC無効にしても邪魔っ気なのは同じ。

さらにすごいのは、XPならサービスコントロールからセキュリティセンターを停止してしまえば警告が出なくなったのに、
「Vistaではサービスを停止しても、
 ゾンビのように
 “よくも停止しましたね…”
 の警告が出てくる」
のだ! ひええ!

ということなので警告の山からはどうあがいても逃げられない。

どうやらビル・ゲイツは(あ、もう引退したんだった)意地でもUACを使わせるつもりらしい。感服した。

いやー、それにしても今までなんでWindowsが人気を博してきたのかを、改めて思い知らされた…。セキュリティとかなんとかうるさいことにこだわらず、ただひたすら実用性を追求してきたからだよねえ…。

UAC自体は、ほかのOSやLinuxディストリビューションにもある機能なわけで、そんなに珍しいもんじゃない。しかし、あったら便利かというと…そういうOSが普及しなかったことからしてもわかるように便利じゃあないんだわな…。

WindowsのUAC、とても立派な機能だと思うし志は尊重してあげたいんだが、つきあえるのはさわりはじめてせいぜい3時間だよ。のんきに家庭で使うOSにこんな機能は不要だ…。

…で、このゾンビも含めて縁を切るにはどうすりゃいいんだ?

[技術系]   VistaのIE7+での表示差違

at 02:11JST
Windows Vistaの標準ブラウザ「Internet Explorer 7」は、ちょっとだけXPのIE7と動作が違う。仮にVistaでの環境をIE7+と呼ぶ。

IE7+では、Vistaの新フォント「メイリオ」(Meiryo)が利用できる。

で、何も考えずに今までMSゴシック向けに調整していたサイトのCSSで、フォントに
"Meiryo"
なんて追加しておくとハマる。

よく、リンクテキストのデコレーションを
border-bottom: 1px dasshed #000000;
なんてやってると思うが、この際のボーダーの表示がXPのMSゴシック環境と大幅に変わってしまう。

具体的に言うと、
・テキストのベースラインからボーダーまでのスキマが大きく空く
・ボーダーが次行のテキストに食い込む
といった感じ。

どうもMeiryoのベースライン関連の設定が今までと違うんじゃないかと思うんだけど…。あてずっぽう。

なので考えなしにMeiryoを使わないこと。ぼくはRC1登場のころにふざけてCSSにMeiryoを追加したのだけど、きょうRC2で見てキモをつぶした。まあ、borderでリンクテキストのデコレーションをするのがそもそもどうよ? という気もするんだけどさ。

速攻で外した。

あと、IE7+だとWebページ内のビジュアルスタイル適用部品のデザインが、Vista風に変わります。OS Xっぽい。これもちとあせる。

2006/11/16

[技術系]   ひかり電話−マイナンバー追加

at 14:36JST
で、SIPが動くのを確認したついでに、専用の電話番号を増やしてみることにした。

ひかり電話では「マイナンバー」というサービスを使う。
http://www.ntt-east.co.jp/t/service/option.html

月100円。むかし、ISDN時代にひとりでダイヤルインナンバーを3つとか取ってたときは、ひとつあたり600円くらい払ってたのでずいぶん安い気がする。まあ、固定電話なんて番号余ってるんだろう、いまどき。

で、さっそく116に電話…なんか儲からないサービスだからなのか、担当のおねーちゃんの愛想が悪かった(考えすぎ)。しかも、なんと工事に一週間かかるという。ほえー…。交換機、手動でパッチングするんだろうか。ずいぶん時間かかるなあ。

あと、工事費は初回に1,700円かかる。これは結構高いと思った。ナンバーポータビリティだって無料の時代なのに!(by孫社長) 遊びで頼んだのにけっこう高くついた。

でも、応対の内容によると、既存の電話番号をマイナンバーに割り当てることもできるっぽい(まあ別局番地域だとムリだろうけどね)ので、人によっては便利なサービスだと思う。

みんな、もっと固定電話使おうぜ。ま、おいらは使わないけどね。電話全般。

[技術系]   ひかり電話をパソコンからかける

at 05:46JST
ハードディスクを調達しないとなんにもできないので、うさばらしに表題のようなことをしてみた。

うちはNTT東日本のBフレッツで、ひかり電話を契約している。ルータはRT-200NE。で、こいつはいわゆる「SIP」に対応している。SIPに対応しているソフトがあれば、手元のパソコンから自由に電話をかけられるのだ。

Skypeとかにはあんまり興味はないんだけど、単に外線にかけられるのがおもしろそうなのでやってみた。

で、まあ
・清水 隆夫の「Good Job !」: RT-200KIとX-Lite
 http://tshimizu.cocolog-nifty.com/good_job/2005/12/rt200kixlite_aa0d.html
を参考にしつつ、ルータ設定とソフトの導入。

RT-200NE側:
20061116mage3.png
こんな感じ。名前とかからは念のため全角文字を排除。パスワードも数字だけにしておく。で、必要あるかどうかわかんないけどルータを再起動。

SIP対応のフリーソフト。
X-Liteを入れる。
インストール後に強制再起動されるので注意。
アカウント設定画面でこんなふうにしてみましたよ。
自宅内IPアドレス大暴露。
192.168.10.65がRT-200NEね。

20061116mage1.png

20061116mage2.png

設定に成功していると、こんな感じ。

20061116mage4.png

番号押して、自分の携帯にでもかけてみるとよい。

会話はしていないが発信はたしかにできた。ただ、呼び出し中にX-Liteをハングアップ(切断)させても呼び出しが止まらないのが気になった。200NEの問題かなあ。

どっちにしてもこのクライアントはWindowsっぽくなくてヤなので、

・Express Talk(SIPクライアント)の設定方法
 http://www.aconus.com/~oyaji/voip/express_talk.htm

の「Express Talk」をあとで試してみる予定。ていうかWindows MessengerもSIP対応と聞くが。

HDDと一緒にマイクも買ってくるか。

2006/11/14

[技術系]   Google Apps for Your Domainに「Start Page」

at 06:38JST
グーグル、Google Apps for Your Domainに新機能「Start Page」を追加
http://japan.cnet.com/news/media/story/0,2000056023,20312987,00.htm?ref=rss

はて。
US-Englishモードでmanage domain画面に行っても、そんな選択肢が追加されとらんのだが。

まだ全サーバには変更が行き渡ってないってやつかな。

2006/11/11

[技術系]   spawn svn

at 10:29JST
たとえばこういう、
 指定したディレクトリ以下でsvn updateする
というCGIを適当に作るわけだが、ディレクトリを細かくたどって行って指定できるようにするのを、簡単にできんかね?

Yahoo! UIにそんなウィジェットがあった気がするけど、結局こちら側でJSONかなんかでパス情報を与えてあげなきゃいけないわけでしょ。めんどくさいし、そこまでするようなフロントエンドじゃないからやめた。
#!/usr/bin/perl

# 日本語EUC, LF
# 要SuEXEC指定

$|=1;

our $responseHeader = 0;
sub Say {
print "Content-Type: text/html; charset=EUC-JP\n\n"
if ( !$responseHeader );
$responseHeader++;
print join( '', @_ );
}

our %targets;
while ( <DATA> ) {
s/\s//g;
next if ( /^$/ );
$targets{ $_ } = 1;
}

our $URL_HOST =
'http://' .
(
( $ENV{'HTTP_HOST'} ne '' ) ?
$ENV{'HTTP_HOST'} :
$ENV{'SERVER_NAME'}
) .
(
( $ENV{'SERVER_PORT'} != 80 ) ?
":$ENV{'SERVER_PORT'}" :
''
)
;
our $URL_PATH =
$ENV{'SCRIPT_NAME'}
;

our $target = $ENV{ PATH_INFO };
if ( $target ) {
__Exec__AnyTargetGiven();
} else {
__Exec__Default();
}
exit();

sub __Exec__Default {
Say( <<"_HTML_" );
<html>
<head>
<title>spawn svn</title>
</head>
<body>
<h1>spawn svn</h1>
svn updateします。ディレクトリを選んでください
<hr>
<ul>
@{[ do {
my $str;
foreach my $i ( keys %targets ) {
$str .= <<"_LI_";
<li><a
href="$URL_PATH$i"
>$i</a>
_LI_
}
$str;
} ]}
</ul>
<hr>
<a
href="./"
>再読込</a>
</body>
</html>
_HTML_
}

sub __Exec__AnyTargetGiven {
Say( <<"_HTML_" );
<html>
<head>
<title>spawn svn : $target</title>
</head>
<body>
<h1>spawn svn</h1>
ターゲットディレクトリ:$target
<hr>
<pre>
_HTML_
if ( !$targets{ $target } ) {
Say( <<"_HTML_" );
<font color="#ff0000">
そのディレクトリは指定可能ではありません
</font>
_HTML_
} else {
my $cmd = "cd $target && svn update 2>&1";
system( $cmd );
Say( "<b>...完了</b>" );
}
Say( <<"_HTML_" );
</pre>
<hr>
<a
href="$URL_PATH"
>元のページへ</a>
</body>
</html>
_HTML_
}

__DATA__
/var/net/www/hogehoge.jp
/var/net/www/hugahuga.jp

2006/11/09

[技術系]   blank2noborders

at 22:11JST
こういうの、便利にまとめる「メタブックマークレット」ってあったよなあ…。

blank2noborders

※ 動かない…-"- ??

※※ あははは…「"」のせいだった…_| ̄|O

[技術系]   Masonを使うとき、data_dirに注意

at 21:43JST
すごいショック…今まで気づかなかった_| ̄|O

HTML::Masonを複数のバーチャルホストで使っているのだが、ホストAにアクセスしてもホストBのMasonコンポーネントの結果が返ってくる。おかしいと思ってチェックしてみたら、

Masonは、コンポーネントのコンパイル済みオブジェクトを
/usr/local/apache/mason/obj/{URLのファイルパス}
に生成する

のであった…。つまり、バーチャルホスト同士でファイルパスがバッティングすると最初にアクセスされたほうのオブジェクトがずっと実行され続ける…。

対処方法としては、ぼくが調べた範囲ではバーチャルホストごとに

PerlSetVar MasonDataDir /usr/local/apache/mason/hirosiki.jp

とかやってオブジェクトが生成されるディレクトリを変更すればいいようだ。

しかし、PerlSetVarの中では %{HOST_NAME} とか %0 とか $0 とか効かないのね…いちいち書かないといけない。vhostを丸ごとperlで設定するべきなのか。

Mason HQ: Mason Administrator's Manual (version 1.35)
http://www.masonhq.com/docs/manual/Admin.html#wrappers_with_virtual_hosts

こんな感じかな。めんどくさい。

やーん。はずかしー。

[技術系]   .NET製アプリを速く動かす

at 11:37JST
けっこう前にターミナルエミュレータをTeraTermからPoderosaに変えたのだが…遅い。遅すぎる。

呼び出してウィンドウ描画されるまでに10秒くらいかかる。それというのも、これが.NETだからなのだが。

で、ngen.exeというマイクロソフトのツールを使うと、起動が速くなると聞いた。これは.NETのバイトコードをネイティブに変換してキャッシュしておいてくれるものなのだそうな。なんかそんなものがベンダーから公式配布されている時点で.NETのポータビリティに疑問符がつくような、マイクロソフトの合理性に感心するようなだが…。

しかし、探したがどこにもダウンロードできるところがない。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconJITCompilation.asp
にmanはあるんだけどバイナリがない! どこだ! …なんとランタイム同時配布だった。

200611091.png

こんな感じ。動かすには、
C:\Documents and Settings\デスクトップ>ngen "C:\Program Files\poderosa4\Poderosa.exe"
てな感じで…
Microsoft (R) CLR Native Image Generator - Version 1.1.4322.573
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
Error: The specified file or directory "Files\poderosa4\Poderosa.exe" is invalid.
って、なんでMS純正コマンドがロングファイルネームでエラー出すんだよ!

C:\Documents and Settings\デスクトップ>ngen "C:\Progra~1\poderosa4\Poderosa.exe"
Microsoft (R) CLR Native Image Generator - Version 1.1.4322.573
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
Installing assembly C:\Progra~1\poderosa4\Poderosa.exe
Compiling 1 assembly:
Compiling assembly C:\Progra~1\poderosa4\Poderosa.exe ...
Poderosa, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
とかいう感じで。

確かに起動が2,3秒に短縮された。

フロントエンドもあった。
窓の杜 - 【NEWS】.NET Framework製のEXE/DLLファイルの起動を手軽に高速化「.NET R-Tune」
http://www.forest.impress.co.jp/article/2006/04/06/dotnetrtune.html

で、このフロントエンドがまたロングファイルネームでエラーを起こしてるように見えるのはどういうわけだ…。

2006/11/05

[技術系]   GoogleツールバーがIE7検索ボックスの変更を監視する件

at 00:20JST
http://memo.hirosiki.jp/article/26698539.html
↑これをやって気づいたのだが…。

IE7に
・Googleツールバーをインストールした状態
で、
・IE7検索ボックスのデフォルトをGoogle以外に変更する
と、
「ほんとうにそれでいいんですか?」
というアラートが出る。

2006110401.png

アラートが出るだけならいいのだが、先のようにレジストリをいじってGoogleを呼び出すURLを変更しているだけでも
「ハブにされた!」
といじけて、勝手に新たな検索ボックスオプションを追加するようだ。

まあ、アラートで「監視を希望しない」ように設定すればそれ以上はbotherしないようだけど。

また「デフォルト戦争」かー。もう。めんどくさいなー。

2006/11/04

[技術系]   魚拓bookmarklet

at 22:47JST
なにかとすぐ消えそうなワケありページをしつこくWeb魚拓したい。そんなサイテーなあなたのためのbookmarklet。

魚拓る

2006/11/03

[技術系]   DTDを外す

at 21:11JST
このblog、IE7で見たらレンダリング結果が変わってたので、DTDを外した。そうなんだよ。忘れてた。

自分でつくってるサイトはぜんぶDTDなし。互換モードで書いてる。10年前は逆に
「オレオレDTD」
を宣言してたが、IEの標準準拠モードが出てきてからはヤメ。

だってDTDに準拠するつもりさらさらないもん。frameもiframeもblinkもmarqueeも、使いたいとき使うもーん。CDATAの中身もヘンにするもーん。それなのにDTD宣言してたらおかしいっしょ。オレオレHTMLで書きますよ。

[技術系]   IE7のGoogle検索窓を日本語ページ対応に

at 13:54JST
とりあえずInternet Explorer 7日本語正式版を入れた。

初めは気になったけど、メニューバーはないほうが確かにUIの統一が取れてる。Windows伝統のメニューバーは、タブバーのグラフィックとどうもマッチしない。むしろ拡張メニューバーも全部消して、IE7のデフォルトに身をゆだねたほうがスッキリするし使いやすいのがわかった。Vistaのように
「メニュー全廃!」
はどうかと思うが、ことIEを「汎用ドキュメントビューア」としてとらえるならこの変更は間違っていない。

ということで常用するにあたって気になったのが、標準でついてる「検索窓」のGoogle検索が日本語ページ対応になっていないことだ。検索すると欧文ページがヒットする。おまけに言語切り替えのラジオボタンが表示されない。これってぼくだけ?

これを修正する。

OpenSearch対応だったはずなので、どこかにXMLで検索プロバイダの設定が保存されてるんじゃないかと思ったが違った。レジストリだった。

\HKCU\Software\Microsoft\Internet Explorer\SearchScopes\{なんかID}
で、Googleの項目を探す。そこのURLが

旧:
http://www.google.com/search?q={searchTerms}&sourceid=ie7&rls=com.microsoft:en-US&ie=utf8&oe=utf8

となっているので

新:
http://www.google.com/search?q={searchTerms}&sourceid=ie7&rls=com.microsoft:en-US&ie=utf8&oe=utf8&hl=ja&inlang=ja&lr=lang_ja

とすればいいようだ。
20061103mage1.png

2006/11/02

[技術系]   続Googleサイトマップ

at 13:30JST
http://memo.hirosiki.jp/article/26608519.html

sitemap.xmlが生成されたので、Googleにsubmitしてみた。あ、ちなみに(もちろん)このblogの話ではありません。ここはクローラも来てないハズ。

手順
・GMailアカウントを用意
事前に作っておくこと。

・Google ウェブマスターツールへログイン
g1.png
https://www.google.com/webmasters/sitemaps/docs/ja/about.html
先ほどのGMailアカウントで。ここから先の中身は英語オンリー。

・サイトを登録
g2.png
「Add Site」にサイトのトップページアドレスを追加。

・サイトマップデータを登録
g3.png
「Submit a sitemap」をクリック

g4.png
「My Sitemap URL is」にサイトマップデータXMLのURLを指定。「Add Web Sitemap」をクリック。

g5.png
登録してからGoogleに処理されるまで数時間かかる。そのあいだに別の作業をする。「Diagnostics」をクリック。

・サイトの認証をする
g6.png
自分が本当にサイトのオーナーだということを認証する。「Verify Your Site」をクリック。

・認証用タグを取得
g7.png
METAタグが出力されるので、これを該当サイトのトップページ内に埋め込む。MT的なblogなら再構築を忘れずに。単一ファイルをサイトのルートにアップロードする方式も選べる(Seesaaはルートにファイルアップロードできないのよ)。

・認証終了
g8.png
うまく行けば画面のように。

認証しておくと、
「クロール頻度」
「画像のクロールを許可する/しない」
などを選べるようになる。

結果:
g9.png
こんな感じで、
・PageRankのようす(低っ!)
・クロールできてないページがないか
を確認できるようになる。

…だからなに? ^^; ぼくはあんまり重宝するようなもんだとは思わない。ひまつぶしかな? みんなGoogleを持ち上げすぎだよねー。ま、一回くらいやってみるといいかも。個人的には、これでGoogleを使ったサイト内サーチの精度が上がってくれることを期待。現状、ときどき漏れがあるので。

[技術系]   やっぱりケースを買うべきか

at 04:26JST
どうも一台、PCの調子が怪しい。

このあいだHDDをリプレースしたばかりなのだが、微妙に異音がする。長時間使っているとハムのような音が…。

コンパクトサイズのMicroATXケースで、どうもエアフローが悪いらしい。そういえば3年使っているけれど、そのあいだ不調が起きたのはいつもこのケースのシステムだった気がする。

そもそも上部前面にHDDをレイアウトするのが間違ってるんだよなあ…。おまけに、ぼくが
「うるさいわりに役に立ってない」
という理由で、背面ファンを止めてる…プラス、最近排気量の少ない電源に変えたことが悪さをしているようだ。

しかたない。
側面排気にも対応したケースを新調しよ。

[技術系]   Googleサイトマップ対応

at 03:03JST
SeesaaがGoogleサイトマップ向けXML生成に対応した。

Seesaaからのお知らせ: GoogleサイトマップXML出力機能追加のお知らせ
http://info.seesaa.net/article/26537993.html

ぶっちゃけ、全エントリをXMLでフラットに列記するだけなので大したことじゃないんだけど、まああいかわらずマメに機能追加してますね、ということでほめておこう。…つーかこれをXML形式にしたGoogleの思考が理解できない。プレインテキストのほうがサイズ小さく(半分)なるじゃないか。帯域の有効活用より目先の美しさを追い求める。Pythoneerって、みんなそんな生き物ですか。そうですか。

で、Googleにfeedしようと思ってうちも生成オプションをチェックしたんだけど、
http://memo.hirosiki.jp/sitemap.xml
まだ生成されてませんね。はい。処理量の見込みを間違ってパンクしてるんじゃないかと邪推。まあ、なくても死ぬような機能じゃないのでSeesaaたんに文句を言ってはいけません。

さらに過去の記事
2009/04 (1)   2008/12 (3)   2008/11 (9)   2008/10 (10)   2008/09 (20)   2008/08 (2)   2008/07 (23)   2008/06 (16)   2008/05 (22)   2008/04 (11)   2008/03 (21)   2008/02 (20)   2008/01 (21)   2007/12 (32)   2007/11 (37)   2007/10 (46)   2007/09 (63)   2007/08 (33)   2007/07 (41)   2007/06 (81)   2007/05 (173)   2007/04 (168)   2007/03 (113)   2007/02 (123)   2007/01 (92)   2006/12 (111)   2006/11 (185)   2006/10 (20)  

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。