Hello World
Spiga

两年多来第二次更新博客功能

2012-06-18 00:08 by 老赵, 4737 visits

话说两年多前,我从博客园搬到了这个独立博客,用的是自己写的最简单粗糙的博客程序。这个博客系统十分简单粗糙,连文章编辑都是在文本框里直接显示HTML,甚至没有文章删除的功能——因为我不需要。这就是这个博客系统目的,只为我一个人服务,我够用即可,但也必须能让我够用。自己写的博客系统胜在高度的订制性,我可以把握页面任何一寸角落。直到现在,我的博客程序只增加过两次功能,其他都是对于样式方面的小修小补,可见我这人是多么的不思进取。从某个角度说,这两次更新的目的是相同的,都是为了抵御垃圾回复。这少数的令人恶心的人和事,就能不成比例地占用我的精力。

第一次程序更新,是为了抵御自动回复,一开始时不时会出现一条垃圾回复,遍布各篇文章。我曾经试过手动删除,但最后垃圾回复发布频率提高到10到15秒一条,我完全删不过来,一觉醒来可以满眼都是垃圾回复,令人苦恼不堪。其实说到底还是我的博客回复太过容易,一个简单的HTTP Post请求便可发布成功。我也想过增加验证码,但我不想让博客回复变得麻烦,于是最后采用的是客户端和服务器端配合进行的简单的验证。具体方式有些忘了,应该是由服务器生成的时间戳附加在文章内容上,再用MD5生成签名等等。这些步骤对用户来说都是透明的,但可以完全抵御简单的重复提交。其实只是这么一个简单的手段就完全杜绝了之前那种垃圾回复,有空我重新读下之前写的代码,整理出一篇文章出来。

自动垃圾回复容易处理,但由人肉发布的垃圾回复便难以抵挡了。基本从我搬至独立博客没有多久,我的博客上就出现了一个著名的ID,强烈抵制微软各种技术。一开始我还以为这是一个业界牛人,因为他一上来就号称自己十几年前做过哪些哪些技术,列举各种名词头头是道,所以还客气地回复,一一指出他回复中错误的地方。但后来慢慢发现,这位仁兄除了列举名词似乎就没有其他的本事,抓住任何“观点”都会莫名其妙地用来黑微软,逻辑之差令人乍舌。关键是它可以如方肘子一样搬出各种“道理”,列举各种“数据”。更有趣的是,他可以做到跟肘子一样,对于各种引文选择性地采纳,即便被人指出错误也完全不予理睬,甚至完全不去做最简单地了解就来胡扯。

例如,他会在Build大会没几天就主动跑上来嚷嚷,说WinRT舍弃了.NET,还加入了各种新类型,例如IIterable,IVector,IMap等等,全然不顾真相如何。其实只要看过Build大会上最简单的介绍,就能知道Win8可以说终于对.NET提供了直接支持(在他眼里,这句话就变成了我在说WinRT是.NET的一部分),使用各种API变成系统调用,无需手动映射和封装,性能也得以提高。而WinRT中如IIterable这种集合类型,完全会被自动映射为.NET中的IEnumerable,IList或是IDictionary等等,在WinRT层面上换一个名字只是因为它是一套公用的API。事实上.NET是WinRT重要组成部分,WinRT的元数据格式就是.NET程序集中元数据的描述方式,用IL Spy类似的工具甚至可以直接查看其接口(他又觉得我认为ILSpy可以看到内部实现)。如今C#真正成为了WinRT的一等公民之一(C++自然也是,但他会认为我说只有C#才是)——但这一切对他来说都没有意义。他只要不断黑,这跟方肘子的手段一样,只要有一个人看到并相信他的说法,他就赚了。

我问过他是谁,是做什么的,有没有写过的文章发起过的讨论可以看看,但两年多来,他唯一透露的自己的消息便是自己有十几年经验,各种东西都懂,现在搞一些我不了解的东西,从来不做正面回应。我也建议过他去StackOverflow或Quora上问个问题,或是给出国内一些著名的博客,让他去问问那些人的看法,但他也无动于衷,留下的回复是“之前跟他们说过”,而现在“跟他们没什么可说的”。在我看来,他之所以能够孜孜不倦地主动来我这里挑事,最重要的一点便是我保证过不会拉黑,不会删除回复(除非是纯粹小广告)。

我这么做的目的,本来是想留下正反两方面地说法,而不因为自己的喜好而删除回复。本来这是种自律,如果在一个大家都会自觉把握讨论基本准绳的环境中,这应该是个理想的方式,可惜现在就有人不自觉地破坏这样的环境。在互联网上的发言,其实很大程度上是在拿自己的“信誉”做筹码,但像那位仁兄一样如缩头乌龟般从头躲到尾,即便信誉破产对他也没丝毫影响。他可以随便扯出乱七八糟的“道理”,而我则需要一条一条反驳,认真查找便阅读各种案例。而他却可以肆意歪曲我说的话,甚至无中生有地解读我的行为,或是找一些文章“标题”来证明他的说法,我却要在下次仔细阅读他的“举证”,并且做进一步的解释。

久而久之,我不胜其扰,但我依然不想删除回复,于是变得脾气暴躁起来,后来基本就是见他一次骂他一次。现在看来,这么做实在是十分愚蠢——因为我在不断付出我的信誉,而他却可以躲在乌龟壳后面无所畏惧。久而久之,最终损失的只能是我自己,还包括读者的体验。痛定思痛,我决定还是为博客增加一个功能,可以将某些评论自动隐藏起来,待您真心需要浏览时再登陆查看。上篇文章就是一则具体案例,本来是一篇令我感觉颇为良好的文章,却又被糟蹋了,实在令人心痛。

写了这么长,我忽然意识到似乎这更多还是为了说服我自己,让我自己做这个决定时心理可以更踏实一些。虽然开发了这个功能,但我还是希望可以尽可能地少用,毕竟它还是可以算是开了一个坏头。幸运的是,从历史上看似乎也只有那位仁兄的回复需要受此特殊待遇了。看到便隐藏,眼不见为净。

只为一个人而开发一个功能,我也算是够给那位仁兄面子了。

更新:刚才趁在公司里下班前的时间,把那位同学的内容以及相关对话都隐藏了。看着当时大段大段客客气气的回复,让我感觉自己之前浪费了那么多时间。这些文字加起来至少也有几十篇长文,如果我能把那些时间利用起来,Jscex的文档早就完成了。愚蠢啊,我真他妈的的愚蠢。

Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名赵劼(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言

Add your comment

109 条回复

  1. jacul
    173.59.25.*
    链接

    jacul 2012-06-18 05:50:46

    哈哈,赵姐夫这么厉害的博客系统可以开源让大家学习嘛.

  2. 老赵
    admin
    链接

    老赵 2012-06-18 09:28:19

    @jacul

    这样的博客系统你也要看?连我都不好意思拿出来给人看。

  3. zicjin
    222.66.81.*
    链接

    zicjin 2012-06-18 09:37:13

    你好像是我见过的唯一一个对自己博客里的留言一一恢复几乎不遗漏的人。很少有人像你这样大方消费自己时间的。 我觉得,挑你喜欢的留言回复回复就行了。你的时间可比某些人值钱多了。陪这种人玩儿你亏的可不是一点儿半点儿。

  4. 老赵
    admin
    链接

    老赵 2012-06-18 09:45:23

    @zicjin

    嗯,主要是我看不惯自己的地方出现垃圾,所以总是一遍又一遍地“应对”而不是“铲除”,所以搞得更加难看。现在会好些,既然已经能让自己的地方变得干净了,我自然也就舒服了。就是有些人跟肘子一样,一旦被他们缠上就是回应也不是,不回应也不是,他们自己不需要脸面不需要信誉,只要别人扣分,他们就赢了。

  5. vieri122
    118.194.244.*
    链接

    vieri122 2012-06-18 09:54:05

    经常看老赵的博客,不过很少留言。这次为了你做的这个功能我测试一下。这个不算广告贴吧?

  6. 老赵
    admin
    链接

    老赵 2012-06-18 09:55:15

    @vieri122

    我这里是人肉控制的,不是自动的,就我一个博客,哪里需要自动筛选?

  7. stylus
    125.95.19.*
    链接

    stylus 2012-06-18 10:23:18

    刚说是眼不见为净,转眼就忍不住去回复了。难道这就是传说中的爱?

    为免被屏蔽,给个正经的建议吧,“点此显示”之后或许有个“再次隐藏”更好。

  8. 老赵
    admin
    链接

    老赵 2012-06-18 10:27:43

    @stylus

    眼不见为净更多是指保护我的博客阅读体验,回复主要是因为我觉得不回对不起人家最后的疯狂,当然在有特权的情况下看人表演真的很爽……我堕落了。

    “再次隐藏”真很重要吗?我的初衷是只要显示,要隐藏就刷新一下的,好吧我有空加上。还有别担心被屏蔽,少数离题的自然没问题,我说了从历史上看,似乎这就是个为某人单独设计的功能……

  9. Crazy
    114.222.127.*
    链接

    Crazy 2012-06-18 10:42:28

    支持老赵,我也经常看你的博客,很多新东西都是从你这里获悉的。现在公司部分项目转到Android平台上,正好去年就研究过MonoDroid,现在公司准备用它作商业应用(产品是面向客户,而不是用户,所以安装包大4、5M不是问题)。

  10. 躺着读书
    183.62.221.*
    链接

    躺着读书 2012-06-18 11:12:07

    @mcpssx

    扯谈啊,网络哪来的架构师的责任? 一看就是一个从来没在规模大点的企业工作过的人。十个人以下的企业才凑合着用用宽带,稍微多了,要拉光纤了。 看出来了,此人也就是在家庭作坊里面开发的程序员吧。更大的可能性是学生,以为公司网络是校园网啊;自己在宿舍搞个宽带,打网游就很爽了是吧。 呵呵。那公司给每个人上个宽带?如何管理敏感信息?每个人上个宽带的成本是多少?根本没有想过吧。

    奉劝一句:在学校里面学的理论,那些hands up的东西,看上去很优美。在真实的企业环境下,总是要被不同的现实需求所玷污。真正的搞点企业应用你就会知道,课本上很多设计得再好的东西,有的时候连一个小应用都搭建不起来。

  11. 躺着读书
    183.62.221.*
    链接

    躺着读书 2012-06-18 11:24:00

    @Crazy

    不推荐monoandroid …… android的开发效率并不低,学习曲线也不高。招人也好招,开发android的一抓一大把。选型选择mono,反而增加了招人的成本……无论是java、C#还是C++的程序员,迁移到android的傻瓜式开发的成本几乎为零…… android就是多年前的powerbuilder或者vb的感觉……

    况且,android已经够混乱了,api变来变去的,再来一个mono更加添乱。

  12. 老赵
    admin
    链接

    老赵 2012-06-18 11:28:58

    @躺着读书

    对最终成品来说网络是架构师的责任倒也罢,但现在在开发,演示,QA环境里么,各种各样问题都有可能。例如,最终用户其实一直在美国,可能连美国服务器用起来很正常。但是忽然有一天老板飞来香港视察工作了,这时候网络问题就会变得很可怕,这很正常。还比如一套应用在亚洲开发,从美国开始试用,过半年后推广到亚洲市场,需要应对一些网络问题太正常不过了。

    其他还有什么权限问题啊,监控问题啊,我会告诉他合同工跟正式员工相比会有哪些资源限制吗?而且,谁能在开发时知道所有情况?开发周期里情况不会有所改变?谁说在环境A运行正常的程序,在环境B就不能死慢,就不能优化出80%的性能?老板在美国前一个工作日写封邮件说要换个环境提个要求,然后第二天上班时就能看到改变,能够快速应对不就比的是生产力生产工具么。

    没体验过这类环境也罢,关键是那位仁兄什么都敢yy地那么自信,什么都敢硬往WPF上黑,真是十分了得。

  13. 老赵
    admin
    链接

    老赵 2012-06-18 11:31:42

    @躺着读书

    我也一直打算用下Mono for Android,我只用过MonoTouch……不过其实用Mono for Android的原因很大程度不是因为原生开发难度高吧,而是希望快速迁移现有代码,共享代码开发,而不需要再写一遍。

  14. 躺着读书
    183.62.221.*
    链接

    躺着读书 2012-06-18 11:45:20

    @老赵

    要这样说我也不好反驳什么了。不过android变化太快,我觉得mono未必能跟上。那么,如果公司的其他部门要用android的最新版,mono跟不上,那么你得想办法让mono跟上…… 我的意思是说:你得做好修改mono源代码的准备。

    算上这一部分的cost,你得到是否划得来。那就说不准了。所以我觉得,干脆重新写,可能划得来一点……其实你用monoandroid,起码界面也还是得重新写的吧……

  15. 老赵
    admin
    链接

    老赵 2012-06-18 11:51:18

    @躺着读书

    跟设备无关的代码,比如业务逻辑,算法之类的,都是共享的,不会因为Android变化而改变。和设备相关的部分,Mono for Android其实就是提供了一层Android API的绑定,Android的API变了,就重新生成一次绑定代码,这是自动的(至少MonoTouch是可以自动生成的)。话说其实你也不能修改Mono代码的,或者说你可以修改Mono代码但跟Mono for Android没关系,后者是商业产品,是基于Mono的衍生品。我一般对商业产品都比较放心,基本不担心跟不跟得上的问题,这方面他们要考虑地会多地多……

  16. 躺着读书
    183.62.221.*
    链接

    躺着读书 2012-06-18 12:41:07

    @老赵

    商业产品 +10分

    不过,我不大相信对于android设备,还会有大量的业务逻辑算法,复杂到不能轻松用java改写的。

    话说,core java -> android 砍掉大半api,很多原生jar包都跑不起来,都需要有android特别版。不知道mono的情况是怎样。

  17. 躺着读书
    183.62.221.*
    链接

    躺着读书 2012-06-18 13:23:16

    嗯, 测试一下折叠功能。不错 倒是,你的折叠是手动啊,怎么有评论漏出来了?

  18. 老赵
    admin
    链接

    老赵 2012-06-18 13:38:57

    @躺着读书

    手动的,人肉隐藏的。

  19. Cat Chen
    69.194.197.*
    链接

    Cat Chen 2012-06-18 13:41:35

    Why don't you just use Disque? Its latest version allows down voting and you can let people down vote low quality comment.

  20. 老赵
    admin
    链接

    老赵 2012-06-18 13:43:42

    @Cat Chen

    回复数量太多了估计Down Vote来不及,还有用第三方服务还要涉及到数据导入什么的,现在就完全自己把握了,比如记录哪些信息等等。

  21. 老赵
    admin
    链接

    老赵 2012-06-18 14:12:53

    @躺着读书

    我把你们的对话隐藏了啊。其实 @mcpssx 跟肘子一样是死不认错的类型,早就开始耍流氓了。我建议不要正当回复他,心情好时骂他两句,让他最后疯狂一把,反正我会隐藏的。

  22. 躺着读书
    183.62.221.*
    链接

    躺着读书 2012-06-18 14:47:25

    @老赵

    这种人我太熟悉了,在学校的时候就号称“杠头”。 什么事情都要和人争一争。完全不看事实的真相,只看自己争得了多少个得分点。有点像圈养的公鸡或者蟋蟀,来个人就要斗一斗。

    只有走到社会里面去了,真正做点实事,才能好点。

    你看他闲时间这么做,八成就是个学生。也许还是一些比较差的本科院校的。

  23. 链接

    zhangle1987 2012-06-18 15:17:16

    经常看老赵的博客,也发现那个"方肘子"式的人物了,看了半天mcpssx的回复居然没看出来他的主张是什么....早知道不手贱点开隐藏内容了,浪费时间.

    另:老赵,你的博客是架在linux上的吗?打算也搞一个类似的博客,不知道哪里可以搞到类似的主机

  24. 老赵
    admin
    链接

    老赵 2012-06-18 15:22:28

    @zhangle1987

    他的主张自然就是抵制微软技术,只不过各种扯蛋,不要试图理解他的逻辑,只看他的目的你就会“清楚”了。

    我买的是Linode服务器,用的是Ubuntu Server,博客是自己写的,跑在Mono上。平时写程序在Mac OSX上管理代码,Parallel Desktop运行Win7做开发,部署在VirtualBox里的Ubuntu Server做测试,很有意思的。

  25. 躺着读书
    183.62.221.*
    链接

    躺着读书 2012-06-18 15:56:43

    @zhangle1987

    他的主张甚至不是“黑微软”

    他的主张是“和人斗”。 你看看他回复我的。只要你说什么好,他必定会说那个不好。你说他不好,他必定会回复你不好。你说他大学没毕业,他必定说你大学没毕业。你说他这个技术不懂,他必定说你不懂。

    你看,我只是主张用java开发的android,而不要借助C#,这就是他的回复:“我看你winrt,arc估计什么都没学过”

    有意思吧。

  26. 老赵
    admin
    链接

    老赵 2012-06-18 16:04:18

    @躺着读书

    嗯嗯,他刚才又在博客园说“总之,你自己说你部署服务器用的是linux,开发程序用的是mac os X”,呵呵,“虚拟机里的Win7做开发”又被活生生地吞掉了。他还说:

    这是老赵你自己说的,作为一个技术玩家,Mac是最好的选择,因为Mac跑Windows体验完美,一转眼你就忘了

    而我的原话是:

    作为一个技术玩家,Mac是最好的选择,因为Mac跑Windows体验完美,但Mac不允许运行在PC上,所以只能用一台Mac共存。

    果然如肘子一样不歪曲不造谣浑身难受——嗯,说到这个,我还同时被他扣上“韩寒粉丝”的帽子了,有意思。

  27. 躺着读书
    183.62.221.*
    链接

    躺着读书 2012-06-18 16:08:13

    和方舟子是一路的,他们还生活在文革年代。

    只分敌人和友军。敌人就是不管怎么样都要斗倒的,友军那就是不管干什么都要支持的。我一旦被他划入敌人,你看他就会黑java了。

    然后说c++一统江湖了。C++被黑了也无所谓,还有object-c。然后还有python……

  28. earthengine
    27.32.228.*
    链接

    earthengine 2012-06-18 19:50:38

    最近我对async/await的研究结果显示,由于缺乏cancel支持,在某些场合下async/await语句块比手工编写Task.ContinueWith要慢70倍。比如如下代码:

    Task<T> GetCanceledTask<T>() {
        var ts = new TaskCompletionSource<T>()
        ts.SetCanceled();
        return ts.Task;
    }
        ...
    async void DoThings() {
        ....
        try {
            int result = await GetCanceledTask<int>();
        } catch (OperationCanceledException e){
            return;
        }
        ....
    }
    

    比起

    void DoThings() {
        ...
        Task<int> t = previoutask.ContinueWith(ta => GetCanceledTask<int>()).Unwrap();
        if (t.IsCanceled()) return;
        ....
    }
    

    要慢几十倍。当然,这是由于异常处理的代价。但关键是,没有编写“优化”的async/await块的方法,因为awaitable对象只要求支持OnCompletedIsCompleted,不要求支持OnCanceled或者IsCanceled。这使得优化成为不可能。

    其实,要改进这一情况只要很少的改变。代码生成器如果检测到OnCanceled存在,它可以直接生成跳入异常处理体的代码,免去正常异常处理的开销。

    现在C#5尚未正式推出,不知道是否还有机会反映这个问题,在最终版能够解决掉。

  29. earthengine
    27.32.228.*
    链接

    earthengine 2012-06-18 19:56:41

    这个问题不是个小问题,而是牵扯到一类编程模式的问题。如果Cancel一个Async块能够做到开销可以忽略的地步,那么在下棋程序里就可以轻松派出成千上万个任务去探索,只要有一条路能通,就可以取消掉所有其它任务。如果没有这样的优化,这样的程序风格开销就太大。

  30. 老赵
    admin
    链接

    老赵 2012-06-18 21:08:12

    @earthengine

    你说得就是异常处理的开销吗?不知道你能否详细谈一下你的性能比较方法,还有你设想中的使用场景(例如就你说的下棋程序),最好还有伪代码描述,我的确可以去了解下C#组的说法。

  31. lixiong
    131.107.0.*
    链接

    lixiong 2012-06-19 06:13:24

    我靠,我还想瞻仰这种神人的。。。

  32. Crazy
    114.222.127.*
    链接

    Crazy 2012-06-19 08:37:48

    @躺着读书: 不推荐monoandroid …… android的开发效率并不低,学习曲线也不高。招人也好招,开发android的一抓一大把。选> > 型选择mono,反而增加了招人的成本……无论是java、C#还是C++的程序员,迁移到android的傻瓜式开发的成本几乎为> 零…… android就是多年前的powerbuilder或者vb的感觉……

    况且,android已经够混乱了,api变来变去的,再来一个mono更加添乱。

    公司是做互动终端设备和相关软件的,我负责整个软件部,最早版本是用Winform实现的(界面也很流畅,只是后面越来越多的动画显得力不从心了),年初开始使用WPF,最终公司决定有相当一部分客户的机器要换成Android设备,所以我才考虑是转Java还是使用MonoDroid。考虑到我们的产品不是直接提供给用户使用,Android版本由我方指定。再加上时间上的一些需要,和一些后台业务逻辑的顺利迁移(之前我写了一套界面生成器,可以根据配置动态组装不同的功能),最后觉得还是使用MonoDroid要好(当然一方面也是因为C#的很多特性Java里面找不着),所以才选择了这种开发方式。

    其实话又说回来,学Android大部分也只是在学UI和API,Android现在都4.X了,我们用的比较多的还是2.3,不一定非得跟进。

  33. Crazy
    114.222.127.*
    链接

    Crazy 2012-06-19 08:48:16

    @躺着读书

    其实我觉得用一下新的技术没什么不好的,比如说我最近要设计的一个动态模块框架,因为动态表字段的问题,关系型数据库已经不是最佳选择,最终我也“冒险”地选择了使用MongoDB,因为它的出现让我感觉它简直就是为了我这套框架而生的,呵呵。

    虽然网上都在说MongoDB不大适合有支付(尤其是银行系统)的应用,但我觉得如果业务上设计好了,也没什么不可。目前我们的产品里就有支付功能,只要做好相关备份(比如说操作MongoDB的语句全部写在Sql数据库里),也未尝不可。

  34. 老赵
    admin
    链接

    老赵 2012-06-19 09:30:59

    @lixiong

    隐藏了而已,你如果有心理准备可以把它打开咯。

  35. aisk
    118.116.91.*
    链接

    aisk 2012-06-19 09:44:49

    @Crazy

    动态表字段用postgres的hstrore如何?

  36. rhapsodyn
    113.108.76.*
    链接

    rhapsodyn 2012-06-19 10:47:37

    一直都觉得mcpssx这种人才是最NB的,神一样强大的内心,自己构造了一个楚门的世界。

    plus:老赵你问过他为啥那么喜欢你吗?某鸟创始人来着?

  37. tokimeki
    203.69.196.*
    链接

    tokimeki 2012-06-19 11:11:07

    @earthengine

    對於 Task 的處理,提供一個小技巧給你參考:

    一般狀況下,我通常用一個 bool 變數 IsPause 放在 Task 處理函數內做是否暫停處理此 Task 邏輯的判斷。

    原因我自己在寫 Task 相關的處理時,用於讀寫周邊 IO 時常會發生一旦 Cancel 就回不來的窘境,所以我寧願讓 Task 暫停在那邊也不願 Cancel 後再建立新的 Task。

  38. 链接

    2012-06-19 11:18:58

    @老赵

    Parallel Desktop上跑Win7,性能和流畅度如何?想入一个MBP,但是工作学习都离不开Windows

  39. 老赵
    admin
    链接

    老赵 2012-06-19 11:20:30

    @鑫

    性能很好,比Virtual Box高很多,可以体会出分配相同内存时的性能差距。主要还是集成的好,Win应用在Mac里可以说无缝直接使用了,强的一塌糊涂,体验的确可以说很完美。

    不过是不是适合你还要看你平时做什么,比如我搞.NET开发,一个2G内存的Win7虚拟机跑VS足够了,但好像听说WP的模拟器需要4G内存才行,不过也听说后来改了,连Win8都只要2G就能开发。

  40. Crazy
    114.222.127.*
    链接

    Crazy 2012-06-19 15:31:49

    @aisk: 动态表字段用postgres的hstrore如何?

    不仅仅是动态表字段哦,比如以下的应用场景:

    有个模块只负责给目标贴上有效期标签,于是它定义了两个字段:BeginDate,EndDate。但在关系型数据库里,目标表必须要加这两个字段,所以你不得不考虑这个字段名分配的问题(防止重复),甚至目标如果需要贴两个标签,就让你的系统设计更为复杂。

    而MongoDB基于文档,也就是表结构是基于Row(文档),而且文档是Json格式,所以系统可以这样放置你的有效期标签:

    {Name:牛奶,Size:1L,TimeOut:{BeginDate:2012-06-19,EndDate:2012-07-19}}

    从设计上讲,TimeOut这个字段是主表分配的,而里面的字段仍然保持了我当时定义的风格没有变化。最主要的是,我可以有选择的不贴标签,也就是有的记录可以没有TimeOut字段或者TimeOut字段不是用于有效期的功能,也不会影响我的逻辑判断。当然你也可以说它可以做到平滑升级。

    总的来讲,也就是一个业务对象,它可以选择“启用”或者“禁用”某些功能。MongoDB这种设计就真的很贴切,对我即将要弄的开发框架来讲。

  41. kinogam
    59.41.225.*
    链接

    kinogam 2012-06-19 23:48:07

    突然发现来老赵这里看文章最热门的还是准备好眼药水的那个……

  42. madaili
    220.165.246.*
    链接

    madaili 2012-06-20 09:34:19

    跟肘子一样.这个老是恐怖了。

  43. 躺着读书
    183.62.221.*
    链接

    躺着读书 2012-06-20 10:03:15

    @Crazy

    没有反对新技术啊,我只是主张一套平台(比如android),尽量用平台原生的东西(android-java)。这样反过来,你去扩充这个平台,相对而言就更方便。

    你们只用2.3啊……现在国内的环境,大家还是挺追版本的……我在深圳了解下,4.x 居然都有很多厂家都用了…… 你们太古董了吧,哈哈。我就是凭这一点觉得mono都未必有国内的小厂追得快。

  44. Tyler Long
    173.255.168.*
    链接

    Tyler Long 2012-06-20 11:26:08

    那些死命黑微软产品的人, 都是没怎么深入用过微软产品的. 我最喜欢的是开源的产品, 但是曾经有过两年的C#开发经验. 不得不为C#语言和API的优美强大而折服. 虽然更喜欢开源的, 但是绝不会认为微软的东西不好用. 认为微软东西跟开源的比差很多的那些人, 基本上没有深入了解过微软的东西, 也不用跟他们理论. 那些人就喜欢凭第一眼的感觉或者浅陋的理解一棒子打死一个自己不喜欢的东西.

  45. Crazy
    222.94.32.*
    链接

    Crazy 2012-06-20 17:26:33

    @躺着读书: 没有反对新技术啊,我只是主张一套平台(比如android),尽量用平台原生的东西(android-java)。这样反过来,你去扩充这个平台,相对而言就更方便。

    你们只用2.3啊……现在国内的环境,大家还是挺追版本的……我在深圳了解下,4.x 居然都有很多厂家都用了…… 你们太古董了吧,哈哈。我就是凭这一点觉得mono都未必有国内的小厂追得快。

    那些小厂追求4.X可能是为了迎合用户的口味,而我们的产品不一样。我在前面也说过了,我们的产品是商用的,给客户用(ARM板子是定制的,Android系统是我方指定的,甚至都不允许客户安装其它程序),追求的是稳定可靠。再加上我们的产品不止要在Android终端上跑,X86架构的也有很多,MonoDroid技术正好解决了我们重复开发的问题。

    非IE内核浏览器出来这么些年,你见现在有哪个银行真正支持非IE内核浏览器了?而社交等门户网站,是必须支持的。不同的业务需要不同的策略,我们产品不是追求最新版,是追求市场需求。

  46. 匿名
    1.202.240.*
    链接

    匿名 2012-06-22 18:50:01

    原来老赵是个方黑。哈哈。

  47. 老赵
    admin
    链接

    老赵 2012-06-22 19:48:26

    @匿名

    被认出来了,哦耶。

  48. 链接

    airwolf2026 2012-06-28 14:40:58

    楼上各位,你们自己架的博客,有做备份机制不?还是空间商有帮忙备份?

  49. 老赵
    admin
    链接

    老赵 2012-06-28 17:15:49

    @airwolf2026

    自己定期导出数据备份。

  50. coding as talking
    123.117.22.*
    链接

    coding as talking 2012-06-30 09:19:44

    回复一个看看!!!

  51. zeroBlack
    180.212.55.*
    链接

    zeroBlack 2012-07-02 10:47:06

    出于追求编程之美的考虑,我觉得可以对页面布局或者显示效果改进下~~

  52. 链接

    S 2012-07-02 11:00:44

    登陆之后怎么才能有头像呢~~

  53. 链接

    S就是zeroBlack 2012-07-02 11:01:32

    自己写的博客( ⊙ o ⊙ )啊!蛮有趣的!

  54. 链接

    zeroBlack 2012-07-02 11:07:06

    我想我大概是要被隐藏了~~刚发现回复时修改昵称,登录状态那里也会同步修改,所以再改回来~~

  55. 老赵
    admin
    链接

    老赵 2012-07-02 11:07:20

    @zeroBlack

    你觉得怎么改进比较好?

  56. 链接

    zeroBlack 2012-07-02 11:44:34

    @老赵

    ( ⊙ o ⊙ )啊!这个@功能好像没有提示啊~~

    如果说改进的话~我觉得应该是从网页设计的角度改进吧~~

    那个~~问下怎么弄头像呢~~

  57. 链接

    zeroBlack 2012-07-02 12:19:50

    @老赵

    我是不是说的太笼统了(⊙o⊙)?

    主要是我觉得自己有一个专门的博客网站真的是一件伟大而又有趣的事情~~

    所以我想如果把它做得漂亮些,精致些,是一件忍不住要去做的事情~~

    博客从那边转到这边,感受不到变化呢~~还一直很纳闷到底怎么回事,心想不都是一个网站的嘛,怎么还算搬家呢~~

    终于看到这篇文章才懂了到底怎么一回事~~

  58. 老赵
    admin
    链接

    老赵 2012-07-02 14:40:27

    @zeroBlack

    是啊,就是问你觉得哪里可以再做的友好一些,让你提意见建议咯……这里跟博客园区别太大了,那边格式都被调整坏了,还有就是这里写的可以随意定制。

    PS:头像就是用Gavatar了。

  59. zeroBlack
    180.212.55.*
    链接

    zeroBlack 2012-07-02 17:21:31

    @老赵

    首先,head的部分我觉得大标题和副标题的外观还可以更加协调,对于head来说,空间上略微显得有点狭小。还有最右侧的那个rss的按钮,感觉好像没有显示完全,有点点怪~

    其次,右侧的双排设计我觉得有点点乱,我想可以把读者关注的问题放在前面,自己关心的内容版块放下面。

    第三,感觉Main的那个页面略显犀利了吧,出于读者的角度,我想可以作如下改进:将您觉得经典的文章归类,并提供链接直达,当然,界面越明确越漂亮越好啦~

  60. 老赵
    admin
    链接

    老赵 2012-07-03 10:41:48

    @zeroBlack

    内容组织另说了,设计方面我就不调了,我是直接移植某个经典模板的,什么RSS那个是by design的。其他的我再想想吧,多谢。

  61. tubo
    125.71.214.*
    链接

    tubo 2012-07-03 16:35:24

    @mcpssx

    又暴露了你的无知吧,自己去想想哪一行业需要各个点拉光纤,又为什么要用不同运营商来互为备份。

    这个我知道,网吧

  62. TZHSWEET
    113.107.73.*
    链接

    TZHSWEET 2012-07-04 15:04:27

    支持!顶!博客园就是现在懒得看评论,好些人发评论都挺NB的...........一看都是一篇文章都没法过......... 呃..........灌水,都不专业!要是评论都做点这个处理感觉挺好的!

  63. 陆仁
    14.147.87.*
    链接

    陆仁 2012-07-20 11:03:16

    怎么说呢?隐藏一部分人的评论,这或许缺少一些真实,但最后能给出显示所有评论的按钮。 那也无可厚非了。

  64. 豆子
    218.17.161.*
    链接

    豆子 2012-07-23 18:47:38

    弄个功能,让大家来对评论是否垃圾投票,达到阀值,那么自动隐藏。

  65. 火星大能猫
    221.224.45.*
    链接

    火星大能猫 2012-07-26 15:03:28

    http://halfmile.iteye.com/blog/180668?page=3 那个家伙到哪里都是装高手.

  66. 老赵
    admin
    链接

    老赵 2012-07-27 09:03:31

    @火星大熊猫

    哇好熟悉啊,这大神的套路至少从08年开始就存在了,再一看又发现好多认识的人,看来我把他的回复自动隐藏还是有理论依据的……

  67. okilove
    219.142.31.*
    链接

    okilove 2012-07-30 11:28:35

    这哥们战斗力挺惊人的,不去造福人类社会太可惜了,却把自己整天浪费在内耗之中。

    还是老赵好,上得厅堂,下得厨房,呵呵~

  68. gsdczh
    50.116.19.*
    链接

    gsdczh 2012-07-30 21:00:12

    我觉得有个反派增强了技术博客的娱乐性,其实也没有那么讨厌,哈哈

  69. 老赵
    admin
    链接

    老赵 2012-07-30 22:30:48

    @gsdczh

    过分了就不行了,现在这位是会主动跑过来乱搞,而且一搞就搞到底,不怕秀下限,只会污染了环境。其实只要这个反派稍微要点脸,就会好看很多。

  70. 新号外
    124.162.23.*
    链接

    新号外 2012-08-03 13:45:39

    我擦,旁边的搜索功能,随便怎么猛击,竟然纹丝不动!-_-!!!!

    原来是zzk_go没定义....

  71. virusswb
    123.123.248.*
    链接

    virusswb 2012-08-21 08:55:14

    老赵,我觉得你就是在和这些人的斗争中成长的。感谢折磨你的人吧,哈哈!!

  72. 链接

    xinkai 2012-10-16 09:36:18

    呵呵,很喜欢老赵的风格。敢恨敢爱,赞一个。 不过最终逼我出来冒泡的还是mono, 我自己为了项目的原因,测试过mono的性能,结果被吓到了。同样是AWS的Micro instance, Ubuntu+mono 比原生WS2008+.net 慢了有9-10倍,还不是很稳定。 然后就没敢再投入时间继续研究了,可能是设置不对,也可能是JIT不对。从那以后就老老实实多花银子租windows的云服务器了,谁让咱当时上了MS的贼船呢?这里的各位大侠你们玩mono的有类似问题吗?

  73. 老赵
    admin
    链接

    老赵 2012-10-18 11:59:19

    @xinkai

    没,求测试案例。

  74. notJeremy
    199.64.0.*
    链接

    notJeremy 2012-11-15 15:19:58

    何不增加一个类似于知乎里的“折叠”功能?读者觉得某些回复污染环境,可以顺手点一下。

  75. hooyes
    74.125.176.*
    链接

    hooyes 2012-12-14 14:42:27

    我也把博客园的博客迁移到自己的站点下面了,放到GAE上面。想找一个自由,稳定的地方存放自己的写的东西。

  76. leisang
    183.61.67.*
    链接

    leisang 2012-12-15 15:01:08

    老赵,我一直困惑于如何抵御重复提交,这个貌似简单的问题,但不用验证码实在很难想出其他的方法,对您说的“采用的是客户端和服务器端配合进行的简单的验证。具体方式有些忘了,应该是由服务器生成的时间戳附加在文章内容上,再用MD5生成签名等等。”百思不得其解,能不能具体讲解一下?十分感谢。

  77. 链接

    jason Zhang 2012-12-15 21:42:37

    老赵啊,自动隐藏就好了,跟他浪费时间,是你自己的损失也是我们大家的损失。

  78. 链接

    Jefth 2012-12-28 13:43:02

    潜水这么久,忽然发现又很久没来关注了。。。终于鼓起勇气浮上来一下,继续钻研人生,继续支持老赵~~

  79. EricWHu
    220.248.0.*
    链接

    EricWHu 2013-06-25 14:46:31

    老赵啊,从某些方面来说,你应该感谢mcpssx,他使你学会如何在冲动中保持理智。 并且也让你学会了,判断一个人是否是牛人并不是留几句话就能看出来的。

  80. 老赵
    admin
    链接

    老赵 2013-06-25 22:03:27

    @EricWHu

    的确很羞愧当年被他自称的十几年经验唬住了,现在看来弱爆了的人时间再久还是渣……

  81. redcat
    49.113.244.*
    链接

    redcat 2015-12-18 13:56:04

    虽然你觉得代码丑陋~~但是我觉得发出来让咱这种菜鸟学习下,如何,赵姐夫~

已自动隐藏某些不合适的评论内容(主题无关,争吵谩骂,装疯卖傻等等),如需阅读,请准备好眼药水并点此登陆后查看(如登陆后仍无法浏览请留言告知)。

发表回复

登录 / 登录并记住我 ,登陆后便可删除或修改已发表的评论 (请注意保留评论内容)

昵称:(必填)

邮箱:(必填,仅用于Gavatar

主页:(可选)

评论内容(大于5个字符):

  1. Your Name yyyy-MM-dd HH:mm:ss

使用Live Messenger联系我