随笔:Django升级,Ubuntu DVD版星期二, 十月 30. 2007昨天晚上闲着没事,跑到Django的网上看了一下,居然正好发布了一个重要升级,对于0.95和0.96稳定版,还在svn trunk版,都有一个严重的拒绝服务漏洞(在开启了国际化和localMiddleware的双重前提下),很不幸的是,理财易正好符合这个条件,于是准备升级。官方的1.0始终不发布,每天十几甚至几十个bug fixed,还有新的改进,心想这次干脆直接升级到svn版得了,因为比起0.96已经过了四个多月了,功能上和性能上都有了相当大的改进。 于是在自己的开发机上下载了trunk里的django,安装上去,本地测试一下程序,没有问题,于是登录到理财易的服务器上,下载了trunk里面的django,安装,然后做了一件傻事,直接重启了理财易的服务,而不是测试环境的服务,结果,恶梦发生了,网站进不去了。于是赶紧切换到测试环境,显示500错误,一开始是提示我使用的那个DualSessionMiddleware加载错误,进入django的session部分一看,它的middleware发生了重大变化,SessionWrapper类不存在了!天哪。 赶快修改settings文件,切换回系统的Session模块,再打开,还是500错误,而且,根本不显示任何的错误信息了,只有一个IE自己的500错误。来到服务器上看errors.log,没有任何信息。马上下载回0.96.1,安装,重启,还是500。汗都要出来了。怀疑是不是没删除原来的直接安装的问题,于是来到Python的Lib目录,删光了django相关的文件,重新安装django trunk,重启,还是500错误。再删一次,重新安装0.96.1版本,再重启,哇,恢复了。 经过这惊魂10分钟,情绪稳定下来以后,来到网上查找相关的资料,没有任何地方提到1.0版把SessionWrapper搞到哪里去了。而我根据新的session middleware重新修改了那个DualSessionMiddleware类,结果还是500错误,不知道是哪里的问题。而我在开发机上的环境却一切良好,即使是使用1.0版的django。见鬼了。(服务器使用的是lighttpd+FastCGI,开发机上没有这个,只是使用manage.py runserver的临时服务器。) 继续阅读 "随笔:Django升级,Ubuntu DVD版" 什么是真正的中文编程星期二, 十月 30. 2007最近cnbeta上面汉语编程和徵剑的对抗已经成了07年另一大娱乐事件,互相批评的文章加起来已经有15篇了。谁对谁错我没有资格去评判,所以仅从中文编程(我不想提汉语编程这个词,以免被人利用)本身说一下。我的上一篇谈中文编程的文章在Sohu博客上遇到了一个较真的博友,似乎在力图向我证明易语言的确是中文编程未来的方向,而且通过cnbeta的评论,不少网友也比较认同易语言的实现方式,只是一味的在批判汉语编程的抄袭行为和炒作行为。那么,我就从易语言的角度来看看,中文编程应该做成什么样? 从程序员的角度来讲,易语言实现了很多个突破,比如全编译,还有可以在Windows平台下编译成Linux下的执行程序,这些都是易语言自己宣传的重点。(其它的特点比如操作COM,操作数据库,那都是一门编程语言必须具备的功能,就不用说了)。据我所知,目前只有Delphi做到了全编译,不管你引用到了多少个VCL类库,最后都可以编译成一个独立的exe文件,并且能够在一台全新安装的计算机上跑起来。VC和VB都需要一个很大的dll,后来微软把这些dll打包在了Windows里面,才算解决了问题,过了许多年,人们都几乎以为它们不需要别的支持了。 假如我现在有一个伟大的理想,要做一个让中国人都会用的编程工具,能够最大程度的降低学习成本,最快的写出自己所需要的软件,那么,我需要做什么? 根据这个目标,我假设我的用户是这样一个人:年纪50岁左右,对英语一窍不通,有正常的思维习惯,已经有了良好的电脑使用习惯,知道什么叫操作系统,什么叫软件,一个软件里面什么叫窗口,什么叫按钮,什么叫文本框,什么叫输入,什么叫输出。会打字(当然,仅限拼音)。有正常的数学能力(不包括高等数学)。假如我自己经营了一个小杂货店,自行管理进销存,现在准备写一个软件来管理我的进货和销售,以便计算我一年能赚多少钱。(以我的父亲为样本)。 为了方便起见,以下的第一人称改为该用户身份。 首先,在我准备写软件之前,我需要做一些准备,我当然不会指望打开软件马上就能开始写软件了,我需要知道一些写软件的基本概念,知道程序是按钮怎样的逻辑来运行的,知道我的代码应该按照什么样的逻辑写出来。既然要大大降低学习成本,那么,应该尽量的向我的真实思维靠近,我才能最容易的接受这样的写软件的过程。 继续阅读 "什么是真正的中文编程" Django:更简单的实现记住密码功能星期一, 十月 29. 2007Django的设计里,Session的保存是借助Cookie的,Cookie的保存默认有两种周期,浏览器生命周期和14天周期。这两者的选择在settings.py里面的一个参数,设成True就是前者,设成False就是后者。但是,我们通常的需求是用户登录的时候可以选择是否记住登录,如果不选就是前者,如果选中,就使用后者,但是Django却没有留下这个接口。 在我以前的文章里面,是通过直接修改Django的源代码,改了它的sessionMiddleware来解决的,今天在浏览它的google group的时候,终于找到了一个比较正规的方法。其实其原理跟我那个方法是完全一样的,修改sessionMiddleware,让它在设置Cookie之前从当前的session里面读取一个值,看看是否要记住密码,从而控制生成哪一个周期的Cookie。 但是他的做法就比我要高明了,我的做法直接修改了Django的源代码,所以导致每次升级的时候会很麻烦,因为会覆盖以前的修改。但是他的做法是自己重新写了一个sessionMiddleware,基本上,这个文件应该就是直接把原来的拷了出来,然后做修改。只要在settings文件中指定这个middleware的类,让你的项目使用自己的这个就可以了。这样,系统自己的就完全被忽略掉了。 这个博客不能贴代码,需要看源代码的去我的博客堂地址吧:http://unfish.cnblogs.com 百度的C2C能玩出什么新花样?星期一, 十月 29. 2007前段时间看到百度要出自己的IM业务的时候,觉得还比较靠谱,而且觉得网友杜撰的那个“百小声”的名字相当的有深度。可惜后来被百度证实是假新闻。如今,突然又看到了铺天盖地的百度要出C2C的新闻,如此高的媒体覆盖率,而且处处引用都提到是百度的高层透露的消息,看来应该是真的了。但是我却不敢看好百度的这个打算,实在是觉得,有些不着调。 百度是搜索引擎起家,目前也是完全靠搜索引擎来发展和盈利,可惜百度眼光比较散,看到好的都想做,出了百度空间,出了百度新闻,而且百度新闻要向门户类型看齐,而不再甘于做一个新闻的聚合。这些业务并没有给百度带来更大的收益也没有更大的流量,除了百度知道是比较靠谱的,因为它完美的结合了百度的搜索,变成了一个自然语言搜索的先锋军,人肉搜索的最佳成功案例。 假如百度的IM面世,它想要抢占的是哪块市场?如今虽然QQ和MSN对抗很激烈,但是它们已经形成了各自的稳定的用户群,办公用MSN,娱乐用QQ的现状已经形成,而IM的第三名淘宝旺旺则是完全依赖于自己的会员群,和完全独立的目标市场。在QQ和MSN的中间,是否还有足够的缝隙再存活一个百小声?即不办公也不娱乐是什么情况?难道像我用GTalk那样,只是用来跟一些机器人打交道?(叽歪,饭否,哪吒等等)。 如今百度高调宣布自己的C2C战略,是否是想先探探市场的反应,还是已经胸有成竹,先给淘宝来一记叫板?淘宝在国内C2C市场的垄断地位已经毋庸置疑,拍拍和易趣加起来也不过10%的市场份额,而且淘宝本身的产品和经营策略还有用户口碑,目前都看不到明显的瑕疵,因此,想要正面战胜淘宝,几乎是不可能的任务。而且,阿里巴巴的上市又为它拉到了足够的资金和国际声誉,即使要拼流血,相信淘宝也不会退却,百度的切入点又在哪里? C2C市场为什么会让人眼红?应该说,凭借淘宝现有的模式,盈利的机会还很小,几次对普通用户收费的试探行为也遭到了顽强的抵抗。能够想像到的好处似乎就是垄断这个有着巨大前景的市场,还有一个就是现金流。但是淘宝的现金流并不是因为淘宝模式,而是因为它有支付宝,所有的现金流都是在支付宝的账户里面的。那么,百度势必也要再推出一个自己的支付平台。另外,北京推出的新政策要求网上交易必须办理营业执照,必须纳税,而这条政策对于身在杭州的淘宝是没有效用的,但是百度却要想办法解决它。 现在进入C2C市场的好处就是有了淘宝这个标杆企业,一切成功的经验都可以直接照搬过来。只要有钱,开发成本当然可以忽略不计,无论是淘宝还是支付宝。凭借百度的政府地位,搞定各大银行也不是什么难事,但是,真正的困难是,如何搞定用户。 当年淘宝的崛起是因为易趣给他留下了一个缺口,利用免费,利用4个亿的市场宣传费用,利用那些还没有开店的没有迁移成本的用户,成功的打败了易趣。百度难道已经看到了淘宝的弱点?但愿他不是想用送礼券或者送现金这种低档的手段来竞争,但愿他看到了用户更深层的需求。 无论如何,多一个竞争者,对用户总是有好处的。让我们耐心的等待,看看百度能给我们怎样的实惠。但愿这次不要再来一次雷声大雨点小的玩法,让我们空欢喜一场。 威客网存在的问题与建议星期六, 十月 27. 2007今天跟朋友在路上闲来无事,从Web设计中的用户角色对网站结构和界面的影响,谈到了k68.cn那粗糙的界面。它为什么不做个漂亮一点的界面呢?没有开发人员还是开发很有难度,肯定都不是,因为它的首页已经改的比较令人赏心悦目了。那么,为什么把任务界面留在那样一个原始的程度上?甚至感觉像98年我学做网页的时候看到的那些Netscape下面所看到的灰灰的网页。 麦田曾经在他的文章中谈到自己的蚂蚁网在通过k68平台选集新Logo的时候,感觉到了k68的创始人阿康的“网感”,这也是k68保留简陋的页面样式的原因所在,因为,只要抓住用户的根本需求,界面永远不是最重要的东西。但是,一个美观的界面也能在人们在网站上寻找自己的工作的同时给人们以美感吧,为什么城市都要搞市容市貌建设呢? 页面的问题不是我们所关心的问题,k68以及其它威客网的的核心价值是什么呢?现在的IT技术人员很多,学IT的人也很多,外包环境也很成问题。公司找不到能够完成任务的人,高手又找不到足够发挥自己能力的空间。高手无论是做Soho,还是在某个公司全职工作,他一定是有许多额外的时间的,这些时间如果能够给他带来商业价值,又能够帮那些找不到高手的公司解决最需要的问题,这就是威客网的价值所在。根据想像而言,这个市场是相当大的,所以,投资公司也很看好威客网站,似乎几个威客网站都号称自己拿到了多少多少万美元的投资。 那么,他们实际活的如何呢?首先,威客网适应哪一种业务?如果一个公司准备实施请人开发一套CRM系统,预计项目费用10万左右,周期三个月到六个月,而且需要项目团队提供专业专注的服务,那么,威客网站是达不到要求的。企业也不可能愿意把10万元现金打到k68的账号上,然后等待别人来交差。我认为,首先,它所适合的项目的范围比较小,适合单人完成(当然,如果有专业的小型外包团队以k68为平台生存那也是不错的),其次,它的开发成本不能太高。 这个条件非常重要,正如麦田所说,为了征集一个新Logo,500元打到k68的账户上,中标的人可以拿到80%也就是400元。结果提交成品的人超过200个,最终只能从这200多个产品中挑选一个来使用,这个人得到了这400元,其它人呢?则一无所获。那么剩下的200多人,在开始设计这个产品的时候,必然已经做好了所有劳动付诸东流的心理准备,毕竟,只有一个人能成功。那么,在这样的环境和条件下,你愿意投入多少成本来开发这个产品呢?50?100?500?还是1000?一个Logo只是一个图片,对于一个设计高手,可能10分钟立意,不超过半小时就可以把产品拿出来,那么,他的成本就是这一个小时的时间价值,可能还不是很高。那么,那些要求为公司开发一个小网站,或者一个小论坛的项目呢?无论如何,你愿意投入的成本,是最终可以拿到的奖金的多少分之一?面临你未知的竞争者数量和他们的水平,你做何选择? 既然开发成本不能太高,那么它的最终成交金额也不可能太高,那就决定了威客网站可能的收入水平。在这样的条件下,投资商是如何计算他们的投资回报率的? 同样是前面这个问题,对于没有中标的那200多人,他们付出的劳动虽少,但是不管多少都是浪费,如果每人一个小时,200个人就是200个小时,而一个上班族每周才工作40个小时,也就是说,这一个项目,就浪费了一个专业设计人员五周的工作量。一千个项目呢?这个问题是不是真的无法解决呢? 我们到是临时想到了一个主意,虽然没有经过严格的论证,但是至少听上去是可行的,如果哪个威客网站看到,并且有意愿试一下的话,希望能够告诉我,让我看到结果。 这个主意就是,我们不能在所有的人都花费了成本以后才去选择交给谁。如果我们公布了一个项目要求,还是以征集Logo为例,200人报名参与,我们可以从这200人的个人简介页面上看到他们的作品Demo以集他们的用户评分,然后,我选择五个人来为我做这个项目,每个人付给他们一定的成本价值,比如50元。最后选中的那个得到剩余的金额。 这个简单的方案威客网的创建人没有理由想不到,但是不知道他们为什么不实施。这样首先保证了作者的劳动是可以收回成本的,那么他们至少不会匆忙的去应付,他们的时间也不会白白浪费,(毕竟,所有的Logo都是创意所在,都是可以复用的),对于作者的积极性是有相当大的提高的。当然,最终的胜利者得到的奖金要少一些,或者说,项目的需求方所需要的花费可能更多一些,但是这样带来的项目的质量和对双方的信任和尊重都是有价值的。而且,需求方的工作量也会大大减少。(当然,可以加上一点,如果这五人以外的人仍然想参与项目也是允许的,但是他们的拿不到基本保证金的,如果他们有充足的自信,当然可以去尝试。)这可以充分的缩小最后的选择范围,在最短时间内得到你想要的成果。 一点浅见,欢迎拍砖。 用Bugols管理自己的项目星期五, 十月 26. 2007假如你是一个开发人员,假如你通过威客网站比如k68.cn来接一些单子,或者是通过朋友介绍或者个人魅力找到了一些小项目来做; 假如你是一个开发团队,你们希望自己做项目的过程更加标准化,希望用户能够通过你们专业的流程信任你们的开发能力,但是你们目前没有自己的专用服务器,或者没有独立固定的外网IP; 这个时候,你如何来管理你的项目信息,如何让用户随时看到你的工作进度,如何让用户简单有效的提出他们的修改意见,产品交付后,用户的Bug如何报告给你,你又通过什么样的手段来管理它们呢? 不知道你是如何来解决这个问题,但是我却多次为这个问题所烦恼。开发过程中我没有办法让用户知道项目的进度,哪些功能已经完成,哪些功能有待开发,哪些功能需要他们的确认再修改;开发完成后用户只能经常的通过电话或者Email来告诉我系统中新发现的Bug,而我不得不建立一个Excel来管理它们,当我准备把修改了部分Bug以后的版本发给用户以后,用户不知道哪些是已经完成的,因此导致重复的报告我还没来得及修改的问题;而如果我想等一次全部改完再给他们的时候,他们又会等的不耐烦,不知道我是不是在工作。 从需求上来看,我需要一个标准的Bug管理系统,如果我有自己的服务器,那么问题很简单,装一个Mantis就可以了,甚至,我还可以装个Bugzilla,甚至,是Jira。不过,我没有服务器,那就比较麻烦,即使是只买一个包含PHP+Mysql功能的虚拟主机,加上域名,也要五百块左右,还要自己关心数据备份的问题,而且,我的用户对使用这种复杂的Bug管理系统有着相当的抵触情绪。 现在,我有了Bugols,全名Bug Online System,即Bug在线管理系统。你只需要记得这个域名www.bugols.com,其它的问题,都不用操心。而且,更重要的是,这个系统的设计目标就是给那些希望最快的使用Bug管理的个人开发者和那些对电脑几乎一窍不通的客户来使用的,因此,该网站的设计尽量简化,功能和菜单上都极尽简单,但是,恰好够用。另外,该系统还可以作为一个简单的项目管理工具来使用。 点击浏览项目,能够看到网站上所有被设为公开的项目列表,点击查找项目,可以通过项目名来搜索到项目。点击一个项目的名称进入项目页面,看到的就是该项目下所有的Bug列表。 在项目页面可以看到左边的菜单,因为是公开项目,任何人都可以提交Bug报告;可以进入项目的公开讨论区,可以作为简单的软件支持论坛;如果你已经登录了,可以创建自己的过滤器(完全自定义的Bug搜索列表),以及收藏项目或者申请加入项目的团队。 如果你还没有用户,可以通过右上角的注册链接在半分钟内注册一个新用户,马上就可以使用网站全部的功能了。你可以创建自己的项目,可以加入另一个项目作为开发者或者作为普通用户(使用者)。如果你的项目被设为私密项目,那么该项目将不会显示在网站的项目列表中,也不会被搜索到,其它用户如果想看到该项目,只能通过项目的管理员手动的添加对方的用户名到项目成员中,并告诉对方该项目的Url,否则非项目成员将没有办法看到项目的任何信息。 通过这个网站,我可以简单的创建一个私密项目,为我的客户注册一个用户并添加到项目中,然后把项目地址和用户名密码发给我的用户,那么,在前期开发过程中,我可以把用户的需求整理成一个个的待开发的任务点。这样,用户就可以随时看到我工作的进展,哪些功能已经完成,哪些没有完成。对于有异义的任务点,他可以直接把他的修改意见留下,或者在经过电话的详细讨论后,由我来添加到任务点的备注上,作为参考和历史依据。当产品开发完成进入测试阶段后,用户可以把Bug直接提交上来,并且可以随时监控我的工作进展,哪些已经修改哪些还没有修改。 通过Bugols,不但提高了我和客户的沟通效率,大大改善了产品的质量和用户的满意度,赢得了良好的用户口碑,使得用户更加欣赏我的专业形象,从而为下一次合作奠定了良好的基础。 |
关于我![]() 搜索网站订阅到推荐文章友情链接系统管理 |


最新回复
21/11/2008 11:41
没什么大不了的 商业就是为了赚 钱 你可以不用百度 用百度总归要 付出点什么 忍受点什么
20/11/2008 17:02
同意楼上的!
20/11/2008 14:04
中国国情,我国特色,什么到中国 都会变味的
20/11/2008 13:45
有钱的企业排前面,很正确啊。有 钱的企业还不是在电视上出现的机 会高。医院什么 [...]
19/11/2008 17:46
反正我不喜欢百度的竞价方式!
19/11/2008 16:30
反垄断法只是限制微软用恶意手段 打击竞争对手,并不是限制微软必 须要20块钱卖自 [...]
19/11/2008 16:16
不是法律,那么反垄断法呢?
19/11/2008 15:30
写的好~~~ 世界在变 inte rnet 需要新的生活、思考方式