最新文章

在将空闲时间投入到 flowtest.io (我希望这将是一项能够彻底改变API测试方式的服务)两个月后,我又重新拾起了 InceptionDB 。 尽管时间已经过去,但我仍清楚地记得当时正在优化性能,心理目标是突破每秒百万次插入(在单个节点上)。百万次并不难超越,但借助AI,我执意要轻松超过百万。实际上,我执意要将其推向更疯狂且不必要的程度,探索各种方案并攻击Inception的不同抽象层。 我重新执行了最后的测试,结果惊人得好像出了什么问题。我选中第一个基准测试: INSERT ,运行它,几乎同时结束。肯定有问题!日志显示在200毫秒内插入了100万条,但我不相信,我以为我关掉了持久化,只工作在内存中,或者没有并发控制导致数据重叠,或者数据发送了但服务器将其丢弃到了/dev/null。 sent: 1000000 took: 182.928406ms Throughput: 5466619.55 rows/sec Closing 'col-1779494946505865611'... http: Server closed 我不信任它,我可以想到一千个理由,但在删除数据库之前设置了一个断点并重新执行。尽管在调试中,结果几乎相同,但现在我有了: /tmp/inceptiondb_bench_811457574/col-1779494946505865611 ,它并非空文件,但只占41MiB。没多想,我将其移动到本地Inception的数据目录,启动它,加载页面,那里就有100万条数据。而且数据似乎也是正确的。 拥有100万文档的基准测试集合 我仍然不相信,创建一个索引,按升序查询,找到了第一个文档 0 。改变顺序,最后一个文档 999999 也在。似乎一切正常。我移开视线,确认自己还在呼吸。 我想到写一篇博客文章,但在此之前重新测试。这次是1000万条。 sent: 10000000 took: 1.078983549s Throughput: 9267981.90 rows/sec Closing 'col-1779498339775263815'... http: Server closed 接近每秒1000万条,估计为410 MiB。显然离磁盘瓶颈还很远,实际测试中磁盘可达9.4 GiB/s,这连5%都不到。 基准测试包含多个测试,用于衡量特定场景的性能: INSERT 、 PATCH 、 REMOVE ,但还有一些我记不清了: INSERTPK 、 INSERTBTREE 、 RETRIEVEBTREE...

实际上,1970年1月1日那天已经过去了。对许多人来说,这只是一个普通的日子,但对另一些人来说,这是时间的起源,也被称为 Unix 时间 ,即从 1970年1月1日 午夜起经过的秒数。 但这次我不想讨论 Unix 时间,而是想谈谈在编写一些 flowtests 给 Cloudflare 的一个服务时发现的一个小细节。这个服务本身并不重要,重要的是我在其中一个请求中收到的 HTTP 头部。它包含一个日期,扰乱了我平静专注的精神状态,以至于我不得不写下这篇文章: expires: Thu, 01 Jan 1970 00:00:01 GMT 这里奇怪的不是过期头部,虽然这不是最现代的方式,但可以理解,它的目的不是为了使缓存失效,而是为了避免资源从一开始就被缓存。为了实现这一点,他们将过期日期设置为过去,而最好的日期莫过于全世界几乎没有电子计算机的那个时刻: Thu, 01 Jan 1970 00:00:00 GMT 。 在任何其他服务中,这一秒的差异可能不会引起我的注意,但我们谈论的是 Cloudflare,是 Cloudflare!那些用熔岩灯墙保护互联网的公司,那些缓解了历史上一些最大 DDoS 攻击的公司,那些建造了 1.1.1.1 的公司,那些大规模使用 HTTP/3 的公司,那些甚至敢于保护用户开放互联网权利免受某些人滥用之害的公司。 这一秒的差异之所以存在,是有原因的,答案很可能与仍在运行并支撑着我们文明的软件中处理数据的编码方式有关。 这种日期格式只是一个接口,一种约定,通过它两个或多个部分交换信息,同时隐藏内部实现的细节。这种格式完全可以表示 1970 年之前的日期,甚至公元 0 年之前的日期。 很可能仍然存在许多或多或少古老的软件,它们在内部将 Unix 时间表示为整数,但还赋予了 0 特殊含义。这种实践非常普遍,不仅限于日期,对于任何类型的数据都是如此。...

En hola.cloud nos hemos migrado un MongoDB 3.6 entre máquinas. Para asegurar que no tenemos contratiempos con las versiones, hemos utilizado exactamente la misma versión con las imágenes Docker ofiales. Dejo por aquí un par de scripts que nos han venido bien. export.sh #!/bin/bash # check argument if [ -z "${1:-}" ];...

正如你可能知道的,我喜欢在有空的时候开发一些东西(有时会和 一位朋友 一起)。我有一个长期的副项目叫 HolaCloud,它是一个微型云,提供一些从零开始构建的服务:数据库引擎、API 网关、日志服务、基于 lambda 和容器的计算、认证、对象存储等。这里面充满了纯粹的乐趣和知识。 两年前,我决定部署所有这些内容,并在互联网上公开,使用域名“ hola.cloud ”。界面看起来可能不那么专业,但最好的部分在幕后😄。老实说,我必须明智地利用我仅有的一点时间。 令人惊讶的是,今天 HolaCloud 被从地球上封禁了。显然,某个算法认为我的网站对人们来说过于危险和恶意。尽管该网站仍然在线,但由于一些细节,它就像被隐藏了一样。 1. 它不再出现在谷歌上。 2. 浏览器(Chrome、Brave、Firefox)显示该网站对人们来说过于危险。 我是怎么知道的?我在 YouTube 上收到了第一个警告,因为我有一个视频链接到了 hola.cloud 。挺聪明的,是吧? 该视频链接到了危险页面 在和我的教练(ChatGPT 4o)聊了 30 秒后,她的最佳建议是查看谷歌的网页开发者控制台。 这些页面欺骗用户执行危险操作,例如安装不需要的软件或泄露个人信息。了解更多。 谷歌网页开发者控制台 一个相当了不起的成就,而且没有写一行代码。 事实证明,所有主流浏览器都依赖于谷歌相同的“安全浏览”数据。这意味着单一一家公司就能决定你的网站是生是死。无需搞乱 DNS、托管提供商、ISP,或联系任何权威机构。 HolaCloud 仍然被封禁。如果你知道如何解决这个问题,我真心恳求帮助。 感谢阅读这出戏。祝你有美好的一天 🌈 更新 2025-07-20(第二天) 第二天恢复意识后,我做的第一件事就是打开谷歌,输入 site:hola.cloud 。很多条目又回来了,自然地流入了谷歌的结果页面。 在我尝试的所有浏览器中,那个巨大的红色警告面板(宣告 HolaCloud 有多危险)消失了。甚至我 YouTube 账户上的第一个警告也不见了。 但这还没结束,几分钟后,域名注册机构的一封电子邮件悄悄进入了我的收件箱,内容如下: 尊敬的注册商, [.]cloud 滥用监控系统检测到 hola[[.]]cloud...

InceptionDB ,一款类似于 MongoDB 的多功能 NoSQL 数据库,现在包含了一项强大的新功能:“默认值”。此功能允许用户为集合中的新文档定义默认值,从而简化数据录入并确保一致性。 InceptionDB 中的“默认值”功能通过自动使用预定义值填充字段来简化文档创建。这减少了重复数据录入的需求,并有助于维护数据完整性。用户可以为集合中的任何字段指定默认值,确保新文档遵循一致的结构。 如何使用默认值 要为集合定义默认值,用户必须在集合模式中指定所需的默认值。例如: { "name": "my_collection", "defaults": { "status": "pending", "created_at": "2023-01-01T00:00:00Z", "is_active": true } } 当向“my_collection”添加新文档而未指定这些字段时, InceptionDB 将自动使用提供的默认值填充它们。 实际用例:用户注册 在用户注册系统中,你可以为字段设置默认值,例如 status (“pending”)、 created_at (当前时间戳)和 is_active (true)。这确保了所有新用户具有一致的初始状态。 { "username": "johndoe", "email": "johndoe@example.com" } 该文档将存储为: { "username": "johndoe", "email": "johndoe@example.com", "status": "pending", "created_at": "2023-01-01T00:00:00Z", "is_active": true }...

Viaje a Mordor Era el séptimo día de viaje a lomos de un conejo Uruj-ai convenientemente ensillado para la travesía. La vasta extensión de la llanura de Serindë se desplegaba ante mí, un mosaico de verdes y dorados que se extendía hasta donde alcanzaba la vista. El aire fresco de...

我想为GoPress设计一个易识别的标志,要简洁,能体现博客和双关语的精髓。 我们试试让GPT帮帮忙: “我们需要为一个名为‘gopress’的博客系统打造品牌。它是对WordPress(最大的博客平台)的仿拟。我最初的想法是一个键盘键帽,上面有字母G,既代表按下按键创建文章的动作,也代表印刷媒体中的‘press’。 如果可以,也请为dall-e生成一个提示。” 以下是GPT的回复: 这个初始概念对“GoPress”品牌来说非常棒!基于你的想法,我们可以这样进一步优化和细化: 标志 :一个单独的键盘键帽,上面带有风格化的“G”。这个“G”可以设计成同时微妙地融入笔或打字机的元素,以进一步体现写作的方面。为了代表博客的数字化、现代特性,可以在“G”内部或周围加入电路线或二进制代码设计元素。 配色方案 :将中性科技色(如光滑灰或银色)与鲜艳的亮色相结合。可以包括一种大胆的绿色(代表GoPress中的‘Go’)或一种明亮的蓝色(常与信息和科技关联)。 字体 :“GoPress”这个词可采用现代无衬线字体,清晰易读。可大写首字母“G”和“P”以强调品牌名。 标语 :为了强调信息,可以使用类似“Press to Express”、“Your Thoughts, One Press Away”或“Empowering Voices, One Key at a Time”的标语。 现在,关于DALL-E的提示,你可能想要一个与GoPress品牌形象相符的内容。这是一个建议:“一个键盘键帽,上面有风格化的‘G’,这个‘G’微妙地融入了笔或打字机的元素。‘G’是鲜艳的绿色,周围环绕着电路线或二进制代码设计元素。” 请注意,DALL-E的实际结果可能会有所不同,因为截至我上次训练截止日期2021年9月,DALL-E并未与模型直接集成,且此后模型的能力可能已经进化。 使用它建议的提示,我们在DALL-E中得到的图像很难用于网站图标: 由GPT提示生成的DALL-e图像 再迭代几次后,出现了一些适合用作文章头图的好图像: 提示:“一个来自机械键盘的网站图标键,上面有字母G,亮色” 提示:“一个来自机械键盘的网站图标键,上面有字母G” 似乎没有能用作网站图标的,因为大幅降低分辨率后依然无法识别。 我还在寻找标志,有什么想法吗?

Gopress, un blog en Golang (parte 8) ¡Hola a todos! Continuamos con nuestra serie sobre cómo construir un blog usando Golang, el lenguaje de programación creado por Google que se está volviendo cada vez más popular. Si te perdiste las partes anteriores, te invito a que vayas a nuestros artículos...