Monday, September 21, 2009

用 Feed 实现 Blogger 分页

使用 Blogger 建博客,一个很不爽的问题是在首页下方没有分页功能,这会直接导致有兴趣的读者没有办法方便的翻阅以前的旧帖子;而 Blogger 提供的模板,无论是老的 Template,还是新的 Layout,都没有相关的标签来实现这个功能,因此要加上这个功能,就只能继续 hack 了。

这两天利用 Blogger 的完整帖子的 Feed,配合 PHP 实现了这个功能。思路为:
  • 读取原始的 index.html,把帖子的部分去掉,也就是 <Blogger>...</Blogger> 这段内容
  • 读取以下 Feed 地址,解析出文章的日期、时间、标题、正文、标签等,按照原来模板的格式,用 PHP 输出到原来 index.html 放文章的地方
    http://www.blogger.com/feeds/[blogId]/posts/full?max-results=[step]&start-index=[startIndex]&orderby=published
  • 根据当前页码以及总帖数计算分页,在页面底部添加分页链接
  • 如果有条件,可以利用 .htaccess 文件,将分页的 URL 由原来的
    xxx.php?page=x
    形式替换成对搜索引擎更友好的
    /index/x
    形式

如此一来,就可以在自己不存储任何文章数据的情况下,实现分页功能。当然,直到目前,以上的 Feed 地址仍然是被墙的,需要翻墙或者使用 HTTP 代理才能成功地获取内容。

Sunday, August 16, 2009

phpMyAdmin 使用时 Apache 崩溃问题

最近笔记本的硬盘时常怪响,因此换了一块硬盘以防万一,系统重装了,因此开发环境 PHP + MySQL + Apache 也需要重搭。因为已经做过很多次,做起来轻车熟路,然而装好 phpMyAdmin 以后,在登入界面输入用户名密码点登入,居然弹出一个 Windows 应用程序进程崩溃的 report 对话框:Apache 崩溃了……

重新试了几次,仍然如此,换以前硬盘上的 PHP 目录(保证 PHP 的配置和以前一致),无效;换 Apache 版本,无效;换 phpMyAdmin 较早的可以正常使用的版本,无效;用 MySQL 官方的 GUI 客户端登录,可以读写数据,因此不是 MySQL 的问题,于是我就没辙了……

上 Google,发现很多人都有类似的问题,最早的帖子甚至可以追溯到 2003 年,然而没有看到一个有用的解释或者回答,但终究找到一个网页提到架设 PHP + MySQL + Apache 的时候,要保持 MySQL 的客户端连接库 libmysql.dll 版本一致,最好使用 PHP 自带的 dll。

想到这次设置 PHP 时,没有像以前把所有的 dll 都拷贝到 %windows_root%\system32 下,而只是直接的把 D:\PHP 加入到了 PATH 环境变量中。于是马上照以前的办法,把 PHP 包中的相关 dll 都拷贝到了 system32 下,再启动 Apache,进 phpMyAdmin,问题解决了。

用了一会儿,问题有时候仍然存在,于是又把 %Apache%\bin\libmysql.dll 删除(或改名),则问题解决了。但是在 phpMyAdmin 登入后,首页下方会提示说当前使用的 MySQL 客户端版本和服务器版本不相符,可能导致不可预料的结果。

如果各位对此问题有没有更透彻的解释以及彻底的解决办法,望不吝赐教。

Update 2010-02-10:

这个问题似乎和 MySQL 的版本有关。之前出现此问题的 MySQL 版本是 5.4 beta。最近在新机器上同样的架构和设置,只是 MySQL 版本为 5.1,没有出现该问题。

Wednesday, July 08, 2009

Google 宣布涉足操作系统:Chrome

Google Chrome
Google 官方博客今天早些时候发布文章,Introducing Google Chrome OS,Google 黑板报随后在下午也发布了此文的中文翻译:谷歌 Chrome 操作系统

Google 自九十年进入人们的视线,到现在将近二十年时间,从名不见经传的小公司,已经成为世人瞩目的具有极大影响力的互联网巨舰。坊间曾一度传闻 Google 终将涉足操作系统领域,而前两年推出 Android 手机系统也被认为是对涉足操作系统的投石问路。而现在,终于为我们揭开了这层面纱,比想象中要来的早的多,快的多。

如果说 Chrome 浏览器足以让微软不安的话,那么 Chrome 操作系统对于微软可以说是一枚重磅炸弹。Google 在行业一项有着较好的声誉,其产品也从来不缺乏用户、支持者乃至狂热者。有人说 Google 越来越巨大,并不容乐观,因为极有可能发展成为第二个微软,最终变成另一个邪恶的垄断帝国。但就目前的形式来看,在微软的 Vista 叫好不叫座,强行推行仍无人问津,仓促推出 Windows 7;IE 系列一代不如一代,市场占有率持续下滑的今天,如果有另外一家公司为我们提供更有竞争力的产品、更新的理念、甚至一场革命,未尝不是一件好事。

当然,以上的担忧也未必就是杞人忧天。这就像一位骁勇善战的将军,为广大民众打败入侵的外敌,带来和平与繁荣,集权利、荣誉与威望于一身,最后到底是成为独裁的暴君,还是继续服务于人民的福祉?期待 Google 能够给我们一个正面的范例。

Gmail 结束 Beta

Gmail Out of Beta
Google 官方博客及 Twitter 上的 @google 昨晚都发布消息,称 GmailGoogle DocsGoogle Calendar 以及 Google Talk 结束 Beta。“Beta” 标记将从这些产品的 LOGO 中去除,但无论是否 “Beta”,Google 都将继续对这些 WEB 应用程序进行创新和改进。

记得自己在 Gmail 刚推出的时候,就收到邀请注册了,并一度做为自己的主要私人邮箱使用,已经有很多年了。(据 Solidot 文章,Gmail 于 2004 年 3 月 31 日推出,所以到现在已经有 5 年多了。)

一项以及多项相关产品有如此长的 BETA 期,这是很少见的。加上我所在公司的其它部门曾经做过 Android 平台 API 的单元测试工作,据说该平台自推出后的很长一段时间,该 API 中 bug 非常多且 API 文档混乱。另外据我多年使用 Blogger 作为博客平台的经验,其 bug 之多也是在公众运营的产品中遥遥领先的。

尽管 Google 的创新能力和“不作恶”是另世人和广大互联网用户称道的,但以上事实也让我非常怀疑 Google 内部的代码质量控制。现在此四项产品的最终结束 Beta,应该可以说对 Google 的形象起到了长远的积极作用,也希望 Google 能为我们提供更多更稳定更惊艳的互联网产品。

Tuesday, July 07, 2009

让 Google 为你导游

瘾科技消息Google 实验室最近推出新服务 - Google City Tours

这个服务利用 Google Map 作蓝本,在 Google Map 上加入了旅行导航。你可以在一个城市中加入不同的景点,然后让 Google 作导游,为你度身订造旅行路线。

Google City Tour 已经预先准备一些数据,像博物馆的开放时间、脚程时间等等。基本上可以帮你规划一条不错的路线,对背包客来说是一个不错的选择。因为利用 Google City Tours 来作一个蓝图,再更改自家行程,较从零开始更方便。

现在 Google City Tour 只有一些欧美主要城市的数据,未有加入亚洲城市。而且预设的建议景点也是博物馆,要加入其它的地点要手动加入。

看到这则消息,首先想到的就是今年 3 月在欧洲出差时,去巴塞罗那和罗马旅行的事情。由于人生地不熟,加上语言也不怎么通,所以在订好机票和旅店后,自己也花了大量的时间做功课,为紧凑的周末做好安排。当时如果有这项服务就好了,可以省去很多人工的查找和计算工作。

不过,从经验上来看,这项服务要能在手机上使用才方便。在欧洲城市旅游,如果不是跟团的话,通常都是徒步加市内公共交通的方式,很难想象时不时的掏出笔记本查看下一个景点的地点和方向。目前也还不太清楚这项服务是否能够用在手机上,不过倒不妨说说自己当时的解决方案。

先在 Google Maps 和 Google Earth 上实现查找了所有著名景点的位置并安排了路线,然后存成 KML 文件,并把文件放到可以公共访问的网站上。通过 KML 文件的 URL,可以把景点的位置和路线导入到 Google Maps,并以此共享给同行的其他旅伴。最关键的,是要有一部支持 GPS 的手机,安装好移动版的 Google Maps 后,可以通过 URL 打开之前准备好的 KML 文件,从而把路线安排导入到手机,这样,在旅行的时候,便可以随时拿出手机查询当前的位置,行进方向,以及要去的景点所在的位置。

当然,纸质的地图也是非常必要的,原因在于其一手机屏幕一般不够大,很难有个总体的概览,第二,最重要的,手机地图上的地铁和公交站信息可能不太完整,而通常当地提供的旅游用地图就有比较详细的公交地铁站的位置以及另外的线路信息,这对于徒步自由旅行来说,是非常方便的。刚出地铁站,可能一时很难搞清楚位置和方向,这个时候再掏出手机上的 Google Maps,通过 GPS 定位后,就知道自己的位置以及该行进的方向了。

所以强烈推荐纸质传统地图加手机 Google Maps 来配合使用,不过记得要给手机充足电,有必要的话另备一块电池。GPS 和 GPRS 同时开启,可是很耗电的。

Wednesday, July 01, 2009

<Blogger> 模板标签生成奇怪 Javascript

昨天由于有新的评论,有一篇帖子的页面被重新生成,然后页面就出现了一些奇怪的问题。仔细查看源代码后,发现在生成页面的时候,模板里面所有的 </Blogger> 标签的画面,都被加上了一段奇怪的 JavaScript 代码:
<script type="text/javascript" src="http://www.blogger.com/static/v1/common/js/327583163-csitaillib.js"></script>
<script>if (typeof(window.attachCsiOnload) != 'undefined' && window.attachCsiOnload != null) { window.attachCsiOnload('ext_blogspot'); }</script>

重新发布了几次仍然是这样,因此推测可能是 Blogger 做了更新。在 Google 上搜索了一下,发现很多 Classic Template 的使用者都发现了相同的问题,并且报告在 Blogger 的 Google Groups 帮助讨论组,如这篇帖子,还有这里,以及这里。虽然有很多网友提出了各种临时的解决办法,但看起来都不尽如人意。

个人认为 Blogger 这个新的功能添加得不够专业。先且不论是什么功能,光是直接在</Blogger> 标签后加入 <Script> 就不可取,因为 Blogger 这一对标签里面包括和帖子相关的数据,页面上凡是需要帖子标题、ID、时间等相关信息的地方都会用到这一对标签,它可能出现在标题、正文甚至其它的 JavaScript 中(例如我就需要通过这对标签取得帖子的 ID 并作为参数传给 JavaScript 函数)。

目前暂时通过人工编辑 HTML 去掉了相关的 Script,如果近期 Blogger 不能解决这个问题的话,就只有另外写 PHP 程序来自动处理了。

Update July. 2, 2009:

这篇帖子中一位来自 The Blogger Team 的用户提到,这的确是他们发现的一个 bug,将很快被修复。让我们拭目以待吧……

Update July. 8, 2009:
这位来自 The Blogger Team 的用户提到,他们已经在 Blogger 的 Known Issues 网站上记录了这一问题以便跟踪。从该帖内容来看,他们只认为问题只出在不该在 <title></title> 之间输出 script 内容。难道他们不知道这一对 <Blogger></Blogger> 还可能用在用户自己定义的 JavaScript 中吗?

Friday, June 19, 2009

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…… >.<"e;

Thursday, June 04, 2009

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 “今日无大事”。


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

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

Wednesday, June 03, 2009

某墙疯了

那墙一定是疯了…… 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 仍然无法访问。

Tuesday, May 26, 2009

评论功能修复

刚刚发现 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 请求超时,速度应该能快不少。

Monday, April 27, 2009

收缩 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 文件

Wednesday, April 22, 2009

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

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

英文字体?反正就是在 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 / 字体排印,内容专业、丰富而又深入浅出,不管是编辑、平面设计师等专业人士用来参考或者非专业人士用来拓宽知识面,都非常值得推荐。

Monday, April 20, 2009

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 网站上并没见到相关的说明。

Friday, April 17, 2009

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 上安装了。

Friday, February 06, 2009

Erlang 程序设计

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

Erlang 程序设计

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

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