详情

全站展示位

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

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

推荐

快速处理 Git 冲突

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

Sniper 框架两周年回顾

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

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

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

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

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

心灵鸡汤

励志小故事、马

  马,本来自由自在的在山间撒野,渴了喝点山泉,累了就睡在地上晒太阳,无忧无虑。可是自从有了伯乐,马的命运就改变了,给它的头戴上笼辔,在它的背上置放鞍具,栓着它,马的死亡率已经是十之二三了,然后再逼着它运输东西,强迫它日行千里,在它的脚上钉上铁掌,马的死亡率就过半了。马本来就是毫无规矩毫无用处的动物,让它吸取日月之精化,天地之灵气,无用无为,还得以享尽天年,教化它,让它懂得礼法,反而害了它的生命。

  【人生感悟】人何尝不是如此呢?在规矩的约束下我们是否也丧失了本我,成天遵循别人制定的礼义,逼迫自己去做不愿意做的事情,有限的生命还剩下多少呢?

列表展示

主站展示位

记一次线上 DDoS 攻击案例

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

寓教于乐的蛇棋

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

为 Git 配置网络代理

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

配置 HE 免费 IPv6 地址

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

Download File only when Changed using wget/curl

I am working on one ChatGPT based Product, and it need to download the cl100k_base.tiktoken file via

Prometheus 简介

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

谈谈博客版权

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

使用 Nginx 反向代理 HTTPS 网站

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

群晖 NAS 支持 HTTPS 访问

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

Shell 编程中的 test, [ 和 [[

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

使用UPnP配置SDN端口转发

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

修复 apt-key deprecated 警告

我的服务器使用 Ubuntu LTS 版本。之前是 20.04,升级到 22.04 之后,每次更新系统都会报一堆警告信息。虽然不影响功能,但肯定是哪里出了问题,作为强迫症患者的我肯定要一查究究。查一来发现是跟 apt-key 被弃用有关,整个 apt 的签名系统有了新的配置方案。今天就跟大家分享一下处理过程。

如何优雅地绘制电路图

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

在 Markdown 中优雅绘图

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

与自己合解

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

ChatGPT 付费新方案 Onekey 美国优选卡

该来的还是来了。5月31号 Depay 发布维护公告,说自己的 Mastercard 号段被银行风控,无法正常扣费。之前开通的 ChatGPT Plus 因无法续费被取消了。虽然我个人不强依赖 ChatGPT Plus,可是我还开发了 ChatGTD 为大家提供服务。功能是简陋了点,还是有一些朋友有用。如果 ChatGPT API 也不能通过 Depay 支付的话,那么 ChatGTD 的用户就会受影响。今天检查 OpenAI 的账单,果然扣款失败了。为了不辜负大家的信任,我得尽快解决这个问题。网上说 Onekey Card 新出了美国美国优选卡,可以解锁 ChatGPT Plus 和支付 ChatGPT API 费用。也只能硬着头皮试试看,顺便看能不能转移 Depay 中的余额。没想到还真可以。现在把过程记录下来,分享给大家。

基于邮箱实现留言功能

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

个人网站支付宝收款

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

一例Go语言解析JSON引发的BUG

今天有同事反馈说某接口的的签名计算有误。而且比较签名的代码也写错了,结果负负得正,系统居然带病运转了达五年之久。作为代码提交者深感愧疚。痛定思痛,发现该问题跟 Go 语言的 JSON 解析行为有关。今天就把相关经验分享给大家。

一种快速取模算法

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

博客寄语:

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

实时播报:

博客号-学习成长

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