2007年12月31日月曜日

New Year's Eve b

2007年ももうすぐ終わってしまう。
今年で卒業なのに、研究半分遊び半分で、なんか気持ちとしては一番中途半端な年だった。
無駄に使った時間が多過ぎたのが難点。
来年はもっとメリハリをつけた行動を心がけようと思う。

大晦日は英語で"New Year's Eve"という。
英語版WikipediaのNew Year's Eveの項目に各国の大晦日について書かれていて面白い。
そういえば、以前ヤフー翻訳かどっかの翻訳サイトで『おおみそか』を翻訳すると、
"Oh! is it miso?"と翻訳されてしまう笑える話があったっけ。


それではよいお年を!

2007年12月21日金曜日

ドメイン変更 b

tbl.jp -> 0x3a.net

0x3aは16進数の3aのこと。
2個ぐらい意味をもたせているつもり。

でもなんかびみょー、いろいろネタ考えてみよう

--
やっぱもどそうかな・・・

2007年12月17日月曜日

秋の情報処理技術者試験 - テクニカルエンジニア(ネットワーク) b

発表予定時間の正午になったとったんにIPAのページがすんごい重くなってますね.
ずっと503 Service Temporarily Unavailable になってます.

まぁこんなこともあろうかとあらかじめページを開いておいてよかった.
中の成績照会ページは別サーバで軽い軽い :)

今回テクニカルエンジニア(ネットワーク)を受けてみました.
1回目の受験でドキドキでしたが,結果はなんとか合格でしたー♪

午後IIとかぎりぎりで危なかった.
正直実務経験ない学生にあんな問題はしんどいですよ.

今回の情報処理試験は3年ぶりに受けたけど,年2回しかないのにちょっともったいなかったかな.
これからは毎回何かしら受けることにしてみよう.
次はデータベースでも受けるかなー

2007年12月13日木曜日

今日覚えた英語3 ~注意報~ b

天気予報などでよく使う~注意報/警報.

この意味で使われるのはadvisory / watch / warning

必ずしも注意報警報と一対一で対応しないが,意味の強さでは,
advisory< watch < warning
の順で危険度が増す..

・a hurricane advisory:ハリケーン注意報
・a tornado watch:竜巻注意報(警報)
・a tornado wrning:竜巻警報

・At about 9:40 last night, a tornado warning was issued for Ikoma City.
昨夜9時40分頃,生駒市に竜巻警報が発令されました.

2007年12月5日水曜日

今日覚えた英語2 ~直前のパケット~ b

ソースコードのコメントを英語で書いていて,「直前のパケットがほげほげのとき」といった言い方をしたくて,
直前の~ってどう表現するのが普通なのかなっと思った.

RFCとかを参考にしてみると,こういう場合は↓の感じかな,たぶん.
immediately preceding packet : 直前のパケット

直前のデータ,直前の文字,とかいろいろ使える.

2007年12月1日土曜日

1円の違いで一喜一憂する人々 b

今日から全国でガソリンの値段がさらに上がった.
うちの周りでは軒並みレギュラーが10円上がって153円/ℓになっていた.
かくいう自分も昨日のうちにガソリンを入れて143円/ℓで済んだわけだが,
# 実のところセルフスタンドで入れたら,なんか会計時にルーレットが当たって1円/ℓ引きになった
とある場所に付近のスタンドより1円安い,142円/ℓの店があって,そこは思わず吹き出してしまうほど,
長蛇の列が出来ていた.ざっと見て20台ぐらい.

さてさて1円安いがために,そこに並ぶのは本当に得なのだろうか?
仮にガソリンタンクが50ℓの車が1円の安さを求めてそこに並んだとする.
すると,0から満タン入れた場合,他店より浮く金額は50円.

ところがアイドリング中というのはそれなりにガソリンを消費するものだが,
環境省のアイドリング・ストップQ&Aというページによると,ガソリン乗用車は0.14ℓ/10分消費するらしい.
先ほどの店は3か所給油所があって,そこに20台ならぶと,6台ほど待てばよい.
1台の給油時間を4分と想定すると24分待ち,その間に消費されるガソリン量は0.336ℓ
今回は142円/ℓの店なので,損するお金は47.712円.

単純に考えるとほぼどっこい.だがタンクがでかい車だと逆に2~30円の損になるし,
さらにそのスタンドまで行く,20分少々待つ,という時間まで損している.
さらにそのスタンドまで,近場のスタンドより数キロ離れていれば,確実に損になるだろう.

むしろアイドリング云々以前に,高々50円ほどの違いで待ってまで安いスタンドまで行くか?
逆に50円で30分買えるんだったら買いたいなぁ.

2007年11月25日日曜日

今日覚えた英語1 ~人違い~ b

何度辞書ひいても忘れちゃうなぁということで,覚えた英単語やフレーズを備忘録に取っておくことにしてみる.

Facebookで○○大のtakaですか?とメッセージが来た.
自分は△△大なのでおそらく人違い,てか絶対人違い.

というわけで人違いですよーといったメッセージを送りたいのだが単語,何がいいのかな?


・mistaken identity : 人違い
なんか堅いよな

・take A for B : AをBと思う
・take me for someone else : 私を他の誰かと思う

こんな感じ?

2007年11月23日金曜日

選択した文字列をURLエンコード/デコードするBookmarklet b

コメントをURLエンコードで書いてる人がいたので,簡単に読むためにてきとーに作成


選択文字列をURLエンコードするBookmarklet

javascript:(function(){var d=document,w=window,ds=d.selection,ws=w.selection,wg=w.getSelection;t=((ds?ds.createRange().text:ws?ws.createRange().text:wg?wg():d.getSelection?d.getSelection():'')+'');prompt('encode selected text.', encodeURI(t))})();


選択文字列をURLデコードするBookmarklet
javascript:(function(){var d=document,w=window,ds=d.selection,ws=w.selection,wg=w.getSelection;t=((ds?ds.createRange().text:ws?ws.createRange().text:wg?wg():d.getSelection?d.getSelection():'')+'');prompt('decode selected text.', decodeURI(t))})();


どう作ったらすっきりするかなぁ

2007年11月22日木曜日

英語タイピングテスト ~10-fast-fingers~ b

10-fast-fingers という英語のタイピングテストページ。
http://speedtest.10-fast-fingers.com/
盛り上がってたのでやってみました。



60の壁がなかなか超えられません・・・

やっぱタイポを恐れない勇気が必要か・・・

--

追記: なんとか60超えたー

どうでもいいけど、IEとFirefoxで角のレイアウトが違うね(最初の画像Firefox,次の画像IE)

2007年11月14日水曜日

Vista Disk Icon b


Vist Disk Icon はWindowsXPでVistaライクなディスクアイコンを表示してくれるツール.
下に使用容量がバーで表示されるので、直感的に空き容量がわかる.
まぁ当然ネットワークドライブとかは出ないけど.

2007年11月12日月曜日

Windows 95 Power Toys Set b

Windows95の時代にお世話になったPower Toysですが,まだMicrosoftのサイトで公開されているんですね. => Windows 95 Power Toys Set
この中のShortcut Target Menuは地味に便利なんですよね.昔から愛用してます.

何気に英語版Wikipediaが詳しかったりする.http://en.wikipedia.org/wiki/Microsoft_PowerToys

2007年11月9日金曜日

印字(表示)可能なASCII文字 b

32(space)から126(~)までが印字可能.
16進数だと0x20~0x7Eの範囲.

パケットの中身をダンプするときとかは,上記の範囲内ならそのまま表示し,
上記の範囲外なら・とかに置き換えて表示する.

2007年10月31日水曜日

訃報 b

KAME 今日は朝起きていきなり,itojunさんが亡くなられたという話を聞き,驚きを隠せなかった.つい先日までMLにメールが流れているたのに.

9月の合宿でitojunさんの"IPv6の真実"というセッションは,おもしろく聞かせていただいた.日本だけでなく世界のインターネット発展に欠かせない惜しい人を亡くしたと思う.

心よりご冥福をお祈りいたします.

2007年10月29日月曜日

Apple Wireless Keyboardを買った b

Macの新しいキーボードのデザインに惚れて、さらにBluetooth版の方はコンパクトだというじゃないですか。思わず衝動買いです。



当然US配列の方を買ったんですが、何でAppleはJIS配列だとCtrlがAの横にあるくせに、USになったとたんCapsLockが来るかねぇ。。。そしてCaps Lockは設定で存在を抹消されましたとさ。

ところがここでちょっとした問題発生。このCtrlキーと化したCapsキーですが、なんか反応が微妙に悪い。押したコンマ1秒遅れて認識される感じ。だからコンソールたたいてて、すばやくCtrl + Aとか押すと、Ctrlが押されたことにならず、ただaの文字が入ってしまうことが多々ある。。。本物のCtrlキーだとこんなことはなく、スムーズに入力されるのに。店頭のキーボードでも同じ現象がでたから、おそらくこの新しいキーボードのCaps Lockキーの仕様なんだと思うけど、ここだけが残念。てかUS配列でCtrlがAの横にあるSUN配列な最強キーボードどっか出してくれよー

2007年10月28日日曜日

ThinkPad T60pで VistaからXPへのダウングレード b

標準でVistaインストールなT60pだったんですが,諸所の事情でXPをクリーンインストールすることに.

ところがいきなりはまるはまる.

Windows XPのインストールディスクをいれて,ドライバが読み込まれ,そして・・・
「コンピュータにハードディスクドライブがインストールされていませんでした。ハードディスクドライブの電源が入っていて、コンピュータに正しく接続されていることを確認してください。」
の文字が・・・おおーーーい.

なんか調べてみるとT60pのHDDはSATAが標準ではAHCIモードになっていて,このままだとWindowsXPインストールディスクに入ってる標準のドライバじゃよめないっぽい.だからBIOSからHDDアクセスを互換モードにする必要がある.

BIOSから「Config」→「Serial ATA (SATA)」の項目で,「AHCI」→「Compatibility」に変更.
これでWindowsXPをインストールをもいっかいしてみる.
無事HDDが認識されました.めでたしめでたし.
XPを入れ終わったら「Compatibility」→「AHCI」に戻すのがいいっぽい.


参考文献
http://www.thinkpad-club.net/modules/xhnewbb/viewtopic.php?post_id=9349&topic_id=1535
http://www.thinkpad-club.net/modules/xhnewbb/viewtopic.php?topic_id=1224

2007年10月19日金曜日

Macでmixiを見るとフォントサイズが強制的に13pxになる b

最近Macでmixiを見ると,ロードが完了した直後にfont-sizeが勝手に大きくなる.
おかげで日記のレイアウトが崩れるわけですが,,,

mixi.jsを追ってみたら,

function set_mac_style() {
  if (navigator.platform.toUpperCase().indexOf('MAC') != -1) {
    document.body.style.fontSize = '13px';
   }
}

というコードが増えていた.
中の人は何をしたいんだろう?

うざいのでstylishにて,
body { font-size: 12px !important }
を追加して終了.

2007年10月16日火曜日

C#(マネージコード)でWin32APIのGetLastErrorに相当するもの b

PInvokeを使って,
[DllImport("kernel32.dll", EntryPoint="GetLastError")]
とか思ったりしちゃうけど,違うらしい.

MSDN blogを参考にすると,

1) GetLastError()によってエラー補足したいネイティブ関数は,DllImport時にSetLastError=trueをつけておく.

[DllImport("kernel32.dll", SetLastError=true, EntryPoint="foobar")]


2) LastErrorを補足するときは,Win32APIのGetLastError()関数を使うのではなく,マネージドコードである,Marshal.GetLastWin32Error()を使う.
Marshal.GetLastWin32Error()



以下は参考ページに記載されていたサンプル
using System.Runtime.InteropServices;

public class ForceFailure {
[DllImport("kernel32.dll", SetLastError=true)]
static extern bool SetVolumeLabel(
string lpRootPathName,
string lpVolumeName
);

public static void Main() {
if (SetVolumeLabel("XYZ:\\", "My Imaginary Drive ")) {
System.Console.WriteLine("It worked???");
} else {
System.Console.WriteLine(Marshal.GetLastWin32Error());
}
}
}


SetVolumeLabel()というWin32APIを呼び出しているが,これは指定ドライブボリュームラベルを書き換えるAPIである.通常引数には書き換える対象となるドライブレター(例 C:\\)を入れるが,ここでは存在しない架空のXYZ:\\というドライブレターを指定しているので,当然この関数の実行は失敗し,エラーが発生する.
# おそらくエラーコード123が帰るはず


詳しい説明は引用元を参照のこと

2007年10月13日土曜日

リニューアル後のmixiをガリガリ削るユーザースタイルシートを書いてみた b

リニューアルしたデザインが激しく不評みたいですが,今までのテーブルレイアウトからcssでのレイアウトになったおかげで,むしろ勝手に弄りやすくなってます.mixi用のパーサを作ってた人は楽になったでしょうね :-)

さてということはユーザースタイルシートを使って,強引にデザインを変えることが容易になったということですが,例の2カラム750pxの話のように,たくさんカスタマイズ例がでてきたようです.

といわけでまねして,ガリガリ削ってみた.
一部例の秋田様のcssを参考にしてます.






ぜんぜん最適化してないCSSですが・・・
って,prettyPrintのコードハイライトがCSS対応してたから更新してみたものの,
idやら色表現の#がコメント扱いかよ!ひでーな!おい!

@namespace url(http://www.w3.org/1999/xhtml);

@-moz-document domain("mixi.jp") {
/* ロゴ非表示 */
h1 { display:none }

/* センタリング */
body { margin:0 auto !important }
body { width:620px !important }

/* 広告バナー非表示 */
.adBanner { display:none !important }

/* ヘッダの背景を透過色に */
#headerArea { background:transparent !important }

/* 右カラム非表示 */
#bodySub { display:none }

/* グローバルナビゲーションのmikly・動画・フォトボタン非表示 */
#globalNavigation ul.contentsNavigation li.mikly { display:none !important }
#globalNavigation ul.contentsNavigation li.movie { display:none !important }
#globalNavigation ul.contentsNavigation li.photo { display:none !important }
#globalNavigation ul.contentsNavigation li.friendInvite { display:none !important }
#globalNavigation ul.contentsNavigation li.friendSearch { display:none !important }
/* #globalNavigation ul.contentsNavigation li.community { display:none !important } */
/* #globalNavigation ul.utilityNavigation li.help { display:none !important } */

/* ヘルプ・ログアウトボタン非表示 */
/* #globalNavigation ul.utilityNavigation li.help { display:none } */

/* ローカルナビゲーションのレビュー・ミュージックボタン非表示 */
#localNavigation li.review { display:none }
#localNavigation li.music { display:none }
#localNavigation li.favorite { display:none }
/* #localNavigation li.message { display:none } */

/* ローカルナビゲーションのプルダウンボタン非表示 */
#diaryPullDownButton { display:none !important }
#videoPullDownButton { display:none !important }
#photoPullDownButton { display:none !important }

/* フッター幅調整 */
#footerArea { width:620px !important }

/* フッターナビゲーションマージン調整 */
#footerArea ul.footerNavigation01 li { margin:0 2px !important }

/* 検索フォーム非表示 */
div.searchForm01{ display:none }

/* 「最新情報」ヘッダの非表示 */
#mymixiUpdate div.heading01 { display:none }

p.statusIcon {display:none;}

/* いらないコンテンツをとにかく非表示 */
#myUpdate { display: none;}
#newPlaylist{ display: none;}
#newReview{ display: none;}
#newVideo{ display: none;}
#newAlbum{ display: none;}
#newBbs{ display: none;}
#footerArea { display: none;}
#intro { display: none;}

/* お知らせメニュー */
div.information {
width: 600px !important;
background:none !important;
border: dotted 1px #f90 !important;
}
div.information div.contents {
width: 600px !important;
border: 0 !important;
float: none !important;
}
div.information ul {
margin-left: 5px !important;
background: none !important;
}

div.information div h2 { display:none; }
div.information div ul li dl dt { display:none; }

div.information div ul li dl dt.emphasis01 { display:inline !important; }

div.information div ul li dl dd { display:none; }

div.information div ul li dl dt.emphasis01 + dd{ display:inline !important; }

#bodyContents div.heading02{
background:none !important;
border:#666666 dotted 1px;
}
}


/* ホーム専用スタイル */
@-moz-document url-prefix("https://mixi.jp/"),
url-prefix("https://mixi.jp/"),
url-prefix("http://mixi.jp/home.pl"),
url-prefix("https://mixi.jp/home.pl") {

/* 自分の写真部分の非表示&調整*/
#myProfile {
width:150px !important;
height: 45px !important;
background: none !important;
padding-top: 0 !important;
}
#myProfile div.contents01{ display:none; }

/* プロフィールの灰色背景削除と上padding縮める */
#myProfile div.contents02{
padding-top:5px !important;
background: none !important;
}

/* 写真の変更とプロフィールの確認のfloat解除 */
#myProfile li.photoChange{ float: none !important;}
#myProfile li.profileEdit{ float: none !important;}

/* 左カラム全体の横幅 */
#bodySide { width:160px !important; }

/* マイミクシィ一覧の枠*/
#bodySide div.listBox01 {
width: 150px !important;
background: none !important;
border: dotted #f90 1px !important;
}

/* マイコミュ一覧の枠 */
#bodySide div.listBox01 div.contents{
width:150px !important;
border-top: dotted 1px #f90 !important;
border-left: 0 !important;
border-right: 0 !important;
border-bottom:0 !important;
}

/* マイミクのアイコン非表示 */
#mymixiList div.contents table.iconListTable { display: none;}

/* マイミクの誕生日チェックを非表示 */
#mymixiList div.contents dl.actionIcon01 { display: none;}

/* マイコミュのアイコン非表示 */
#communityList div.contents table.iconListTable { display: none;}
/* マイコミュのイベントチェックを非表示 */
#communityList div.contents dl.actionIcon01 { display: none;}

/* */
#bodySide div.listBoxUtility01{
background:none !important;
width:150px !important;
}
div.listBox01 div.utilityLinks01{
width: 150px !important;
background: none !important;
}
}


/* コミュニティページ専用スタイル */
@-moz-document url-prefix("http://mixi.jp/view_community.pl") {
/* 入退会ボタンを表示 */
#localNavigation li.music { display:inline !important }
}

2007年10月2日火曜日

GoogleブックマークってiGoogleに表示されないの? b

なんか面倒でつかってなかったんだけど,いい加減ブックマークを使いこなすことにした.
オンラインブックマークで.

今まで基本的にURLは暗記するほうで,よくいくページはブラウザのタブで持ちまわってたんだけど,ちょっと破綻してきたからGoogoleブックマークとやらを使ってみた.

Googleが好きそうな,ラベル管理タイプのブックマーク.
う~ん,これはどうなんだろう.
まだいまいち使いにくいなぁ.
多分インターフェースの問題だけど.
FireFoxはあるみたいだから,SleipnirからGoogleブックマークを取り込めるプラグイン希望~

そーいやiGoogleとうまく連動してくれないんだけど・・・?
って思ったら,ラベルに「ホームページ」ってつけたブックマークだけ特別な意味を持ち,iGoogleにも表示されるっぽい.
表示設定を英語にすると「homepage」がそれに相当みたい.

日本設定時にhomepageラベルを作ると普通のラベル扱いなんだけど,このまま英語設定にすると,ホームページがhomepageになって,homepageラベルが重複表示.しかもどっちも特別な意味のhomepageになってしまって,自分で作ったhomepageラベルが消失.

自分でも何言ってるかわかんね

2007年9月3日月曜日

ブラウザ上でWEBページを編集可能状態にするJavaScript b

よく忘れるのでメモ。

一時的にブラウザ上のコンテンツを編集可能状態にするJavaScript。
サーバに反映とかされるわけじゃないが、WEBページを印刷したりするとき、邪魔な広告を消したいときとか便利。

下記の文字列をアドレスバーに貼り付けてEnter(移動)すると、表示コンテンツが編集可能になる。

javascript:document.body.contentEditable='true'; document.designMode='on'; void 0

2007年8月20日月曜日

Vistaでフォルダオプションにファイルの種類タブが無いんですけど b

どこいったよーーーーー!?

「コントロールパネル」 → 「規定のプログラム」 → 「ファイルの種類またはプロトコルのプログラムへの関連付け」 に移ったんだってさ。


2007年8月17日金曜日

Subversionでコミット完了後に自動で処理を行う (post-commit) b

人に教えようとしたら自分がはまったのでメモ

Subversion(cvsもそうだったが)では、処理の各所で自動で割り込み処理を行わせることができる。

各リポジトリの下にhooksというディレクトリがあり、その中に以下のスクリプトが置かれている。
post-commit
post-lock
post-revprop-change
post-unlock
pre-commit
pre-lock
pre-revprop-change
pre-unlock
これらはその名前のとおりの場所でフックを行い、中に書かれたスクリプトが実行される。

コミット直後ならばpost-commit内に処理したい内容を記述すればよい。
なおこれらのスクリプトは最初post-commit.tmplとかなっているので、post-commitのようにリネームする。
スクリプトなので実行権限(svnの)を与えることを忘れずに。

中に書くスクリプトの注意点
・これはsvnユーザで実行される
・コマンド実行するときは実行権限,書き込み権限などを考えること
・ついでにパスも注意(パス通ってなくエラーとか)


:Webページなどの編集でコミット後に/var/www/htmlにアップロード
/usr/local/bin/svn update /var/www/html >> /tmp/hoge.log 2>&1

・svn update先には最初にcheckout忘れずに
・リポジトリに日本語名はいってると、svn updateでファイル名が変換できませんとエラーになったり
・一応ログにはかせよう

2007年8月15日水曜日

ウェブページの上部にmBBBBBBBが表示される b



少し前に、自分が管理に携わってるネットワークで発生した事件.
そろそろ鎮火したっぽいので状況でも報告してみる.

様々なページの上部にmBBBBBBBという文字が表示されている.
# 本当はもっとごちゃごちゃ表示されるが、読めるのがこの文字ぐらい.
またブラウザにもOSにも依存せず,同一ネットワークの複数のマシンで同様の状況が発生する.
いつの間にか直っていたりして,発生条件が意味不明.

この現象、結論から言うと、同一ネットワーク内のホストがとあるウイルスに感染しているのが原因.最終的な駆除の部分には関わらなかったので,具体的になんていうウイルス名かは聞かなかったが,途中報告での話ではSymantecでいうところの,W32.Arpiframeとかそのあたりのウイルスに感染したホストがあったために起こったもよう.
# こいつじゃない他のウイルスのような気もするけど、まあ症状は似てる

今回これらによる被害としては,ウイルスに感染したホストは,ARPポイゾニングを使って同一のネットワーク内の通信をフックし,HTTPコンテンツにIFRAMEを挿入してエクスプロイトをダウンロードするように強制するとSymantecのサイトには書かれている.
実際のところなんか中途半端にヘッダが書き換えられ,変なごみがついて,結果としてmBBBBBBBが表示されるだけになっちゃったっぽい.IFRAMEの挿入に失敗したのかな? もしくはこれに似たほかのウイルスかもしれないけど.

以下ダンプして見た結果.
実際うちのネットワークでは数百ホストが同一ネットワークに接続されているが,そのすべてのトラフィックが感染した1台を経由してため,最初のルータへの1ホップのRTTが平均500msというものすごい重さになった.そしてこのウイルスに感染したホストを通過すると,HTTPコンテンツを書き換えられる.この際同時にHTTPヘッダが書き換えられて,Content-LengthとContent-Typeだけになってる.ちなみにこのContent-Lengthの書き換え,挿入分のつじつまを合わせようとしているのだろうが,なんか失敗してるっぽく,実際の長さよりも小さかったりしてる.おかげでページ下部が切れて表示されなくなったりした.
# mixiの広告部分はJavaScriptなのでスクリプト上部下部が切れてしまい,広告じゃなくソースがそのまま表示されてしまってる.他にもレイアウトやら表示が完全に崩れてしまうサイト多数.



というわけで,mBBBBBBBが表示されたら同一ネットワーク内のホスト(自分も含めて)がウイルスに感染していることを疑ってみましょう..

FreeBSDでSubversionのインストール b

make.confのオプションをしょっちゅう忘れるのでメモ.
WebDAV使うときのお話.

make.confに以下のオプションを追加

WITH_MOD_DAV_SVN=yes
WITH_APACHE2_APR=yes
WITHOUT_BDB=yes

そんでもってportsからインストール
# cd /usr/ports/devel/subversion/
# make && make install

インストール終わったらrc.confに以下を追加
svnserve_enable=yes


最後にsvn用ユーザとグループの作成.
uid, gidはてきとうにかぶらないやつを.
# pw groupadd -n svn -g 100
# pw useradd -n svn -u 100 -g svn -d /nonexistent -s /nonexistent

そして起動
# /usr/local/etc/rc.d/svnserv

リポジトリの作成
/svnというディレクトリに,hogeというリポジトリを作ってみる.
$ svnadmin create /svn/hoge

Apache2とdavで連携させるには,httpd.confに以下の感じで追加
<Location /svn>
Dav svn
SVNParentPath /svn/hoge
</location>

2007年8月8日水曜日

Windows Live Messenger のオプション画面に「アドイン」の項目を追加する b

Windows Live Messenger (たぶんMSN Messengerも)には,ユーザがMessenger APIを利用して作成した,アドインを組み込むことができるオプションがある.



デフォルトでは表示されない項目なので,レジストリエディタで,
HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger\AddInFeatureEnabled
に,
DWORDエントリを加える.
1なら,アドインセッティングを有効.
0なら,アドインセッティングを無効.
エントリを加えたら,Windows Live Messengerを再起動

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger]
"AddInFeatureEnabled"=dword:00000001


肝心のアドオンの作り方については,眠いのでまた今度

2007年8月4日土曜日

Windowsで後から英語キーボードに変更 b

Windowsで日本語キーボード認識になってるのを英語キーボードに認識しなおさせるレジストリ.
組み込んだら再起動.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
"OverrideKeyboardSubtype"=dword:00000000
"OverrideKeyboardIdentifier"="PCAT_101KEY"
"LayerDriver JPN"="kbd101.dll"


日本語配列に戻す場合はこちら
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
"OverrideKeyboardSubtype"=dword:00000002
"OverrideKeyboardIdentifier"="PCAT_106KEY"
"LayerDriver JPN"="kbd106.dll"

2007年8月3日金曜日

公開鍵を利用できないため、以下の署名は検証できません。 b

Ubuntuでのお話.

# apt-get update
とか使用とすると怒られた。



gpg --keyserver pgp.nic.ad.jp --recv-keys 鍵の文字列
sudo gpg --armor --export 鍵の文字列 | sudo apt-key add -


でいいらしい

Internet Explorerでは、windows - / をダウンロードできません。 b

レジストリでxmlのタイプが変更されるのが原因
Dreamweaverなかを入れると発病
たぶんVistaな人が発症

レジストリを↓の感じで,インストールしたての標準にもどせばOK

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.xml]
@="xmlfile"
"Content Type"="text/xml"
"PerceivedType"="text"

[HKEY_CLASSES_ROOT\.xml\OpenWithList]

[HKEY_CLASSES_ROOT\.xml\OpenWithList\winword.exe]
@=""

[HKEY_CLASSES_ROOT\.xml\PersistentHandler]
@="{7E9D8D44-6926-426F-AA2B-217A819A5CCE}"

右クリックにターミナル(端末)を追加 b

nautilus-open-terminal

をインストールすればOK

2007年7月22日日曜日

Sleipnirで特定のページだけJavaScriptを無効にしたい b

多分Sleipnirの開発者向けの項目読めばプラグインとかからできそうだけど.今回は手っ取り早くやりたかった.

というわけで、SleipnirならURIアクションマネージャを使うのが簡単.

「ツール」→「URIアクションマネージャ」


これを使って特定のページだけ「セキュリティ高」にするとJavaScriptを無効にすることができる.
当然だけどJava,ActiveX,も一緒に無効になってしまう.


例えばmixiでJavaScriptを無効にする場合,
URIは「http*://mixi.jp/*」
アクション「デフォルト」
セキュリティ「セキュリティ高」

にすればいい感じ.


一時的にJavaScript有効にしたかったら、「セキュリティ」→「タブ別セキュリティ」で一時的にJavaScriptを有効にすればよい.

2007年7月19日木曜日

Twitter b

話題のTwitterを導入してみた.

標準でBlogger用のJavaScript部品があったけど、なんかダサいのでFlash版の方を貼り付けてみた。

ちょっと満足♪

2007年7月17日火曜日

IEでmixiの表示が重い b

Firefoxだと起こらないっぽい。
IE6(たぶん7も)でmixiのページ、特に日記などフォームがあるところを開くとやたらと重い。最初に画面上部が表示されるも、途中で描画が止まり(固まり)、数秒たってやっと表示される。

原因はおそらくJavaScript。
切ったら大変一瞬で表示されるようになった。

最初「最近IE6でWikipedia日本語版の表示が異常に遅いのはKeepAliveのせい」とかなんとか思い出したけど、CPU使用率上がるし、ハイスペックマシンだとそれなりに早いので、JavaScriptの処理に時間食ってるっぽい感じ。

Sleipnirで特定のページだけJavaScriptをOFFってどうやればいいんだろ?


--
追記
Sleipnirで特定のページだけJavaScriptを無効にしたい

2007年7月12日木曜日

Fedora (Xorg)でcapsにctrlを割り当てる b

Fedora 7を入れてみた.
7から名前がFedora CoreじゃなくてFedoraになったらしい.

OS入れたらまずすることの1つに,Caps Lockを抹殺することがある.
英語キーボードやらHHKやら使いたいけど,ノートだと仕方なく日本語キーボードでしょんぼり.

/etc/X11/xorg.conf
Option    "XkbOptions"    "ctrl:nocaps"
をSection "InputDevice"にでも追加すればよいみたい.

置き換えじゃなくて,ctrlとcapsを入れ替えたい場合は,
Option    "XkbOptions"    "ctrl:swapcaps"

2007年7月10日火曜日

久しぶりに投稿 b

最近忙しくて全然何もかけなかったー

2007年6月22日金曜日

FreeBSDの起動時に/usr/local/etc/rc.d/以下が2回実行されるんだけど... b

FreeBSDで/usr/local/etc/rc.d/以下にはportsなどから入れたツールの起動スクリプトが格納され,/etc/rc.confに条件で,OSの起動プロセスの最後で実行される.
ある日サーバのApache2.2の調子が悪くなったのでいろいろ調べたら,プロセスが2重に起動していた,

$ ps -aux grep httpdroot 749 0.0 0.4 143292 16468 ?? Ss 8:56PM 0:00.20 /usr/local/sbin/httpdroot 756 0.0 0.5 143292 18656 ?? Ss 8:56PM 0:00.17 /usr/local/sbin/httpdwww 836 0.0 0.4 144108 17952 ?? I 8:56PM 0:00.01 /usr/local/sbin/httpdwww 837 0.0 0.4 144108 17952 ?? I 8:56PM 0:00.01 /usr/local/sbin/httpdwww 838 0.0 0.4 144108 17952 ?? I 8:56PM 0:00.01 /usr/local/sbin/httpdwww 839 0.0 0.4 144108 17952 ?? I 8:56PM 0:00.01 /usr/local/sbin/httpdwww 840 0.0 0.4 144108 17952 ?? I 8:56PM 0:00.01 /usr/local/sbin/httpdwww 841 0.0 0.5 144108 20140 ?? I 8:56PM 0:00.01 /usr/local/sbin/httpdwww 842 0.0 0.5 144108 20140 ?? I 8:56PM 0:00.01 /usr/local/sbin/httpdwww 843 0.0 0.5 144108 20140 ?? I 8:56PM 0:00.01 /usr/local/sbin/httpdwww 844 0.0 0.5 144108 20140 ?? I 8:56PM 0:00.01 /usr/local/sbin/httpdwww 845 0.0 0.5 144108 20140 ?? I 8:56PM 0:00.01 /usr/local/sbin/httpd

ログを見てみると,どうやらOSブート時に/usr/local/etc/rc.d/apache22 startが2回行われているっぽい.さて実際rc.dって誰が呼び出してるんだっけ?起動周りは全部/etc/rc から派生していろいろ実行される.それで/usr/local/etc/rc.d/以下のスクリプトは最終的に/etc/rc.d/localpkgというスクリプトが実行を行う.その中ではlocalとして指定されているディレクトリを取得するが,これはlocal_startup変数に格納されており,/usr/default/rc.conf内で,
local_startup="/usr/local/etc/rc.d /usr/X11R6/etc/rc.d" # startup script dirs.

と記述されている.要は,
/usr/local/etc/rc.d/usr/X11R6/etc/rc.d
の2つのディレクトりの中のスクリプトが実行されるわけだが,X11R6のほうをのぞいたら,/usr/localとまったく同じ構成になっていて,おかしいなと思ったら,/usr/X11R6が/usr/localのシンボリックリンクになっていた・・・・だから/usr/local/etc/rc.dも2倍~OSブート時の実行回数も2倍~

rubyのCGIで500 Internal Server Error b

FreeBSDでのお話.
原因はrubyの実行パスが通ってなかった.

よくrubyのCGI(tDiaryとかHikiwikiとか)だと,パスとして

#!/usr/bin/env ruby

で通してある.
でFreeBSDだと実態は/usr/local/bin/rubyになるわけで,envから/usr/local/binのパスが取得できるから実行できるが・・・でもこれだと実行時の環境変数しだいで,動くか否かが変わるよね.

そんな現象に出くわしまして,ApacheをOS起動時のままCGI実行するとエラー.Apacheをユーザー側で再起動かけると,ちゃんとCGI実行できるということがあった.原因としては起動プロセス中に立ち上がったApacehは環境変数がからっぽ(?)らしくて,/usr/local/binのパスが通ってなかったから,env rubyって言われても実行できませんという話.

この辺の仕組みってあまり詳しくないから知らないけど,このやり方って微妙なんじゃないのかなぁと思ったり.結局
#!/usr/local/bin/ruby

と書けば動いた.

2007年6月19日火曜日

RFCを印刷 b

どうにもRFCを印刷するときはずれる.

RFCは完全なテキストで公開されており,その文書体裁はRFC2223 "Instructions to RFC Authors" で定められている.
@ITの詳説 TCP/IPプロトコルなんかにも解説がある.

ページごとに改ページの制御コードが入っているので,それを理解できるテキストエディタだと,少なくともページがずれることはない.残念ながら愛用のEmEditorは対応してないようで,これで印刷するとずれる.探せば改ページコードに対応しているテキストエディタはたくさんある.でも印刷は微調整しないとマージンが微妙.

Vectorにもツールが若干あったけど,どうにも微妙.
RFC Viewerなるものもあったりしたけど,読むのにはいい感じだけど,印刷はこれまた微妙.
時間が空いたらそのうちなんか作ろうと思う.

2007年6月12日火曜日

ちょっと化けるんだけど・・・ b

なんか急にIEだと勝手にs-jisで表示するようになった・・・
xmlの宣言にもmetaタグにもutf-8が指定してあるのに・・・なぜ?

と・・・この投稿を投げたら直った.
↓のSynergyの投稿内でブラウザが変なことしてるのか?

SynergyでWindowsとMacOSX のクリップボード共有ができない b

Windowsをサーバ,Macをクライアントにした場合のお話.
原因はMacでのSynergycを自動起動させるのに,StartupItemsを利用したところっぽい.
本家サイトのautostartのページには,

1. Create a System Level Startup Item
という項目があり,StartupItemsとやらを利用して,サービスのように起動する方法が載ってっている.しかしこれで起動すると,ログイン画面の前から起動して便利なのだが,どうもクリップボードの共有がうまくいかないらしい.どうも実行権限周りの問題な感じがするなぁ.
# Macは全然詳しくないのでStartupItemsの仕組みはよくわからないが・・・

というわけで,もう一個の
2. Run Synergy When a User Logs In
というほうで設定すると,ログインした時点で自動起動して,クリップボードもしっかり動いた.
# $(hostname -s) の置き換えがどうも怪しいのでホスト名は直に書いた


ついでにMac上でaltとコマンドキーあたりのバインドが,いけてない件についても.
Winsows側で動いているSynergyサーバ側で,
Macに対する設定のModifiersの項目
Meta -> Super
Super -> Alt
Alt -> Meta
が良い感じ.

2007年6月11日月曜日

Gmailに完全移行(3) b

とりあえずIMAPにがんがん入れていったら軽く1万通を超えた.
200件/hなんて速度で行かれるといったい何日かかるやら・・・毎回アカウント再設定したらそのつどいってくれないかな~なんてやってみたら,「情報を編集」押して何も変更せずに保存すれば,そのつどPOP受信しにいってくれた.これで200件/2分ぐらいのスピードで受信できるようになった.そしたらあんま早すぎたのか,POPサーバ側から怒られた.



ともあれこれでメールを完全移行することに成功.
全部で3万通ほどになった.なんか入れ忘れがありそうで怖いなぁと,こんな些細なことが気になりだす.ほんと物(ファイル)が捨てられない性格は損だ.



今回はまった点
  • 受信はランダム間隔(?)で1回200通しかできない -> 強制受信で2分に1回ぐらいいける.
  • zipやexeは,割りとウイルス疑惑で受信してくれない(感染してないのに).
  • これだけ一斉に受信すると,結構な勢いで迷惑メールに誤分別あり.
  • メールの抜けをチェックしてたら,何度受信させてもGmail側に受信されないメールがあった.何度IMAP->POP受信してもGmailの受信トレイに入らない.おかしいと思ったら,Gmailのゴミ箱に入ってた.重複するメールは受信されない(ゴミ箱行き?)と関係あるのかな.
  • POPで全部メールを受信し終わっても,すぐに全件受信トレイに入るわけじゃないみたい.完全に受信が完了している現在でも,受信トレイの未読メールが徐々に増えている.新たにメールを受信しているわけではなく,すでに受信を終えているはずのメールが,ぽこぽこ追加されている.メールのハッシュ化に時間がかかっているのかな?よくわからん.

2007年6月10日日曜日

Gmailに完全移行(2) b

さて次はどのようにして今までのメールをGmailに突っ込むか.

ぐぐって見ると,Google GMail Loader という,様々なメール形式(mBox,MailDir,MMDF,MH,Babyl,etc..)をGmailにインポートするツールなんかがはやっているようである.
ただこの欠点として,Gmail上の受信箱でのメール時刻が,実際にメールが届いた日付でなく,Gmail自身が受け取った日時で表示されるらしい.
もちろんヘッダのDataフィールドは残るからいいっちゃいいが,ちょと微妙.

通常の方法でGmailにメールを送るには,「転送」と「外部POP受信」の2通りがある.
ちょっと試したところ,転送されて届いたメールは,Gmailが受け取った日時で表示されソートされるっぽい.そして最近できた機能の外部POP受信(別のアカウントからメールを受信)は,POPサーバから直接取得するからか,しっかりメールのDataの日時がGmail上でも表示され,その順に取得される.

ということで,一度POPサーバにメールをまとめ,そのPOPサーバに対して,Gmail側から取りに行かせるのが綺麗にGmailに格納できそう.

これを実現するのに手っ取りばやいのはIMAP/POPの両方に対応したメールサーバを仲介させることだろう.

ローカル ---(送信)--> IMAP/POP ---(受信)--> Gmail
自由になる外部アクセス可能なサーバがあれば自前で準備してもいいんだが,あいにく身動きとれない状況.どこかにフリーのIMAP/POPなサーバはないかと探したら,Inter7なるフリーのメールサービスを発見.
さっそくアカウントを取得してメール転送中....Gmailの外部POP受信が,最大1度に200件ずつなうえ,一度200件とったら次の取得時間が不明(数分後に続きをとりにいってたり,2時間後にとりにいってたり???)なので,気長にまつしかない.

FreeBSDでSambaをマウント b

メモメモ,

FreeBSD6.2

# mount_smbfs -E euc-jp:cp932 -I samba.mydomain.com //userid@samba/hoge /hoge

てな具合に.

-Eオプションは,
-E ローカルの文字コード:サーバの文字コード
今回敵はWindowsなのでcp932を指定

マウントしたら日本語が化けた.
$LANGja_JP.eucJPをセットすることをお忘れなく

Gmailに完全移行(1) b

メールアドレスが多すぎて管理できなくなってきた.

というのも前から目的別にメールアカウントを作る癖があって,サービスごとにメルアドを生成してきたのが諸悪の根源.プライベート用,システムメッセージ受信用,メッセンジャー用,mixi用,メルマガ登録用,etc.....
一番古いアドレスは96年ぐらいから使い続けてるのでスパムの嵐.

そんな悩みもGmailアカウント1つで解決!
以前からプライベートではGmailを使っていたけれど,この際メール統合アカウントとして1個作ることにした.


Gmailのメリット
(1)高精度のスパムフィルタ
(2).と+(ドットとプラス)を使った無限アドレス

やはりこれに尽きると思う.
(1)についてはもはやいうまでもないが,なんと言っても(2)が便利である.
Gmailには,メールアドレスのユーザー名について,「全てのドット」及び「+とそれ移行の文字列」が無視されるという特徴がある.

例えばtblog@gmail.comというアドレスがあったとする.
# Gmailの6文字制限上,上記のアドレスは存在しない
この場合,
1) tb.log@gmail.com
2) tb..log@gmail.com
3) tb.log.@gmail.com
4) tblog+hoge@gmail.com
5) tb.log+hoge@gmail.com
のように1~5のアドレスは,全て同じメールアドレスを意味する.

これを使えば,tblog+mixi@gmail.comをmixi用の登録アドレスにしてみたり,どこかのMLに登録するときはtblog+ml@gmail.comと登録すれば,1つのGmailアドレスで全て解決してしまう!
ちなみにこれは別に画期的な技術とかではなく,例えば独自ドメインなんかを持っていれば,MXレコードの設定で似たようなことはできた.


さて新しくGmailアカウントを取得したわけだが,せっかく全文検索機能なんかもあるので,過去のメールも全部アップロードしたいもの.普通に送ったら受信日時とか全部消えちゃしなぁ.途中にIMAPサーバかませればうまくいきそうかな.今日は疲れたので続きは明日にしようっと.


--
追記
携帯(au)のメール転送先をtblog+ezweb@gmail.comのようにしたら怒られた.
+は使っちゃだめだってさ.

2007年6月7日木曜日

bloggerの投稿画面の文字がおかしい b



ブログの投稿を公開しました。
ブログを見る <span> (新しいウィンドウ)




とりあえず一番変なところ・・・新しい投稿を完了すると出る画面が明らかにおかしい



なぜspanタグが文字として表示されてるんだ・・・・
他はところどこフォントサイズが大きすぎるのか,文字レイアウトが乱れてる気がする・・・仕様?




投稿画面もこの通り文字がずれて重なって・・・これって普通なの?
ヘルプ見渡したりググったりしたけど,同様の現象は報告されてなさげ.


--
6/13追記:
spanタグが表示されてしまう現象はいつの間にか直った。。。なんだったんだろう?

SHARPより新WILLCOM端末発表 - Advanced/W-ZERO3[es] b


SHARPよりWILLCOMのスマートフォンAdvanced/W-ZERO3[es]なるものが発表されたもよう.機種名はWS011SHで,外装の雰囲気はWS007SH[es]をさらに洗練させたような感じ.

OSにはWindows Mobile 6が搭載されている.
液晶は3インチのWVGAで,無線LANに802.11b/g搭載.
ジョグ機能内蔵なカーソルキー(Xcrawl)とかいうものが付いている.
プリインストールのソフトも豊富らしい.

Bluetooth機能が内蔵じゃないのは残念.
W-OAM対応っていうけど,そもそもEMに対抗した通信プランを出して欲しいのが本音.

2007年6月6日水曜日

C#でBASIC認証越しにXMLデータを取得する b

C#でXMLデータを読み込む方法はいくつかあるが,
たいていどのクラスでもURLをStringで渡せばそれを読み込みにいってくれる.
だが,閲覧にBASIC認証が必要なXMLファイルを読むにはどうすればいいか?

Microsoftのページに普通に書いてあった.

NetworkCredential nc = new NetworkCredential("id", "pass");
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = nc;

XmlReaderSettings settings = new XmlReaderSettings();
settings.XmlResolver = resolver;

XmlReader reader = XmlReader.Create("http://my.domain/hoge.xml", settings);


こんな感じであとはXmlReaderのオブジェクトをXmlDocumentなりのパーサに渡せる.
ちなみにNetworkCredentialクラスは,他にも様々な認証に対応しているらしい.

2007年6月4日月曜日

google-code-prettifyを使ってみた b

はてなにはシンタックスハイライト機能があっていいなーと思ってたけれど,
GoogleがJavascriptで動作するシンタックスハイライトスクリプトを作成していた.
google-code-prettify といスクリプト.
早速導入してみた.


The lexer should work on a number of languages including C and friends, Java, Python, Bash, SQL, HTML, XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk and a decent subset of Perl, but, because of commenting conventions, doesn't work on Smalltalk, Lisp-like, or CAML-like languages.

説明書によると
C,Java,Python,Bash,SQL,HTML,XML,CSS,Javascript,Makefile対応で,Ruby,PHP,Awk,Perlも大まかには対応しているらしい.Smalltalk,Lisp,CAMLは無理みたい.そして実際の使い方だが,


Usage:
1) include this source file in an html page via
<script src="/path/to/prettify.js" type="text/javascript"></script>
2) define style rules. See the example page for examples.
3) mark the <pre> and <code> tags in your source with class=prettyprint.
You can also use the (html deprecated) <xmp> tag, but the pretty printer
needs to do more substantial DOM manipulations to support that, so some
css styles may not be preserved.


prettify.css
prettify.js
の二つのファイルからなっており,これをどこかに設置して以下のように読み込ませればよい.
<link href="prettify.cssのパス" rel="stylesheet" type="text/css/">
<script src="prettify.jsのパス" type="text/javascript></script>

そして<pre>タグもしくは<code>タグにclass=prettyprintをつけて使えばよいみたい.

動かないじゃんと思ったら,WEBページの方のREADMEに
Add onload="prettyPrint()" to your document's body tag.
と書いてあった.忘れずに追加.
<body onload="prettyPrint()">

CPU使用率が常に高い b

最近メインで常用しているマシン(WindowsXP SP2)のCPU使用率がコンスタントに高い. 理由の1つはおおかたわかっていてSleipnirのとあるプラグインだ.

MixChain
と呼ばれる,mixi 専用のプラグインなのだが,これを入れてからというもの,
Webブラウズもままならないひどい状態に...
自分は普段からタブブラウザのタブを20~30ひらく人間なのでただでさえ重いのだが,これはたまったもんじゃない.結構便利なプラグインだったが仕方が無いので無効に.でもSleipnirごと落ちるようなエラーも頻発してたし,まだ使うには早かったかな.

案の定これでSleipnirは軽くなったが,まだ悪さ(?)をするプロセスがいた.
svchost.exeである.
こいつはWindowsのサービスを実行しているプロセスなのだが,これの1つが常に50%以上のCPUを割いている.ちょっとあんまりだったので,Process Explorerを使ってどのサービスか突き止める.
# これはMicrosoftのMark Russinovich氏による有名なツール

ntdll.dll!RtlAllocateHeapとなっているが・・・・?
Google先生に聞いてみたところこれはWindows Updateに起因するものらしい.とりあえず邪魔だったので問答無用でkillした.自分で把握しているならWindows Updateの自動更新OFFでもいいかな.


この2つを改善しただけでずいぶんと快適になった.

2007年6月3日日曜日

ブログ新設 b

なんか設定でハマったけど,とりあえず設置