如何给 Git 大项目瘦身

在上回,我在 如何克隆一个大 Git 项目 说到,遇到了克隆大项目的时候,如果遇到问题该如何解决,这次我们来继续聊聊,假如你是这种项目的维护者,该如何改善。

阅读全文

如何克隆一个大 Git 项目

用 Git 克隆新项目,可以说是每个工程师必备的基础技能,然而,当你遇到克隆过程中的各种各样问题的时候,可知道如何处理?

遇到问题

某天在工作中,小 A 像往常一样要克隆一个新项目到本地,于是你熟练地敲下

阅读全文

我的春节返乡清单

2020 年的开场,多少让大家有点失望,新冠肺炎,还有今天 (2019-10-27) 的科比(虽然对篮球不感冒),不过我还是相信国家机器的运转效率的,这场灾难总会过去。

今年回家,给自己安排了几个任务,主要是为了提升父母的生活幸福感。

阅读全文

网络测速工具 iperf

在我们日常的网络相关实践中,有个常见的需求便是,测试网速。

如果只是为了测试自己所在位置的网速,那么,我们可以直接打开网页,直接开始测试即可,比如著名的 SpeedTest

阅读全文

2019年总结:柔软的三十岁

xiaohua

为什么说三十是柔软的呢?

柔软这个词,大概是我与小花(图中的猫)的关系开始缓和的时候开始意识到的,之前会一直挑逗它,摸它的肚子与屁股,所以总是被挠被咬,然后我就打它,所以它跟我关系一直不是很好。直到某一天,我开始只摸它的头与下巴,然后给它买吃的,我们俩关系就变得好多了。

阅读全文

网页视频播放:方案篇

上篇我们说到,直播协议的介绍,简单回顾下几个技术点:

阅读全文

网页视频播放:协议篇

最近一两周折腾了监控视频的方案,现在把过程中涉及到的知识总结一下,希望对后来的你有帮助。

前言

起初是为了客户端可以跨平台使用,但是我们又不想折腾不同平台的 UI 库,Qt 之类的跨平台库虽然不错,只是它的设计太丑,无法入我法眼。这时候 Electron 方案走进了我们的视线:可以用 Web UI,而 Web UI 的设计又有非常多可供挑选,于是,我们就选了它,然后,问题来了:如何在网页上播放视频。

阅读全文

你得颈椎病了吗

这几周做的东西也比较杂,没有总结什么实质的内容,颈椎病这时候却找上门了,就此机会,来说说这个与技术无关,『轻松一点』的话题。

说起颈椎病,大家应该都不陌生,有个段子说的就是颈椎病是所有工程师的最高级别,是终极归宿,还有的说《颈椎病康复指南》是大家在技术生涯里读的最后一本书,而我就比较厉害了,直接跳过几级,直接修炼到程序员的顶级了。

阅读全文

Docker multi-stage builds

今天来介绍一个 Docker build 很有用的特性:Multi-stage builds,即多阶段打包。

前言

这个特性很早之前,在 2017 年初的时候就可以使用了。如果你没有用到,很有可能你不需要编译语言,就比如 C/C++/Golang/Java 之类的语言。

阅读全文

如何用 PXE 在一小时内安装完 10 台以上的操作系统

上周折腾了一件事,让我觉得还是有必要把过程记录下来的,方便大家之后也要做这件事的时候,可以节约不少时间。

这件事就是:如何在一小时内装完 10 台以上的操作系统?

阅读全文

大清王朝最后的领航者:曾国藩

《曾国藩传》这本书放在书架上挺久了,现在终于有时间看了,我用了差不多一周的时间,不快也不慢,一旦我看到感兴趣的内容,都放下节奏慢慢品味,因为,越看才越觉得,曾国藩太牛了。

我看完之后,还在一直回味,这本书本身的写作水平好坏先不论,各种评论中也有人吐槽作者的写作风格,我看到里面居然有星座这个说法的时候也是很懵:这是写历史人物的,用这样不严谨的文字略显低下了。只是整体上还是可以看的,毕竟传记本身的人物才是重点。

阅读全文

如何实现一个安全的 SaaS/PaaS 服务

这篇文章是接着上篇 SSL 界中 Linux:Let’s Encrypt 写的。(是的,这周灵感不够 🙈 )

阅读全文

SSL 界中 Linux:Let's Encrypt

今天我们来说说造福人类的 Let’s Encrypt(以下简称 LE)。为什么说它造福人类?因为免费。

阅读全文

Golang 中饱受争议的 context

今天来说说 Go 中,一个存在争议的包:context。官方在博客中给了一个例子,说的是在 Go 实现的服务中,对于每一个请求,都会有一个 goroutine 去处理,然后这些处理的地方,又会启动一些额外的 goroutine,去请求数据库,或者其他 RPC 服务,这些请求的过程中,它们会携带一些与单个请求相关的数据,如截止时间、认证信息,而当超时或者被客户端取消的时候,goroutine 应该快速释放它所占用的资源,好让其它请求去使用。1

做过微服务的同学们,听起来有点熟悉对不?这说的不就是微服务的那套东西么:比较明显就是分布式追踪(忘了的同学可以看看我之前写的)以及熔断,几乎每个微服务都会用到,而 Golang 实现这些东西的基础,便是 context。

阅读全文

项目质量的前哨部队:Git hooks

我在之前持续交付的实践与思考中提到过,为了提高项目的内建质量,我们需要尽可能早地发现以及解决问题,这对于任何一个开发团队来说,都是非常重要的事情,尽管它不紧急。目前我们在开源世界中有了各种各样的工具来帮助我们减少错误、提高项目代码的质量,利用它们,可以让你把这件事情真正做好。

阅读全文