收拾东西,准备撤了

[| 2010/10/02 21:29]
明天一点半的飞机,要提前几个小时坐车过去。今天事先踩了下点。想退深圳通结果人家国庆不营业。于是回来的时候买了些东西把深圳通里的钱花的差不多了,只留了六块明天坐车。

晚上收拾东西,意外的发现700现金。。估计是带过来以后忘了。爽,感觉赚了700的样子。

和房东算清了水电什么的。准备电脑装包了。东西比较多,估计一背包一提的小包装不下。特意买了个小编织袋。

待了3个月,有点不舍。深圳的很多特色还是挺让人怀念的。
ipod这个东西我感觉定位就是给赶潮流的电脑小白设计的。貌似时间什么的都是iTunes自动设置,不能自己手动改。但是iTunes官方商店现在在国内还无法连接,原因说是在大陆还没上市。估计小白们要傻眼了,这可咋办捏,还好,我表示鸭梨不大。连接到官方商店一看,我kao,都是美元为价格单位的。穷人买不起,还是等破解吧

香港一日游

[| 2010/10/02 02:19]
马上就要回去了,办的港澳通行证还没有用过,趁十一假期赶紧用一下。

昨天打电话给李bo,约好了联系方式。今天早晨八点多一点起来。买了两瓶水。就去坐地铁了。

很快到了罗湖,根据出站指示,很快的到了海关。两次排队。时间都不是太长。然后就到了香港的境内了。买了张八达通,买了个手机卡,前者150,后者60。

装上卡给李bo打电话,刚开始以为去掉85即可。结果老是打错,一直上了火车,问了问,原来要去掉852,汗。

到了旺角东,见到李波,开始逛。香港的街道很窄,旺角东这一块两边的房子也比较破,但是公共设施很完善。红绿灯会发出或紧或慢的响声,向盲人提示当前的状态,很人性化。

这次来香港两个目标,一个是买个5230,一个是买itouch4,在旺角东来回转了几圈,价格都差不多,又去女人街走了走,买乱七八糟的小东西的,没啥兴趣。然后先吃饭,吃了个丸子面,忘了学名叫什么了。丸子很不错。弹性甚好,38。在香港这个价格算一般了。

出来开始出手,先买了5230,1430,带4g卡,第二块电池等等。又买itouch,结果大多无货。有一个商店有一台,但是搭配一个充电器和一套贴膜+保护套。多加300块。那个充电器和保护套明显不值300,不过别的地方都没货。来香港一次不易,咬咬牙买了。2088。

然后出来转转,不知道买点什么,后来想想买点吃的什么的吧。进了个药店一转,什么也不懂,销售员各种给推荐补品什么的。后来转了个角落,发现有酸梅汤和凉茶,买了一罐酸梅粉,两个凉茶,100出头。

香港基本全是粤语了,店员虽然会普通话,但是讲的不怎么样。都是李bo负责用粤语和店员交流。在这表示感谢。

该买的东西都买了,开始乱转,跟着李bo,从旺角东一直走,走了很多地方,有的记不太清楚了。走过一个九龙警局的地方貌似,附近有个公园,里面很多菲律宾人,李bo说香港这边菲佣周末都要出来转。一般会在公园等地方扎堆坐着。我们休息了一下。继续走。忘了走了多长时间转了几圈,后来到了维多利亚港,(还去了个大的商场,忘了顺序了)很繁华,景色不错。转了几圈,坐船到香港岛上。转了一会,去吃饭。吃饭前转了转酒吧那一块,外国人居多。晚饭吃了个鸡肉饭,50。也还不错。吃晚饭出来坐小巴。上山,转悠了半天,到了。这个时候天已经黑了。山上人也很多,由于晚上深圳这边的地铁停运早,所以我们开始下山。下来的时候封路了,小巴换了个地方停,我们走了一段路才看到烟花,刚好开始。开始看,持续23分钟,看了看也没什么新意。

看完烟花坐地铁。在地铁上我担心手机和itouch过海关被查到,还装到兜里,后来证明海关基本不管。出关后赶紧去地铁站,刚好11点。恰好有一辆停在那里,我上去后3分钟就开了。正在庆幸赶上了最后一班车,后来问了问旁边的人,说国庆延长时间。。。亏了,白紧张那么长时间。11点40到了深大站,这时站内广播最后一班车要发车了,果然延长了40分钟。。

回来整理了下东西,试了试手机。玩了下itouch。现在itouch不能越狱,蛋疼。买来尝鲜还不能玩。不过确实用起来很爽。

整理了下剩余的港币,除了500和1000的,正好有一套。10元的还有塑料版的和纸版的。有意思。1元硬币还有个78年女王头像的。真古老。先写到这里,很晚了。

SuperMail更新-V0.8

[| 2010/09/28 00:51]
1,修正:在弹出修改/添加配置的框后,假如未提交任何数据就关闭框,不再刷新页面。
2,修正:初步解决邮件转发环路。
3,新:用户设置目标邮箱后发送通知邮件。
4,添加新域名,采取直接vps接收方式,避免一些邮件被qq企业邮箱当成垃圾邮件过滤掉。避免用qq邮箱向supermail地址发送邮件时被提示地址不存在。
今天准备上线SuperMail,发现后台程序有两个问题,一个问题是相对路径问题,这个好解决,在程序中设置一下工作路径就可以了。还有一个就是权限问题。

背景:/var/spool/mail/a 这个是邮箱,权限为660,属于a用户,mail组
程序的运行者:b,mail组。

b用户把a邮箱中的邮件复制到临时文件中后,调用mailbox类的clear方法将a邮箱清空。结果a邮箱的权限变成775,拥有者b,所属组b。猜测clear是把a邮箱删除,重新建立了一下。粗看了下mailbox源码,貌似不是这样的,时间原因,没有细究。(疑点:将/var/spool/mail/的umask设置成0177后a邮箱还是变成775,不知为何)

当sendmail给a邮箱投递信件的时候,发现a邮箱所有者非a,于是chmod所有者为a,并将权限改成600(邮箱权限默认是660的),结果导致b用户无法读取a邮箱。

导致这个问题的根本原因是clear方法的实现不当,所以决定重载clear函数,改为使用truncate函数将文件截短为0。遇到另一问题:如何取得a邮箱文件描述符。因为程序逻辑是mbox(mailbox的派生类)将a邮箱加锁,复制内容,清空,解锁。复制内容后,清空前是不能解锁邮箱的。复制内容后是mbox的私有成员_file拥有a邮箱的锁,假如这个时候通过open获得a邮箱的一个描述符,是无法操作a邮箱的(无法获得锁),_file又不能释放锁。所以只能设法获得_file,用来截短文件。查了下,mailbox类中没有方法可以获得私有的_file。尝试在mailbox的派生类中调用self._file.truncate(0),居然成功了。。看来Python中派生类中是可以使用父类的私有成员的。不过这么实现感觉比较山寨。期待更好的方法。

注意doctype的重要性

[| 2010/09/26 01:11]
今天用tipswindown,结果在ie中死活显示不正确,找了所有可能出毛病的地方,都找不到,实在郁闷死了。最后突然想起来页头doctype没加,加上:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">后,好了。
做了这一周多,终于把邮件自动派发器的前后台都做出来了,不过只是一个demo。功能还很不完善。

后台采用python作为处理程序,前台设置页面使用php。用户配置数据库使用sqlite3。

做的过程中接触了不少新技术,学到了很多新东西。

codeigniter使用sqlite数据库

[| 2010/09/24 16:35]
今天做邮件转发程序的web页面,要读取配置数据库,由于配置数据库使用的是sqlite,所以要用php读取sqlite。

php使用sqlite有两种方式,一种是pdo驱动,一种是用php_sqlite模块。

首先试了试php_sqlite模块,结果发现centos没有这个模块,下了一个试着编译了一下,乱七八糟,这个方法太不普适。放弃。

然后使用pdo方法。用$test=new PDO('sqlite:test.db'),获得pdo连接后,可以使用了。

然后要在codeigniter里使用sqlite数据库,所以查了下文档,原来codeigniter 1.7.*集成的sqlite模块不支持sqlite3,而为了对php4的兼容性,没有包含pdo模块。还好官网有pdo驱动,按说明下载、配置好后发现报“SQLSTATE[HY000] [14] unable to open database file”这个错误。折腾了一下午。发现直接用:php test.php可以打开数据库,但是用web服务器就不行。看来要么是权限问题,要么是配置文件的不同。用两种方式打印了phpinfo,发现没有什么问题。疑惑了好长时间。。

突然想起来,数据库所在的目录树中有一层是没有给web服务器访问权限的。。怪不得,把权限放开,正常了。

Python中删除对象属性

[| 2010/09/23 19:24]
今天下午把dismail的数据库模块和邮件发送模块都做好,并调试好了。正在高兴,发现派发出去的信件里带了长长的一大串无用信息。想清理一下header。结果遍查Message类方法,没有对应的,只有添加header属性的函数,没有删除的。网上搜索了很长时间,毫无结果。一度想改写标准库,或者自己处理一下mbox文件,不过考虑到兼容性和稳定性,没有那样弄。

突然看到一篇文章说,可以用messageObject[key]的方式来访问header的字段,试了一下,果然可以。于是想到既然可以这样访问,能不能用这种方式去掉指定的属性呢?查了下手册,发现del方法,一试,好用。爽,问题解决了。用keys函数获取header中的所有字段,然后用正则筛选一下,删除掉无用的。邮件头大为精简了。
今天发现原来python中内置了mailbox类,可以解析linux系统邮箱。并附带了详细的说明,汗,我花好几天事件去看源码,python文档里几句话就说明白了。

由于现在还是python 2.5及以下版本的天下,所以我用的python手册也是2.5版本的,在里面查到mailbox模块中有mbox类,专门解析mbox格式存储的邮箱,准备拿来用。结果去开发环境上一跑,显示没有该模块,百思不得其解。后来查了一下,原来linux上python还是2.4版本,2.4版本中的mailbox模块是很弱小的。由于程序要在2.4平台上运行,所以要考虑问题的解决方法。

假如自己实现mbox类的话,太过麻烦,并且对于2.5平台上来说这个工作毫无用处。于是决定利用2.5版本上现有的mailbox模块。

把2.5版本的mailbox.py拷贝到当前目录下,改名为mailbox_v25.py。

在程序中使用如下方法,判断版本是不是2.5以下,假如是的话,导入mailbox_v25.py,假如不是的话,导入系统默认模块即可。
if (int)(map(str,sys.version_info)[1])<5:
import mailbox_v25 as mailbox
else:
import mailbox

ok,问题解决。以后假如版本升级,不再支持python2.4,那么可以移除mailbox_v25.py以精简包。
分页: 19/31 第一页 上页 14 15 16 17 18 19 20 21 22 23 下页 最后页 [ 显示模式: 摘要 | 列表 ]