沒穿方服

封存

顯示╱隱藏內文

過世兩天了……

(回憶)高中的午休,經常被講臺上(同學的音響)大力放送的 HIStory 轟炸,敝校沒在睡午覺的,但是我容易累所以都趴著,又個子矮所以坐第一排搖滾區,那景象就很可憐兮兮……不過每當被問要不要調小聲(真關心我的話應該關掉吧)我一定趕快不用,因為其實都在偷聽,而且總是暗自禱告第一片要聽到 Black or White、第二片要聽到 Earth Song(那時皆不知曲名)當天聽歌之旅才圓滿。

不只音樂高水準,後來看到 MV 和表演,在網路上見證巡迴中的 Billie Jean,這、這還不稱麥神,也算得上「有魔法的偶像」啊!沒想到這麼快,這位人物已不再「當代」,實在可惜。

而最感嘆的是他這個人,用崇高標準對自己,用寬大的方式對抗不公平;人生最後我看到的還是這樣。

超凡不是與眾不同到沒人理解的地步。世上弱勢、受欺凌的人何其多,你的問題不是我的問題,我也不能知道你的痛苦,這樣想每個人都是寂寞的;所以我不願說 Michael 寂寞,探訪病童的時候,有些孩子『甚至不知道自己發生什麼事』你也難揣測他們的感覺,但這不妨礙你關懷他們,Michael 也還是會講數不清的 I love you(愛還真是多到滿出來),這樣的人連我都覺得親近,怎麼會寂寞呢?

最後偷渡一句中國的歌詞『我的心在疼痛,像童年的委屈』,這是人一輩子也忘不了的,藉此致意。

耶耶!逼勒!POW!尬哩!兮兮!WOW!凹嗚!

Firefox 套件 Noise 今天終於過了 AMO 的審核,主要瑕疵是全域變數沒藏好,白白拖延不少時間。

  1. 2008-10-20 送審,2009-03-27 被退 —— 等了 5 個月。
  2. 2009-03-29 修正並發新版,2009-04-07 第二次送審,2009-06-11 批准公開 —— 等了 2 個月。

中文的 AMO 真順眼

給也在排隊的朋友參考:其間作者只在 AMO 放新版、修改審核註解(昨天又改了一次,也許是關鍵?)此外就什麼也沒做了。

※想瞭解要審核哪些項目,可參考 AMO blog 的 Successfully Getting your Addon Reviewed


選項視窗

順便介紹此套件用途:

  • 安裝後,預設有 20 幾個事件可以改音效(需要 .wav 檔),例如:
    • 尋找已達頁尾/頁首 - 尋找(Ctrl + F)到底的時候叫一聲
    • 提示通知 - 下載完成、找到新元件等,右下角跳出通知的時候叫一聲
    • 瀏覽開始 - 大致上每點一個鏈結就嗶一下的噪音
    • 啟動視窗就緒 - Firefox 啟動還真慢,開好叫我
  • 編輯視窗

    如果預設的不夠,就比較麻煩了,請見 事件參考 表格,手動加入需要的項目,例如:
    • 資訊列通知 - 記住密碼、擋彈出廣告之類的通知,出現時叫一聲
    • 複製 - 複製的時候叫一聲,可以幫助鑑別按到了 Ctrl + C 還是 Ctrl + V
  • 如果是進階使用者,還可試試 事件過濾 功能,在偵測事件之餘,繼續檢驗是否滿足自訂條件,是的話才發聲。甚至用此功能捕捉特定事件,然後做你想做的事;
    例如設定 dblclick&event.button=='2'&&!gFindBar.hidden&&(gFindBar.close()||true) 會在連按兩下右鍵之後,把尋找列關掉。

總之這個套件不是只有「重現 ie 點鏈結答答聲」用的啦,我還覺得那個跟滑鼠滾輪喀喀喀一樣煩人勒。

可以插好多的表單

最近有些 blogger 管理者把留言表單拿掉了,換成彈出視窗,或整頁模式。

這支 bookmarklet 會試著把表單塞回網頁:
自助嵌入 blogger 留言表單


用了沒反應,蛤~怎會這樣?

1)僅在「單篇文章」頁面有用。 2)因各人模板不同,也可能沒效。 3)只支援 Firefox、Google Chrome、Opera 和 Safari 等。

原始碼拆開如下:

var cmt_div = document.getElementById("comments");
var url, anchor, a = cmt_div.getElementsByTagName("a");
for( i = 0 ; i < a.length ; i++ ) {
  if( a[i].hasAttribute("href") && a[i].getAttribute("href").match(/g\?blogID=([0-9]+)\&postID=([0-9]+)/) ) {
    url = 'http://www.blogger.com/comment-iframe.g?blogID=' + RegExp.$1 + '&postID=' + RegExp.$2;
    anchor = a[i];
  }
}
cmt_iframe = document.createElement("object");
cmt_iframe.setAttribute('data', url);
cmt_iframe.setAttribute('style', 'display:block; width:100%; height:250px; color:#000; background-color:#f4f1f4; opacity:0.95; padding:0 4px; margin:2px 0; border:2px solid #fff;');
anchor.parentNode.insertBefore( cmt_iframe, anchor.nextSibling );
window.scrollTo( cmt_div.offsetLeft, cmt_div.offsetTop );