文章列表

Playwright 简明入门教程:录制自动化测试用例,结合 Docker 使用

本篇文章聊聊如何使用 Playwright 进行测试用例的录制生成,以及如何在Docker 容器运行测试用例,或许是网上最简单的入门教程。 阅读全文

向量数据库入坑:使用 Docker 和 Milvus 快速构建本地轻量图片搜索引擎

本篇文章,我来分享如何使用 Docker 来搭建一个能够跑在本地的轻量图片搜索引擎,实现日常生活中我们习以为常,但是实现起来颇为麻烦的功能:以图搜图。 阅读全文

向量数据库入坑:传统文本检索方式的降维打击,使用 Faiss 实现向量语义检索

在上一篇文章[《聊聊来自元宇宙大厂 Meta 的相似度检索技术 Faiss》]中,我们有聊到如何快速入门向量检索技术,借助 Meta AI(Facebook Research)出品的 faiss 实现“最基础的文本内容相似度检索工具”,初步接触到了“语义检索”这种对于传统文本检索方式具备“降维打击”的新兴技术手段。有朋友在聊天中提到,希望能够聊点更具体的,比如基于向量技术实现的语义检索到底比传统文本检索强多少,以及是否有局限性,能不能和市场上大家熟悉的技术产品进行一个简单对比。那么,本篇文章就试着从这个角度来聊聊。 阅读全文

使用 Docker 搭建适用于 HomeLab 的轻量邮件网关

, , , ,
本篇文章将介绍如何使用 Docker 快速搭建一个适用于 HomeLab 和开发阶段使用的邮件网关,用来快速聚合各种软件的通知消息。当然,你也可以用它来快速验证各种软件中的邮件配置是否正确。如果你熟悉 Docker 的话,大概十分钟,你将会拥有一套完全属于自己的邮件通知聚合服务,而这个服务,只需要 20MB 左右的内存消耗,非常轻量。 阅读全文

轻量的定时任务工具 Cronicle:前篇

, , ,
本篇文章将介绍一款轻量的、自带简洁 Web UI,适用于中小团队以及个人的定时任务工具:Cronicle。本文是关于 Cronicle 的第一篇文章,主要聊聊这个软件在容器封装下的常见问题,以及容器封装思路。 阅读全文

借助 WASM 进行密集计算:入门篇

, , , ,
在[《使用 Docker 和 Golang 快速上手 WebAssembly》]一文中,我介绍了如何制作符合 WASI 接口标准的通用 WASM,以及如何在几种不同的场景下进行程序调用。本篇文章将延续前文,聊聊在如何借助 WASM 增强 Golang、Node.js ,进行更高效的密集计算。 阅读全文

使用 Nginx 提供 DDNS 服务(中篇)

, , ,
接着上篇[《使用 Nginx 提供 DDNS 服务(前篇)》]继续聊聊如何玩转 Nginx 和 NJS,本篇将基于上一篇的内容,调整架构,让这套服务能够在云端运行,降低本地调用成本。本篇文章中,我们实际使用的代码行数会比上篇文章更少,全部代码 150 行左右。 阅读全文

使用 Nginx 提供 DDNS 服务(前篇)

, , ,
本文将介绍如何使用 Nginx 作为一般 DDNS 程序的替代方案,完整配置在 200 行左右。相比较使用一些充满“黑盒”依赖,或者运行时复杂的程序,使用 Nginx 可以以更低的资源,来完成我们所需要的效果。 阅读全文

使用 Docker 和 Node 搭建公式渲染服务(后篇)

, , ,
前面两篇内容,我们聊过了如何在尽可能不写代码的情况下,完成一个可用的公式渲染接口,本篇我们深入的聊一下如何调整设计,让服务更可靠,性能更好。 阅读全文

使用 Docker 和 Node 搭建公式渲染服务(中篇)

, , ,
在前篇文章[《使用 Docker 和 Node 搭建公式渲染服务(前篇)》]中,我们已经使用 Nginx 和开源软件 Math-API 搭建了一个基础的公式渲染服务。虽然在测试中可以正常工作,但是存在高并发的情况下服务压力过大,会导致预期之外的事情发生。本篇文章,我们就接着上篇文章内容,在尽可能“不编码”的情况下,继续进行性能调优工作。 阅读全文