明天是我25岁生日,今天是我24岁的最后一天,突然想起了很多事情,一下子,工作已经两年半的时间,不好也不坏,只是感觉很充实,也学到了很多东西。
今天睡了个懒觉,10点半才起来,天气太冷了,被窝的诱惑力实在太大。我发现自己的意志力还是有些问题,不能拒绝一些诱惑和欲望,比如早起,即使上班我也要拖到实在是再晚一分钟就会迟到的,所以很多时候就不能像自己所设想的,早上刮个胡子,梳好头发,打好领带,擦好皮鞋,调整一下笑容衣冠楚楚的出门,还好是短发,否则那就真会是蓬头垢面了。我总会有借口让自己多睡个几分钟,比如自己昨晚12点才睡阿,学习工作太累,休息好才能工作好什么的,宁可待会到路上跑步去上班。这也让我想起高中时候,甚至大学时候在天津,大雪天洗冷水澡,想锻炼自己的意志力,看来也没有真正的派上用场,这一点是应该改的,25了,如果生命是100岁的话,那么已经过去了四分之一,而且接下来10年,必须使我最辉煌的时候,我不容许自己错过任何的机会。
今天有个学弟给我发邮件简历,想跳槽到我们公司,我之前是让一个朋友物色的,既然能联系到我,技术能力肯定也不错,他发个介绍过来,我觉得也挺不错,后来继续聊了一下,告诉我他四级也没有过,成绩也不好,我感到挺失望的,这些是公司的硬性规定,将来有无数的场合要看英语成绩,其实我觉得光用四级来评价一个人的英语水平和偏颇,但是从一个方面反应了一个人的学习能力和态度,我总是觉得如果真有能力,即使我英语不行,四级这种东西,死记硬背也要考过来,况且四级考的是词汇和阅读。我四级其实也考了几次才过,那个时候太不上心了,每天脑子里面都是计算机,直到了大三,开窍了,不那么执迷不悟,一口气把四六级都考过了。并且我始终是那么认为,搞计算机的,英语如果好就会如虎添翼,很多最新的文档都是英文的,所以我可以说学习Linux成就了我的今天,让我可以自由的把英语当成一种工具,让我对于事物总是有那么一种新奇感,喜欢研究,不搞明白不罢休,养成了坚持学习的态度。其实我挺怀念大学的,大学几年我有两个遗憾,一是为什么没有更努力些,拿奖学金;二是没有找个女朋友。不过后来想想也许很多事情是注定了点,顾此就要失彼吧,不过就是觉得自己好像还没有用上全力,还可以做得更好。我怀念泡在图书馆的日子,我怀念在启航网站里面的日日夜夜,我怀念和213寝室的同学们上自习的日子,我想念215寝室的兄弟们,我怀念那为数不多的跟同学们踢的几次球,我还记得毕业前夕的喝醉躺在马路上唱歌的情形,我还记得离校时那些拥抱。
我一直不怀疑自己的学习能力,到了单位之后也确实为单位解决了不少问题,有些时候有些问题大家觉得棘手了,领导就会把我叫过去让我看看,而且每次都居然很奇迹般的可以把事情解决,有很多次居然都是全新的我从来没有接触过东西,看看文档,花点时间,用点心。我想这和平常养成的学习习惯有关系,所以还是得要坚持学习才对,我有时候是否在想,是否在大学里面对于学习方面所欠缺的遗憾,所以毕业之后再补补?而且发现自己是一个很随兴趣发展的人,自己也觉得奇怪,我总是觉得学习新的东西有很强的兴趣,总部培训部一个老师听说我的专业之后可一个概括挺有意思,学的自动化,干的计算机,居然还教英语?在这些方面我其实也意识到了我的缺点,一个人时间和精力有限,不可能样样精通,所以在哪一方面我都比不上真正在上面花时间的人,比如这次参加RELTA就没有考过5级,也就当不了民航总局的评分员了,这也许是我和科班出身的差距吧,不过也还是有些不服气吧,自己觉得发挥还不错,自己教了那么多飞行员都考了四级,结果自己也就考了个四级?所以下次再努力了。说到英语,我其实没有丝毫的成就感,想起大学里面,我就完全是因为看国内编的教材不顺眼,并且看翻译过来的,我有时候都很自大的觉得翻译得好笑,所以硬着头皮去啃自动化和计算机的原版书,其实也没有啃完几本,关于当ICAO教员的事也许只是机会好而已,后面也只有硬着头皮边学边用,关于学习我还真是有所体会,因为书到用时方恨少,所以当你需要哪个知识的时候,你才会学得更加的快。我其实是属于那种不是很踏实的从头学到尾的人,我必须要先找到自己的兴趣,我学习起来才不会打瞌睡。比如看一本书,我通常会很快看完,跳着看,但是通常要反复看即便,我想我其实只是那种对新事物有新奇感,并且反应比较迅速,比较容易学以致用而已。这些东西是优点也是缺点,我应该更加聪明的扬长避短便是。
学习,坚持学习就是了。因为我知道机会只给有准备的人。要踏踏实实一步一步,不要好高骛远,但是也要警惕温水煮青蛙的教训,千万不可失去激情和斗志。
25岁了,父母长辈开始念叨终生大事了,老说什么我的某某同学现在结婚了,某某生子了什么的,对于我而言,我倒是不着急,我在等待那样的一个让我不害怕和她一辈子的女子。我没有太多的耐性,这是我的一个缺点,所以对于胡搅蛮缠不可沟通之人我会慢慢失去该有的关心和爱护,我的容忍是以期待着一个改变为前提,而容忍的时间长短是我对她的爱来衡量,当缘尽了,那也该散了。到现在为止交过一个女朋友,在一起一年多,结果还是分了手。说实在的,我挺遗憾的,不是她不好,她非常好,她不爱钱,她爱干净,总是她家里弄得整整齐齐;她漂亮,她对我好,所以有时候一个人呆着,想起她,仍然会叹气,黯然伤神。我记得分手之后的某个周六,我在家大扫除,翻出了一些文字,那是她写给我的,我看着看着慢慢泪水就流了下来,然后一个人在家里号啕大哭。可是我们分手似乎又是必然,分手之前总是吵架,她总是乱发脾气,我也不能像以前那样去容忍和哄她,找她谈她也不说话,沉默,每次遇到那种情形,我连头撞墙的心都有。我发现我们的人生观很不一样,我们相互沟通和理解成了问题,也许是学历和生活经历的差别造成的问题,并且我们相隔两地,相互沟通起来非常困难,有一段时间,每个月手机费都是四五百;她是导游,工作不稳定,我尝试着帮助她提升,为了在一起而努力,我记得我帮她补习功课,准备成人高考,她学不好就发脾气,我要好好哄才能继续学;她回去了,和她那些姐妹在一起,就又不学了,这些是我不能理解的,但是她的理解却是我没有能力,不能养她,还给她压力,关于这些就吵着分过手。经济基础决定了上层建筑吧,对于我而言,我已经比周围人努力很多了,可我不能抢银行来一夜暴富,我在努力,我只是希望有一个善解人意的女子支持我,相信我可以给她幸福,跟她一起我已经是很有压力了,可我一段时间都相信着真爱可以战胜一切,虽然我相信她也可以跟我过朴素的日子,然而我却不愿意我的女人比别人过得差,所以在我最需要理解支持和相信的时候,不要和我吵。后面一段时间几次说过分手,每次都是我重新把她找回来,如果说舍不得分手是因为怕她离开我过得不好,后面听说她姑姑给他介绍男朋友时,我想是我放手的时候到了。我想我应该可以找到那样一个soulmate吧,要是不行,那么就找一个不会乱找我吵架,彼此过得下去的人结婚罢了。
明天是我25岁的第一天了,fighting!
2009年1月10日星期六
2009年1月7日星期三
Python数据库连接需要关闭数据库连接吗?
程序运行久了会出现数据库连接超时失效的错误,因为我把数据库连接放到了模块级别了,那么所有的类都可以使用这个connection,我想当然的这么做,因为我不想自己去频繁处理连接。也想把关闭连接的动作放到类的__del__方法中去,但是总觉得这样麻烦,所以放到了模块级。今天去翻看了一下pyhton DBAPI PEP249,看到了这样的两段关于close方法的说明:
cursor:
.close()
Close the cursor now (rather than whenever __del__ is
called). The cursor will be unusable from this point
forward; an Error (or subclass) exception will be raised
if any operation is attempted with the cursor.
.close()
Close the connection now (rather than whenever __del__ is
called). The connection will be unusable from this point
forward; an Error (or subclass) exception will be raised
if any operation is attempted with the connection. The
same applies to all cursor objects trying to use the
connection. Note that closing a connection without
committing the changes first will cause an implicit
rollback to be performed.
显示的调用close方法可以马上关闭连接,但是DBAPI应该在__del__方法中显示关闭数据库连接的操作,因此其实使用符合DBAPI标准的数据库Driver就根本自己不用去管连接的问题了,你初始化一个connection之后,如果connection被GC收集,那么连接会自动释放的!
cursor:
.close()
Close the cursor now (rather than whenever __del__ is
called). The cursor will be unusable from this point
forward; an Error (or subclass) exception will be raised
if any operation is attempted with the cursor.
.close()
Close the connection now (rather than whenever __del__ is
called). The connection will be unusable from this point
forward; an Error (or subclass) exception will be raised
if any operation is attempted with the connection. The
same applies to all cursor objects trying to use the
connection. Note that closing a connection without
committing the changes first will cause an implicit
rollback to be performed.
显示的调用close方法可以马上关闭连接,但是DBAPI应该在__del__方法中显示关闭数据库连接的操作,因此其实使用符合DBAPI标准的数据库Driver就根本自己不用去管连接的问题了,你初始化一个connection之后,如果connection被GC收集,那么连接会自动释放的!
2009年1月6日星期二
这几天得到的教训
从周日开始,休完元旦假吧,2009年就给了我几个耳光,让我必须得谨慎谨慎再谨慎的做开发,否则在调试和部署上做的工作,付出的精力会比想象的多,想想我这三天睡得都不安稳
(1) 使用gentoo作服务器时要注意编译参数
准备使用lighttpd+fastcgi来部署程序,结果发现lighttpd不支持fastcgi?左试右试发现编译参数里面没有fastcgi。对于没有时间折腾和相当丰富经验的人,慎用gentoo作为服务器,万一你要增加新功能,那么很可能你不重新编译,就不会支持,内核,php,apache等等都是。
(2) 写配置文件要非常小心,差之毫厘,谬以千里
在workstation上的配置都正常,服务器上lighttpd重新编译之后还是运行不了,比较了两遍配置文件还是没有发现问题,后来把本机上的配置放到服务器上又能运行,仔仔细细比较了一下,发现少了一个斜扛,我rewrite到/code.py,结果在fastcgi.server节里写了code.py,少了一个斜扛,又狂晕
(3) 慎用developing状态的软件
我一直用webpy的git版本,在自己电脑上运行似乎没有问题,部署到服务器上,发现session的问题,造成用户验证的拦截器失效,尝试了很久,后来仔仔细细的把webpy的源代码读了一遍,后来才发现是线程池里的threadLocal变量没有被清空,跟开发者联系,尝试自己fix,结果才发现发布的0.31版本根本不存在这个问题,也许git上是开发者没有完成的版本,通过通读源代码,发现其中有不少bug会造成各种各样的问题。比如db.py模块中,MSSQL中要取kw['pw']关键字,结果写成了kw['kw']。
(4) webpy开发经验,webpy的session功能的加入是以一个processor加入的,那么如果你有自己的processor使用了session的功能,比如用户验证的功能实现,那么你的拦截器必须在session初始话之后再调用app.add_processor(func)加入。
(5) mysql乱码:
我的workstation是archlinux,今天才发现它的mysql默认设置都是latin-1,而不是像其他linux,比如gentoo,centos,debian,ubutnu那样默认用utf8,造成我机器上数据库操作不能支持中文。我把workstation上的数据库导出导入到server的时候,即使服务器的设置全部都是utf8,都是由于mysqldump会把数据库的character set信息保留,所以造成服务器也不可以使用中文了,并且使用alter database, alter table设置default character set 和collate不起作用,调试了一个下午,后面干脆dump之后,把sql文件中的latin-1全部替换成utf8,然后drop数据库后,新建数据库并且设置默认编码为utf8,问题解决。用了mysql很多年了,乱码问题一直都不成问题,但是今天却很多巧合搞到了一起,搞了将近一个下午,问题解决之后觉得自己都可笑。
(6)whatwhat的中文问题:
whatwhat是用turbogears开发的一个项目管理工具,比较简单易用,适合小型团队使用,但是它对于支持中文有几个问题,第一比如hack model.py中person的定义到Unicolumn,要人名可以显示中文,另外,数据库导入文件要像第5点说的那样,改到utf8.
(1) 使用gentoo作服务器时要注意编译参数
准备使用lighttpd+fastcgi来部署程序,结果发现lighttpd不支持fastcgi?左试右试发现编译参数里面没有fastcgi。对于没有时间折腾和相当丰富经验的人,慎用gentoo作为服务器,万一你要增加新功能,那么很可能你不重新编译,就不会支持,内核,php,apache等等都是。
(2) 写配置文件要非常小心,差之毫厘,谬以千里
在workstation上的配置都正常,服务器上lighttpd重新编译之后还是运行不了,比较了两遍配置文件还是没有发现问题,后来把本机上的配置放到服务器上又能运行,仔仔细细比较了一下,发现少了一个斜扛,我rewrite到/code.py,结果在fastcgi.server节里写了code.py,少了一个斜扛,又狂晕
(3) 慎用developing状态的软件
我一直用webpy的git版本,在自己电脑上运行似乎没有问题,部署到服务器上,发现session的问题,造成用户验证的拦截器失效,尝试了很久,后来仔仔细细的把webpy的源代码读了一遍,后来才发现是线程池里的threadLocal变量没有被清空,跟开发者联系,尝试自己fix,结果才发现发布的0.31版本根本不存在这个问题,也许git上是开发者没有完成的版本,通过通读源代码,发现其中有不少bug会造成各种各样的问题。比如db.py模块中,MSSQL中要取kw['pw']关键字,结果写成了kw['kw']。
(4) webpy开发经验,webpy的session功能的加入是以一个processor加入的,那么如果你有自己的processor使用了session的功能,比如用户验证的功能实现,那么你的拦截器必须在session初始话之后再调用app.add_processor(func)加入。
(5) mysql乱码:
我的workstation是archlinux,今天才发现它的mysql默认设置都是latin-1,而不是像其他linux,比如gentoo,centos,debian,ubutnu那样默认用utf8,造成我机器上数据库操作不能支持中文。我把workstation上的数据库导出导入到server的时候,即使服务器的设置全部都是utf8,都是由于mysqldump会把数据库的character set信息保留,所以造成服务器也不可以使用中文了,并且使用alter database, alter table设置default character set 和collate不起作用,调试了一个下午,后面干脆dump之后,把sql文件中的latin-1全部替换成utf8,然后drop数据库后,新建数据库并且设置默认编码为utf8,问题解决。用了mysql很多年了,乱码问题一直都不成问题,但是今天却很多巧合搞到了一起,搞了将近一个下午,问题解决之后觉得自己都可笑。
(6)whatwhat的中文问题:
whatwhat是用turbogears开发的一个项目管理工具,比较简单易用,适合小型团队使用,但是它对于支持中文有几个问题,第一比如hack model.py中person的定义到Unicolumn,要人名可以显示中文,另外,数据库导入文件要像第5点说的那样,改到utf8.
2009年1月1日星期四
服务器准备升级了
公司的4台Linux服务器是我在2006年装的,其中三台Ubuntu6.10,都是web服务器;还有一台gentoo是定制的反向代理服务器,负责公网入口,当时用ubuntu的一个很重要的理由是参加工作以来,我自己的桌面就是ubuntu,那么出任何的问题都可以考虑随着我的日常使用,从而更加熟悉的解决任何可能出现的问题;还有就是当时我们这里可以使用的最快的源是cn99,它上面支持的三个发行版本就是ubuntu,debian和centos,所以这三个发行版本自然成了首选。这近三年的使用下来,总觉得ubuntu作为服务器来说心里老是觉得不踏实,也不知道是不是我自己的问题,因为配置服务器更新的问题上一直没有解决问题;不是每台服务器都可以连接公网,所以需要借助一台机器来作为更新的Proxy,但是在ubuntu,APTProxy我一直就没有配置成功;以前总觉得它应该是基于debian而优于debian的,所以没有选debian而选择的它,不知道debian上有没有这个问题。6.10的支持期限很快就要到了,想趁这次调整服务器的机会来一次大的升级,那么选什么呢?ubuntu8.10? debian4.0? centos?还是我现在自己使用的archlinux?选择Linux发行版本,对于配置来讲一个linux老手来说其实区别都不大,但是使用一个发行版本就意味着你要熟悉这个发行版本的一套软件包管理体系,还有对于企业应用,还要考虑这个发行版本是否经历了大量的测试,是否稳定可靠,它后面的社区有多大,文档有多少,是否有商业的公司在推进,因此看了一下distrowatch上面的linux发行版排名。
centos, 它是redhat enterprise edition的社区打包版本,对于redhat公司的技术力量不用怀疑了,并且它的文档也是最多的,redhat也是我最早接触的linux发行版本。
ubuntu, 也有商业的支持,社区似乎现在是最庞大的,不过专注于桌面的方面占了大量的份额;它的开发维护文档基本就是参考debian的就够了,所以在它和debian之间其实我还更加倾向于debian,据说163的服务器全是debian的
gentoo,曾经是我的桌面最爱,我完全只用它使用了三年的时间,也觉得它的包管理体系实在是很好,很强大,不过对于每台服务器我可没有时间去折腾,编译更新。
arch,我现在使用的桌面,使用了半年之后,感觉作为桌面还可以,但是如果放到服务器上去,感觉怕怕的,都是最新的软件,也不一定经过了详细的测试。
freebsd, 挺向往的一个纯血统的unix系统,还有就是传说的RockSolid Performance,不过想了好多年了,就一直没有狠下心来抛下Linux随BSD去,怕了学习成本。
现在人开始变得现实起来,开始发现商业和利益驱动的力量也不可小觑,高手也是要吃饭的,所以更加倾向于背后有商业支持的Linux版本,Redhat公司在Linux里面做的贡献就很值得钦佩,所以对于centos确实是比较想,并且以前烦躁的RPM包依赖问题,现在有了yum已经不成问题了;而debian在业界的广泛使用也让我倾向于选择它,所以再看看,看看它是否能完美解决这个集群更新的问题~
centos, 它是redhat enterprise edition的社区打包版本,对于redhat公司的技术力量不用怀疑了,并且它的文档也是最多的,redhat也是我最早接触的linux发行版本。
ubuntu, 也有商业的支持,社区似乎现在是最庞大的,不过专注于桌面的方面占了大量的份额;它的开发维护文档基本就是参考debian的就够了,所以在它和debian之间其实我还更加倾向于debian,据说163的服务器全是debian的
gentoo,曾经是我的桌面最爱,我完全只用它使用了三年的时间,也觉得它的包管理体系实在是很好,很强大,不过对于每台服务器我可没有时间去折腾,编译更新。
arch,我现在使用的桌面,使用了半年之后,感觉作为桌面还可以,但是如果放到服务器上去,感觉怕怕的,都是最新的软件,也不一定经过了详细的测试。
freebsd, 挺向往的一个纯血统的unix系统,还有就是传说的RockSolid Performance,不过想了好多年了,就一直没有狠下心来抛下Linux随BSD去,怕了学习成本。
现在人开始变得现实起来,开始发现商业和利益驱动的力量也不可小觑,高手也是要吃饭的,所以更加倾向于背后有商业支持的Linux版本,Redhat公司在Linux里面做的贡献就很值得钦佩,所以对于centos确实是比较想,并且以前烦躁的RPM包依赖问题,现在有了yum已经不成问题了;而debian在业界的广泛使用也让我倾向于选择它,所以再看看,看看它是否能完美解决这个集群更新的问题~
2008年12月27日星期六
Arch的Udev和hal更新
这个问题其实困扰我很久了,我也一直把udev和hal放在了IgnorePkg里面,阻止它升级;昨天晚上睡到半夜突然想到这么一个问题,splahy是否影响了系统造成不能启动呢?以前一直以为是hal的问题,造成不能mknod,之前体现的症状也像,提示我/dev/sda6, /dev/sda9不能挂载,但是/dev/sda8才是我的root阿,/etc/rc.sysinit报错,说找不到dev/vc/XX等的,在Google上搜了一下/etc/rc.sysinit,果然是这个问题,是initscripts-splash造成,之前装splashy,由于依赖关系,装了initscripts-splash,而取代了系统的initscripts,系统升级之后,并不知道已经是initscripts-splash了,新的initscripts也没有取代老版本的initscripts-splash,并且splashy升级之后,也没有提示更新它的依赖到新的initscript-splashy,如此这些东西造成了udev,hal的升级不能应用,把系统中的splahy移除算了,反正archlinux启动速度快,使用splashy也没有太大的意义,更为重要的是它要取代系统的两个包,sysvinit和initscripts,所以还是不装算了,避免下次又造成问题。
2008年12月18日星期四
绝望主妇中一个令人感动的场景
Carlos复明了,慢慢的能看清东西了,发现了他祖父传下来的一个球星签名的棒球不见了,他首先坚持让Gabi把它弄回来。Gabi去了,甚至不惜满足那个意大利人的变态要求在桌子上跳舞来拿回那个球。后来场景转到了Carlos洗完澡换衣服到衣帽间,他发现Gabi的名牌衣服,鞋子几乎都没有了,全部被Gabi变卖以维持家用了,只有少数的几件普通衣服。后来Gabi把球拿回来了,Carlos却把球重新变卖了,给Gabi换了一件名牌的衣服回来,看到这里,觉得很温馨,想想Gabi由一个International Super Model,到这样一个主妇,并且照顾瞎子老公五年,用尽办法维持这个家,抚养起了两个孩子,真是敬佩,老天终于开眼了,Carlos复明,为他们高兴ing.
订阅:
博文 (Atom)
