您还没有登录。现在登录注册

给老鼻炎的一些忠告

分类: 其他   |   jeff  发表于:2008-10-28 12:43:25  |   1条评论  |

最近鼻炎好像又老犯.好在今天下意识控制一下,情况好很多了.

01年的时候开始得了鼻炎,一直因扰了我四年.在大学期间我坚持用冷水洗澡,就算是寒冬也一样,我坚信这和毛同学当年坚持冬泳一样可以强身健体.可我的鼻炎却一直没有好过.这种情况一直延续到我大学毕业.期间用了很多药物都没有效果.

出来工作后人的意志力弱了很多,冬天我开始用热水洗澡.没想到,一段时间过后,我的鼻炎居然好了.接下来几年里,只有感冒或冷了的时候有点状况.而原因竟然是我用热水洗澡.

其实鼻子是很敏感的器官,对人体的温度特别敏感.鼻炎患者不应该洗冷水,本来身体抵抗力已经很差,洗冷水只会等于雪上加霜.更好的选择是多做运动,在身体条件好的情况下洗冷水才有强身健体的作用.

有鼻炎或历史的人很容易在起床的瞬间着凉,在换衣服的空当更容易.如果在这个时候一着凉,那么鼻子一整天都会塞,痛苦极了.这种情况完全可以避免.起床着下意识地提防着凉,可以在被子里先做下仰卧起坐热一下身.在换完衣服后,鼻子如果都还是畅通无阻的话,接下来的一天就会很轻松了.这都是有切身体会D.

总结一下自己的经验:坚持用热水洗澡,多做运动,早上一定要防止着凉.如果可以,经常用热水清洗鼻孔.

10月行踪

分类: 其他   |   jeff  发表于:2008-10-23 10:46:49  |   1条评论  |

10月4号,我们开始出发,这个10月,再次去往云南,去年这个时候,也一个人去云南,但今年不是一个人.

我们一直到10月15号晚上将近16号凌晨回到家中..

这次云南之行去的大部分是我上次缺失的,因为我去年说过要等某人一起去.

大理,丽江,束河,中虎跳,香格里拉,梅里雪山,为赶行程的我们每天六点就起来了,天气冷得我鼻子里净是血块,他们说这是高原反应.

我们认识了一对合肥的夫妇,三次有缘有相遇后最后成了驴友,再后来成了朋友,感谢缘份.同时认识了一对广州的夫妇,相对来说,比较非洲和尚--黑人憎,没点风度.

某人拍照,以平均每天一G的速度侵蚀我的Notebook硬盘.可谓狂人.

4-5号,飞机,整晚的火车,况且况且况且况且,5-7号,天下风花雪月尽在大理,8号,古老的束河,美丽的古城,9-12号,艰苦的梅里四日,两天步行数十公里,在海拔4292的地方留念,天下起小雪.13号,回到丽江就像回到家,离开的时候才识识一位段氏阿姨,煮的菜超好吃.14-15,汽车,火车,飞机,出租车,回到家了.有高原后遗症...

回来还没有时间整理照片,不过凭我的工夫,整不出什么好照片,还是由Fall同学来操刀吧.

据说往后还要写游记,攻略捏..

.

做爱做的事去

分类: 其他   |   jeff  发表于:2008-10-23 01:46:16  |   2条评论  |

长假休完回来,打开Notes首先收到的是一同事辞职的消息.我的预感果然灵验了.小杨是我师弟兼好友及琴友,当年还是我推荐入职.

小杨离职的原因我想我也比较清楚,前一段时间我们曾无数次中午饭二人世界,通过网络沟通N的平方次,其中一直离不开工作这个话题.原因大致有以下几点吧:

一,项目困境,加班严重,私人时间越来越少.

杨所在的项目由于长期不稳定,客户投诉较多,内部开发团队压力相当大.而基于成本的原因,不允许做大的优化(或者是没抱足够信心),经常性对出现的问题进行急修急改,加班是家常便饭,开发团队成员身体素质下降不少.此为大环境.占原因的50%.

二,工作性质原因

杨的工作...呃,我举一下,开发团队负责人,还负责技术方案编写,负责客户沟通等.是挺有前途的工作嘛,不过在杨看来,编写代码才是他真正擅长并且想去做的事情,而写美丽的方案书,客户沟通工作等,对这些他多少有着抵触的情绪.PM甚至希望他可以上升到PM的高度,管理整个项目,不过这些都不是小杨想要的,至少不是现在想要的,其实也有可能是能力上面的关系.

既然这样,那就一直Code下去吧.但是在中国这种大环境下面,特别是在一些中小型的软件公司,普遍认为仅仅做coder是没什么前途的,你必须往上走,到开发组长,到PM,再往上.你不上,别人上,别人踩在你头上你哭吧..这也是现在公司里很多项目的代码水平不高的原因,coder好一点,OK,上去做组长,不用code了,新人来code.永远都是新人在写代码,如何做出好项目. 也难道之前在Py-cn的maillist里面就有人流行说这句:'到小公司写两年代码,接着就做PM,接着就忽悠',看来,大环境都差不多..哎.

杨如果生活在国外,境遇也许会好些,至少可以真的专心写写代码.如果杨下一份工作还真是找写代码,祝他好运.

PS.我也是个好code之人,现在手痒时或下班还算可以找点code来写写,满足下自己的热情.

三,个人心态问题

有好几次沟通的时候,杨表示说要做出点成绩,要做到PM;也有不少次又抱怨这其实并不是他想要的生活;项目目前的情况强烈影响其心态,没有坚决有力的决定,甚至情绪还可能影响到整个团队.心态不稳定,可能就是上一次欲走不走的原因.但是上次杨回来上班后希望可以摆正心态,但是最后还是发现客观原因高出主观原因,加上本来工作压力大,态度又相对消极,最终没能逃脱离职这个结局.

四,PM的责任

尽管离职个人原因占大部分,但PM同样难辞其责,就不细数.

如今 ,小杨终于有点时间去做些想做的事情,比如去旅游,放松,睡觉,看电影.据说这些是在职期间想都不敢想的事情.接下来他应该会再找一份coder的工作,不管怎样,既然做了选择,就放心去做好了,做你爱做的事去..老友祝福你.

 

python网络爬虫备忘记

分类: 编程   |   jeff  发表于:2008-10-22 23:52:39  |   1条评论  |

最近写网络爬虫多了,总结出一些心得,记录以备忘记.
网络爬虫的要求有几点:
一. 一个好的网页解释器,python推荐BeautifulSoup,java推荐htmlparser.
二.良好的性能,不能太慢,当遇上网络状况不大好的时候,慢更受不了,所以通常需要同时启动N个网络爬虫进行工作.使用队列可以很好解决这个问题.
三.稳定性,容错性.网络本来就存在不稳定性,连接超时,连接重置等是常见的不稳定现象,网络爬虫程序要充分妥当地处理这些问题,保证爬虫输出结果的完整性.

一.Beautiful Soup 美丽的汤

BeautifulSoup是一个纯py的html(xml)解释器,为许多python开发者所钟爱.其官方网站已有详尽的文档可作参考,再不然,google一下也大把中文文档.所以这里就不对其基本用法多加描述.仅对我走过的弯路进行一下小结.

1 <ul>的contents并不全是<li>,<head>的nextSibling并不一定是<body>
代码说话:

python 代码
  1. >>>from BeautifulSoup import BeautifulSoup  
  2. >>>soup = BeautifulSoup('<ul><li>abc</li><li>def</li></ul>')  
  3. >>> ul = soup.find('ul')  
  4. >>> ul.contents  
  5. [<li>abc</li>, <li>def</li>]  



上面的代码说明<ul>标签下面的子结点全是<li>,试过这小段HTML代码有回车也得到同样的结果,于是我想当然地认为从网 页上扒下来的HTML内容也会得到同样的结果..但实践很快证明并不是这样的,实际上很多网页制作过程中使用了一些不可见字符(如空格,制表符等),这些 字符并不会被忽略,而是被汤看作是NavigableString类型的元素.
所以当我想当然地for li in ul时,很快发现里面有很多杂质而导致错误.更好的方式是自己写个小函数,只取标签即可:

python 代码
  1. def right_tag(tag,name=None):  
  2.     if not name or tag.name == name:  
  3.         return tag  
  4.   
  5. def tag_children(tag,name=None):  
  6.     """ 
  7.     找到所有类型为标签的子元素,可通过name参数指定标签种类. 
  8.     """  
  9.     children = []  
  10.     contents = tag.contents  
  11.     for content in contents:  
  12.         if isinstance(content,Tag):  
  13.             child = right_tag(content,name)  
  14.             if child:  
  15.                 children.append(child)  
  16.     return children  



同样的道理,nextSibling,preSibling也不一定稳妥地帮你找到相邻的标签,下面的函数可以帮你:

python 代码
  1. def next_tag(tag,name=None):  
  2.     """ 
  3.     找到下一个邻近的标签,可指定标签名 
  4.     """  
  5.     current = tag.nextSibling  
  6.     while current:  
  7.         if isinstance(current,Tag):  
  8.             return right_tag(current,name)  
  9.         current = current.nextSibling  


2 编码问题


先复习一下Python的编码机制.
python的内部编码为unicode,如果需要将字符串从编码A转为编码B时,顺序为:

编码A ---(decode)--->内部编码 ---(encode)--->编码B

BeautifulSoup在解释网页文件的时候会把文字转换成unicode的.既然是这样,那应该不用担心编码问题了.友人网的网页是GB2312编 码,在不用指定特殊编码的情况下可以获取到正常的中文,而在我扒当当网的时候,问题出现了,同样是GB2312的编码,但扒下来存在文件的却是乱码.(其 实友人网也有部分乱码,但大部分正常).我检查控制台的输出时发现,BeautifulSoup并没有把中文转换成为真正的双字节unicode,或许说 转换得并不成功,它仅仅是在GB2312的编码串前面加了一个u,如 u'\xe4\xb8\xad\xe6\x96\x87' ,把原本是GB编码的代码假装成了unicode,所以在处理的时候成了乱码.

Beautiful Soup 的文档说:会按顺序尝试不同的编码将你的文档转换为Unicode:

* 可以通过fromEncoding参数传递编码类型给soup的构造器
* 通过文档本身找到编码类型:例如XML的声明或者HTML文档http-equiv的META标签。如果Beautiful Soup在文档中发现编码类型,它试着使用找到的类型转换文档。但是,如果你明显的指定一个编码类型,并且成功使用了编码:这时它会忽略任何它在文档中发 现的编码类型。
* 通过嗅探文件开头的一下数据,判断编码。如果编码类型可以被检测到,它将是这些中的一个:UTF-*编码,EBCDIC或者ASCII。
* 通过chardet 库,嗅探编码,如果你安装了这个库。
* UTF-8
* Windows-1252

我在构造BeautifulSoup对象的时候并没有指定编码,那么看来是第二点起作用了,但效果并不理想,所以最好的方式还是在构造器指定编码.

如soup = BeautifulSoup(page,fromEncoding='gb2312')

实践证时,在构造器指定编码是最佳实践.

二.优化性能

使有队列辅助多线程提速
假如使用单线程去运行网络爬虫,那速度一定让人受不了,由于网络的延时随时可以把一条线程阻塞.
多线程可以充分利用带宽和计算机资源,给网络爬虫提速.

IBM文档中心这篇<<使用python正行线程编程>>正好使用网络爬虫来做为示例讲述如何进行多线程编程以及如何使用队列来优化多线程编码的.很值得参考.

三.容错处理


网络爬虫最常见的错误莫过于连接超时和连接被重置了.而这些错误又是偶然性的,就是说,同一个网页,第一次可能连接超时,第二次可能就正常了.这要求在程 序的设计时考虑到如何这些错误的连接,我的做法是把出问题的连接记录下来,等大队列工作完成后再循环重试有问题的连接,直到全部正常.

另外,关于网络超时的问题.如果超时时间过长的话,网速慢的时候会大大影响网络爬虫的执行速度,所以通常有人希望设置网络连接的超时 值.python2.5的urlib2的urlopen函数并没有接受timeout参数,(尽管python2.6提供了,目前没敢用).不过可以用 socket.setdefaulttimeout()来设定.当然,可以到pythoncn参考一些行者给出的建议.

OpenSourceCamp现场

分类: 编程   |   jeff  发表于:2008-09-20 15:19:30  |   2条评论  |

因为搬家的原因,到沙河鼎龙大酒店的时间是2:05分,错过签到,会议开始了,错过了OSCamp的很酷的T恤..看一会能不能拿一套..卡卡..

twitter果然是最方便的工具..reply to oscamp.

品高上场SHow了一下短信业务平台的架构,现在Peter在介绍OW2,Object Web Gen2..

还没有进入小团体讨论时间...先上两张图:

上面右边的是vingel,他的Eee PC好酷..电池可以持续使用8小时,让我的Mqc汗颜...
camp 继续..

左边是传说中的vingel...卡卡.

Eee pc呀!!!3K6大洋,1G内存,8小时power..自用,送人佳礼!

我要为你唱歌

分类: 其他   |   jeff  发表于:2008-09-17 14:14:28  |   2条评论  |

好一段时间没有在车站和隧道看见卖唱的兄弟了,城管赶了吗?他们去哪里了?

很久没有和好朋友好好聊天弹琴唱歌了,尽管在见面时也匆忙,有话哽在喉里不知怎么说.

妹妹看起来差不多在失恋的低潮中站起来了,上次见面时换了新发型的.

好长一段时间像在梦游,盛夏时间大家都在过冬,人有气无力,应该是时候休息一会了.

在好又多附近看到残疾人琐呐乐团,往钱罐里扔了几块钱,他们好像没看见我一样继续吹,我也好像什么事都没发生一样往前走.

bibu来电说,做了三年班主任,今年终于可以清闲一年了,很想我们.

娘子第一次通过电话问候婆婆,我能感觉到婆婆开心得眼泪快要掉下来了.

一老同学在Q上聊的时候催我结婚:"你也该结婚了,我儿子都会打酱油了!"当场雷倒,原来她不知道打酱油是啥意思.

亲爱的,我们家那半箱奶要扔掉还是要喝掉?

我会在一个很多人参加但属于你和我的场合给你唱一首属于你的歌,所以我现在还在努力着.

她在睡梦中

分类: 其他   |   jeff  发表于:2008-09-10 02:31:31  |   1条评论  |

好静呀我们的夜
看着你睡在我身旁
像孩子一样
我多想摇醒你
告诉你我有多么地爱你
情人啊醒来嘛
快看着我说你也爱我
呜……
可是为爱我而来人世间
穿过那茫茫的人海
睡在我身旁
我多想留下来
永远在你枕边啊
日夜陪你欢愉呀
情人啊看着我
就这样绝情的老去啊
好爱你耶

====================

又借用别人的歌词一回.这次是朴树的<她在睡梦中>.

她在睡梦中,我多想摇醒她,告诉她,I'll be always with you.

好久了,心里好多想说的话,不知道要如何表达.只知道我们走过了一段艰难的岁月,酸甜苦辣,心里感概良多.一时语塞.

而如今尘埃落定,娘子答应了嫁给先生,决定一起面对将要到来的可能更艰难的日子.

谢谢你,让我充满力量.

站内搜索

作者简介

jeff

OK Computer!

mail
qq

订阅我

我看我听我读

都有谁评论鸟

Tags

日志分类

友情连接

Power By