自言自语

I'm Wang Xianyuan, writing for myself, more studying, more experience…

Python几行代码实现英文朗读

By

需要安装 pywin32 模块。

#-*- encoding: gb18030 -*-
import sys
from win32com.client import constants
import win32com.client

speaker = win32com.client.Dispatch("SAPI.SpVoice")
print "在下面输入英文单词或者英文字母,也可以是句子,输完按回车进行下一行输入。"
print "如果想退出按Ctrl+Z"

while 1:
  try:
    s = raw_input()
    speaker.Speak(s)
  except:
    if sys.exc_type is EOFError:
      sys.exit()

Posted in Study | Tagged: | Comments Off on Python几行代码实现英文朗读

GAE 的 Memcache 服务

By

年过完了,喜庆淡去。咱也收收心,开始干点正事儿了。头一件事情就是换上了简单高效的主题模板。这套模板在CSS和页面上优化了下,取名“简单就是效率”。
下面写写 GAE 的 Memcache。这东西相当于是数据库的 Cache 了。主要可以用来存放一些经过一定代价计算得到的中间结果或者最终结果以便各个应用模块随时取用。显然有了这个东西就可以减少对数据的查询。
#要使用 Memcache 得导入这个
from google.appengine.api import memcache

def get_data():
  data = memcache.get("key")
  if data is not None:
    return data
  else:
    data = self.query_for_data()
    memcache.add("key", data, 60)
    return data

上面这段函数实现了在Memcache中创建数据。其中self.query_for_data()方法省略,用于物理地获取数据。memcache.add("key", data, 60)将获取的数据缓存起来,60是缓存的期限(Expire)为1分钟。缓存的存取依靠一个Key,在上面的代码中取的是"key"。
有关 Memcache 的更多函数可以参考此处:http://code.google.com/appengine/docs/python/memcache/functions.html
比较完整的应用示例:http://code.google.com/appengine/docs/python/memcache/usingmemcache.html

51啦的服务器问题了

By

“尊贵的用户,您的统计ID所在的服务器数据库损坏,正在尝试修复。”一整天了,现在已经是晚饭时间,登录我的“51啦”统计账户仍然出现这个提示。

为51啦先捏一把汗,不知道这个“尝试”能否成功,但愿它能成。一直在使用51啦的统计,没有换过。后来出来的站长统计、维度、雅虎之类大有压制51啦的劲头,但我没有选择其它。认识了一个有志向、有人品、有能力的好人,为什么要冷落他而另交能人呢?

我想现在应该还有很多像我这么想也是这么做出他们选择的人吧,希望阿江不会让我们失望。

博易v1.8开发快报,欢迎测试并提出您的宝贵意见

By

今天开始在我这个博客上做试验田,博易v1.8 的一些功能先搬上来了,alpha+beta一块儿给测测。目前上线的功能主要有:

1.后台设置相关文章的显示

2.前台根据后台插件(Smiles)的启用情况在评论表单内显示表情插入(这是采纳了博易某用户的建议)

3.应博易用户要求,增加了文章点击次数统计的功能

4.附带了几套支持可视化内容管理的主题模板

5.集成了几个插件

6.高亮的实现方式改为了插件实现,消除了高亮对模板的依赖

……

其中关于文章点击次数的统计,有朋友已经用扩展Post类实现。扩展Post类的确是很好的办法,但得分情形处理。如果数据存储方式采用数据库(SQLite、MySQL或MSSQL)那不会有什么影响;但是考虑到大部分用户采用博易推荐的XML方式存储数据,扩展Post类的方法就会在并发比较大的情况下对性能产生明显的影响了。导致这个影响的原因在于每次点击都会激发一个Save事件,当XML方式存储时,Save事件直接调用IO,产生IO负荷。为了让用户能够在性能和功能上取得平衡,我准备采用插件+XML方式来记录文章点击次数,这样用户可以根据访问情况选择性地使用统计功能。但同时我不能很好的解决数据库方式下的高并发该如何处理好性能与功能的关系了,如果是这种情况,扩展Post类是目前我能想到的最好的方法。关于这个问题,希望和朋友们探讨下。如果你有好的提议,可以在线发邮件给我,或者直接留下你的评论。

后面会根据需要增加新的功能、测试,再择日发布。

更换了博客模板,2009大家一起红起来

By

审美疲劳了,我终于将本以为会保持相当长一段时间的博客模板给更换掉了。结果就是现在的这个新的风格——传说中的盛大红,Web色为“#D0111B”。同时,这套模板在博易官方发布,共享给喜欢盛大红的朋友用。该模板的发布页面是:http://www.blogyi.net/blog/post/themes-SndaRed.aspx

这个模板和以往发布的大多数模板不同的是它支持前台可视化(拖拽)方式来设计博客栏目和内容。使用起来相当方便,我也极力推荐大家使用。模板的制作过程当中本来准备用盛大LOGO作为背景,游戏人物作为头部。但考虑到标识授权的问题就没有采用原来的设计方案了,不过结果蛮好的,大众化了。

我个人比较喜欢这个主题色。记得在高中时我所完成的第一个站点就是采用了类似的红色作为主题色来设计的,当时教我们计算机课程的老师还给我好一通赞赏。不过打那以后,我就再也没有在网页设计中使用红色作为主题色了,直到参加了盛大的宣讲会,经过他们介绍才了解这个颜色被盛大人称之为盛大红。将要谋生于盛大的我看到这种颜色之后的感觉就两字“激情”。但愿我谋生的过程(或者说是事业的过程)能够如盛大红一样激情一点;但愿2009年,牛年的我能够更红火一点;还有我的博客,博易,能够红透大江南北。同时也把这份红火送给我的朋友们,所有到访我的博客的朋友都能在新的一年里慢慢变红,造访我的博客越多越红,评论我的博客越多越红!