Google矩阵

Google矩阵 使用一款搜索引擎,我们希望搜索结果能够拥有最佳的排序,Google为它最核心的排序算法PageRank申请了专利。在PageRank以前,排序大多依靠对搜索关键字和目标页的匹配度来进行的,这种排序方式弊端明显,尤其对于善于堆砌关键字舞弊的页面,很容易就跳到了搜索结果的首页。Larry Page和Sergey Brin开始着手解决这个问题,Google排序的继承来自于互联网上网页之间的链接关系。一

[......]阅读全文

分享到:

Algorithm In Interview

Algorithm In Interview 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

[......]阅读全文

分享到:

编程语言学习和使用的观点

编程语言学习和使用的观点 我的一些关于编程语言学习和使用的观点如下,因为最近谈到这个事情,就记录下来吧,但是我只想简单的表述出来。当然,我不想陷入语言孰优孰劣这种争论的圈子里。

多掌握一门语言有没有价值?如果一门新的语言能改变你对编程的理解,它就是值得学习的。另外,每一门语言对应着一种或几种“编程范型”,接触不同的编程范型是很有价值的,这是扩展视野的好机会。

编程语言只是工具,工具都是用来解决特定的问题的。特定的问题使用

[......]阅读全文

分享到:

使用ID3算法构造决策树

决策树

决策树是一个预测模型,它代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。

这张图很好地解释了决策树:

使用ID3算法构造决策树

明天要不要出去玩?

  • 晴天:
    • 潮湿:不出去
    • 不潮湿:出去
  • 阴天:出去玩
  • 雨天:
    • 刮风

[......]阅读全文

分享到:

朴素贝叶斯分类

朴素贝叶斯分类 贝叶斯定理

英国数学家贝叶斯(Thomas Bayes)曾经给出如下定理:

P(A)表示A事件发生的概率,P(B)表示B事件发生的概率;P(A|B)表示在B事件已经确定发生的情况下,发生A事件的概率;P(B|A)表示在A事件已经确定发生的情况下,发生B事件的概率;P(AB)表示AB事件同时发生的概率。所以:

P(A)P(B|A)=P(AB)=P(B)P(A|B)

也就是说,A事件发生的概率乘以

[......]阅读全文

分享到:

大数据时代的隐私安全危机

大数据时代的隐私安全危机 315晚会上,网易销售人员为了强调”精准营销”,面对央视镜头称:通过cookies代码可以追踪用户隐私,甚至能读取网易用户的私人邮件。这件事情引起了轩然大波,网易股价当天就暴跌,但是也引起了无数争论。不可否认通过cookie可以获取用户信息,但是在这样做的企业有多少呢,这并不是一件稀奇到值得争论的事情;而推送恶意广告或者获取私人邮件,又成了遭来非议的过分行为。

网易手里掌握了多么海量的用户信息,

[......]阅读全文

分享到:

reCAPTCHA项目

reCAPTCHA项目 要说reCAPTCHA,就要先说一说CAPTCHA,全称是Completely Automated Public Turing test to tell Computers and Humans Apart,即全自动区分计算机和人类的图灵测试,也就是通常说的“验证码”,目的就是要把计算机和人区分开来。在互联网站上,为了防止不安全的、重复暴力的登陆密码破解等操作,需要使用验证码来将机器行为拒之门外

[......]阅读全文

分享到:

IT外企在中国

IT外企在中国 要说这个话题是因为昨天和朋友聊起IT外企在中国就会“变味”的现实。

朋友口中的Google中国,尤其是在那件众所周知的事情之后,实在是不能和本土Google公司相提并论。他以前在北京和上海的Google中国工作过,他说,把一群非常优秀的人放到一起,就能做出成功的产品吗?未必如此,他经历了许许多多失败的项目。在会上大家总是一致喊好、互相鼓励,但是私下里却清醒地意识到、谈论

[......]阅读全文

分享到:

过多if-else分支的优化

过多if else分支的优化 我想谈一谈这个话题是因为我的上一篇博客在ITEye上有一些朋友回复,说if-else过多的分支可以使用switch或者责任链模式等等方式来优化。确实,这是一个小问题,不过我们还是可以整理一下这个小问题的重构方式。

为什么要优化?

你没有看错。这是要放在第一条谈论的。

有许多人会说,叠起来一堆if-else分支,代码就不优雅了。可是,怎样去定义“优雅”的概念呢?再退一步说,即便不“优雅”,又有什么

[......]阅读全文

分享到:

代码洁癖症的表现

代码洁癖症的表现 有下列情形之一的,你患上了代码洁癖症。症状程度可轻可重,轻者帮助写出优雅整洁的代码,重者走火入魔,万劫不复。

  1. 多余的空行、分号,没有使用的变量,见一个删一个。
  2. tab或者空格没有对齐的必须纠正过来,除了缩进用,不允许看到代码内连续两个空格。
  3. 看到一个类某个方法没有注释,不由自主地加上,不管有没有意义。
  4. 错误的拼写,无论是在命名还是注释必须纠正过来;不一致的大小写,必须要纠正过来;标点符号的遗漏

[......]阅读全文

分享到:

吐槽一下新浪微博网页版的UI设计

1. 不一致的按钮。有向下箭头是鼠标悬停的时候显示下拉菜单吧:

吐槽一下新浪微博网页版的UI设计

可是,右侧这样的普通按钮也会有悬停+显示下拉菜单的效果:

吐槽一下新浪微博网页版的UI设计

继续,新浪微博没有把这样的效果统一贯彻到底,发微博的按钮就容易误导用户悬停然后等待下拉菜单,结果怎么也等不来:

吐槽一下新浪微博网页版的UI设计

 

2. 右侧这样的tab页是鼠标悬停激活切换的:

吐槽一下新浪微博网页版的UI设计

但是到了正中的tab页,需要鼠标单击切换:

吐槽一下新浪微博网页版的UI设计

 

3. 按钮风格太多

[......]阅读全文

分享到:

数据库范式总结

数据库范式总结 数据库表结构设计时,遵从一定的范式(NF,Normal Form)可以减少数据冗余和操作异常。

第一范式(1NF)

1NF指的是每个属性值都是不可再分的。

满足1NF的关系被称为规范化的关系,1NF也是关系模式应具备的最起码的条件。

比如有这样一张表user的两列:

  • name
  • phone_number

phone_number这一列只存储一个电话号码,如果一条数据同时存

[......]阅读全文

分享到:

关于方校长一条微博的陈述

谈论这个话题仅仅是因为最近北邮方校长的一条微博,引来了两万多条转发。在此我想谈论一些事实,给并且不做太多主观评定;我也想援引一些资源链接(大部分援引自维基百科),帮助不了解情况的人明白其中发生了什么:

关于方校长一条微博的陈述

其实,微博的内容已经不重要了,欢乐的是转发里的评论记录,当然,新浪“适时”地把查看转发的功能给关闭了:

关于方校长一条微博的陈述 

但是,依然可以从手机客户端上看到很多转发的记录:

关于方校长一条微博的陈述

还有这两张截图:

关于方校长一条微博的陈述 关于方校长一条微博的陈述

[......]阅读全文

分享到:

梅森素数

梅森素数 古希腊数学家欧几里德就已证明素数有无穷多个,并提出一些素数可写成“2P-1”(其中指数P也是素数)的形式,其中17世纪法国数学家、法兰西科学院奠基人马林·梅森(Martin Mersenne)是其中成果较为卓著的一位,因此数学界将“2P-1”型的素数称为“梅森素数”。

1772年,欧拉在双目失明的情况下,靠心算证明了231-1(即2147483647)是第8个梅森素数,这个记录一百多年内都没有人

[......]阅读全文

分享到:

进阶过程:程序员做项目的独立性

进阶过程:程序员做项目的独立性 第一阶段:编码机器

这是最低级的阶段,程序员拿到详细设计文档,上面连许多方法接口都定义好了。重构一些代码,写一些实现,调用一些既定的API,然后花许多时间在各种各样的场景测试上面。从做的工作上看,这都不能算程序员,最多,只是编码技巧卓越的码农而已。因为它几乎扼杀了一切创造力,但是这很常见,比如在一些对日外包公司,就是如此。

第二阶段:独立的实现者

程序员得到的只是粗略的设计文档,也许注明了外部接

[......]阅读全文

分享到:

兴趣的力量

兴趣的力量 一月底我就到家了,休假准备过春节。正好有闲暇的时间可以来思考许多事情。我去理发的时候,理发师和我热烈地聊起来。她说她的孩子在读高一,文科成绩比理科好多了,文理分科的时候,孩子很有主见,执着地要选择理科;但是父母觉得他更适合学文。我和理发师说,就怕没有想法。既然孩子那么有主见,有那么强烈的倾向,这是一件好事,你不妨听听他的想法,为什么不支持他?退一步说,就算他在文科方面更具备天赋,现在你干涉了他坚

[......]阅读全文

分享到:

几种华丽无比的开发方式

几种华丽无比的开发方式 不要被我的标题骗了。我可不是来宣扬什么模型驱动开发,或者什么测试驱动开发的,那些都弱爆了。今天我要说的,是几种看起来激动人心、华丽无比,但是可以让程序员们痛苦不堪的开发方式,特别适合那些热衷于折磨虐待程序员的项目经理和产品经理们。当然,掌握以后,偷偷用就好了,请不要来感谢我。

 

进度驱动开发(SDD,Schedule Driven Development)

这是在国内最为流行的开发方

[......]阅读全文

分享到:

程序员,都去写一写前端代码吧

程序员,都去写一写前端代码吧 你可以认为我是一个极端的人,就像有许多人专注于自己的领域而不屑于其它“肤浅”的工作范畴一样。比如我见过不少认为做portal没有技术含量的判定,做工程都是充满苦逼行为的言论,最近则还有那些“大数据”崇拜者的疯狂吐槽……我的极端则有些不同,我的极端在于我认为绝大多数优秀的程序员,都要尝试多方面的事情。并不只有底层开发或者机

[......]阅读全文

分享到:

51CTO的访谈

51CTO的访谈 这篇51CTO对我的访谈是关于找工作过程相关的体会,文章有过整理改动。无论从年纪还是从资历来说,其实我并不能算是一个很有资格的受访者。当然,我还是希望可以帮到那些软件行业涉足未深和忙于找工作的朋友。邮件对话最终整理成51CTO的这篇文章

[51CTO]:面试中较为偏重的一方面就是询问经历这一环节,您觉得,哪些工作经历或是学习经历可以给面试者的印象“加分”。

[四火]:首先, 我认为经历不能

[......]阅读全文

分享到:

用JavaScript截图

用JavaScript截图 使用JavaScript截图,这里我要推荐两款开源组件:一个是Canvas2Image,它可以将Canvas绘图编程PNG/JPEG/BMP的图像;但是光有它还不够,我们需要给任意DOM(至少是绝大部分)截图,这就需要html2canvas,它可以将DOM对象转换成一个canvas对象。两者的功能结合起来,就可以把页面上的DOM截图成PNG或者JPEG图像了,很酷。

Canvas2Image

[......]阅读全文

分享到: