详情

全站展示位

解密 TTY 设备

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

推荐

Go语言泛型函数 mock 原理

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

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

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

深入理解 Git

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

解密 TTY 设备

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

心灵鸡汤

  晋代人吴隐之任广州太守,在广州城外,见一池泉水名“贪泉”。当地传说饮了贪泉之水,便会贪婪成性。他不信这些,照饮不误,饮后还写了一首诗:“古人云:此水,一歃怀千金。试使夷齐饮,终当不易心。”

  他在任期间,果然廉洁自律,坚持了自我的操守。

列表展示

主站展示位

Nginx 配置快速入门

今天面向初学者分享一篇 Nginx 配置的入门材料。Nginx 安装之后附带的 nginx.conf 篇幅较长,令人望而生畏。初学者限于自身经验不足,很难分清重点。今天我尝试抛开默认配置,从最小的配置出发,带领大家学习从静态 Web 站点到动态 API 网关等各类功能配置。希望能给大家带来一些启发。如果有问题或者想法,欢迎留言讨论。

配置 HE 免费 IPv6 地址

现在 IPv6 已经算是比较普及了,无论是民用 ISP 还是各类云厂商或者 IDC,都支持配置 IPv6 网络。但有一些小型的 VPS 厂商或者一些大厂的特定产品,如阿里云的轻量服务器,仍然不支持接入 IPv6 网络。这时候我们就需要所谓的 tunnel broker 来接入 IPv6 网络。在众多 broker 中,HE提供的 tunnelbroker.net 最为有名,而且支持的区域也最为广泛。我之前换过几次 VPS,每次配置都要查一遍。今天把过程记录下来,做个备忘,也分享给大家。

国行索尼电视安装 YouTube

2024年元旦假期总共休了五天,完成了很多拖了很久的小心愿。其中之是让家里的索尼电视国行版用上了 YouTube。孩子们从此再也不需要忍受电脑的小屏幕了。讲真在国内环境下,要想能在电视上用 YouTube,还真得花一番功夫。今天把自己的方案梳理出来,分享给大家。虽然我家是索尼电视,但本文的大部分内容都跟电视机型无关,请放心食用。

Prometheus 简介

我最近的工作重心转到 SRE 领域,当前的主要内容是帮助部门完善监控系统。说起监控,大多数做 SRE 的朋友都会想到 Prometheus,中文译名是普罗米修斯。我很早就知道、平时也大量使用。但因为之前主要做开发工作,一直没有仔细研究它:基础概念比较模糊,查询语法一知半解,采集、存储等方面则完全不懂。这次就梳理一下最近学到的内容,希望能给新入门的朋友提供一些参考。

Go语言基准测试

基准测试英文关键词 benchmark,主要用于测试 CPU 和内存使用效率。配合一定的工具,还能直观地展示出代码优化的效果。因为跟性能相关,有时候也叫性能测试。Go语言内置基准测试工具包,使用非常方便。建议所有Go开发者都能熟练使用。

垃圾短信治理建议

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

为什么还在写博客

都 2023 年了,现在是短视频的时代,怎么还在写博客?是的,我还在写博客。从注册域名 taoshu.in 开始,到现在己经两年多了。我的创作经历还能追溯到更久,因为之前主要在知乎创作。今天回顾一下过去两年的发展,也谈谈自己对博客创作的理解。

Shell 编程中的 test, [ 和 [[

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

为什么要备案?

最近政府布告天下,从事互联网信息服务的 App 需要备案才能上架。这个应用备案就是从网站备案或者 ICP 备案发展而来的。今天就来聊聊备案这个话题。

使用UPnP配置SDN端口转发

上海电信的光猫只能通过一款叫网络管家的APP设置。如果想通过公网访问内网的服务,需要配置虚拟服务器或者DMZ主机。它们在本质上都是端口转发。这些网络管家都支持。但是,端口转发需要指定局域网机器的IP和端口。局域网设备的IP由光猫自动分配,网络管家上居然不支持给设备绑定IP。如果设备重启,就可能使用新的IP,这样之前配置的端口转发就失效了。最简单的办法是直接给内网主机设置固定IP。如果你不想折腾,读到这里就可以结束了。但这种方法可能产生IP冲突。虽然概率很小,但总觉得不优雅。更好的方案是利用 UPnP 实现自动端口映射。

怎样向 ChatGPT 提问

最近几个月,ChatGPT 席卷全球,可谓是炙手可热。很多人都说 ChatGPT 是人工智能,也就是 AI 的 iPhone 时刻。ChatGPT 就像年 iPhone 颠覆智能手机行业一样,彻底改写了人工智能行业历史。但当大家过关斩将终于可以跟 ChatGPT 对话后才发现,它好像也不是很智能,老是答非所问或者翻来覆去都是些空话套话。这个问题是因为大家不了解 ChatGPT 的工作方式,不能正确的提问,不能给 ChatGPT 传递正确的提示,也就是 Prompts 导致的。今天就跟大家分享一下怎样给 ChatGPT 提问题,或者说怎样写 Prompts。

Go单元测试 Mock 方案总结

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

注册 Oracle 永久免费虚拟主机

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

在 Markdown 中优雅绘图

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

为什么中国没有DNS根服务器

当今互联网有13组DNS根服务器,但没有一组由中国机构运行。无论民间还是政界,一提起此事大家都痛心疾首,感觉被美国卡住了脖子。从国际互联网和中国互联网的发展脉络看,中国本来有多次机会运营自己的根服务器。但发展到今天为什么事与愿违呢?本文就尝试回答这个问题。

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.

解决 ChatGPT Access denied 问题

之前分享了订阅 ChatGPT Plus 的过程,又解决了订阅续费问题。过了几天好日子,ChatGPT Plus 也确实提高了自己的生产力。但好景不长,突然有一天打开 ChatGPT网页后发现账号被封了😂欲哭无泪呀。虽然还可以调 API 使用 GPT-3.5 模型,但用不了 GPT-4 确实难受。今天就跟大家分享解决问题的方法和过程。

一种快速取模算法

最近业务系统使用map[uint64]float64保存某种业务数据,大约有两亿多条,但实际内存占用却将近10个G。团队最终设计了一种自定义数据结构来解决内存消耗问题。在解决问题的过程各我们考查了 SwissTable 这种新哈希表。虽然没能解决我们的问题,却给出了一种新的快速取模的算法,很有启发意义。本文就基于 Daniel 的文章为大家分享这种取模算法。

Linux往事

最近读到 Lars Wirzenius 写的文章,他是 Linus 的同学,参与并见证了 Linux 系统从无到有的历史。想想人家上的大学,再比较一下自己的学生时代,真是让人唏嘘呀。今天把文章编译成中文分享给大家。

博客寄语:

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

实时播报:

博客号-学习成长

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