駄メモ



2004年04月30日

セキュリティとか?

うちのサイトでは、アクセス解析におなじみKENT WEB様のACCESS REPORTを使わせてもらってるのですが。全然新バージョンチェックしてなかったもので、思いっきし穴が開いたまんま使ってました。具体的には、CGIに渡されたリファラやユーザエージェント等の情報をサニタイズしないまま、そのまま表示してたという。ぐは。

というわけで、ちゃっちゃと応急処置。まあ、最新バージョンにバージョンアップすりゃ済む話なんですが、なんとなく自前で修正。

アクセス解析については、UTF-8対応とかいろいろ改造したくもあるんですが、なんつーかめんどくさ……

2004年04月24日

「東方紅魔郷」(上海アリス幻樂団

今日も今日とてEx。

以前にちょっと試して、だめかな〜と思ってたセレナボム4発パターンですが。ボムのタイミング次第で、割りと安定してセレナ終了時4000G出るんで、しばらくこっちに乗り換えてみますか。

ただ、それ以上が出る気配があんまししないのが、少し気にかかるところですが。

それはさておき、本日のリプレイです(霊夢・霊/Extra/4.33億)。

やっぱ、スターボウが鬼門だ。こいつを安定して取れるようになれば、もうちょい余裕が出ると思うんだけどなー。

2004年04月20日

「東方紅魔郷」(上海アリス幻樂団

約9ヶ月ぶりにExスコア更新。ついでに初めて通しで全スペルカード取得(除セレナ)。スコアよりもそっちの方が嬉しいよー。ということで、その時のリプレイです(霊夢・霊/Extra/4.26億)。

気になる魔法陣地帯の内訳ですが、4・1・0・3・3となかなかトホホな数値。まあ、ここは運だからしかたない……ということは全くなくて、明らかに判断ミスだったりします。

すなわち、第2セットの一機目は、よほど位置関係が良くない限り捨てろとあれほど。撃ちきれそうに見えても、それは罠、罠なんだよー。

結局、ここの判断ミスが3セット目まで響いて、少なくとも3機は撃てる筈の魔法陣墜とし損ねてます。スコアにして約1300万(クリアボーナス込み)。痛い。痛すぎ。

こーゆーミスをしてる間は、4.5億なんて夢のまた夢なのですよ(--)

2004年04月16日

「東方紅魔郷」(上海アリス幻樂団

QED「495年の波紋」		1/78

よーやく、波紋取れたー。これで、胸をはって「波紋が取れない程度の実力でもEx4億出せます」と言えなくなって残念無念(違)

ともかく、先日無事マイスタも取れたことだし、よーやっと紅魔郷のスペルカードも全部埋ま……埋ま……?

水符「ベリーインレイク」		0/2

ベリーインレイクってなんでしたっけ?

いやもうほんと、霊符でしかやってないからなー。他キャラがどのスペルカードに対応してるかなんて全然覚えてないですよ。それ以前に、雑魚はホーミングに任せる怠惰な日々に慣れきっちゃったから、他キャラでHardパチュまで行くのがしんど……もうプラクティスで済ませるかー?

2004年04月06日

firefoxとか

/.Jをチェックする時、スラドサイドバーは確かに便利なんだけど、いちいちブックマークから呼び出さなきゃならんのがちと不便。ブックマークツールバーを使うという手も有りはするけど、ブラウザ領域が狭くなるからあんまし使いたくないし。mozillaみたくF9一発で開閉ができりゃいいんだけど。

とゆーよーな動機でfirefoxのサイドバー周りをちょっと調べてみました。

サイドバーの実体は、browser.xulで

<vbox id="sidebar-box" hidden="true" class="chromeclass-extrachrome">
  <sidebarheader align="center">
    <label id="sidebar-title" persist="value" flex="1" crop="end"/>
    <image id="sidebar-throbber"/>
    <toolbarbutton class="tabs-closebutton" oncommand="toggleSidebar();"/>      
  </sidebarheader>        
  <browser id="sidebar" flex="1" autoscroll="false"
           style="min-width: 150px; width: 200px; max-width: 400px;"/>
</vbox>    

と、定義してある部分。んで、toggleSidebar()なんて如何にもな関数を呼び出してるんで、その実体を調べてみると、browser.jsに

function toggleSidebar(aCommandID, forceOpen) {

と、定義してあります。

この関数は、サイドバーが開いている状態で無引数で呼び出すとサイドバーを閉じ、引数aCommandIDを与えて呼び出すと、aCommandIDで定義された内容をロードしてサイドバーを開きます。

んで、aCommandIDを定義している部分ですが、これがbrowser.xulの

<broadcasterset id="mainBroadcasterSet">
<broadcaster id="viewDownloadsSidebar" autoCheck="false" 
             label="&downloadsButton.label;"
             type="checkbox" group="sidebar" 
             sidebarurl="chrome://browser/content/downloads/downloadPanel.xul"
             sidebartitle="¤tDownloads.label;"
             oncommand="toggleSidebar('viewDownloadsSidebar');"/>

<broadcaster id="viewBookmarksSidebar" autoCheck="false" 
             label="&bookmarksButton.label;"
             type="checkbox" group="sidebar" 
             sidebarurl="chrome://browser/content/bookmarks/bookmarksPanel.xul"
             oncommand="toggleSidebar('viewBookmarksSidebar');"/>

<broadcaster id="viewHistorySidebar" autoCheck="false" 
             label="&historyButton.label;"
             type="checkbox" group="sidebar" 
             sidebarurl="chrome://browser/content/history/history-panel.xul"
             oncommand="toggleSidebar('viewHistorySidebar');"/>
             
<broadcaster id="viewWebPanelsSidebar" autoCheck="false" 
             type="checkbox" group="sidebar" 
             sidebarurl="chrome://browser/content/web-panels.xul"
             oncommand="toggleSidebar('viewWebPanelsSidebar');"/>
</broadcasterset>

とある部分。ここで、実際にサイドバーにロードするURIなんかを定義しているわけです。

この中で重要なのがこれ

<broadcaster id="viewWebPanelsSidebar" autoCheck="false" 
             type="checkbox" group="sidebar" 
             sidebarurl="chrome://browser/content/web-panels.xul"
             oncommand="toggleSidebar('viewWebPanelsSidebar');"/>

どうやら、こいつが汎用サイドバーパネルとして機能しているようです。

で、本来ならここからweb-panels.xulの中身チェックに入るわけですが、そんなことをしなくても、指定したURIをweb-panels.xulにロードしてサイドバーを開いてくれる関数がbrowser.jsにありました。それが

function openWebPanel(aTitle, aURI)

いやもう、ぱっと見た瞬間使い方がわかる有難い関数です(^^)サイドバー周りの操作は、これとtoggleSidebar()で事足りそうです。

というわけで、コンテキストメニュー拡張のjavascriptパネルで以下のようなスクリプトをさくっと書いて動かしてみると、

var title = "slashdot.jp";
var uri = "http://slashdot.jp/sidebar/";
var sidebarBox = document.getElementById("sidebar-box");
if (sidebarBox.hidden) {
  openWebPanel(title, uri);
} else {
  toggleSidebar();
}

うみゅ。期待通りの動作をしてくれるようです。既にブックマークサイドバーなんかが開いている状態については、なんも考えてません。

これをそのままカスタムスクリプトに追加して、キーボードショートカットの定義をしてやれば……おお、F9一発でサイドバーの開閉してくれるじゃーん。

まあ、これだとF9のショートカットキーが/.J専用になってしまうので、UIに一考の余地ありですが。汎用的に使えるようにするには、ちゃんとXULでそれ用のインターフェースを作らなきゃならなそう……

ともかく、これでfirefoxのサイドバー弄りの一歩目を踏み出せたということで。

あんまし関係無いけど、スラドサイドバーでデフォルトのしきい値が1なのは、なんか嫌だなー。デフォルトはしきい値0の方がいいんだけど。

2004年04月04日

MIDI関係とか

本日のなんじゃこりゃ

いやまあ、やっぱFM音源の音色って好きだなあと思って。