Google还是提供免费的早中晚餐的

一直听说Google中国由于某种原因取消了员工的免费早中晚餐,于是今天就找我在Google的同学确认了一下,Google还是提供免费早中晚餐的。晚餐有限制,是鼓励6点钟以后还在公司的同事去吃。其它的照常。

“批量图片下载”Firefox扩展

批量图片下载“是我在写”实战Firefox扩展开发“时所用的示例,其作用是批量下载网页上的图片。我后来对它进行了简单的修改,使得它支持Firefox 3,然后就发布到了Mozilla。一个多月过去了,有318个人下载了那个扩展,活跃用户有105,看着还行。主要是功能有点过于简单了。

由于这个扩展还不是正式发布的,因此需要注册Mozilla的账号,登录之后才能下载。

2008.12.5更新
有了一个新的下载地址:Softpedia

编译原理领域中的“龙书”,“鲸书”和“虎书”

看到一个人MSN签名,说是“龙书”将在China-Pub上架了,于是就好奇的百度了一下“龙书”到底是什么,这一查就发现了还有“鲸书”和“虎书”,非常的有趣。

下面的内容来自百度知道上的一个问题的答案。

当代编译技术三大圣经!

1.龙书(Dragon book)
书名是Compilers: Principles,Techniques,and Tools
作者是:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman
国内所有的编译原理教材都是抄的它的,而且只是抄了最简单的前端的一些内容。

2.鲸书(Whale book)
书名是:Advanced Compiler Design and Implementation
作者是:Steven S.Muchnick
也就是高级编译原理,象什么陈意云之类的估计也就是这个水平不错了

3.虎书(Tiger book)
书名是:Modern Compiler Implementation in Java/C++/ML,Second Edition
作者是:Andrew W.Appel,with Jens Palsberg

Java中的伪typedef反模式(pseudo-typedef antipattern)

这篇博客是看到了developerWorks上面的一篇The pseudo-typedef antipattern而写的,算是简单的注记。

那篇文章说的是JDK 5.0中引入了泛型之后,声明类型的语句变得比较冗长。比如原来是简单的Map socketOwner = new HashMap();,现在就变成Map<Socket, Future<String>> socketOwner
= new HashMap<Socket, Future<String>>(); 。

为了解决这个问题,有的程序员会使用伪typedef来做,比如:
public class SocketUserMap extends HashMap<Socket, Future<String>> { }
SocketUserMap socketOwner = new SocketUserMap();
在以后的代码中就可以使用SocketUserMap来代替冗长的类型声明了。

买书成瘾

说起来有很久没有买书,上一次在当当买书还是今年3月份的时候,这半年都没有新买书。也是最近才看到一本不错的书《代码之美》(Beautiful Code)出了中文翻译版,于是就想去当当上面买,然后就顺便看到了很多想买的书,就一口气买了7本,总共花了350多块。唉,啥时候才能看得完呢?

“水木社区图片库”2.0版初步完成

水木社区图片库是我一直在维护的一个小应用,现在2.0的功能已经基本完成了。重大的改进如下:

1)移除了“我要欣赏”按钮,改成通过下拉列表直接选择。“点击刷新”按钮目前无法移除,还不能实现定时刷新的功能。

2)左边的主题列表现在可以隐藏,增加了观看图片时的可视面积。

3)增加了幻灯片形式的查看功能,当图片超过1张时,默认以幻灯片的形式查看,可以在普通模式和幻灯片模式之间切换。

4)Ad.....s

2.0还计划要实现的功能有:

1)通过Cookie来保存主题的已读状态

Ruby发明者松本行弘的编程十句箴言

这应该是一篇被广泛转载的东西了吧,我也转帖上来吧。

松本行弘(Yukihiro Matsumoto)是Ruby语言的发明者。

1 Learn more than one programming languages , preferably many different syle ones , like scripting ,object-oriented ,functional , logic ,etc. Learning languages teaches you many about programming.
2 Read good books , for example , "Pragmatic Programmers" ,"Refactoring",and "Art of Computer Science".
3 Read the source code.The source code is the source of information and knowledge.Thanks to the opensource.

360保险箱 - 虚拟内存杀手

其实,360保险箱是一个不错的产品,在网络日益不安全的今天,是很需要这样一个东西来保证网上银行,游戏,即时通讯软件的安全的。与它类似的产品也有不少。

我现在发现的是360保险箱在进行保护的时候,会变成一个虚拟内存杀手,疯狂的占用你机器的虚拟内存,使得机器变得非常缓慢。比如我用一会网上银行,用完之后,虚拟内存多达600多兆,而且关闭网上银行之后,这些虚拟内存居然不释放!!可想而知我的机器该多慢了。要命的是那个该死的360的进程居然杀不得,惟一的办法就是重启电脑。

我现在都不用360保险箱来保护我的应用了。

“水木社区图片库”的下一步计划

水木社区图片库”这个应用的下一个版本,我希望能够做如下的改动吧:

1)去掉两个按钮,增加自动刷新的功能
2)提供Flash版本
3)支持幻灯片

使用Flex SDK的mxmlc在IBM JDK上抛出java.lang.IllegalAccessError

【2009/05/05更新】:我今天试验了一下,使用IBM JDK 6.0的话,就算添加这样的设置,还是会出错。所以最好的办法还是使用Sun的JDK,通过在jvm.config里面修改java.home变量就可以了。

 

使用Flex SDK来中的mxmlc来编译mxml文件的时候,如果是使用IBM的JDK,会抛出java.lang.IllegalAccessError导致编译失败。这是一个已知的问题,解决办法是在与mxmlc.exe同目录的jvm.config文件中在java.args参数后面加上-Xbootclasspath/a:c:/{Flex SDK目录}/lib/xercesImpl.jar,其中的路径指向Flex SDK中xercesImpl.jar文件所在的目录。

同步内容