详情

全站展示位

深入理解 Git

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

推荐

Go语言泛型函数 mock 原理

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

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

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

深入理解 Git

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

解密 TTY 设备

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

心灵鸡汤

  唐朝贞元年间,著名诗人白居易考中进士后,被派往陕西周至当县令。

  他刚上任,城西的赵乡绅和李财主就为争夺一块地跑到县衙打官司。为了能打赢官司,赵乡绅差人买了一条大鲤鱼,在鱼肚中塞满银子送到县衙。而李财主则命长工从田里挑了个大西瓜,掏出瓜瓤,也塞满银子送了来。收到两份“重礼”后,白居易吩咐手下贴出告示,明天公开审案。

  第2天,县衙门外挤满了看热闹的百姓。白居易升堂后问道:“你们哪个先讲”赵乡绅抢着说:“大人,我的理(鲤)长,我先讲。”李财主也不甘示弱说:“我的理(瓜)大,该我先讲。”白居易沉下脸说:“什么理长理大成何体统!”赵乡绅以为县太爷忘了自我送的礼,连忙说:“大人息怒,小人是个愚(鱼)民啊!”白居易微微一笑说:“本官耳聪目明,用不着你们旁敲侧击,更不喜欢有人暗通关节。来人,把贿赂之物取来示众。”

  衙役取来鲤鱼和西瓜,当众抖出银子,听审者一片哗然。白居易厉声喝道:“大胆刁民,胆敢公然贿赂本官,按大唐律法各打40大板!”众百姓无不拍手称快。至于这些的'银子,白居易就用来救济贫苦百姓了。

列表展示

主站展示位

记一次线上 DDoS 攻击案例

跟进大半年的项目终于上线了🎉虽说上线当天没有出问题,最近却受到了一次 DDoS 攻击。说起来我还没有线上 DDoS 的相关经验,这次攻击规模不大,有些方面符合预期,有些方面出乎预料。今天把这次攻击事件分享出来,给大家做个参考。

寓教于乐的蛇棋

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

为 Git 配置网络代理

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

使用 Nginx 反向代理 HTTPS 网站

Nginx 最常用的功能是就是反向代理。不过之前多是用 Nginx 代理 给博客搞了一个反代,看看访问速度快不快。如果还可以,后面考虑退掉付费的虚拟机,进一步降低博客成本。

使用递归实现正则匹配

很久之前就读到 Brain 的文章,讲怎么写优雅的代码。作者在文中讲了 Rob Pike 的故事,Rob 用一个多小时的时间实现了一个简的的正则匹配函数, 所有代码加上注释也才三十多行。Rob 的实现不但简洁而优雅,而且还充分展示了递归函数和指针的强大魅力。今天就结合自己的理解分享给大家。

为什么还在写博客

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

使用UPnP配置SDN端口转发

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

怎样向 ChatGPT 提问

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

ChatGTD.net极简 ChatGPT 代理

ChatGPT 想必大家都有所耳闻,它是 OpenAI 公司研发的生成式聊天机器人,代表了当前人工智能 AI 领域的最高水平。ChatGPT 可以帮助大家完成很多工作,比如写小说、写简历、总结工作汇报、多语言之间相互翻译、批改作文,甚至还能解鸡免同笼这类的数学题。可以这么说,只要你把要回复的内容描述清楚,基本上都能获得正确的答案。然而,这么强大的工具却不能在中国大陆和香港地区使用,于是就出现了形形色色的代理。我自己也做了一款叫ChatGTD.net,简单稳定,推荐给大家。

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

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

记录上海驾驶证期满换证过程

最近收到交警的短信通知,说驾驶证临期,需要办理期满换证手续。上周六跑了一趟,全程也就半个多小时,总共花费 110 元。现在把办理过程整理出来,希望能帮到大家。

为什么只有13台根服务器

网上很多人都说 DNS 根服务器只有 13 台,中国一台也没有。在网络世界,中国被美国卡住了脖子。那 DNS 根服务器真的只有 13 台吗?如果是,那原因又是什么?今天就给大家说道说道。

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

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

ChatGPT Plus Depay 续费失败问题

最近开通了 Depay 虚拟卡并订阅了 ChatGPT Plus。我把相关的经验总结出来,帮助了不少读者。但好景不长,一周之后 Depay 收到一笔退款,ChatGPT 把之前的 20 美元退回来了。我估计是 Depay 卡初封控了😂于是研究了一番,发现很多朋友的都无法正常扣费。今天分享一个解决方案。

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 的文章为大家分享这种取模算法。

设置超链接锚点目标样式

我一直使用 Markdown 创作。随着创作的深入,使用脚注的情况越来越多。Pandoc 会自动处理脚注的编号,并将所有脚注锚链接追加到文章末尾。如果脚注非常多,点击脚注编号会跳转到文章结尾。但这里有很多脚注,读者可能分不清刚才点的是哪一个数字😂虽然可以再点一下脚注末尾的↩︎跳回原文,但总归是不方便。如果文章内容比较短,或者同一行中有多个脚注,读者更对不上号。今天就通过 CSS 解决这个问题,进一步优化阅读体验。

在公司网络中给 Firefox 开启 DoH

我曾专门写文章总结DNS隐私安全问题,其中最主要的问题是上网行为监控。理论上公司可以通过 DNS 记录你在上班期间的全部网络行为。当前最好的应对策略就是开启 DNS over 为例分享一个比较完整的解决方案。

博客寄语:

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

实时播报:

博客号-学习成长

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