<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kej.tw Revisited &#187; 程式設計</title>
	<atom:link href="http://blog.kej.tw/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kej.tw</link>
	<description>一個懶鬼的部落格</description>
	<lastBuildDate>Wed, 27 Apr 2022 20:02:14 +0000</lastBuildDate>
	<language>zh-TW</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.8.3</generator>
	<item>
		<title>[GM] [更新] 暫時變更 twitthat 的送出狀態</title>
		<link>http://blog.kej.tw/2009-10/05/temporary-customize-your-twitthat-action-0-2/</link>
		<comments>http://blog.kej.tw/2009-10/05/temporary-customize-your-twitthat-action-0-2/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 06:22:20 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitthat]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/?p=150</guid>
		<description><![CDATA[這是之前寫的一隻 GreaseMonkey Script，目的是希望能夠暫時性的變更 twitthat 送出的 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.kej.tw/2009-02/21/temporary-customize-your-twitthat-action/">這是之前寫的一隻 GreaseMonkey Script</a>，目的是希望能夠暫時性的變更 twitthat 送出的 action ( 或叫 prefix )，因為 twitthat 改版的關係於是將這隻 script 修正一下。</p>
<p>有需要的朋友可以到 <a href="http://userscripts.org/scripts/show/42852" target="_blank">userscripts.org</a> 安裝。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2009-10/05/temporary-customize-your-twitthat-action-0-2/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>[GM] twitter retweet 0.7</title>
		<link>http://blog.kej.tw/2009-03/19/gm-twitter-retweet-07/</link>
		<comments>http://blog.kej.tw/2009-03/19/gm-twitter-retweet-07/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 15:33:54 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/?p=140</guid>
		<description><![CDATA[今天的 twitter 做了一個大改變：在頁面底端加上了一個 more 的按鈕，讓使用者可以在原本的頁面就能直 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>今天的 twitter 做了一個大改變：在頁面底端加上了一個 more 的按鈕，讓使用者可以在原本的頁面就能直接讀取舊的推訊 (類似 AutoPagerize 的方式)，不過原本的 retweet GM script 沒辦法套用在舊的推訊上，而只有最一開始出現的 20 則推訊能加上 retweet 按鈕，本來想要等 @<a href="http://tzangms.com/" target="_blank">tzangms</a> 大大更新，但是晚上沒事做，最後不小心就改了一個版本出來 (被毆飛)</p>
<p>感謝 @tzangms 將這個版本一樣發佈在 <a href="http://userscripts.org/scripts/show/27381" target="_blank">userscripts.org</a> 上頭，歡迎有需要的推友下載更新喔。  ( and maybe add favorite, or comments, you know :p )</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2009-03/19/gm-twitter-retweet-07/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[GM] 暫時變更 twitthat 的送出狀態</title>
		<link>http://blog.kej.tw/2009-02/21/temporary-customize-your-twitthat-action/</link>
		<comments>http://blog.kej.tw/2009-02/21/temporary-customize-your-twitthat-action/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 08:05:29 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitthat]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/?p=136</guid>
		<description><![CDATA[雖然 twitthat 已經有自訂送出的 action 的功能，不過有的時候想要用一些比較特別的 action [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>雖然 twitthat 已經有自訂送出的 action 的功能，不過有的時候想要用一些比較特別的 action，但又覺得可能只會用到這一次而已，就會猶豫到底要不要去新增 action 而掙扎；所以寫了這隻 greasemonkey script，可以暫時地偷偷改一下 action，讓它成為一個 text 的 input 欄位，就可以隨便輸入想要的 action 了( 並且也不會儲存起來 )。<span id="more-136"></span></p>
<p>看起來就像這樣：<br />
<a href="http://www.flickr.com/photos/kej/3297130736/" title="Flickr 上 Kej@TW 的 twitthat customize action"><img src="http://farm4.static.flickr.com/3553/3297130736_53529d86ed_o.jpg" width="814" height="578" alt="twitthat customize action" /></a></p>
<p>不過有個小缺點：如果點了暫時自訂欄位的話，原本 twitthat 的字數偵測功能會有錯誤。如果不在乎這個小缺點的話，有需要的朋友可以<a href="http://userscripts.org/scripts/show/42823" target="_blank">到 userscripts.org 安裝</a>。</p>
<p><strong>update :</strong></p>
<p>將自定欄位做了點變更，變成以下這般：<br />
<a href="http://www.flickr.com/photos/kej/3297867664/" title="Flickr 上 Kej@TW 的 twitthat customize action alternative"><img src="http://farm4.static.flickr.com/3381/3297867664_03e7bcdbb0_o.jpg" width="608" height="578" alt="twitthat customize action alternative" /></a></p>
<p>如此就可以使用原本 twitthat 的字數檢查了，覺得這樣比較好的朋友可以<a href="http://userscripts.org/scripts/show/42852" target="_blank">到這邊安裝</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2009-02/21/temporary-customize-your-twitthat-action/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[GM] twitter retweet 0.6</title>
		<link>http://blog.kej.tw/2009-01/21/twitter-retweet-gm-script-06/</link>
		<comments>http://blog.kej.tw/2009-01/21/twitter-retweet-gm-script-06/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 10:37:58 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/?p=126</guid>
		<description><![CDATA[請按此連結安裝 retweet 0.6 之前的版本在 Favorites 以及 user 個人頁面都會有 re [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://kej.tw/download/firefox/greasemonkey/retweet-0.6.user.js">請按此連結安裝 retweet 0.6</a></p>
<p>之前的版本在 Favorites 以及 user 個人頁面都會有 retweet 的按鈕，只是按下去是沒有作用的。這次的版本修正了這個部份，建議有需要這個功能的人可以安裝看看。 :p</p>
<p><strong>2009-01-30 update :</strong><br />
新版本請參閱：<a href="http://tzangms.com/programming/2350" target="_blank">retweet script 0.6.1</a><br />
以及：<a href="http://userscripts.org/scripts/show/27381" target="_blank">retweet for Greasemonkey</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2009-01/21/twitter-retweet-gm-script-06/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>twitthat wordpress plugin</title>
		<link>http://blog.kej.tw/2009-01/17/twitthat-wordpress-plugin/</link>
		<comments>http://blog.kej.tw/2009-01/17/twitthat-wordpress-plugin/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 15:23:54 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitthat]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/?p=121</guid>
		<description><![CDATA[下載此 plugin 是的，我又擅自做了跟 twitthat 有關的東東，再下去小海可能就要來打人了 XD 把 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.kej.tw/wp-content/uploads/2009/01/twitthat.zip" target="_blank">下載此 plugin</a></p>
<p>是的，我又擅自做了跟 twitthat 有關的東東，再下去小海可能就要來打人了 XD</p>
<p>把這個 plugin 下載回去後解壓縮，將整個 twitthat 的目錄放在 wordpress 的 plugins 的目錄內，到後台啟用後，就會在單篇文章內的文章下方掛上一個 twitthat 的按鈕，讓來閱讀的網友只要按一下就可以打開 twitthat 的視窗將狀態丟到 twitter 去。長相請參考本文下方。</p>
<p>我好像把 twitthat 當作網路書籤來用了…</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2009-01/17/twitthat-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>TweetSuite Patch</title>
		<link>http://blog.kej.tw/2009-01/17/tweetsuite-patch/</link>
		<comments>http://blog.kej.tw/2009-01/17/tweetsuite-patch/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 15:13:14 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[tweetsuite]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/?p=117</guid>
		<description><![CDATA[TweetSuite 是由 Dan Zarrella 所寫的一個 wordpress plugin，可以在 b [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://danzarrella.com/beyond-tweetbacks-introducing-tweetsuite.html" target="_blank">TweetSuite</a> 是由 <a href="http://danzarrella.com/" target="_blank">Dan Zarrella</a> 所寫的一個 wordpress plugin，可以在 blog 的單篇文章內嵌一個 tweet-this 的按鈕，讓你的讀者(如果有在用 twitter 的話)可以很輕易的將「我正在讀這篇文章」的狀態丟到 twitter 上；以及他之前所寫的 TweetBacks 功能：列出所有曾經在 twitter 上推過這篇文章的人，並且可以在每一條推文後面加上 reTweet 按鈕；另外還有幾個可以放在邊欄的 widget，包括作者自己所有的推、作者打星過的推、以及這個 blog 裡被推最多次的文章。</p>
<p>基本上 TweetSuite 還蠻好用的，只是實際裝起來後我發現了幾個小問題，而其中有幾個問題可能是英語系的作者比較不會碰到的：<span id="more-117"></span></p>
<ol>
<li>作者在找 TweetBacks 的列表時是利用 search api 去搜尋此篇文章的 url，api 回傳的格式是 Atom，所以作者寫了一個 parseAtom 的 function 去做 parsing，但是不知道為什麼作者 parsing 的方式卻是先切好每一個 entry，然後用找行數(line number)的方式去擷取出內容，或許作者本身沒有碰到問題，但是我發現在某些情況下，有些 tweet 的文字內容會分成兩行，所以這時候 parseAtom 就會找錯行了，進而導致 tweet 作者的名稱跟顯示圖片內容錯誤。因此我用 Regular Expression 的方式重寫這個 function 內大部分的 code，直接尋找 tag 內的文字，就不會出錯了。</li>
<li>作者去 search api 找 url 之前，會預先將這篇文章的 url 去幾個比較常用的縮址服務運算，抓回這篇文章 url 的各種縮址，然後再將各個縮址用加號 ( + )連結起來當作搜尋字串丟去 search api。原本一切都很美好的…如果有正確的從 tinyurl.com 取回縮址的話。因為這個搜尋字串的最後一個縮址是 tinyurl，如果當 tinyurl 沒有回應的時候，程式就不會存任何東西到 DB 中 tinyurl 的欄位，之後也不會再重抓，所以當組合搜尋字串時，最後的一個字就會是加號，丟到 search api 之後就死掉了。所以這邊的解決方式就是在送到 search api 之前，先檢查字串最後一個字元是不是加號，是的話就先去掉再送出，就一切正常了。</li>
<li>因為 twitter 的 search api 傳回的 atom 中，對於 UTF-8 的字元都是使用 &amp;#\d{3, 10}; 的 HTML 格式，作者在程式中都沒有處理，所以當一個中文的 tweet (或其他非英語系的 tweet)要存進去 DB 時，140 個字元的限制是絕對不夠的，所以很多 tweet 就被硬生生的截斷了，使用 retweet 的功能時也會直接帶成 &amp;#\d{3, 10}; 的格式而不是原本該顯示的字。因此我加上了一個將 HTML 格式的 UTF-8 code 轉換成 UTF-8 字串的 function，先將字串轉換後再存入 DB，就不會有截斷跟 retweet 亂碼的問題了。因為要存入 UTF-8 字串的關係，所以我也將 TweetSuite 會自動建立的資料表都設定為 DEFAULT CHARSET=utf8; 。</li>
<li>接下來的幾項都是比較不嚴重的問題，純粹是使用上或美觀上的部份。TweetSuite 去抓取 TweetBacks 時會抓推文作者的顯示圖片 url，然後將圖片的 url 存在資料庫中；原本的機制是如果這個 tweet 已經存在資料庫中，下次更新的時候就不會去更動他；所以如果作者換了顯示圖片之後，TweetSuite 也不會更新，然後就會產生破圖了：在 Firefox 上看會導致推文往前縮，在 IE 上看則是會有叉燒包。所以我先將顯示圖片的 HTML 從 &lt;img&gt; 改成一個相同大小的 &lt;div&gt;，然後將原本的圖片設為這 &lt;div&gt; 的底圖，如此一來如果抓不到圖片，也不會往前縮或產生叉燒包，只會留有一個白色灰框的四方形區塊，推文也就比較整齊了。再來就是 TweetSuite 每次去搜尋 TweetBacks 時並不會預先排除已經存在資料庫的部份，只是在搜尋過後要寫入時，才禁止已經存在的資料再一次寫入，所以我將這部分小改一點，改成：如果已經存在，就更新這一篇推文的作者顯示圖片，這樣就可以確保推文作者更新圖片後我們這邊的資料也可以更新的到，但是這個功能只有 MySQL 4.1 或更新的版本可以使用。</li>
<li>TweetSuite 的設定選項中有一項是 &#8220;Display Tweet-This button?"，但是他只能控制文章上方的那個大按鈕而已，並不會連帶影響 TweetBacks 附帶的 Tweet This 連結。我自己是覺得這樣很怪，所以就把 TweetBacks 的 Tweet This 連結跟這個選項也綁在一起了。</li>
<li>TweetBack 顯示的推文時間都是 UTC 時間，這個問題我曾經在 <a href="http://wp.tenz.net/archives/667" target="_blank">tenz 的這篇文章</a>中看過，不過那時他用的應該是單獨的 TweetBacks JavaScript 版本，所以可能也不是很好調整；由於 TweetSuite 是用 plugin 的方式，所以我就可以先抓取這個 blog 所設定的時區，將加上原本 UTC 的時間換算後再輸出，這樣推文時間看起來就不會怪怪的了。</li>
</ol>
<p>對我的 patch 有興趣的人，可以在<a href="http://blog.kej.tw/wp-content/uploads/2009/01/tweetsuite.rar" target="_blank">這裡 Download</a>， 裡面的檔案只有我修改過的部份，所以請先到<a href="http://danzarrella.com/beyond-tweetbacks-introducing-tweetsuite.html" target="_blank">原作者的網站</a>抓回原始的檔案，再將我修改過的部份覆蓋過去即可。對我的修改有任何問題的話，也歡迎在這裡提問喔。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2009-01/17/tweetsuite-patch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>twitthat firefox extension</title>
		<link>http://blog.kej.tw/2009-01/17/twitthat-firefox-extension/</link>
		<comments>http://blog.kej.tw/2009-01/17/twitthat-firefox-extension/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 06:20:10 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitthat]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/?p=116</guid>
		<description><![CDATA[上個禮拜擅自幫小海的 twitthat 寫了一隻 firefox extension。 你或許會想問：twit [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>上個禮拜擅自幫<a href="http://tzangms.com/" target="_blank">小海</a>的 <a href="http://twitthat.com/" target="_blank">twitthat</a> 寫了一隻 firefox extension。</p>
<p>你或許會想問：twitthat 不是已經有 bookmarklet 可以用了嗎？為什麼還要寫一隻相同功能的 firefox extension 呢？</p>
<p>一切的原因只有一個字：懶。 XD <span id="more-116"></span></p>
<p>因為本人極度懶惰，所以書籤經常處於幾乎是未整理的狀態，一點開書籤列表都是落落長一串(喂！)，要找到 twitthat 的 bookmarklet 都得要花上好幾秒的功夫(所以其實是自己的問題&#8230;默&#8230;)。基於以上的理由，再加上我平常慣用的瀏覽器是 firefox，就寫了一隻 extension 來用，只要在頁面上按右鍵選單就可以選取 twitthat 的功能，我就不用去書籤海裡頭找了 XD 。再加上小海的意見，做了一個可以拖拉到工具列的按鈕，這樣就更方便了！</p>
<p><a title="Flickr 上 Kej@TW 的 twitthat firefox extension" href="http://www.flickr.com/photos/kej/3203128006/"><img src="http://farm4.static.flickr.com/3512/3203128006_fdc8c5c894_o.png" alt="twitthat firefox extension" width="438" height="471" /></a></p>
<p>如果你有使用 twitthat 而且也愛用 firefox 的話，可以到 <a href="http://twitthat.com/help/firefox_extension" target="_blank">twitthat 的 firefox extension 頁面</a>安裝這個 extension，或者是到 <a href="https://addons.mozilla.org/zh-TW/firefox/addon/10335" target="_blank">mozilla addons 的頁面</a>安裝<del datetime="2009-05-04T08:23:37+00:00">(因為狀態還在實驗中，所以需要有帳號密碼登入後才能下載)</del>，當然也<a href="https://addons.mozilla.org/zh-TW/firefox/addon/10335#reviews" target="_blank">歡迎各位給我一些意見</a>囉！</p>
<p><strong>2009-05-04 update :</strong> twitthat firefox extension is <strong>public</strong> now !</p>
<p>偷句某位大神的 blog 副標，如果幹壞事是進步最大的原動力的話，那我想懶惰應該就是進步第二大的原動力吧(誤)。 XD</p>
<p>see also : <a href="http://tzangms.com/web/2319" target="_blank">http://tzangms.com/web/2319</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2009-01/17/twitthat-firefox-extension/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[GM] twitter retweet 0.5.1</title>
		<link>http://blog.kej.tw/2008-12/07/twitter-retweet-gm-script-051/</link>
		<comments>http://blog.kej.tw/2008-12/07/twitter-retweet-gm-script-051/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 06:13:44 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/2008-12/07/twitter-retweet-gm-script-051/</guid>
		<description><![CDATA[請按此連結安裝 retweet 0.5.1 因為注意到推友 @sunline 說的這個問題，才發現到在某些不明 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://kej.tw/download/firefox/greasemonkey/retweet-0.5.1.user.js">請按此連結安裝 retweet 0.5.1</a></p>
<p>因為注意到推友 @sunline 說的<a href="http://twitter.com/sunline/status/1043063284" target="_blank">這個問題</a>，才發現到在某些不明的情況下，tweet 的最後會被自動加上 &#8220;&#8230;"，並帶有這篇 tweet 的單篇網址；會說「某些情況」是因為有些  tweet 即使只有短短的三十幾個中文字，也會被自動加入這樣的連結，有些 tweet 大概四五十個中文字卻沒有被加上，而六七十個字以上的 tweet 則似乎是一定會有這樣的連結。</p>
<p>雖然還不知道原因是啥，不過先把它修正就是了 XD；此版本會將想要 retweet 的內容中，連結文字為 &#8220;&#8230;" 的部份全部去掉。此次更新是基於<a href="http://tzangms.com/blog/greasemonkey/1890" target="_blank">小海大大的 0.5 版</a>而來。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2008-12/07/twitter-retweet-gm-script-051/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[Greasemonkey script] 瀏覽男子漢的部落格必備的 GM Script！</title>
		<link>http://blog.kej.tw/2008-11/15/gm-script-fix-img-width-on-lucifer-blog/</link>
		<comments>http://blog.kej.tw/2008-11/15/gm-script-fix-img-width-on-lucifer-blog/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 16:02:45 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/2008-11/15/gm-script-fix-img-width-on-lucifer-blog/</guid>
		<description><![CDATA[我不是男子漢，我是俗仔，我需要縮圖… 按我按我！]]></description>
				<content:encoded><![CDATA[<p>我不是<a href="http://blogs.myoops.org/lucifer.php" target="_blank">男子漢</a>，我是俗仔，我需要縮圖…</p>
<p><a href="http://kej.tw/download/firefox/greasemonkey/lucifer.user.js">按我按我！</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2008-11/15/gm-script-fix-img-width-on-lucifer-blog/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>twitter retweet GM script 0.4 (偽)</title>
		<link>http://blog.kej.tw/2008-10/03/twitter-retweet-gm-script-04/</link>
		<comments>http://blog.kej.tw/2008-10/03/twitter-retweet-gm-script-04/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 05:12:07 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/2008-10/03/twitter-retweet-gm-script-04/</guid>
		<description><![CDATA[小海總理寫的 twitter retweet GM script 0.3 超好用的！ 只是如果當 tweet  [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://tzangms.com/blog/">小海總理</a>寫的 <a href="http://tzangms.com/blog/greasemonkey/1696">twitter retweet GM script 0.3</a> 超好用的！</p>
<p>只是如果當 tweet 裡面有一個 url 沒有經過 tinyurl 縮址，而且網址又太長的時候，twitter 都會把他截短再加上 &#8220;&#8230;" ，所以在 retweet 的時候那樣的 url 就壞掉了。因此替這個 GM script 做了一點小修改，讓 retweet 的時候 url 也能正確的呈現囉！</p>
<p>在小海總理的同意下A了 0.4 的版本號來用 XD</p>
<p><a href="http://kej.tw/download/firefox/greasemonkey/retweet.user.js">請按此連結安裝 retweet 0.4(偽)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2008-10/03/twitter-retweet-gm-script-04/feed/</wfw:commentRss>
		<slash:comments>85</slash:comments>
		</item>
		<item>
		<title>[Greasemonkey script] twitter highlight replies</title>
		<link>http://blog.kej.tw/2008-09/25/twitter-highlight-replies-greasemonkey-script/</link>
		<comments>http://blog.kej.tw/2008-09/25/twitter-highlight-replies-greasemonkey-script/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 14:18:28 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/2008-09/25/twitter-highlight-replies-greasemonkey-script/</guid>
		<description><![CDATA[用了 TwitterFox 之後，很喜歡他 @replies 與其他推有著不同顏色的設計，所以就寫了一隻給 w [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>用了 TwitterFox 之後，很喜歡他 @replies 與其他推有著不同顏色的設計，所以就寫了一隻給 web 用的 greasemonkey script</p>
<p><a href="http://userscripts.org/scripts/show/41433">請前往 userscripts.org 安裝</a></p>
<p>其實我也不知道是不是有人寫過了……</p>
<p>p.s.<br />
實際上是設計成只要那則 tweet 中有 @username 的話就會 highlight 標示，所以可能會跟 <a href="http://twitter.com/replies">http://twitter.com/replies</a> 裡面顯示的則數不一樣。</p>
<p><strong>2008/09/27 update :</strong><br />
同場加映：highlight 自己的 tweet &#8211; <a href="http://userscripts.org/scripts/show/41434">請前往 userscripts.org 安裝</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2008-09/25/twitter-highlight-replies-greasemonkey-script/feed/</wfw:commentRss>
		<slash:comments>63</slash:comments>
		</item>
		<item>
		<title>jQuery 1.0.2</title>
		<link>http://blog.kej.tw/2006-10/12/jquery-102/</link>
		<comments>http://blog.kej.tw/2006-10/12/jquery-102/#comments</comments>
		<pubDate>Thu, 12 Oct 2006 14:37:27 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/2006-10/12/jquery-102/</guid>
		<description><![CDATA[手上的某個專案因為歷史的關係:?:，所以先後分別用了 prototype 跟 jQuery 兩個 JavaSc [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>手上的某個專案因為歷史的關係:?:，所以先後分別用了 <a href="http://prototype.conio.net/">prototype</a> 跟 <a href="http://jquery.com/">jQuery</a> 兩個 JavaScript library，今天想了一下，還是決定統一用一個 library 就好了；由於 jQuery 看起來較輕薄短小（其實 <a href="http://dean.edwards.name/packer/">pack</a> 起來後兩個差不多大），加上 Chainable、支援 XPath 等一些像我這種懶人喜愛的特性的緣故，決定全部使用 jQuery。</p>
<p>程式都改完、測試好之後才想到該去 <a href="http://jquery.com/">jQuery 官網</a>看看，發現 10/9 剛發佈了新的 1.0.2 版，於是就下載回來更新（之前是用 1.0.1 版），沒想到一更新之後所有 $.ajax callback 的部份全都失效了，查了一下 <a href="http://jquery.com/api/">API</a> 發現原來在 <a href="http://jquery.com/api/#$.ajax">$.ajax</a> 的地方是這樣寫的：</p>
<blockquote><p>(Function) error &#8211; A function to be called if the request fails. The function gets passed two arguments: The <strong>XMLHttpRequest object</strong> and a string describing the type of error that occurred.</p>
<p>(Function) success &#8211; A function to be called if the request succeeds. The function gets passed one argument: The <strong style="color:#f00;">data returned from the server</strong>, formatted according to the &#8216;dataType&#8217; parameter.</p>
<p>(Function) complete &#8211; A function to be called when the request finishes. The function gets passed two arguments: The <strong>XMLHttpRequest object</strong> and a string describing the type the success of the request.</p></blockquote>
<p>而我的程式在 success 時的 callback function 卻也是以回傳一個 XMLHttpRequest 物件的方式來寫的，因此當事實上回傳的已經是一個字串時，也就不會有 responseText 囉（因為回傳值本身就是responseText），然後 callback function 就理所當然的死掉了。</p>
<p>當我再把 1.0.1 版蓋回去測試時，卻發現程式跑起來一切正常，一丁點錯誤訊息也沒有；原來 1.0.1 版 success 的部份的確是回傳一個 XMLHttpRequest 物件，所以或許是在 1.0.2 版有作更改了吧，不過我怎樣也找不到哪邊有 change log 提到這點，也找不到舊版的 API 文件來作對照，但是經過一連串的交叉測試之後應該可以確定是這樣子沒錯。所以這下子有兩個選擇：一個是把 success 改成 complete，這樣就不用去更動 callback function，另一個是將 callback function 內的 XMLHttpRequestObject.responseText 改成直接用 responseText，亦即將</p>
<blockquote><p><code>function successCallBack(XMLHttpRequestObject){<br />
<span style="margin-left:40px;">eval("var jsonVars = " + XMLHttpRequestObject.responseText);</span><br />
<span style="margin-left:40px;">………</span><br />
}</code></p></blockquote>
<p>改成</p>
<blockquote><p><code>function successCallBack(responseText){<br />
<span style="margin-left:40px;">eval("var jsonVars = " + responseText);</span><br />
<span style="margin-left:40px;">………</span><br />
}</code></p></blockquote>
<p>而我選的是後者。</p>
<p>喔，其實還有另一個選擇，就是用舊版 library，但，何必咧？</p>
<p>真不知道為什麼要將 success 的部份設計的跟另外兩個狀態不一樣啊……</p>
<p><strong>2006-10-14 update :</strong><br />
<a href="http://jquery.com/blog/">jQuery 的官方部落格</a>今天<a href="http://jquery.com/blog/2006/10/13/minor-api-change-in-102/">提到了這點</a>：其實這項 API 的變動，原本是預計等到 1.1 版的 major release 時才會變更的，結果「不小心」在 1.0.2 時就先用了，然後又順便忘了提到這點……</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2006-10/12/jquery-102/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>新聞 Filter Bookmarklet 試作</title>
		<link>http://blog.kej.tw/2006-09/07/news-filter-bookmarklet/</link>
		<comments>http://blog.kej.tw/2006-09/07/news-filter-bookmarklet/#comments</comments>
		<pubDate>Thu, 07 Sep 2006 14:53:07 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[腦殘遊記]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/?p=87</guid>
		<description><![CDATA[News Filter Bookmarklet &#8211; Test Version : javascri [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><span style="font-size:16pt">News Filter Bookmarklet</span> &#8211; <span style="font-size:8pt">Test Version</span> :</p>
<blockquote><p><code>javascript: (function(){var b=document.getElementsByTagName(&quot;body&quot;);var t=b[0].innerHTML;var pattern = /(據透露|據了解|據指出|消息來源指出|知情人士透露)([^。]*?)(。)/img;b[0].innerHTML=t.replace(pattern,&quot;&lt;span style=\&quot;border:1px dashed #F7D800;background:#FBF7AA\&quot;&gt;$1$2$3&lt;/span&gt;&quot;);})();</code></p></blockquote>
<p>加 bookmarklet 的方法應該不用教吧？ :p</p>
<p>因為看到終極邊疆的<a href="http://blog.serv.idv.tw/2006/09/05/518/">這篇文章</a>，覺得很有趣，就隨手先試作了一個看看。我是大致上照文章中的作法來寫的，目前只做了螢光筆的部份啦，會把從「據透露」、「據了解」、「據指出」、「消息來源指出」、「知情人士透露」等起頭的句子開始，一直到接下來的第一個句號結束，把找到的部份用螢光筆的效果包起來；因為是偵測到第一個句號就結束了，所以包起來的範圍可能跟 PipperL 包的不太一樣，看看有沒有哪位高人有方法來 debug :p</p>
<p>反正就先當玩具玩玩，看看大家有沒有啥 idea 或是程式上的建議，到時候再來改囉。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2006-09/07/news-filter-bookmarklet/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Yahoo奇摩拍賣的search plugin</title>
		<link>http://blog.kej.tw/2006-07/18/yahoo-tw-bid-search-plugin/</link>
		<comments>http://blog.kej.tw/2006-07/18/yahoo-tw-bid-search-plugin/#comments</comments>
		<pubDate>Tue, 18 Jul 2006 06:35:48 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[bid]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[kimo]]></category>
		<category><![CDATA[search plugin]]></category>
		<category><![CDATA[yahoo tw]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/2006-07/18/yahoo-tw-bid-search-plugin/</guid>
		<description><![CDATA[因為剛好有人問了，所以就順手作一下…… 可以到 firefox search plugins 這頁安裝或下載。]]></description>
				<content:encoded><![CDATA[<p>因為剛好<a href="http://blog.kej.tw/2006-01/04/yahoo-tw-dictionary-search-plugin-fix/#comment-819">有人問</a>了，所以就順手作一下……</p>
<p>可以到 <a href="http://blog.kej.tw/firefox-search-plugins/">firefox search plugins</a> 這頁安裝或下載。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2006-07/18/yahoo-tw-bid-search-plugin/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>GooTube FLV Retriever改版</title>
		<link>http://blog.kej.tw/2006-05/07/update-gootube-flv-retriever/</link>
		<comments>http://blog.kej.tw/2006-05/07/update-gootube-flv-retriever/#comments</comments>
		<pubDate>Sat, 06 May 2006 17:36:42 +0000</pubDate>
		<dc:creator><![CDATA[Kej]]></dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[電腦網路]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[google video]]></category>
		<category><![CDATA[gootube]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://blog.kej.tw/2006-05/07/update-gootube-flv-retriever/</guid>
		<description><![CDATA[拖了很久很久，終於把GooTube做了個滿意的改版。 程式架構上的就不說囉，只講一下使用上的改變。 新增正體中 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>拖了很久很久，終於把<a href="http://kej.tw/flvretriever/">GooTube</a>做了個滿意的改版。<br />
<span id="more-68"></span><br />
程式架構上的就不說囉，只講一下使用上的改變。</p>
<ol>
<li>新增正體中文語系，只要是瀏覽器語言第一順位設定的是中文台灣[zh-tw]，就會用中文顯示，其他還是維持英文。</li>
<li>加上可以控制是否自動開啟下載提示視窗的選項，如果勾選的話，得到結果後1~2秒會自動開啟下載，有可能會有問題的狀況大概會是如果瀏覽器對flv這檔案類型有作關聯的話，可能會自動開啟，不過我想不出來有哪些外掛或什麼的會對flv作關聯，所以應該幾乎不會有問題吧。</li>
<li>加了一個Bookmarklet，使用上更方便喔。</li>
</ol>
<p>大概來提一下Bookmarklet的用法吧，以Firefox為例好了：</p>
<ol>
<li>先將「取得FLV檔案」的連結加入書籤。<br />
<a href="http://www.flickr.com/photos/kej/141437673/" title="Photo Sharing"><img src="http://static.flickr.com/50/141437673_c19d3eebc2_m.jpg" width="240" height="156" alt="bookmarklet_usage_01" /></a><br />
<a href="http://www.flickr.com/photos/kej/141437674/" title="Photo Sharing"><img src="http://static.flickr.com/50/141437674_a651f29ab5_m.jpg" width="240" height="125" alt="bookmarklet_usage_02" /></a></li>
<li>到觀看影片的那一頁，打開書籤選單，按下剛剛設定的Bookmarklet書籤。<br />
<a href="http://www.flickr.com/photos/kej/141437675/" title="Photo Sharing"><img src="http://static.flickr.com/55/141437675_2ac9081397_m.jpg" width="206" height="240" alt="bookmarklet_usage_03" /></a></li>
<li>然後就會跳出一個popup視窗，顯示GooTube解析後的頁面，並會自動開啟下載<br />
<a href="http://www.flickr.com/photos/kej/141437676/" title="Photo Sharing"><img src="http://static.flickr.com/51/141437676_dd127aad5f_m.jpg" width="240" height="166" alt="bookmarklet_usage_04" /></a></li>
<li>目前bookmarklet是設計成會自動開啟下載視窗，如果有人不想要這功能的話，只要編輯一下書籤網址，把&amp;autostart=yes拿掉就好了</li>
<li>IE的用法也一樣，就是把「取得FLV檔案」的連結加到我的最愛，其他都一樣。</li>
</ol>
<p>嘿，所以用Bookmarklet的話，就不用自己開一個視窗連到GooTube，也不用複製貼上網址，只要按一下書籤就好了，這樣就更方便了吧。XD</p>
<p><strong>update : 2006-05-07</strong><br />
GooTube也不是無所不能，至少在YouTube上面設定18禁的，GooTube就抓不到，但是GooTube抓不到不代表就沒辦法下載，有需要的人可以看看<a href="http://blog.kej.tw/2006-01/01/download-file-from-google-video-and-youtube/#comment-278">這篇</a>參考一下。(H)</p>
<p><strong>update : 2006-05-10</strong><br />
Link : <a href="http://kej.tw/flvretriever/">GooTube FLV Retriever</a>……原來這篇一直沒有連結……</p>
<p><strong style="color:#f00">update : 2006-05-17</strong><br />
感謝阿噗羅<a href="http://upload.blog.kkcity.com/?op=ViewArticle&#038;articleId=9975">這篇</a>給的靈感，所以……小聲宣佈……18禁或其他需要確認的檔案也可以抓了&gt;O&lt;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kej.tw/2006-05/07/update-gootube-flv-retriever/feed/</wfw:commentRss>
		<slash:comments>669</slash:comments>
		</item>
	</channel>
</rss>
