-
Web 2.0 logo maker
目前网络上各种各样的icon maker可以说是层出不穷,以前也曾写过一篇日志列举了一些生成Email icon的网站。 今天看到新出来一个网站(Logo Maker: Web 2.0 Stylr),专门生成Web 2.0样式的网站标题的。对于像我一样不会Photoshop的人可是个好消息。 根据作者在digg.com上的留言,这个网站被“blogged about like crazy in China”。还有什么是Web 2.0 logo?作者说是“over-done-reflection-logo”。网站的右边列出了最新生成的一些logo,看一下就知道是什么样子了,被许多Blog所采用。 尽管这种图片已经“用滥”了,我还是生成了一个放上来,比以前的文字好看些,又没有破坏整体的风格。或许正是作者所说的在中国如此受欢迎,字体列表的最后有一个“汉鼎繁古印”,正适合于中文。 程序目前还比较简单,只有两种渐变效果。不过由于大众的要求,作者可能会下功夫把它做好。很期待,我已订阅了他的RSS。
-
Google Reader Toolkit
一直希望能有Google Reader Notifier这样一个Firefox扩展,像Bloglines一样,可惜以前搜索的时候只能搜索到一个For Mac的Notifier。Google Reader并没有正式发布一个API,所以它的插件开发并不活跃,不过有人通过反向工程分析出来一些头绪,并且得到了Google Reader开发小组的认可,见此链接。也想过自己做一个扩展,但Javascript实在是不熟悉,只好作罢。 今天又搜索,终于发现有人做了,叫做Google Reader Toolkit。很简单,甚至没有实现登录,只有自己登录或通过别的扩展登录Google帐户才可以使用。目前与Gmail Manager扩展有冲突,但可以与Gmail Notifier共同使用。不知道Gmail Manager是如何工作的,很可能是登录、检查、注销这样,于是Google帐户一般是处于注销状态的。我不喜欢这种方式,没有必要注销。不过我现在就开着Gmail页面不关闭,也就不装Gmail通知扩展了。 安装好Google Reader Toolkit后,它默认是禁用的,右键点击状态栏它的图标进行设置,启用。当它检测到有未读的Item时,默认的Google Reader图标颜色会发生变化,点击图标就会打开Reader页面。 希望作者能够继续改进,更希望Google Reader开发者早日发布API。
-
WordPress 2.0.x需要注意的两个地方
每日自动备份失效。我一直用wp-cron配合wp-db-backup插件,每天定时将数据库备份发送到信箱中。不过好像是从2.0.4版本开始wp-db-backup插件作了修改,使得定时备份不起作用了。解决办法是在该插件的php文件的末尾,找到wpdbBackup_init函数,把其中的“if ( !current_user_can(’import’) ) return;”语句注释掉。 缓存功能默认关闭。就是不在wp-content/cache目录中写缓存文件了。解决办法是在wp-config.php文件中加一行“define(’ENABLE_CACHE’,true);”将该功能打开。WP好像从2.0.3开始就默认关闭了这个功能,因为它有一个安全隐患。不过我们大部分的WP用户并不需要为这个漏洞担心,看看这个页面上westi列的三个必要条件。我们大多都不提供用户注册功能,所以,放心吧。
-
怎样阅读 Blog
不忍心看朋友在慢如牛,广告如牛毛的Live Space上写Blog,劝他搬出来,我给空间。他唯一舍不得的就是朋友们在MSN上可以看到更新的标志(那个星星),怕Blog没人看。于是写篇扫盲文,让他放在Blog上,希望RSS阅读能在他的朋友圈里得到推广。不太会写文章,莫笑:smile: 怎样阅读 Blog Blog是朋友们展现个性、发表观点的自由舞台。对于愿意了解别人的我们来说,阅读其Blog是一个直接而方便的方式。初看这个标题你一定有点奇怪,阅读 Blog还有什么学问,打开浏览器输入地址谁不会啊?确实,通过浏览器直接浏览Blog的见面是一种办法,不过这并不是最方便最有效的。用MSN的可能经 常会看到联系人前面的星星,就点击进入他的MSN Space或Live Space,这样是挺不错的,能及时看到更新的内容。不过如果他的Blog不是用的微软的服务呢?大家都知道Live Space顶上那一大条广告多影响市容,还有它的速度也不尽人意。这篇文章就来说说怎样快速有效地阅读朋友们的Blog。 RSS RSS是一个缩略词,它有太多种解释。在这里,就指显示网站最新内容的一种格式,不仅限于Blog。一般的Blog系统都提供了一个RSS Feed,它是一个网页地址,显示最新的若干个日志。其链接可以在Blog首页上找到,比如用户名为bob的Live Space的RSS地址就是http://bob.spaces.live.com/feed.rss。 有了RSS我们可以干什么呢?如果是在浏览器里输入其地址,那还不如直接上主页看去。不,我们要用一个软件或者另一个网站的服务来“订阅”它。“订阅”听 起来有点像订报纸、杂志的感觉是吧?嗯,有点像。Blog不就是朋友们自己的报纸吗?我们让人给送到门口的报刊箱里,然后再取回来读。以前东跑西跑偷窥别 人的日子结束了,现在你坐在家里看报纸,然后决定要不要去现场看看。这就是RSS给我们带来的好处。 用“抓虾”来订阅RSS 首先推荐用一些网站提供的服务来订阅RSS。许多大网站如Google、Yahoo!等都提供了这类服务。这里就讲一下“抓虾”,容易上手。 首先在抓虾网站上注册一个帐号。填写你的真实Email,抓虾不会发垃圾邮件的:)收到邮件后按提示激活你的帐户,就可以使用所有的服务了。 登录后,页面上方有一个导航栏,点击“我的频道”就可以看到自己已经订阅的Blog了。 点击“添加频道”,右边出来添加频道的提示,然后输入频道的地址(就是Blog的RSS Feed),点击”订阅“,出来一个页面让你修改该频道的信息。你可以在右边选择”订阅到“哪里,如果目录不存在,可以新建一个目录如”朋友“以方便分类。 填写好之后,点击”订阅频道“,稍等片刻,朋友的RSS就出现在页面左侧了!再看右栏,朋友最新的日志标题尽收眼底。朋友的Blog有新日志时,这里也会很快更新的。 开始你崭新的Blog阅读体验吧!点击右边的加号可以展开该日志来阅读,如果你看了高兴或不爽,想吼两声,就点击标题到他的Blog里去留言。 设想你有许多朋友,你经常想了解他们的Blog有没有更新。不要一一打开他们的网址,只要在这里订阅,以后想看的时候只要打开”抓虾“,所有Blog的更新就都一目了然了。 Google Reader也非常好用,可以试一下,选择一个适合自己的。 用GreatNews来订阅RSS 也许你不愿意在网页上阅读RSS,那么就选择一个软件吧。同样有很多软件,不过有一个强大而且免费的GreatNews可以用。我不推荐这种用客户端软件阅读的方式,因为一旦你的系统崩溃或者重装系统时忘记备份,这些订阅信息很可能就会丢失。 安装该软件后,添加频道等方法与上面说的”抓虾“基本类似,就不再多说了。 如果你没有订阅过RSS,你已然落伍了。RSS是被越来越多的人采用的发布和获取互联网信息的途径,赶快尝试一下吧! 前面已经提到,RSS的用处不仅限于Blog,你也可以订阅各大新闻网站的RSS来了解国家大事,或者花边八卦。
-
终于配置好了Subversion
以前在Windows里配置过,记得不太难。不过这次想通过http方式访问版本库,费了好多周折,主要是Apache对目录读写的权限问题,最后照UbuntuChina Wiki上的指导弄好了。看来以后要好好看看Linux的文件权限管理了,不然会遇到好多麻烦。 在Eclipse里通过更新的方式添加了Subcilpse,竟然自动给我搞了个中文版的。我的locale和Eclipse都是英文的啊,难道它会根据IP判断不成?真郁闷,英文界面中冒出一个中文菜单。 机器是通过DHCP分配的动态IP,不过变化不太频繁。所以在域名管理里面增加了一个A记录指向当前IP,变化的时候修改一下,让同学通过域名来访问SVN。不然的话,每次的URL变化,客户端这边可能不太好办。
-
在WordPress里使用LaTeX输出公式
mimeTeX处理LaTeX的数学公式,并直接输出一个gif格式的图片。可以在这里看它的教程,并且也有输入框,让你写几个公式看看效果。我的前面两篇日志中也都包含有mimeTeX输出的公式。 用LaTeX写公式实在太爽了,mimeTeX终于让我们可以在写Blog时也可以方便地插入公式,而不用自己运行一堆命令生成图片再上传。 Dahnielson专门为WordPress写了一个插件,使用一个公共的mimeTeX服务器,从而避免了在cgi-bin中安装(有的服务器还不支持这个)。它从服务器上取得图片,放在Blog目录中的wp-content/cache目录下。只要在写文章的时候把TeX公式用<tex></tex>标记括起来,页面在浏览器打开时就会将代码自动替换为图片,非常方便。 BloggingPro提到了Yujian写的类似插件,不过仍然需要安装mimeTeX在cgi-bin中。其它的方案如LaTeXRender,对服务器的需求更多,就不提了。
-
Lottery问题的递归方程
继续考虑Lottery问题的第三类(有序、可重复),一个同学根据下边的图列出了一个递归方程如下: T(n, m) = \left\{ \begin{array}{ll} T(n – 1, m) + T(n, m – 1) & a \geq 2, b \geq 2\\ 1 & n = 1\\ n & m = 1 \end{array} \right. 设前n个自然数填充m个空,按照要求有T(n, m)种填充方法。图中只给出了n=3, m=3的情况,树的高度为m,从根到每一个叶节点的路径上的标号序列就是一种方法,所以叶节点的个数即为填充方法的个数。用蓝线将图分成两半,则可以发现,左边的子树与T(3, 2)相同,右边子树结构与T(2, 3)相同。可以想象对任意n>=2, m>=2这个式子都成立。 一行行列举T(n, m)的值(按每行m+n的值相等),就可以发现跟杨辉三角很相似。可以证明这个方程的解就是 C_{n+m-1}^m 不过,可不可以在不知道结果的情况下把它解出来呢?
-
Topcoder上的数学题
前几天上Topcoder,第二个题(Lottery)就让我比较郁闷。 输入是一些彩票的描述,有名字、可选数字、空格数、是否有序、是否唯一这些项目,有多种彩票,以字符串数组类型输入,要求在输出中按照各种彩票的可能个数大小对这些彩票排序。给定可选数字n,空格数m,则问题就是在1, 2, … , n中选择m个来填空,并按照是否有序(非降序,如:1,2,2,3)、是否允许重复的限制来计算可能的答案数。 这其实就不算个算法题。首先就是要分析输入字符串,生成可以操作的问题对象(需要定义类),考察的是对语言运用的熟练程度。然后要根据问题限制求出排列数,考察的是对排列组合的掌握。最后是排序,如果用Java,实现一个Comparable接口,还是写一个实现了Comarator接口的类,随便了,不过前一个更方便。如果用C++,那么就写一个回调函数。这考察的又是语言。 可怜我就在排列组合那里出了问题。现在每次遇到数学问题的时候就没信心,总是觉得学得太差了,好像以前学过的东西都忘了。这个问题,如果不考虑是否有序的话还算简单,很容易想出来,但是考虑到有序,就不知道从何处下手了。 问了一下数学比较牛的xl,他马上给出了答案。 Lottery问题解的个数 是否有序 是否允许重复 答案数 F T n^m F F P_n^m T T C_{n+m-1}^m T F C_n^m 我问的是后两种情况,最后一种给出答案我就明白了,n个数里取出m个,按顺序就只有一种放法了。第三种情况,他说也是猜的,看来数学好,感觉也是对的。后来在Wikipedia上找到了解释,这是个很普通的问题吗?我没想到会很容易在上面找到该问题的解释,呵呵。那里已经给出了非常好的讲解,这里就不再赘述了。挺有意思的,自己凭空想,怎么也想不明白是怎么回事。
-
修改live注册页面的userscript
cnBeta爆出了一个注册@live.com用户的方法。以前在yahoo想注册一个用户,能想到的全部已经注册,资源枯竭了。所以这次就抢着上去注册了和自己有关的所有用户名。 顺便写了一个GreaseMonkey的userscript,不用每次注册都要在地址栏手动复制一次。 先安装GreaseMonkey,再点击这个链接:addlive.user.js,GreaseMonkey会自动提示安装。
-
可怜的骡子
它们与这个现代化、快节奏的城市如此不协调。 它们被主人的鞭子抽打着,躲避城管,或者狂奔着与宝马、红绿灯赛跑。 它们的钉了铁掌的蹄子踩在坚硬光滑的柏油路上。 它们总是招来行人异样的目光。 它们不会说话,甚至不声响。