甲型H1N1流感最新动态Mashup【更新】

 把之前做的关于猪流感最新动态的Mashup进行了改进,主要有如下:

  • 名称改为“甲型H1N1流感”
  • “趋势地图”的数据现在是通过抓取新浪专题页面而来,不再需要手工同步。(自动化就是好)
  • 改进了“新闻追踪”模块,内容比之前的更加丰富。
  • 修改了标签页的顺序,提升了页面的加载速度

技术实现方面的一些细节:

Pearson相关系数与推荐系统 - Pearson's Correlation Coefficient

 这也是我原来的博客上面的一篇文章,现在把它转帖过来并进行一些更新。

Pearson相关系数用来衡量两个数据集合之间的相似性。比如在一个关于电影的资料网站中,很多用户都可能对其中的电影进行打分。Pearson相关系数可以用来帮助更好的找到兴趣相似的用户,从而进行相关的推荐。这种推荐的基本思路是如果A和B兴趣相似,那么A喜欢看的,B就有很大可能会喜欢看,就可以把A的喜欢看的推荐给B。

假设电影库中5部电影,A和B都对其中的部分进行了打分(5分为满分),A的分数是[3, 2, -, 1, 4],B的分数是[5, 3, 3, -, 5],其中“-”表示未打分。那么A和B的Pearson相关系数是0.866,说明两个人的兴趣是比较相似的。

Pearson相关系数的一个优点是可以避免评分等级膨胀(grade inflation)的问题,也就是说有的用户可能倾向于对所有的电影都给比较高的分数,而有的用户则会比较苛刻,给分都比较低。对于这种情况,Pearson相关系数可以处理。

Pearson相关系数的具体计算公式为:

延迟加载Yahoo! Map (Yahoo! Map lazy loading)

 这是我很早之前写的一篇文章,贴在原来的博客上面,现在把它转帖过来,顺便测试一下FCKeditor的语法高亮插件。

 

通常使用Yahoo! Map的时候,是采用其网站提供的方法:

<script type="text/javascript"
src="http://api.maps.yahoo.com/ajaxymap?v=3.7&appid=YahooDemo">
</script>

 这种做法的缺点是在页面加载的时候就会去加载Yahoo! Map的javascript文件,这会造成页面加载速度变慢。因为它的javascript是采用document.write的方法来输出其需要包含的其他javascript文件的,因为不能直接采用动态创建script元素的方式来延迟加载。

 

猪流感最新动态Mashup

 昨天下班之后,看到网上大家都在讨论猪流感的问题,我也关注了一下,毕竟现在这个是相当热的一个的话题。我看了新浪的专题页面,内容也挺丰富的,基本上什么都包括了。我突然想到,其实可以利用开放API比较容易的搭建出一个这样的mashup出来,包含相关的信息。于是就开始动手做,就得到了这样的一个mashup

点击这里访问该mashup。

用到的实现技术:jQuery, jQuery UI, YUI Reset/Fonts/Grid CSS。

用到的开放API和工具有:Google AJAX feed API,Yahoo! Pipes,Google Maps,屏幕抓取。

Apache FTP服务器

 可能很多人都没有听说过Apache的FTP服务器,不过它对于很多程序员来说,是个不错的选择。我之前也用过很多的FTP服务器软件,不管是庞大的Serv-U,还是小巧的Cerberus,虽说是原生的实现,但是总觉得配置起来不自然。可能对于程序员来说,最自然的配置方式就是万恶的XML吧。
 
Apache FTP服务器基于Apache MINA构建,在性能方面应该还不错,使用起来也比较简单。在不太适合使用盗版软件的场合下,用它是个不错的选择。

解析有道阅读器的划词搜索 - 山寨版

看了有道阅读器的划词搜索功能,觉得有点意思,就研究了一下,自己也改出来一个。点击下面的按钮就可以弹出来,具体的实现直接看页面代码吧。

注意:需要在点击进入本篇博客的具体页面,按钮才起作用。

有道阅读器

今天无意中水木社区的侧边栏广告中知道了“有道阅读器”这样一个东西,虽然说自己用Google Reader用得还比较顺手。不过自从网易从九城手里抢过来魔兽世界的代理权之后,我这个前WoWer对网易还是颇有点好感的说。
 
1)主题订阅
 
这个功能其实很不错的,可以帮助人发现一些当前的热点话题。我觉得这里可以区分开当前的热点话题与个人感兴趣的点。比如我对web开发感兴趣,这是比较持久的,我会自己订阅;如果是一些有时效性的热点话题,只要放在某个特定的目录下面就可以了,定时更新,有感兴趣的就点点就好。
 
2)划词搜索
 
这本身有道词典的功能,现在被集成到里面。这样看博客的时候遇到不认识的单词,可以即时翻译。这个功能还是挺不错的。
 
3)基本UE
 
基本的UE方面,感觉差不多,阅读器也就做到那个样子了。看起来似乎会加上social的功能。(也许已经有了,只是我用游客的身份无法看到。)
 

普通程序员如何进行网页设计?

 由于兴趣所至,我自己经常会做一些比较小的网站,后台功能方面自然不在话下,不过网页设计方面就让我很发愁,所以我做出来的页面都比较丑,布局方面还好,提到配色,字体,按钮和图片之类的,就比较困难了。
我觉得这可能也是一个普遍的现象,现在的所谓“云平台”很多,Google App Engine,Heroku之类的。越来越多的人开始在互联网上做自己的小网站,基本上都是单枪匹马,或者是几个只懂得后台编程的人,毕竟要找一个网页设计人员和你一同合作,有点难。
网上虽然有很多的所谓CSS模板库,不过感觉都不实用;也有很多CSS生成器,但感觉不是一个端到端的实现方案,毕竟网页不仅仅是CSS,还有布局结构之类的。
不知道有没有比较好的方式能够解决这个问题。
 

启用Google App Engine的定时服务Cron

 Google App Engine的定时服务终于出来了。当时在做水木社区图片库的时候就非常需要这样一个功能,不过当时没有这样的能力,所以尝试了替代的实现,比如gaeutilitiesschedulerservice,都不是特别好使。有了这个服务之后,不用担心新出来的数据没有被抓取下来了。

 

要使用这个定时服务也比较简单,首先可能要做的是暴露出来一个供Cron服务访问的URL,这里需要是GET请求来触发的。接着在应用的根目录添加一个cron.yaml文件,内容大概如下,其中url表示的是由Cron服务访问的地址,schedule是定时的间隔。

 

博客快长草了,今天梳理了一下 - Drupal 6.10 + FCKeditor

 博客很久没有更新了,倒是写了几篇英文的。看来同时维护多个博客就是不行啊,我之前的好几个博客就是这样夭折了。所以打算还是只维护这一个了,中文英文都整合在一块得了。

所以今天就把用的Drupal升级了一下,升级到了比较新的6.10版本。另外,用上了FCKeditor这个模块,从此写博客就不用费力的写HTML了。很是舒服啊。

同步内容