六月 19

GFW 开始识别 WEB 代理

之前提到用 HTTP 中转的办法解决了评论的问题,今天发现 Blog 上所有的评论又失效了…… 开始以为是因为页面直接引用了 www.blogger.com 域名的某些内容而导致撞墙,但仔细分析后发现,我的 HTTP 中转直接不能访问了,而且之后我的 HTTP 中转程序所在的域名也会在一小段时间内无法访问…… 但同时,用该中转能够访问原本没有被封的内容,比如 Flickr……

考虑到传入的目标 URL 参数是用 Base64 和 URL Encode 方式处理的,不存在任何加密,而且这和大多数的 WEB 代理相同,所以推测是现在 GFW 能够识别用 Base64 编码的内容,如果该内容刚好是被屏蔽的网址,则阻拦该 HTTP 请求,并且屏蔽该请求所在的域…… 从而让公众无法通过 WEB 代理访问屏蔽内容。

当然,解决的办法也简单,如果不能简单通过 Base64 decode 得到一个 URL,那么它也就无从判断是不是被屏蔽的网址了……

我起先想直接把原网址按位取反再 Base64 就行了,结果同事说我作为一个 IT 人士这么干太低级了…… 他们说用 RSA 吧,但是也犯不着这么兴师动众吧……

还是 Liuming 小弟比较聪明,提供了一个比按位取反高级,又比 RSA 简单的办法,那就是……

两次 Base64…… >.<&quote;

六月 04

Google 邮箱收到 Bing 发来的邮件

今天早上 Google 邮箱收到 Bing 发来的题为“Discover Microsoft’s new Search services”的邮件,声称微软发布了新的搜索引擎服务,并提供了新的 webmaster 工具 www.bing.com/webmaster

然而,由于众所周知的原因,Bing 在当下无法访问,微软在这个时候让 Bing 上线原本已经不合时宜,现在又在这个把邀请邮件发到 Google 邮箱,提供一个无法访问的链接,实在是为微软感到可惜。

既然如此有诚意,还是用代理打开来看看吧。从界面和内容上看,与微软先前的 Live Search Webmaster Center 如出一辙,加上里头已经有了我两个 Blog 的 Sitemap 信息,可以看出这个 Bing 就是从先前的 Live Search 改头换面升级而来。这大概也是为什么 Bing 上线第一天就能够搜到“月蝎研究”和我的另一个 Blog “今日无大事”。

Bing Webmaster Center
微软新推出的 Bing Webmaster 工具

开始以为微软的邮件发到 Google 邮箱是为了故意挖取 Google Webmaster Tools 的用户,但后来发现由于 Bing 就是原来的 Live Search,而早先我已将自己的 Google 邮箱登记为 Live Search Webmaster Center 的联系邮箱,所以这次是我自己以小人之心度君子之腹了。

另外,微软的邮件中,还提到了 Bing 搜索引擎相关的 API www.bing.com/developers 以及提供支持的讨论社区 www.bing.com/community,有兴趣可以看一下。

六月 03

某墙疯了

那墙一定是疯了…… Blogger 被封这个倒也在预料之中,毕竟这是常有的事,封着封着咱就麻木了。可是昨天开始 twitter.com、live.com、bing.com 都不能访问了,就连好不容易解封的 flickr.com 也在其列,直接导致我的 Blog 上的照片全是红叉叉……

可怜那 bing.com,前天中央电视台新闻还在大张旗鼓的给它做宣传,昨天刚上线一天,我想这两天人们应该是蜂拥而至来看一下微软这新一代和 Google 叫板的搜索引擎,正是保证稳定性争取良好公众印象的时候,结果就被封了。等过几个月解封的时候,不知道还有多少人记得 bing.com,也不知道中央电视台会不会配合微软再做一次新闻?

还有 flickr,害我不得不写程序把所有页面里的照片网址找出来,用 HTTP 代理的地址替换掉,才能保证网页上不是满目疮痍。不过也认了,反正不封从电信访问也爆满,早该改成这样了……

另外,昨天 home.live.com 也不能访问,但今天又恢复了,不知道是微软公关的效果还是刚好这个部分临时故障。home.live.com 这个微软基于 Live 的社交网络社区可以通过 Feed 和插件把 FaceBook、WordPress、Twitter、Flickr 等知名服务以及自己 Blog 的发布消息全部整合到一起,还是有点意思的……

墙疯了,网封了……

Update 2009/06/08 15:30:

从成都网通访问来看,Flickr 和 Bing 都已经解封了。据 Twitter 上有人说 Twitter 也解封了,但是我自己试了一下还是不行。

另 Blogger 和 Blogspot 仍然无法访问。

五月 26

评论功能修复

刚刚发现 Blog 的评论功能不能用了,提交后一直显示等待。查了一下,发现是 GFW 的问题。

自 5 月 16 日,Blogger 及托管站 BlogSpot 再次被封,导致域名 blogger.com 以及 blogspot.com 全部无法访问。而我的评论系统,是靠通过 Blogger 的 Feed 地址,由 AJAX 和 Blogger 之间通讯实现读取;由 AJAX 直接向 Blogger 的评论表单处理 URL 发送 POST 请求实现提交。这两项功能都是基于 www.blogger.com 域名的。前者所用的 Feed 地址由于先前早已被封,并通过朋友在 DreamHost 的主机上放了一个 PHP 的中转程序,所以评论列表功能一直可以用,但是评论提交是直接 POST 的,www.blogger.com 被封,所以评论自然就失败了。

没办法,刚刚改进了一下我的 HTTP 中转程序,实现了 POST 的功能,现在评论功能已经修复了。只是整个数据流程要经历“本地网页 » blog.windia.net » DreamHost » www.blogger.com » DreamHost » blog.windia.net » 本地”这样漫长的路径,因此提交评论可能需要数十秒的时间,但聊胜于无吧。希望 GFW 早日放过 Blogger,这样功能就能完全恢复正常了。

另外,修改了一下模板,把 blogger.com 上引用的 CSS 以及 JS 文件的地址都改由 DreamHost 上的 HTTP 中转读取,这样在打开 Blog 页面时,浏览器不用再等待这些文件的 HTTP 请求超时,速度应该能快不少。

四月 27

收缩 Outlook 的 OST / PST 数据文件

今天发现 Outlook 里一年多的邮件都没有存档了,数据文件 outlook.ost 已经涨到了 500 多兆,于是执行了一下存档操作。存档的 .pst 数据文件一下子多出了 300 多兆,但奇怪的是原来的 outlook.ost 文件却没有减少。

搜索了一下,找到了有关的信息。OST / PST 文件是 Outlook 的数据文件,随着收到新的邮件和保存旧的邮件,这些文件会越来越大,当永久删除邮件和其它内容时,空间就会被空出来,直到收到新的邮件,这些空间就又被分配使用。处于安全的考虑,这些空余的空间不会立即被释放。当空余的空间占到文件总量 20% 以上以后,Outlook 会自动在系统空闲的时候执行收缩操作。所以在我执行存档操作以后,原来的 outlook.ost 文件没有立即缩小。

如果要手动执行收缩操作,可以如下图提示操作:右键单击要收缩的数据文件对应文件夹的根目录,选择“Properties” » 点击“Advanced…”按钮 » 选择“Advanced”标签 » 点击“Offline Folder File Settings…”按钮 » 点击“Compact Now”

收缩 Outlook OST 文件

四月 22

[转]小姜杂谈:浅论英文字体

瘾科技上看到这篇文章,虽然寥寥几句,但是把字体的基本结构讲得非常清楚,因此特地摘录下来。另外由于原文可能是港台繁体中文的,用词和大陆简体中文不太一样,因此做了一些转换。

英文字体?反正就是在 Arial 和 Times New Roman 之间选一个嘛,偶尔想俏皮一点的话,就拿 Comic Sans MS 出来就好了,哪有什么值得写一篇文章的?小姜完全不是这方面的专家,但收集各种字体也算是小姜一个小小的爱好,所以多年来也学到了不少东西。虽然大家用到英文的机会不大,但其实英文字体里好玩的东西还不少呢!让小姜带大家一起来看看吧……每个字体都有五条线……

字体的五条线 / Fine lines of a font

这五条线,决定个一个字体的性格。Mean line 和 Base line 之间的距离叫做“x-height”,这个高度是一个字体中的英文字母 x 的高度,也是没有向上、向下伸展的部份的小写字的主体高度。Base line 向下有一条 Decender line,是 g, j 之类有向下伸展的笔画的字母延伸的极限。反之,向上延伸的部份,包括 f, b 的字母向上延伸的笔画和 i, j 的点的极限,则称为 Ascender line。最后还有一条 Cap line 是大写字母向上延伸的极限,在许多字体中(像上面的 Times New Roman 就是)Cap line 的高度会略低于 ascender line,但也有一样高的。Mean line 和 Ascender line 之间的距离叫“Ascender”,Base line 和 Decender line 之间的距离叫“Decender”,Base line 和 Cap line 之间的距离叫“Cap height”,而 Ascender line 和 Decender line 之间的距离则叫做这个字体的“Point size”,也就是我们在选字号的时候说的几 pt。

为什么说这五条线决定字体的性格呢?通常 x-height 占 point size 比例愈高的字体,放在内文里的时候看得比较清楚,但放在标题就很难看。反之,x-height 占 point size 比例小的字,就比较适合当标题。以下面这个例子,小姜找了两种类似的字体,但左边是设计来当标题用的(Garamond),而右边则是做内文用的(Times New Roman)。注意到 x-height 的分别了吗?

Garamond V.S. Times New Roman

应用在真实世界,会变成这样:

Garamond V.S. Times New Roman

有注意到下面的一组字看起来比较大吗?实际上小姜是用一样的 pt 数下去设的(大字是 96pt,小字是 12pt),为什么会这种差别?因为先前说过了,pt 数管的是字体从 Ascender line 到 Decender line 之间的距离,所以当 x-height 比较短(即 ascender 和 descender 比较长)的时候,通常字体设计师会减少每个字母的宽度,以避免字母变形。直接的结果就是虽然 pt 数一样,但 x-height 短的字会看起来比较小。下面是个比较极端的例子:

Park Avenue V.S. Tahoma

左边的字体是 Park Avenue,右边则是常见的 Tahoma。在设定上两者的 pt 数是一样的,但右边的 Engadget 看起来显然大多了!

其实字体和排版当中能讲的题材还有不少,如果有机会的话,再来和大家分享啰!

另外,在文章后面的评论中,有网友推荐了一个用中文写的关于字体排版印刷的 Blog:Type is Beautiful / 字体排印,内容专业、丰富而又深入浅出,不管是编辑、平面设计师等专业人士用来参考或者非专业人士用来拓宽知识面,都非常值得推荐。
四月 20

Blogger 的评论 Feed 中去掉了 URI

最近发现每篇文章下方评论的作者都没有了 URL 链接,即使是我自己确认添加了链接的回复评论也是如此。

因为评论的现实是利用 Blogger 基于 JSON 格式的 Feed,于是仔细研究了一下 Blogger 给的 Feed 的内容,发现 author 字段里面的 uri 属性被去掉了。

评论链接有效的时候,Feed 中关于作者的 JSON 代码是这样的:

"author":[{"name":{"$t":"Gregory"},"uri":{"$t":"http://blog.windia.net"}}]

而现在改成了:

"author":[{"name":{"$t":"Gregory"},"email":{"$t":"noreply@blogger.com"}}]

其中无论是谁评论,email 字段的地址一律都是 noreply@blogger.com。另外也看了 XML 格式的 Atom 输出,uri 属性也同样被替换成了 email

Google 会做如此变更,目的还不得而知。如果是和反垃圾评论信息有关的话,链接的内容仍然可以放在评论正文中。

另外,blogger.com 网站上的评论页面仍然可以正常显示作者的链接,因此这个信息应该还是存在于 Blogger 的数据库中的,只是没有在 Feed 中输出。

Update at 18:41 on 2009/04/20:

下午发现这个 Blog 的评论作者链接显示正常了,而我的另一个 Blog 今日无大事还是没有链接,打开 Feed 的内容下来分析,发现 author 字段的内容已经又更新了,新的内容为:

"author":[{"name":{"$t":"Gregory"},"uri":{"$t":"http://blog.windia.net"},"email":{"$t":"noreply@blogger.com"}}]

目前是 uriemail 都有了。接下来怀疑另外一个 Blog 显示不正确是缓存问题,没道理用同样的 Feed 接口,不同的 Blog 站点内容格式不同。通过添加一个无意义的附加参数改变 Feed 的 URL,则两个 Blog 都能正确显示评论作者的链接了。之前缓存问题,是由于国内目前 Feed 的地址被墙,我通过另外一台在国外的服务器帮助取得内容再 forward 过来,缓存在那边,所以刷新无效。

看来这应该是一个 bug,只是被 Blogger 很快的修复了…… 在 Known Issue 网站上并没见到相关的说明。

四月 17

SAMSUNG 手机安装 MIDlet 出现“内容不匹配”

昨天通过 OTA 方式从 Apache 服务器上在一部 SAMSUNG SGH-L760 上安装 MIDlet,下载完 JAD 确认安装,开始下载 JAR 之前,手机报错说“内容不匹配 (Content mismatch)”。同样的 JAD 和 JAR 在另外一个主机上就能成功下载安装,而且这一组 JAD 和 JAR 在同服务器上另外一个 HTTP 服务应用上也能成功安装,一时觉得纳闷。

开始怀疑是端口问题,因为出现安装错误的 Apache 服务器是运行在 82 端口上的。但是同样是从这个 Apache 服务,另外一部 SonyEricsson K610i 就能正常下载安装,而且如果是端口问题,没道理 JAD 能下载而 JAR 不能。

然后开始怀疑是 JAR 文件的 Content-Type 问题,因为在确认安装的界面上,有显示应用类型是 application/vnd.sun.j2me.java-archive。打开 Apache 的配置文件 /etc/httpd/conf/httpd.conf,发现没有定义 .jad.jar 文件的语句,于是添加如下两行:

AddType text/vnd.sun.j2me.app-descriptor .jad
AddType application/vnd.sun.j2me.java-archive .jar

然后重启 Apache 服务,问题解决。MIDlet 成功在 SAMSUNG SGH-L760 上安装了。

二月 06

Erlang 程序设计

过完年后接了新的工作范畴,要接触到 Erlang 语言。虽然我可能不会直接参与 Erlang 的开发,但是作为我负责的内容,必然是要了解的。

Erlang 程序设计

想到前段时间在大笨熊的 Blog 上看到过一篇关于 Erlang 书籍的文章,去找了出来,可巧是他认识的人翻译的。到卓越上搜了一下,竟然只有这么一本书,既然没得选,那就它吧……

等我买回来看了再分享跟多的心得……

十二月 05

Google Friend Connect 开放注册

前天 Google 官方 Blog 报道,发布了其 SNS 项目 Google Friend Connect大笨熊的 blog 也提到这条消息。今天收到了 woainiuniu 的邀请,在这里谢过了。现在似乎已经开发注册了。

Google Friend Connect 可以让网站管理员在他们的网站增加一些社会性的功能,允许访客注册并加入到网站,显示自己的头像图标,查看其他已经加入的访客以及他们在 Friend Connect 上的活动。全部工作只需要简单复制粘贴几段代码即可,不需要复杂的编程技术。网站应用了 Friend Connect 以后,可以给网站添加各种 Widgets 实现评论、留言、投票等功能,这种类似的小工具也在不断的增加中。

本站已经注册并添加了 Friend Connect 功能,左边栏较下方的“Friends”便是,欢迎各位朋友加入本站。如果您自己也有一个 blog 或者网站的话,也可以加上这个简单易用的 Friend 功能。

在左边栏较下方的“Friends”区域点击 'Join This Site' 按钮即可通过 Google Friend Connect 加入本站

在左边栏较下方的“Friends”区域点击 ‘Join This Site’ 按钮即可通过 Friend Connect 加入本站

Blogger 用户如何安装 Friend Connect?

如果你用的刚好是 Google 的 Blogger 而且是 Blogspot 或者 Custom Domain 用户,那要如何安装 Friend Connect 呢?这看起来是不可能的。因为安装过程要求用户上传两个 html 文件到网站根目录下,而我们显然不可能直接上传文件到 blogspot 服务器。

但事实比我们想象的简单,会有这个疑问是因为 Friend Connect 那个安装界面解释的不够清楚。事实上,当你在注册并安装 Friend Connect 时,如果提供的网站地址是一个 BlogSpot 网站,或者其 Custom Domain 的网站,那么这两个文件就会被自动上传。也就是说你可以直接跳过这一步,什么都不用做,在 finalize 的时候直接就通过验证了。

什么?你问这么隐秘的事情我是怎么发现的?呵呵,好吧,其实我是 Google 到了这篇文章:How to install Google Friend Connect on Blogger

正在加载在更多文章…