Categories

Calendar

May 2018
M T W T F S S
« Jun    
 123456
78910111213
14151617181920
21222324252627
28293031  

真·天气预报签名档

之前做了一个天气预报签名档,实际上只是显示了即时天气,这两天终于晴朗起来了(或者说,至少不下雨了),于是心情好更新了一下,顺便从 Yahoo Weather 上把未来五天的天气情况也抓下来放到图片里。总算对得起天气预报这个词了。

效果如右图所示。代码没有什么大的变化,只是实验室网络不知道为什么最近奇慢无比,由于新版本现在要下载不少图标,所以我加了本地缓存。缓存的办法很简单,就是把图标保存到一个本地文件中,要找出 URL 和本地文件的对应关系最简单的办法就是用 URL 作为本地文件名,不过通常 URL 并不是一个合法的文件名,因此,为了避免冲突,平时大家用得最多的办法就是对 URL 取一个 hash digest (比如,用 MD5 或者 SHA-1 之类的)来得到文件名。这个在 Python 中也是很容易的事,因为相关的库已经可以直接拿来用了。

天气预报签名档

也不知道有多久了,从接近开学一直到现在,杭州天天都在下雨,估计至少有二十天了吧。实在是一件让人非常郁闷的事。之前看到寒仔在 cc98 上的签名档图片是根据时间动态生成的,觉得很好玩,于是也决定弄一个动态的签名档玩玩,正好就做天气预报好了。

首先要选定一个天气来源。之前听说 iGoogle 里面的天气预报小工具预报得非常不准,除了“Current”里的天气情况和目前室外的情况差不多之外,预报的结果似乎完全不可信。 ^_^bb 其实我也完全没有看天气预报的习惯,反正我天天都带着伞的。那么我也干脆弄一个“即时”天气好了,显示当前天气,可以“足不出户,知窗外天气”——关键是要做得漂亮些。但是我又懒得去找那些天气相关的图片素材,最后随便挑选了几个天气来源,就直接选了 Yahoo Weather 。

统计论文被引用的情况

昨天被导师叫过去分配了一个非常苦力的任务:统计他的论文被引用的情况。确切地说就是对于他的每篇论文,列出所有引用该论文的出版物,当然,所有的条目都要以标准的论文参考文献的格式给出详细信息来。因为这个毕竟是自己统计的,最后还要拿去图书馆查询、审核、盖章、等等等等。据说申请项目要用,看来这就是国内的现状吧?整天都忙这些事情,还有几个人能抽出空余时间去做正事呢?一直不明白何老师为啥要回国来。当然,从我自己的经历来看,很多事情其实也没有那么多的为什么,至于事情已经这样发生了,事后再要说个所以然出来,也并不是那么有必要的。

一开始我被这工作量给吓到了,那么多的论文,我怎么去找所有引用的啊?后来被告知只要包含 Google Scholar 上已经收录了的就可以了。不过大概一共有一千多 paper 吧,据说去年周 core 他们做得很辛苦。何老师给了我一个 Word 文档,说是之前的版本,其实只要在这基础上把更新的加进去就可以了。听起来好像工作量减少了许多,但是对于那种几百篇引用的论文,我去 Google Scholar 上找出来,然后每篇依次检查是否以前已经记录下来了,再决定要不要添加,看起来还不如直接无视之前的版本从头来呢。而且那个 Word 文档里面杂乱的格式,还有一些直接从 Google Scholar 上复制下来的还带着超链接的文本,对我来说颇有些不可忍受啊。然后何老师说,你去发动实验室的同学大家一起弄吧。-.-bb 大概这对我来说才是最困难的吧,那些认识但是却不是特别熟悉的人,就是你也不好意思去找人家帮忙,人家找你帮忙你也不好意思拒绝的那种,所以我也只有象征性地问问“最近超忙”的周 core ,他毕竟去年辛苦过一次了,于是还是不要拖他下水了。

V8 Javascript 引擎设计理念

本文翻译自 Google 的开源 Javascript 引擎 V8 的在线文档。其实我都没有真正翻译过什么东西,本来我的英文就比较一般,中文语言组织也很弱。而且许多文档(比如这篇)基本上如果是对此感兴趣的人,直接阅读英文原文文档肯定都是没有问题的。不过既然突然心血来潮,就试一试吧,能力总是要锻炼才会有的。我自己对 Language VM 比较感兴趣,V8 其实并不是一个 VM ,因为它是直接编译为本地机器码执行的,但是也有不少相通的地方。废话少说,下面是译文。

Netscape Navigator 在 90 在年代中期对 JavaScript 进行了集成,这让网页开发人员对 HTML 页面中诸如 form 、frame 和 image 之类的元素的访问变得非常容易。由此 JavaScript 很快成为了用于定制控件和添加动画的工具,到 90 年代后期的时候,大部分的 JavaScript 脚本仅仅完成像“根据用户的鼠标动作把一幅图换成另一幅图”这样简单的功能。

随着最近 AJAX 技术的兴起,JavaScript 现在已经变成了实现基于 web 的应用程序(例如我们自己的 Gmail)的核心技术。JavaScript 程序从聊聊几行变成数百 KB 的代码。JavaScript 被设计于完成一些特定的任务,虽然 JavaScript 在做这些事情的时候通常都很高效,但是性能已经逐渐成为进一步用 JavaScript 开发复杂的基于 web 的应用程序的瓶颈。