1作者: tootyskooty6 个月前
我花了几个月时间构建这个项目,起因是我对使用 LLM 学习的方式感到沮丧。你得到的是一堆文本,然后消失在聊天记录里。维基百科则恰恰相反:无休止的兔子洞,缺乏结构。我想要介于两者之间的方式。 Periplus 将课程生成为相互关联的 Markdown 文档,并根据你的水平量身定制。它首先会问几个问题,构建一个教学大纲,并且每个概念都链接到相关的概念。点击你不理解的术语,它会并排打开一个新文档。 很大程度上受到了 Obsidian 的启发——图谱视图很相似,并且如果你想在本地保存笔记,可以导出到 Obsidian。 它还可以从任何文档生成测验和抽认卡,这有助于解决我总是遇到的被动阅读带来的遗忘问题。 技术栈:React、Node/Express、Postgres 搭配 pgvector、Sonnet 4.5 用于生成内容。图谱使用 D3,并结合了我制作的 WASM 优化的多体模拟 [1]。 还有很多需要改进的地方!很希望收到关于课程质量的反馈,我主要测试了技术类主题。 [1]: <a href="https://www.npmjs.com/package/d3-manybody-wasm" rel="nofollow">https://www.npmjs.com/package/d3-manybody-wasm</a>
3作者: chartpreview6 个月前
我是一名软件工程师,意外地成了团队里的 Kubernetes 专家——最终也成了每个 Helm chart PR 的瓶颈。<p>我开发了 Chart Preview,这样审阅者就可以在无需等待我的情况下,看到 Helm chart 的变更运行情况。<p>几年前,我的团队需要为现有产品实现 HA(高可用性),这意味着要在 Kubernetes 和 OpenShift 上进行部署。我花了几个月的时间学习 Kubernetes、Helm 以及相关的生态系统。在那之后,Kubernetes 基本上就成了团队里的“我的专长”。<p>后来,我们为该产品发布了公开的 Helm chart,客户开始提交 PR(Pull Request)。这些 PR 经常会被搁置数月——并不是因为变更不好,而是因为测试它们意味着手动启动一个 Kubernetes 集群,使用提议的变更部署 chart,运行测试场景,并与产品和 QA 协调验证。由于只有我才能可靠地设置这些环境,所以一切都得等我。<p>我一直在想:如果 PR 本身就能展示变更后的效果会怎样?如果审阅者只需点击一个链接就能看到它被部署会怎样?<p>这个想法变成了 Chart Preview。<p>Chart Preview 在你打开 PR 时,将你的 Helm chart 部署到一个真实的 Kubernetes 集群,为该 PR 提供一个唯一的预览 URL,并在 PR 关闭时自动清理所有内容。<p>我最初解决的是我个人遇到的问题,而不是事先调查整个市场。在构建更多功能的过程中,我研究了现有的预览工具,并注意到虽然有用于预览基于容器的应用程序的可靠解决方案,但 Helm 特有的工作流程带来了不同的挑战——chart 依赖关系、分层 values 文件和有主见的 chart 结构。这促使我专注于让 Chart Preview 首先成为 Helm 原生的工具,而不是将容器预览工作流程适配到 Helm。<p>在底层,它使用 Helm v3 SDK 用 Go 语言构建。架构是一个 API 服务器,其 worker 从 PostgreSQL 队列中提取任务——没有 Kubernetes operator,只有服务直接与 Kubernetes API 对话。每个预览都在其自己的命名空间中运行,并带有 deny-all NetworkPolicies、ResourceQuotas 和 LimitRanges。GitHub 集成通过 GitHub App 完成,用于 check runs 和 webhooks,通过 REST API 支持 GitLab。<p>在此过程中,遇到了一些有趣的挑战。将预览主机名注入 Ingress 资源而不破坏清单文件,这经历了多次迭代。Helm 卸载并不总是能清理所有内容,所以删除整个命名空间被证明是最安全的备选方案。处理对同一 PR 的快速推送需要构建编号,以便最新的推送始终获胜。虽然 Helm SDK 功能强大,但文档不足——我花了很多时间阅读 Helm 的源代码。<p>我一直在使用 Grafana、podinfo 和 WordPress 等真实 chart 构建和测试这个工具几个月,以验证工作流程。它还处于早期阶段,但它有效,现在我正试图了解其他团队是否也面临着我遇到的相同痛点。<p>你可以在这里安装 GitHub App 来试用: <a href="https:&#x2F;&#x2F;github.com&#x2F;apps&#x2F;chart-preview" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;apps&#x2F;chart-preview</a><p>我很乐意收到关于以下几点的反馈:<p>这是否解决了你团队的实际问题,还是共享的 staging 环境“足够好”?<p>缺少什么功能会让你真正使用它?<p>是否有 Chart Preview 无法使用的 Helm chart?(有意阻止了集群范围的资源。)<p>很乐意回答关于实现的问题。
3作者: zchmael6 个月前
YC 大家好! 我们来这里是因为我们正在构建一些我们认为很酷的东西,并且正在寻找一些创始人来测试它并给我们一些诚实的反馈。 我们是技术出身的创始人。我们讨厌内容营销。但我们需要自然增长,所以我们建立了一个内聚的系统来为我们处理它。 研究了热门关键词和竞争对手。主动排队主题。起草了 SEO 和 LLM 优化的内容。直接发布到 CMS。跟踪排名。加倍投入到有效的内容上。 这让我们在 6 个月内实现了 6,000% 的流量增长。 现在,我们将整个工作流程打包到 Averi 中——一个面向创始人的内容引擎,他们更愿意专注于交付产品而不是写博客。 它的功能:→ 为您研究和排队主题 → 起草针对 Google + LLM 引用的优化内容 → 发布到您的 CMS → 跟踪排名和表现 → 推荐下一个要创建的内容 您批准(如果需要,可以与您的团队协作编辑)。它运行。可见性不断增加。 我们正在寻找大约 50 位创始人来测试这个产品,然后再公开发布。完全访问,完全免费,如果您愿意,我们会通过电话向您介绍。 我们只要求:告诉我们什么有效,什么坏了,以及缺少什么。 有兴趣吗?在下面评论或给我发私信。很乐意听取您的想法! 了解更多信息:https://www.averi.ai/workflows/your-ai-content-engine
1作者: telui6 个月前
# Dragonlang 基于行的微型语言,其最小解释器位于 `__main__.py` 中。 ## 文件扩展名 源文件使用 `.dragon` 扩展名。解释器也接受没有扩展名的文件名,如果存在,将尝试 `<name>.dragon`。 ## 运行 文件模式: ```bash python __main__.py path/to/program.dragon ``` REPL 模式: ```bash python __main__.py ``` 键入 `exit` 或 `quit` 退出 REPL。 ### 文件解析 当路径参数没有扩展名(名称中任何地方都没有 `.`)时,解释器首先尝试 `<path>.dragon`(如果存在)。 ## 执行模型 - 解释器一次处理一行。 - 没有多行语法、块结构或语句分隔符。 - 解析基于简单的子字符串检查,而不是词法分析或语法。 ### 匹配顺序 行按此顺序检查,第一个匹配胜出: 1. `+`(加法) 2. `-`(减法) 3. `print` 4. `on error` 5. 精确的变量查找 6. 备用错误 这意味着包含 `+` 或 `-` 的行永远不会到达 `print` 或 `on error` 处理,即使这些词出现在该行中。 ## 语法和行为(基于 `__main__.py`) 每一行都被独立处理。解析是最小化的,基于子字符串检查,而不是正式的语法。 ### 打印 打印字符串字面量: ```dragon print "hello" print 'world' ``` 如果 `print` 之后的文本与解释器环境中的变量名匹配,则打印其值。(变量尚不可赋值。) 注意: - `print` 在该行的任何位置都会被检测到,而不仅仅是在开头。 - 解释器会删除 `print`,然后从两端修剪空格和引号(`"`、`'`)。没有转义处理。 ### 整数运算 支持整数的加法和减法: ```dragon 2+3 10-4 ``` 运算符周围允许有空格。 注意: - 解释器会在它看到的第一个 `+` 或 `-` 处进行分割。 - 在解析之前,两边都会被修剪并在环境中查找。 - 非整数值会引发 `ValueError`,并报告为通用错误。 ### 变量(只读) 如果变量已存在于解释器环境中,则可以读取它们。目前没有语法来分配新变量。变量存储在 `__main__.py` 中的 `env` 字典中。 ### "on error" 有一个特殊的行前缀 `on error`,它会被解析,但目前不会产生输出。它会删除前缀,如果存在,会在环境中查找剩余的文本,然后返回,不打印。 ## 错误行为 - 文件模式:`run()` 中的任何异常都会打印 `Error in line: <line>`。 - REPL 模式:异常被捕获,但当前代码打印异常类对象,而不是实际的错误消息。 ## 示例程序 ```dragon print "hello" 2 + 3 10-4 ``` ## 当前限制 - 尚未进行变量赋值(环境是只读的)。 - 没有条件语句、循环或函数。 - 没有注释、字符串转义或多行语句。 - 错误报告为 `Error in line: <line>`。 - `on error` 行被解析,但没有可见效果。 ## 保留字 以下单词在解释器中使用: - `webcollect` - `list` - `open` - `system` - `shutdown` - `warn` - `go to` - `enter` - `info` - `time` - `pause` ## 使用 `pause` ```dragon pause <amount> ```
1作者: olivdums6 个月前
大家好,我是Oli,今年32岁,远程办公,每天坐在办公桌前10个小时。<p>这正在慢慢地(而且肯定地)毁掉我(也毁掉你)。 它不仅损害我的身体,也降低了我的生产力,所以我想尝试解决这个问题:<p>连接你的日历,Movely会找到空闲时段,并在其中添加5分钟的微休息(力量训练、活动、缓解眼疲劳或压力)。<p>每个周日晚上,我都会运行一个任务,根据你的空闲时段为下周创建这些休息时段。<p>如果你想知道我的技术栈: * Monorepo:Nx (web / 后端 / 市场营销 + 共享库) * 前端:Next.js, Tailwind, Radix UI, Zustand * 后端:NestJS, PostgreSQL (Prisma), Redis (BullMQ 用于调度任务)<p>如果你有任何意见、对产品不清楚的地方或改进建议,或者调度功能是否感觉有帮助或打扰,我很乐意在此获得直接反馈!<p>感谢你的阅读!