Java 程序员视角的 Kotlin 语法区别

Kotlin 和 Java 作为 JVM 生态中两大主流编程语言,在语法特性、开发效率和适用场景上存在显著差异。Kotlin 凭借现代化设计解决了 Java 的许多痛点,而 Java 凭借成熟生态和广泛支持仍是企业级开发的主力。最近有一些项目想要使用 Kotlin 实现,所以本文正好来总结一下从 Java 程序员转到 Kotlin 程序员需要注意的一些语言细节。 Java 转换到 Kotlin Kotlin 采用极简语法设计,相比 Java 减少了大量样板代码量 无需分号结束语句 支持类型推断,智能转换 equals, hashCod Read more ...

2025-03-01 java , kotlin , programming-language , jvm , dart

AI 时代我们是否还需要个人知识库

这两天不管是在我的视频评论下方,还是在 X(Twitter)上,都有人提出了一个问题「AI 时代还是否需要个人知识库」,我觉得在回答这个问题之前,我们首先要回答两个问题,什么是「知识」?,而什么又是「个人知识库」? 知识 首先我们来聊一聊,「知识」的概念。 在牛津高阶字典中对知识的解释是: the information, understanding and skills that you gain through education or experience 我们从教育和经验中获得的信息,理解和技能。 《汉典》中对知识的解释 Read more ...


macOS 上利用 Hammerspoon 自动切换输入法

很久之前我介绍过一款 macOS 上的自动化应用 Hammerspoon,在那篇文章中我就已经简要的介绍过如何利用 Hammerspoon 实现超级强大的窗口管理,实现切换 WiFi 自动提醒,也简单的介绍过如何自动切换输入法,但是没有展开,今天正好趁着我重写 Hammerspoon 的配置文件,再展开介绍一下如何利用 Hammerspoon 自动切换 Rime 输入法。 查找 RIME 输入法的 Source ID 在编写切换脚本前,首先需要获取 RIME 输入法的源 ID。可以通过以下方法获取,在 Hammerspoon 的控制台中运行: hs Read more ...


OBS 配置多路推流 实现多平台同时直播

[[Open Broadcaster Software(OBS)]] 是一个非常强大的开源的,直播推流工具。但是默认情况下 OBS 只能配置推送一个直播流。但是现在支持直播的平台越来越多,如果直接将直播流推送给多个平台,那么可以通过本文介绍的方法,借助多平台推流插件来实现。 OBS 与 Multi-RTMP 插件 Open Broadcaster Software (OBS) 是一个广泛使用的开源软件,用于视频录制和直播推流。然而,默认的 OBS 设置仅支持推送单一直播流到一个平台。 Multi-RTMP 插件 Multi-RTMP 是一个第三方 Read more ...


将 Obsidian 配置成私人 AI 知识库

前两天介绍过腾讯推出的个人知识库工具 IMA.Copilot,但是熟悉我的人肯定知道我这几年了一直都是在使用 Obsidian 作为我个人的知识库的,在本地完全使用 Markdown 作为文档的存储格式,不依赖任何的外部工具,以及联网工具,只使用 Syncthing 作为同步。 为什么我不使用 IMA 作为主力知识库 看过我之前文章的人应该知道我个人的选择软件工具的一个原则 跨平台 开源优先 本地优先 在了解到 Stallman 对[[自由软件]]的定义之后,更进一步加强了我对于开源软件的选择,而在重度理解 Self-Hosted Read more ...


腾讯推出个人知识库产品 ima.copilot

前两天看到腾讯推出一个个人知识库产品 ima,融合了 DeepSeek,可以直接搜索知识库中的内容,还可以上传文档回答,所以今天就来体验一下这个新产品 ima。 ima 是什么 ima 官方给出的定位是「会思考的知识库」,首先它是一个知识库,并且看官方还是一个跨平台,多端支持的知识库,包括了 macOS,Windows,iOS,Android,以及小程序。会思考则是体现在它接入了 AI,腾讯自己的混元大语言模型,和 DeepSeek R1 模型。 YouTube Bilibili 功能 Read more ...

2025-02-20 ima , copilot , tencent , obsidian

asdf 升级 0.16.0 问题记录

很早之前我就已经开始使用 asdf 作为我本地的编程语言多版本管理工具,这个工具非常实用,但是最近 asdf 升级到了 0.16.0 版本,这是一个不兼容的版本,作者将整个项目中 asdf 从 Bash 脚本重写为 Go 语言,这带来了一系列的问题,这里记录一下我在升级过程中遇到的问题以及解决方案。 这个版本带来了许多重要变化,本文将重点详细介绍 asdf 0.16.0 的主要变更,以及升级过程中可能遇到的问题和解决方案。 asdf 0.16.0 的主要变化 Go 语言重写 asdf 0.16.0 最显著的变化是将整个项目从 Bash 脚本重写为 Read more ...

2025-02-11 asdf , ruby , python , golang , nodejs , pyenv , rbenv

使用 uv 作为 Python 包和项目管理工具

之前在使用一个 FastAPI 的模板项目的时候,很偶然获知了 uv 这样一个 Python 的包管理工具,简单的查询了一下之后发现这一工具是使用 Rust 编写,已经慢慢获得了社区的认可,被越来越多人推荐了,所以今天我也好好地学习一下 uv。 uv 是什么 uv 是 astral-sh 社区利用 Rust 编写的 Python 包和项目管理工具,可以作为  pip、pip-tools、pipx、poetry、pyenv、virtualenv  等工具的代替。在没有 uv 之前,你可能需要使用 pyenv 来管理 Python 的不同版本,使用 ve Read more ...


2025 苹果开发者帐号注册记录

最近开发了一款 Aki 日语词典想要上架 iOS,但是发现 Apple 开发者帐号注册却是比较麻烦,主要是我平时使用的 Apple ID 不在国区,手机一直使用的是美区帐号,还有一个日区的帐号用来下载日区的应用,所以导致 Apple ID 和绑定的手机号都非常混乱,我本来想注册美区的帐号,因为本来就是手机登录的帐号,但是过不去认证,所以想要去注册国区的帐号,可是我的 macOS 和手机没有一个有国区帐号的登录,利用网页版本注册的时候也发生了不明错误(We are unable to process your request. An unknown err Read more ...


La Suite Docs:法国政府主导的开源协作文档平台

最近浏览网页的时候发现有人推荐了一款法国政府开源的实时文档协作工具 La Suite Docs,这是法国政府脱离 Google Docs 而主导开发的开源协作平台。Google Docs 虽然好用,但数据完全不在自己手里;Notion 功能强大,但免费版限制太多,而且同样存在数据主权的问题;Outline 作为开源方案确实不错,可惜编辑器功能相对基础,有时候觉得不够顺手。就在我纠结要不要继续忍受这些小毛病的时候,偶然看到了 La Suite Docs 这个项目,一个由法国和德国政府联合推动的开源协作文档平台,而且已经在 GitHub 上获得了超过 150 Read more ...


最近文章

  • Clawalytics:给你的 OpenClaw 花费装上一个仪表盘 自从安装使用 OpenClaw 之后,我一直没有找到一个好办法直接在 OpenClaw 里追踪 Token 的消耗情况。虽然我日常主要用的是月订阅套餐,但偶尔为了测试一些新模型或者跑特定任务,还是会走 API 调用。这部分花费是按量计费的,用多少扣多少,如果不注意很容易超额。之前也试过在 Anthropic 控制台手动查 Usage,但那个粒度太粗了,根本看不出来钱到底花在了哪些项目、哪些模型上。直到最近发现了 [[Clawalytics]] 这个项目,通过它的可视化仪表盘查看 Token 消耗的详细数据,才终于有了一种”心里有底”的感觉。
  • 我购买了 Sony WH-1000XM6 我的第一代 [[Sony WH-1000XM]] 终于在陪伴了我将近七年之后光荣退役了——准确地说,是左耳彻底不出声了。耳罩虽然还算完整,充电也正常,就是左边悄无声息地沉默了。单边失声的降噪耳机拿来当装饰品实在是太可惜,就这样,我的 XM1 结束了它漫长的使命。
  • 花了一个多小时认真听李录在哥大的演讲,对价值投资新的理解 昨天花了一个多小时,认真把李录在 2006 年哥伦比亚大学商学院的演讲从头听到尾。说实话,最开始点开这个视频的时候,我以为只是一节普通的投资课,听完之后发现远不止于此——李录几乎是把自己二十多年的思考框架,通过两个亲身经历的真实案例,完整地摊开在你面前。那种感觉不像是在听一堂课,更像是在听一个老朋友坦诚地聊他是怎么看待这个世界、怎么做决策的。
  • screen.garden:让 Obsidian 拥有 Google Docs 般的实时协作体验 之前我介绍过 Fast Note Sync,这是一款开源的 Obsidian 笔记同步方案,可以实现多设备之间的笔记同步和实时协作。Fast Note Sync 的优势在于完全开源、数据自主可控,但它有一个门槛——你需要自己搭建和维护服务器。对于有技术背景并且享受折腾的朋友来说这不是问题,但如果你不想操心服务器的事情,或者团队里有非技术背景的成员,那么一个开箱即用的托管服务可能是更好的选择。这就是我今天要介绍的 screen.garden,一个为 Obsidian 设计的付费实时协作服务。
  • Clawdbot 深度调研:打造完全属于自己的全平台 AI 助手 最近在折腾各种 AI 工具的时候,发现了一个有意思的现象:市面上大部分 AI 助手要么被牢牢绑定在某个特定平台上(比如只能在 Discord 里用的机器人),要么就是完全依赖某家公司的 SaaS 服务,你的对话数据都在别人的服务器上。作为一个对隐私比较在意的人,我一直在想,能不能有一个完全由自己掌控、可以在所有常用聊天软件里使用的 AI 助手呢?直到我在 GitHub 上发现了 [[Clawdbot]] 这个项目,才发现原来真的有人在认真解决这个问题。