行动、眼界和体验

行动、眼界和体验 这是一堆杂乱的文字。可以认为它是我从去年二月份正式跳槽到北京工作以来,这一年三个月的时间里,出现次数最多的感悟。

不知道有多少人和我一样,有选择焦虑症,总是思考要做出怎样的决定而浪费了时间。事实上,在大多数情况下我们总不能做出完全正确的选择,就像人生永远都会充满遗憾和后悔。做软件也是一样,想一猛子扎下去把东西设计完美,就走上了彻底的不归路。倒不如,像Facebook说的那样,“move fast

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

分享到:

DNS劫持

想谈一谈这个话题是因为最近有一位朋友抱怨他的博客在某些用户某些时候访问的时候,被莫名其妙地加上了广告,他检查来检查去,始终发现不了网站本身有什么问题,后来他才了解到了DNS劫持一说。

DNS劫持

其实这不是一个新概念了,在几年前,中国一些不讲道德的运营商,尤其是地方运营商就开始捕捉用户浏览器的访问记录,然后根据不同用户的访问行为,有选择地往用户访问的网页里面推送广告。因为运营商掌握着DNS主机

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

分享到:

Notes: Hadoop-based open source projects

Notes: Hadoop based open source projectsHere'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 mon

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

分享到:

你没有抓住Promises的要点

你没有抓住Promises的要点注:这篇文章翻译自《You're Missing the Point of Promises》,阅读这篇文章,你首先需要对于JavaScript中的Promises是什么有了解,否则,你可以先看一看这篇文章(英文),或者这篇文章(中文)掌握基础。有一些修改,另受水平所限,翻译的不当之处请参阅原文。

Promises是一种令代码异步行为更加优雅的抽象。如果用最基本的编码方式,代码是这种连续

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

分享到:

小诗一首

小诗一首 早上读到这条微博

当年论剑天山麓,一举成名处
青虹出鞘试锋芒,敢叫星辰暗淡月无光
而今历尽风尘闹,隐退江湖道
松涛林海意从容,不向行云流水问花红

烟客淘大湿回复道:

曾是少年多意气,
凡尘识尽亦悠然。
浮生何为虚名累,
断剑拿来换酒钱。

另一位子柳大湿也回复(唐伯虎的诗):

酒醒只在花前坐,
酒醉还须花下眠。
花前花后日复日,
酒醉酒醒年复年。

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

分享到:

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,然后花许多时间在各种各样的场景测试上面。从做的工作上看,这都不能算程序员,最多,只是编码技巧卓越的码农而已。因为它几乎扼杀了一切创造力,但是这很常见,比如在一些对日外包公司,就是如此。

第二阶段:独立的实现者

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

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

分享到: