Archive for December, 2005

Futurama

Wednesday, December 28th, 2005

上周开始在Channel Ten发现了一部很有意思的动画片”Futurama” (读音future-rama)。有Future,自然是未来世界发生的故事--Fry,一位20世纪的年轻人,在30世纪的冒险经历。这部动画片是The Simpsons的制作班底制作的。
其实平时看电视挺少的,主要原因还是没有字幕看不懂。(#_#,所以很想买一台有Teletext功能的电视,就是那种可以显示字幕,主要为听力残障人士使用的。) 可能是这部动画片主要是科幻为主,所以我除了能听懂外,还能笑出来 :) (Simpsons就是以生活化内容为主,所以虽然也不难听清,但是不容易理解里面的笑料。)
今天看的这集(Season 1 – EP.8 A Big Piece of Garbage)讲的是,20世纪的纽约是世界上最脏的城市(嗯,他们没来过中国呢),垃圾遍地,后来人们将所有的垃圾收集起来,用火箭把这个大垃圾球发射到太空中去了,至此天下太平。可是30世纪,这个垃圾球,或者叫做垃圾小行星,又飞回来了,还有72小时就要撞上地球了。在此危机时刻,Fry一行人执行起了拯救地球的任务——在垃圾小行星上埋上炸药摧毁它。博士交给他们一枚25分钟时长的定时炸药。可是当他们启动定时器的时候,怪事发生了,那计时居然是这样变化的:
25:00 – 15:00 – 05:00 – 6h:00 – 8h:00 – Lh:00 …
6h:00 ? 这是什么? 原来博士把炸药搞反了--这是一枚时长为52秒的定时炸药!(没看懂吗?想想那个计时器的液晶数字倒过来的情形:D) 大家只好把炸药销毁了。没有炸药,任务失败,地球危在旦夕。(”欢迎”队伍的旗子变成了 Welcome back, Winner! Loser! )
另一名博士在汇集了New New York(30世纪的纽约就这名)的精英研究人士组成团队,可研究后还是没有什么法子解决(值得一提的是,这个研究团队还特意强调华人的比例,看来在美国华人做研究的精英不少)。 在此千钧一发之际,Fry想出了一个以毒攻毒的法子,大家搞一个更大的垃圾球把原来的那个顶回去… 可是30世纪的众人压根就没有“乱丟垃圾”这一概念,于是Fry又紧急搞了一次动员,教大家如何乱丟垃圾——最终新的垃圾球发射成功,并改变了原来的垃圾小行星的飞行路线至太阳焚毁了,地球又一次得救了。可是这个新垃圾球会在40世纪重新回归撞击地球的…
这就是这部片子中的一集,不过涵盖了它的特点--尖锐的讽刺幽默和对各种老电影的模仿搞笑,我们屋子的全体成员都对这部片子乐此不疲(如果读者你刚巧也在墨尔本的话,别忘了周三,周五 8:00pm 锁定Channel Ten观看:D)。可惜的是,尽管这部剧集获得了多次艾美奖等殊荣,仍然因为创作团队和东家Fox不合(这部片子戏称其为30世纪Fox公司),从1999年至2003年,这部剧集在拍摄了5季72集之后停掉了。不过杰出的内容让它的DVD销量一直居高不下,所以有可能复活也不好说。
因为在国内没有引进过,(香港曾经播出过,译名为”乃出个未来“),所以在网上见不到下载,但是前两天圣诞购物的时候在HMV看到了DVD,全套4季(DVD也是完整的72集,但和Fox当时播出的顺序不同),将近150刀,等以后攒点钱再买喽 :)

摸摸 del.icio.us 的底细 :)

Wednesday, December 14th, 2005

今天居然遇到了 del.icio.us 的出错界面…(是系统保存有我的cookie信息的情况下访问首页时出现的,未登陆访问首页和访问自己的tag都没问题。) 然后我又很不厚道的在首页重新登陆一次,又看到一个出错界面 :D
Perl 的出错调试信息还真TNND详细,甚至看到了一小部分的源码 :)
总结得到以下信息:

服务器平台: Apache 1.3 (Mason在Apache 2下还不稳定)
使用语言: Perl 5 + Mason

尽管对Perl的了解还不多,但是之前也见识过了Perl + Mason的威力,据说这组合的企业级应用还挺流行的。
另外从代码中虽然还看不出所使用的数据库,(我个人估计是MySQL),但是从这么简洁的SQL语句中可以看出目前并没有使用多数据库负载平衡的技术。这么多的用户看来服务器得足够强大。
不过既然已经收归Yahoo!的旗下,Jeremy Zawodny的Perl + MySQL技术看来又有用武之地了 :)
我觉得这次出错及有可能是在进行类似Flickr那样的和Yahoo!的帐号整合的调试造成的。
下面就是详细的出错信息…

htaccess 学习笔记

Tuesday, December 6th, 2005

Apache的配置文件.htaccess是个难点,也是个重点。一直都没安下心来好好学学,甚至一直以为Redirect方法是属于mod_rewrite,用到的时候也都是糊里糊涂的。今天找到了一个很好的教程,一边学,一边写点心得。
updated: 不断修正一些小问题
Source: Comprehensive guide to .htaccess
Officical reference: Directive Quick Reference

继续研究podcast

Saturday, December 3rd, 2005

昨天在podlook提交我的这个锵锵三人行 podcast时,提交失败,提示feed验证失败。开始我还不信,都经过feedburner烧过了怎么还能出错呢? 找到feed validator验证,结果大跌眼镜,确实一堆错误,甚至还有一些很低级的,比如忘掉了在channel下的link这个必须的元素 :P。
今天找到RSS 2.0 Specification 和 iTunes RSS Specification仔细研究了一下,重新改写了RSS生成部分的代码。现在最终的RSS,包括iTunes的部分,已经完全是我自己生成的了,我关闭了Feedburner的SmartCast功能(自动生成iTunes相关标签的功能,但是对中文支持不好,下面详细说),它只起到RSS hub的作用罢了。源码我已经升级过了。下面写点感想,发点牢骚。
1. Specification很重要
昨天做的时候,我也只是马马虎虎的找来一个现成的带podcast的RSS文件,照猫画虎的套内容。虽然之后能通过iTunes订阅,但是问题不少。(我想起之前某blog提供商生成的RSS居然把plod RSS的网址都抄去了的丢人事)。
下面说几个及其容易犯错的地方:

author元素(item的子元素)的内容是email: windix@douzi.org (Windix Feng),类似的还有managingEditor和webMaster(channel的子元素)。
enclosure元素的三个属性值都是必选的!其中的length值是文件大小(bytes),而不是时间长度。(昨天发现imboke.com的RSS中把length值忘掉了)
pubDate元素的格式为RFC 822,即类似”Wed, 6 Jul 2005 13:00:00 PDT”这样的。(车东曾经发现一些中文汉化的Blog软件把星期Wed也汉化了造成的问题)
RSS 2.0 Specification对内容没什么要求,遵守XML规范就OK了;但是iTunes RSS新增加的内容是有要求的: 编码必须为UTF-8方式;所有的值必须为文本,不能是HTML;除了itunes:summary可以容纳4000个字符外,其它的元素内容最多255个字符。在它的文档里面特意重新强调了XML命名实体(named character entites)和HTML命名实体的区别。我在新版的build_rss.php中写了个函数mrip()来去掉锵锵三人行介绍文字中出现的<a>、<p>和<img>这三个HTML标签。
guid元素是控制内容的唯一性的。我升级的时候更改了这个guid,结果iTunes就出来一组重复的节目:P。

经过这些改进,现在已经顺利的通过了RSS Validator的验证服务了:)

2. Feedburner的中文支持还是有问题
FeedBurner虽然能够处理中文的Feed,不管是GB2312的还是UTF-8的,但是有一些小功能还是不行。比如昨天遇到的通过它提供的SmartCast功能,我输入的中文内容转换出来就变成了一堆????了。
3. podcast目录服务
podcast做好了,当然下一步就是推广了。我尝试了一下几个:
imboke.com – 播客天下
这个我早就知道了,因为之前订阅的”有一说二”就是它们提供的服务。可是发现这个是一个podcast的服务提供商,它提供的目录服务也只是面向它下面的podcast。没戏了。
podlook.com – 菠萝网
提交成功。整体感觉还不错。节目连接
podcasts.yahoo.com – Yahoo! Podcasts
提交过了,不过还搜索不到。感觉对中文的支持好像不太好。
iTunes podcast directory
这个只能用iTunes浏览,我也提交过了,应该近期就能搜索到了吧。
4. 仍然需要改进
最令我感到遗憾的是iTunes下面的podcast图像仍然显示不出来。我已经按照标准做了(300×300大小,JPG格式),元素也正确,可是仍然不对。只好暂时放下等以后改进了。唉,浪费了我重新制作的图像(还是用不惯gimp,最后用Macromedia Fireworks做的):

iTunes的RSS播放控制功能还是很强大的,通过RSS,不光频道,而且每个节目,节目的每一段都可以指定一个图像来代表,还有段落的时间控制功能,看一些iTunes上面的官方节目就知道了。不过方法似乎在Specification里面没有提到。:(
而且iTunes支持的enclosure中居然还提到了pdf ? (m4a, mp3, mov, mp4, pdf) 难道是广播书用的?

锵锵三人行 podcast 来了!

Friday, December 2nd, 2005

我制作了凤凰卫视的王牌谈话节目”锵锵三人行”的podcast,这下终于可以用ipod订阅收听了:)
节目来源为”凤凰网 – 凤凰之声“提供的免费音频,不过是mms协议的在线收听,我用mplayer将流dump下来(暂时在Linux下只有这个方法好用)为wma文件,然后还是用mplayer转成wav文件,最后用lame转换为mp3文件。RSS Feed是用php分析抓取凤凰网的介绍内容得到的,使用了curl库读取网页,iconv库转换内容为UTF-8编码。现在所有的工作都可以命令的方式执行了,所以进一步测试后使用服务器的cron功能每日定时制作就可以了,整个过程都在Linux平台下完成 :)
主要的转换部分的代码9月末的时候就写好了,今天主要是用PHP写了生成RSS Feed的部分。因为这个方法有一定的通用性,等我把cron部分搞定就把代码公开。
update: 源码下载
简要说明:
fetchmms 这个bash脚本用来完成获取wma -> wav -> mp3的过程,使用格式:
./fetchmms mms://www.douzi.org/test.wma data/test.mp3
update.php执行检查更新和更新数据的任务,它会调用 build_rss.php (更新rss) 和 fetch_file.php (更新mp3文件) 。配置信息写在 config.php 中。为了方便,我没有使用数据库,所有的资料存放在一个名为data文件的文本文件中。
cron使用也很简单: “crontab -e”输入:
02 1,13 * * * /usr/local/bin/php /home/windix/srx/update.php
代表每天的1:02和13:02两次尝试更新
锵锵三人行podcast订阅
PS. 凤凰网确实很为用户着想,自从有了凤凰宽频开始就提供坚持提供免费的锵锵三人行音频。但是mms在线收听的方式确实有很多不便之处,特别是有ipod用之后,弄这么个服务的念头有了很长时间了。不知道凤凰网什么时候能开窍,提供官方的podcast服务呢 :D 它那么多的节目源,在video ipod市场肯定有前途的。也许中国ipod用户太少是一个很大的门坎?