ChatGPT 打字机显示效果的背后:Server-sent Events 介绍

在使用 [[ChatGPT]] 的时候总是对它一个字一个字的出结果感到焦急,虽然也知道 AI 生成内容的时候确实是一个字一个字计算出来的。OpenAI 使用这样的一个打字机效果也确实符合这个使用场景。但是当我想要自己去实现这样的效果的时候就突然遇到了我的知识盲区,观察 Chrome DevTools,我原本还以为是用 Web Socket 实现的,但是观察了一番发现并没有 Web Socket 的连接。再观察 https://chat.openai.com/backend-api/conversation 接口,发现 content-type: text Read more ...


Google Guice 轻量依赖注入使用

Guice 是 Google 推出的一个轻量级的依赖注入框架(dependency injection),可以帮助我们管理 Java 应用程序中的对象依赖关系。如果我们使用 Spring Framework 那可以直接使用 Spring 提供的 DI,但如果是使用 [[Javalin]] 或者自己的小型项目,但是也想使用灵活的 DI,但又不想要引用庞大的 Spring,就可以考虑 Guice。 Guice 根据’Apache 许可证版本 2’(Apache License version 2)发布,允许任何人免费使用、修改和重新发布,用于商业和非商业用 Read more ...


在 Hestia CP 的 VPS 上安装 ionCube Loader

Hestia Control Panel ([[HestiaCP]]) 是一个免费开源的 Web 服务器控制面板,它提供了一个易于使用的 Web 界面来管理 Web 服务器和网站。Hestia CP 支持多种 Linux 发行版,包括 Ubuntu、Debian、CentOS 等,可以安装和配置 Apache 或 Nginx、PHP、MySQL 等常见的 Web 服务器和数据库软件。Hestia CP 还提供了一些额外的功能,如邮件服务器、防火墙、文件备份和恢复等。 ionCube Loader 是一个 PHP 扩展程序,用于解密和执行使用 ionCu Read more ...

2023-04-20 hestiacp , php , hestia , linux , vps

Chatwoot Nignx 代理丢失 Header 信息

之前的一篇文章介绍过如何使用 Docker 自建 [[Chatwoot]],但是最近调用 API 的时候总是发现问题。在调用最普通的接口的时候,按照要求在 Header 中传了 api_access_token,但是接口返回 401 或者是 {"errors":["You need to sign in or sign up before continuing."]} 简单的查询了一下之后,发现问题出现在 Nginx 上,Nginx 默认情况下不允许带下划线的 Header,所以当请求到 Nginx,然后转发到后台 Chatwoot 的时候这个 a Read more ...


Proxmox VE 安装 Ubuntu Server 22.04

之前的时候,有一台小主机,在上面安装了 [[Proxmox VE]],然后在其中安装了 [[iKuai]] 和 [[OpenWrt]] 作为软路由使用。现在已经不需要再将其作为软路由代理使用,所以今天就拿出来整理一下,正好放在家里面作为一个 Linux 小服务器,跑一些小一点的程序,然后顺便挂载一个硬盘作为一个小型的媒体服务器。 因为之前在 Proxmox VE 上安装过很多次的系统,这里就不展开,把一些重要的配置和截图放在下面。 准备 ISO 在创建虚拟机之前,需要到 Ubuntu Server 官网 下载最新的 ISO 镜像,然后把镜像上传到 Read more ...


CoinPayments 加密货币支付网关

CoinPayments 是全球第一个加密货币支付网关,成立于 2013 年 8 月加拿大,CEO 是 Alex Alexandrov。商家可以借助 CoinPayments 来接受加密货币的支付订单。CoinPayments 接受非常多的加密货币,不仅支持流行的比特币(BTC),以太坊(ETH),还支持非常多的小众代币。CoinPayments 还提供了大量的购物车插件,以及定制的支付解决方案和商家工具。 CoinPayments 收取 0.5% 的固定佣金,相较于 Stripe 的 2~3%,以及信用卡更高的佣金,CoinPayments 非常有优 Read more ...


Sieve 一个过滤邮件的语言

之前在搭建 Mailcow 邮件服务器的时候简单的了解到了 Sieve 这个可以用来编程过滤邮件的语言。刚好现在要充分利用起 Mailcow,所以系统地学习一下 Sieve 这个邮件过滤编程语言。 什么是 Sieve Sieve 是由 RFC 5528 定义的一门专门用来处理电子邮件的语言。它被设计不仅可以用于邮件客户端的邮件过滤,也可以在邮件服务器端进行过滤。设计它的目的在于扩展性,且独立于邮件架构和操作系统。 它适合运行在不允许用户执行程序的邮件服务器上运行,例如在 IMAP 服务器上。因为 Sieve 中没有变量,没有循环,也不运行调用外部的 Read more ...


Raycast AI 使用体验

在之前的文章中就提到过 Raycast,前不久看到 [[Raycast]] 快速跟进了 OpenAI,现在推出了 Raycast AI,我没有想到的是,Raycast 的使用场景可以如此完美地和 AI 结合在一起。 Raycast 代替了如下我过去常常做的事情: 再不需要打开网页,或者 ChatGPT 客户端再输入问题 再不需要打开 Papago(或者 DeepL 等客户端)翻译段落(短句和单词基本靠 Chrome 插件和 [[GoldenDict]]) 再不需要打开 OpenAI Translator 对文本进行润色 直接在 Ob Read more ...

2023-04-09 raycast , launcher , macos , openai , ai , chatgpt

强大的网络调试和抓包工具 Whistle

在我之前的文章中介绍过不少的本地抓包和代理工具,比如非常常见的 Charles,以及开源的 mitmproxy,还有能抓更底层的 wireshark,Fiddler 等等。今天想要介绍的这一款 whistle 是另一款基于 Node.JS 实现的功能强大的跨平台抓包调试工具,可以作为 HTTP(默认),HTTPS 代理,Socks 代理,反向代理等。 功能 whistle 是一个 NodeJS 实现的 Debug 代理工具。 支持 macOS,Windows,提供 Windows 和 macOS 客户端 可以作为 HTTP,HTTPS,W Read more ...


向量数据库及实现整理

什么是向量数据库 在介绍什么是向量数据库之前先来了解一下数据库的种类。 图上从左往右依次是 Key-Value 数据库([[Redis]],[[HBase]]),文档数据库([[MongoDB]],[[Cosmos DB]]),[[图数据库]]([[图数据库 Neo4j]],[[图数据库 Nebula Graph]]),向量数据库。 向量数据库就是用来存储,检索,分析向量的数据库。 向量数据库是一种专门用于存储和查询向量数据的数据库,其中向量数据指的是由数字组成的向量。向量数据库通常使用高效的相似度搜索算法,例如余弦相似度或欧几里得距离,来快 Read more ...


最近文章

  • Rancher 中创建 K3s 集群 CA 检查报错解决方案 在之前的文章中遗留下来一些没有解决的问题,当时只是记录了一下, 后来因为只使用了 local 集群就没有继续调查,现在想要创建 K3s 集群的时候再次遇到了类似的问题。
  • LingQ:通过可理解输入学习语言 之前有写过一篇文章,大致地总结了一下自己关于Duolingo的一些想法,前段时间在打卡了 800 天之后,把 Duolingo 中的英语韩语和日语全部通关到了最后只能每天重复,所以发了一个推特帖子想要寻找一下比 Duolingo 更深度一些,每天可以坚持记忆一些语言支持的「工具」。我个人非常不喜欢直接拿一个背单词应用就开始背诵的方式,虽然我承认只要长期坚持还是会有一定的效果,但是一方面是效率很低,背过的单词不容易被想起来,另外一方面也是单纯的背单词非常的无聊。我也尝试过在浏览网页的时候将生词存放到 Anki 中,然后定期回顾,但是单词脱离了上下文,总是感觉还是像是在一个个过单词,我在之前的文章中介绍过 Comprehensible Input (可理解输入),但实际上自己一直没有好好地践行,看过一些日剧,日综,但是现在还是韩剧/韩综看得更多,在日常生活中英文的材料看得更多,日文的内容输入相对就比较少,也尝试过找一些日语的播客,但是以我现在的水平,最基础的都有一些费力的情况下,还是没有达到可以收听日语播客的程度。所以,这段时间我就是一直在没有找到比 Duolingo 更好的,又能够随时随地可以拿出来打个卡的服务,直到我看到了 LingQ,第一次注意到 LingQ 还是在 GitHub 中看到一个仓库是将 NHK Easy News 导入到 LingQ,隔天我就又看到一位朋友也在推荐 LingQ 作为沉浸式阅读工具,所以我就决定好好来研究一个这个工具。
  • Amazon 推出 Kiro AI IDE 新一代 AI 辅助集成开发环境 在 AI 辅助代码生成领域,从来不缺竞争者,现在 Amazon 正式加入了战争推出 Kiro AI IDE,Amazon 在之前就推出过智能助手 Amazon Q,以及代码补全插件 CodeWhisperer,但是在激烈的代码生成领域依然没有竞争过 Cursor,Windsurf,Claude Code 等一众的领跑者,甚至声量都没超过 Gemini CLI。现在推出的 Kiro 是一个集成的开发环境,至此互联网巨头中除了苹果没有推出 AI 辅助编码的工具之外所有的公司都已经有了对应的产品。
  • SuperClaude 让 Claude Code 更专业更顺手 SuperClaude 是一个 开源的 Claude Code 增强工具,提供了额外的命令,人物角色(Personas),以及更好的 MCP 服务集成。
  • Ktor: Kotlin 下的异步网络编程框架 在之前学习 Exposed ORM 的时候,偶然得知 Ktor 这样一个项目,简单了解了一下之后发现这是一个 Kotlin 编写的异步网络编程框架,Ktor 既可以作为服务端框架,实现 HTTP 服务,也可以作为 HTTP 客户端,在 Android 等平台上使用。

赞助