Skip to content

四火的唠叨

一个纯正程序员的啰嗦

Menu
  • 所有文章
  • About Me
  • 关于四火
  • 旅行映像
  • 独立游戏
  • 资源链接
Menu

谈谈月饼事件

Posted on 09/15/201606/23/2019 by 四火

mind control

最近在程序员圈子内引起热烈讨论的月饼事件的详情在此,阿里巴巴也给出了官方回应,事件本身的大致内容是:

阿里巴巴有一些低于市场价的月饼供员工抢购,算是公司福利的一种体现。但是安全相关部门的 5 位员工写了脚本,利用内部抢购系统漏洞,抢到了超过限制数量的 133 盒月饼。

于是看到了各种各样的声音,有表示公司做得对;有表示公司的处理方式简直不可理喻;也有质疑公司 HR 的权力之大的。于是讨论就上升到了公司的文化,以及公司的价值观上面。

这件事情在互联网上的讨论已经非常充分了。以下是我的几个观点:

从公司层面上看,杀一儆百,给其他员工带来的是警示作用。我更相信他们只是为了践行这一点的牺牲品。有点必须绝对 “

[……]阅读全文

Continue reading

关于奥运会,一点印象和看法

Posted on 09/06/201610/01/2024 by 四火

rio2016

关于禁药风波

事实上,在我看来,禁药只是奥运发展到如今畸形生长的一个典型表现而已。如今的奥运,早已偏离了最纯粹的主旨。只有 “更快、更高、更强”,但是其他那些好的初衷都已经丢失。禁药的使用永远也不会休止。禁药本身,永远只会是一个比拼科技实力的过程——区别仅仅是因为科技和运气被抓到和不被抓到。从根本上,如果奥运会的规则体制,以及在诸多人心中的地位,在政坛上的价值,这些都无法改变的话,这个问题就是无法解决。

与之相关的,我认为那些过于单一依赖于基础身体素质,特别是力量和速度的项目,应该从奥运场馆中废弃。

具体来说,是哪些项目呢?

比如举重。看看那些练举重的运动员,身体被摧残成什么样子?为了变态地增

[……]阅读全文

Continue reading

工作流系统的设计

Posted on 08/19/201606/23/2019 by 四火

workflow

几年前曾经写过一点点对于缓存框架设计的体会,这大半年和工作流系统打交道颇为丰富,因此想总结一点关于工作流系统的设计。

首先,明确工作流(workflow)系统的定义。维基百科上有极其简单的介绍。我记得以前在文章里面说过,作为大公司里面的小 team,为了做一些有趣的东西,从而更好的招人,通常有几个众人皆知的突破口:比如一个更符合业务需求的 storage,再比如一个自定义的工作流系统。在 Amazon 内部,我接触过好多个 workflow,而且大多以 Amazon SWF 为原型(当时学习的时候还写了一点体会,link 1 和 link 2),于是宏观上看,60% 的东西是一样的,大同小异;但是也有很多重

[……]阅读全文

Continue reading

又到一年引援时

Posted on 07/09/201610/08/2024 by 四火

man_utd

去年暑期我曾经评价了一番当时范加尔在任的引援,如今可谓物是人非,从这个冬季没有任何实质意义的引援行动,就估计到范加尔的帅位不稳。事实上,14 赛季结束以后,主媒体报端对于范加尔的评价还是不错的。和莫耶斯不同,直到上任两年后,再度丢掉欧冠席位,拿了足总杯草草收场,我依然对于范加尔持有相当程度的支持态度。只可惜这样的成绩显然是难以令多数俱乐部内外人士满意,而其本人 “死鸭子嘴硬”,不断要求球迷降低期望的言辞着实令其在别人心目中的印象大为减分。

范厨师要做出好菜,自然需要好材料。但是其人对于细节的控制欲望着实强烈,对于成长中的年轻球员还尚能生效,毕竟年轻通常意味着可塑性强;但是对于一些成名的球员,纵观

[……]阅读全文

Continue reading

写给实习生的第一天

Posted on 06/21/201610/01/2024 by 四火

intern

实习生(intern)和新员工有所区别。实习生仿佛一个长达 12 周(三个月)的面试,一起工作,一起解决问题。在最后有答辩和 debrief meeting 讨论结果。可能通过了,最后公司给 offer;也可能没有通过。即便给了 offer,还要面临双向选择,有可能实习生不理 offer,继续求学或者去别的公司,当然也可能选择到别的团队。

我的习惯是,见面的第一天,这些内容是必须要交代清楚的:

1. 近视和远视。

你会在接下去的时间里遇到大量的问题,也要去解决大量的问题,有的问题解决会让你获益很长时间,但是大多数问题解决也只是帮助当时的那个你。我们尽量选择一个平衡点,既要为了完成项目,解决那些无趣,但是又

[……]阅读全文

Continue reading

保卫萝卜

Posted on 06/20/201606/23/2019 by 四火

保卫萝卜是我特别喜欢的一款塔防游戏,其实第一代最好,第二代没那么有吸引力,但是也能玩,前两天保卫萝卜 3 上线,我彻底失望了。

喜欢保卫萝卜 1 的原因我觉得至少有这么几个:

  • 策略型的游戏,可以暂停以后来布置防守,这样就不会把游戏的平衡点放到操作上(要是论操作,那核心游戏性就彻底不同了);
  • 有好多关卡都是设计精妙的,需要思考以后才能过去,有一步策略错误就挂了;
  • 收集各种怪物,然后才能解锁各种地图,这个是属于养成元素的;
  • 怪物角色和发音都很搞笑。

保卫萝卜 1 的游戏显然更纯粹。简单,上手很容易,什么说明都不需要;但是又不简单,许多关卡是需要仔细思考的。

为了无伤,为每一章收集这样的徽章,那就需要绞尽脑

[……]阅读全文

Continue reading

亲历美国医疗

Posted on 06/12/201606/23/2019 by 四火

medication

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

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

[……]阅读全文

Continue reading

Spark 性能优化——和 shuffle 搏斗

Posted on 05/22/201606/23/2019 by 四火

Spark

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

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

[……]阅读全文

Continue reading

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

Posted on 04/28/201606/23/2019 by 四火

最近工作中一直和 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 任务启动起来以后

[……]阅读全文

Continue reading

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

Posted on 04/07/201610/01/2024 by 四火

think

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

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

[……]阅读全文

Continue reading

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

Posted on 03/29/201606/23/2019 by 四火

生活不止眼前的苟且,

还有诗和远方的田野。

你赤手空拳来到人世间,

为找到那片海不顾一切。

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

[……]阅读全文

Continue reading

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

Posted on 03/11/201610/08/2024 by 四火

tech

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

[……]阅读全文

Continue reading

Notes: Spark metrics

Posted on 03/07/201606/23/2019 by 四火

Below are some notes taken for future reference based on the brainstorm meeting last week, with company confidential information removed.

Background

The team use a home made workflow to manage the computation for the cost and profit, and there’s a lack of statistics for the jobs and input/output, us

[……]阅读全文

Continue reading

三次性能优化经历

Posted on 02/16/201606/23/2019 by 四火

performance

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

Portal 的性能优化

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

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

[……]阅读全文

Continue reading

研发团队的角色和构成

Posted on 02/11/201601/24/2020 by 四火

software engineer

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

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

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

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

Continue reading

历史,科学,还有艺术

Posted on 02/04/201606/23/2019 by 四火

history

学理的人要读一读历史。

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

如果我问,能不能说出

[……]阅读全文

Continue reading

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

Posted on 01/22/201606/23/2019 by 四火

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

沈阳

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

[……]阅读全文

Continue reading

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

Posted on 01/17/201610/02/2024 by 四火

baidu

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

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

[……]阅读全文

Continue reading

Spark 的性能调优

Posted on 12/21/201506/23/2019 by 四火

Spark

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

基本概念和原则

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

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

[……]阅读全文

Continue reading

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

Posted on 12/16/201506/23/2019 by 四火

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

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

#
Title
Acceptance
Difficulty

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

Continue reading
  • Previous
  • 1
  • …
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • …
  • 23
  • Next

订阅·联系

四火,啰嗦的程序员一枚,现居西雅图

Amazon Google Groovy Hadoop Haskell Java JavaScript LeetCode Oracle Python Spark 互联网 前端 华为 历史 同步 团队 图解笔记 基础设施 工作 工作流 工具 工程师 应用系统 异步 微博 思考 技术 数据库 曼联 测试 生活 程序员 管理 系统设计 缓存 编码 编程范型 英语 西雅图 设计 评审 问题 面试 项目

分类

  • Algorithm and Data Structure (30)
  • Concurrency and Asynchronization (6)
  • System Architecture and Design (43)
  • Distributed System (18)
  • Tools Frameworks and Libs (13)
  • Storage and Data Access (8)
  • Front-end Development (33)
  • Programming Languages and Paradigms (55)
  • Testing and Quality Assurance (4)
  • Network and Communication (6)
  • Authentication and Authorization (6)
  • Automation and Operation Excellence (13)
  • Big Data and Machine Learning (5)
  • Product Design (7)
  • Hiring and Interviews (14)
  • Project and Team Management (14)
  • Engineering Culture (17)
  • Critical Thinking (25)
  • Career Growth (57)
  • Life Experience and Thoughts (45)

推荐文章

  • 谈谈分布式锁
  • 常见分布式系统设计图解(汇总)
  • 系统设计中的快速估算技巧
  • 从链表存在环的问题说起
  • 技术面试中,什么样的问题才是好问题?
  • 从物理时钟到逻辑时钟
  • 近期面试观摩的一些思考
  • RSA 背后的算法
  • 谈谈 Ops(汇总 + 最终篇):工具和实践
  • 不要让业务牵着鼻子走
  • 倔强的程序员
  • 谈谈微信的信息流
  • 评审的艺术——谈谈现实中的代码评审
  • Blog 安全问题小记
  • 求第 K 个数的问题
  • 一些前端框架的比较(下)——Ember.js 和 React
  • 一些前端框架的比较(上)——GWT、AngularJS 和 Backbone.js
  • 工作流系统的设计
  • Spark 的性能调优
  • “残酷” 的事实
  • 七年工作,几个故事
  • 从 Java 和 JavaScript 来学习 Haskell 和 Groovy(汇总)
  • 一道随机数题目的求解
  • 层次
  • Dynamo 的实现技术和去中心化
  • 也谈谈全栈工程师
  • 多重继承的演变
  • 编程范型:工具的选择
  • GWT 初体验
  • java.util.concurrent 并发包诸类概览
  • 从 DCL 的对象安全发布谈起
  • 不同团队的困惑
  • 不适合 Hadoop 解决的问题
  • 留心那些潜在的系统设计问题
  • 再谈大楼扔鸡蛋的问题
  • 几种华丽无比的开发方式
  • 我眼中的工程师文化
  • 观点的碰撞
  • 谈谈盗版软件问题
  • 对几个软件开发传统观点的质疑和反驳
  • MVC 框架的映射和解耦
  • 编程的未来
  • DAO 的演进
  • 致那些自嘲码农的苦逼程序员
  • Java 多线程发展简史
  • 珍爱生命,远离微博
  • 网站性能优化的三重境界
  • OSCache 框架源码解析
  • “ 你不适合做程序员”
  • 画圆画方的故事

近期评论

  • + 1.943624 BTC.NEXT - https://graph.org/Ticket--58146-05-02?hs=9a9c6f8dfe3cdbe0074006e3e640b19b& on 所有文章
  • Anonymous on 闲聊投资:亲自体验和护城河
  • 四火 on 关于近期求职的近况和思考
  • YC on 关于近期求职的近况和思考
  • mafulong on 常见分布式基础设施系统设计图解(四):分布式工作流系统
  • 四火 on 常见分布式基础设施系统设计图解(八):分布式键值存储系统
  • Anonymous on 我裸辞了
  • https://umlcn.com on 资源链接
  • Anonymous on 我裸辞了
  • Dylan on 我裸辞了
© 2025 四火的唠叨 | Powered by Minimalist Blog WordPress Theme