SoftCon 2011 – My Presentation

今天上午为2011中国软件技术大会作的演讲,题目是《VLDB Statistics Gathering Strategy – Something You Need to Know But Maybe You Don’t》

内容实际上是分为两个部分:
1. 我认为理想的数据库表直方图信息收集的策略,这在我之前的文章-Oracle Histogram Investigation也有所描述。
2. 在使用granularity参数进行分区表统计信息收集的时候,有一些需要注意的问题,产生聚合统计信息是高效的方法,但是聚合统计信息在某些场景下却并不会如你所愿的生成。

How to use Python to automatically modify WoW toc file version

魔兽世界(World of Warcraft)每次版本升级以后,在没有新版插件出来的时候,通常都需要手工修改插件目录中的toc文件,将其中的版本号修改为当前版本,否则在插件界面会显示“版本错误”而无法正常加载。如果有数十个插件,而又要一个一个手工修改的话,是很大的体力活。之前在Windows下的时候,会有人专门写一些程序,只为自动修改这些插件的版本号。

那么在Mac OS X下,如何修改呢?今天将台服的魔兽世界客户端从之前的4.2升级到4.3,于是顺手写了一段Python脚本,并没有什么灵活的设置,只是将插件目录下的所有toc文件遍历一遍,将其中的“Interface: 40200”字样替换成“Interface: 40300”,仅此而已。

1. 新建update_toc.py文件,用任意文本编辑器打开

2. 将以下内容复制到该文件中,保存
[code language=”python”]import tempfile
import shutil
import os
import fnmatch

#rootdir表示AddOns目录的绝对路径,可以根据不同的安装位置自行修改
rootdir=’/Applications/World of Warcraft/Interface/AddOns’
for root, dirs, files in os.walk(rootdir):
for file in files:
if fnmatch.fnmatch(file, ‘*.toc’):
fullpath = os.path.join(root, file)
#创建临时文件
fh, abs_path = tempfile.mkstemp()
new_file = open(abs_path,’w’)
old_file = open(fullpath)
for line in old_file:
#将所有40200版本号修改为40300,以后如果再升级为5.0,修改此处即可
new_file.write(line.replace(‘Interface: 40200′,’Interface: 40300’))
#关闭临时文件
new_file.close()
os.close(fh)
old_file.close()
#删除原toc文件
os.remove(fullpath)
#将临时文件改名为原toc文件名
shutil.move(abs_path, fullpath)
[/code]

3. 由于是Mac OS X,如果没有什么意外,应该是已经内置Python的,可以通过以下命令确认当前Python的版本。

$ python --version
Python 2.7.1

4. 运行上面创建的python脚本

$ python update_toc.py

Would you like to join us?

我所在的公司-云和恩墨,诚招软件服务类业务顾问。

一、如果具备以下的特质之一,请发送简历至hr@enmotech.com
1、 积极主动的自我驱动;
2、 渴望成功,并愿意坚实付出努力;
3、 灵气,好悟性;
4、 系统软件(特别是数据库软件)技术基础。

二、加入公司,即会获得:
1、初中级顾问4000-8000月薪;高级顾问薪资面谈。
2、6%-10%的项目提成
3、齐全的保险;
4、免费的点心,水果;
5、以人为本,开放自由的创业体验,
6、共享公司发展的全员激励回报;
7、价值创造获得的尊重与成就。

三、工作地点:
1、总部:北京
2、地区总部:东区-上海、南区-广州、西区-成都
3、各省会城市