February 2012 M T W T F S S « Jan 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 -
新鲜出炉
雁过留声
- Ivy on 2012,魔都开年
- hzmangel on 2012,魔都开年
- Lena on 2012,魔都开年
- hzmangel on List all CVS tags
- OO on List all CVS tags
Tags
不明真相之围观
- Android中使用自定义Adapter - 3,842 views
- 让win下的vim支持非等宽字体 - 2,416 views
- C++中静态成员函数的声明及定义 - 1,332 views
- python中的静态成员函数 - 1,291 views
- VIM LaTeX Suite - 1,290 views
- List的Iterator - 1,065 views
- Pietty + Xming,在Win下用X - 1,008 views
- 给iphone传电子书 - 943 views
- AutoHotKey 设置窗口在最前 - 748 views
- 用AutoHotKey窗口平分屏幕 - 709 views
归个类
回忆
- January 2012 (1)
- December 2011 (1)
- November 2011 (1)
- September 2011 (1)
- July 2011 (2)
- June 2011 (1)
- May 2011 (2)
- April 2011 (1)
- March 2011 (3)
- January 2011 (2)
- December 2010 (4)
- October 2010 (2)
- September 2010 (2)
- August 2010 (1)
- July 2010 (3)
- June 2010 (3)
- May 2010 (2)
- March 2010 (5)
- January 2010 (7)
- December 2009 (5)
- November 2009 (2)
- October 2009 (1)
- September 2009 (5)
- August 2009 (3)
- June 2009 (1)
- May 2009 (4)
- April 2009 (2)
- March 2009 (1)
- February 2009 (3)
- January 2009 (3)
- December 2008 (6)
- November 2008 (14)
- October 2008 (5)
- September 2008 (11)
- August 2008 (8)
- July 2008 (9)
- June 2008 (21)
- May 2008 (17)
- April 2008 (17)
- March 2008 (15)
- February 2008 (1)
- January 2008 (3)
- December 2007 (1)
- October 2007 (12)
- September 2007 (8)
- August 2007 (9)
- June 2007 (8)
- May 2007 (10)
- April 2007 (3)
- November 2006 (5)
- October 2006 (2)
- September 2006 (16)
- August 2006 (13)
- July 2006 (4)
- June 2006 (1)
- April 2006 (1)
- March 2006 (6)
- February 2006 (1)
- January 2006 (3)
- December 2005 (6)
- November 2005 (15)
- October 2005 (12)
- September 2005 (1)
- June 2005 (4)
- May 2005 (12)
- April 2005 (16)
- March 2005 (6)
- January 2005 (13)
- December 2004 (3)
- November 2004 (8)
- October 2004 (13)
- September 2004 (13)
Author Archives: hzmangel
被GAE打击……
本来测试已经没啥问题了,但是,居然,它的那个urlfetch居然功能不全,或者是说那几个提供feed的网站有点啥,不管怎么样,结果就是,我用它的urlfetch.fetch()抓不到我想到的数据,真郁闷。话说,更郁闷的是昨天拿来试这个功能的那个地址可以,要是昨天那个就不行了,我就不做了撒,诶。看来又要想东西做了,还是看看它和G家自己的东西能不能很好的结合吧…… 希望这两天的时间没有白费……
Posted in Happy coding
Leave a comment
App Engine中后台任务的实现
灌水灌上瘾了,没办法,呵呵,就再来一篇吧。 写的那个RSS聚合应用,想在后台运行一个单独的线程,用以从那些地址更新RSS信息,一开始很傻很天真的用thread来写,写了一半想起来了,去查查支持不支持。去开发者论坛上一找background,还真有人在讨论。扫了一眼,就是现在还不支持,然后一帮人在Google Code的某个Issue上灌水,话说我也去加了一瓢,嘿嘿。 目前不支持,但我还是要用啊,继续转,果然找到了个折衷的方法,其实也很简单,就是把那个本来要写成thread的类映射到某个URL上,然后过一段时间访问一下,这个可以在别的任何机器上用计划任务实现。刚试了一下,效果不错,暂时先这么用着吧,呵呵。
Posted in Happy coding
Leave a comment
在App Engine中访问外部网站
下午做RSS聚合网站时,需要从外部的地址抓feed,用的是feedparse的库。但是怎么弄都出错,所以很郁闷,想从RSS的字符串解析一次,看看有没有错。想当然的使用了urllib,结果它也出错。由于有了昨天模板的经验,所以直接去找google的文档。果不其然,它不支持直接从外网获取内容,如果有此需求,则需要使用它封装好的一个urlfetch库中的fecth方法。没办法啊,那就用吧,谁让人家的地盘人家做主呢。 抓取内容,判定返回值是否为200,取结果,到这一切顺利,于是就开始用feedparse解析。解析也没问题,但是郁闷的是,这样解析出来的东西没有时间信息了,就是它得不到这个RSS的最后更新时间,去urlfetch的文档里面转了一圈,也没见有相关的内容,只好自己另想办法了。最后的解决办法是在FeedInfo中加入了一个字段用以存放最后更新的时间,然后拿feed中的每个文章的updated_parse时间与这个时间比较,如果文章的时间较新则插入库中,否则不处理。在写时候漏掉一条语句,调了好长时间,真郁闷。 PS:logging真的很好用,直接在服务器的终端窗口输出信息。其实我本来是想用printf的,结果伊居然不支持,FT。PS2:如果loggin的消息调成debug,则在开服务器的时候需要加上-d选项,否则DEBUG的信息不输出,我为这折腾了10分钟,那几条logging语句一会加上一会删除,心里还直嘀咕,难道又被我找到个BUG…….
Posted in Happy coding
Leave a comment
在App Engine中使用数据库
下午想了好久,才想到做一个类似Planet的Blog聚合的东西,也算是给自己玩玩吧。看了一下文档,它不支持往主机中写文件,如果需要存放数据的话,需要使用它的Datastore,其实就是后台给提供个数据库,这样也好,也算方便管理吧。 动手写了写,大概需要两张表,一张表维护feed的信息,另一张表存放文章的信息,反正目前是这样的,以后有什么再加吧,呵呵。和Django中类似,直接用一个class表示一张表,而且也是分多种字段值,无外乎就是那些啥个文本啊,数字啊,链接啥的,与Django不同的是它需要根据字段值的不同构建一个db下某个模块的实例。还有一个reference字段类型用来表示关联表,它存放的另一张表中的某个字段值的key。大概是因为还算比较熟悉Django的数据库模块,所以没感觉到有啥困难。有DB就需要有查询,App Engine的查询使用的是像Django中的模块,或者使用GQL语言,和SQL类似,不过它的文档中只有SELECT,而没有其它的诸如INSERT,UPDATE啥,不过如果需要更改数据的值可以先查询,然后直接对结果进行赋值操作后调用put操作即可。用起来还是满简单的,呵呵,反正大概能满足我的要求了。
Posted in Happy coding
Leave a comment
App Engine 的模板支持……
是支持模板了,但是居然只支持把模板放在工程的根目录,好像是权限的原因。郁闷啊,想好的目录结构就这样被破坏了,还好支持把css等静态文件扔在别的文件夹。明天折腾折腾UI吧,困了,睡觉。
Posted in Happy coding
3 Comments
在 App Engine 中使用模板和静态文件
看到App Engine支持模板,扫了一眼,和Django的就是一样的,它下面的链接也直接说了,用的就是Django的模板系统。看来这次又有便宜可占了,直接上手,不错不错。 和Django中一样,需要使用静态文件,但是在yaml文件中设置了static_dir再起服务器死活就是开不起来,直接去google.com找未果,然后想到了它的开发group,果然碰到一群和我碰到同样问题的人。后来好像说原因是因为Windowz下用的是 \ 作为路径分隔符,在某个正则中变了转义,所以就那个啥了。一种解决方法是在yaml文件中把所有的静态文件写进去,看着头就大;还好有人想到了用正则,于是就有了一种新的方法。 – url: /stylesheets/(.*) static_files: stylesheets/\1 upload: stylesheets/(.*) 查了一下,upload参数的意思没看太明白,好像是说如果文件匹配此参数后面的正则,就被这个handler接管,主要用处是确定和url和static_files后面正则匹配的路径对应于哪个文件。汗自己的英语理解力,反正先用上了,确定能用了。然后按教程中写的,直接渲染吧。 居然发现了一个bug,呵呵,有意思。
Posted in Happy coding
Leave a comment
初用 Google App Engine
在邮件列表中看到了这个东西,感觉满好玩的,是用python的,也满合胃口的,申请了一下,然后过了一会拿到的许可。有人说是在后台有一个sleep 3000,呵呵,不知道是真的假的。反正我是有了,用着玩玩吧。 下载了SDK,没细看里面的目录结构,只是知道里面有一个脚本可以当作开发时的服务器,还有一个脚本可以用以把文件上传。网站上有一个教程,老例子,上来先是一个helloworld。它的工程中需要有一个app.yaml用以标识工程的ID,刚写的那个yaml文件如下: application: sonic version: 1 runtime: python api_version: 1 handlers: – url: /.* script: helloworld.py version是工程的版本,runtime version和api_version这俩目前只有一种选择,不知道以后会不会更改。然后就是写主要的部分了,handlers。首先是以减号开始,后跟url关键字,冒号后是正则的URL列表,下一行的script是标明处理这个URL的脚本,后面自己写的。如果在url字段中用了正则表达式,则将请求传入脚本时会自动将匹配的字符串作为参数。后面的那些静态文件和登录啥的没细看,看到再写。 然后就是里面的helloworld.py文件了,最简单的就是三个print,当时看到我直接喷了,真的。 简单的不能再简单的代码了。 print ‘Content-Type: text/plain’ print ” print ‘Hello, world!’ 反正就是这么简单。然后运行它的那个简单的服务器,运行时需要指明工程的目录,即包含有app.yaml文件的目录。运行后就可以通过浏览访问8080端口来测试服务了。还好第二个程序算是有点内容了,虽然也还是HelloWorld,但是它用了webapp的框架,代码量也有点多了。 import wsgiref.handlers from google.appengine.ext import webapp class MainPage(webapp.RequestHandler): def get(self): … Continue reading
Python取当前循环次数
在groups上瞎逛,看到了这个,觉得满有用的,于是复制到这里一份。 在循环中使用enumerate可以同时取得循环次数和循环变量的值,使用方法是这样的 1 for i,v in enumerate(['a','b']): 2 print i,v 内置的函数,从2.3版加上去的。在这记一笔……
Posted in Happy coding
4 Comments
没有雨的清明
应该是在北京过的第七个清明吧,只知道这是第一个有假放的清明,于是乎,北京的大街小巷上又充斥着一堆一堆又一堆的人,各种口音,各种肤色,把本就已经熙熙攘攘的街道,商场,景点等能放的下人的地方,变的更加拥挤。 在来北京之前,一直固执的认为,清明就应该是在如丝的细雨中度过的,静静的小雨,把天地间的一切东西都蒙在一层淡淡的雾中。行走在雨中,能感觉到轻抚在身上的雨丝,很舒服。在脑海中还会浮现出这样一个场景:一个牧童,骑在青牛上,吹着用青竹削制的牧笛(指不指杏花村,无所谓了啦)。这一切就是是一幅活动的水墨画卷。丝丝的小雨在我们那倒是比较常见,刚好清明前后那几天总会有几天大概是样的天气,所以也就一直没有更改自己的想法。但是等到了这边,才知道,清明并不是非要雨纷纷的,太阳公公在这段时间也是可以露脸的,虽然感觉有些不舒服。其实感觉到更不舒服的就是太阳公公好勤劳啊,一年365天基本上天天上班。 已经忘记了江南水乡的春天,7年的日子,改变了我很多,虽然没有真正喜欢上这个地方,但是还是慢慢的在被迫熟悉于它的一切。就要走到人生的第一个转折点了,希望我能走好,不知道几年后,我会不会对这个地方产生感情,同样也不知道几年后,我是否会换一个地方继续漂着,还有不知道几年后,我会走哪一条路,做什么样的工作。太多的不确定因素,使我已经不敢对我的未来做出期望,最多也就是可以在脑海中憧憬一下某些场景,然后继续回到残酷的现实中,是不是只有等自己过上了清明节,才能说的上是不会变了呢,因为大家都说盖棺定论嘛…… 也已经有7年没有在清明的时候,给家里面那些搬到另一个世界的老人们烧纸了,虽然知道这也许只是一种给活人的寄托,但是,又没有理由让它消失,那就放那放着吧。怀念爷爷他们,不知道在那边过的好不好(老人家好像没托梦,应该还行吧,呵呵),晚辈在此给您几位请安了。 PS1:发现自己总是忘不了家乡的春雨,都快成月经贴了……PS2:同样固执的认为,清明就是在4月5号,但是今天从老妈的电话中得知,今年的清明是今天……PS3:阳光明媚的清明,总是找不到某些感觉,加上现在的假期,估计以后就更难找了。话说,哪怕给个阴天也好啊……
Posted in 杂九杂十^_^
3 Comments
香山 -> 六郎庄,穿越?
下午闲着无聊,看着天气不错,有人提议去香山,于是就去了。 先是331,上了车,觉得挤,过了几站才发现,后面还等着一堆人呢。快到香泉环岛的时候,那叫一个堵啊,人又多,忍不了了,下车散步过去的(最郁闷的是我们下车了,那331开的贼溜……)。两站路走起来倒是很快,买票,进门,在正面转了转,爬吧。爬山倒是没啥好说的,反正只是出来放风,所以没有上到顶,大概爬了点,就开始下山了。 出了东门,在买卖街转了转,想着找辆331回去吧。正以为旅途就此结束,没想到好戏刚开始…… 走出买卖街,先看到的就是几辆公交和一堆私车堵在路上,一动不动,延伸到远方。我们想着,走走看吧,看到车站那边怎么样。然后到了车站,还没找到331的车,就看到等车的地方那叫一个人山人海啊。几个人一合计,往前走走吧。刚好有点饿了,去路边一家小店吃了份炒饭,于是开始了我们真正的旅程。 刚开始,想着往前走几站,找个别的车子坐坐后倒车,可是越往前走越知道不妙,从香山开出来的车子就没有一个能开的动的,而且上面都是像罐头一样挤满了人,就算想上也上不去了。没办法,只好继续走。找到个路口,想着就往四环去吧。从香山南路转到闵庄路,然后是北坞村路,最后在六郎庄路上的车。运通113,转498,回学校。 反正这次走路算是走爽了,一路过来,看到的都是大包小包从香山上下来的人,而且就我们这一路,闵庄路快走到头了,才看到第一辆从香山出来的公交车。路上每一个公交车站那都等着一堆人准备上车,呵呵。 没啥别的想说,就是记录一下这次的行程,可惜没有GPS,不能记录行迹,看着地图又有点犯晕,也就只能记个大概吧。路上风景倒没什么,不过真想骑车再走一次,有几条路又宽又没车,骑起车来一定会很舒服的,嗯。 感慨一下,人真多啊…… BTW:香山的郁金香还没开,倒是植物园的牡丹说是开了,而且花期就这几天,在考虑是不是再去自虐一把。不知道玉渊潭的樱花能不能等到这个清明过了以后吧,实在不想再去踩人或者被踩了……
Posted in 杂九杂十^_^
2 Comments