1作者: xiaolu62725 天前原帖
我每年都会使用Elfster或DrawNames来为团队和朋友组织秘密圣诞老人活动,但我对它们强制用户注册和收集电子邮件的做法越来越感到沮丧。对于小型、非正式的团体来说,这完全是多此一举,并且造成了不必要的隐私摩擦。 因此,我决定反转设计:如果整个活动状态都存储在一个可分享的链接中会怎样? 我构建了秘密圣诞老人生成器。它的工作原理如下: 组织者输入名字,设置排除项(可选),然后点击生成。 系统在服务器上创建一个唯一的活动ID,并生成一个哈希链接(例如,/event/abc123def456)。所有参与者数据、匹配和愿望清单都与这个ID相关联。 你将这个链接分享给小组。 每位参与者访问该链接,输入他们的名字,并立即看到他们的分配(匹配逻辑在首次访问时在服务器端运行)。他们可以添加愿望清单。 无需账户,无需电子邮件,无需个人资料。关闭浏览器标签页,活动就“消失”了,但链接在被清除之前仍然有效。 技术栈与决策: 前端:纯HTML/JS(Vue.js),注重速度。 后端:Node.js/Express。核心是确保随机、公平的抽签,同时尊重排除项。 数据:活动存储在内存中(例如,Redis),具有TTL(例如,14天)以自动过期。这一点至关重要——我们不想永久存储任何东西。 隐私:没有分析工具(例如,Google Analytics)。可能仅有最小的匿名服务器日志。 挑战:确保所有参与者的有效匹配,同时尊重“A不能得到B”的约束(这是一个图论问题,通过回溯法解决)。 这不是一个创业项目。这是一个周末项目,解决一个特定的需求。我认为网络需要更多这样简单、自给自足的工具。 如果你需要在今年组织一个快速、无摩擦的秘密圣诞老人活动,可以试试这个。欢迎提供技术反馈。 链接:https://secretsantagenerator.online
1作者: 0plus125 天前原帖
嗨,Hacker News, 这是我的第一篇帖子,希望一切都好! 我和我的伴侣今年迎来了我们的宝宝。为了庆祝他们的第一生日,我的伴侣想要打印一张大(A0)尺寸的海报,里面包含365张照片,每天一张,按顺序排列。所有现有的解决方案(包括Canva)要么崩溃,要么输出的文件非常小,不适合打印。 所以我为她做了一个。 * 你只需提供一个照片文件夹。 * 它会根据EXIF日期对照片进行排序。 * 它将照片排成一个方形网格。 * 中间留出空间用于标题。 * 输出一个适合打印的文件。 * 无需上传,无需账户,无需追踪。 * 完全离线工作。 这个工具是经过精心设计的,你不需要进行复杂的设计,只需提供照片,享受输出结果。我可能会在某个时候添加智能裁剪功能,按照我们之前的做法: * 裁剪照片,转移到电脑,运行脚本 -> 打印 我将其开源,因为在聚会上有很多人想做类似的事情,也许你们中的一些人会觉得它有用。这款工具在现实世界中经过测试,确实生成了一张500dpi的A0海报。 感谢阅读。
2作者: pyeri25 天前原帖
Tailwind 目前是一个热门话题,90%的开发者可能会建议(甚至强迫!)你使用 Tailwind 而不是 Bootstrap。然而,这里有一些逻辑和理性的理由,说明为什么 Bootstrap 实际上是更好的框架: 1. 学习曲线更平缓。Bootstrap 5 不需要对前端设计有深厚的专业知识。后端开发者可以轻松实现它,而无需学习诸如状态管理或虚拟 DOM 这样的复杂概念,这一点被严重低估了。 2. 实用性强。虽然 Tailwind 自称为“实用优先”的框架,但 Bootstrap 提供了真正的实用性,而没有那么多额外的麻烦。导航栏、模态弹窗、颜色和强调的实用类(如 `bg-primary`、`bg-secondary` 等)都是内置的,随时可以使用。还有什么比这更实用的呢? 3. 在统一中创造性。这一点更多是关于心理学而非技术。Bootstrap 最大的批评之一是“使用 Bootstrap 构建的网站大多数看起来相似”。但这是一种主观意见,忽视了创造性并不总是意味着要重新发明轮子。你仍然可以在生产线上创造性地配置轮子的辐条、轮胎颜色、气压等。实际上,当这种创造性有助于提高生产力,同时提供标准化、用户友好的体验时,它是理想的。 附注:哪一个对你来说感觉更简单、更实用? - Tailwind: `<button class="bg-sky-500 hover:bg-sky-600 active:bg-sky-700 text-white px-4 py-2 rounded-lg">Click me</button>` - Bootstrap: `<button class="btn-primary">Click me</button>`
2作者: rikeda7125 天前原帖
嗨,HN, 我开发了一个命令行工具,可以根据 Drizzle ORM 的模式定义生成文档。 问题是:Drizzle ORM 没有内置的模式文档或 ER 图生成。虽然存在 drizzle-dbml-generator 用于生成 DBML 输出,但我需要一个可以提取 JSDoc 注释并生成易于阅读文档的工具。 它的功能包括: - 从你的模式中提取 JSDoc 注释,并将其包含在输出中 - 生成与 dbdocs.io 和 dbdiagram.io 兼容的 DBML - 生成带有 Mermaid ER 图的 Markdown 文档 - 支持 PostgreSQL、MySQL 和 SQLite - 兼容 Drizzle v0(relations())和 v1 beta(defineRelations())API - 开发模式下的监视功能 示例: ``` drizzle-docs ./src/db/schema.ts -o schema.dbml drizzle-docs ./src/db/schema.ts -f markdown -o ./docs ``` 关键的不同之处在于 JSDoc 的提取。如果你像这样记录你的模式: ```typescript /** 用户账户信息 */ export const users = pgTable("users", { /** 唯一标识符 */ id: serial("id").primaryKey(), /** 用户的电子邮件地址 */ email: varchar("email", { length: 255 }).notNull(), }); ``` 这些注释会在 DBML 中变成 Notes,或在 Markdown 输出中变成描述。 该工具使用 TypeScript 开发,利用 TS Compiler API 进行注释提取。 采用 MIT 许可证。 欢迎反馈哪些输出格式或功能对你最有用。
2作者: hanzili25 天前原帖
开源维护者正面临大量低质量的拉取请求(PR)。<p>有人看到一个求助问题,将其粘贴到人工智能工具中,提交时没有进行测试,循环查看评论却对代码一无所知。这个PR乍一看似乎合理,但在审查中却暴露出问题。维护者浪费了30分钟才意识到这实际上是垃圾。<p>这种情况现在已经普遍存在,尤其是在有悬赏计划或Google Summer of Code(GSoC)的项目中,参与者有动机去“贡献”。<p>GitHub会告诉你某人是否是你仓库的首次贡献者,但并不会提供他们在其他地方的历史记录。<p>我开发了一个Chrome扩展,可以在PR页面上显示贡献者的声誉:跨仓库的合并率、随意提交的模式、潜在的红旗。<p>不确定我是否捕捉到了正确的信号。希望能得到维护者的反馈。