基于 Surge 的 DNS 优化指南

September 27, 2023

要获得良好的网络冲浪体验,DNS 设置是至关重要的。本文主要介绍如何使用 Surge 来提高 DNS 隐私和安全性,特别是在复杂的网络环境下,并分享一些经验。Host 配置Host 配置决定了你访问一个域名时 surge 如何解析这个域名的...

RIME 鼠须管输入法简明使用教程

April 07, 2023

工作中经常见到大量同事花名被打错的场景,本文分享了我近几年在用的输入法,完美解决了这个问题。本文适合有以下需求的读者:很在意输入法隐私,不想让第三方知道自己输入了什么很在意打字效率和准确性经常要输入一些自定义词组在接触到 RIME 之前,我...

自动给不同 Git 项目设置不同的用户名邮箱

March 03, 2023

大部分开发者一般都会全局设置 Git 用户名和邮箱,这样会导致所有 Git 仓库的 Commit 信息默认都使用全局用户名和邮箱配置。推荐的做法是工作相关项目用工作邮箱,个人相关项目用个人邮箱。我们可以使用 Git 的 includeIf ...

Web3 新手如何选择加密货币钱包

October 02, 2022

钱包是进入加密世界的入口,现在市面上的钱包软件玲琅满目,其中不乏有些鸡鸣狗盗之徒。所以对于新手来说选择一个安全可靠且趁手的钱包是至关重要的。关于如何选择,我建议优先考虑以下几个点:安全性,没有安全什么都是虚的判断安全性考虑几个点:开发者背景...

Web3 到底是什么?

September 07, 2022

Web3 究竟是什么,能解决什么问题,符合什么条件才算 Web3。一千个人心中有一千个哈姆雷特,在目前 Web3 快速发展和演变的阶段,以上这些问题的答案的细节也会一直变化,目前并不能准确的盖棺定论。在圈内作为用户体验了一段时间后,我的理解...

谨慎开启 Safari 的阻止跨站跟踪功能

July 28, 2022

Safari 用户如果开启了下图的阻止跨站跟踪选项(默认是开启状态),会遇到很多额外的问题。例如:发送跨站请求时会导致设置为 SameSite=None; Secure 的 Cookie 不会被发送。进而导致基于 Cookie 的登录认证等...

iOS Surge 开启后无法使用部分国产 APP 或网络出错的解决办法

July 26, 2022

越来越多的国内 APP 都在产品层面禁止了开启代理使用。例如交通银行买单吧、部分地方的健康码和银行客户端。对于常年开启 Surge 这类代理工具的用户来说,这就非常恶心了。对于遇到这种情况的用户来说,我的建议是不要让它们浪费你的生命,评估下...

屏蔽 Telegram 垃圾私信的有效办法

July 11, 2022

由于在 Telegram 上加了很多群组,几乎每天都能收到好几条垃圾私信。最近发现在 telegram 设置里清空用户名后即可显著降低垃圾私信的频率(你没看错,telegram 可以没有用户名),现在收到垃圾私信的频率从一天 N 条减少为了...

每个人都应该读一遍《1984》和《动物庄园》

June 01, 2022

《1984》《动物庄园》...

iOS 给常见机构号码增加联系人头像

May 23, 2022

最近发现一个开源项目可以让 iOS 上的通话和短信界面显示常见银行及公共机构的头像。下图是效果图,可以看到左边头像都变成对应的 LOGO 了项目地址:https://github.com/metowolf/vCards下载地址:https:...

在国内如何购买比特币和投资加密货币(2024 年最新)

May 23, 2022

早在 2017 年,当时因为一些原因想购买少量比特币,就在谷歌搜索如何在中国购买比特币,最终在排名靠前的 paxful 完成了人生中第一笔比特币购买。当时印象深刻的是它异常高昂的手续费,体验并不是很好,很容易劝退新手,但是这类平台在搜索引擎...

WEB 性能优化:如何让你的网站页面秒开(方法论)

May 19, 2022

本文适合于专业和普通用户让用户实际感知到你的网站使用起来非常快是很重要的。性能优化的方法和细节非常多,且不同的网站形态需要对症下药。本文不会一个个细节讲下来,而是会授人以渔,告诉你方法论,让你自己能发现性能问题,知道如何发现和解决性能问题。...

加密货币投资这件事

May 15, 2022

对于大多数人来说最靠谱的方法就是定投比特币和以太坊,这两个或许短时间内不会再翻十倍百倍,但也不会太差。最重要的是不要把吃饭的钱投资进去,时刻要保持充足的现金流,才能在熊市中获得更高回报率。不要被各种所谓的蓝筹币分散资金,不要 FOMO 各种...

国内手机号注册推特教程(2023 年最新)

May 10, 2022

近年来对于没有国外手机号的中国用户来说,注册谷歌和推特等海外公司的账号越来越难。原因在于国内运营商的手机号因为各种原因很容易收不到推特和谷歌发送的验证短信,接下来本文教大家的方法可以用国内手机号正常注册成功。推特注册方法打开 https:/...

国内注册币安账号并通过 KYC 教程(2023 年最新)

May 09, 2022

去年开始,币安、火币、抹茶之类的各大交易所都开始清退国内用户并关闭了中国用户注册通道,注册交易所门槛一下子变高了。这些交易所里面币安是体量最大也是最靠谱的。按照本文的方法可以实现用中国身份证成功注册币安帐户并正常通过 KYC 验证。用中国身...

使用一套助记词创建多个以太坊钱包账户

May 07, 2022

对于需要大量钱包账户的人来说,每个账户分别维护一套助记词的成本和出错几率会大很多。所以降低这些钱包账户的维护管理成本是非常重要的事。好在 BIP-39 协议可以用一套助记词派生出 N 个钱包账户。如何生成多个钱包账户使用 MetaMask ...

Apple Watch 的几个用途

May 05, 2022

及时收到关键通知没有 Apple Watch 的时候手机静音后放桌子上经常漏接电话,一些关键通知也无法及时看到。有了 Apple Watch 之后所有你想及时接收的通知都不会漏掉。关闭非关键通知默认情况下,iPhone 上所有应用的通知权限...

钱包安全指南:如何保护你的 NFT 和加密资产不被盗

May 03, 2022

目前的加密世界几乎每天都在上演各种被骗和资产被盗的场景,颇有黑暗森林的味道。为什么会这样呢?一个主要因素是钱包的安全保护方案相比传统银行的多重验证方案还是太简单了。很多非常危险的操作,钱包并没有给出特别明显的提示,不明所以的用户只要在钱包里...

我在 macOS 上高频使用的应用

May 02, 2022

Keka免费好用的解压缩 APP,装机必备。我用它代替了收费的 BetterZiphttps://www.keka.io/Raycast用于代替 Alfred、Spotlight免费且好用,相比上面两者最大的优势是支持用 React + J...

Web3 时代:如何使用 MetaMask 钱包实现一键登录

April 30, 2022

在 web2 时代,几乎所有的网站和应用都需要自行保存用户的账户信息,且每家的账号不通用,用户需要记住所有的这些账号信息,为了管理这些账号密码信息,业界甚至诞生了很多类似 1Password 这样的密码管理器帮助用户管理繁多的账号信息。...

2022 年了 Safari 无法渲染渐变文字的 BUG 依旧存在

April 23, 2022

Safari 在渲染 CSS 渐变文字时如果恰好这个元素是一个 flex 容器,那么将会遇到文字变透明无法显示的 bug。绕过方法是不要在 flex 容器元素上应用渐变文字相关的属性。经过研究,我发现这个问竟然在 6 年前就存在了。但是...

境外手机卡:澳门电信大湾区预付卡使用体验

March 13, 2022

在注册一些国外服务的时候大陆手机号有时候并不是很好用,或者干脆无法使用,这时候如果有一个境外的手机号就会方便很多。国内的用户获取境外手机号的方法有很多,不同的方法各有优缺点,比如 Google Voice 号码大部分情况下都是没问题的,不过...

解决 iCloud Drive 上传文件卡住的问题

March 09, 2022

macOS 上经常会出现 iCloud Drive 上传或者下载文件一直卡住不动的情况。遇到这种情况除了重启电脑还可以用更简单的方法:杀掉 bird 进程具体方法如下,先打开 macOS 上的终端应用,执行以下命令来查看 bird 进程的 ...

Electron 应用如何获取系统代理配置

January 19, 2022

操作系统默认都有上图这种系统级别的代理配置,但是像 Electron 应用,主进程的网络请求默认并不会走这个系统代理,这个默认行为很容易给用户来带不便从而惹恼用户。如果开发者要让主进程里的网络请求走系统代理,需要用一些技巧。读取系统代理配置...

解决 iOS 上 Google 账号登录会卡在加载状态的问题

December 13, 2021

在 iOS 上偶尔会碰到一个挺烦人的问题,在一些 APP 上选择用 Google 账号登录,输入账号点击下一步时,会一直卡在加载状态:解决方法是,在 Safari 的实验性功能中关闭 requestIdleCallback 这个 API,然...

记录 Github Copilot 惊讶到我的时刻

November 05, 2021

截止 2023,一年时间过去了,圈内人再次被 ChatGPT 震惊到了,与之相比,本文中的 Copilot 能力就有点小巫见大巫了。当时准备写个清理缓存的函数,当我写完函数名的时候,copilot 自动写完了剩余部分 除了写代码,它还可以...

解决 Xbox 在国内下载速度慢

October 23, 2021

今年入手了 Xbox Series X,发现 Xbox 在国内下载速度非常慢,无奈之下,发现遇到这个问题的玩家还不在少数,最终我花了一点时间用 Node.js 写了一个 xbox-speed-test 缓解下载速度慢的问题,它可以找到对你来...

开始使用 IndexNow

October 20, 2021

IndexNow 是一种让内容创作者在发布新内容后一键通知多家搜索引擎的标准和技术。对于独立网站来说有一个很大的优点就是可以被各大搜索引擎收录,进而互联网上其他用户可以通过搜索引擎发现你的内容,所以对于独立网站的站长来说你需要确保网站上新发...

Surge iOS 和 AmpliFi 的兼容性问题

October 17, 2021

默认情况下,在 iOS 设备上开启 Surge 的时候,打开 AmpliFi 会一直卡在 "Looking for AmpliFi" 的页面,如果不关掉 Surge 就始终无法找到路由器,体验非常不爽。 要解决这个问题,我尝试调整了 Su...

自建图床指南

October 08, 2021

图片托管是一个很常见的需求,经常能看到不少人在想方设法使用类似微博图床、GitHub issues 等方案变相的当作免费图床,实际上这些方法很容易违反对方的服务条款,说不准哪天就把你的图片删了或者限制外链到其他网站访问,这种是非常不推荐的。...

使用 TypeScript 提升可维护性

September 15, 2021

合理使用 TS 的枚举类型最近发现不少新手或有一定 TS 使用经验的的开发同学并没有充分发挥 TS 枚举值的能力,代码中很容易见到 if(status === 1){} else if (status === 2){} 这种魔法数字,项目只...

在 JavaScript 应用中正确的实现时区切换

September 12, 2020

这篇文章本来写了很多,最终结论是老老实实用 Moment.js 或者 Day.js 这种处理日期非常成熟的库,时区处理这个问题的难点在于历史上各国对于时区的处置太操蛋,在加上夏令时和冬令时,时区方面的坑太多了。有几个点需要科普下:正确的时区...

从 Loading 动画出发改进 React 应用的用户体验

July 03, 2020

在 Web 1.0 时代,用户在不同的页面之间跳转基本上都是通过全量刷新页面来实现的,这个时候 Web 开发者基本上不用自己添加 Loading 效果,浏览器会有自己的 Loading 状态。不过进入 Web 2.0 时代就不一样了,因为这...

Node.js Tips

April 24, 2020

调整最大可用内存上限默认情况 v8 限制堆内存最大可分配空间为 1.4GB,对于特别耗内存的应用,可以按照下面的示例增大可用空间,避免内存耗尽导致的程序自动退出。// old_space 调整为 4GBNODE_OPTIONS="--max...

使用 Dart Sass 代替 Node Sass

July 08, 2019

2020-10-27 更新:Sass 官方已在 2020-10-26 正式宣布弃用 LibSass,并推荐使用 Dart Sass https://sass-lang.com/blog/libsass-is-deprecated为什么要换掉...

WSL 踩的坑和解决方法

June 22, 2019

避免目录权限默认都是 777创建 /etc/wsl.conf[automount]options = "metadata,umask=22,fmask=11"在 .zshrdc 中添加umask 0022无法启动 WSL,提示:参考的对象类...

NPM & Yarn Tips

May 29, 2019

npm link 导致的加载两个 react 实例在本地调试 next.js 过程中你的项目和 next.js 要使用相同的react 和 react-dom 实例操作方法:进入你的项目的 node_modules/{react,react...

Git Tips

May 29, 2019

删除某一次 commitgit revert --strategy resolve commit>https://stackoverflow.com/questions/2938301/remove-specific-commit/4604...

macOS 命令行 Tips

December 26, 2018

列出当前监听的所有端口在 linux 上可以用 netstat 这个命令很方便的查看端口占用和开放情况。在 macOS 上不支持这个命令,要查看端口就比较蹩脚了。下面的命令可以找出某个端口被哪个进程占用sudo lsof -Pn -i4 |...

JavaScript 防劫持

November 03, 2018

在安全方面如果 JS 被劫持是一件非常可怕的事情。理论上静态资源用了 https 就不会被篡改内容了,除非有中间人攻击。对于 web 开发者来说,可以用 Subresource_Integrity 这个特性来检测 js 是否被篡改,并及时上...

Dota2

October 09, 2018

Dota2 这款游戏想要提高真的是要全身心投入,每一场比赛结束后都要复盘反思才能逐步提高。并且要刻意磨练自己的心态才能降低在路人局情绪失控的情况。我已经玩不动了。中路solo提高ChaQDotA « Guides, tricks and t...

macOS 好用的系统维护工具

September 30, 2018

AppCleaner 卸载 APP 时删除残留文件OmniDiskSweeper 大文件清理Intel Power Gadget 系统性能监控...

在 Linux 服务器上使用 Puppeteer 生成 PDF

September 19, 2018

对于 Debian 系的发行版(比如 Ubuntu)需要先安装以下依赖:apt install gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 ...

The Golden Circle 黄金圆环法则

September 15, 2018

黄金圆环法则主要是三个由外向内的问题:what? - 是什么?这个东西是个啥?它是干啥用的?why - 为什么?为什么要有这个东西?它解决什么问题?为什么是这种方案?有没有其他更好的方案?和其他方案相比有什么优缺点?how? - 怎么做?很...

CSS 写法进化史

September 11, 2018

css 作为前端三剑客之一,在前端开发里有着举重若轻的地位。下面是这些年围绕 css 的写法变化。BEM就是一个命名法则,通过前缀来隔离作用域。举个例子,.button-text-active 这个 class 用于描述一个按钮中的文本处于...

一个 Web 开发者的 Windows10 开发环境设置心得

September 02, 2018

yarn 要用官网的安装包安装node 和 python 可以使用 scoop 安装wsl 可以使用 wsl-terminal 美化docker 不能装在 wsl 里ConEmu 是一个不错的终端ConEmu + git-bash 是一个不...

Chrome DevTools Tips

July 21, 2018

延时触发 debugger如果你想在用户触发特定交互后触发 debugger 立即暂停,可以在控制台执行下面的代码,指定时间后页面就会触发 debugger,页面会完全暂停。setTimeout(() => { debugger}, 10...

React 设计模式和思想

June 21, 2018

React 社区在近几年的发展过程中诞生了很多有趣的组件设计 "模式",通过合理的运用这些模式可以让我们写出更好用的 React 组件。比如,在不使用任何设计模式的情况下,要实现一个类似这样的 Tabs 组件最初的代码可能是这样的const...

Linux & Unix 命令行环境的一些 Tips

May 04, 2018

本文大部分命令在 macOS 上同样适用,对于系统没有内置的命令可能需要你先用 brew 安装扫描指定服务器的端口是否启用(支持任意协议)nmap -p 80 qq.com将 stdout 和 stderr 输出到同一个文件file.sh ...

从传统 MVC 到同构:Web 发展历程

December 22, 2017

Web 技术一直在不断发展和演进,从最早的静态页面到如今的复杂单页应用,这其中经历了许多阶段和技术的迭代。本文将从最传统的 MVC 模式一直介绍到目前常用的同构模式,探讨各种技术的优缺点,帮助读者更好地理解 Web 技术的发展历程。无论是 ...

Webpack 动态导入

November 25, 2017

webpack 的 Module Resolution 规则这样的,如果 path 中包含扩展名则直接打包,否则按照 resolve.extensions 中的文件扩展来匹配出最终文件 ,如果是目录则根据 resolve.mainField...

JavaScript 中的异步

March 18, 2017

什么是异步?JavaScript 引擎是单线程的,这就意味着同一时间引擎自身只能做一件事,如果有很多事情要做,就必须一件一件来,在 JavaScript 中如果前面的某个任务需要耗费很长时间,后面的任务就被阻塞了,同时也无法响应用户的操作,...

关于我的博客

March 11, 2017

建立这个博客的初衷是用来分享和记录我的想法,同时希望这些内容能帮助到需要的人,另一方面,这里也是我的技术实验室,很多技术相关的 idea 会在这里进行实践应用。主要用到的技术栈:Node.jsPostgreSQLGraphQLReactTy...