Category Archives: Happy coding

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

Posted in Happy coding | Tagged , | Leave a comment

Python取当前循环次数

  在groups上瞎逛,看到了这个,觉得满有用的,于是复制到这里一份。  在循环中使用enumerate可以同时取得循环次数和循环变量的值,使用方法是这样的 1 for i,v in enumerate(['a','b']): 2 print i,v 内置的函数,从2.3版加上去的。在这记一笔……

Posted in Happy coding | 4 Comments

在ReST文档中使用pygments

  最近在整理个东西,本来想用LaTeX做的,但是想想它的代码高亮实在麻烦,而且默认的情况下只有黑白的,真的很难看的;而且最终发布是PDF,有时也不是很方便,所以考虑用网页的形式弄。不想为这玩意再架个服务器,想来想去,能用好的大概就是 reStructuredText 了。   说是想到了reStructuredText,其实一开始是想自己写一个的,大概也不外乎是标记分析啥的,主要是想要 pygments 带的语法高亮,只是在网上找东西的时候,突然发现 pygments 已经支持了rst的编写,于是就打消了造轮子的想法。毕竟,现在能把文档整理出来是最重要的。但是用的时候碰到了点问题,它是通过rst的directive支持扩展的。一开始是通过easy_install的包没有那个rst-directive.py的文件,使用hg弄下来的代码里面才有;弄下来后紧接着就是安装directive。折腾了半天,直到今天才找到一个网页上有大概的步骤,照做,然后一切搞定。   首先需要把那个rst-directive.py文件拷到docutils/parsers/rst/directives/下,然后再在那个directives目录下的__init__.py中加一行,’sourcecode’: (‘rst-directive’, ‘pygments_directive’), 至于加哪,就在类似的地方加吧,里面有一堆directives的,这样就算注册了,然后在rst文档中,就可以使用.. sourcecode这个directive了,rst会自动调用rst-directive中的pygments_directive来处理。   这样处理还不行,因为pygments默认只是把程序通过词法分析器拆开后,归到一个一个的class下,还需要CSS才能生成带颜色的东西。在网上找它的CSS文件的时候,碰到了一个有用的命令: pygmentize -S default -f html 这样它会在 stdout 输出CSS,直接重定向到文件即可。在rst2html中使用时,可以通过–stylesheet等参数设置使用的CSS,好像默认它会把这些CSS嵌入到网页中去,嗯。   OK了,还是满不错的,代码好看多了,嗯 ^_^

Posted in Happy coding | 1 Comment

初尝Flex

  终于还是没有忍住,开始弄Flex了,下载的Flex 3 SDK,刚花了一点时间编译了它的explorer例子,效果不错,满好玩的,嗯。

Posted in Happy coding | Leave a comment

python中的静态成员函数

  被C++郁闷了,编译一次老半天,于是又想到了Python。在试着把C++的东西转过来的时候,突然想要用到静态方法,正要在def前面加个static,突然想到没有这么玩的啊,于是查自带的文档,居然被我找到了。

Posted in Happy coding | Tagged , | 1 Comment

用swig给C做单元测试

  最近因为找工作的原因在看数据结构,当然需要写程序。但测试这一块一直没去试什么工具,昨天写了个程序,想想不用不行了,于是就开始去找。

Posted in Happy coding | Leave a comment

C++中静态成员函数的声明及定义

  今天才知道,静态成员函数在声明的时候前面加上static,但是在定义的时候不需要加,否则编译时会报错。在这留一笔。

Posted in Happy coding | Leave a comment

List的Iterator

  写个小程序,用到了List,而且要用到它的Iterator,由于以前有用vector的经验,想当然的在Iterator上做了一个+3的操作,结果报错。当时FT,然后开始写测试程序,顺便上网去转转,结果程序写到一半的时候,看到篇文章比较各种Iterator,然后明白了,List的Iterator是双向的,而vector的Iterator是random的,就有了对+n这一操作支持的不同,而从前没看过的我就稀里糊涂的FT了。写下来,防止以后再稀里糊涂,嗯。

Posted in Happy coding | 3 Comments