米高,请沿着月光之路走好。
作者:屈超(Chappell.Wat) 发布时间:June 26, 2009 分类:口胡::一の瀬,音乐::八神 3 Comments
近来我很少发表技术外的日志,
但今天绝对是例外。
看到米高去世的消息倍感震惊,
心情难以言表,
发文以缅怀,
祝他一路走好。
一个时代的结束!

とけいさか いっこくかん さんごうしつ
作者:屈超(Chappell.Wat) 发布时间:June 26, 2009 分类:口胡::一の瀬,音乐::八神 3 Comments
近来我很少发表技术外的日志,
但今天绝对是例外。
看到米高去世的消息倍感震惊,
心情难以言表,
发文以缅怀,
祝他一路走好。
一个时代的结束!

作者:屈超(Chappell.Wat) 发布时间:May 26, 2009 分类:程式::五代 14 Comments

【最近更新】
心里想着“这个脚本应该也能用来探测 CSS 库”,
于是就尝试着写出来了,
用的是 Xpath,
效率上应该还不错。
其它的改进还包括美化了 UI,
应该不会有人抱怨说鼠标上移后看不清文字了吧?
关于识别范围我还想说一句:
不想让这个脚本变成臃肿的东西,
(事实上目前 icon 数据已经有很大一段了)
希望支持的只是应用较广的框架和库,
否则探测也没什么意义。
在我自己看来本身也就是个玩意儿而已。
============ 分割线 ==============
【090401 更新】
今天要分享的是名为 JavaScript Library Detector 的油猴脚本。
(已更名为:Web Assets Dectector)
虽然已经有非常多的同类产品,如
「Library Detector」和「WTFramework」。
特别要提的是「WTFramework」,
虽然名字有涉嫌粗口,
但其 70+ 库/框架的覆盖率可不是盖的。
不过我这玩意儿的优点还在于处理了库/框架之间的依赖关系。
(貌似也仅次一项?)
就跟某人所说一样,
这是个体力活儿,
真要有精力应该写个扩展探测整个网站的环境:
从服务器签名到物理地址,
从 Alexa 排名到 PageRank 再到 SEO 分析结果,
要不要最后再公开站长的三围?
所以还是见好就收吧。
【目前该脚本所支持的库/框架】
[JavaScript]
YUI
├ Tbra
jQuery
├ jQuery UI
Prototype.js
├ Scriptaculous
├ Rico
├ Moo.fx
Dojo
Mojo
MooTools
├ Moo.fx
Ext JS
Spry
MochiKit
Qooxdoo
Base2
X Library
[CSS]
YUI Grid System
Tbra Grid System
960 Grid System
Blueprint CSS Framework
最后老规矩,
提供下载:
私营项目:http://code.google.com/p/watsilla/source/browse/trunk/userscripts/web_assets_detector/latest.user.js
脚本官方:http://userscripts.org/scripts/source/45731.user.js
更新日志:
[090325] 1.0: 初始发布;
[090401] 1.1: 处理库之间的继承关系;
[090520] 1.2: UI 美化;增加对 CSS 框架的支持;更名 Web Assets Detector;
作者:屈超(Chappell.Wat) 发布时间:April 28, 2009 分类:笔记::千草 10 Comments
不多介绍,
明白人儿都知道我的意思。
其实也可以说是动态插入样式单的标签。
首先,
对于 Content 级的脚本,
我们可以这么写:
(document.getElementsByTagName('head')[0] || document.documentElement)
.appendChild(document.createElement('style'))
.appendChild(document.createTextNode((<quchao><![CDATA[
/* Multi-line CSS Text Goes Here; from QuChao.com */
]]></quchao>).toString()));
值得注意的是 Firefox 虽然支持 CDATA 文本,
但在使用时要小 hack 一下。
该方法可以用于 GreaseMoneky 等执行于 Content 级别的脚本里,
当然 Web 里也没有问题啦。
其次,
对于 Chrome 级别的脚本,
我建议这么写:
作者:屈超(Chappell.Wat) 发布时间:March 23, 2009 分类:程式::五代 No Comments
最近有种想把自用脚本整理并分享出来的冲动,
因为扩展这种东西实在太麻烦了,
远不如一个脚本来得痛快。
但 UserChrome.JS 脚本相对于扩展来说数量又太少,
很多功能必须靠自己动手写,
所以,
期待更多的朋友加入这一行列。
如果你还没听说过 UserChrome.JS ,
那么我建议你阅读这些个帖子入门先,
引用之前某次我在部门分享中用来介绍它的话:
UserChrome.JS 是 Chrome 层的 GreaseMonkey,
是 Firefox Extension 的简单形式。
本文主旨是分享昨天写的一个脚本,
之后的分享将不再对它做介绍。
(但或许会考虑另撰一文来介绍
我自定义 FireFox 和 Thunderbird 的经验)
========== 正文开始 =============
Thunderbird 用户本来就少,
Thunderbird 3 的用户应该就更少了,
而使 UserChrome.js 来自定义 Thunderbird 的用户怕是少上加少,
很不幸,
我就是其中那个很装 13 的之一。
今天要给大家分享的是名为 Show as HTML Temporarily 的脚本,
一些 Thunderbird 用户会想到 Allow HTML Temp,
没错,
功用一样,
但该扩展目前尚不能很好支持 Thunderbird 最新的 XUL 结构,
我所习惯的位于 Mail Header Bar 的按钮已然失效,
每次想要激活 HTML 功能鼠标要跑很远,
既然我最想要的功能已经没了,
我毫不犹豫的卸了它,
“没有了咱就自己写”。
邮件头这一块的 XUL 结构变过数次,
直接导致我前几次的脚本失效,
所以今天提供的脚本仅能适用于最新的 Thunderbird 3 的 Nightly 版本。
(还在使用旧版本的童鞋也请赶快跟进吧)
在使用之前你还得弄清你所设置的默认显示邮件的格式,
如果你已经默认选中以原始 HTML 方式查看邮件,
我想你根本用不着类似的扩展或脚本了。
(综合考虑安全和实用性,
我建议还是选择 Simple HTML)

确认这一点之后,
请加载该脚本,
它会在你的 Mail Header Bar 上增加一个名为 Show as HTML 的按钮,
阅读 HTML 格式的邮件时遇到需要加载线上图片的情况,
点击一下就能“暂时地”以原始 HTML 的格式显示该邮件,
一来节省下不必要的流量,
二来也比默认全部加载要安全得多。

以上周的译言快讯为例,
这是治疗前:

点击后:
疗效不错嘛……

顺便提一下,
Picasa 的外链相当好用;
而 Yupoo 已成明日黄花,
把免费用户当猴耍,
可叹。
【下载链接】
http://code.google.com/p/watsilla/source/browse/trunk/userchrome.js/thunderbird/show_as_html_temporarily/show_as_html_temporarily.uc.js
作者:屈超(Chappell.Wat) 发布时间:February 19, 2009 分类:程式::五代 6 Comments
【最近更新】
同步更新至 1.3.2 版,
并增加供 Firefox 3.1+ 使用的1.4.0a12 版本。
如果你看过我的上一篇文章……
应该已经了解我要解决的这个 Bug 究竟是怎么一回事儿……
很不幸 Firefox 和 Firebug 都有类似 Bug ……
也即在外部编辑器中查看网页 HTML 源码的乱码问题……
该 Bug 在 Firebug 的历代版本中均存在……
除了 Windows 我也在 Mac 版上发现了该 Bug ……
但与 Firefox 本身的问题不同……(见我前一篇文章)
Firebug 采取的另外一种方式来处理……
但显然也没能够逃脱产生乱码的“厄运”……
Bug 具体的描述如下……
如果你通过 Firebug 的菜单命令配置过外部编辑器……
(Tools -> Firebug -> Open With Editor -> Configure Editors)
那么配置完毕后将在你的右键上下文菜单中显示 Open With Editor 命令组……(如下图)

通过这个命令组……
你可以选择不同的编辑器对当前的网页源码进行查看和编辑……
确实非常便捷……
但是……
当你想用 Firebug 的这一功能查看任何包含有非 ASCII 字符的网页时……
你则可能遇到下面两种问题……
第一种……
当你想要查看任何包含非 ASCII 字符的线上页面源码时……
你可以正常打开它……(因为 Firebug 用 ascii 字符命名 tmp 文件)
但你看到的内容将是存在乱码的……(如下图)

第二种……
当你把一个文件名中包含非 ASCII 字符的文件拖进 Firefox ……
并想要查看其源码时……
你的编辑器却连文件都无法打开……(如下图)

研究 Firebug 源码后得知……
对于第一种情况……
是由于 Firebug 没有对 Unicode 的源码进行转码所致……
而第二种情况……
则是因为 Firebug 在向编辑器发送命令行参数时没有对文件名进行转码……
(如果你还想追问我为何 Firebug 的源码面板没有乱码……
我可以顺便告诉你:因为这些流程都在 Firefox 内部……)
知道了造成 Bug 的原因……
我们就可以操刀开始解决了……
对于第一种情况……
只需要将其转为 UTF-8 编码即可……
打开 profile\extensions\firebug@software.joehewitt.com\content\firebug\firebug.js 文件……
搜索:
temporaryFiles.push(file.path);
在其下方添加代码:
// Hacked by Chappell.Wat @ QuChao.com on 2008-10-14 start
data = convertFromUnicode('UTF-8', data);
// Hacked by Chappell.Wat @ QuChao.com on 2008-10-14 end
对于第二种情况……
则稍微复杂一点……
因为通过命令行发送参数到系统时需要根据系统的 non-unicode 默认编码来转码……
(由于条件所限我这里仅针对 Windows 进行修改)
比如我虽然使用英文系统……
但是为了完美支持中文我将字符集改成了 936 ……
那么我就需要将那个“乱码”文件名转为 GB2312 或 GBK……
其它语言的用户请按情况修改……(如果你看得懂的话)
同样是打开 profile\extensions\firebug@software.joehewitt.com\content\firebug\firebug.js ……
搜索:
args.push(localFile);
在其下方添加代码:
// Hacked by Chappell.Wat @ QuChao.com on 2008-10-14 start
if ('WINNT' === getPlatformName()) {
localFile = convertFromUnicode('GB2312', localFile);
}
// Hacked by Chappell.Wat @ QuChao.com on 2008-10-14 end
这样就大功告成了……
自动判断系统 non-unicode 默认编码的方法我已经找到……
有待我测试后更新……
在此之前请各位还是手动修改吧……
@081015 更新:
我今天测试的时候发现……
某些情况下 Firebug 的代码并不能完全处理 UTF8 的 BOM 头……
所以我们再写一段代码来自己清除它……
打开 profile\extensions\firebug@software.joehewitt.com\content\firebug\lib.js ……
搜索:
var segments = [];
在其下方添加代码:
// Hacked by Chappell.Wat @ QuChao.com on 2008-10-15 start
var fileLen = stream.available();
if ('UTF-8' === charset && fileLen > 3) {
var bom = sis.readBytes(3);
if (String.fromCharCode(239, 187, 191) !== bom) {
segments.push(bom);
}
}
// Hacked by Chappell.Wat @ QuChao.com on 2008-10-15 end
不过这样做是否会有什么副作用我暂时还不知道……
是否修改就看你个人选择了……
最后……
为懒人们提供修改完成的版本……(v1.2.1)
不堪乱码困扰的你一定要下载……
Bug 我也会提交到 Firebug 的官方讨论组……
希望以后不用劳烦我们自己修改就能避开这种恼人的问题……
【更新记录】
[081015]: 提供 1.2.1 版本;
[090219]: 更新至 1.3.2 版,并增加供 Firefox 3.1+ 使用的1.4.0a12 版本;
【下载链接】
Firebug v1.3.2 for Firefox 3.1-:
国外: http://www.quchao.com/projects/mozilla/firefox/extension/firebug-1.3.2-fx_fixed_by_quchao.xpi
国内: http://vip.yyjoy.com/chappell/mozilla/firefox/extension/firebug-1.3.2-fx_fixed_by_quchao.xpi
Firebug v1.4.0a12 for Firefox 3.1+:
国外: http://www.quchao.com/projects/mozilla/firefox/extension/firebug-1.4.0a12_fixed_by_quchao.xpi
国内: http://vip.yyjoy.com/chappell/mozilla/firefox/extension/firebug-1.4.0a12_fixed_by_quchao.xpi