踩坑记:gRPC 异常响应

2023-02-11
阅读 3 分钟
1.8k
前些天接到一个 Oncall,来自 Lark 的胡同学反馈,用 gRPC 官方的 python 客户端请求 Kitex gRPC Server,有时收到的 response 为 None。

「懒」是第一生产力

2022-03-26
阅读 3 分钟
1.6k
在工作中,我发现很多同学对如何「提高自己的工作效率」这件事情,缺乏足够的关注。比如某同学在登录服务器时,总是手动输入密码,看得我心急火燎的。我的观点是,必须想方设法提高自己的工作效率,才能留出更多的时间偷懒放羊。今天心血来潮,整理一些自己的经验,抛砖引玉,也希望看到各位分享自己的经验,互相学习如...

一张证书引发的噱案

2022-03-13
阅读 4 分钟
3.4k
2021年9月3号,一个新客户接入到我们的 SaaS 系统。在某个环节,我们会给客户发个 HTTPS 请求,没想到竟然遇到了个 SSLHandshakeException:

单元测试 ——「简单」的乐趣

2021-09-09
阅读 4 分钟
1.8k
我关上灯,对女儿说:「闭上眼睛,别乱动了。」 女儿立刻大声抗议:「可是我睡不着!」 我只好又强调了一遍:「我只是请你闭上眼睛,别乱动。」李松蔚 《忍受简单的能力》
封面图

实战:150行Go实现高性能socks5代理

2020-11-21
阅读 7 分钟
27.5k
用 Go 实现一个 TCP Server 实在是太简单了,什么 c10k problem、select、poll、epoll、kqueue、iocp、libevent,通通不需要(但为了通过面试你还是得去看呀),只需要这样两步:

Google Foobar Challenge

2020-11-14
阅读 3 分钟
5k
比如有两个印度老哥在简历里特地写上 “Father's Name”,用 Google 搜到了其中一个,貌似是个祖上就主持祭祀的家族,种姓(caste)大概得是婆罗门(Brahmin),像是借机显摆自己家族的显赫;有些人则会用 Jain (印度耆那教)或者 Islam 作为其 family name,或许是用宗教信仰来掩饰自己的低种姓吧。

聊聊监控

2020-10-24
阅读 5 分钟
3.9k
之前说要聊聊监控,这篇来填坑了。指标《踩坑记:Goroutine泄漏》开篇那张截图,展示了单个服务进程启动的 Goroutine 数量;除此之外,我们的服务进程在后台还采集了很多其他指标,例如:(当前存活在堆上的对象所占空间)这些数据是哪儿来的呢?runtime 包给我们提供了一些API,例如 runtime.NumGoroutine() 可以获得当...

搞事:代码找茬

2020-08-08
阅读 6 分钟
1.6k
比赛的名字叫“百度之星”,那些年在校园里影响力还蛮大的(好像现在还是),大概赛制就是通过初赛、复赛、决赛这么几轮,选出几个社会主义四有青年瓜分奖金。值得一提的是,头两年(05、06)冠军都被楼教主承包了。

又是面试题?对,合并有序序列。

2020-08-01
阅读 4 分钟
3k
题图无关,因为想到鹅厂,就想到企鹅,然后就想到打企鹅(非洲版),然后就暴露年龄了[doge]- 鹅厂 -在遥远的2009年,那时候“呵呵”还没有奇怪的意思,我笑呵呵地去参加了鹅厂的实习招聘。 面试被安排在面试官下榻酒店的房间里,校门口的**王朝大酒店,可能一晚上能顶我一个月生活费那种。过程聊得应该还可以,不过大部分...

Go: 关于锁的1234

2020-07-25
阅读 4 分钟
5k
有些候选人不了解它们的区别,回答靠猜,缺乏逻辑以至于我都记不住。虽然这只是一个概念性的知识,但是却很能反映候选人的工作经验,比如读多写少的并发场景,乐观锁可以减少加锁冲突带来的开销。

踩坑记:Go服务灵异panic

2020-07-18
阅读 5 分钟
12.3k
在字节跳动,我们线上服务的所有 log 都通过统一的日志库采集到流式日志服务、落地 ES 集群,配上字节云超(sang)级(xin)强(bing)大(kuang)的监控能力,每一条 panic log 都可以触发一个打给值班同学的电话。

生人勿近之 Linux 里养僵尸

2020-07-11
阅读 4 分钟
2.6k
Linux里养僵尸是怎么回事呢?Linux相信大家都很熟悉,但是Linux里养僵尸是怎么回事呢,下面就让小编带大家一起了解吧。 - 1 - 上一篇挖了个 SIGHUP 的坑,这篇试着填一下。 之前在《程序员面试指北:面试官视角》里面说过,在结构化面试中,我们会从各个方向去考查候选人,其中之一是操作系统。 上篇介绍了一套题,我还...

Linux下删点日志也能搞死人

2020-07-04
阅读 4 分钟
6.5k
想了十天十夜不知道写些什么,那就写写面试题吧。 1 在面试应聘者的时候,我常常会问: 在 Linux 下,如何删除一个目录下的所有 log 文件? 不知道是不是我人畜无害的围笑给了应聘者我很好应付的错觉 以至于应聘者全都回答:rm *.log 追问:该目录下可能有很多子目录,如何把子目录里的 log 文件也删掉呢? 答:rm -r *....

踩坑记#2:Go服务锁死

2020-06-25
阅读 5 分钟
9.6k
那是去年7月的一天,被透过落地玻璃的宇宙中心五道口的夕阳照着的正在工位搬砖的我,突然听到一阵骚乱,转头一看,收到夺命连环call的D同学反馈,流量严重异常。

[译] C程序员该知道的内存知识 (4)

2020-05-23
阅读 5 分钟
7.1k
系列更新: C程序员该知道的内存知识 (1) C程序员该知道的内存知识 (2) C程序员该知道的内存知识 (3) C程序员该知道的内存知识 (4) 这是本系列的第4篇,也是最后一篇,含泪填完这个坑不容易,感谢阅读~ 这个系列太干了,阅读量一篇比一篇少,但我仍然认为这个系列非常有价值,在翻译的过程中我也借机进行系统性的梳...

[译] C程序员该知道的内存知识 (3)

2020-05-16
阅读 7 分钟
5.2k
系列更新: C程序员该知道的内存知识 (1) C程序员该知道的内存知识 (2) C程序员该知道的内存知识 (3) C程序员该知道的内存知识 (4) 这是本系列的第3篇,预计还会有1篇,感兴趣的同学记得关注,以便接收推送,等不及的推荐阅读原文。 照例放图镇楼: 来源:Linux地址空间布局 - by Gustavo Duarte 关于图片的解释参见...

[译] C程序员该知道的内存知识 (2)

2020-05-05
阅读 7 分钟
4.4k
系列更新: C程序员该知道的内存知识 (1) C程序员该知道的内存知识 (2) C程序员该知道的内存知识 (3) C程序员该知道的内存知识 (4) 这是本系列的第二篇,预计还会有2篇,感兴趣的同学记得关注,以便接收推送,等不及的推荐阅读原文。 先放图镇楼: 来源:Linux地址空间布局 - by Gustavo Duarte 关于图片的解释可参...

[译] C程序员该知道的内存知识 (1)

2020-05-02
阅读 5 分钟
12.1k
系列更新: C程序员该知道的内存知识 (1) C程序员该知道的内存知识 (2) C程序员该知道的内存知识 (3) C程序员该知道的内存知识 (4) 上篇 《踩坑记:go服务内存暴涨》好像还挺受欢迎的。尽管文中的核心内容很少,但是为了让大多数人能读懂,中间花了很大的篇幅来解释。 尽管如此,我仍然觉得讲得不够透,思来想去觉得...

踩坑记:go服务内存暴涨

2020-04-26
阅读 6 分钟
13.4k
这周换换口味,记录一下去年踩的一个大坑。 起 大概是去年8月份,那会儿我们还在用着64GB的“小内存”机器。 由于升级一次版本需要较长的时间(1~2小时),因此我们每天只发一次车,由值班的同学负责,发布所有已merge的commit。 当天负责值班的我正开着车,突然收到 Bytedance-System 的夺命连环call,打开Lark一看: [ ...

程序员面试指北:面试官视角

2020-04-22
阅读 2 分钟
2.9k
所谓结构化,指的是将各种知识技能做好划分,例如编程语言,操作系统,数据库,网络,算法,工程/架构设计,并通过几个面试官之间的多轮交叉面试来考查掌握程度。

UTF-8:一些好像没什么用的冷知识

2020-04-22
阅读 5 分钟
3.2k
在乔纳森·斯威夫特的著名讽刺小说《格列夫游记》中,小人国内部分裂成Big-endian和Little-endian两派,区别在于一派要求从鸡蛋的大头把鸡蛋打破,另一派要求从鸡蛋的小头把鸡蛋打破。

TCP:学得越多越不懂

2020-04-20
阅读 8 分钟
3.1k
这次我们来聊一聊TCP协议。 握手 多少有点令人意外的是,大多数程序员对TCP协议的印象仅限于在创建连接时的三次握手。 严格地说,“三次握手”其实是一个不太准确的翻译,英文原文是 "3-way handshake",意思是握手有三个步骤。 不过既然教科书都这么翻译,我就只能先忍了。 “三次握手”的步骤相信各位都非常熟悉了: {代码...

我喜欢的问题

2016-01-31
阅读 1 分钟
1.5k
SF有很多问题,看标题就知道我知道,没有点进去回答的欲望,因为只是纯粹消耗时间来换取积分。 我喜欢的问题是这样的:我大概知道我能解决,但是需要我花时间去思考,在这过程中我有收获,并且能够帮到提问者。

Python: metaclass小记

2015-12-06
阅读 9 分钟
6.1k
"Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don't." -- Tim Peters

SQL回顾

2014-09-11
阅读 1 分钟
4k
嗯,对,这是个笔试题。 数据表t_subway包含两个字段:subwayNo, stopName,分别表示地铁线路、站点名称。请按要求写出合适的SQL语句: 查找经过“虹桥火车站”的地铁路线 取所有站点,按途经线路的数量降序排序 查找能从“中山公园”直达“上海火车站”的地铁路线 查找能从“上海体育馆”中转一次抵达“虹桥火车站”的地铁路线

一个女猎头发来的搞笑邮件

2014-01-26
阅读 1 分钟
8.7k
前两天收到的这封邮件,说是要找移动开发者,position provided by "a startup company founded by Max Levchin(www.linkedin.com/in/maxlevchin) who is co-founder of Paypal, LinkedIn, Yelp, Slide."

使用ctypes来扩展Python

2013-08-15
阅读 2 分钟
8.3k
为了扩展Python,我们可以用C/C++编写模块,但是这要求对Python的底层有足够的了解,包括Python对象模型、常用模块、引用计数等,门槛较高,且不方便利用现有的C库。而 ctypes 则另辟蹊径,通过封装dlopen/dlsym之类的函数,并提供对C中数据结构的包装/解包,让Python能够加载动态库、导出其中的函数直接加以利用。

一个简单的面试题

2013-08-14
阅读 1 分钟
9.1k
题目 求一个字符串中最长的、不包含重复字符的子串。 比如 abcda ,答案可以是 abcd 或者 bcda 。 具体要求 一张纸、一支笔,手写。 (腾讯阿里的面试好像比较喜欢这类) 解题思路 可以先跟面试官确认,题中所指的字符是属于ascii字符。 具体的算法实现可以达到O(n)的复杂度,只需要建立一个队列,让字符串中的字符逐一入...