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

July 28, 2022

Safari 用户如果开启了下图的阻止跨站跟踪选项(默认是开启状态),发送跨站请求时会导致设置为 SameSite=None; Secure 的 Cookie 不会被发送。进而导致基于 Cookie 的登录认证等功能失效。如果你不想在上网冲...

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

July 26, 2022

越来越多的国内 APP 都在产品层面禁止了开启代理使用。例如交通银行买单吧、部分地方的健康码和银行客户端。对于常年开启 Surge 这类代理工具的用户来说,这就非常恶心了。一个解决办法是开启 Surge 的 TUN Only 兼容模式:[G...

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

July 11, 2022

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

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

June 01, 2022

https://book.douban.com/subject/4908879/https://book.douban.com/subject/3815131/...

一个在 iOS 和 Android 上给常见机构号码增加品牌照片的开源项目

May 23, 2022

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

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

May 23, 2022

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

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

May 19, 2022

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

加密货币投资这件事

May 15, 2022

对于大多数人来说最靠谱的方法就是定投比特币和以太坊,但不要把吃饭的钱投资进去,时刻要保持充足的现金流,才能在熊市中获得更高回报率。持有时间线要拉长,不要关注这中间的波动,老老实实等个几年再来看。...

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

May 10, 2022

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

国内注册币安交易所账号并通过 KYC 教程(2022 年最新)

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

CleanShot X目前为止用过最好的截屏和标注工具偶尔也用它录屏和制作 GIFhttps://cleanshot.com/Paste强大而专注的复制粘贴工具,每天节省的时间完全值它的价格https://pasteapp.io/Surge...

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

当时准备写个清理缓存的函数,当我写完函数名的时候,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...

基于 S3 + Nginx + CDN 自建图床指南

October 08, 2021

图片托管是一个很常见的需求,本文用 Amazon S3 和 Cloudflare 举例,如何基于对象存储服务和 CDN 自建一个可靠的低成本静态文件托管服务。这套方案的核心是利用 S3 这类对象存储服务解决文件存储的可靠性和安全性,再利用 ...

使用 TypeScript 提升可维护性

September 15, 2021

合理使用 TS 的枚举类型最近在 Code Review 中发现还是有很多使用 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

why - 为什么?how? - 怎么做?what? - 是什么?经常检视自己,是否在工作和生活中很少思考 why。如果是的话,就要格外当心了。...

CSS 写法进化史

September 11, 2018

BEM就是一个命名法则,通过前缀来隔离作用域CSS Modules一把利器,通过在构建时自动对 class 名称进行 hash,让开发者不再担心冲突问题CSS in JS在 JS 里面写 CSS 很符合 React 社区 All in JS...

一个 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 >> fil...

Webpack 动态导入

November 25, 2017

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

JavaScript 中的异步

March 18, 2017

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

关于我的博客

March 11, 2017

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