阅读视图

从 DeepSeek 到 Claude Code:AI 发展这一年

今天看一篇文章时提到了DeepSeek,突然意识到一件事:DeepSeekR1的发布,其实是2025年1月的事情。距离现在,满打满算也就刚过去一年。不知道大家是什么感觉?给我的体感是,那仿佛是很久以前的历史了。这一年里发生的事情密度太...
  •  

WP 访客信息插件 v16.03.55

我把插件改了个名字,不再叫“WP-UserAgent”了,现在这个东西经过多次迭代,加了很多乱七八糟的东西,显示的重点也不再是评论的ua信息了。

前几天看到关于ip2region的介绍,于是又尝试集成了一次,集成之后发现效果也没有好更多,原来的v6归属地从青岛跑到北京了:

免费版的数据和商业版数据差距依然很大,其实包括纯真之类的也是一样套路,如果数据一样谁还会买商业版呢。尽管如此,我还是给加上了,同时更新了下纯真的数据库。

目前效果就是上面的样子,感兴趣的可以尝试下。

插件代码:

https://cnb.cool/oba.by/wp-useragent

最新版(插件包含多个ip数据库,尽量使用ftp或者scp上传,wp后台上传可能失败):

https://cnb.cool/oba.by/wp-useragent/-/releases/tag/16.03.55

The post WP 访客信息插件 v16.03.55 appeared first on obaby 𝐢‍𝐧⃝ void.

  •  

两种困境

上周和前同事一起打球,他跟我讲:他们部门解散了,他自己也已经找了一个月的工作。后来他说不想干软件这行了,干了十多年,干够了,不过转头一想,又不知道能干啥,以前也有过一些想法,但仅仅停留在“想”的层面,没有行动。然后就发现,我俩是两个极...
  •  

从“苦读教程”到“听 AI 播客”

我之前写过文章分享怎么学编程。熟悉我的朋友都知道,我是科班出身,写了十几年代码。在以前开始入门的时候,我的学习路径非常“传统”:找视频教程、买书、跟着视频一行行敲代码。那是一个“苦读”的过程,获取知识的门槛很高,需要耐心和热爱去筛选和...
  •  

路虽远,行则将至:写在蒋羿抵达山海关之际

上周三晚上打开抖音,刷到了我关注已久的博主——蒋羿。视频里,他站在山海关,宣告自己徒步万里长城的挑战,终于画上了句号。看着他在终点大喊、拍照的那一刻,隔着屏幕,都替这个陌生的四川小伙感到高兴。从嘉峪关到山海关蒋羿今年30岁,是个普通的...
  •  

语音输入法的爆发前夜

从去年开始,语音输入法迎来了井喷。我看到了很多语音输入法,有手机上的,有PC上的。PC上我注意到一个输入法,大家估计也都看到过,叫Typeless。这个输入法做得很极端,它是一个国外小团队做的。它的输入法打开非常理想主义,或者说非常绝...
  •  

用了一周豆包,我还是换回了微信输入法

用了几天的豆包输入法,我还是决定,换回我的微信输入法。上周我写了一篇文章《微信输入法,越来越香了》,当时是因为觉得它的语音输入进步巨大,就很认真的夸了一下,后来文章被推荐,所以吸引了很多人来观摩和讨论。但收到的一大堆留言里,却有大量留...
  •  

死磕两晚:一篇硬核教程背后的“体力活”

昨天的文章很有意思。我写了那篇接近四千字的《国内也能用!ClaudeCode完整上手指南》,发布之后,阅读量其实并不高,到现在还不到两千。但转发量涨得特别快,已经快破200了。这应该是我近期转发率最高的一篇文章。这也印证了一个现象:大...
  •  

聊聊 Claude Code:它不是工具,它是实习生

如果是我的老读者,应该发现我的编程工具一直在变。从最早推荐Trae到Gemini,到后来的AIStudio,就像神农尝百草一样,我试了很多AI编程工具。但最近一个月,我几乎只用一个工具:ClaudeCode。经常有朋友问我:“咕咚,C...
  •  

国内也能用!Claude Code 完整上手指南

如果你关注AI编程,应该听说过ClaudeCode——Anthropic官方推出的AI编程助手。它很强,但国内用户想用有三个坎:问题Claude官方智谱方案价格$20/月(约145元)20元/月起支付需要国际信用卡支付宝、微信网络需要...
  •  

体检、投篮、搞 PC 版同步 - 周六琐记

周末总是让人很期待。今天是周六,其实我觉得一周里最开心的一天,应该就是周六了。因为周六休息,玩一天,心里想着”哎,后面还有一天呢”。周日虽然也能休息,但一想到”明天就要上班了”,那种痛苦感就会隐隐约约地冒出来。今天早晨起得很早。因为约...
  •  

开源免费:我的公众号封面图生成器

设计微信公众号的封面图,用它就对了:GudongCover。1.缘起我昨天写了一篇文章,介绍自己如何用AI生成封面图。因为我公众号的封面图都是用AI生成的,不过是让AI生成HTML代码。我自己有一套提示词,所以我的封面图其实都是一个风...
  •  

到账 24.87 元

大家好,我是咕咚,今天分享一下最近一次的公众号「巨额收益」💰💰💰昨天打开公众号助手后,看了一眼收益:24.87元对我来说,这确实算是妥妥的”巨款”了1.流量主的日常去年我开通了公众号的流量主功能。简单说,就是在文章底部加个广告位,有人...
  •  

devlog:让 Claude Code 帮你记录每一天的工作

VibeCoding时代的新问题不知道你有没有这种感觉:自从用上ClaudeCode,开发效率起飞:早上和AI讨论架构,10分钟搞定方案中午AI帮我修Bug,秒级定位问题下午和AI结对编程,一天写出过去三天的代码但是…周五写周报时,脑...
  •  

安装

-VibeCoding时代的新问题不知道你有没有这种感觉:自从用上ClaudeCode,开发效率起飞:早上和AI讨论架构,10分钟搞定方案中午AI帮我修Bug,秒级定位问题下午和AI结对编程,一天写出过去三天的代码但是…周五写周报时,...
  •  

用了就回不去

大家可能知道,我是一名Android软件开发工程师。还记得刚开始做安卓开发的那些年,我们的“吃饭家伙”并不是现在的AndroidStudio,而是一直在用一个叫Eclipse的工具。那个工具我用了好多年,当时觉得它简直完美:插件丰富,...
  •  

来自自恋狂的瞎折腾

作为一个超级丰满的女子,依然阻挡不住自己的自恋,要把照片放到每一个地方。啊,你问为什么?还不是因为自恋嘛!

 


Moe-Counter Baby版

这个东西其实用了很久了,直到前段时间重建之后才发现这个东西竟然也更新了。并且增加了很多样式,为了拥抱这些样式直接重新构建了一版。原来的版本依赖有点问题,于是顺手给改了以下,提交了一份新的代码:https://gitee.com/obaby/moe-counter

主要问题在于sqllite依赖的问题,修改package.json 改成下面的版本就行了:

"dependencies": {
    "better-sqlite3": "^12.6.2",
    "compression": "^1.8.0",
    "dotenv": "^16.5.0",
    "express": "^4.21.2",
    "image-size": "^0.8.3",
    "mime-types": "^2.1.35",
    "mongoose": "^8.15.1",
    "pug": "^3.0.3",
    "zod": "^3.25.61"
  },

重新编译:

# 1. 配置镜像源
pnpm config set registry https://registry.npmmirror.com
export npm_config_disturl=https://npmmirror.com/dist
export npm_config_node_gyp_mirror=https://npmmirror.com/dist

# 2. 删除旧的依赖并重新安装(使用新版本)
rm -rf node_modules pnpm-lock.yaml

# 3. 重新安装依赖(会自动安装 better-sqlite3@12.6.2)
pnpm install

# 4. 如果安装后还是找不到 bindings,手动编译
cd node_modules/.pnpm/better-sqlite3@*/node_modules/better-sqlite3
npm run build-release
cd ~/Moe-Counter

 

顺手把里面应用的jsdeliver的链接也给换了,毕竟这个东西在国内访问问题还是蛮多的。

示例地址:https://m.h4ck.org.cn

自恋版计数器:

当然啦,为了做这些图也着实废了一番功夫:

最开始是上面的,生成一堆,但是分辨率不高。还有个问题那就是ai不识数,总是会少数字。

后来尝试单个生成,但是ai的数字分辨能力依然跟智障一样。生成了很多乱七八糟的数字:

至于怎么安装主题,那就更简单了,把图片按照0-9整成gif,弄个文件件放到theme下面,重启服务就ok啦。


UserAgent 系统版本号

浏览器的ua在某个时间点之后,操作系统的版本号就固定在了某个特定的值:

windows是Windows NT 10.0

mac是Intel Mac OS X 10_15_7

其实,这个现在已经变成了一个通用的作法,参考:https://bugs.webkit.org/show_bug.cgi?id=216593

这个东西以后大概率也不会更新了,为了让ua显示准确数值,之前修复了win11的识别问题,昨天有点时间,又处理了下osx的识别。但是在mac下目前safari无法获取系统版本信息,暂时没什么解决方案。

主要方法也简单:

1.在提交表单的时候判断操作系统,针对win 和mac 传递一个隐藏字段

////////////////////////////////////////////////////////////////////////////////////////////////
// macOS 主版本号与版本名称映射(15 Sequoia 2024-09-16,26 Tahoe 2025-09-15)
// By:obaby
// 2026-02-04
// https://oba.by
// https://zhongxiaojie.cn
////////////////////////////////////////////////////////////////////////////////////////////////

var macVersionNames = {
    10: "macOS 10",
    11: "Big Sur",
    12: "Monterey",
    13: "Ventura",
    14: "Sonoma",
    15: "Sequoia",
    26: "Tahoe"
};

function setOsVersionInput(elementId, value) {
    var el = document.getElementById(elementId);
    if (el !== null) el.value = value;
}

try {
    navigator.userAgentData.getHighEntropyValues(["platformVersion"])
    .then(ua => {
        var platform = navigator.userAgentData.platform;

        if (platform === "Windows") {
            var major = parseInt(ua.platformVersion.split('.')[0], 10);
            if (major >= 13) {
                setOsVersionInput("comment_windows_version", "win11");
                console.log("Windows 11 or later");
            } else if (major > 0) {
                setOsVersionInput("comment_windows_version", "win10");
                console.log("Windows 10");
            } else {
                console.log("Before Windows 10");
            }
        } else if (platform === "macOS" || platform === "Mac OS") {
            var parts = ua.platformVersion.split('.');
            var major = parseInt(parts[0], 10);
            var minor = parseInt(parts[1] || '0', 10);
            var versionLabel = major >= 11 ? (macVersionNames[major] || "macOS " + major) : "macOS 10." + minor;
            // setOsVersionInput("comment_mac_version", versionLabel);
            setOsVersionInput("comment_windows_version", "Mac OS X " + major + "_" + minor);
            console.log("Value: " + "Mac OS X " + major + "_" + minor);
            console.log("macOS:", versionLabel, "(" + ua.platformVersion + ")");
            // 15 及之后单独标记,便于统计/兼容判断
            if (major >= 15) {
                setOsVersionInput("comment_mac_15plus", "1");
                console.log("macOS 15+ (Sequoia or later):", versionLabel, "(" + ua.platformVersion + ")");
            } else {
                console.log("macOS:", versionLabel, "(" + ua.platformVersion + ")");
            }
        } else {
            console.log("Not Windows or macOS:", platform);
        }
    });
} catch (e) {
    console.log("OS version detection: Not Supported");
}

2.在wp接受到评论的时候,提前针对ua进行处理,针对传递的特殊的ua进行替换

// 钩子函数,在评论提交前调用
add_filter('pre_comment_user_agent', 'block_specific_user_agent');
 
function block_specific_user_agent($user_agent) {
    // 这里设置你想要阻止的用户代理字符串
    // $blocked_ua = 'BadBot/1.0';
 
    // // 如果用户代理匹配,返回一个空字符串来阻止评论
    // if (strpos($user_agent, $blocked_ua) !== false) {
    //     return '';
    // }
    if (isset($_POST['comment_windows_version']) && $user_agent) {
        $raw = trim($_POST['comment_windows_version']);
        // 白名单校验,防止 XSS/脏数据:只允许 'win11' 或 "Mac OS X 主_次" 格式
        if ($raw === 'win11') {
            $user_agent = str_replace('Windows NT 10.0', 'Windows NT 11.0', $user_agent);
        } elseif (preg_match('/^Mac OS X\s+(\d+)(?:[_\.](\d+))?$/i', $raw, $m) && strlen($raw) <= 32) {
            $major = (int)$m[1];
            if ($major > 10) {
                $allowed = true;
                $user_agent = str_replace('Intel Mac OS X 10_15_7', $raw, $user_agent);
            }
        }
    }

    // 否则,返回原始的用户代理字符串
    return $user_agent;
}

显示归属地的插件无需任何修改,会自动显示正确的版本。

The post 来自自恋狂的瞎折腾 appeared first on obaby 𝐢‍𝐧⃝ void.

  •  

👗V👗

感觉《2077》在电脑硬盘上已经躺了很长的时间,前几天加载存档的时候发现上个存档竟然还停留在22年,在记忆里似乎并没有那么久没玩过。再次加载完游戏,一切那么陌生又熟悉。似乎V也已经等了我很久了。

这20年发售的游戏,到现在已经6年了。这6年时间里,自己仅仅玩了36个小时,整体进度才不到20%。之前的剧情都已经淡忘了,记不清楚之前经历过什么,连现在的任务都不清楚。只是隐约记得,V出现在这个叫做夜之城的地方,脑子里的芯片里还住着另外一个人-银手。剩下的都记不清楚了,只是直到V要不惜一切代价的活下去,用尽所有的方式。

我的如同金鱼般的的记忆力,无法支撑我写长的游戏记录文章。然而,不管是看电影还是玩游戏,有时候难免会带入到主角的视角,或许从某个程度上来说,rpg游戏的走向也是玩家的游戏走向,甚至不知不觉中就影响了游戏的发展进程。当然有的时候也会刻意选择一些与自己想法完全相反的选项,而这时,多数的目的是为了达成另外一个结局。

6年的时间,我没能让游戏有任何一个结局。年轻的时候,拿到一款游戏总是能快速的达成一个结局,哪怕不是最好的,cod系列的游戏,普通难度的通关时间一般都在80个小时左右,作为一个手残党,能两周左右通关也确实需要付出点努力。当时,玩游戏的时候,有个大学同学总是说,玩游戏当然是选择老兵难度-困难。最高难度,三枪毙命对我来说着实有些扛不住。几年前还能跟朋友一起玩l4d最高难度,通宵的玩,看着那一波波的僵尸袭来,尤其是witcher的笑声,不管听到多少次总是感觉那个快速袭来的僵尸就在身后。如果awp不能远距离解决掉,最后大概率就是别开膛破肚。后来,偶尔还是连线上的服务器,只是再也找不回原来的感觉了。当然,我更喜欢的是里面换的洛丽塔的小裙子,打僵尸的时候都可可爱爱萌萌哒。

现在把她重新拾起来,没有结束,总是有点始乱终弃的感觉。虽然完成了换装游戏,服饰确多数没有达到自己的预期。经过几天的折腾,总算是有能看过眼的了。

这种换装方式,其实依然是属于外挂的范畴了,虽然是叫做mod。内心总是有种感觉,哪怕是游戏里也要打扮的美美哒,如果不美,那就酷酷的。

我在游戏里的选择,决定了V的未来,然而,现实中自己的人生也得自己去选择。多数时候其实跟游戏里区别并不大,在没有攻略的情况下,对于每个选择,并不知道这个选择是对是错。

最近乱七八糟的事情视在太多,甚至连闺蜜圈迭代目前都暂停了。没有时间去维护或者开发更多的功能,公司的屎山代码,每天都在爆出各种问题和bug,处理起来焦头烂额。年关将近,乱七八糟的事情也实在是多。想清闲也是片刻闲暇都没有。

昨天下班的时候,宝子的小姨说,宝子姥姥手疼,都没法正常生活了。下午的时候,宝子的小姨跟她一起去医院检查了以下,抽了积液,注射了药物。晚上带着宝子,从小姨家接姥姥回家。宝子上课外托管回来的时候已经有些晚了,路上提到宝子的晚饭,从餐厅买的水饺。

让姥姥尝试一个,她一口回绝:『我不吃,外面的东西要加各种调料,大油什么的,我不放心不吃!』

『你就试一个』我继续劝。

『不吃,不能顾此失彼,我好不容易降血脂,又吃大油,不吃。本来明天要买里脊的,炸肉,我现在买不了了,等周末吧』

我答复:『没事,不用你管了,我明天去买,全部我自己炸行了,不用你管了』

『本来明天要包水饺的,也不包了吧,现在这个状况,三天不能碰水。等过年能包就行了』

『咱们能不包了吗?直接买现成的?』我问。

『不行,买的不放心,我还是得自己包』她继续坚持。

到门口宝子跟姥姥下车之后,我跟对象去停车。

『现在这个无解了,犟种无药可救』我说。

『现在也没必要可怜她,都是他自己找的』对象答到。

『要不这样吧,咱们买现成的,她自己吃自己包,吃几个包几个。我是无所谓的,我觉得买的速冻的也挺好吃的』

『也只好如此了』

相对于V的宏大叙事,我的生活就在这中鸡毛蒜皮的小事中慢慢蹉跎。你不让她干,她忍不住,自己去干了,又开始埋怨我们不关心她,不带她去看医生。宝子姥姥总是说什么自己小姐身子,丫鬟命。现在没人让她当丫鬟,很多事情也完全可以不用干。只是,可能是出于父母的本能去做了一些事情。

只是现在,我不想在过多干预这种事情了,都是自己的选择。付出自然是令人感动,但是那种自残式的付出,大可不必。自己身体收到残害,还道德绑架自己的子女。

小的时候,总是有各种狂妄的梦想。现在,这些梦想却都成空了。平平无奇,作为一个普通人,在这个泥淖里挣扎,尽量不让沼泽吞没自己。

宝子报了寒假的托管班,第一天就交到了新的朋友。应该在一起也玩的蛮开心的,我经常跟宝子说,咱俩换换吧。我去替你上学,你去上班。真的挺羡慕现在宝子的生活的。有时候虽然慢吞吞的,我也会叨叨。但是,跟自己小的时候完全不一样。

有时候也在想,自己的人生什么时候变得这么无趣了。单调枯燥,一成不变有时候也蛮好的,唯一和游戏里一样的。

那就是充满了利益利用和各种欺骗。只是,自己不用跟V一样真的去出生入死。

而至于游戏的终点,所有人都一样,那就是死亡。

这么一想反而也就释然了,这瞬间的得失又有什么关系呢。未来的路,说长也长,说短也短。

人生,能有几个6年。

The post 👗V👗 appeared first on obaby 𝐢‍𝐧⃝ void.

  •  

👠高跟鞋👠

经常看到acves玩各种游戏的记录,虽然很多游戏自己没玩过,看这种游戏记录的时候,敬业多多少少的能直到故事的梗概和大致的时间线。玩游戏这件事情,其实也需要天赋,这个东西,自己确并没有多少。作为一个手残党,多数游戏纯粹就是靠时长耗过去,一次次的失败,一次次读档,最终也就过去了。

不过有的时候,单纯靠读档也解决不了问题,还是得靠搜攻略,或者再退一步那就是上修改器了,《黑神话悟空》通关就是纯粹靠修改器,魂类游戏也着实不是自己的强项(咱就是说,你有擅长的游戏吗?!)。

多年以前买的《2077》只是偶尔进去转悠转悠,硬生生的给完成了换装游戏,有时间就进去跑各种服装店。然而,游戏里面的服装说实话一言难尽,真的挺丑的。那么多商店,竟然连双好看的鞋子都没有。

打开gog看到除了新的dlc,购买之后发现竟然有个redmod支持的功能。过段现在之后,去找各种mod。从3dm下载各种mod 以及管理工具导入之后,却发现貌似没什么效果,启动之后mod列表是空的。后来有试了各种其他的管理工具,依然是同样的问题,但是工具却能显示出来。尝试漩涡,以及mo2之后,忽然发现莫斯mo2是可以的,安装的mod通过指令添加物品之后确实能够看到了。

不过mo2的管理感觉也有问题,后来不知道哪里出问题之后连游戏都进不去了。又花了一个小时重新修复游戏,这80g的安装包,下载也属实是花了不少的时间。修复之后换回漩涡,冲洗安装编译mod,这次看到了编译窗口,貌似感觉是正常了。然而,换了鞋子之后模型出问题了:

小裙子挺好看的,但是有点穿模,没法从前面看。应该用的身体的模型也得换掉。

mod这个东西,的确提供了很多个性化定制的能力,也引入了一些问题。因为开了摸个身体模型,导致游戏直接卡在了加载页面。为了解决这个问题,来回删除重装了无数次的mod包括手工删除。

有时候对于那种喜欢的鞋子,真的挺没抵抗力的。哪怕看别人穿,感觉也是赏心悦目。

有时候甚至让人上瘾,哪怕买了之后从来都没穿过,就那么扔着,甚至很多都从来没机会穿过。

拍写真的时候,化妆师小姐姐说,鞋子好好看啊,不过我穿不了这么高的。

The post 👠高跟鞋👠 appeared first on obaby 𝐢‍𝐧⃝ void.

  •