星期一, 三月 12, 2007

[转贴] 经典-4000元人民币月薪的人过的日子

  我在苏州一家公司里当普通职员,4000元是我扣税扣保险后的全部工资奖金,全年大约5万年收入。

  作为一个本科学历,几年前从上海复旦大学毕业后,我这个工龄的办公室职员来说,这个待遇很普通,也很普遍,工资高的人也有很多,但基本上是管理和高级技术人员,工资低的也有很多,大多是刚参加工作或学历不高的。我这个收入算是中间层的。

  像我们这样在苏州谋生活的单身汉,饭一般是不做的,因为自己做饭跟吃快餐花费差不多,早餐我买一个面包和一瓶牛 奶,这需要3块钱,中午吃一荤一素,晚上吃两个素的盒饭,加上早餐钱全天15元差不多了,这样每月饭钱大约450,加上偶而跟同事朋友下馆子吃饭喝酒花的 钱,一年花在吃上的钱基本是6千元。

  我在园区租了一套40平米的公寓住,高层带电梯那种,1200元的月租并不算贵,加上管理费和水电煤气及日常用品每月共1600元左右,一年下来要2万。

  吃饭和住房是生活花费的大头,固定的开销还有交通和通讯费,交通费并不贵,每天公车来回,一个月也就1百多,固定电话和手机费各100元,这些全年加起来4千差不多了。

  因为在写字楼上班,衣服是要求穿的正式些的,夏天常见的装束是衬衫领带配西裤皮鞋,上周末我到市区人民商场里逛了逛,发现一套便宜的夏装配下来要1500 (衬衫300,领带200,西裤400,内裤80,袜子20,皮鞋400,皮带100,都是本地品牌,进口品牌西裤就要1000一条),冬天加穿西装和羊毛衫一套3000。我每两年换4套夏装,3年换2套冬装,加上一些平时穿的休闲服装,一年总共6千元服装花费。

  除去这些,每年还会有7千左右的其他开销,这包括平时买书、学习、上网的费用2千,每年回家过年的来回路费1 千,以及过年孝敬父母各2千。这些就是我正常生活的开销,就生活质量来说并不过分,稍微奢侈的消费一点都没有(如、打的、泡酒吧、唱KTV、旅游等),全 部加起来每年4万5,因此我可以余下5千元。但是要保证一年都不感冒发烧,不然上两回医院这点胜利果实就不保了。

  我以5万的年薪,每年可以存款5千,很正常的活着,但工作几年后,我发现问题来了,原因是我突然发现自己快30 了,女朋友还没一个,父母开始催我赶紧结婚。是啊,男人三十而立,事业还没立起来可以慢慢来,家总还是要成的吧。于是我怀揣着6年的积蓄3万块,准备找对 象结婚。

  在苏州的办工室女孩大多都很朴实,这可能是务实风气的影响,所谓女白领出入打的,衣服非世界名牌不穿,吃饭要去 法国餐厅,男朋友非洋人不谈的风气基本没有,要有也是个别人。但这并不等于她要倒贴你,虽然不要你养活,但也不能因为跟你结了婚还要倒贴2千块给你,曾经 某位网友说过,幸福稳定的婚姻,其经济基础是丈夫收入为妻子的1.8倍,靠,也不晓得他咋算出来的,但想想也是符合一定现状的。因此我要找一个跟我一年薪 5万的MM是不利于稳定的,其实即使我愿意人家也不会嫁给我,就算年纪快30了,长得对不起观众也不嫁我。而年薪3万以下的MM们,长相不错的要把相貌折 合成10万~100万年薪计算,所以更不会嫁我了,所以门当户对的对象是年薪3万,长得基本对得起大家的女孩。

  经朋友介绍,我认识了女友小琼,经过一年的恋爱,我发现小琼真是个体贴的女孩,她从来不要求我买贵重的礼物给 她,下馆子也是去中式小馆子,出门不打的,衣服不买名牌,偶然看看电影,情人节送卡片就行了。她说两个人过日子,只要大家真心相爱就好,并不需要那么多的 虚荣。天啊,真是一个伟大的女孩,在这个物欲横流的社会,居然还有这么纯朴善良的女孩,我太幸福了。因为感情太好,忍不住上了床,又因为好的安全套要3、 4块钱一个,一个月套钱就要好几十,所以为省钱买了1块钱2个的次品安全套,在花掉1万元拍拖款后并且避孕失败后,我决定跟她结婚。于是我们准备买房,在 苏州安个家。现在园区内的房子均价已经过6000了,哪怕是不起眼的二手楼,大多也开出4、5千的价格,我们看种一套80平米的房子,这并不算奢侈,首期 和简单装修一共要30万。女友年薪才3万,跟同事合租的宿舍,当然不会有存款。所以除去我现有的2万元,我还要凑28万就可以付首期了,如果我每年存5 千,48年后我就可以按揭买套自己的房子住,但我们不可能48年后才结婚啊,所以我决定跟双方父母借。说是借,其实就是讨,因为借了也不可能还得起。我们 都是独生子女,双方父母都是疼子女的人,而且都还没在退休前被下岗,一辈子存了十几万,如果我们把这钱都要过来,应该可以凑够首期和装修钱。父母养老还有 一点退休金,只能让他们省着过了,平时让他们多锻炼身体,只要下半辈子不生病,应该可以过下去。

  想好了买房的首期,我们开始考虑结婚的花费,客是要请的,婚纱照是要拍的,蜜月是要度的,可以从简但不能不搞, 不然就不叫结婚了,叫同居。于是我们决定用2万元请客,3千元拍婚纱,2千元到江苏省内旅游渡蜜月,够从简的了吧?这样需要2万5,我每年存5千,5年后 就可以摆酒办婚礼了。但是我们能等到5年后才办婚礼吗,这样不行吧,那时候孩子都4岁半了,他还要跟幼儿园老师请假说,老师今天我要参加我亲爹**婚礼。 所以我们决定跟同事先借3万,2万5结婚,5千块留着生小孩,这比钱分6年还清,我们可以把我现在每年孝敬父母的4千元钱和她孝敬父母的1千元钱拿来还 债,父母就不孝敬了!

  买房、结婚的钱我们想好了来源,就开始考虑已经怀上的孩子和以后的全家人的生活费用。因为房子贷款了50万,每 个月按揭3千多,加上物业管理费、水电、管道煤气、电话费等等杂费一年就是5万 5,一家三口伙食费及跟同事应酬的钱一年2万,交通费全家一年4千,服装费3人一年1万(不去商场买),小孩上幼儿园每年1万5,其他费用如回家看父母的 路费,买书上网的费用,日常生活的其他费用等等一年6千。其余所有需要花钱的娱乐一律不搞,够省的了吧,全部加起来每年将近10万。

  也就是说,如果我买房结婚生小孩后,还是正常的过日子,我每年5万年薪,小琼3万年薪,每生活一年要负债2万 元,如果算上一家人看病、父母养老和预留小孩读大学的钱,一年负债5万元以上。如果不买房而租房住,每年可以节省2万,不养小孩可以节省2万5,不养父母 又可以节省5千,再加上一辈子不生病,这样我们两口人就可以维持现在的生活水平了。但这可能吗?小琼嫁给我,没自己的房子住,不能生养小孩,不能负担父 母,还不让生病,她还嫁给我干球?

  于是我把仅有的2万元存款全部给了她,对她说,你去医院把孩子拿掉,我们分手吧,你以后找对象一定要找一个月薪1万以上的啊,我们是没有这个缘分了。

  与小琼分手后,我消沉了很久,我并不需要过奢侈的生活,只是住自己的房子,养一个孩子,给父母养老,这很过分吗?数个月无法从痛苦和迷茫中缓解过来,直到有一天在天涯上看到另一个苏州网友的帖子"在苏州300元过有钱人的生活"后才恍然大悟,原来是自己不懂得生活。

  于是我把现在租的公寓退了,找了另外7个志同道合的人,在公司附近的农民村(苏州原居民的村子习惯叫农民村,里 面的出租屋叫农民房,条件如何在苏州住过的人体会比较深)中租了房600元,共8个人睡,4张上下铺,水电杂费分摊,总共100元每月。因为住得近,走路 上班不用交通费,每2个周末坐公车出一趟门,一月10块够了。

  早餐也不吃面包牛奶了,改吃2个5毛钱的包子喝白开水,另外农民村里面非常多小饭店,其中有一种就是像食堂一样 摆几大盆菜在门口给你选,一份菜1块或2块钱,饭和汤1块钱任吃。中饭和晚饭我们8个人每人凑2块钱,要几个菜,然后花4块钱买4个饭盒的饭,饭压实装 满,够8个人吃。虽然那些菜用的油味道有点怪,但吃不死就行了,关键是每天只要5块钱伙食费,每月共150元。衣服也找到好地方买,火车站钱万里桥小商品 市场某个角落里有6 元衬衫,8元西裤,领带5块,内裤袜子各3块,皮鞋15一双,西装20元一套。但就是质量太那个,洗过水就有点歪。衣袖对不直。这样每月服装费40元差不 多了,还经常可以穿新的。

  娱乐方面也有招,村里有不少路边书摊,10元一本,很多人会去买,我到书摊上看书,但不买,看个把小时回家,明 天接着看,个把星期就能看完一本。发工资的时候,就去网吧上网,2块钱1小时,上网看帖子。当然也有比较刺激的娱乐活动,农民房建得很密,经常是你家洗手 间直接对着他家客厅,天黑的时候,把自己房里灯一关,如果对面租房的是女的你就发(发达的缩写,好运的意思)了。所以精神生活就开销是每月20元上网费。

  通讯的钱更好省,固定电话不装,用公司的,手机用动感地带10元包月,来电显示也不开通,因为没用,我不接也不打电话,只发短信。

  医疗方面主要靠平时锻炼,不生病就不用花钱,万一生病了就扛着,反正年轻扛得住。

  其他费用如卫生纸啊,肥皂啊什么的还是要用的,没女友安全套也不用了,自己动手就可以了。这样每月杂费只要花个20块钱。

  如此一计算,100房钱+10元交通+150伙食+40服装+20娱乐+10通讯+20其他=350元,一年才 用4200。本人一个月的工资就差不多够一年生活了,真TM爽啊,太幸福了。难怪GDP年年百分之十几的增长工资水平却往下跌,原来是工作一个月可以养活 自己一年,剩下的十一个月没有生活压力就很难积极工作了。

  所以说,要老婆干嘛?要小孩干嘛?要爹妈干嘛?只要转变观念,像我现在这样,不养父母,不讨老婆,不生小孩,不供楼,不坐车,不生病,不娱乐,不穿商场里卖的衣服,不吃正规快餐店里的盒饭就可以找到幸福生活的真谛!

星期五, 三月 09, 2007

蟑螂为什么又叫小强?

◆连陨石连击(大灭绝)都不能歼灭 ...............................强

◆蟑螂有3700多种...杂食?不...只要是有机物几乎都吃 ............强

◆蟑螂可在真空下(非绝对真空,如宇宙)可以存活至少10分钟 ........ 强

◆蟑螂可以活在由40kW提供来源(rotating anode source)的X-ray下. 人类则以秒计 ......................强

(P.S.蟑螂会死在由同步加速器提供10keV的X-ray下,"就是这个光"强度是上者的1000 倍)

◆可以在12莫耳的HCL和18莫耳(有多浓@_@?)的NaOH活上30秒 ........强

◆水中至少可以活上10分钟.....................................强

◆在100度的炉子内可以活很久 .................................强

◆要用传统兵器打死蟑螂...也就是拖鞋...要29.4N ................强

◆蟑螂的头断了仍然可以活上好几天...直到饿死 ..................强

转自:http://zhidao.baidu.com/question/287186.html

星期四, 三月 01, 2007

创建本地 DNS 缓存提高浏览器访问速度

之前用 bind9 做过 DNS Cache Server,但是不知为何每次重启系统之后缓存数据就都丢了,无奈之下找到了 dnsmasq 这个工具,真是非常不错。

确保没有安装 bind9,使用下面方式安装 dnsmasq:

sudo apt-get install dnsmasq
sudo vi /etc/dnsmasq.conf

增加一条配置信息 listen-address=127.0.0.1,如果已经存在此信息,请取消注释。

sudo vi /etc/dhcp3/dhclient.conf
把 prepend domain-name-servers 127.0.0.1; 的注释去掉,这样能够保证 127.0.0.1 这个地址会永远出现在 /etc/resolv.conf 中 DNS 服务器的第一个。

重启一下吧,或者手工修改 resolv.conf 并且启动 /etc/init.d/dnsmasq restart 让配置生效。

最后可以用 dig sina.com.cn 测试一下你的 DNS,做好 DNS 缓存可以让浏览速度提升不少。

星期一, 二月 12, 2007

Django 学习笔记 - RequestContext

Context 常被翻译为“上下文”,可以在很多程序设计中见到他的身影。

不仅仅是 Django Template,几乎所有 Template Engine 的设计都是传递一个 Context 给 Template 进行渲染。这个 Context 就够成了模板所需的变量表。

Django Template 的特点就是简单,默认情况下调用 render_to_response 函数传递的第二个参数是一个简单 map 对象,会被包装成 django.template.Context 传递给模板使用。

其实很多场合我们需要默认在 Context 里面加入一些常用的东西,譬如把 request 对象传入 Context,把权限模型放入 Context 以便调用。为了避免每次硬编码,Django 提供了一个 Context 的子类,django.template.RequestContext。

在 settings 里面有一个名为 TEMPLATE_CONTEXT_PROCESSORS 的设置于 RequestContext 密切相关。默认的配置为:

("django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n")


这些 Processors 都会被 RequestContext 顺序调用,往当前 Context 中放入一些预定义变量。譬如 auth 就会放置 user 这个变量,就是当前登录的用户对象。

RequestContext 作为 render_to_response 的第三个参数传递,必须将 request 作为参数传递给它,如下:

def some_view(request):
# ...
return render_to_response('my_template.html',
my_data_dictionary,
context_instance=RequestContext(request))

更多的信息请参考 Django 官方文档:
http://www.djangoproject.com/documentation/settings/#template-context-processors

星期五, 二月 09, 2007

Django 学习笔记 -Middleware

Django 的确可以做类似 Spring framework 里面 Interceptor 的操作,这在 Web 开发中相当不错。不过在 Django 里面这个不叫做 Interceptor 或者 Filter,他叫做 Middleware。

Middleware,多么庞大的概念,Java 开发着对这个此一定不陌生......,不过在 Django 的世界里,他就是 Interceptor,很简单。

Django 提供了很多默认的 Middleware 来作一些例如 URL 处理,Session 控制,和一些更基础的工作。Middleware 同时也构成了 Django 一个独特的插件机制。

Middleware 并不复杂,他主要就是可以让你在 HTTP 请求过来之
前和之后作一些处理。要实现 Middleware 并不需要继承任何类,脚本语言嘛,我们有 Duck Typing。

Middleware 里面有以下4个函数可用:

  1. process_request(self, request)
  2. process_view(self, request, view_func, view_args, view_kwargs)
  3. process_response(self, request, response)
  4. process_exception(self, request, exception)
看看函数名想必就知道做什么的了吧,写好 Middleware 之后随便放到哪里,只要在 settings.py 里面写上路径可以让 Python 找到就行了。

Middleware 的一些不足:
  • 全局应用,不能够针对某种 url pattern 应用自己的 middleware,不过可以自行扩展
  • 没有类似 Java Servlet 中 Filter Chain 的管理,完全是顺序应用 middleware,所以顺序很重要,因为有依赖。

Middleware 官方文档:
http://www.djangoproject.com/documentation/middleware/

星期二, 一月 30, 2007

重返 Blogger

这一个多月过得真是不容易,遭遇天灾,光缆断了,几乎没法写 Blogger 了,总算,现在应该恢复了 70% 了吧,好事情。

用 Django 做了一些东西,顺便学习了一下 Django,很有意思的一个框架。以前没有正经用 Python 做过东西,现在做下来感触还是很多的。先说说 Python 吧,个人观点。

随着 RoR 的兴起,动态语言的地位一下子上来了,越来越多的人学习脚本语言,不过似乎有一个问题。Python 很容易上手,的确不错,Python 依靠缩进来提高代码的可读性。不过也有一个似乎是脚本语言共有的问题,就算依靠缩进来提高代码的可读性,新手与老手写出来的代码也都可能是完全不同。很多 Java 的同行去尝试 RoR 了,很不错,很多新人也去玩,但是同样的东西写出来的代码质量可以相差很多。前些日子和 Martin 一起写过一些代码,pair 了一把,发现自己的水平比起来太差了,毕竟在 Python 上我算是个新手吧。

玩了玩 Django 和 TurboGears 两个 Python Web 框架,最后还是选择了 Django,有人说用 Django 的都是懒人,我承认我还是喜欢懒一点。TurboGears 整合了一群框架,可以自由替换前端和后端,没发觉有多少好玩的地方。我大致看了一遍 Django 的代码,觉得玩 Django 更有意思一点,扩展 Django 没多少难度,下阶段闲一点的时候我要整合一个新的模板引擎替换 Django Template。

可能最近一段时间都会用 Python 来做东西,就趁这个机会再细细研究一下这个语言本身了。

星期一, 一月 01, 2007

Ubuntu 下 resolv.conf 被替换的问题

用 Ubuntu 一段时间了,自从晚上使用无线网络之后就发现一个很恶心的问题,因为通过DHCP获取IP,所以经常重写我的resolv.conf,由于我自己配有bind9用作本地DNS缓存,所以经常要修改resolv.conf为我本地设置。Google 了一番,总算找到了解决方法,修改/etc/dhcp3/dhclient.conf,使用下面的语句为每次生产的resolv.conf准备默认的几台DNS地址:

prepend domain-name-servers 127.0.0.1;

星期二, 十二月 26, 2006

Django 学习笔记 - Apache2 + FastCGI

昨天开始学习Django站点的生产服务器(Production Server),尝试了一下lighttpd和Apache2,最后决定采用Apache2来搭建整个环境(其实lighttpd更为方便一些)。

虽然Apache2 + mod_python就可以跑Django站点服务,但是听说FastCGI有更优异的性能。

FastCGI applications are fast because they're persistent. There is no per-request startup and initialization overhead. This makes possible the development of applications which would otherwise be impractical within the CGI paradigm (e.g. a huge Perl script, or an application which requires a connection to one or more databases).
需要让Apache2支持FastCGI,就必须下载mod_fastcgi这个Apache模块。可以从http://www.fastcgi.com/站点下载,不过非Windows用户需要自行编译这个模块,其实也挺方便的。下面是我在 Ubuntu 下安装的例子:

apt-get install apache2-dev # 会安装Apache2开发相关的库
cd $mod_fastcgi_dir
apxs2 -o mod_fastcgi.so -c *.c # 编译
sudo apxs2 -i -a -n fastcgi mod_fastcgi.so # 安装到Apache2/modules里面去,同时会到apache配置里面加上一条加载语句

mod_fastcgi.so就这样完成了,下面需要配置你的Django站点。首先去下载 flup,然后写一个mysite.fcgi,这个在Django的站点上有介绍,里面需要指定Django应用的绝对路径。
#!/bin/bash

# Replace these three settings.
PROJDIR="/home/user/myproject"
PIDFILE="$PROJDIR/mysite.pid"
SOCKET="$PROJDIR/mysite.sock"

cd $PROJDIR
if [ -f $PIDFILE ]; then
kill `cat -- $PIDFILE`
rm -f -- $PIDFILE
fi

exec /usr/bin/env - \
PYTHONPATH="../python:.." \
./manage.py runfcgi socket=$SOCKET pidfile=$PIDFILE
这个文件搁在你的Django应用的根目录里面,改成可执行属性。然后你每次只需要执行这个文件就可以将Django以FastCGI方式启动出来了,启动后你是不能够直接访问的,因为不是走的Web方式。

下面我们看一下Apache相关的配置:
# Connect to FastCGI via a socket / named pipe.
FastCGIExternalServer /home/user/public_html/mysite.fcgi -socket /home/user/mysite.sock

<VirtualHost 12.34.56.78>
ServerName example.com
DocumentRoot /home/user/public_html
Alias /media /home/user/python/django/contrib/admin/media
RewriteEngine On
RewriteRule ^/(media.*)$ /home/user/public_html/$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ /mysite.fcgi/$1 [QSA,L]
</virtualhost>
$1处我遇到了一个奇怪的问题,因为用的是 Ubuntu,没在其他平台试过,/$1会指向硬盘的/media物理路径,很奇怪,所以需要修改这个路径为Django的站点目录,即将DocumentRoot的地址再写一遍。

这样一来,整个Apache2+FastCGI就完成了,的确比较费力气。

星期四, 十二月 21, 2006

Django 学习笔记 - i18n 支持

最近再用 Django 做东西,顺便写点笔记做下记录。

今天折腾这个 Django 的 i18n 支持着实费了点功夫,主要是一开始没理解 Python 做 i18n 的原理导致。废话不多说了,使用 Django 的 i18n 支持还是相当的方便的。Django 的官方文档上讲的很详细了,但是篇幅过长,我也是硬着头皮看了几遍才搞明白,下面我就简单介绍一下最快捷的方法。

首先,从配置入手,settings.py 里面有一个 LANGUAGE_CODE属性,这里设置了网站默认的语言。由于settings.py里面的属性支持重写,所以从官方文档上可以得知,默认情况下已经启用i18n支持了,我们需要加入一些middleware来支持动态切换语言。

MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
)
注意顺序,LocaleMiddleware必须在SessionMiddleware下面,因为需要从Session里面获取一个语言类型,这些Django都有现成的了,很方便。

在urls.py里面配置一个i18n的辅助应用
(r'^i18n/', include('django.conf.urls.i18n')),
有了这个就可以自由的切换语言了,使用/i18n/setlang/?language=en这样的形式。

配置完成之后在项目目录底下建立一个locale目录,locale下子目录的样式有固定格式,如:
locale/<language>/LC_MESSAGES/
如果是中文,对应的目录就是
locale/zh_CN/LC_MESSAGES/
如果是英文,则应该是
locale/en/LC_MESSAGES/
以此类推。

为了在django里面使用i18n,po文件名必须为djang.po,编译过后必须为django.mo,那么翻译的内容就固定在po文件里了。一个典型的po文件类似一下样式:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-12-21 14:00+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "Home"
msgstr "Home"

msgid "News"
msgstr "News"

格式相对比较简单,也是键值对的形式。如果是多行的话,需要使用msgstr ""的形式,首行不写东西,在后续的几行写文本,翻译出来的结果会由程序自动把文字组合到一起。

编写完的po文件需要编辑成二进制的mo文件才可以被django使用,django使用了gettext来实现翻译,所以mo格式也是gettext要求的。

在linux下使用msgfmt -o django.mo django.po即可完成转换过程,相当方便,windows下需要下载poEdit这个软件。

翻译工作都准备就绪了,接下来就是体现到模板上去了,首先加载i18n,在模板文件的头部加入{% load i18n %},下来对于需要i18n支持的字段使用{% trans 'Key' %},这里的Key就是msgid,很简单吧。

这里仅仅介绍了Django i18n的一个快速上手配置,更详细的内容请参考
http://www.djangoproject.com/documentation/i18n/

星期三, 十二月 20, 2006

回到 Ubuntu 的世界

总算下决心把笔记本上的 FreeBSD 删了,我的确没这个耐心去打各种各样的补丁来支持我的硬件了。Ubuntu 对桌面的支持已经非常强大了,安装很顺利,我的所有硬件都认出来了,包括无线网卡和声卡,这是一件很愉快的事情。Linux 有着强大的用户群和开发群,这点和 FreeBSD 的应用哲学还有点不同,我们房东雨同学说 FreeBSD 是“爱用不用”,呵呵,桌面环境是有点难用了。

看到众多老大们在玩 Beryl,的确够玄,于是立即将机器的 Ubuntu Dapper 升级到了 Ubuntu Edgy,可以不用重新安装就升级,输入命令 gksudo "update-manager -c -d",会显示一个升级选项,要下载645M数据,升级过程大概2小时左右,还不错。

升完级就装 Beryl 吧,就可以玩到很酷的 3D 桌面了,一点都不逊于 Vista 哦。