详情

全站展示位

多彩的终端

终端,现在也叫命令行。但在历史上,确实有一种设备叫终端。其中最为著名的,可能就是 vt100 系列了。我们现在能看到的 terminal 软件都是终端设备的模拟器。虽说终端设备已经作古,但终端的通信控制协议依然有效。我们可以在命令行下显示粗体、斜体、下划线字符,也可以显示不同的颜色,甚至还能显示简单的动画,这些功能依然使用几十年前终端设备通信协议。今天就给大家说说这种协议。。。。

推荐

Go语言泛型函数 mock 原理

Go语言实现猴子补丁系列又有更新了。这一次跟大家分享泛型函数的打桩原理。

Go语言没有内置错误处理机制

本文是Go语言错误处理系列文章的第二篇。我在上文指出错误处理的本质是流程控制,并系统地介绍了Go语言的流程控制语句。今天就来介绍一下Go语言内置的错误处理机制。其实Go语言压根就没有内容什么错误处理机制,而是把错误处理的包袱甩给了程序员。请容我细细道来。

深入理解 Git

讲 Git 的书有不少,我看过最好的一本书叫Git Internals。里面第二章 Understand Git 讲了一部分 Git 的基础概念,但很快就陷入流俗,开始罗列命令。强记命令不但让学习毫无趣味,还可能在实际使用中误用命令导致各种麻烦。我一直在思考如何才能高效的掌握 Git。现在把这些思考整理成文供大家参考。

解密 TTY 设备

终于找到一篇把 TTY 系统讲透的文章了。联系作者拿到了翻译授权。现在分享给大家。以下是原文。

心灵鸡汤

哲理小故事、佛塔上的老鼠

  一只四处漂泊的老鼠在佛塔顶上安了家。

  佛塔里的生活实在是幸福极了,它既可以在各层之间随意穿越,又可以享受到丰富的供品。它甚至还享有别人所无法想象的特权,那些不为人知的秘笈,它可以随意咀嚼;人们不敢正视的佛像,它可以自由休闲,兴起之时,甚至还可以在佛像头上留些排泄物。

  每当善男信女们烧香叩头的时候,这只老鼠总是看着那令人陶醉的烟气,慢慢升起,它猛抽着鼻子,心中暗笑:“可笑的人类,膝盖竟然这样柔软,说跪就跪下了!”

  有一天,一只饿极了的野猫闯了进来,它一把将老鼠抓住。

  “你不能吃我!你应该向我跪拜!我代表着佛!”这位高贵的俘虏抗议道。

  “人们向你跪拜,只是因为你所占的位置,不是因为你!”

  野猫讥讽道,然后,它像掰开一个汉堡包那样把老鼠掰成了两半。

  【人生感悟】人生中,很多人都有得意的时候,要客观地想一想,别人对你毕恭毕敬时,是因为你自身的人格、学识,恩德,还是因为你临时所处的位置。

列表展示

主站展示位

寓教于乐的蛇棋

家里有一套蛇棋,女儿👧很很喜欢,经常要跟我玩几局。我发现它不仅简单有趣,而且还能在娱乐的过程中潜移默化地教一些道理,正所谓寓教于乐。这算是我迄今为止所发现的性价比最高的玩具了。今天就跟大家分享自己的感悟。

为 Git 配置网络代理

虽然 Git 用得很多,却很少碰到需要为 Git 配置网络代理的场景。最近在跟的项目网络环境比较特别,需要为 Git 配置代理才能访问远端仓库。整理成文,权当备忘。

跟女儿玩脑筋急转弯

今天跟大女儿视频聊天。她提议要互相提问题,让对方回答。大女儿六岁半了,我觉得可以趁机教她玩脑筋急转弯,于是欣然答应。

垃圾短信治理建议

今天清理手机短信时发现一条工信部的短信,我之前在部长信箱留言,提出一种治理垃圾短信的建议。顺手查了一下,过了一个半月,工信部回复了。虽然都是场面话,但他们但凡能听进去一点,也不枉废我一番功夫。既然已经回复,那就算告以段落。短信里的查询密码也就不必保留。但我觉得可以将建议的内容分享给大家。

群晖 NAS 支持 HTTPS 访问

朋友在我这托管了一个群晖设备,正好我也有中国电信的公网IP地址,就想着做一个公网可用的网络存储。公网访问肯定要上 支持。

Shell 编程中的 test, [ 和 [[

写过 Shell 的朋友一定摆脱不了被方括号支配的恐惧,Shell 分支判断语法简直是奇葩。时而用[,时而用 [[,甚至有时还会用 test,跟常见的编程语言差距太大。我自己也没弄明白为什么要分单括号和双括号,直到我遇到这篇文章。今天就结合原文以及自己的理解为大家梳理一下 Shell 中的方括号语法。

Oracle 云主机开通 25 号 SMTP 端口

我在七月份成功注册 Oracle 云账户并创建一台 x86 虚拟主机,永久免费。本不想凑这个热闹,但我的服务商年底下架免费邮件服务,所以想用 Oracle 云主机做邮件服务器。注册后才发现 Oracle 默认屏蔽 25 号端口,得工单才能开通。但是永久免费账号不能提工单。快就年底了,邮件服务必须迁移。这两天就折腾了一把,成功给 Oracle 云主机开通了 25 号端口。

抢救 VPS 服务器

昨天晚上例行更新 VPS,更新后重启,重启后失联了😂博客、梯子、ChatGPT全部失效。今天早上折腾了一番终于给抢救回来了。记录一下抢救过程,供大家参考。

记录 gRPC GOAWAY 报错排查过程

公司内部新服务基本都使用 gRPC 协议通信。我们的业务使用 Sniper 框架,并没有内置 gRPC 客户端。所以我基于 Go 语言的 net/头有关,万万没想到。今天跟大家分享排查过程。

64 位 Linux 系统安装与清理 32 位环境

我之前 200 块收了一台华硕 RT-AC1900P 无线路由器,刷了梅林系统,用作家庭网关。这货用的是 2.6.36.4brcmarm 内核。因为是十多年前的内核,WireGuard 模块是不用想了,但还可以编译像 IPIP/GRE 等隧道模块,具体编译过程我后面会撰文介绍。博通 (Broadcom) 只有 32 位工具链,而我的服务器是 64 位 Ubuntu,无法直接运行。今天就分享怎样在 64 位 Linux 系统上安装和清理 32 位运行环境。

Go单元测试 Mock 方案总结

我从 2018 年转向 Go 语言开发,一晃就是五年。当年因为不了解 Go 生态,缺乏趁手的工具,所以选了一套很朴素但能用的方案做单元测试 Mock。后来伴随业务的发展,研发团队拆分成不同的小组。最近有的小组在做新项目,单元测试居然还在用五年前的临时方案。这确实让我意外。是时候总结一下过去的实践经验,做一拨分享了。

简述计算机启动过程

我到了小学六年级才第一次见到计算机。当时最令我惊讶不解的是它需要很长的启动过程。启动时会在屏幕上滚动显示各种不认识的字母。上大学以后,因为不是计算机科班,只学了操作系统和编程语言,并没有系统的学习计算机组成原理。工作之后更是鲜少需要用到相关知识。所以到现在对这个问题的理解还很模糊。最近读到 Hackman 的文章,简明介绍了早期计算机硬件的启动过程,虽然有点过时,但基本原理跟现代 CPU 还是相通的。今天把学习笔记分享给大家。

注册 Oracle 永久免费虚拟主机

Oracle Cloud 推出永久免费套餐也有两三年了。我就一张招行信用卡,老是注册失败。但很多朋友都成功了,甚至还有催生出卖号之类的灰产。今天看到有人通过 5G 网络成功注册。我也就试了一下,没想到也成功了。在此大家分享注册过程。

在 Markdown 中优雅绘图

我一直用自研的博客系统。因为是自研,只实现了核心功能。像绘图功能,特指矢量图,就没有支持。技术文章在很多地方都需要添加示意图。现在只能先用外部软任绘图,再生成图片,最后上传到博客并在原文引用。这种办法不但将绘图跟写作分割开来,更大的问题是后期修改的流程也非常繁琐。所以我尽量使用 ASCII 字符 + 代码块的方式绘制示意图,方便后续修改。到现在基础功能已经稳定,为了让文章更加出彩,是时候实现绘图功能了。今天跟大家分享基于 pandoc 的 lua-filter 实现在 Markdown 中直接绘制 SVG 矢量图。

与自己合解

最近发生了不少事,让我治好了自己的强迫症。以前还觉得强迫症好像是有追求的体现。现在回过头来看,不过是较真、钻牛角尖罢了。根除强迫症的疗法不在外面,就在心里。与自己合解,一切都会豁然开朗。

基于邮箱实现留言功能

网站上线已经有几个月了,一直都没有留言功能。有朋友建议说添加留言或者讨论支持。我最早的想法是留言频很低,我也在个人页面留了邮箱地址。如果真有朋友需要讨论问题,可以发邮件。但实际的情况是国人很少使用邮件,也不方便。于是我考察了 Disqus 和一众基于 Github 的评论系统,它们共同的缺点是需要注册,而且有一定的隐私风险。它们的 CDN 在国内也不太稳定,影响用户体验。我希望找一个支持匿名评论的系统。最终找到了 isso。它使用 sqlite 保存评论数据,支持匿名评论,各方面都很契合我的需求。但是它用 python 开发,部署起来非常麻烦。最后,我想了一个比较取巧的方案:基于电子邮箱来实现留言板功能。今天就把思路和方案整理出来,分享给大家。

美国删除伊拉克国家域名始末

简中互联网流传着一则摇言,说美国政府曾经利用自己的网络霸权删除过伊拉克的国家域名 .iq,导致该国的网站一夜之间从互联网上完全蒸发。这种危言耸听的摇言本不值得一驳,但相关内容竞出自体制内人员之口,而且还被《人民日报》和人民网报道。作为互联网从业人员和 DNS 爱好者,我有必要站出来说两句,以正人心而靖浮言。

个人网站支付宝收款

个人微创业最大的问题就是收款。但如果不注册公司或者个体户,就很难接入支付宝或者微信的支付系统。也有一些第三方公司可以通过支付机构的服务商接口为个人开通支付权限。但一方面需要向三方提供个人信息,有隐私风险;另一方面有额外的手续费。经过一番调研,我觉得目前最靠谱的还是支付宝的当面付,可以集成到个人PC/H5网站上。

Web Push on iOS

Finally, the first beta of Safari 16.4 packs the long awaited feature, the Web Push. I can’t wait to install the beta version iOS, and have made a demo. In this article, I will demonstrate how to send web notification to Safari, and some of its restrictions.

博客寄语:

    有朋自远方来,不亦乐乎。

实时播报:

博客号-学习成长

相信每一分耕耘都有每一分收获,致力帮助博客主所创作的博客能更快的被收录! 如果有其它需求,可联系下方邮箱。