`
文章列表
这道题是说,100层楼,两个一模一样的鸡蛋,某层之上扔鸡蛋就会碎。问要测试多少次才能找出这层楼来。我曾经在去年初的这篇文章里面讨论过这个问题的解法,因为只想记录一下思路和讨论过程,写得很简略。现在,我想重新整理一下这个问题,再稍稍扩展和挖掘一下。希望可以用尽可能清晰易懂的描述,把这个问题的前后说清楚。 现在只有两个鸡蛋,而算法必须是可行的,就是说要能找出这一层来,所以你得假设你的运气最差,这就意味着,我求解的是在每种扔鸡蛋的策略下都有一个需要扔的次数的最大值,而现在需要求解的是这些最大值中的最小值的问题。如果我只有一枚鸡蛋,这就意味着,我只能从第一层开始老老实实地一层一层往上试,不能越层;而 ...
这是一篇扯淡,一篇rant,或者是一坨不靠谱的文字。有一些观点过于偏激,如果你没法接受,也请不要太在意。 无趣的接口封装 我记得刚工作的时候,我的第一个正式项目是去写一个基于SOAP的WebService接口,那个时候觉得新 ...
这是一堆杂乱的文字。可以认为它是我从去年二月份正式跳槽到北京工作以来,这一年三个月的时间里,出现次数最多的感悟。 不知道有多少人和我一样,有选择焦虑症,总是思考要做出怎样的决定而浪费了时间。事实上,在大多数情况下我们总不能做出完全正确的选择,就像人生永远都会充满遗憾和后悔。做软件也是一样,想一猛子扎下去把东西设计完美,就走上了彻底的不归路。倒不如,像Facebook说的那样,“move fast and break things”,先弄出一个符合你基本预期的东西来,然后再来细细打磨和深加工,做所谓的“refactory”? 这看起来像个权衡的算术题对不对?到底是思考久一点,调查久一点,慢一 ...
想谈一谈这个话题是因为最近有一位朋友抱怨他的博客在某些用户某些时候访问的时候,被莫名其妙地加上了广告,他检查来检查去,始终发现不了网站本身有什么问题,后来他才了解到了DNS劫持一说。 DNS劫持 其实这不是一个新概念了,在几年前,中国一些不讲道德的运营商,尤其是地方运营商就开始捕捉用户浏览器的访问记录,然后根据不同用户的访问行为,有选择地往用户访问的网页里面推送广告。因为运营商掌握着DNS主机,所以他们可以为所欲为地强制改写网站HTML页面,采用往返回页面里写入JavaScript等方式,来注入广告:
Here's my notes about introduction and some hints for Hadoop based open source projects. Hope it's useful to you. Management Tool Ambari: A web-based tool for provisioning, managing, and monitoring Apache Hadoop clusters which includes support for Hadoop HDFS, Hadoop MapReduce, Hive, HCatalog, HBa ...
注:这篇文章翻译自《You're Missing the Point of Promises》,阅读这篇文章,你首先需要对于JavaScript中的Promises是什么有了解,否则,你可以先看一看这篇文章(英文),或者这篇文章(中文)掌握基础。有一些修改,另受水平所限,翻译的不当之处请参阅原文。 Promises是一种令代码异步行为更加优雅的抽象。如果用最基本的编码方式,代码是这种连续的形式: getTweetsFor("domenic", function (err, results) { // the rest of your code goes her ...
使用一款搜索引擎,我们希望搜索结果能够拥有最佳的排序,Google为它最核心的排序算法PageRank申请了专利。在PageRank以前,排序大多依靠对搜索关键字和目标页的匹配度来进行的,这种排序方式弊端明显,尤其对于善于堆砌关 ...
The whole team talked about algorithm recently, since we found some leaked written exam questions on Internet so that online test became meaningless soon. On one hand we’re thinking about how to contribute to the question bank, on the other hand it caused debating on algorithm significance and form ...
我的一些关于编程语言学习和使用的观点如下,因为最近谈到这个事情,就记录下来吧,但是我只想简单的表述出来。当然,我不想陷入语言孰优孰劣这种争论的圈子里。 多掌握一门语言有没有价值?如果一门新的语言能改变你对编程的理解,它就是值得学习的。另外,每一门语言对应着一种或几种“编程范型”,接触不同的编程范型是很有价值的,这是扩展视野的好机会。 编程语言只是工具,工具都是用来解决特定的问题的。特定的问题使用适合的工具来解决。但是很多情况下,我们的选择太多。选择这一门编程语言的原因可能只是因为“它很酷啊”,或者“因为大家都在用它”。另外,还有一种极端的滥用的情况:“当手上有一把锤子的时候,你看什么都是钉 ...
决策树 决策树是一个预测模型,它代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。 这张图很好地解释了决策树:
贝叶斯定理 英国数学家贝叶斯(Thomas Bayes)曾经给出如下定理: P(A)表示A事件发生的概率,P(B)表示B事件发生的概率;P(A|B)表示在B事件已经确定发生的情况下,发生A事件的概率;P(B|A)表示在A事件已经确定发生的情况下,发生B ...
315晚会上,网易销售人员为了强调”精准营销”,面对央视镜头称:通过cookies代码可以追踪用户隐私,甚至能读取网易用户的私人邮件。这件事情引起了轩然大波,网易股价当天就暴跌,但是也引起了无数争论。不可否认通过cookie可以获取用户信息,但是在这样做的企业有多少呢,这并不是一件稀奇到值得争论的事情;而推送恶意广告或者获取私人邮件,又成了遭来非议的过分行为。 网易手里掌握了多么海量的用户信息,该怎样用这些信息去谋取利益,却又避免背上“作恶”的骂名?这似乎就是薄薄一层窗户纸而已。没有足够的法律法规,也没有足够统一和公开的标准,每个人都会有自己的理解。当Google在利用搜索推送关联广告赚钱 ...
要说reCAPTCHA,就要先说一说CAPTCHA,全称是Completely Automated Public Turing test to tell Computers and Humans Apart,即全自动区分计算机和人类的图灵测试,也就是通常说的“验证码”,目的就是要把计算机和人区分开来。在互联网站上,为了防止不安全的、重复暴力的登陆密码破解等操作,需要使用验证码来将机器行为拒之门外。 验证码当然可以被识别,随着破解和反破解技术的发展,验证码的技术日新月异(简单的验证码很容易实现,在我刚开始学习JavaEE的时候,曾经写过一个验证码的实现程序)。最初对于验证码的机器识别,大多采用 ...
要说这个话题是因为昨天和朋友聊起IT外企在中国就会“变味”的现实。 朋友口中的Google中国,尤其是在那件众所周知的事情之后,实在是不能和本土Google公司相提并论。他以前在北京和上海的Google中国工作过,他说,把一群非常优秀的人放到一起,就能做出成功的产品吗?未必如此,他经历了许许多多失败的项目。在会上大家总是一致喊好、互相鼓励,但是私下里却清醒地意识到、谈论着产品的问题。可为什么就没有人公开地说真话? 我们可以细心数一数在中国的那些非常有名的IT外企,的确并没能够做出多少革命性的或者令人眼前一亮的产品来,在我看来这实在算不得成功。鲁迅早就说过,中国是一个大染缸,这话到了今天,也 ...
我想谈一谈这个话题是因为我的上一篇博客在ITEye上有一些朋友回复,说if-else过多的分支可以使用switch或者责任链模式等等方式来优化。确实,这是一个小问题,不过我们还是可以整理一下这个小问题的重构方式。 为什么要优化? 你没有看错。这是要放在第一条谈论的。 有许多人会说,叠起来一堆if-else分支,代码就不优雅了。可是,怎样去定义“优雅”的概念呢?再退一步说,即便不“优雅”,又有什么问题? 对于这样一段再普通不过的代码:
Global site tag (gtag.js) - Google Analytics