拜占庭将军问题

曾经的拜占庭国土辽阔,为了抵御来自各个方向的敌人,军队之间分隔很远,他们之间只能通过信使互相传递消息。一场新的战役即将爆发,有5支拜占庭军队要共同进退,5个将军都是平级的,他们要怎么达成一起进攻或者一起撤退的共识呢?

最简单的办法就是投票,每个将军都派出信使将自己的意见发给其他四个将军。对每个将军来说,算上自己的票数,如果进攻票超过2票就会发起进攻,如果少于或者等于2票就撤退。这是最简单的情况,很合逻辑。那假如是下面的情况呢?

  1. 5个将军中有一个是奸细,其他4个将军有两个赞成进攻,2个反对,这个将军给其中2个发去了进攻的意见,给另外2个却是撤退,结果是2支军队进攻,2支军队撤退,没有达成共识。
  2. 可能有一个或者多个信使被暗杀,或者被策反。

在这两种情况下,投票的结果不能代表大多数将军的意见。

...more

【福利】来一波春联

貌似停更了挺久。从一次拖延,两次拖延,到一次停更到长期停更,足足破窗效应了一把。不过也没关系,本命年马上要过完了,美好的新一年马上要到了,希望新的一年能多产对大家有用的,大家看的懂的内容。

再过二十多天就春节了,家里要写春联,顺便给大家发个福利,免费给大家写春联,不敢说写的多好,但是贴上墙不显丢人还是没问题的。大家把想要的春联内容留言在评论区,因为时间有限,优先给前三十个评论了春联内容的在新加坡的朋友,关注的人也不多,欢迎转发给需要的朋友。不过没法一一给大家送过去,所以写完后大家有空可以找我拿,周中可以来公司(One North),周末可以来家里(Telok Blangah) ,当然约饭约起来也是可以的。

...more

六月总结

码代码

三个月过去了,在六月终于进了团队。公司很土豪的花钱让我们做了三个月无产出的小蛀虫,三个月做的,不是培训,有点像入职是的设计及开发的考核,过不了的就直接拜拜,据说在日本被再见的人挺多的,而在总公司外的其他地方,像新加坡,上海这些地方,比例肯定小于5%,区别仅仅在于早点通过,和晚点通过。这三个月做的开发和实际开发中用的技术栈没半毛钱关系,除了趁这个机会好好熟悉了下 JavaScript 之外,对工作有用的点,应该就在于了解和熟悉公司的开发模式和理念侧重,说白了就是让程序员也有以用户为中心的概念,这点很重要,但用三个月的时间通过两次的开发文档来强调,投入产出比会不会太高了点?是不是应该在除了总公司外的地区适当的调整这个流程?

...more