Tony 发布的文章

本文不谈商业服务,只讨论免费的服务。

如果不考虑商业用途,只是个人学习使用的话,那么 ipip.net 的地址库应该是最好用的,创始人是国内早期的站长。

2025-10-14T03:12:39.png

不过刚发现从2019年开始就停止更新了。。。

2025-10-14T03:15:22.png

企业版是正常更新的:

2025-10-14T03:19:52.png

但如果商业使用,ipip.net 就必须付费了。

还好有国外的这些。

2025-10-14T02:55:48.png

在中国大陆的实际表现(社区与实测汇总)

2025-10-14T02:56:15.png

平均城市级正确率在 60%左右,但省级准确率达 80–90%。

综合来说,推荐优先级如下:

GeoLite2 ≥ IP2Location DB9 ≥ DB-IP Lite

GeoLite2 下载地址

GeoLite2-City.mmdb

PS: 从 2019 年底开始,下载 GeoLite2-City.mmdb 必须先注册登录 MaxMind 帐号。这是 MaxMind 公司根据隐私法规(GDPR / CCPA)调整后实施的强制措施。

以前(2019 年前)GeoLite2 是完全公开的匿名下载;但自从隐私法规要求对 IP 数据分发进行追踪后,MaxMind 改为:“所有下载必须使用授权 License Key 进行身份验证。”

- 阅读剩余部分 -

过去两年,AI 产品的形态经历了一次悄无声息但深刻的转变。最初,人们把 ChatGPT 当成一个“万事通”的聊天窗口,各种外部 App 都在想办法“嵌入 Chat”。从最早的 ChatGPT 插件到后来的 Actions,每个 App 都希望被 ChatGPT 调用,希望在那一行对话背后,能让模型触发自己的服务。这种形态其实沿袭了传统互联网思维:AI 是一个超级入口,而所有第三方都是被调用的 API,它们被动等待用户的自然语言指令,然后在后台完成任务。这一时期的 Chat,更像一个智能中控台,App 只是工具箱里的螺丝刀。

但今年情况变了。OpenAI 推出了 Apps SDK,一切开始反转。过去是 App 嵌入 Chat,现在是 Chat 嵌入 App。这听起来只是语序的变化,实则是产品范式的质变。Apps SDK 让开发者可以构建自己的 MCP 服务端(Model Context Protocol Server),再配上前端 widget,小到一个查询组件,大到一个完整的操作界面,都能被模型直接加载到对话中。与此同时,App 自身也能反向调用 ChatGPT,让聊天成为自己应用内部的一部分。这意味着 ChatGPT 不再是一个独立入口,而开始“渗入”每一个 App 的界面、逻辑与体验之中。

- 阅读剩余部分 -

2025年了,马上2026年了,距离2017年微信小程序推出快10年了,应该选择什么框架开发微信小程序?还是用原生开发?

不得不说原生开发是最靠谱的方案之一,毕竟没有中间商,理论上坑是最少的。

如果你不嫌原生开发一个页面分4个文件麻烦,还是可以考虑的。而且绝大多数场景下,小程序只需要开发微信的就行了,其他家的小程序都不是主流,没有必要开发多端。

如果你跟我一样非常嫌弃原生的开发方式或者需要开发多端,那就需要考虑选择一款框架了。

MPX

MPX 是滴滴的研发团队出品,轻量,兼容原生,性能好,也支持跨平台,使用 vue 的语法,熟悉 vue 的还是比较推荐使用的。

缺点是 JetBrains 没有插件支持(原来有一个的,后来下架了)。

- 阅读剩余部分 -

macOS 升级到最新版本(26.0.1)后,基于 Datavyu + ffmpeg 的视频读取出错误的视频旋转方向,原因是 datavyu 调用 ffmpeg 没有正确使用旋转参数。鉴于 datavyu 上次发布还是在 2022 年,目测短期内不会修复这个问题。只能本地处理视频的 Rotation 为 0。

解决方案:

  1. 先用 exiftool 清除 Rotation(设置为0);
  2. 使用 ffpmeg 旋转视频。

1个G的视频在 M4 芯片上需要跑大概 5 分钟。

下面是处理脚本:

- 阅读剩余部分 -

WildCard 经历了停服风波后,一度传出可能会恢复的消息。

但由于监管合规问题,我觉得大概率要凉凉了。

果然,又经历了一场恢复停服风波后,现在应该尘埃落定,确定凉凉了,后面恢复的可能性应该很低了。

2025-10-09T09:21:49.png

在第一次停服的时候,我就开始寻找续费 ChatGPT 的方法。

然后我就找到了一个靠谱的方法,不过稍微有点麻烦,并且只适用于 Apple 用户。

准备工作

  1. 自己的美区 iCloud 的账号(无需绑定信用卡,没有可以买一个,租的不行哦);
  2. 支付宝;

步骤:

- 阅读剩余部分 -

本文适用于 macOS(包括 Intel 和 Apple Silicon/M 系列芯片),可在终端中直接操作,笔者使用的是 M4 MacBook Air,系统是最新的 macOS 26.0.1。

SDKMAN!(Software Development Kit Manager)是一个可以方便地安装、管理和切换不同版本的跨平台的命令行工具,类似于 Python 生态的 pyenv, Node.js 生态的 nvm。

笔者使用的是 macOS 操作系统,但 Windows/Linux 操作应该也是类似的。

安装 SDKMAN

打开 macOS 终端(Terminal),执行:

curl -s "https://get.sdkman.io" | bash

- 阅读剩余部分 -

macOS Tahoe 26.0 更新发布后,很多网友吐槽 UI,不过我在意的不是 UI,而是有没有大 bug(小 bug 能接受),哪些软件不兼容。

等了一周,发现好像没有什么大问题,Google 一下,Gemini 总结了一些问题,但对我来说不是什么大问题,中午就升级了一下。
然后我就遇到了第一个 bug,貌似网上没人提到过。

作为程序员,最常用的软件之一是终端(Terminal),当然第三方的比如 iTerm 我也在用,不过我的习惯是本地用 Terminal,远程用 iTerm。

结果我发现在搜索中搜不到终端(Terminal):

2025-10-09T09:44:29.png

中文、英文、全称都试了,还是搜不到。

搞得我怀疑 macOS 26 把自带的终端给移除了,直到我把软件列表拉到最底下:

- 阅读剩余部分 -

需求:把日志文件 /var/www/demo/app.log 按天切分。

  1. 创建 logrotate 配置文件:
vim /etc/logrotate.d/demo

demo 是你的配置文件名,可以随便起。

配置内容:

/var/www/demo/app.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    copytruncate
}
  1. 手动测试
logrotate -f /etc/logrotate.d/demo

如果出现以下报错:

- 阅读剩余部分 -

Nano Banana 是 Google 在其 Gemini 产品中引入的最新图像编辑与生成模型,官方名称为 Gemini 2.5 Flash Image。它不仅具备强大的图像生成能力,还能通过自然语言精准编辑已有图像,在 Image 编辑模型排行榜 LMArena 上排名首位,广受好评。

前几天在社区就火起来一个生成桌面角色模型的提示词:

将这个角色转换为一个角色模型。在它后面放置一个印有该角色图像的盒子,并且让一台电脑屏幕上显示Blender建模过程。在盒子前面添加一个圆形塑料底座,让角色模型站在上面。如果可能的话,请将场景设置在室内。

我亲自测试了一下,效果确实不错:

- 阅读剩余部分 -

因为墙的缘故,github 仓库经常推送拉取慢或者断连,我一般的做法是开启终端的代理:

export https_proxy=http://127.0.0.1:7897 http_proxy=http://127.0.0.1:7897 all_proxy=socks5://127.0.0.1:7897

这种做法会让当前窗口所有的流量走代理,有额外的心理负担。

今天在社区看到一个更 nice 的做法,就是在 .ssh/config/ 里设置代理命令:

Host github.com
  User git
  HostName github.com
  ProxyCommand ncat --proxy-type socks5 --proxy 127.0.0.1:7890 %h %p

这样就不需要每次设置了。