<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>sfufoet's blog</title>
	
	<link>http://blog.loland.net</link>
	<description>Geek Tips</description>
	<pubDate>Fri, 10 Jul 2009 13:57:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.8-bleeding-edge</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/sfufoet" type="application/rss+xml" /><item>
		<title>修复 twitter 头像的小书签</title>
		<link>http://blog.loland.net/193.et</link>
		<comments>http://blog.loland.net/193.et#comments</comments>
		<pubDate>Fri, 10 Jul 2009 12:20:46 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[bookmarklet]]></category>

		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://blog.loland.net/193.et</guid>
		<description><![CDATA[terryxxy：@sfufoet 你会不会写 bookmarlet ，把web下出问题的 https图片你地址替换成 http？
新建一个小书签，在地址里面输入：
javascript:(function(){var imgs,i;var imgs=document.getElementsByTagName('img');for(i in imgs){imgs[i].src=imgs[i].src.replace(/https:\/\/a0/ig,"http://a0");}})()
适合 twitter 网页版。
update：小书签更新了，修复一个 bug
]]></description>
			<content:encoded><![CDATA[<p><a href="https://twitter.com/terryxxy" title="阳阳猪">terryxxy</a>：@<a href="https://twitter.com/sfufoet">sfufoet</a> 你会不会写 bookmarlet ，把web下出问题的 https图片你地址替换成 http？</p>
<p>新建一个小书签，在地址里面输入：</p>
<blockquote><p>javascript:(function(){var imgs,i;var imgs=document.getElementsByTagName('img');for(i in imgs){imgs[i].src=imgs[i].src.replace(/https:\/\/a0/ig,"http://a0");}})()</p></blockquote>
<p>适合 twitter 网页版。</p>
<p>update：小书签更新了，修复一个 bug</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/193.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>快速退出 twittai 的小技巧</title>
		<link>http://blog.loland.net/192.et</link>
		<comments>http://blog.loland.net/192.et#comments</comments>
		<pubDate>Mon, 06 Jul 2009 11:19:06 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[blackberry]]></category>

		<category><![CDATA[Tips]]></category>

		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://blog.loland.net/192.et</guid>
		<description><![CDATA[twittai 是 BB 上一款免穿墙 twitter 客户端。推荐理由就是界面简洁，没有头像显示功能，免穿墙。
其最郁闷的地方就是退出的时候需要确认。这个快速退出 twittai 的小技巧其实我发现好久了，只是最近工作繁忙，都懒得 blogging 了。乘今天非常不爽的状态，赶紧告诉大家。
按下 ESC，然后立刻按下黑莓键，这时候，你可以看到一个 Close 的菜单，按下 Enter。

]]></description>
			<content:encoded><![CDATA[<p><a href="http://twittai.com">twittai</a> 是 BB 上一款免穿墙 twitter 客户端。推荐理由就是界面简洁，没有头像显示功能，免穿墙。</p>
<p>其最郁闷的地方就是退出的时候需要确认。这个快速退出 twittai 的小技巧其实我发现好久了，只是最近工作繁忙，都懒得 blogging 了。乘今天非常不爽的状态，赶紧告诉大家。</p>
<blockquote><p>按下 ESC，然后<b>立刻</b>按下黑莓键，这时候，你可以看到一个 Close 的菜单，按下 Enter。
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/192.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>Megaupload auto-fill captcha, no wait, instant start - 自动填写 Megaupload 验证码</title>
		<link>http://blog.loland.net/191.et</link>
		<comments>http://blog.loland.net/191.et#comments</comments>
		<pubDate>Thu, 04 Jun 2009 12:34:58 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[GreaseMonkey]]></category>

		<guid isPermaLink="false">http://blog.loland.net/191.et</guid>
		<description><![CDATA[这个 GreaseMonkey 脚本的名字真长：Megaupload auto-fill captcha, no wait, instant start。它会自动填写 Megaupload 的验证码并自动把倒计时清零，立刻弹出下载对话框。
如果你安装了 skipscreen 这个扩展，那么这个脚本会和 skipscreen 冲突，导致无法下载。解决办法很简单，安装这个只自动填写验证码的脚本：Megaupload auto-fill captcha
]]></description>
			<content:encoded><![CDATA[<p>这个 GreaseMonkey 脚本的名字真长：<a href="http://userscripts.org/scripts/show/50063">Megaupload auto-fill captcha, no wait, instant start</a>。它会自动填写 <a href="http://www.megaupload.com/">Megaupload</a> 的验证码并自动把倒计时清零，立刻弹出下载对话框。</p>
<p>如果你安装了 skipscreen 这个扩展，那么这个脚本会和 skipscreen 冲突，导致无法下载。解决办法很简单，安装这个只自动填写验证码的脚本：<a href="http://userscripts.org/scripts/show/38736">Megaupload auto-fill captcha</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/191.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>在线生成字符画</title>
		<link>http://blog.loland.net/190.et</link>
		<comments>http://blog.loland.net/190.et#comments</comments>
		<pubDate>Tue, 26 May 2009 14:47:45 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[other]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.loland.net/190.et</guid>
		<description><![CDATA[今晚搞定了《中学科技》约稿，指定要我写《Image2Html - 将图片转化为彩色字符画》，这么简单的软件，要我撑到 800 字左右，真痛苦。。
为了写文章，在 Google 搜索“字符画 维基百科”，居然第一位是啥鸟垃圾互动百科的“字符画条目不存在”！
进入维基百科搜索，也没少的字符画条目，后来才搞清楚，字符画的英文叫 ACSII Art，晕死，我居然没想起来。对应的条目叫 ASCII 艺术。
还搜索到两个字母转换为 ACSII Art 的网站

ASCII TEXT ART CREATOR
ASCII&#160; Generator(这个比较强大)

还有两个收集 ASCII Art 的网站：

http://www.chris.com/ascii/
http://www.geocities.com/SouthBeach/Marina/4942/ascii.htm

]]></description>
			<content:encoded><![CDATA[<p>今晚搞定了《中学科技》约稿，指定要我写《<a href="http://www.appinn.com/image2html/">Image2Html - 将图片转化为彩色字符画</a>》，这么简单的软件，要我撑到 800 字左右，真痛苦。。</p>
<p>为了写文章，在 Google 搜索“字符画 维基百科”，居然第一位是啥鸟垃圾互动百科的“字符画条目不存在”！</p>
<p>进入维基百科搜索，也没少的字符画条目，后来才搞清楚，字符画的英文叫 ACSII Art，晕死，我居然没想起来。对应的条目叫 <a href="http://zh.wikipedia.org/wiki/ASCII%E8%89%BA%E6%9C%AF">ASCII 艺术</a>。</p>
<p>还搜索到两个字母转换为 ACSII Art 的网站</p>
<ol>
<li><a href="http://www.friendlycanadian.com/applications/ASCII.HTM">ASCII TEXT ART CREATOR</a></li>
<li><a href="http://www.network-science.de/ascii/">ASCII&nbsp; Generator</a>(这个比较强大)</li>
</ol>
<p>还有两个收集 ASCII Art 的网站：</p>
<ul>
<li><a href="http://www.chris.com/ascii/">http://www.chris.com/ascii/</a></li>
<li><a href="http://www.geocities.com/SouthBeach/Marina/4942/ascii.htm">http://www.geocities.com/SouthBeach/Marina/4942/ascii.htm</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/190.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>用 ubiquity 调用 Bit.ly 缩短网址</title>
		<link>http://blog.loland.net/189.et</link>
		<comments>http://blog.loland.net/189.et#comments</comments>
		<pubDate>Wed, 20 May 2009 15:28:41 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[Twitter]]></category>

		<category><![CDATA[Ubiquity]]></category>

		<guid isPermaLink="false">http://blog.loland.net/189.et</guid>
		<description><![CDATA[很郁闷，过长的链接总是需要手工到 Bit.ly 缩短一下才能贴到 twitter。有了 Bit.ly Ubiquity Command Script，选中文字，按下 ubiquity 的快捷键，输入 bit.ly 回车，全自动替换到输入框。缩短后的网址还会发到剪贴板。
]]></description>
			<content:encoded><![CDATA[<p>很郁闷，过长的链接总是需要手工到 Bit.ly 缩短一下才能贴到 twitter。有了 <a href="http://mskadu.googlepages.com/bitly">Bit.ly Ubiquity Command Script</a>，选中文字，按下 <a href="http://labs.mozilla.com/projects/ubiquity/">ubiquity</a> 的快捷键，输入 bit.ly 回车，全自动替换到输入框。缩短后的网址还会发到剪贴板。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/189.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>Google Maps For blackberry 3.0.2 - 非官方 OTA 下载</title>
		<link>http://blog.loland.net/188.et</link>
		<comments>http://blog.loland.net/188.et#comments</comments>
		<pubDate>Fri, 15 May 2009 11:58:21 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[blackberry]]></category>

		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://blog.loland.net/188.et</guid>
		<description><![CDATA[scavin 在 twitter 吼了一句： China Google Maps for Mobile 地图更新了。去官方网站一看，还真更新了，更新到 3.0.2，Google 提供的 OTA 黑莓自带的浏览器不认，OTALoader 也不认。我只好手工打开 jad 文件，人肉下载 10 个 COD 文件。传到 Dropbox 了。

请用黑莓浏览器，猛击这里下载 Google Maps For blackberry 3.0.2，缩短后的下载地址：http://www.aph.cn/1f dropbox 很有问题。BB 根本下载不了。抱歉抱歉。。
我爬上屋顶，测试 3.0.2 是否支持 GPS，结果是：支持！哦也，终于。。

update：DavidBu@sfufoet 很早就是3.02啦 //啥时候的事情？
]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/scavin">scavin</a> 在 twitter 吼了一句：<span class="status-body"><span class="entry-content"> China Google Maps for Mobile 地图更新了。去官方网站一看，还真更新了，更新到 3.0.2，Google 提供的 OTA 黑莓自带的浏览器不认，OTALoader 也不认。我只好手工打开 jad 文件，人肉下载 10 个 COD 文件。传到 Dropbox 了。</p>
<p><del datetime="2009-05-15T13:30:31+00:00"><a href="https://dl-web.getdropbox.com/get/maps.jad?w=d17305f7"><br />
请用黑莓浏览器，猛击这里下载 Google Maps For blackberry 3.0.2</a>，缩短后的下载地址：<a href="http://www.aph.cn/1f">http://www.aph.cn/1f</a></del> dropbox 很有问题。BB 根本下载不了。抱歉抱歉。。</p>
<p>我爬上屋顶，测试 3.0.2 是否支持 GPS，结果是：支持！哦也，终于。。<br />
</span></span></p>
<p>update：<span class="status-body"><strong><a href="http://twitter.com/DavidBu" class="screen-name" title="David Bu">DavidBu</a></strong><span class="entry-content">@<a href="http://twitter.com/sfufoet">sfufoet</a> 很早就是3.02啦</span></span> //啥时候的事情？</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/188.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>YouTube 携帯版 - 在黑莓上看 Youtube 视频。</title>
		<link>http://blog.loland.net/187.et</link>
		<comments>http://blog.loland.net/187.et#comments</comments>
		<pubDate>Thu, 14 May 2009 15:29:42 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[blackberry]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Youtube]]></category>

		<guid isPermaLink="false">http://blog.loland.net/187.et</guid>
		<description><![CDATA[今天晚上在 GR 里瞄到这个网站 YouTube 携帯版，一个日本人开发的 Youtube 手机版。在黑莓上测试了一下，还是不错的。
可以在手机上访问这个缩短后的网址：www.aph.cn/1d，主界面如下：


搜索视频：


点击某个视频进去之后：选择分割的模式。点击 0:00-2:30 就开始下载视频。

通过 Opera Mini 下载到 BB 上看的画面：

两种分割的视频大小：20 秒的视频大概是 200K，2 分半钟的大概是 1.4 MB。
下载的连接地址里有两个个参数：

len=150000，其值 150000 就是 150 秒 = 2 分半，也就是说，修改这个参数就可以获得多长的视频，
begin=150000，这个值是开始下载的起始时间。

]]></description>
			<content:encoded><![CDATA[<p>今天晚上在 GR 里瞄到这个网站 <a href="http://youtube.maybeuse.com/">YouTube 携帯版</a>，一个日本人开发的 Youtube 手机版。在黑莓上测试了一下，还是不错的。</p>
<p>可以在手机上访问这个缩短后的网址：<a href="http://www.aph.cn/1d">www.aph.cn/1d</a>，主界面如下：</p>
<div align="center"><img src="http://lh3.ggpht.com/_dgCGC6ge86w/Sgw08jgco8I/AAAAAAAABJk/rwq3snbFBGQ/s512/2009-05-14_230750.png" />
</div>
<p>搜索视频：</p>
<div align="center"><img src="http://lh3.ggpht.com/_dgCGC6ge86w/Sgw08jhARBI/AAAAAAAABJo/ZSlKWjuW2AU/s512/2009-05-14_230835.png" />
</div>
<p>点击某个视频进去之后：选择分割的模式。点击 0:00-2:30 就开始下载视频。</p>
<div align="center"><img src="http://lh3.ggpht.com/_dgCGC6ge86w/Sgw08hE0G7I/AAAAAAAABJs/6u28fyog-ho/s512/2009-05-14_230856.png" /></div>
<p>通过 Opera Mini 下载到 BB 上看的画面：</p>
<div align="center"><img src="http://lh4.ggpht.com/_dgCGC6ge86w/Sgw2eNpT0RI/AAAAAAAABJw/-wNopKe1lso/s512/a.jpg" /></div>
<p>两种分割的视频大小：20 秒的视频大概是 200K，2 分半钟的大概是 1.4 MB。</p>
<p>下载的连接地址里有两个个参数：</p>
<ul>
<li>len=150000，其值 150000 就是 150 秒 = 2 分半，也就是说，修改这个参数就可以获得多长的视频，</li>
<li>begin=150000，这个值是开始下载的起始时间。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/187.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>不炫耀会死：Google 书签、Youtube 和 WordPress 贴纸</title>
		<link>http://blog.loland.net/186.et</link>
		<comments>http://blog.loland.net/186.et#comments</comments>
		<pubDate>Mon, 04 May 2009 14:18:32 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[log]]></category>

		<guid isPermaLink="false">http://blog.loland.net/186.et</guid>
		<description><![CDATA[向 scavin 要一套本来要被他贴到地板的 Google 书签。前几天收到了，家人忘记跟我说，我到今天才发现，特此炫耀一下：


话说，Google 书签的实物正面好丑。后面的 Android 机器人还不错。照片比较暗，将就了。
]]></description>
			<content:encoded><![CDATA[<p>向 <a href="http://twitter.com/scavin">scavin</a> 要一套本来要<a href="http://twitter.com/scavin/status/1628908499">被他贴到地板的 Google 书签</a>。前几天收到了，家人忘记跟我说，我到今天才发现，特此炫耀一下：</p>
<div align="center"><img style="max-width: 800px;" src="http://lh3.ggpht.com/_dgCGC6ge86w/Sf73A6VV03I/AAAAAAAABJY/cMjX_zCnuDc/s512/IMG00719.jpg" />
</div>
<p>话说，Google 书签的实物正面好丑。后面的 Android 机器人还不错。照片比较暗，将就了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/186.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>用 Ubiquity 发飞信</title>
		<link>http://blog.loland.net/185.et</link>
		<comments>http://blog.loland.net/185.et#comments</comments>
		<pubDate>Sat, 02 May 2009 04:51:33 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[Ubiquity]]></category>

		<guid isPermaLink="false">http://blog.loland.net/185.et</guid>
		<description><![CDATA[在我的推友里看到这篇 中国移动飞信 Fetion API 免费发短信的一些应用。文章里面有个 Ubiquity 命令，很简陋，而且还是新建标签式的。

输入在 Ubiquity 里输入 command-editor 或者打开 chrome://ubiquity/content/editor.html，在输入框的末尾输入以下命令。红色部分需要修改。
CmdUtils.CreateCommand({
&#160;&#160;name: "sms",
&#160;&#160;takes: {status: noun_arb_text},
&#160;&#160;homepage: "http://blog.loland.net/2008/09/28/58.et",
&#160;&#160;author: {name: "sfufoet", homepage: "http://blog.loland.net/"},
&#160;&#160;license: "MPL",
&#160;
&#160;&#160;preview: function(previewBlock, statusText, mods) {
&#160; &#160;&#160;var previewTemplate = '&#60;/div&#62;&#60;br/&#62;' +
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160;"将要发送到手机的的内容如下: &#60;br/&#62;" +&#160; &#160; &#160;&#160;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>在<a href="http://twitter.com/sfufoet">我的推友</a>里看到这篇 <a href="http://daibin.info/fetion-api.html/">中国移动飞信 Fetion API 免费发短信的一些应用</a>。文章里面有个 <a href="https://wiki.mozilla.org/Labs/Ubiquity">Ubiquity </a>命令，很简陋，而且还是新建标签式的。</p>
<p><img src="http://lh4.ggpht.com/_dgCGC6ge86w/SfvR8ObgwoI/AAAAAAAABI4/VmtOcdRAKtI/s512/2009-05-02_125344.png" /></p>
<p>输入在 <a href="https://wiki.mozilla.org/Labs/Ubiquity">Ubiquity</a> 里输入 command-editor 或者打开 chrome://ubiquity/content/editor.html，在输入框的末尾输入以下命令。<font color="#cc0000">红色部分需要修改。</font></p>
<blockquote><p><span class="part js-variable">CmdUtils</span><span class="part js-punctuation">.</span><span class="part js-property">CreateCommand</span><span class="part js-punctuation">(</span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">name</span><span class="part js-punctuation">: </span><span class="part js-string">"sms"</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">takes</span><span class="part js-punctuation">: </span><span class="part js-punctuation">{</span><span class="part js-property">status</span><span class="part js-punctuation">: </span><span class="part js-variable">noun_arb_text</span><span class="part js-punctuation">}</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">homepage</span><span class="part js-punctuation">: </span><span class="part js-string">"http://blog.loland.net/2008/09/28/58.et"</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">author</span><span class="part js-punctuation">: </span><span class="part js-punctuation">{</span><span class="part js-property">name</span><span class="part js-punctuation">: </span><span class="part js-string">"sfufoet"</span><span class="part js-punctuation">, </span><span class="part js-property">homepage</span><span class="part js-punctuation">: </span><span class="part js-string">"http://blog.loland.net/"</span><span class="part js-punctuation">}</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">license</span><span class="part js-punctuation">: </span><span class="part js-string">"MPL"</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp;</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">preview</span><span class="part js-punctuation">: </span><span class="part js-keyword">function</span><span class="part js-punctuation">(</span><span class="part js-variabledef">previewBlock</span><span class="part js-punctuation">, </span><span class="part js-variabledef">statusText</span><span class="part js-punctuation">, </span><span class="part js-variabledef">mods</span><span class="part js-punctuation">) </span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-keyword">var </span><span class="part js-variabledef">previewTemplate </span><span class="part js-operator">= </span><span class="part js-string">'&lt;/div&gt;&lt;br/&gt;' </span><span class="part js-operator">+</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-string">"将要发送到手机的的内容如下: &lt;br/&gt;" </span><span class="part js-operator">+&nbsp; &nbsp; &nbsp;&nbsp;</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-string">"&lt;b&gt;${status}&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;" </span><span class="part js-operator">+</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-string">" 总字数为: &lt;b&gt;${chars}&lt;/b&gt;"</span><span class="part js-punctuation">;</span><br />
<span class="part js-keyword">if</span><span class="part js-punctuation">(</span><span class="part js-localvariable">statusText</span><span class="part js-punctuation">.</span><span class="part js-property">text</span><span class="part js-operator">==</span><span class="part js-string">"me"</span><span class="part js-punctuation">)</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-localvariable">statusText</span><span class="part js-punctuation">.</span><span class="part js-property">text </span><span class="part js-operator">= </span><span class="part js-string">"<font color="#cc0000">你的手机号</font>&amp;msg=" </span><span class="part js-operator">+ </span><span class="part js-variable">context</span><span class="part js-punctuation">.</span><span class="part js-property">focusedWindow</span><span class="part js-punctuation">.</span><span class="part js-property">getSelection</span><span class="part js-punctuation">(</span><span class="part js-punctuation">) </span><span class="part js-operator">+ </span><span class="part js-string">" " </span><span class="part js-operator">+ </span><span class="part js-variable">context</span><span class="part js-punctuation">.</span><span class="part js-variable">focusedWindow</span><span class="part js-punctuation">.</span><span class="part js-variable">location</span><span class="part js-punctuation">;</span><br />
<span class="part js-keyword">else</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-localvariable">statusText</span><span class="part js-punctuation">.</span><span class="part js-property">text </span><span class="part js-operator">= </span><span class="part js-localvariable">statusText</span><span class="part js-punctuation">.</span><span class="part js-property">text </span><span class="part js-operator">+ </span><span class="part js-string">"&amp;msg=" </span><span class="part js-operator">+ </span><span class="part js-variable">context</span><span class="part js-punctuation">.</span><span class="part js-property">focusedWindow</span><span class="part js-punctuation">.</span><span class="part js-property">getSelection</span><span class="part js-punctuation">(</span><span class="part js-punctuation">) </span><span class="part js-operator">+ </span><span class="part js-string">" " </span><span class="part js-operator">+ </span><span class="part js-variable">context</span><span class="part js-punctuation">.</span><span class="part js-variable">focusedWindow</span><span class="part js-punctuation">.</span><span class="part js-variable">location</span><span class="part js-punctuation">;</span></p>
<p><span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-keyword">var </span><span class="part js-variabledef">previewData </span><span class="part js-operator">= </span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-property">status</span><span class="part js-punctuation">: </span><span class="part js-variable">context</span><span class="part js-punctuation">.</span><span class="part js-property">focusedWindow</span><span class="part js-punctuation">.</span><span class="part js-property">getSelection</span><span class="part js-punctuation">(</span><span class="part js-punctuation">) </span><span class="part js-operator">+ </span><span class="part js-string">" " </span><span class="part js-operator">+ </span><span class="part js-variable">context</span><span class="part js-punctuation">.</span><span class="part js-variable">focusedWindow</span><span class="part js-punctuation">.</span><span class="part js-variable">location</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-variable">chars</span><span class="part js-punctuation">: </span><span class="part js-localvariable">statusText</span><span class="part js-punctuation">.</span><span class="part js-variable">text</span><span class="part js-punctuation">.</span><span class="part js-variable">length</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-punctuation">}</span><span class="part js-punctuation">;</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-keyword">var </span><span class="part js-variabledef">previewHTML </span><span class="part js-operator">= </span><span class="part js-variable">CmdUtils</span><span class="part js-punctuation">.</span><span class="part js-property">renderTemplate</span><span class="part js-punctuation">(</span><span class="part js-localvariable">previewTemplate</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="part js-localvariable">previewData</span><span class="part js-punctuation">)</span><span class="part js-punctuation">;</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-localvariable">previewBlock</span><span class="part js-punctuation">.</span><span class="part js-property">innerHTML </span><span class="part js-operator">= </span><span class="part js-localvariable">previewHTML</span><span class="part js-punctuation">;</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-punctuation">}</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp;</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-property">execute</span><span class="part js-punctuation">: </span><span class="part js-keyword">function</span><span class="part js-punctuation">(</span><span class="part js-variabledef">statusText</span><span class="part js-punctuation">) </span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-variable">jQuery</span><span class="part js-punctuation">.</span><span class="part js-property">ajax</span><span class="part js-punctuation">(</span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-property">type</span><span class="part js-punctuation">: </span><span class="part js-string">"Get"</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-property">url</span><span class="part js-punctuation">: </span><span class="part js-string">"https://fetionAPI.appspot.com/api/?from=<font color="#cc0000">你的手机号</font>&amp;pw=<font color="#cc0000">飞信密码</font>&amp;to=" </span><span class="part js-operator">+ </span><span class="part js-localvariable">statusText</span><span class="part js-punctuation">.</span><span class="part js-property">text</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-property">error</span><span class="part js-punctuation">: </span><span class="part js-keyword">function</span><span class="part js-punctuation">(</span><span class="part js-punctuation">) </span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-variable">displayMessage</span><span class="part js-punctuation">(</span><span class="part js-string">"发送失败"</span><span class="part js-punctuation">)</span><span class="part js-punctuation">;</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-punctuation">}</span><span class="part js-punctuation">,</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-property">success</span><span class="part js-punctuation">: </span><span class="part js-keyword">function</span><span class="part js-punctuation">(</span><span class="part js-punctuation">) </span><span class="part js-punctuation">{</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-variable">displayMessage</span><span class="part js-punctuation">(</span><span class="part js-string">"发送成功"</span><span class="part js-punctuation">)</span><span class="part js-punctuation">;</span><br />
<span class="part whitespace">&nbsp; &nbsp; &nbsp;&nbsp;</span><span class="part js-punctuation">}</span><br />
<span class="part whitespace">&nbsp; &nbsp;&nbsp;</span><span class="part js-punctuation">}</span><span class="part js-punctuation">)</span><span class="part js-punctuation">;</span><br />
<span class="part whitespace">&nbsp;&nbsp;</span><span class="part js-punctuation">}</span><br />
<span class="part js-punctuation">}</span><span class="part js-punctuation">)</span><span class="part js-punctuation">;</span>
</p></blockquote>
<p>                                         <b>用法：</b></p>
<ol>
<li>输入 sms 手机号，回车后会把当前选中的文字和当前网址发生到对方手机上。</li>
<li>输入 sms me，就会发给自己。</li>
</ol>
<p>我用的这个飞信 API 是用 Google App Engine 打造的。注意：若短时间内循环大量发送短信者，将直接封号封 IP ！</p>
<p>如果不小心被封了，可以试试 <a href="http://daibin.info/fetion-api.html/">中国移动飞信 Fetion API 免费发短信的一些应用</a> 里的另外一个 API。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/185.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>GMail Compactor - 让 Gmail 侧栏的文字变图标！</title>
		<link>http://blog.loland.net/184.et</link>
		<comments>http://blog.loland.net/184.et#comments</comments>
		<pubDate>Fri, 01 May 2009 11:59:57 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Google Reader]]></category>

		<category><![CDATA[GreaseMonkey]]></category>

		<guid isPermaLink="false">http://blog.loland.net/184.et</guid>
		<description><![CDATA[有图有真相：


注：垃圾箱和收件箱的数字会显示在图标上的。。另外，脚本会隐藏 Gmail 的 logo，还有把搜索框压缩到侧边栏了。。
猛击这里安装 GMail Compactor.user.js
via
]]></description>
			<content:encoded><![CDATA[<p>有图有真相：</p>
<div align="center"><img src="http://lh6.ggpht.com/_dgCGC6ge86w/SfriPN3DCWI/AAAAAAAABIw/xCLhgUjJw3M/s512/2009-05-01_194951.png" />
</div>
<p>注：垃圾箱和收件箱的数字会显示在图标上的。。另外，脚本会隐藏 Gmail 的 logo，还有把搜索框压缩到侧边栏了。。</p>
<p><a href="http://userscripts.org/scripts/show/46938">猛击这里安装 GMail Compactor.user.js</a></p>
<p><a href="http://www.firefoxfacts.com/2009/05/01/shrink-the-left-hand-links-in-gmail/">via</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/184.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>Twitthat! For Google Reader Mobile - 在 Google Reader 移动版使用的 Twitthat! 小书签[Opera Mini]</title>
		<link>http://blog.loland.net/183.et</link>
		<comments>http://blog.loland.net/183.et#comments</comments>
		<pubDate>Tue, 21 Apr 2009 07:05:58 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[blackberry]]></category>

		<category><![CDATA[bookmarklet]]></category>

		<category><![CDATA[Opera Mini]]></category>

		<guid isPermaLink="false">http://blog.loland.net/183.et</guid>
		<description><![CDATA[在手机上 GR 看到不错的文章时，想把它分享到 twitter 是多么麻烦的一件事：点击&#160; See original，等待 or stop 页面的载入（这个步骤非常浪费时间），使用 Twitthat! 小书签。
有了 Twitthat! For Google Reader Mobile，这个复杂而浪费时间的步骤就变成：在 GR 看到不错的文章，直接在书签里点击 Twitthat! For Google Reader Mobile 然后提交就完事了。
Twitthat! For Google Reader Mobile 的安装有点特别，我没办法把它弄得像以前的小书签那样来安装。首先在手机上，运行 Opera mini，访问 Opera Mini Bookemarklets，点击 Twitthat! For Google Reader Mobile，复制下面文本框的文字，用快捷键 #7 来打开添加书签界面，然后清空 Address 的文字，把刚才复制的文字，粘贴进去。保存就可以了。
]]></description>
			<content:encoded><![CDATA[<p>在手机上 GR 看到不错的文章时，想把它分享到 twitter 是多么麻烦的一件事：点击&nbsp; See original，等待 or stop 页面的载入（这个步骤非常浪费时间），使用 Twitthat! 小书签。</p>
<p>有了 Twitthat! For Google Reader Mobile，这个复杂而浪费时间的步骤就变成：在 GR 看到不错的文章，直接在书签里点击 Twitthat! For Google Reader Mobile 然后提交就完事了。</p>
<p>Twitthat! For Google Reader Mobile 的安装有点特别，我没办法把它弄得像<a href="http://blog.loland.net/144.et">以前的小书签</a>那样来安装。首先在手机上，运行 Opera mini，<a href="http://blog.loland.net/op.htm#TwitthatForGoogleReader">访问 Opera Mini Bookemarklets</a>，点击 Twitthat! For Google Reader Mobile，复制下面文本框的文字，用快捷键 #7 来打开添加书签界面，然后清空 Address 的文字，把刚才复制的文字，粘贴进去。保存就可以了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/183.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>Google Reader Easy Keys - 左手边的 Google Reader 快捷键</title>
		<link>http://blog.loland.net/181.et</link>
		<comments>http://blog.loland.net/181.et#comments</comments>
		<pubDate>Thu, 16 Apr 2009 14:09:49 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[Google Reader]]></category>

		<category><![CDATA[GreaseMonkey]]></category>

		<category><![CDATA[hotkey]]></category>

		<guid isPermaLink="false">http://blog.loland.net/181.et</guid>
		<description><![CDATA[啥时候，GR 才能和 Gmail 一样有自定义快捷键功能呢？等不及的童鞋，可以试试这个脚本。Google Reader Easy Keys 新增的快捷键如下。

Q 下一篇
W 上一篇
D 标记全部为已读
3 下一个未读 Feed
4 上一个未读 Feed

安装 Google Reader Easy Keys.user.js
]]></description>
			<content:encoded><![CDATA[<p>啥时候，GR 才能和 Gmail 一样有自定义快捷键功能呢？等不及的童鞋，可以试试这个脚本。Google Reader Easy Keys 新增的快捷键如下。</p>
<ul>
<li>Q 下一篇</li>
<li>W 上一篇</li>
<li>D 标记全部为已读</li>
<li>3 下一个未读 Feed</li>
<li>4 上一个未读 Feed</li>
</ul>
<p><a href="http://userscripts.org/scripts/show/40902">安装 Google Reader Easy Keys.user.js</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/181.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>UTF-8 Word-spacing For Google Reader - 自动在中文和数字、英文交接处加上空格[ver 0.2.2]</title>
		<link>http://blog.loland.net/180.et</link>
		<comments>http://blog.loland.net/180.et#comments</comments>
		<pubDate>Thu, 16 Apr 2009 11:13:26 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Google Reader]]></category>

		<category><![CDATA[GreaseMonkey]]></category>

		<guid isPermaLink="false">http://blog.loland.net/180.et</guid>
		<description><![CDATA[刚刚把 UTF-8 Word-spacing For Google Reader 升级到了 0.2.2。如果你还在 0.1 版本的话，请赶紧升级。中间的几次升级我只是在 twitter 上通知了。上次通知的是 0.2.1。
0.2.2 版本比 0.1 多了什么呢？

增加了对 list view 模式的处理。
处理了换行，就是段与段之间不空一行的，都会空多一行出来。

]]></description>
			<content:encoded><![CDATA[<p>刚刚把 <a href="http://blog.loland.net/175.et" rel="bookmark" title="Permanent Link: UTF-8 Word-spacing For Google Reader - 自动在中文和数字、英文交接处加上空格">UTF-8 Word-spacing For Google Reader</a> 升级到了 0.2.2。如果你还在 0.1 版本的话，<a href="http://userscripts.org/scripts/show/46440">请赶紧升级</a>。中间的几次升级我只是在 twitter 上通知了。上次通知的是 0.2.1。</p>
<p>0.2.2 版本比 0.1 多了什么呢？</p>
<ul>
<li>增加了对 list view 模式的处理。</li>
<li>处理了换行，就是段与段之间不空一行的，都会空多一行出来。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/180.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>Google Language API Translator Tooltip - 调用 Google 翻译 API 的划词搜索[GreaseMonkey]</title>
		<link>http://blog.loland.net/179.et</link>
		<comments>http://blog.loland.net/179.et#comments</comments>
		<pubDate>Wed, 15 Apr 2009 08:38:37 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[GreaseMonkey]]></category>

		<guid isPermaLink="false">http://blog.loland.net/?p=179</guid>
		<description><![CDATA[受不了 Google Translate 的翻页结果的框架。所以去 UserScript 挖脚本。脚本修改自 Google Language API Translator Tooltip
安装：
猛击这里安装 Google Language API Translator Tooltip[modifed].user.js
用法很简单，选择文字，鼠标移动到出现的图标上。


稍等一下，翻译结果就出来了

我修改了什么？

原脚本的搜索按钮和搜索结果是恶心炫目的黄色，我修改为淡蓝色了。
搜索结果框原来是绝对靠左的。我修改为离鼠标最近的位置了。

小技巧：

点击搜索结果右下角的 &#62;&#62; 可以修改来源的语言，建议选择为“Auto Detect（自动探测）”。
搜索结果可以随意拖动。

]]></description>
			<content:encoded><![CDATA[<p>受不了 Google Translate 的翻页结果的框架。所以去 UserScript 挖脚本。脚本修改自 <a href="http://userscripts.org/scripts/show/41847">Google Language API Translator Tooltip</a></p>
<p><b>安装：</p>
<p></b><a href="http://userscripts.org/scripts/show/46744">猛击这里安装 Google Language API Translator Tooltip[modifed].user.js</a><b></p>
<p>用法很简单</b>，选择文字，鼠标移动到出现的图标上。</p>
<div align="center"><img src="http://lh6.ggpht.com/_dgCGC6ge86w/SeWZt-sVGaI/AAAAAAAABHM/YfTn6R6N1P8/s512/2009-04-15_162121.png" />
</div>
<p>稍等一下，翻译结果就出来了</p>
<div align="center"><img src="http://lh3.ggpht.com/_dgCGC6ge86w/SeWZtjfLvkI/AAAAAAAABHE/hozcH9AW0ik/s512/2009-04-15_162104.png" /></div>
<p><b>我修改了什么？</b></p>
<ul>
<li>原脚本的搜索按钮和搜索结果是恶心炫目的黄色，我修改为淡蓝色了。</li>
<li>搜索结果框原来是绝对靠左的。我修改为离鼠标最近的位置了。</li>
</ul>
<p><b>小技巧：</b></p>
<ol>
<li>点击搜索结果右下角的 &gt;&gt; 可以修改来源的语言，建议选择为“Auto Detect（自动探测）”。</li>
<li>搜索结果可以随意拖动。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/179.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>Focus Killer - 杀掉自动聚焦[GreaseMonkey]</title>
		<link>http://blog.loland.net/177.et</link>
		<comments>http://blog.loland.net/177.et#comments</comments>
		<pubDate>Tue, 14 Apr 2009 12:41:34 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[GreaseMonkey]]></category>

		<guid isPermaLink="false">http://blog.loland.net/177.et</guid>
		<description><![CDATA[和 Focus First Textbox - 光标自动定位到网页的第一个输入框[GreaseMonkey]刚好相反，测试了一下，光标还是会自动定位，然后才被杀掉。
比如，某个网页会自动获取光标，刷新它，把当前光标放在搜索框里，网页刷新完毕后，光标会自动跳到网页的输入框里。如果在搜索框里输入了一半，光标自动跳转过去的话，的确很不爽。不过安装这个脚本之后，光标也不会回到搜索框。
感觉还是没啥用，不过谁知道呢？也许对某些人来说很有用。
猛击这里安装Focus Killer.user.js
via ghacks
]]></description>
			<content:encoded><![CDATA[<p>和 <a href="http://blog.loland.net/176.et">Focus First Textbox - 光标自动定位到网页的第一个输入框[GreaseMonkey]</a>刚好相反，测试了一下，光标还是会自动定位，然后才被杀掉。</p>
<p>比如，某个网页会自动获取光标，刷新它，把当前光标放在搜索框里，网页刷新完毕后，光标会自动跳到网页的输入框里。如果在搜索框里输入了一半，光标自动跳转过去的话，的确很不爽。不过安装这个脚本之后，光标也不会回到搜索框。</p>
<p>感觉还是没啥用，不过谁知道呢？也许对某些人来说很有用。</p>
<p><a href="http://userscripts.org/scripts/show/42567">猛击这里安装Focus Killer.user.js</a></p>
<p>via <a href="http://www.ghacks.net/2009/04/14/disable-text-field-auto-focus/">ghacks</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/177.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>Focus First Textbox - 光标自动定位到网页的第一个输入框[GreaseMonkey]</title>
		<link>http://blog.loland.net/176.et</link>
		<comments>http://blog.loland.net/176.et#comments</comments>
		<pubDate>Tue, 14 Apr 2009 01:53:14 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[GreaseMonkey]]></category>

		<guid isPermaLink="false">http://blog.loland.net/176.et</guid>
		<description><![CDATA[有时候的确会方便一些。
猛击这里安装 Focus First Textbox.user.js
via ghacks
]]></description>
			<content:encoded><![CDATA[<p>有时候的确会方便一些。</p>
<p><a href="http://userscripts.org/scripts/show/46455">猛击这里安装 Focus First Textbox.user.js</a></p>
<p>via <a href="http://www.ghacks.net/2009/04/13/automatically-jump-to-first-text-field/">ghacks</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/176.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>UTF-8 Word-spacing For Google Reader - 自动在中文和数字、英文交接处加上空格</title>
		<link>http://blog.loland.net/175.et</link>
		<comments>http://blog.loland.net/175.et#comments</comments>
		<pubDate>Sat, 11 Apr 2009 16:00:37 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Google Reader]]></category>

		<category><![CDATA[GreaseMonkey]]></category>

		<category><![CDATA[utf-8]]></category>

		<guid isPermaLink="false">http://blog.loland.net/?p=175</guid>
		<description><![CDATA[在中文和数字、英文交接处加上空格，是煎蛋小众的文章格式之一。它不仅仅是起到一个美观的作用，而且能让读者看文章更加舒服。比如：“我是sfufoet是我”就必须写为“我是 sfufoet 是我”。
Update：还有一个好处是，Opera Mini 用户在阅读你的文章的时候，不会出现英文和中文有些重叠的问题。
这条规定，执行起来非常麻烦。因为大家都没有这样的输入习惯，输入英文数字之前空格一下。一旦养成了这个习惯，看到别人的文章总是非常的不爽。
这个脚本其实一早我就写了出来，可惜因为不够完美，所以我没有发布。原先的脚本随着 GR 的不断载入，脚本的执行效率会越来越低。因为脚本是处理整个 GR 的网页代码。上次用 JQuery 重写了一个版本，并让 Dofy 帮忙 Debug。我的 Firefox 不知道怎么回事，死活无法执行。经过千辛万苦的排除插件问题和脚本冲突，最后只能断定为 RP 太好了。
昨天下午到昨晚，终于重写了它，对我这个 JavaScript 新手来说，重写这个脚本简直就是奇迹。写代码的过程就是不断去 W3School 学习，去 userscripts 挖掘别人的类似脚本并参考。今天下午参考了 [Updated] Google Reader Preview Enhanced v1.07g，完成了脚本的 Debug。
来看看效果，没有安装脚本前：


安装脚本后：


脚本是全自动处理当前正在看的文章，并且会自动过滤掉斜体标记（&#60;i&#62;和&#60;em&#62;）。脚本还自带了把 GR 未读数提前的功能。猛击这里安装：UTF-8 Word-spacing For Google Reader.user.js
注意：脚本并不完美，带有“程序代码”的文章会失去缩进。
我呼吁大家一起来养成这个习惯，赠送 bookmarklet 一个，适合 WordPress 用户，自动在中文和数字、英文交接处加上空格。
javascript:(function(){var q;document.charset=%22utf-8%22;q=document.getElementById('content').value;q=q.replace(/([a-z0-9~!@#\$\%\^&#38;;\*\-_\+=\,&#60;\.&#62;\/\?\:\'\"]+)/ig," $1 ");q=q.replace(/ &#60;\/a&#62;/g,"&#60;/a&#62;");q=q.replace(/( +)/g," ");q=q.replace(/( ?)\)( ?)/g,")");q=q.replace(/( ?)\(( ?)/g,"(");q=q.replace(/^ /g,"");document.getElementById('content').value=q;})();

安装方法，新建一个书签，名字随便，地址里填上上面的代码。
使用方法，在 WordPress 新建文章的页面，写完文章后，使用它。全自动处理。
注意，小书签可能存在 Bug：带有“程序代码”的文章可能会失去缩进。，使用前注意备份。
update: [...]]]></description>
			<content:encoded><![CDATA[<p>在中文和数字、英文交接处加上空格，是<a href="http://jandan.net/">煎蛋</a><a href="http://www.appinn.com/">小众</a>的文章格式之一。它不仅仅是起到一个<strong>美观</strong>的作用，而且能让读者看文章<strong>更加舒服</strong>。比如：“我是sfufoet是我”就必须写为“我是 sfufoet 是我”。</p>
<p>Update：还有一个好处是，Opera Mini 用户在阅读你的文章的时候，不会出现英文和中文有些重叠的问题。</p>
<p>这条规定，执行起来非常麻烦。因为大家都没有这样的输入习惯，输入英文数字之前空格一下。一旦养成了这个习惯，看到别人的文章总是非常的不爽。</p>
<p>这个脚本其实一早我就写了出来，可惜因为不够完美，所以我没有发布。原先的脚本随着 GR 的不断载入，脚本的执行效率会越来越低。因为脚本是处理整个 GR 的网页代码。上次用 <a href="http://jquery.com/">JQuery</a> 重写了一个版本，并让 <a href="http://blog.dofy.net/">Dofy</a> 帮忙 Debug。我的 Firefox 不知道怎么回事，死活无法执行。经过千辛万苦的排除插件问题和脚本冲突，最后只能断定为 RP 太好了。</p>
<p>昨天下午到昨晚，终于重写了它，对我这个 JavaScript 新手来说，重写这个脚本简直就是奇迹。写代码的过程就是不断去 <a href="http://www.w3school.com.cn/index.html">W3School</a> 学习，去 <a href="http://userscripts.org/">userscripts</a> 挖掘别人的类似脚本并参考。今天下午参考了 <a href="http://userscripts.org/scripts/review/9455">[Updated] Google Reader Preview Enhanced v1.07g</a>，完成了脚本的 Debug。</p>
<p>来看看效果，没有安装脚本前：</p>
<div align="center"><img src="http://lh4.ggpht.com/_dgCGC6ge86w/SeC2EI2b6QI/AAAAAAAABFU/xVAmXaHTdIg/s512/2009-04-11_230126.png" />
</div>
<p>安装脚本后：</p>
<div align="center"><img src="http://lh3.ggpht.com/_dgCGC6ge86w/SeC2EO42GzI/AAAAAAAABFc/z3CwHCDY4UQ/s512/2009-04-11_230329.png" />
</div>
<p>脚本是全自动处理当前正在看的文章，并且会自动过滤掉斜体标记（&lt;i&gt;和&lt;em&gt;）。脚本还自带了把 GR 未读数提前的功能。猛击这里安装：<a href="http://userscripts.org/scripts/show/46440">UTF-8 Word-spacing For Google Reader.user.js</a></p>
<p><strong>注意：</strong>脚本并不完美，带有“程序代码”的文章会失去缩进。</p>
<p>我呼吁大家一起来养成这个习惯，赠送 bookmarklet 一个，适合 WordPress 用户，自动在中文和数字、英文交接处加上空格。</p>
<blockquote><p>javascript:(function(){var q;document.charset=%22utf-8%22;q=document.getElementById('content').value;q=q.replace(/([a-z0-9~!@#\$\%\^&amp;;\*\-_\+=\,&lt;\.&gt;\/\?\:\'\"]+)/ig," $1 ");q=q.replace(/ &lt;\/a&gt;/g,"&lt;/a&gt;");q=q.replace(/( +)/g," ");q=q.replace(/( ?)\)( ?)/g,")");q=q.replace(/( ?)\(( ?)/g,"(");q=q.replace(/^ /g,"");document.getElementById('content').value=q;})();
</p></blockquote>
<p>安装方法，新建一个书签，名字随便，地址里填上上面的代码。</p>
<p>使用方法，在 WordPress 新建文章的页面，写完文章后，使用它。全自动处理。</p>
<p>注意，小书签可能存在 Bug：带有“程序代码”的文章可能会失去缩进。，使用前注意备份。</p>
<p>update: 在 list 模式没有写处理代码。等明天。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/175.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>Gmail Multi-upload Fix - 修复在某些主题下批量上传无法使用的问题 [GreaseMonkey]</title>
		<link>http://blog.loland.net/173.et</link>
		<comments>http://blog.loland.net/173.et#comments</comments>
		<pubDate>Fri, 10 Apr 2009 06:09:10 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[flash]]></category>

		<category><![CDATA[Gmail]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[GreaseMonkey]]></category>

		<guid isPermaLink="false">http://blog.loland.net/173.et</guid>
		<description><![CDATA[Recih 在 twitter 上回答了 Jason Ng 的疑惑，也回答了我的疑惑：
 Gmail 批量上传的按钮实际上是一个透明的 flash 覆盖在“上传附件”链接之上，但在某些主题里，这个 flash 的宽度太小，以至于我们点击的还是旧版的“上传附件”，结果是我们无法批量上传，也无法看到上传进度条。

解决办法很简单，安装 Gmail Multi-upload Fix 这个 GreaseMonkey 脚本就完事了。
Recih 的脚本将覆盖层的宽度设置为 52px ，在使用过程中 Jason Ng 发现 52px 的宽度会导致按钮后半部失效，于是他改成了 68px，点击这里直接安装。
via 可能吧
]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://twitter.com/recih">Recih</a> 在 twitter 上回答了 <a href="http://twitter.com/jason5ng32">Jason Ng</a> 的疑惑，也回答了我的疑惑：</p>
<blockquote><p> Gmail 批量上传的按钮实际上是一个透明的 flash 覆盖在“上传附件”链接之上，但在某些主题里，这个 flash 的宽度太小，以至于我们点击的还是旧版的“上传附件”，结果是我们无法批量上传，也无法看到上传进度条。
</p></blockquote>
<p>解决办法很简单，<a href="http://userscripts.org/scripts/show/46260">安装 Gmail Multi-upload Fix 这个 GreaseMonkey 脚本</a>就完事了。</p>
<p>Recih 的脚本将覆盖层的宽度设置为 52px ，在使用过程中 Jason Ng 发现 52px 的宽度会导致按钮后半部失效，于是他改成了 68px，<a target="_blank" href="http://kenengba.googlecode.com/files/gmailmultiuploadfix.user.js">点击这里直接安装</a>。</p>
<p>via <a href="http://www.kenengba.com/post/842.html">可能吧</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/173.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>Post-new page Enhance - 自动填写文章别名和文章日期[GreaseMonkey]</title>
		<link>http://blog.loland.net/172.et</link>
		<comments>http://blog.loland.net/172.et#comments</comments>
		<pubDate>Thu, 09 Apr 2009 15:00:12 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.loland.net/172.et</guid>
		<description><![CDATA[不知道为什么，小众的后台新建文章页面的文章别名总是显示不出来，每次写文章都需要点击“显示选项→文章别名”。我忍它很久，终于忍不住了。
这个 GreaseMonkey 脚本的用法很简单，在文章标题框输入“appinn com - test”，然后把光标定位到内容区或其他文本框（其实就是触发标题框的焦点离开属性）。“ - ”前面的单词就会变成文章别名啦。


如果文章标题是这样的“appinn -- test”的话，那么除了文章别名会自动写上 appinn 之外，标题框只剩下“test”。
另外，发布时间也会自动被修改为最新那篇文章的第二天早上七点，此功能需要修改
var url='http://www.appinn.com/wp-admin/edit.php';
把地址修改为你的博客编辑文章的地址。这也意味着，此脚本只能支持一个博客。想再多兼容一个博客的话需要自己修改“// @name Post-new page Enhance”中的“Post-new page Enhance”，再安装。
如果你最新的那篇文章是 N 天前发布的话，日期就不会变，不过时间会变成 7 点。我懒得处理这个 bug，手工点击以下 now 按钮就行了。
发布时间下会多四个按钮，都是是设置发布的时间用的。点击一下就明白。
猛击这里安装 Post-new page Enhance.user.js
]]></description>
			<content:encoded><![CDATA[<p>不知道为什么，小众的后台新建文章页面的文章别名总是显示不出来，每次写文章都需要点击“显示选项→文章别名”。我忍它很久，终于忍不住了。</p>
<p>这个 GreaseMonkey 脚本的用法很简单，在文章标题框输入“appinn com - test”，然后把光标定位到内容区或其他文本框（其实就是触发标题框的焦点离开属性）。“ - ”前面的单词就会变成文章别名啦。</p>
<div align="center"><img src="http://lh3.ggpht.com/_dgCGC6ge86w/Sd34Our_rwI/AAAAAAAABE0/97iC7SOHi6s/s512/2009-04-09_203942.png" />
</div>
<p>如果文章标题是这样的“appinn -- test”的话，那么除了文章别名会自动写上 appinn 之外，标题框只剩下“test”。</p>
<p>另外，发布时间也会自动被修改为最新那篇文章的第二天早上七点，此功能需要修改</p>
<p>var url='http://www.appinn.com/wp-admin/edit.php';</p>
<p>把地址修改为你的博客编辑文章的地址。这也意味着，此脚本只能支持一个博客。想再多兼容一个博客的话需要自己修改“// @name Post-new page Enhance”中的“Post-new page Enhance”，再安装。</p>
<p>如果你最新的那篇文章是 N 天前发布的话，日期就不会变，不过时间会变成 7 点。我懒得处理这个 bug，手工点击以下 now 按钮就行了。</p>
<p>发布时间下会多四个按钮，都是是设置发布的时间用的。点击一下就明白。</p>
<p>猛击这里安装 <a href="http://userscripts.org/scripts/show/46267">Post-new page Enhance.user.js</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/172.et/feed</wfw:commentRss>
		</item>
		<item>
		<title>Show Password onFocus - 密码框在输入状态以明文显示</title>
		<link>http://blog.loland.net/171.et</link>
		<comments>http://blog.loland.net/171.et#comments</comments>
		<pubDate>Thu, 09 Apr 2009 06:24:05 +0000</pubDate>
		<dc:creator>sfufoet</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[GreaseMonkey]]></category>

		<guid isPermaLink="false">http://blog.loland.net/171.et</guid>
		<description><![CDATA[
一个疯狂的 GreaseMonkey 脚本。效果如图。用处就是查看密码输对了没有。光标离开之后，文字又变成星星了。
其实我是拿来学习一下它的脚本写法的说。
猛击这里安装 Show Password onFocus
]]></description>
			<content:encoded><![CDATA[<p><img style="float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://lh3.ggpht.com/_dgCGC6ge86w/Sd2TrOCdBBI/AAAAAAAABEs/6m55TMUC-Ew/s512/2009-04-09_141915.png" /><br />
一个疯狂的 GreaseMonkey 脚本。效果如图。用处就是查看密码输对了没有。光标离开之后，文字又变成星星了。</p>
<p>其实我是拿来学习一下它的脚本写法的说。</p>
<p><a href="http://userscripts.org/scripts/show/1892">猛击这里安装 Show Password onFocus</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loland.net/171.et/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
