收拾东西,准备撤了
[| 2010/10/02 21:29]
明天一点半的飞机,要提前几个小时坐车过去。今天事先踩了下点。想退深圳通结果人家国庆不营业。于是回来的时候买了些东西把深圳通里的钱花的差不多了,只留了六块明天坐车。
晚上收拾东西,意外的发现700现金。。估计是带过来以后忘了。爽,感觉赚了700的样子。
和房东算清了水电什么的。准备电脑装包了。东西比较多,估计一背包一提的小包装不下。特意买了个小编织袋。
待了3个月,有点不舍。深圳的很多特色还是挺让人怀念的。
晚上收拾东西,意外的发现700现金。。估计是带过来以后忘了。爽,感觉赚了700的样子。
和房东算清了水电什么的。准备电脑装包了。东西比较多,估计一背包一提的小包装不下。特意买了个小编织袋。
待了3个月,有点不舍。深圳的很多特色还是挺让人怀念的。
iTunes不能连接官方商店,连接被重置。
[| 2010/10/02 12:37]
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年女王头像的。真古老。先写到这里,很晚了。
昨天打电话给李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地址发送邮件时被提示地址不存在。
2,修正:初步解决邮件转发环路。
3,新:用户设置目标邮箱后发送通知邮件。
4,添加新域名,采取直接vps接收方式,避免一些邮件被qq企业邮箱当成垃圾邮件过滤掉。避免用qq邮箱向supermail地址发送邮件时被提示地址不存在。
python中mailbox类的clear方法实现不大恰当,不过貌似派生类可以调用父类的私有成员
[| 2010/09/27 17:16]
今天准备上线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中派生类中是可以使用父类的私有成员的。不过这么实现感觉比较山寨。期待更好的方法。
背景:/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">后,好了。
SuperMail-邮件自动派发器demo
[| 2010/09/25 00:46]
做了这一周多,终于把邮件自动派发器的前后台都做出来了,不过只是一个demo。功能还很不完善。
后台采用python作为处理程序,前台设置页面使用php。用户配置数据库使用sqlite3。
做的过程中接触了不少新技术,学到了很多新东西。
后台采用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服务器访问权限的。。怪不得,把权限放开,正常了。
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中的所有字段,然后用正则筛选一下,删除掉无用的。邮件头大为精简了。
突然看到一篇文章说,可以用messageObject[key]的方式来访问header的字段,试了一下,果然可以。于是想到既然可以这样访问,能不能用这种方式去掉指定的属性呢?查了下手册,发现del方法,一试,好用。爽,问题解决了。用keys函数获取header中的所有字段,然后用正则筛选一下,删除掉无用的。邮件头大为精简了。