about 1 month ago - No comments
自从最近这次换工作以后,空闲时间一下子变得奢侈起来,博客最近也写得少了,一些喜欢的小东西也无暇顾及。 ——————无聊分割线————————- 一直对python很钟情,不过最近很少用,能记得比较完整的程序就是“用Python做了个Spider”,当时在一个Linode的VPS上跑了几个月。最近处理数据时候又重新用python来做,做完之后还是继续感慨它的便利性。 用python的一个最大的优点就是可以快速的迭代式开发,不断的重构,这一点在这次体会尤深。 其中有几次跳跃式的重构如下: 第一次的重构在书写了几个数据段的解析函数之后,决定定制一个规则,然后通过解析规则来处理各种字段。于是有了一个大约20条记录的标签库(后来再加一个文件解析的时候又增加了6行),然后就处理了近30种数据段,而且可以很方便的定制扩充。 第二次重构在输出报告的完成了一个数据段的汇总后,抽象出了一个Report类,完全控制报告的输出。也就有了后来用css+html的报告时候的顺理成章。 另外一次不大的重构,在于利用的简化的有限状态自动机的思想来处理各种特殊情况。当然只是思想而不是一个完整的自动机。 这一条在N年前给sudidi同学的abaqus数据文件提取工具中就大体考虑过,可以说轻车熟路。 后来用配置文件来设置参数,打包exe。从开始学习到成功,大约花了30分钟,代码10行,我爱python。 除去一些修饰性的代码和css样式表,核心代码不到500行。如果用c++的话,代码量至少要翻2倍,时间2倍不止。 Eclipse+PyDev是目前开发python程序的不二选择,除去log外,一个完善的Debug环境还是很赞的。 ——————无聊分割线2——————– 有些东西记下来权当笔记,免得以后再找。 1. 文件路径的相关处理 用 os.path 就完全解决所有问题,包括路径拼接、路径拆分、相对路径提取、文件存在性判断、文件遍历、递归遍历等等。相关函数有: os.path.join os.path.basename os.path.exists os.makedirs os.path.isdir os.path.splitext 2. 文件的遍历 目录下的文件遍历有两种,一种是os.listdir,一种是用os.walk。如果需要递归,则后者更为方便。 1: files = os.listdir(proj_dir) 2: for f in files: 3: filepath = os.path.join(proj_dir,f) 4: if os.path.isdir(filepath): continue 5: if f.find(‘—-’)>-1: 6: shutil.copy(filepath, self.REPORT_DETAIL_DIR) 使用os.walk则很容易进行遍历: 1: for root,dirs,files…
about 2 years ago - 4 comments
听说Google Voice也是很久以前的事情,但是只对美国开放注册,而且必须用美国电话激活。当初填写了注册申请之后就没再管它,直到今天收到了它的注册链接。 注册Google Voice相对简单,只需要美国的IP。在年末互联网大恐慌的背景下,美国IP应该已经泛滥了。注册成功之后需要美国电话激活,网上有很多教程,很多很复杂。 在比较之后发现用VirtualPhoneLine可以一次激活,非常简单。步骤如下: 1. 在VirtualPhoneLine.com注册账号,激活。 2. 登陆VirtualPhoneLine.com,申请免费试用的电话号码,并设置转接到gtalk。 准备工作完成,登陆Google Voice: 1. 选择自己喜欢的号码 2. 选择激活所用电话,填入VirtualPhoneLine.com中的试用号码,Call Now。 3. 几秒钟内GTalk会收到接入的呼叫,Answer,听到语音后输入验证码,回车。 然后听到激活成功。Google Voice网页上也显示成功。 最后,列一下Google Voice的费用: 短信费用:免费 (包括国际短信,测试发到国内手机几乎没有延迟) 美国国内电话:免费 国际电话:和Skype类似,根据目标地区不同。到Japan为$0.03/Min,到China为$0.02/Min。非常便宜,通话效果不错。 或许在大规模流行之后,会被电信或者联通给封锁吧。 其他的一些试用SIP或者VoxOx或者G5的方法,都太繁琐了。
about 2 years ago - 12 comments
之前写了Google Wave试用: 15个关键特性,并且实际用来Google Wave的确很适合讨论交流一些问题。并不适合纯粹的IM聊天。 现在Google Wave似乎开始大量发放邀请了,需要的请留言。
about 2 years ago - 1 comment
通过这段视频和解说,基本上就对Google Wave熟悉了. Google的确要整一个Web OS出来,以后几乎所有的事情都可以在web上处理了. 也难怪现在google talk的客户端被抛弃. 主要有以下方面: Starting a new wave 开始一个新的wave Replying to waves 回复wave Replying with Shift+Enter 试用Shift+Enter回复wave Editing waves 编辑wave Spelling correction 拼写检查 Adding contacts 添加联系人 Reading waves 阅读wave Playback 回放 Searching for waves 搜索wave Movine panels 移动面板 Scrolling 滚动 Tagging waves 标记wave Creating a saved search 保存wave搜索 Making a folder 创建文件夹…
about 2 years ago - 4 comments
Get Rendered HTML Source In Python 前因: 现在的网页越来越动态和漂亮,大量地用到了Javascript,包括但是不限于Ajax,这样一来直接查看网页源代码的话的,获取到的并不是真正的渲染完成后的页面。这对采集来说,是一个很大的挑战。 在火车头当中,对于Ajax获取的数据的话,可以手动分析页面提取的Ajax的处理url,然后来提取。但是对于复杂的session验证(特别是.NET的网站来说)处理比较困难。 另外一方面,对于javascript生成的页面,火车头也没法直接提取。 思路: 首先明确的是必须获取Javascript渲染结束后的结果。这一点是明确的,具体就是方法就因人而异。 而自己解决Javascript渲染无异于痴人说梦,所以必须借助现有的浏览器核心,比如Gecko、WebKit、IE。如果用Java开发的话可以Jrec这个库,它封装了Gecko。如果其他的语言,而且是在windows平台上的话,最简单的就是用—— COM,用Internet Explorer 提供的com组件。 解决方案: 突破了这层关系,下面的就水到渠成了。 在python下,对IE封装的比较完善而且文档齐全的就是PAMIE(http://sourceforge.net/projects/pamie),它的本意是作为自动化测试工具使用的。 需要注意的是,在页面加载完之后需要留出一定时间来让页面的js代码执行渲染完成后再提取html代码。这个时间需要通过试验确定。 需要注意的是: 前面所述的利用PAMIE来获取渲染后的html内容的方法是可行的,但是缺点是效率非常低。对于最常见的ajax动态内容页面来说,最直接的方法还是构造ajax请求,来获取相应内容。这样效率很高,而且返回数据都是结构化的xml或者json数据,比html更容易处理。
about 2 years ago - No comments
就是说在发送之后,,点击undo send就可以撤回修改。 在gmail labs里面开启即可。
about 2 years ago - 4 comments
前因: 前些天为TAR写了一个Python的接口插件tar_pytar后,对python的兴致很高。 本博上面最火的文章就是“开源的火车头采集-Wordpress2.7.1免登录发布接口”,看来大家利用采集做垃圾站的热情也很好。 著名的火车头采集器LocoySpider也出2009版了,解决了.Net 3.5不兼容问题,而且采集标签进行了语法高亮。很好很强大。但是免费版不支持任意附件下载功能… 想下载点资料,但是论坛里面一个一个点击太烦… 于是: 自己做一个吧,python做这个肯定很合适,与火车头的功能做个对比: 说明: 私人玩具,无意公开。
about 2 years ago - 2 comments
TAR(Type And Run)是我一直以来所用的快速启动软件,最喜欢的是它那个快捷键呼出的超级简洁的命令行,而且TAR支持自动提取系统中已经注册的别名,比如excel就可以打开excel,mspaint打开画图。另外TAR支持插件,最常用的就是tar_math,可以对输入命令行的计算式进行计算,给出结果。 当然tar_math也存在缺点,那就是对大整数不支持,而且函数也不够丰富。另外还想增加一个查字典的功能。于是决定给TAR做个插件,取名叫tar_pytar。tar_pytar不只是个插件,而是一个python的接口插件。有了这个插件之后,就可以直接用python给TAR增加功能,而不是重新编译。 官方网站上有插件接口文件找不到了,于是给作者-=GaLaN=-发邮件要来了接口。TAR是拿Delphi写的,不过没关系。 时间紧张,只说明一下tar_pytar通过python接口提供的功能: 完整的math功能,完全可以取代tar_math。因为背后是python嘛。 词典功能,输入查询的英文单词,可以返回中文解释。(从dict.cn查询,同样感谢python的强大) 以后: 作为一个工作的中心,就是一些人对待emacs/tc的态度。
about 3 years ago - 2 comments
不要光呼口号,只要让伟大的G-F.W把ghs.google.com解封,就能让无数中小企业省去一大笔的托管费用。 不过在反低俗的时代,估计没有什么指望了。