谈谈选择

谈谈选择

前些天聊天聊起我的高中同学,现在大部分已经不再联系,但个别几个还常有通讯往来。不同的年龄阶段的回忆总是给我不同的印象,但是像高中时期这样每天忙于学业压力的时候也不多。我从刚接触物理和化学开始,我就对这两门课充满了兴趣。中学六年对于物理和化学的偏爱,应该说也是算同龄人中很少见的了。刷题、培训、搞竞赛……令我印象深刻的尤其是暑假,在大部分孩子都可以痛快地玩乐的时间,我还

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

分享到:

LeetCode题目解答——Easy部分

LeetCode题目解答——Easy部分 LeetCode最近很火,我以前不太知道有这么一个很方便练习算法的网站,直到大概数周前同事和我说起,正好我老婆要找工作,而根据同事的理论,LeetCode的题目是必须攻破的第一道关卡。我虽说又不找工作,但是纯粹拿来练手和学习,觉得很多题目都挺有趣的。现在已经做了三分之一,我会把我的解答分几次放上来。这里是第一部分,难度为easy的题目。

我觉得做这样的题目很有帮助,但也要有正确的目的。有些题是

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

分享到:

Hackweek几点感受

Hackweek几点感受

最近参加了Amazon Forecasting的Hackweek,大致就是给你一周的时间,你可以找一个感兴趣的项目,找几个人组个队,然后把想法实现出来。从整个项目来看,虽然时间只有一周,但是安排得满满当当,基本上把最初的想法实现出来了。趁着新鲜劲儿,我简单记录一些概况和感受:

  • 我们组做的项目是去互联网上把热门的事件(比如Google的Hot Trends)扒拉下来,然后根据事件的各种属

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

分享到:

再谈兴趣

再谈兴趣

去年年初回家的时候,我写了一篇《兴趣的力量》,如今我想续上这个话题,说说关于我自己和“兴趣”有关的故事。

写东西

每个人的成长环境不一样,形成的个性也不相同。有一些朋友说我很能写,其实,这大多源于最初的兴趣。在读书时代,我每周写的文字量不固定,但是不定期可以经常达到一万字以上,我不是要和任何人比较,也没有目的去做这样的统计,达到这样的要求。但结果就是,我写了各种各样

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

分享到:

一道位运算的算法题

一道位运算的算法题

最近遇到这样一道算法题:

Given an array of integers, every element appears three times except for one. Find that single one.

一组整数,除了一个只出现一次以外,其他每个整数都恰好出现三次,要寻找那个特殊的整数。

似曾相识

首先,它让我想起了另外一道类似的题目,如果把上面的&ld

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

分享到:

模板引擎随谈

模板引擎随谈

模板引擎是为了解耦而产生的,从编程范型的角度来说,写模板属于“声明式(Imperative)编程”。JSP大概是最早接触也是最基础的模板引擎,本来写Servlet嘛,一大堆一大堆的print,实在是没有任何结构性可言,然后JSP出现,先被处理成实质为Servlet的Java文件,编译以后变成class,接着一样执行。所以本质是编译型的模板引擎,当然模板引擎也有解释型或者二者混合的。通常说来编译型

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

分享到:

感悟

感悟

在去年《行动、眼界和体验》这篇文章里面,我说出了一些感触,我还说,南京是个小盒子,北京是个大盒子,我肯定还会寻找更多颜色和其他风格的盒子。接着就在不到一年的时间里面,我的生活发生了巨大的变化。马云说过差不多这样一句话,年轻人总是喜欢变化的,要不然什么事情都论资排辈了,自然轮不到年轻人。毕业以后,南京的生活最安定和规律,北京给我带来足够的大都市气息,我工作、娱乐,并且享受大城市的便捷,却离家越来越

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

分享到:

关于 if (someobject != null) 的问题

关于 if (someobject != null) 的问题

以下内容来自于在StackOverflow上的有一个有趣的讨论,说的话题很小,就是对于这样的对象为空的检查:

if (someobject != null) {
    someobject.doCalc();
}

为了避免空指针异常,看起来也没什么不妥。不过代码里面一片一片的对象是否为空的判断,实在难看。

对象是否为空的契约

通常我们在定义API的时候,是遵循一些规矩的,这些规矩可以叫做规约,

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

分享到:

Singletons are Evil?

Singletons are Evil?

There is an article “Why Singletons are Evil” written by Scott Densmore in 2004 aroused controversy. Suggest you to click the link to see what he said before reading this. Recently I found some point

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

分享到:

做实际的测试

做实际的测试我经历过两种公司的风格,一种开发测试界限明显,多数时候测试给开发打下手,转测试之前开发围着测试转;第二种没有什么开发测试的分工,程序员从头干到尾,从需求分析干到处理线上问题。我不想在这里分析优劣,我想说的是,不论什么样的形式,项目阶段中测试的环节是很实际、很重要的。这也是被许多程序员低估的步骤。都在说设计,都在谈用户体验,但是测试呢?设计再精良的东西,如果满是bug,还是白搭。很多人都愿意写程序,

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

分享到:

关于曼联的话题我在知乎上的几个回答

关于曼联的话题我在知乎上的几个回答 正好赶在英超新赛季开始前,作为英超和曼联球迷,我去知乎上面回答了几个关于曼联的问题,一个赛季以后更可以看我的理论准不准确。轻拍。

如何评价曼联的拉斐尔?

看到这个问题,我的第一反应是10年欧冠的那张红牌。楼上恰恰也提到了,看来这绝非偶然。其实就那件事情来说,拉斐尔的这张红牌,或者说不冷静和缺乏经验的红牌,一定程度上让曼联输给了拜仁,损失惨重,但是,事后弗格森没有在公众场合斥责拉斐尔的无脑举动,而

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

分享到:

好好说话

好好说话 看了魏武挥这篇短小的博文,《有话好好说》,实在是觉得很精彩,特别是其中这两句:

比如说

你认为一个人很low,你应该说:你好接地气啊!

比如说

你认为一个人写的东西好生晦涩难懂不忍卒读,你应该说:好一篇干货!

我看到一则笑话,大致是说:

有一则笑话,说是某人擅长奉承,一日请客,客人到齐后,他挨个问人家是怎么来的。第一位说是坐出租车来的,他大拇指一竖:&ldquo

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

分享到:

十年——时光君,走慢点

先说明,这是没有什么营养,但是废话也很少的看图说话。如果你和我一辈人,也许非常清楚我说的这些事,贴的这些图。

陈奕迅的《十年》

十年之前
我不认识你  你不属于我
我们还是一样  陪在一个陌生人左右
走过渐渐熟悉的街头
十年之后
我们是朋友  还可以问候
只是那种温柔
再也找不到拥抱的理由

《老友记》的十年

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

分享到:

这样的傻事,其实并不遥远

最近有这样一条热门微博

这样的傻事,其实并不遥远

这样的故事真是精彩。最后一句“我想那是我此生唯一写垃圾代码的心安理得的一次机会了”,我明白至少作者还是有追求的。

任何KPI要合理都是无比困难的,这里的故事看起来有些极端,但就是一个简单地拿“代码量”数据统计来量化绩效指标的办法。这样的恶果公司最终会自己承担。

我曾经在这篇文章里面谈到过,统计指标是有价值的,但是如

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

分享到:

层次

层次

以下文字,看看就好,笑笑就好。

最近在被一个问题折磨,大致上是,公司内部某些技术更替的关系,要把原有的一个鉴权的组件A淘汰掉,迁移到一个新的替代品B上,我估摸着也就一天时间搞定它绰绰有余了。没料想一猛子扎进去就没那么容易出来了,替换完成以后的测试傻了眼,发现了一个诡异的问题,于是追根溯源,把牵涉进来的林林总总一一拖出来检查排除枪毙,环境比较复杂,debug起来又比较头疼,折磨了三天半的时间;

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

分享到:

Hadoop的Map-side join和Reduce-side join

Hadoop的Map side join和Reduce side join

Hadoop中连接(join)操作很常见,Hadoop“连接”的概念本身,和SQL的“连接”是一致的。SQL的连接,在维基百科中已经说得非常清楚。比如dataset A是关于用户个人信息的,key是用户id,value是用户姓名等等个人信息;dataset B是关于用户交易记录的,key是用户id,value是用户的交易历史等信息。我们当然可以对这两者以共同键用户id为基准来连接两边的数据。

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

分享到:

又是一届世界杯

又是一届世界杯 每届世界杯都挺想发发牢骚的,但是说着说着就偏离主题了。在06年世界杯的时候写过这篇文章,而到了10年世界杯,则是这篇。无论如何,这个传统要发扬下去。

1998年世界杯是我看的第一届世界杯,98年以前我看足球的回忆似乎很淡薄,只有甲A尤其是上海申花的些许回忆。当时我大概对是上海申花和球员申思的脑残粉,每周买申江导报(买这份报纸有一个重大原因是一块两毛钱但是却厚厚一叠)首先就要翻到足球的版面,喜欢这

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

分享到:

运行时动态增加枚举类型

运行时动态增加枚举类型 最近在使用一个内部框架的时候,希望能够在运行时指定枚举类型,却发现这是一件挺麻烦的事情(不找别的替代方式,就是要动态增加enum的类型),方法也不正统,不过作为有趣的尝试,研究研究也无妨,下面的内容主要来自于《Java – create enum instances dynamically》这样一篇文章。在一切开始前,如果你想问,为什么非要增加/改变enum类型?其实这是一个非常好的问题,多数情

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

分享到:

泛型传递

泛型传递 最近在读代码的过程中,经常遇到一些利用泛型来对调用链中的参数进行类型约束的情形,特指对于调用链中后面环节的参数类型和返回值,由前面环节的参数类型来确定,我草率地把它称作泛型传递(技巧很简单,但是用得好会很有趣;我不知道这个东西正儿八经的名字叫做什么)。

在说这个事情以前,对于Java的泛型,还是和其它语言中有些许的不同,这里需要结合使用方法泛型和类泛型,如有不明,对于其中的使用可以参考这篇《泛型

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

分享到:

Hadoop的Secondary Sorting

Hadoop的Secondary Sorting 这几天项目中使用Hadoop遇到一个问题,对于这样key-value的数据集合:id-biz object,对id进行partition(比如根据某特定的hash算法P),分为a份;使用数量为b的reducer,在reducer里面要使用第三方组件进行批量上传;上传成文件,文件数量为c,但是有两个要求:

  • 上述a、b、c都相等,从而使得每个partition的数据最终都通过同一个reducer上

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

分享到:

Preview on Feedage: