Apr 7, 2007

想和你一起看星星

小时候上学,经常要晚归——或是学棋,或是晚自习。中间有段路没有路灯,黑漆漆的。
天不好的时候,这段路我是跑过去的,主要是怕不小心把哪个孤魂野鬼给吓着了。如果天气不错,我会仰着头慢慢溜达,天上除了熟悉的星座外,还能看到“卫星”(其实是飞机)、流星、还有银河。不过很遗憾的是,直到现在,我熟识的星座还仅限于大熊小熊仙后猎户天蝎。当然,这不能怪我不好学,主要是因为所待的几个城市都充满了大气污染和光污染,别说银河,就是看到北极星都难。

所以说现在大城市里的小孩其实挺没劲的,想拉自己喜欢的mm去看星星都不成。你要是冲个mm说:“咱一起去看星星吧。”保管被人当花痴……

不过nie,真要看呢,还是有不少地方的。比方说川西啦,云南啦,西藏啦,米国的national park,北欧的小镇啦,澳洲的大草原啦,新西兰的峡湾啦,再次点,就是到了太平山顶都还是能看到点星星的。不过今天我要说的观星台,其实就是你的电脑,准确的说,是一款观星软件——stellarium

stellarium其实寻星观星软件很多。我以前就安过一款专业级的寻星软件,存储了全世界科学家发现的几乎所有各种星星资料。不过因为是科研用的,所以界面也有点学究,不喜欢。今天要说的stellarium就不一样。它是一款开源软件,针对的就是咱们这些业余观星者。

你可以设置自己所在的位置,可以360°全天观察,可以看到行星、星座,星云等等多达12万的星体。更重要的是它可以实时显示你所在位置的星图,而且你还可以非常方便的更改时间。这对于远离洁净天空的我们来说,无疑是一个很好的助手。

试想一下:赶上个好天气,扛上自己的笔记本,带上自己的宝宝驱车到远郊的海滩上,用GPS定好位置,打开笔记本和儿子一起对着星图找星星;看着儿子兴奋的样子,回想自己的青葱岁月,能不开心么。 :)

顺便附上一个演示视频,给大家参考下:

Post by SUN @ 5:16 am 与时俱进 | Comments (7)
Apr 6, 2007

优化WP-Cache:Wordperss优化手册(2)

关键词:WP-CacheWordpress优化加速Gzip
注:
♣ 本文是加速Wordpress-终极优化手册一文的补充,强烈建议您先参考终极优化手册后再看此文。
♣ 本文的方法只适用于单作者(不开放注册)的wordpress系统(但我相信目前绝大多数wordpress系统都是不开放注册的)。

加载WP-Cache插件是wordpress中最为常用的一种优化方式,同时,php程序本身也提供了一种非常强大的优化方式,也就是Gzip压缩传输。非常遗憾的是,WP-Cache插件要求关闭wordpress的内置gzip压缩功能。因此,我们要实现的就是在WP-Cache中使用Gzip的功能。这一思路的实现,我在终极优化手册中已经提到:

打开wp-cache-phase1.php,大概在35行左右找到如下代码:

foreach ($meta->headers as $header) {
header($header);

在此代码前添加下面的代码:

if ( extension_loaded('zlib') ) ob_start('ob_gzhandler');

OK,现在问题来了。
让我们深入分析一下加了Gzip功能的WP-Cache的工作原理:
首先,WP-Cache在用户第一次访问页面的时候,将生成的页面传输给用户,同时在服务器上缓存了页面,这第一次传输给用户的页面是没有用gzip方式压缩的。
第二,我们看wp-cache-phase1.php中的最后一个函数function wp_cache_get_cookies_values(),不难发现wp-cache是根据访问者的email来判断是否为同一用户的。问题就在WP-Cache的的这个判断机制上:

WP-Cache为不同的用户生成了不同的缓存页面。而这些用户第一次访问某一页面时候,WP-Cache发送的都是未经过Gzip压缩的页面。因此,除非这些用户再次访问该页面,否则他们都是享受不到Gzip压缩带来的好处的。

既然知道了问题的症结所在,解决的方法也就显而易见了。我们可以换用判断用户网址的办法来判断是否为同一用户,因为大多数用户都不会填写网址。这样用户A访问后,其他的BCDE等用户来访问,系统一般都会将用Gzip压缩过的页面传输给他,大大提高了缓存页面的利用率。但是这会产生一个新的问题:当用户A访问某一页面后,缓存页面中也就保留了他填写的用户名和email地址(comments.php中用php来读取缓存)。这个问题很好解决,我们可以用javascript来读取缓存

现在要做的就是修改代码了:
在wp-cache-phase1.php文件中找到如下代码

if (preg_match("/^wordpress|^comment_author_email_/", $key)) {

在前面加上//将其comment out,随后在该行的下一行添加如下代码:

if (preg_match("/^wordpress|^comment_author_url_/", $key)) {

接着,打开你的theme中的comments.php文件,找到填写comment的表单部分,这里以theme/default下的文件为例:

<input type="text" name="author" id="author" value="<?php echo $comment_author; ?>"

将其中的 value="<?php echo $comment_author; ?>"删除。并以此类推,删除表单中email和url的value项。
随后,我们在紧跟表单后的<?php endif; ?>之前添加如下的代码,用以读取用户的Cookies:

<script type="text/javascript">
//<![CDATA[
// Set cookies
var aCookie = document.cookie.split("; ");
function GetCookie(sName, id)
{
// cookies are separated by semicolons
var something = document.getElementById(id);
// set value to NULL for new visitors
something.value="";
if(!something) return 0;
for (var i=0; i < aCookie.length; i++)
{
// a name alue pair (a crumb) is separated by an equal sign
var aCrumb = aCookie[i].split("=");
if (sName == aCrumb[0])
{
//reading cookie value
something.value=unescape(aCrumb[1]);
return 1;
}
}
// a cookie with the requested name does not exist
return 0;
}
GetCookie("comment_author_8e11b42cc2f3a74aac664cc9afa5baf7", "author");
GetCookie("comment_author_email_8e11b42cc2f3a74aac664cc9afa5baf7", "email");
GetCookie("comment_author_url_8e11b42cc2f3a74aac664cc9afa5baf7", "url");
//]]>
</script>

请注意,其中的"comment_author_"中的长串字符为系统生成,请自行查找后替换。(我是用firefox的web developer插件看cookie的名字的)OK,把所有修改过的文件保存一下,上传,试试下效果吧。

Post by SUN @ 10:53 pm 与时俱进 | Comments (15)
Mar 30, 2007

Greasemonkey Addons

关键词:Greasemonkey, Google, Reader, Gmail
Greasemonkey Addons --这是一个Top10级别的firefox插件,之所以称之为他,因为在firefox里,Greasemonkey的图标是一只非常可爱的胖猴子,和我有缘啊。

根据其网页上的介绍,Greasemonkey插件其实是提供了一个Javascript的运行平台,这样众多民间高手就可以定制诸多的 javascript代码,从而优化各种页面,比方说Google啦,Google Reader啦,Gmail啦。具体的代码大全见:http://userscripts.org 。

我这里要介绍的是我自己使用的几个Javascript代码。主要是为了帮助自己优化下Google的几个产品。要安装下列的代码,你必须先安装上面提到的Greasemonkey Addons,随后重启firefox。

  1. Gmail Saved Searches
    该代码的目的是在Gmail信箱中添加一个快速搜索条。Search Box
    针对用户:
    a) 使用Gmail (貌似是一句废话)
    b) 每天收到不少email
    c) 使用Label功能,但还觉得不够用的。
    比方说我对收到的信件都会做个分类,但是有时候还是会用到Gmail内置的搜索功能。
    例如要搜老板DY发给我的信,我必须在搜索框里面打入
    to:me AND label:inbox AND from:DY@hku.hk

    安装这个代码以后,我只需要点一下“Edit searches",然后把上面的代码写入到Query里面就可以了。
    不懂如何编辑的也不用怕,该代码的作者本就已经帮你设置了一些常用的搜索,你只需要依样画葫芦就可以了。
    此外,该代码还可以保存最近几次的搜索结果。
    其实这个代码其实就是google的工程师写的,所以我估计会在不久的将来直接嵌入到Gmail中。
    如果还需要更详细的介绍,请参见此文
  2. Gmail Macros
    该代码的目的是增加Gmail的快捷键,安装完毕后你可以按键盘上的h键看它所有的快捷键参数。
    如果你从未使用过Gmail的快捷键,我建议你不妨尝试一下。它会大大提高你使用Gmail的速度,尤其是对笔记本用户,熟练的使用键盘快捷键是一项可以节约时间的不错技能。
  3. Google Reader Custom Search (2)
    针对用户:
    Google Reader 订阅了大量rss的人。
    之所以叫做(2),自然是因为这个是改进版的代码啦。这个代码的安装稍微有点繁琐。

    1. 先是点击上面的链接,安装代码。
    2. 随后你需要去http://www.google.com/coop 定制一个自己的搜索引擎。其中Search engine name和Search engine description两项可以填“Reader Search”;Search engine keywords这项随便填一个单词(比如test);Sites to search这项也随便填一个(比方www.google.com)。后面的选项选“Search only these sites”,最后是否显示ad嘛就看个人喜好了。
    3. 填写完以后,你需要另开一个窗口,导出自己的Google Reader界面中的Settings->Import/Export选项中导出OPML文件。
    4. 回到你定制的GoogleCustom Search界面,选Advanced选项,导入刚才你到处的OPML文件。
    5. 用你定制完的搜索引擎搜索一个单词,浏览器的URl栏会显示一串长长的代码

      .../custom?cx=0114783%3Awtpemqyazpg&q=test&sa=Search&...

      将这串代码中的&q=test去掉后,复制到剪切板,内容如下:

      .../custom?cx=0114783%3Awtpemqyazpg&sa=Search&...

    6. 编辑步骤1)中刚才安装的代码,用步骤5)中复制的代码替换字符串REPLACE-THIS。
    7. 大功告成,现在可以在Google Reader里面搜索自己搜集的诸多blog站点中的内容了。
  4. Google Reader Integration
    这个插件是在Gmail里内嵌GoogleReader的feed内容,安装简单。
  5. GoogleTagCloudMaker
    这个代码是把google搜索栏右侧原本应该有的赞助商链接用Google Tag Cloud覆盖。我估计Google不太喜欢这个插件,不过我们喜欢。:)

其他还有很多代码,如我上面所说,有兴趣研究的,可以去 userscripts.org 去淘宝去~

Post by SUN @ 1:48 am 与时俱进 | Comment (0)
Mar 27, 2007

有机所林院士的公开信

proof各位同事:大家好!
可能你们已经听闻本课题组2006 年发表在JACS (2006, 128, 5624-5625)上的论文涉嫌造假一事,因该事件影响太大,其真相至今才能通报,望见谅。原因有二:其一,从发现问题到调查乃至弄清整个事件的真相需要一段不短的时间,也是一个艰难的过程,需要做许多次的反应来推敲和验证;其二,在调查和揭示真相的过程中,希望给涉嫌造假者黄凌琳一个能申辩和主动承认的缓冲时间。但遗憾的是,我们的善意未能等来她的表态。至此,我们已经按既定时间表于3 月22 日向有机所学位和学术委员会报告涉嫌造假的实情。同时,我们也已二次给JACS 主编去信,先是报告情况,然后是要求撤消该论文。

黄凌琳曾是我们小组的博士研究生,她博士论文阶段的其中一个工作是研究二碘化钐诱导的2-酰基芳酸酯类化合物的不对称还原环化合成高光学纯度手性苯酞类化合物。我们期望利用手性试剂控制的不对称质子化,探讨手性苯酞的合成。经过近两年的努力,黄凌琳“实现”了这样的设想,并在进一步的研究中,“发展”了非手性的质子源试剂和催化量的手性质子源试剂的组合体系,“完成”了手性苯酞的催化不对称合成,反应的对映选择性最高可达99%。其中催化部分的研究结果就发表到美国化学会志上。

黄凌琳于去年博士毕业后去了德国做博士后,苯酞研究的课题就由小组另一位研究生冯陈国同学继续。自去年9 月下旬开始,冯陈国在进行苯酞类反应的拓展实验时碰到了困难,无法取得好的结果,即以黄凌琳原来的工作为标准的模板反应进行重复,但产率仅在30~50%,ee 值也在10~30%之间。期间,冯与已在德国的黄多次用email 联系,讨教如何操作实验,黄表示实验操作应该没有问题。

在多次实验未果的情况下,黄甚至在email 中提出 “现在我可以相信问题应该出在我一直使用的那瓶CH2I2上,估计是在那瓶中引入了一些我们所不知道的杂质,才对反应产生了效应。但遗憾的是,那瓶试剂已经被完全用光了,连瓶子都已不知去向了”,意思是说该试剂已用尽,无法找出事情的原委。同时,她还信誓旦旦地说“这些都是我当初确确实实做出来的,但现在,我也确实无法为自己做出什么有力的证明与辩护,此心唯天可证!”。事关重大,我们认为无论是何原因,都应该弄明白。就请她乘圣诞节放假之际,回所重复实验,并答应为其报销国际旅费,经过反复交涉,她同意回国。但原定12 月25 日的回国日期到了,她没有回来,只有一封email 说她在德国也重复了实验,也没有得到原先的结果,自感回来已无意义。经过多次的email 和电话联系以及交涉工作,她最终同意在春节前回来。在此期间,有位自称是她男友的人来过2 次电话,提及黄顾虑重重,即表示回来与否都没有学位了。1 月21 日,她回到了上海。第二天在实验室就位,第三天开始重复自己的工作,但其实验结果与冯陈国同学的结果相差不多。

Show More >
Post by SUN @ 3:10 pm 与时俱进 | Comments (6)
Mar 25, 2007

不再迟到的五种途径

关键词:效率 安排时间
不再迟到的五种途径,的确是好文一篇,转载过来。另外,他们还翻译了不少好文,都被我收录下来了。
更多好文见My Links

原作者: Penelope Trunk | 译者: 小狼诺夫 (Blog) | 发表时间:2007-03-14, 18:19

我之所以如此了解迟到的理由,原因是最近我经常迟到。所以我每次都告诉自己我迟到了,我必须诚实地思考是什么原因导致我迟到,并把它写下来。

“写下来”这是最重要的一部分。对我而言,记录某些事情会使之显得更加严肃。如果我把某些事情写下来,我就像在为改变它而担负了更多的责任。我知道在这一点上不光只有我会这么觉得。
我看过写关于减肥坚持某项预算的博客文章,他们说,用博客来记录这些事情有助于他们对一个计划持之以恒。我想“准时”是一种类似的目标,你必须每天都要考虑它,这样才能改变人生。

希望我不会整篇文章都在写关于准时,尤其在已经拥有如此优秀的服务之后。希望这篇文章将能够帮助你使一切重新变得井井有条...

这里是我想出来的一些方法:

1. 把事件列入日历的日程清单里。

如果你制订了去某处的时刻表,那么当时间到了的时候你不会再做其它事情。当我尝试这样做的时候,我自己都感觉惊愕。我发现我一天的日程 表足可完成48小时的工作。本来对我来说做任何事情都不太可能会准时。
(笔记:如果你想建议我阅读Getting Things Done这本书来更好地管理时间,你或许会喜欢该链接文章。)

2. 练习把你想说的说出来。

这里要说一件重要的事情:“很抱歉,我不得不打断你,我有一个约会。” 打断某人的话会很困难,但他们会尊重你所坚持的日程计划。在职场你升得越高,你会发现人们会更加严格地坚持某项日程计划。好处在于在工作场合你说这段简短 话语会被很融洽地接受。在工作场合你这样做没有任何困难,然后你也可以在家也这样做。然而,说不常常需要花费很长时间考虑并需要不断练习。

3.做一个时间上的悲观主义者

假定每一件事情都会比你最初预期的完成时间多出那么一点点。这也会让你能恰好准时做每件事,或者你早一点开始做这件事。提早做事情的人们都很镇静、 有条不紊,并且一直都有准备。Not a bad place to be.

4. 按优先级排序
一些人迟到,只不过因为他们没有足够时间来做每件事。改变这一现状的唯一途径就是停止做这么多。面对现实吧,你不可能完成整个列表的任务。找出哪些是最重要的并完成它们。告诉那些依赖你的人- 比如你的老板- 你只能做那些有时间完成的任务,在优先级列表底端的那些任务将没时间完成:对你生活中的任何人而言这都是个教训。

(另一则有关Getting Things Done的笔记:我认识的唯一擅长对任务按优先级进行排序的人,他已经读过这本书了,这里是该书的内容概述,对那些没开始读本书的人而言可能有帮助。)

5. 诚以待己
为什么你使自己迟到?那是对自己的不尊重,它使你看起来毫无组织性、无自控能力。为什么你不接管自己的时间呢?这么多人都说准时做事事实上就是有自知之明。我们经常害怕自己不得不做一些决定来管理时间,从而变成那种遵守日程表的人。但是没有其他途径来过活。遵守日程表也就是在计划人生的未来、然后执行它。

本文由译言网的小狼诺夫翻译。作者的其他文章有:

Post by SUN @ 10:30 pm 与时俱进, 他山之石 | Comments (4)
Mar 23, 2007

魔鬼经济学

Freakonomics正在读的一本书:魔鬼经济学(点击进入网站)。中英文版都是一个热心网友给的。

网上的介绍看来,这本书已经有些年头了。
两个史蒂芬生造了Freakonomics这个词,并且将之发扬光大。他们主要是从经济学的角度来探讨各种社会现象,并成功运用他们的经济学理论对这些现象做了个深入的分析,给出了合理自洽的解释。

念书给婴儿听会不会使他日后成为一个好学生?
游泳池比枪支还危险?
贩毒集团的结构其实和麦当劳的组织很像,而且基层员工和小弟都没赚头,钱都进了总裁和大哥的口袋。
父母教养方式的差异对孩子影响不大。
为什么妓女的收入比建筑师还高

挺有趣的标题,看完之前先不做太多个人评论。如果有要的请email联系。

Post by SUN @ 8:39 pm 与时俱进 | Comments (28)