CSS3 中增添了对分栏排版的支持,这个我很早就知道了,但是今天才发现 Firefox 和 Safari 3 已经实现了这个东西,真是惊天地泣鬼神… 测试一下~~
中文的:
英文的:
CSS3 中增添了对分栏排版的支持,这个我很早就知道了,但是今天才发现 Firefox 和 Safari 3 已经实现了这个东西,真是惊天地泣鬼神… 测试一下~~
中文的:
英文的:
可能是由于安在 x86 上的缘故,Safari 不太稳定,一打开某些中文网页就崩溃… 真不知道为啥在中国大家都不遵守 HTML 4 和 XHTML 1.0 呢~~~ 于是还是用 Firefox… 但是 Firefox 似乎对 OS X 的 Type1 字体有强烈的不满,不是显示一堆火星文就是显示成脚标/上标状… 搞得我看中文像看公式一样… 后来听说还有个 Camino,也是 Mozilla 的,会好一点,赶快安上,发现确实好一点,基本没有火星文,公式也比较少… 看截图:
![]() |
![]() |
Firefox | Camino |
我想出现这种鸟事是因为 Mozilla 们为了跨平台,搞了自己的字体引擎,不肯使用各操作系统自带的 API,但是对 Type1 支持又不好,不能正确读取字体中的某些信息,于是就出现了火星文和公式…
今天在网上乱逛,不小心看到一个自动代理配置脚本(就是传说中的 pac 文件),发现语法怎么就和 Java 那么像呢~~?Google 一番之后发现其实 pac 就是一个 Javascript 函数,名叫 FindProxyForURL。它接收两个参数,url 和 host,都是字符串。url 是浏览器将要进入的地址,host 就是地址中 :// 和第一个 / 之间的部分。返回值为一个字符串,有三种情况:
"DIRECT""PROXY host:port“"SOCKS host:port“有了这些规则,我们就可以随意加入逻辑,一劳永逸地解决是否使用代理,何时使用代理,使用什么代理等一系列重大问题。比如,我要对 blogspot 使用72.14.219.190,其他某些倒霉的地址使用 Tor,剩下的碌碌无为的地址不使用代理,就可以用下面这个 pac。
function FindProxyForURL(url, host)
{
url = url.toLowerCase();
host = host.toLowerCase();
if(dnsDomainIs(host, ".blogspot.com"))
return "PROXY 72.14.219.190:80";
if(dnsDomainIs(host, ".wikipedia.org") ||
dnsDomainIs(host, ".technorati.com")
)
return "SOCKS 127.0.0.1:9050";
return "DIRECT";
}
Reference: http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html#dnsDomainIs。Netscape 真是有长者风范啊~~
看到了 Cheng Meng 的那个 Youtube downloader,由于对 Ruby 的无知,一点也看不懂,所以就参考 DownloadYoutube video with GAWK 用 python 自己写了一个。与 Cheng Meng 那个不同,我这个只负责把视频文件 url 打印出来。用法是 youtube-url.py video-id 所以要下载 id为 qNKtKm3SXvs 的视频,可以用这个命令
wget -O video.flv `youtube-url.py qNKtKm3SXvs`
youtube-url.py 的代码:
一个在 Wordpress 中使代码加亮的办法,需要激活 MyCSS 插件,并且保证 WP Lightbox 2 插件是禁用的。
写一段程序代码(我是写的 C++),尽量包含最多的语法元素,然后把代码给 htmlize 了(可以用 Emacs 的 htmlize.el 或者 Vim),这里有一个要求,就是生成的 html 必须是 CSS 与 <pre> 分开的,CSS 在 <head> 里, <pre> 在 <body> 中,然后把 CSS copy 到 MyCSS 里。
以后贴代码的时候,只要用同样的方法生成 html,然后把那个 <pre> 贴到 post 里就行了。还有一点需要注意,MyCSS 会生成一个 my.css 放在 blog 的 <head> 里,位置是比较靠前的,在我这里比 Coolcode 和 SyntaxHighlighter 都要考前,所以 my.css 里的内容可能会被覆盖掉。
测试:
;; =============== Unfill-buffer ===============> (defun unfill-buffer () “Unfill current buffer.” (interactive “”) (setq m (point-marker)) (beginning-of-buffer) (while (re-search-forward “\\\\([^ ]+\\\\) * *\\\\([^ ]\\\\)“ nil t) (replace-match “\\\\1\\\\2″)) (set-marker m 0 (current-buffer)))
Recent Comments