详情

全站展示位

快速处理 Git 冲突

我一直是在终端下使用 git 的。如果合并分支或者执行 rebase 遇到冲突,处理起来比较麻烦。今天 rebase 开发分支的时候又遇到了一堆冲突,于是就花了点时间研究如何快速处理 git 冲突。方法很简单,就是将 conflictstyle 配置改成 diff3。下面为大家细细分解。。。。

推荐

快速处理 Git 冲突

我一直是在终端下使用 git 的。如果合并分支或者执行 rebase 遇到冲突,处理起来比较麻烦。今天 rebase 开发分支的时候又遇到了一堆冲突,于是就花了点时间研究如何快速处理 git 冲突。方法很简单,就是将 conflictstyle 配置改成 diff3。下面为大家细细分解。

Sniper 框架两周年回顾

一年前我向大家介绍了 sniper 框架。年复一年,sniper不觉已平稳运行两年有余,是时候再次总结一拨该框架的实战经验了。

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

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

禁止网页在新窗口打开链接

很多网页(尤其是简中互联网)强行在新窗口(或者新标签页,下面统称新窗口)打开链接。有人觉得这种做法很方便,可以保留原始网页。但我不喜欢这种方式。因为我用 Firefox,如果是在新窗口或者标签页打开网页就无法使用触摸板滑动返回到上一个页面。今天就整理一下强制在当前窗口或者网页打开链接的方法,分享给大家。

心灵鸡汤

  战国时期鲁国国相公仪休爱吃鱼,有人投其所好送鱼给他,公仪休不收。

  问其原因,他说:“正因为喜欢吃鱼,所以不能理解,此刻我作为国相,能够用自我俸禄买鱼吃,如果此刻收了鱼而丢了官,谁又会送给我鱼呢所以我不能理解啊。”

  公仪休“好鱼而不贪鱼”,实乃其深知“贪赃、枉法、丢官、受惩罚”之间的内在联系,愿每位领导干部任前任中都时刻不忘认真算一算政治帐、经济帐、家庭帐。

列表展示

主站展示位

寓教于乐的蛇棋

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

Nginx 配置快速入门

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

手撸纯净版 DoH 服务

传统 DNS 协议使用明文传输,中间节点可以监听用户的查询内容,甚至还能篡改查询结果。为了解决这类问题,IETF 制定了 RFC8484,使用 服务,解决前面提到的两个问题。

Outlook/Hotmail is no longer blocking my mail server

After some struggle, I managed to de-list the address of my mail server from Microsoft’s blocklist. Here is some experiences may help you.

谈谈博客版权

最近偶然发现某网站转载了我的文章,但没有事先跟我申请授权。于是我联系到站长要求下线。但最终站长同意给出规范外链,此事也就作罢。今天记录完整的维权过程,也顺便谈谈我对博客版权的思考。

使用 Nginx 反向代理 HTTPS 网站

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

How to Set Up Selfhosted Email Server

I have used email service with my own domain for several years. Gandi.net were chosen as my domain registrar, not only because its low fees, but also its free mailbox service. However, since the middle of this year, Gandi.net has announced their price increment and would cancel all free mailbox service in the end of November. Although it is a controversial decision, I have no choice but to find an alternative mail service as soon as possible. As I also own some always free instance of Oracle Cloud Computer, why not set up my own selfhosted mail service? So do I, and in this blog, I will share how to set up one selfhosted mail server securely and freely, yet without any fee.

为什么要备案?

最近政府布告天下,从事互联网信息服务的 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。

纪念陈皓(左耳朵耗子)

昨天惊悉知名IT技术人士陈皓(左耳朵耗子)于13号突发心梗不幸辞世,享年四十七岁。四十不惑,五十知天命。这可能是人生最好的阶段,他也在这个阶段收获了知识、技能、家庭、财富和名望。但所有的一切突然就化作云烟随风飘散。生命是一,其他的都是零。

如何优雅地绘制电路图

最近整理学习笔记时需要画数字电路图。幸亏之前给博客系统开发了对应的功能,可以在 Markdown 中使用 LaTeX 的宏包来绘图。简单学习了一把,发现 LaTeX 可以绘制非常精美的电路图,这让我的文章增色不少。今天就给大家简要介绍一下绘图方法,希望能帮大家快速入门。

Punycode 编码

DNS 最早由美国人 Jon Postel 等人设计,所以仅支持 ASCII 编码。但很快互联网就扩展到欧洲和世界其他地区。人们希望能够使用自己的本地语言表示 DNS 域名。但同时又必须兼容已经部署和运行的 DNS 软件系统,所以就得设计一种用 ASCII 编码来表示世界上所有不同语言文字的编码规则,这就是 Punycode 编码。我们的中文域名用的也是这种编码。这么重要的编码技术,中文互联网上几乎没有详细的资料介绍。于是只能硬啃它的 RFC 文档,今天把学习成果分享给大家。

基于邮箱实现留言功能

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

Makefile Based Blogging

In this article, I will build a simple static site generator using make, bash, and pandoc. All codes have been published to GitHub named after makedown.

ChatGPT Plus Depay 续费失败问题

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

解决 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 系统从无到有的历史。想想人家上的大学,再比较一下自己的学生时代,真是让人唏嘘呀。今天把文章编译成中文分享给大家。

博客寄语:

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

实时播报:

博客号-学习成长

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