Archive August 2007

短途马拉松

本周五组织短途马拉松,遗憾的是没有人报名参加.可以理解,毕竟是一个大夏天,谁也不会愿意去跑个20km左右.没办法只有自己跑了.今天吃完早餐就出发了.昨天本来打算从上海南站直接跑到上海站的,但是后来觉得不太合理,还是从上海站跑上海南站吧.. 天气情况今天天气情况,27-34度.多云转晴,不过我跑的时候是个大太阳. 时间估计整个过程完成大约3个小时. 路径总路程在20Km左右,主要是沿南北高架和内环高架走.这相当于半个全程的马拉松了.起点为上海火车站,终点为上海南站 具体线路 上海火车站南广场->南北高架共和新路入口 共和新路口到->成都北路高架与延安路高架交接口 延安路高架->南北高架与淮海路交接处 淮海路交界处->南北高架徐家汇出口 徐家汇出口->内环高架中山南路瑞金路口 内环瑞金路->东安路(龙华路) 龙华路->龙华寺 龙华寺->龙漕路轻轨站 龙漕路轻轨站->石龙路轻轨站 石龙路轻轨站->上海南站终点站 详情吃完早餐,坐3号线从上海南站到上海火车站南广场,这段时间自己的吃的那点东西也就不会影响跑步了.全过程喝掉3瓶氺,补充水分.温度估计在32-34度,非常热.全过程大约经过2小时40分钟.到达大木桥路时时间是10:30am.在这里补充了一点水分,这也是中途唯一的一次.开始和结束的时候各补充一瓶氺.整个过程还是比较顺利的,关键是红绿灯比较多,还好,今天不叫顺畅,在招商局广场,以及淮海路,大木桥这里碰上比较长的红灯.由于很久没有这么大的运动量,导致后半段腿脚重的像灌了铅一样,步伐沉重,实在受不了了,以步行代替,毕竟是业余的,尽自己最大的能力.中间有很多同志看我,可能大家很奇怪为什么好端端的一个人大热天的跑步,而且全身湿淋淋的.这也难怪!最后到达终点的时候,自己喊了一句,上海南站,我来了.搞的人家交通协管员在那里纳闷呢.为了纪念一下时间,到上海长途客运站看了一下,时间在11:35分.不过遗憾的是不知道什么时候出发的,估计在9:20左右吧. 相关每年上海都有一次马拉松的.2007年安排在11月25号(星期天),详细情况可以登录http://www.shmarathon.com/cn/.有兴趣的话可以参加一下,可能很多人认为没法跑完,没关系,重在参与.而且那个时候不像今天天气这么恶劣.一个字,今天的天气太热,令人窒息.

三四事

记录三四事 portal终于就上线了,因为某些原因,延迟了一个礼拜.在这一个礼拜中,加大的测试,容错性,扩展性,以及高性能的部署.一个礼拜的延迟说明了一些问题,那就是以质量为重,如果质量达不到要求,宁可放弃本来已经计划好的上线日.我比较赞同FireFox,虽然FireFox 2已经是伤痕累累,经常令人苦不堪言,但是其团队是以质量驱动的,而不是时间为转移的.否则带来不必要的影响和骂声,真的很难挽回的. 今天晚上也是我记忆中很晚才走的,尽管才多上了一个半小时的班,却发现自己肚子咕噜咕噜叫,饿死人了.于是决定回家吃饭.本来打算叫饭的,后来想想那工作便当的味道,也就作罢.家里饭灾难吃,也比这个好吃. 到楼下取上我那个破车,居然爆胎,郁闷!不得已,修! 回到家,发现楼下装了一个安全门,没有钥匙进去,联系物业,没有电话,只得按101室的邻居给我开大门,不然真没办法.为什么物业不安排在周末安装呢?难道小偷多的让他们无法休息了. 由于不得已的原因,我们收入降低了,平白无故的每月少收入一点.唉,没办法.面对这物价飞涨的日子,我们只能说,快揭不开锅了.老板,快加工资吧. 终于发现已经有一件遥不可及的事情摆在眼前,看来早点完成角色的转化.别让自己老这么下去,不然没法交代.

ROR发送邮件

用ROR (Ruby On Rails)发送邮件是一个老话题,但是Google一下,会发现很多人都在抱怨无法发送出去,我自己也经历过类似的情况. 官方给出了一篇文档,即How To Send Email With ActionMailer.遗憾的是仍然有很多人说根据该文档配置之后还是发不出去.我也是参考了该文档,最后成功了.总结一下,如果不成功,很有可能是配置的问题. ROR是利用ActionMailer来发送的,而且内部采用Tmail.先看看我的配置: 代码 # Include your application configuration below   ActionMailer::Base.perform_deliveries = true   ActionMailer::Base.raise_delivery_errors = true   ActionMailer::Base.default_charset = "utf-8"   ActionMailer::Base.server_settings = {       :address => "mail.xxxx.com",       :port => 25,       :domain => "www.xxxx.com",       :user_name => "admin@xxxx.com",       :password => "password",       :authentication => :login       }   以上配置非常简单,无非就是配置了邮件服务器的状况,注意一下认证方式就可以了. 根据以上的配置,是可以发送的,也就是官方给的文档关于SMTP是没有错的. 如果按照上面的还是不能发送,首先检查一下是否正确配置改文件.另外检查一下发送人,即from是否正确?何谓正确?邮件地址的域名不要是localhost,例如admin@localhost.com 是不正确的.也正因为此,我自己就吃了一点亏,因为使用http://localhost:3000 来测试的,而from地址优势根据该URI来判断的. 至于带有TLS或认证的,参考官方文档的Sending emails with TLS and/or authentication-only SMTP servers这一部分,据目前了解的情况看,有人成功发送. 其实就是这么简单,只不过出现一点状况,会令人头痛,幸好Rails提供了源代码. 令人欣慰的是,如果你的Rails程序部署在Linux/Unix系统上,而且已经安装了sendmail,只需要将邮件的delivery方式设置为sendmail即可。最后摘录rails的sendmail代码: ruby 代码   def perform_delivery_sendmail(mail)          IO.popen("#{sendmail_settings[:location]} #{sendmail_settings[:arguments]}","w+") do |sm|            sm.print(mail.encoded.gsub(/\r/, ”))            sm.flush          end       end      

ROR的数据库维护解决方案

很早就听说ROR有Database Migrate这样的服务.以前由于所做的太简单,也就没有必要去关心它.一旦数据库需要修改的时候,才会想到,"哦,原来ROR还有这样一个服务!". 感觉Migrate这样的服务真的很棒,很容易维护数据库结构和表.记得以前都是现在开发的环境下修改调试好之后,就部署到production环境下,一个个字段增加,删除或者修改.殊不知,这样是非常容易修改错的,相信很多人都有类似的经历. 现在ROR提供的解决方案非常简单,就是在Database Migrate目录下增加一些数字开头的ruby文件,直接到产品环境下执行就OK了.命令很简单: ruby 代码 rake db:migrate    或者 rake db:migrate VERSION=num     这里,num就是要迁移的版本号. 在Database Migrate目录的文件里,包含了你要对数据库的操作,例如,创建一个表的文件内容可能如下: ruby 代码 class CreateUsers < ActiveRecord::Migration     def self.up        create_table :users do |t|           t.column :login, :string            t.column :email, :string          t.column :password, :string      t.column :created_at, :datetime      t.column :last_login_at, :datetime      t.column :admin, :boolean      t.column :posts_count, :integer, :default => 0    end   end        def self.down      drop_table :users    end   end   文件名或许是002_create_user_table.rb   详细的内容可以参考Rails的API,书籍可以参考Agile Web Development with Rails,Second Edition 的第16章,正好中文有免费试读的. 好处就是:  版本控制 替换DDL 自动化,避免手工错误 共享资源 部署的简单性,灵活性 不足有: 难度较大,需要程序员有充足的知识    

用心去做

上个周六,去了一趟上海书城,本来打算去看看上海书展的,想想也就算了,原因有三,一是交通不方便,也懒得过去,二是切合我的主题的书籍应该较少,三是即使去了,相信收获也不大,反而搞得自己很累.最后决定还是到上海书城去逛逛.最后买了一本关于理财的书籍.周日,将周六的理财书看了一遍,200多页的书还剩即50页左右.这些和文章的标题有什么关系?其实,我是发现自己周日真的用心去看了这本书.用心去做任何一件事情.这段时间我一直在想,我们到底缺少一点什么.其实答案已经非常清楚了,只不过没有今天这样的清晰而且明白. 电视连续剧现在这个社会,浮躁之风太严重,你我都不可能避免受其影响.记得和很多人聊天时谈到看电视剧,绝大多数的人很少看连续剧,因为大家都觉得看不下去,为什么?其实我个人觉得归根结底还是浮躁在作怪.难道你真的没有时间来看吗,未必?我比较欣赏那些能下去的人,至少觉得他能静下心来去做一件事情. 理财当前,理财可是一个非常热的话题.但是很多人表现出来的却适得其反.在昨天看的那本书种强调了一个观点,那就是坚持.我另外加上一句,需要用心.首先,不要认为自己的钱少而不去理财,一个月工资只有2K块也是可以理财的.其次,如果进入理财天地,那就得盲目的去做吗?不是.去年和今年,股票和基金比较火,一些人看周围的人赚个盆满钵满的,所以决定也入市.但是最后其实并不是和当初想像的那样.其实这是需要用心去做的,也是需要大把时间去研究的.基金,股票,债券,保险,国债,哪一个不是要去了解的呢.既然打算进入,那就充好电吧.即使已经失败了,在学也不晚,亡羊补牢吗. 工作这里的工作当然是指我们这一行的了.那做技术的来说,不可避免的碰见很多疑难杂症.但是很多人给我的印象不是我所期望的.每天都有把很多人我加为MSN好友,他们加我为MSN好友的目的就是为了问一些简单的常识型的问题.其实我一般不太愿意解决这些问题.在以前的文章里我就提到过,充分发挥自己的能力,努力解决好一件事情,要知其本质.很多时候并不是人们没有能力去做,而是不想去做,或者没有时间去做.真的,技术,需要用心去孕育,这样技术才能够扎实.当然我不是说我自己是一个技术扎实的人.一门技术是需要用心去学习的,不要动不动就问别人.先自己解决,如果解决不了,可以和别人讨论,不要直接问别人怎么做. 读书相信每个人家里的书都有一堆,但是真正看了或者看完的有基本呢?每次看见一打一打的书往家里买,我真的感到很纳闷,这些书我看了吗?如果不看,买回家干嘛呢?难道是为了过足刷信用卡的瘾?难道是为了表现自己仍然是个知识份子?难道我们真的没有时间去看?未必,我看我们的时间多的是.其实,我们没有静下心来看.如果一旦进入角色,相信会进入另外一个世界. 总结以上只是蜻蜓点水的描述了几个方面.不是我们做不到,而是我们没有用心 去做.面对这样一个浮躁的社会,用心看起来真的很难.今天发现这个好,于是投入三分钟的热情.明天那个流行,决定放弃今天的,投身明天的.这样不仅仅是浪费了精力,关键是浪费了生命.在这个社会里,独善其身真的很难.但是,我们又不得不做.更是难.人生,其实是自己的一份大事业,让我们用心去经营吧. 我仍然需要努力,未来不后悔才好.如果你还没有,一起加入我的行动吧!

嘿,BB插件居然不能用

上篇文章介绍了BB 的visual studio插件.下载之,还真够大的. 好不容易抽了点时间准备试用一把,居然不能安装. 安装的时候首先安装SQL Server 2005 Express版本,我机器上已经有了这个版本,但是在安装的时候居然没有提示,仍旧是勇往直前的安装下去,装了半个小时后之后发现还在那里安装,于是直接结束掉.重新安装,又报错,没辙,重启一下机器.再试在失败. 于是换了另外一台机器,症状仍然是这样.没辙了,有时间研究研究是什么问题. 疑问,如果机器上装了SQL 2005怎么办呢?所以只能说明安装文件做的不好罢了!