Git Enable Commit Signing
Generate GPG key $ gpg --full-generate-key Choose RSA and RS and 4096. Please make sure the email is the same as your Git. Export GPG Key $ gpg --list-secret-keys --keyid-format LONG gpg: checking the trustdb gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u /Users/vincent/.gnupg/pubring.kbx --------------------------------- sec rsa3072/A035553B8A2F45A2 2022-09-10 [SC] 21B1DADC35757E3C1680ABF0A035553B8A2F45A2 uid [ultimate] Vincent Young <i@yyt....
Automatically update Homebrew versions using Action
Homebrew可以说是Mac上必装的命令行工具之一。它真的太好用太方便的。但是你在维护一个Homebrew Tap的时候,如果你的程序有新的Release发布时,需要在对应的.rb文件中修改版本号以及对应的二进制文件的sha256,这显然会有些繁琐,或者说不太优雅。 我习惯使用GitHub Action去交叉编译各种Release,重要的是Action可以帮助我自动发布。其实在每一次Action发布之后,可以添加一个Step,去更新Casks或者Formula的.rb。为了方便,你可以创建一个.sh文件来做这件事。 部分代码(以DeepL X为例) 更新版本号 # Get the latest version of Deeplx last_version=$(curl -Ls "https://api.github.com/repos/OwO-Network/DeepLX/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | sed 's/v//g') # Update the version number in the formula sed -i "s/version \".*/version \"${last_version}\"/g" Formula/deeplx.rb 更新sha256 # Download the new binaries wget -O deeplx_darwin_amd64 https://github.com/OwO-Network/DeepLX/releases/download/v${last_version}/deeplx_darwin_amd64 wget -O deeplx_darwin_arm64 https://github.com/OwO-Network/DeepLX/releases/download/v${last_version}/deeplx_darwin_arm64 # Calculate the SHA256 hash for the new binaries amd64_sha256=$(sha256sum deeplx_darwin_amd64 | cut -d ' ' -f 1) arm64_sha256=$(sha256sum deeplx_darwin_arm64 | cut -d ' ' -f 1) # Update the SHA256 hashes in the formula sed -i "8s/....
Unlock ChatGPT with Cloudflare WARP
原理分析 Cloudflare WARP拥有很多IP,而ChatGPT的CDN又是Cloudflare提供的,也就是说,能不能访问完全取决于Cloudflare。因此使用Cloudflare自己的IP大概率不会被Ban。除了WARP之外,iCloud Private Relay也是Cloudflare的IP哦。 具体步骤 本文的方案仅改变IPv6出口IP,不会改变IPv4出口IP,更不会改变路由。 准备一台VPS,需要是OpenGPT支持的161个国家之一。因为你的网络在哪里,WARP就会使用你所在地的IP。比如香港就不行。 Supported countries and territories 使用以下命令安装WARP。 bash <(curl -fsSL git.io/warp.sh) proxy 配置XrayR/V2Ray的出站规则和路由。(以XrayR为例,XrayR/V2Ray的使用本文略过) # custom_outbound.json { "tag": "socks5-warp", "protocol": "socks", "settings": { "servers": [{ "address": "127.0.0.1", "port": 40000 }] } } # route.json { "type": "field", "outboundTag": "socks5-warp", "ip": ["::/0"] } 简单解释一下,出站规则是指出站走40000端口的SOCKS代理。路由规则是指所有IPv6出站均走SOCKS代理。 如果你只是想让OpenAI走WARP的IPv6,可以这样写。 # route.json { "type": "field", "outboundTag": "socks5-warp", "domain": ["openai.com"] }
I subscribed to ChatGPT Plus
ChatGPT Plus 功能 Available even when demand is high 即使在需求大的时候也可以使用 Faster response speed 更快的反应速度 Priority access to new features 优先获得新功能 订阅 正常方式 填写表格并等待官方给你发送电子邮件获取资格。 漏洞 在中国时间的2月10日下午,看到群里有很多朋友说出现了Upgrade Plan的按钮,我立即登陆了我的帐号发现确实也有了,但是因为中国信用卡无法支付,导致开通失败。2月11日我再次登录的时候发现已经消失了这个按钮。 我翻看了我的Chrome历史记录,找到了一个 pay.openai.com 的链接,点进去发现还是熟悉的Stripe的界面。但是奇怪的事情是我无法填写地址信息,但是没有地址信息无法提交。无奈之下,当然是按下F12,找到填写地址的每一个input标签,把disable全部改为enable,顺利地填写了信息。在我的好朋友Ming的帮助下,用他的美国卡支付,没有显示成功的界面,一直显示处理中,但是收到了订阅成功的邮件。回到 chat.openai.com 发现已经开通好了。 体验 Plus版本有两个模式,分别是 Default 和 Turbo。 根据描述和实际体验,Turbo模式显然要快很多,回复速度比免费版有了很大的提升,很少有遇到崩溃的情况。当然英文提问会比中文回复速度快很多。 IP的问题 无法访问 ChatGPT封锁了很多机房的IP,因为ChatGPT使用的是Cloudflare的服务,我猜测是使用了Country匹配,也就是说只有在指定国家可用,目前是161个国家。除此之外,应该还加入了Threat Score和Known Bots的判断。意味着你的IP要想顺利访问,需要具备两个条件,IP属于来自161个国家之一,并且你的IP危险分数足够低。 我的方案 在2022年3月28日,我在RIPE申请到了ASN,也就意味着我可以持有IPv4和IPv6,我目前持有两个/48的IPv6。我目前的IPv6分别来自台湾和英国,都在161个国家之内,危险分数都是0。我建立了BGP Session,完全可以使用自己的IP来访问OpenAI的服务。 Prefixes: 2401:95c0:f001::/48 2a0f:9400:6907::/48 检测是否可用 为了验证当前IP是否能够正常使用OpenAI服务,我用Shell写了一个检测脚本——OpenAI-Checker。使用方法也非常简单,仅需要在任何Linux/macOS上执行以下命令。 bash <(curl -Ls https://cpp.li/openai) 检测结果示例: > bash <(curl -Ls https://cpp.li/openai) OpenAI Access Checker. Made by Vincent https://github.com/missuo/OpenAI-Checker ------------------------------------- [IPv4] Your IPv4: 205....
Create query API for 500 million Weibo data
Preparation Clickhouse Database Linux/Windows/macOS Server Data Import First you need to deploy Clickhouse and finish creating a brand new database. Create two tables. Table For Query Weibo Uid. CREATE TABLE wb_uid( uid String, mobile String )ENGINE = MergeTree() ORDER BY (uid) PRIMARY KEY (uid); Table For Query Mobile Phone Number CREATE TABLE wb_mobile( uid String, mobile String )ENGINE = MergeTree() ORDER BY (mobile) PRIMARY KEY (mobile); Query Data WeiboSearcher is an API program written in Golang....
Remove National Anti-Fraud Center on MIUI
Uninstall Directly(Recommended) ROOT is not required, but it may be reinstalled after updating the system. Connect your phone to your computer and turn on ADB debugging. Install ADB CLI tools on your computer. # macOS brew install android-platform-tools or https://dl.google.com/android/repository/platform-tools-latest-darwin.zip # Windows https://dl.google.com/android/repository/platform-tools-latest-windows.zip Execute the following code. adb shell pm list package | grep com.miui.guardprovider adb uninstall --user 0 com.miui.guardprovider adb shell pm list users # if you find other users on your phone, please execute the following command....
Bandwagonhost $99 THE PLAN
CPU: 2 cores Memory: 2 GB Hard drive: 40 GB SSD Traffic: 1000 GB/month Bandwidth: up to 2.5 Gbps Server room: HK85/Japan Softbank/DC6/DC9, etc. Migration: 17 server rooms at will Price: $29/quarter, $99/year Link: https://bandwagonhost.com/aff.php?aff=69823&pid=129 Promo Code: BWHNCXNVXV
Migrate from Gridea to Hexo
由于Gridea的作者几乎已经放弃了Gridea客户端的更新和维护,直到现在还没有支持Apple ARM。作者主要把重心放在了收费的网页版上。恰好我在Gridea上使用的主题,也有移植到Hexo上,于是就决定迁移。 迁移过程 部署新博客样式 因为是同一个主题,我用的是Pure,之前改过一遍这个主题,所以现在第二次改还是比较熟悉的。主要是去除掉一些本身我觉得不需要的功能,把显示语言改成英文,最后再加上一些我比较喜欢的内容。总共耗时了1-2小时。Hexo的好处也相当明显,之后写博客,只需要使用像Obsidian、VSCode或者MWeb这类Markdown编辑器即可,非常方便,不需要依赖特定的博客系统客户端。除此之外,Hexo会生成纯静态的文件,可以部署到GitHub Pages上,或者你可以直接上传到网站的目录。 迁移文章 复制所有的.md文件放入新博客的_posts下即可。唯一需要变动的,可能是Post的几个属性。 评论系统 老的博客,Gridea使用的是Disqus,虽然Hexo也一样支持,但是似乎Disqus在中国大陆会出现加载失败的情况,所以这次索性放弃了之前的所有评论,采用了GitHub的Gitalk。对于开发者来说,体验还是非常棒的。
2022 year-end summary
根据相关法律法规,我的 2022 总结和 2023 展望不予显示。
Unblock the Sina Weibo account
被封 2022年10月14日,我和往常一样傍晚出门的时候打开微博刷,因为收到了转运公司给的邮件。告知,我购买的Yubikey硬件密钥无法转运。当时非常烦躁,于是想发个微博吐槽一下。结果出现了弹窗,告知我的微博异常。 我的微博没发过政治相关的任何东西,我想发的Yubikey那条微博中仅仅包含了在中国大陆真难啊字样。平时也不爱评论政治相关的内容。也不会和别人因为意见不同而吵架。所以我自己的微博被封,其实还是挺震惊的。我有很多社交平台的帐号,这还是头一回被封。 被封之后,我不能发微博,不能评论别人,不能转发别人的微博,不能给他人发私信,当然其他人甚至都看不到我。我也无法取关或者关注任何人。 解封 在被限制功能的弹窗里面,会有个“申请解除”的按钮,进入之后需要你填写一个“原因“。据网友反馈,这个你反馈几十次都没人会理你。虽然我还是反馈了,但是完全不抱希望。 我又在网上搜索了一些别的方法,看了一圈,比较靠谱的还是使用互联网信息服务投诉平台。我立即提交了我的情况,并且说明我在微博平台有很高的信用分,是微博的VIP7用户,是微博的十年用户,也是微博的认证用户。 过了大概一周左右的时间,我收到了微博给我的一条短信。 我大概看了一下,需要我上传我的短信截图、入网证明、手持身份证、保证书等等材料,等待审核。一开始为了省事,于是就没有上传保证书,我写的理由是“可能账号被盗”。微博给我的反馈是检测到帐号一切正常,没有被盗的情况。意思是微博认为违规行为一定是我本人所为。 我去打印了保证书,又一次提交了。微博反馈我的手持身份证照片不清晰,看不清证件信息。 我重新拍了手持身份证照片,再次提交。这一次的反馈是我在保证书中违规原因写的不正确。 但是问题是我真的不知道是因为哪条微博导致的违规。我就什么都没改重新提交了一次。 这一次微博反馈说,我在2022年10月8日发布了违规评论。(但是我至今都不知道我发了什么) OK,既然他们这样说,我就按照客服给我的反馈,我写违规原因“由于2022年10月8日 21:54:27发布了违规评论违反xxx规定”。还是被拒绝了,让我正确手写保证书。 我又去打印了一张空白的保证书,所有内容全部手写。又一次提交了,这一次微博反馈给我,让我正确填写违规原因。但是我真的不知道该怎么写了。 我实在无奈,又一次去互联网信息服务投诉平台反馈了。幸运的是,这一次微博给我的短信和上一次不一样。 这一次的提交入口也和之前不一样,之前是“异常帐号处理”,这一次是“刷单兼职”。我似乎是明白了,是因为我在10月8日晚上发布的言论涉嫌“兼职刷单“,虽然我不知道我发了什么,但是我就照着这个理由填写。又一次提交了。 很快收到了这个短信,大概意思是材料算是齐全了。让我继续等。都过去了两个半月了,我其实也一点都不着急了。 在2022年的倒数第二天,我又收到了微博给我的短信,我的帐号解封了。 总结 我一共消耗了两个多月的时间。其中提交了有差不多10次材料审核。整个过程还是非常地曲折,而且其中最恶心的是,微博没有人工客服。你根本没办法知道你是因为什么被封,但是他必须要你填写”违规原因“。这就等于是一个死循环。而且你每一次提交给你反馈的原因都是不一样的。意味着你可能需要尝试很多很多次。 这还是一个很奇妙的过程,不过解封之后,我可能不太会使用新浪微博了。