Skip to content

单细胞剧情的Avatar

Avatar poster

Avatar是最近势头最劲的电影啦,再加上我对科幻题材的片子都情有独钟,且至今没看过IMAX,所以特别期待。不过在大陆首映的时间不太好,1月4号,刚好错过了元旦假期,不知道是怎么想的。还好天降瑞雪,于是以天气恶劣为由,不用去上班;不过即使是在工作日,电影院依然火爆无比。话说,北京的IMAX影院只有三家,按照屏幕大小分别是:中国电影博物馆、UME华星和石景山的万达。华星的IMAX场次不多,一天才四五场。本来打算直接远程购票了,没想到订票电话一直占线,网络订票被告知无法进行,无奈之下只有早早扒完午饭,跑去人肉买票。真是太不人性化了,是说以此增加付出成本,来区分对Avatar的热情程度?不过一到影院心里拔凉拔凉的,高高的显示屏上打出,白天的四个场次全满,只剩半夜12点的还有些座位;心想总不能白跑一趟,于是弄了张0点的票,就当作假期最后的疯狂吧。

半夜场也是爆满,目测90%以上都是二三十的年轻人,估计大伯大婶们也熬不起夜。观影效果不错,不知道是不是因为座位很靠后了,所以也不觉得27米的IMAX屏特别宽大,至少还没能占满我整个眼球 @@ 第一次戴眼睛看IMAX3D,的确立体效果明显,有种身临其境的感觉;尤其是描绘潘朵拉星球的瑰丽无比的森林景色,美轮美奂的圣树种子,轻灵强健的纳威族人,的确是让人叹为观止,这是一次无比酣畅的视听盛宴,也许从这方面来将,Avatar的确可以算作电影制作上的一次里程碑,我必须给他打满分。

不过Avatar的惊喜也到到此为止了,也许是我的期望过高,单从剧情上来说,Avatar只能算中等偏上的好莱坞商业片水准吧,可能比前段时间的《2012》稍微强点,但是比起《魔戒》、《星球大战》这种同是魔幻或者科幻题材的史诗巨制来说,简直差了不止10条街。就这么说吧,Avatar的情节适合单细胞动物去欣赏,从头到位就一条主线,没有其他暗线或者分支,所有的矛盾冲突就是人族和纳威族的争地斗争。完全比不上《魔戒》、《星球大战》,后者都是数条线索明暗交错,各种各样的人物粉墨登场,各方面的矛盾冲突数次交汇,这种剧情就类似金庸小说《天龙八部》那样,像一个炉子上烧着的水,越来越精彩,越来越沸腾。而Avatar里基本就是一些脸谱样的几个人物,基本看到开头就猜到了结局,只能评价为创新程度一般,让人有些味如嚼蜡。

在Avatar里能联想到其他一些电影和游戏,比如公司的负责人和雇佣兵上校,简直就是《异形》系列的翻版。纳威族人就是暗夜精灵化的虫族,因为他们栖身在一株参天大树上,喜爱森林,倡导人与自然和谐共处。他们非常注重精神的力量,但他们的机械工艺又很烂,还没到神族的水准,和土著人一样,所以差不多就是虫族的样子。而且纳威人也有一个精神的共同体爱娃,就和虫族的主脑一样,联系着所有纳威人的精神纽带。尤其最后主脑,也就是爱娃发威,我看到密密麻麻的虫族部队,包括小狗、飞龙、猛犸(请各自对应潘朵拉星球的生物)向潮水一般一波波冲击着人族部队的时候,俺的心突然激动了,这才是生命的残酷力量呀。突然有些可惜,拍这种残废marine搞定酋长女儿的经典狗血剧情,还不如老老实实以《星际争霸》为蓝本,那拍出的就是一副鸿篇巨制啊;可不比这光靠画面取胜的Avatar强多了?

就这样,为了争夺这颗富含矿产的潘朵拉星球,人类的一个远征军前哨在上校愚蠢的指挥下被纳威族吞灭了,但是人类贪婪的扩展欲望是无法就这样被浇灭的,人类对资源的掠夺是不会轻易停下脚步的。很快,在纳威人还未来得及消化完欢庆的盛宴时,一个整编的人类行星级巡航编队悄然出现在了潘朵拉星球上空,把战争的阴影重新投向了这颗童话般的星球。另一方面,主脑爱娃集千万代精神力量为一身,开始孵化更富有战斗力的纳威族人,以对抗人类的进攻,并且以强大的精神力召唤它的同盟的帮助,新的大战一触即发。这是Avatar下集剧透 :D

Tagged

大家一起来推

俺同学说得很经典,twitter被这么一封,更加代表一种文化了。由于twitter的100%的开放性,twitter已经衍生出非常多的有趣应用。twitter的口号也已经从展示大家在做什么,改成了“Share and discover what’s happening right now, anywhere in the world.”,这表明twitter正在超更有意义的方向前进,从大家谈论吃饭睡觉的垃圾信息广播站,变成了一个分享即时信息的巨大平台。

虽然现在twitter在国内被盾了,但是由于它的开发性,很容易构建其他的twitter中转服务器,所以GFW是无法通过封禁域名和IP来堵住twitter的消息广播的,比如访问本域名下二级子域名t,就可以访问twitter。当然,现在也可以通过修改hosts来访问twitter。

你可以使用web、PC客户端或者手机等各种方式来访问twitter。如果你在手机上使用twitter的客户端,那么Direct Message甚至可以完全代替短信了,而且Direct Message是保存在twitter服务器上的,只要有网络的地方你就可以访问。和twitter一起流行的还有URL shortening和图片存储服务,目前我觉得比较好用的是http://is.gdhttp://yforg.com。一般的客户端可以自定义这两个服务器,以及twitter的中转服务器。

twitter的手机客户端多如牛毛,这里我推荐两个iphone上的客户端,一款是Twitterrific,我觉得它比流行的Tweeite优越的地方在于打开的时候会有新消息提醒,但是这款软件是没有push notification的,另外一款是Twitbird,这款软件带push notification,不过有个不幸的消息,我在使用的过程中,发觉只支持未Jailbreak的iphone :(

总之,twitter可以超级方便的分享自己的状态,记录身边有意义的事件,配合手机客户端的话还可以即时分享拍摄的图片,更新自己的位置等等;利用@,retweet等功能,可以很方便和朋友联系,在自己的圈子里发布消息公告等等,这点和即将流行的Google Wave也有异曲同工之妙。而且这些功能都是twitter在这两三年的发展中逐渐演化而来的,100% open的twitter还在不断进化中,可以预料它在未来会更加有趣和精彩。而我们唯一所需要做的,就是加入twitter,越多的朋友加入,将有越多的信息分享,越紧密的联系沟通,让我们一起推吧。

我的twitter:https://twitter.com/erera
Continue reading ›

Tagged ,

在ubuntu上使用LaTeX

拜ubuntu的开发人员和apt所赐,现在在Linux上使用LaTeX已经变得非常方便了。只需要敲击如下命令就可以安装上texlive和中文支持了:

$ sudo aptitude install texlive latex-cjk-chinese

默认会安装arphic的几种中文字体。如果觉得不够漂亮,我这里有一些已经生成的中文字体包(水木TeX版的某大侠制作,适合打印,应该是我06年从他发布的某个包里提取出来的 ~110MB;如果你喜欢自己生成字体,参考附录第二篇文章),可以直接解压到HOME目录使用,包括了7种常用的中文字体:仿宋 fs, 黑体 hei, 楷体 kai, 隶书 li, 宋体 song, 宋体粗体 songb, 幼圆 you。使用有问题的话运行一下 update-updmap,更新目录信息。

安装完后,测试是否可以正确输出UTF8中文文档:

\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{UTF8}{song}
您好,texlive中文
\end{CJK*}
\end{document}

这里有几篇文章可以参考:

Tagged ,

ubuntu 9.04 jaunty desktop effect lag

最近在ubuntu下打开了composite显示效果,结果发觉在最大最小化和Alt-Tab的时候居然会lag几秒。心里郁闷,本子显卡是ATI HD3470,应该不会这样啊。于是放狗搜了一下,居然是个Xorg已知bug

对于ATI显卡,在Gnome、KDE或其他WM上,都有这个问题,本来Xorg早有patch了,但是ubuntu 9.04里似乎居然没有集成进去。可以在源列表里加入如下源

deb http://ppa.launchpad.net/ubuntu-x-swat/xserver-no-backfill/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-x-swat/xserver-no-backfill/ubuntu jaunty main

认证密钥如下:

sudo apt-key adv --recv-keys --keyserver keyserver.Ubuntu.com 0x643dc6bd56580ceb1ab4a9f63b22ab97af1cdfa9

sudo aptitude safe-upgrade后重启X,发觉X Window在切换窗口的时候已经流畅了。

Tagged

折腾一下系统

周末球友出差,没有打成球,于是宅在家里到半夜,突然脑袋一热就犯了IT民工的毛病。本来我已经渐渐修炼到,心中有系统,手头无系统的返璞归真之境界,无奈还要偶尔玩一玩。遂把心得小结如下:

首先是启动系统的工具,要启动系统,肯定得先有启动光碟啊。不过由于俺们越来越懒散,已经不知道多久没有见过启动光碟了,手头只有几个USB碟。不过有了这个就足够啦,推荐一个好玩的开源工具:UNetbootin,它目前支持基本所有的主流非主流的Linux系统,直接下载你要安装的ISO,利用这个工具灌装到USB碟里就能启动机器啦,你可以启动一个Live Linux,或者安装Linux,随便你了。

不过你没看错,它只是Linux工具,如果你要用USB安装Windows,那可以用这个工具:usboot,这个链接里的工具包括了一个ghost镜像,可以通过USB恢复Windows镜像,太方便了。另外还有个著名的PE-Builder,提供一个Live Windows,就跟那个深山红叶光碟差不多啦,既然已经能启动一个Linux Windows,那能干的事情就由你想象了。

装完系统后,关键问题就是如何联网了。说明一下连接无线的办法,如果你安装的系统还没有安装X环境,那建议使用HP的wireless tools,来连接无线网络。连接常见的WEP加密网络的步骤是:

# iwconfig wlan0 essid "wlan name"
# iwconfig wlan0 key s:"wlan password"
# dhclient wlan0

这样就可以自动获取IP了,如果不知道无线网络的名字,使用iwlist wlan0 scanning查一下。这部分代码也可以写到 /etc/network/interfaces里:

if-pre /sbin/iwconfig wlan0 essid "wlan name"
if-pre /sbin/iwconfig wlan0 key s:"wlan password"
iface wlan0 inet dhcp

这样系统装好了,网络也没问题了,然后就随便干什么事情啦,over。

Continue reading ›

Tagged

完美藏在细节里(iphone vs. X1)

自从上个月丢了用了2年多的treo680,就开始无所适从,不知道选啥机器好了。后来想想试试wm系统吧,于是挑来挑去选择了SE X1。

用了1个月的X1,发觉这机器的做工的确无与伦比,全金属外壳,全金属的侧滑键盘,尤其是银色款,非常的精致漂亮,握在手上超级有质感。对比一代的iphone是不遑多让,而且也不用保护套啥的,磨砂工艺的金属外壳,根本不用担心被划伤。另外让人惊喜的是,电话的通话质量奇佳,而且使用1500mha电池,正常使用都可以待机3天。内部硬件上同样很牛x,CPU比touch HD还好,800x480的屏幕,细腻得不行,并且跑wm6.1的时候,程序运行速度不错。

但是,唯一可惜的是,wm系统实在难用。给我印象最深的是,某次我收到一条陌生人的短信,我想给他回复电话,我想当然的像treo那样按电话键居然没成功;后来找了半天菜单也没个回复电话的功能,最终是存成联系人,然后再拨号的,这点实在太囧了。难怪HTC要给wm做一套manila的界面,因为wm虽然看起来很强大,但是易用性和细节方面的确有待商榷。一个简单的回复电话都要数次菜单和点击才能完成,这样的手机使用起来实在是浪费生命。

这其中我就开始考虑其他机型,也试用过朋友的G1,发觉andriod用起来还是蛮方便的,不过不是很喜欢那个强力弹出的键盘,并且耗电也很厉害。本来也很巴望palm pre,可惜GSM的版本还不知道在哪里。最后考虑了iphone,并且刚好现在出了3gs,运行速度对比iphone 3g有了不小改善。

使用了一段时间,发觉3gs无论软件还是硬件上很多细节都比x1好多了,尤其那个耳机做的非常的惊艳,一个小小的控制器就可以控制音乐播放、音量调节,甚至可以接拨电话。最近使用了电话、短信、邮箱和浏览器,在易用性上均超过了wm系统,尤其是safari的多点触摸在浏览网页的时候非常方便,摇一摇机器就能清空短信也很有意思。另外感觉电容屏比电阻屏要灵敏多了,这在看电子书翻页的时候体验很好。3gs新增的语音拨号准确程度出乎意料,这个很好用,基本不用翻电话簿了,想念起palm的中文伴侣搭配qwerty键盘的快捷,语音拨号也算独辟蹊径呵。总之,iphone os的用户体验就像mac os x那样,各个程序衔接很流畅,有浑然一体的感觉,不像windows系统,虽然强大,可选择性很多,但程序和程序直接拼凑痕迹严重,时不时的就掉了链子。

缺点就是3gs屏幕分辨率比X1要逊色不少,看惯了X1的屏幕上的true type字体,觉得3gs的字体显示真是挫死了,坑坑洼洼的。真不知道apple想等到第几代机器再换屏幕,估计届时又是得大大吹嘘一通,然后哗哗收钱。

就目前一两天的使用来看,iphone os体验不错,很期待wm7有所改善。常常说魔鬼藏在细节里,完美也藏在细节里。在完美程度上,X1的硬件可以打95分,wm可以打70分,而3gs硬件可以打90分,iphone os可以打90分,哈哈

Tagged

狗X的GFW

当然更该X的我不说大家也知道,整天不干好事,盾来盾去,不知道到底想怎么折腾。这回是picasaweb的图片服务器都被盾了,所以俺的两千来张照片就全都看不见了。不过还好有自我救赎的办法,执行下边一段脚本后就还能苟延残喘了;如果是Vista或者Win7,需要以Administrator权限执行。

@attrib %windir%\SYSTEM32\drivers\etc\hosts -r
@echo 203.208.39.104 lh1.ggpht.com >> %windir%\SYSTEM32\drivers\etc\hosts
@echo 203.208.39.104 lh2.ggpht.com >> %windir%\SYSTEM32\drivers\etc\hosts
@echo 203.208.39.104 lh3.ggpht.com >> %windir%\SYSTEM32\drivers\etc\hosts
@echo 203.208.39.104 lh4.ggpht.com >> %windir%\SYSTEM32\drivers\etc\hosts
@echo 203.208.39.104 lh5.ggpht.com >> %windir%\SYSTEM32\drivers\etc\hosts
@echo 203.208.39.104 lh6.ggpht.com >> %windir%\SYSTEM32\drivers\etc\hosts

Continue reading ›

Tagged

部署小型软件项目开发管理平台

介绍

一个软件项目的开发一般包括文档管理、代码管理、版本管理、进度管理、bug管理等,这方面的支持工具也很多。我觉得Trac是一个很优秀的代表,用它搭配SVN作为前端工作,差不多可以把这些任务都顺利解决了。Trac有如下一些特点:

ticket

Trac利用ticket的概念,把feature提交、task分配以及bug管理很完美的整合到了一起。

  • 可以设置ticket的优先
  • ticket和roadmap结合,并且能够图形化显示项目进度
  • 自定义条件生成bug报告

wiki

wiki功能贯穿在整个工具里,可以很方便的组织说明文档。同时增加了许多bug管理的专用标记,能方便的创建到ticket、代码行甚至修改历史的链接。

subversion

Trac可以作为subversion的前端,和svn搭配得很好。比如可以在timeline中看到所有的提交记录,可以在source view里方便的对比历史版本,并且具备语法高亮。
Continue reading ›

Tagged

[翻译]把STL容器放入共享内存

昨天在上篇blog里描写了如何把STL容器放到共享内存里去,不过由于好久不写blog,发觉词汇组织能力差了很多,不少想写的东西写的很零散,今天刚好翻看自己的书签,看到一篇挺老的文章,不过从共享内存到STL容器讲述得蛮全面,还提供了学习的实例,所以顺便翻译过来,并附上原文地址

共享内存(shm)是当前主流UNIX系统中的一种IPC方法,它允许多个进程把同一块物理内存段(segment)映射(map)到它们的地址空间中去。既然内存段对于各自附着(attach)的进程是共享的,这些进程可以很方便的通过这块共享内存上的共有数据进行通信。因此,顾名思义,共享内存就是进程之间共享的一组内存段。当一个进程附着到一块共享内存上后,它得到一个指向这块共享内存的指针;该进程可以像使用其他内存一样使用这块共享内存。当然,由于这块内存同样会被其他进程访问或写入,所以必须要注意进程同步问题。

参考如下代码,这是UNIX系统上使用共享内存的一般方法(注:本文调用的是POSIX函数):
Continue reading ›

Tagged , ,

STL容器放入共享内存

STL可以说是C++的重要的组成部分,它提供了一系列方便使用的容器,可以供我们存放数据,节省了很多开发时间。不过如果打算在多个进程之间共享一个STL容器,却常常会遭遇一些困难。比如你正在使用一个map,一般的IPC方法,可能下意识的你就会选择使用共享内存,如果可以把这个map放入一块共享内存供多个进程操作,那该多方便呢。然而问题却没这么简单,由于STL帮我们完美的封装好了map的内部方法,包括内存分配方案,这也导致了我们没法把map直接简单的用placement new放置到已知的共享内存上。

要完成这个任务就需要我们自己实现一个基于共享内存的allocator,替换map默认的allocator,在这个allocator中实现map的内存分配方案。关于allocator的讲解可以看侯捷的《STL源码剖析》这本书,写一个简单的allocator直接套下边的模板就可以了,主要实现的是这几个函数:

  • max_size() 容器的最大容量
  • allocate(num) 为num个元素分配内存
  • construct(p) 将p所指的元素初始化
  • destroy(p) 销毁p所指向的元素
  • deallocate(p, num) 收回p所指的num个空间

Continue reading ›

Tagged ,