文静最近迷上了做菜,大家可以到相册里欣赏一下她的厨艺。文静的菜不仅好吃,而且很有卖相!
http://picasaweb.google.com/usa.chen/WenjingSKitchenFu
大家可以到MITBBS的food版找食谱,很多菜只要严格遵循食谱即可。
阅读(111 次)
文静最近迷上了做菜,大家可以到相册里欣赏一下她的厨艺。文静的菜不仅好吃,而且很有卖相!
http://picasaweb.google.com/usa.chen/WenjingSKitchenFu
大家可以到MITBBS的food版找食谱,很多菜只要严格遵循食谱即可。
阅读(111 次)
→ 5 CommentsTags: Kitchen Fu
花了一个晚上写了一个Python程序,kxw2ebook,可以把科学网博客上的文章下载为电子书并导出到Wordpress里。因为我对科学网的编辑推荐不感冒,所以写这个程序也算是为科学网的作者提供另一个选择。
下载、源代码、使用说明和FAQ等都放在了google code上
http://code.google.com/p/kxw2ebook/
原理大概是这样的:
1. 首先从博客“所有文章”页面下载所有的文章链接
2. 下载文章
3. 通过正则表达式提取文章的主题内容等写入html和xml文件(wordpress导入时需要用)
通过修改脚本中的正则表达式匹配字符串,这个脚本也可以用于其他的博客系统。
几个比较有趣的地方:
1. 科学网似乎用了一种pager叫AspNetPager,在kxw2ebook试图获得多页数据时必须request如下古怪的post data
__EVENTTARGET=right_1%24AspNetPager1&__EVENTARGUMENT=DDDDDDD&__VIEWSTATE=%2FwEPDwUKMTE5MDI4MTYxNw9kFgIC...
我本来以为通过简单的url参数就可以,后来用firefox的LiveHttpHeaders插件截获浏览器请求才知道javascript的__doPostBack()函数会产生这样的浏览器行为。
2. 用pyinstaller将python脚本“编译”成了在windows可以直接运行无需安装python解释环境的standalone程序,通过UPX进行了压缩,但还是有2.5M,作为一个只有console的程序,尺寸是不是太大了。
3. 在测试期间“发现了”GFW,当程序试图下载下面的页面时,
http://www.sciencenet.cn/blog/user_content.aspx?id=25746
连接被重置。不知道GFW对国内的朋友访问国内网站是否有影响,大家可以试试。
将帖子导出到Wordpress还是比较成功的,但目前还无法导出评论。下面是个导出的例子:
科学网博客上的原址:
http://www.sciencenet.cn/blog/科学网编辑部.htm
导出到wordpress.com的效果
http://kxw2ebook.wordpress.com
导出到72pines.com的效果
阅读(177 次)
→ No CommentsTags: 程序
PS:这首是用新话筒录得,condensor的麦克风真的很好,普通的话筒没办法比。
MP3版本下载 (用128kbps格式重新压缩了文件,大小4.7M):
http://toys.huichen.org/fanchang/danxiaogui.mp3
另有lossless的m4a版本下载 (文件大小34M):
http://toys.huichen.org/fanchang/danxiaogui.m4a
阅读(184 次)
→ 8 CommentsTags: 翻唱空间(慎入)
→ 6 CommentsTags: 翻唱空间(慎入)
收到了GAE(Google Application Engine)的邀请函,在其主页上注册了一个帐号,试用了一下。
GAE是google基于其Bigtable和GFS开发的网站开发环境,目前只支持Python语言。GAE的目的主要有两个:
1. 提供一个易于上手的网站开发环境。开发人员不需要自己搭建网络服务器,DNS和数据库等软件,只要使用google提供的API即可用Python开发CGI脚本。
2. 解决网站的可扩展性问题(scalability)。就是当有成千上万甚至数百万每天的用户请求时GAE能根据连接数自动将任务负载均衡到各个计算节点,同时对数据库的存储和操作也可以自动并行化。用户根本无需使用特殊的API即可自动实现可扩展性。由于GAE的实现是基于和Google搜索引擎类似的硬件和软件,网络和节点的维护由google完成,用户无需操心。
这两个想法显然是很前卫的。GAE也是所谓的云计算(cloud computing),它和Amazon EC2的区别在于EC2的用户对节点有绝对的控制权(root),但EC2并不是一个网站开发环境。
我比较喜欢GAE的这些特性:
1. 支持Python。没有哪种语言比Python更容易上手也更容易维护,另外Python的扩展库也非常丰富。
2. GAE SDK中的uploader用起来很简单,而且自带了一个webserver可以让开发人员在本地建立虚拟的GAE环境进行调试。
3. API中有访问者帐号认证的模块,但仅仅限于google account。
4. 数据库的查询命令和SQL很类似。
目前GAE还处于preview release阶段,功能上还有很多不足。下面是我找到的一些缺陷:
1. GAE中的Python版本删除了一些库和库函数。比如不支持写文件和socket编程,不支持C/C++写的extension,很多os库中的函数都不能用了。从安全角度这可以理解。
2. 不支持多线程。
3. API还比较少,文档比较简陋。
4. GAE的后台管理 (console window)很简陋,特别是管理数据库的页面基本上和没有没区别(比如无法通过表单选择某个table中的所有记录然后删除)。
5. 数据库操作的执行效率目前还很差。从一个数据表单中取出5000条记录居然需要3.3秒; 插入100条数据需要3.4秒; 一次删除4000多条数据会超时产生出错网页。
我用GAE写了一个benchmark网站,在这里:
http://benchmarkgae.appspot.com
其中对数据库,网络速度和排序算法进行了测试。还有对Scalability的测试,其中静态存储的可扩展性:
#_of_concurrency speedup
1 1
10 10.0
100 87.2
排序CGI程序的可扩展性:
#_of_concurrency speedup
1 1
10 9.64
100 63.9
前者比后者要好些,但并行程度都较低。
benchmark的源代码可以从上面的网站下载到。
总之,GAE还处于测评阶段,功能欠缺较多,并不适合用来编写较复杂的网站。
阅读(473 次)
→ 1 CommentTags: 程序