亲历美国医疗

medication

一直想写稍微写一点关于美国医疗的体验,因为看到过不少报道,也包括很多鸡汤文,都是失实的。

医生有家庭医生和专科医生之分。家庭医生(primary care)又叫全科医生,会更密切地跟进你的身体健康状况,什么健康问题都可以寻求他们的帮助,也包括一年一度的体检。一般病人或选择和固定的一个满意的家庭医生,这样熟悉以后双方都对彼此有印象,了解情况会帮助沟通。通常,他们也只是直接解决比较小的问题,大的问题或者疑难病症他们会写推荐信给专科医生。有的保险要求必须有推荐信才可以见专科医生。但是我的保险可以直接预约大部分专科医生,但是,有的专科,比如过敏科就要求必须有推荐信。通常情况下,医院里很安静,基本上医

[……]阅读全文

Spark性能优化——和shuffle搏斗

Spark

Spark的性能分析和调优很有意思,今天再写一篇。主要话题是shuffle,当然也牵涉一些其他代码上的小把戏。

以前写过一篇文章,比较了几种不同场景的性能优化,包括portal的性能优化,web service的性能优化,还有Spark job的性能优化。Spark的性能优化有一些特殊的地方,比如实时性一般不在考虑范围之内,通常我们用Spark来处理的数据,都是要求异步得到结果的数据;再比如数据量一般都很大,要不然也没有必要在集群上操纵这么一个大家伙,等等。事实上,我们都知道没有银弹,但是每一种性能优化场景都有一些特定的“大boss”,通常抓住和解决大boss以后,能解决其中一大部分问题。比

[……]阅读全文

一种工作流心跳机制的设计

最近工作中一直和SWF(Amazon的Simple Work Flow)打交道,在一个基于SWF的工作流框架上面开发和修bug。SWF的activity超时时间是5分钟,在activity task开始执行以后,activity worker需要主动发送心跳请求告知service端:“我还活着,我还在干活”,如果出现超过5分钟(可以配置)没有心跳,SWF的service端就认为,你已经挂了,我需要把这个activity安排到别的activity worker上来执行了。借用AWS官网的一张图:

heartbeat

每台机器上有若干个activity task在被执行。可以看到,在activity任务启动起来以后

[……]阅读全文

副业?副业才有趣,才精彩

think

搞副业是要花时间精力的。但是副业的好处在于,不用担心饭碗的问题,不用担心赚钱的问题,一心一意把爱好实践好就好了。开心就多做,不开心了就少做。我觉得只有拥有足够的选择权,人生才能称得上“自由”。我计划今年继续把文章写好,把琴谈好,尽量多去短途旅行,继续追曼联的比赛,争取一场不落。对于这些纷繁复杂的“副业”,只要身体健康,我一点都不觉得疲倦。

听到过这样一种说法,你不是xx领域内的专家/权威,就不要发表这一方面的观点。或者用反问句式,你有什么资格xxx。这种万事巨高门槛的风格,扼杀了一批本来有兴趣在这一方面发表见解和热烈讨论的人。最终,这帮人自己最后也不怎么样,因为他们够哪一方面的门槛都够不上,

[……]阅读全文

生活不止眼前的苟且,还有诗和远方

生活不止眼前的苟且,

还有诗和远方的田野。

你赤手空拳来到人世间,

为找到那片海不顾一切。

这就是高晓松写的歌,许巍唱的歌。没有漂亮的修饰,没有华丽效果,始终偏执地保持风格,简单、安静、述说,触动心弦。我记得在十多年前,写过一些文字,祭奠民谣、诗歌和九十年代。如今听到高晓松的歌,如今回忆起故事、欢笑和逝去的时光,在旧有的感怀和失落的同时,还有一丝快慰。九十年代有那么多有理想的音乐人,那些音乐伴着我们一起长大。我们学会了珍惜,学会了倾听,也学会了扬起头,守护心里面那一小点微弱而坚强的信念。因此,我们是幸福的,我们有朴树,无印良品、老狼、Beyond、罗大佑……想想现在的孩子们,这方面他们无疑

[……]阅读全文

从淘汰Oracle数据库的事情说起

tech

公司搞淘汰Oracle数据库的事情已经搞了好久了,这个事情其实和国内淘宝系搞的去IOE(IBM、Oracle和EMC)是类似的,基本上也是迫不得已,Oracle的维护成本太高,而公司内部基于Oracle数据库的数据仓库,也是问题频出;另一个原因则是scalability。我相信这两个原因许多人都非常清楚。而这个淘汰,也不是简简单单换一个关系数据库,比如把Oracle换成MySQL,或者换到云上(RDS)。而是有明确阶段性地演进,比如替换到DynamoDB这样的NoSQL数据库上面去;或者更彻底地,像我们接触到的某个产品,数据本身换到更廉价的存储S3上去,元数据才存在DynamoDB里,而原本

[……]阅读全文

三次性能优化经历

performance

最近在做一些性能优化工作,回想起工作这些年来,参与过的三次集中性能优化,每次都得折腾少则一个月,多则半年。这些内容既是不同视角、不同思路的比较,也是挺有趣的工作经历。

Portal的性能优化

这已经是大概五年前了,搞了接近半年的Portal性能优化,后来某些内容总结在这篇文章里面。既然是Portal,性能优化上就有它的特点。比如说:

Portal的性能优化需要从前端和后端两个角度去思考问题,先考虑客户端和服务端之间的交互模型,然后再在客户端和服务端单独考虑分而治之。这个其实和设计的思路是一样的,交互问题需要首先考虑,定义好交互的报文形式(比如某JSON的具体形式)以后,包括用户触发什么行为引

[……]阅读全文

研发团队的角色和构成

software engineer

以下都来自我的经历,带有主观评价,但是尽量保持平直的论述。

在我工作的第一家公司的时候,一个典型的研发团队是这样组成的。我的经验也只是到4年前,现在也许早就不一样了呢。

项目经理,这个角色是不断在换的。项目经理当然是只跟着项目走,这和团队经理(Team Leader)是不一样的。当然,Team Leader也往往在不同的项目里面兼任项目经理。基层的项目经理也可能会编码,但是不管参与不参与编码,工作压力都不小。

SE(System Engineer,相当于现在大多数公司的产品经理)负责从市场部门等地方承接需求,然后做“系统性设计”,这个系统多数指的是业务系统,也指有时候软件系统。之前我在一篇文

[……]阅读全文

历史,科学,还有艺术

history

学理的人要读一读历史。

遗憾的是,每当我这么说的时候,几乎所有的人都狭义地认为我在讲政治的历史,世界史或者中国史,就如同历史课本里那样。关于这一点,也是时常让我觉得悲哀的地方。我们看到的那么多纪念馆和青铜像,大多是那些因为在政治舞台历史烙印深刻的人物,其次就是久远以前的大文豪们。看看近现代的科学领域、艺术领域、文学领域,这些科学家、艺术家和文人,不知道在年轻人心中有多少分量。仿佛一定要有这样一个英雄,带领一票人闹革命,打下江山,战胜强寇,治理国家,才算伟人;要不就是草根发迹,辗转商海,勇猛创业,才称了不起。剩下的,仿佛只有娱乐明星,甚至网红这样的角色才能引得谈资和热议。

如果我问,能不能说出

[……]阅读全文

沈阳、南京、北京和西雅图

travel 活了快三十年,出生在小小的县城,温和而且充满回忆,读书开始,逐渐接触到城市的生活。真正长驻的城市,就只有题中列的这四个而已,自然印象深刻,如数家珍。这篇文字可以算是《旅行映像》第一部分的文字加强版,只是视角可能有些奇怪,而且思路繁乱,略带流水账性质。

沈阳

沈阳是我读书时候呆着的城市。在这以前,其实没有大面积接触过北方人(所谓“北方人”其实有诸多定义,比如以长江为分界线的,以秦岭淮河为分界线的,而我一直以黄河作为分界中国南北的标志),但是这一次算是一步登天到东北。沈阳这座城市很漂亮,但是因为留有重工业化的痕迹,空气不算干净。我在沈阳第一次接触了各色烧烤(小时候我哪接触过这东西啊),烤肉、烤蔬

[……]阅读全文

谈谈百度血友病吧被卖事件

baidu

最近,百度血友病吧被卖事件炒的沸沸扬扬,在中国互联网这样一个法律和道德双重缺失的环境下,以百度为首的一帮互联网流氓日渐猖狂,但是你很难分辨出到底是哪一出事情的发酵让它已经丧尽天良到如今这种境地。如果你对这样的事情不了解,那么可以看看关于这次事件知乎上的热评,以及百度既往的那些劣迹斑斑的故事,特别是百度全家桶。垄断是罪恶诞生的摇篮,我不会在这里再复述百度作恶的事实,我只想陈述几个观点,有些是可能在热闹的讨论中被忽略掉的。

1、我很想知道会有怎样的直接后续,就连国家互联网信息办都约谈百度负责人了,作为响应,可以从回应中看到所谓的“五条阶段性治理措施”,但是,只是说“停止所有病种类吧的商业合作”,

[……]阅读全文

Spark的性能调优

Spark

下面这些关于Spark的性能调优项,有的是来自官方的,有的是来自别的的工程师,有的则是我自己总结的。

基本概念和原则

首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起:

  • 每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到executor上面去执行。Stage指的是一组并行运行的task,stage内部是不能出现shuffle的,因为shuffle的就像篱笆一样阻止了并行task的运行,遇到shuffle就意味着到了stage的边界。
  • CPU的core数量,每个executor可以占用一个或多个core

[……]阅读全文

LeetCode题目解答——第227到310题

[Updated on 9/22/2017] 如今回头看来,里面很多做法都不是最佳的,有的从复杂度上根本就不是最优解,有的写的太啰嗦,有的则用了一些过于tricky的方法。我没有为了这个再更新,就让它们去吧。

LeetCode的题目是不断在更新。还是老规矩,跳过了那些需要付费才能做的题目。下面的解法可能不是最好的,具体问题我们可以讨论。截至目前我解答的全部的LeetCode放在了这里

310
Minimum Height Trees
24.0%
Medium[……]阅读全文

扒一扒知乎上的帖子——“为什么有些大公司技术弱爆了?”

helpless

知乎上看到一个热帖,我觉得很有意思,叫做“为什么有些大公司技术弱爆了?”。我刚看到标题的时候,先入为主和刻板偏见了一下,正如同第一个回答一样,我皱了皱眉头,产生了对题主的鄙视之情;但是很快,读完帖子以后,我却立场明确地站到题主一边了。正如同里面有位回答:

看题目以为是题主傻逼,看了正文发现真的是公司傻逼。

上面这种情况其实发生的概率挺低的,但是我觉得这回是真的发生了。

但是令我感到遗憾的是,各式各样的回答里面,大部分居然都跳出来“教育”题主,表态这个世界就不是完美的,表态要妥协要接受这样的事实,要无奈地咽下这个现实的苦果。这个大面积出现的观点,太不正常了吧?

比如这样的话:

写好代码是

[……]阅读全文

常用命令归纳:Linux/Oracle/JVM/Git

经常用到一些命令,还总是忘掉的,就简单列在这里。总是现查也挺麻烦的。

Linux:

  • top mem consumer: sudo ps -aux | sort -k4nr | head -5 or top, then press M
  • connection number: netstat -an | grep ESTABLISHED | wc –l
  • process number: ps -ef | wc -l
  • threads of a process: ps uH p <pid> | wc -l
  • .tar: tar -xvf archive.ta

[……]阅读全文

追求纯粹

pure

偶然想到的这个话题,工程师做工程是一方面,而作为单纯的程序员,总是充满对于纯粹的追求。

最近又负责了一个使用Angular的项目,我们知道最近Angular很火,其中一个重要原因就是它给前端开发带来的变革,第一次发现可以让以前如此恼人的变量绑定消失掉。以往变量绑定的语句放在附属于页面的一个js片段(文件)里面,颇有些无奈的意思,如果把它视为展现层面的东西,显得很不直观(声明式编程才是最直观的方式),而且让这一层变得啰嗦;而如果把它视为下面一层的东西,这又让逻辑代码变得不纯粹——凭什么要让逻辑代码去了解哪个dom叫什么id?于是Angular来了,引入了$Scope这代表上下文的东西,变量绑定

[……]阅读全文

重新发明轮子

wheels

“不要重新发明轮子”是总是可以听到的话,在评判一个设计的时候,总是听到这样的话。但是凡是不绝对,而对于这句话来说,很多情况下,都是错误的。我甚至都不能说出“大多数情况下不要重新发明轮子”这样的话,因为具体问题,实在没法用大多数还是少部分来概括。重用轮子有什么好处?省代码;轮子已经经过千锤百炼,质量有保障;轮子功能在逐步更新中,可以看到未来的获益。但是,也有一些情况让我无法重用轮子。

第一种情况,我只需要一点沙土,我不需要整座大山。

比如,我只需要一个StringUtil.isEmpty这样的方法,判断字符串是否为空串或者null,如果引入

[……]阅读全文

三番+硅谷游记

已经从加州归来一周多,本来不想写游记了。但是前几天整理照片的时候发现,有趣的东西还是有一些的,那就写一些文字吧。

大致的行程:四天。第一天在三番市区,人文线,并夜登双子峰;第二天沿号称最美公路的一号公路南下,经过Santa Cruz,直到十七迈;第三天休息半天,然后前往世界最大的人工公园——金门公园,傍晚去金门大桥;第四天在硅谷的101公路沿线转悠,去了Facebook和Google等几家IT公司,还有斯坦福大学。

Presidio公园我们停靠了两个景点,一个是沙漠和海滩结合起来的Baker Beach;一个是Crissy Field,湖+海湾的组合,可以望得到恶魔岛。

IMG_5415 IMG_5448

去渔人码头闲逛和

[……]阅读全文

“残酷”的事实

crazy

下面这些文字来自我在知乎的回答:“在真实工作中的编程是怎么样的,与学校里有什么不同?”

入行愉快。

首先,一言以蔽之,用两个字来概括,就是“残酷”,但是,好在是加引号的。有的不但残酷,还很无奈;有的则是在残酷的同时,还很有趣。搞工程和学校里的象牙塔大不相同,这也许老早就知道,但是绝对不是七八年前我想象的模样。你可以把它当成我没睡醒的呓语,也可以当成我喝多的胡话,或者是心情太差的时候写的吐槽檄文。反正,它们就在那里,事实就在那里。

总的来说,学校里面编程,或者在工作之余编程,是很有趣的,没有manager给你各种压力,也没有各种大神(比如TMP、PM、SE等等我都搞不清楚干嘛的职位)给你指点

[……]阅读全文

back to top