我来深圳这五年之生活篇

上次洋洋洒洒写了五千多字的工作篇,这次我们来继续聊聊我在深圳的生活,不过内容不多。

阅读全文

我来深圳这五年之工作篇

这个时间点,挺尴尬的,因为我又一次经历创业失败了,嘟嘟的坟头草也没长多高。不过,我倒是有时间又可以写一些回忆了,这次就不仅仅写创业历程了,也顺便写点工作之外的事情,不过全放在一篇里面会让工作之外的内容有些尴尬,因此我把重篇幅的工作篇章放这里,其它的另外写一篇。

阅读全文

巧用群晖,让你的耳朵在每一次游泳时都能充满新意

在游泳时听歌的一个常见痛点是,耳机上存放的音乐内容越来越过时或者听腻了,要手动通过电脑来管理音乐,但是操作却非常麻烦。本文将会使用群晖(DS218+),通过简单的 USB Copy 或者自动化脚本来解决这个问题,实现自动帮耳机(Sony Walkman NW-WS623,以下统称 Walkman)更新歌曲。

阅读全文

2021 年度总结

今年最大的体会,就是体力与精力的双重下降:身体上颈椎与腰椎都有问题,下半年经常心悸跟腰背疼,去推拿了好几次,年底了又多了个干眼症。 另外,我的精力已经从纯技术路线转移了。 创业今年的疫情依然没有结束,但是我所在的公司开始做防疫相关的产品了,于是我们这一年来成长了不少,业务也真正有起色了。 不过,成功是有代价的,尽管目前只是小成功。 感觉自己的体力与精力最...

阅读全文

【MQTT系列】(三)发布、订阅与主题

接着上次的简介(这个博主真会拖更 :P),我们来说说 MQTT 的一些基本概念。 基本概念在上次非常简单的 MQTT Hello World 中,我们其实就已经涉及到了一个非常重要的概念:发布与订阅。 想象大家很容易想起的,便是设计模式里面的发布订阅模式,确实,本质上 MQTT 实现的,就是架构上的发布订阅模式。 让我们回想下, 发布订阅模式的好处在哪里...

阅读全文

【MQTT系列】(二)Broker 搭建

又停更了,两个月。 🙈 我在上次的 简介 里简单提到过,如何用公共的 Broker 来做测试,显然,你不能用测试服务器当做生产环境的服务器,我们还是需要一个属于自己的服务器。 MosquittoMosquitto 可谓是开源届最有名气的 MQTT Broker 了,只是功能上勉强够用,有些如权限管理之类的高级功能需要自己安装插件,或者干脆自己的实现插...

阅读全文

【MQTT系列】(一)简介之 Hello World

说在前面最近两个月,我几乎是停更了,虽然之前提到过不会及时更新了,但是拖了那么久还是第一次。我当然可以用忙来解释,毕竟我周末用来刷 B 站的时间也少了好多。所以就陷入了另一个窘迫的地步:现在有素材可以写,但是这些可以拿来写的素材却是我忙起来之后才能得到,导致没有足够的精力时间去整理这些素材。 好了,话虽如此,博客还是要继续写的,不然积累的经验与知识又会不...

阅读全文

Git 之消失的文件

今天来跟大家分享一个有趣的事情,在开始之前,想问问大家如何在 Git 中,如何在 Git 项目中,让一个文件消失?或者说,对 Git 来说不可见? 似乎很简单对不对?用 .gitignore 文件不就可以了。对,你说的没错,只是除了这个方法呢? 演示接下来如果你如果想尝试这个方法,请别在你的真实项目中操作,搞坏了我可没法负责。 123mkdir test...

阅读全文

Golang Heap 分析

通常,我们只会在两种情况下,会去分析一个程序的表现: 你遇到了问题; 你闲的没事干; 好了,开个玩笑,其实研究程序的性能对于每一个工程师来说,都很重要,我甚至可以这么说:这是一个工程师的必备技能。 下面来说说,我们如何去研究 Golang 程序的性能问题。 介绍之前我也在 穷人的程序性能分析器 介绍过 C++ 的性能分析,以及很久之前也介绍过 Nod...

阅读全文

像火箭科学家一样思考

这本书在我看来,就是在教你如何创业。因为,创业成功的难度不亚于一次火箭发射,虽然还会有更难的探月、探火星、载人,只是,这个过程中的方法论都是一致的,都是由普通的人类在用科学的方法,将不可能变为可能。 事实上,在技术行业,似乎做出一件伟大的产品似乎也是不可能的,比如你能在现在想象我们国家能在十年后造出可以跟 ASML 高端光刻机吗? 同样,可能你也无法在多...

阅读全文

Linux 时间之 hwclock

Linux 中,有好些个工具是跟时间相关的,最近工作遇到了它们,于是打算写几篇与 Linux 时间相关的文章。 今天先说说 hwclock 这个工具,估计也就玩物联网的朋友会用到了,因为这个工具往往只是用来保持硬件设备的时间的,但是前大多数设备往往都是联网的,也就是用的 NTP。 另外,Ubuntu 15.04 之后就用 systemd 来管理时间了,它...

阅读全文

不拘一格的网飞

对于网飞的文化,我向来推崇备至,在之前的多篇文章里面,也提到过很多次: 从把 SLA 加进 KPI 考核说起 谈谈服务稳定性 如何理性地失败:黑匣子思维 这次见到这本网飞 CEO 里德 · 哈斯廷斯写的书出来后,也是第一时间排上了阅读计划。这几天看完之后,有种难以名状的感受:就像自己被自己打了脸。 以下涉及剧透,慎读。 自由与责任工作法整本书的逻辑很...

阅读全文

工程师的傲骄

最近的几场外部对接,由于我们的业务涉及到对外合作,因此避免不了跟外部工程师的对接,然而对接的时候,就是出现各种幺蛾子的时候了。但是,这个过程中,让我发现了一个很有意思的事情:在群里吵起来的两个工程师,私下聊天的时候却是和和气气的。 我们从典型的外部对接开始说起。 典型的外部对接大致的流程是这样的:销售跟商务接触合作方,双方互相了解需求,如果合适的话,就开...

阅读全文

CMake 动态链接库绝对路径问题

今天这篇文章算是对 【CMake 系列】(五)安装、打包与导出 的一个补充。其实我本打算跟上篇文章放在一起,毕竟都属于动态链接库相关的知识,但是这样一来就不容易被出现问题的同学们检索到了(才不是为了再水一篇文章 doge)。 问题的由来是因为这个问题困扰了我不少时间,在好几个项目里面都遇到了这个问题。 那就是链接动态库的时候,编译出来的可执行文件会带有编...

阅读全文

RPATH 简介以及 CMake 中的处理

所谓的 RPATH,就是硬编码在可执行文件或者动态库中的一个或多个路径,被动态链接加载器用来搜索依赖库。1 这个值是存在可执行文件或者动态库的 ELF 结构中的 .dynamic 小节中,它可以用 readelf 或者 objdump 查看。 具体就是 readelf -d a.out | grep RPATH 或者 objdump -x a.out |...

阅读全文