
探索2025-02-22 Show HN上最热门的开发者项目,包括创新技术、AI应用等激动人心的新发明。深入了解这些引人注目的项目!
今日内容汇总
今日最热产品亮点 * 产品名称: FlowRipple * 亮点: 通过可视化界面简化和自动化业务流程,无需编码即可构建自定义工作流,并提供早期访问计划。 快速摘要 * 最热类别: AI工具, 开发工具 * 点赞最多的关键词: 工作流自动化, AI, 开源 * 最受欢迎的产品: FlowRipple,86
技术趋势 * 工作流自动化,人工智能,LLM,开源,代码生成,低代码/无代码,语言学习,数据分析,网络安全,DevOps
项目分布 * AI工具 (36%) * 开发工具 (40%) * 学习资源 (8%) * 其他 (16%)
趋势洞察 * 自动化工作流和AI工具持续热门,低代码/无代码平台受到欢迎。开发者对简化开发流程、提升效率的工具需求强烈。开源项目在各个领域都有增长趋势,隐私和数据安全日益受到重视。
今日热度Top10产品榜单
Top 1. FlowRipple:一个可视化工作流自动化平台,简化你的工作流程,提升效率。 (点赞数:86,评论数:63)
Top 2. Willpayforthis.com 是一个创新的平台,专注于汇集人们愿意支付的创意和想法,帮助创业者和创新者找到市场需求,实现商业化。 (点赞数:40,评论数:47)
Top 3. 一款创新的增强现实设备,Meta Quest3,能够让用户透视墙壁,体验全新视野与沉浸式互动。 (点赞数:45,评论数:8)
Top 4. 全新推出的日本城市名称生成器,采用简单的三层多层感知器(MLP)技术,轻松创造独特而富有日本风情的城市名称,让创作更加灵感无限! (点赞数:17,评论数:10)
Top 5. LLM 100k 资产管理基准——提升投资决策效率的智能工具,让您的投资组合更具竞争力。 (点赞数:19,评论数:5)
Top 6. 在经典的Commodore C64上运行的Llama2.c,带您重温80年代的计算机魅力与现代编程的结合。 (点赞数:5,评论数:5)
Top 7. 自动生成Git提交信息的LLM插件,提升开发效率,简化代码管理。 (点赞数:6,评论数:3)
Top 8. 轻松制作可展开/折叠图表的工具,助你高效展示思路与创意。 (点赞数:7,评论数:0)
Top 9. Meetily是一个开源AI会议助手,作为Otter.ai的替代方案,旨在提升会议记录和管理效率,帮助用户轻松捕捉和整理重要讨论内容。 (点赞数:3,评论数:2)
Top 10. Hypership - 一键快速部署 Next.js 应用,集成身份验证、仪表盘及更多功能。 (点赞数:3,评论数:0)
1. Show HN: 我建立了一个可视化工作流自动化平台 – FlowRipple
作者: shivsarthak34
描述: FlowRipple旨在轻松简化和自动化业务流程。无论您是开发者、企业主还是市场营销人员,我们的平台都允许您构建可以通过应用程序事件、网络钩子或按计划触发的自定义工作流。
我们刚刚上线,并提供独家早期访问计划,附带一些令人难以置信的福利来帮助您入门。
人气: 86 个点赞 | 63 条评论
2. Show HN: Willpayforthis.com – 人们愿意为之付费的创意
URL: https://www.willpayforthis.com
作者: bickett
描述: 啊,有个非常简单的方法可以找到人们愿意掏钱的创意。在Twitter上搜索“我愿意为此付费”,你会发现成百上千的帖子,很多人在谈论他们的痛点和他们愿意为了解决这些痛点而付费的产品。
如果你多做几次这样的搜索,你就会发现必须筛选大量无用的信息。无用的信息,无用的信息。
我创建了willpayforthis.com,目的是收集高价值、高质量的帖子,以节省你的时间。
我非常欢迎社区的反馈,告诉我如何改进这一平台,为你节省时间,并帮助你专注于最佳创意。
人气: 40 个点赞 | 47 条评论
3. Show HN: 我们制造了一个Meta Quest3,可以透视墙壁。
作者: sleepingreset
描述:
人气: 45 个点赞 | 8 条评论
4. Show HN: 日本城市名称生成器 – 使用简单的3层多层感知机(MLP)
URL: https://citygen.freemanjiang.com
作者: freemanjiang
描述: 我训练并部署了我的第一个模型:一个日本城市名称生成器,底层仅使用了一个3层的多层感知器(MLP)。它在浏览器中完全本地运行,使用onnx运行时。
该模型在不到2,000个真实日本城市名称上进行训练,有趣的是,在这个简单的任务中,这个简单的MLP表现得比更复杂的模型更好,因为后者往往会过拟合并生成已存在的名称。
人气: 17 个点赞 | 10 条评论
5. Show HN: LLM 100k 组合管理基准
URL: https://github.com/gqgs/llm100kbench
作者: gqgs
描述: 某项事物的概念验证(PoC)有可能最终带来一些有趣的结果。
人气: 19 个点赞 | 5 条评论
6. Show HN: 在Commodore C64上的Llama2.c
URL: https://github.com/trholding/semu-c64
作者: AMICABoard
描述: 警告:推理耗时较长。
图片与媒体:https://x.com/VulcanIgnis/status/1893420241310335329
人气: 5 个点赞 | 5 条评论
7. Show HN: 自动生成 Git 提交信息的 LLM 插件
URL: https://github.com/GNtousakis/llm-commit
作者: gntousakis
描述: 这是一个用于 Simon Willison 的 llm 工具的小插件。它使用暂存的 Git 更改,并使用 LLM 生成提交信息。
你可以做以下操作:
git add . # 暂存你的更改
llm commit # 从暂存的差异自动生成提交信息
llm commit --model gpt-4 --max-tokens 150 --temperature 0.8 --yes # 自定义模型设置(例如,GPT-4)或跳过确认
人气: 6 个点赞 | 3 条评论
8. Show HN: 轻松制作可展开/可折叠的图表
URL: https://expanding-plantuml.daijin.dev/
作者: acenturyandabit
描述:
人气: 7 个点赞 | 0 条评论
9. Show HN: Meetily – 开源人工智能会议助手(Otter.ai 的替代品)
URL: #
作者: zackriya
描述: 嘿,HN,
我们创建了 Meetily —— 一个开源的、以隐私为首要的 AI 会议助手,用于转录、总结和记笔记。与 Otter.ai 或 Granola.ai 不同,Meetily 完全运行在本地硬件或自托管的云基础设施上,确保完全的数据控制(没有云存储或 SaaS 锁定)。
为什么我们要做这个:
大多数 AI 会议助手会将会议数据存储在云端,从而引发隐私和合规性的问题。此外,它们的 SaaS 价格昂贵(每用户每月 $8–$20)。我们希望提供一个免费的、本地优先的替代方案,能够:
实时转录(Whisper.cpp)
生成 AI 驱动的总结(使用 Ollama 的本地 LLMs(对于超过 32B 参数模型准确)或外部 API,如 Claude Sonet、Groq、Llama 70B)
本地存储会议数据(没有云依赖)
运行在本地硬件上(出于安全性和合规性)
完全开源(可定制和可扩展)
技术栈
前端:Tauri + Next.js
后端:FastAPI
转录:Whisper.cpp
总结 AI:本地 LLMs(Ollama) + API 支持(Claude、Groq 等)
数据库:SQLite + VectorDB 用于语义搜索
基于 Rust 的音频捕获以提高效率
我们接下来要做什么?
优化小型 LLMs 的 AI 总结
混合云支持(自托管模型以增加计算能力)
对过去会议的对话式搜索
人气: 3 个点赞 | 2 条评论
10. Show HN: Hypership – 一键部署带有身份验证、仪表板等功能的 Next.js 应用
作者: upmostly
描述: 嘿,HN!
这里是来自 Hypership 的 Jay。
我们创建 Hypership 是为了简化每次想要启动新网络应用时拼凑不同服务的令人沮丧的过程。
Hypership 让你可以瞬间部署一个 React 或 Next.js 应用,具备以下功能:
- 内置用户认证
- 非常简单的部署(无需 GitHub)
- 页面浏览统计
- 事件跟踪
- 管理仪表盘
我们还计划在今年推出很多新功能。几乎任何你需要启动成功产品的服务都会集成到 Hypership 中:
- 托管数据库(即将上线)
- 表单(即将上线)
- 客服支持(即将上线)
- 错误日志(即将上线)
- 更多功能!
所有功能均预配置,一条命令或点击按钮即可通过 Hypership.dev 轻松使用。
这不是一个无代码的解决方案。我们以前使用过无代码平台,总会遇到一些希望更多功能的情况。使用 Hypership,你将获得本地完整源代码,并可以随时推送更改。没有供应商锁定 - 你可以使用所有功能,或选择只使用你需要的部分。
我们创建这一工具是因为厌倦了在每个新项目中花费数天时间来设置认证、分析、数据库等。
我们通过使用该工具构建了一些产品进行试验,已经节省了我们大量的时间。你可以专注于交付功能,而不是在构建应用后需要处理的繁琐集成工作。
我们非常期待您的反馈!祝好,HN!
人气: 3 个点赞 | 0 条评论
11. Show HN: 将 JSON 对象转换为 OpenAI 结构化输出模式定义
URL: https://docmap.dev/generator.html
作者: typs
描述: 我经常使用OpenAI的结构化输出模式,并且发现指定OpenAI所需格式的JSON模式有时很困难。我构建了这个工具,可以将任何JSON对象转换为适用于OpenAI结构化输出模式的模式定义。
我计划制作一个API,添加文本到模式的支持(这将是OpenAI游乐场工具的改进版本),以及Ollama的结构化输出格式。希望这对某些人有所帮助!
人气: 3 个点赞 | 0 条评论
12. Show HN: 一个小的 Go 程序,用于为你需要的下一个标签创建 Git 标签。
URL: #
作者: andrewfromx
描述: 我看腻了在我的 GitHub Actions 页面上等待一个步骤完成,然后再标记下一个步骤。你需要设置三个环境变量:
os.Getenv("GITHUB_TOKEN")
os.Getenv("WORKFLOW_POLLER_OWNER")
os.Getenv("WORKFLOW_POLLER_REPO")
然后运行 ./workflow-poller,它将持续轮询 GitHub API(ListRepositoryWorkflowRuns),检查你当前的 git rev-parse HEAD
值,并确保状态为 "completed"。
https://github.com/andrewarrow/workflow-poller/
人气: 3 个点赞 | 0 条评论
13. Show HN: 一个编写机器人以实现最有效算法的竞赛游戏
URL: https://github.com/kingofthegrid/king-of-the-grid
作者: desertkun
描述: 我有一个想法,关于在一个高度受限的环境中进行比赛:32x32的矩阵,里面有你编写代码的机器人!每个机器人模拟Z80 CPU,它们获得相同的执行时间,因此最有效的算法获胜。机器人可以移动、吃东西、自我克隆,最重要的是,能够在竞争中生存。
每个提交后,排行榜会重新计算,这样每个参与者之间都会有一场比赛,赢得最多比赛的机器人将登上榜首。我也希望提交者们能想出巧妙的点子,迫使其他人重新思考策略等等。
人气: 3 个点赞 | 0 条评论
14. Show HN: 我使用人工智能来应对ATS拒绝 – 5天内获得500个注册用户
URL: https://www.resumeadapter.com/
作者: acjm
描述: ResumeAdapter.com - 针对技术岗位的即时ATS优化
问题:
72%的开发者简历在人工审核之前就被机器人拒绝(来源)
初级开发者浪费时间猜测关键词,比如“Kubernetes”与“Docker Swarm”
构建:
技术栈:Bolt.new(React)+ Firebase + GPT-4-Turbo
在72小时内发布MVP,使用AI生成的代码(38%的代码基于Cursor.sh)
成绩:
522个注册用户(83%为初级开发者)
4.7%的转化率到$9.99/月的收费层级
22%的回访用户(7天留存)
艰难的教训:
PDF解析占用了60%的开发时间(最终使用了PyMuPDF)
免费用户在进行3次分析后转换最佳(现在提前进行限制)
开发者更关心关键词的空缺,而不是设计(“只告诉我该加什么!”)
问HN:
你会如何改进技术实现?
人气: 3 个点赞 | 0 条评论
15. Show HN: Rorg – 我开发了一个开源工具来帮助整理 React 项目
URL: https://github.com/LLxD/rorg
作者: LLxD
描述: 我一直很怀念JavaScript生态系统中的Rails风格生成器,尤其是在不同公司的React项目中工作时。每个团队都遵循不同的结构,通常没有清晰的组织,这使得项目的扩展和维护变得更加困难。
因此,我构建了Rorg,一个灵活的CLI工具,帮助根据不同的架构模式来组织React项目。它支持:
原子设计 特性优先 页面与组件
人气: 2 个点赞 | 0 条评论
16. Show HN: Vim-Chat 在 Vim 中使用 Ollama 的异步 AI 聊天缓冲区
URL: https://github.com/BlakeJC94/vim-chat
作者: blakejc94
描述: 我最近一直在尝试制作一些 Vim 插件,这是我的最新作品:vim-chat。
目前功能还相对简单,但它允许用户在一个缓冲区中输入查询并通过 <CR> 异步发送,这样用户就可以在另一个缓冲区中继续编辑,而不会打断他们的工作流程。
它只需要 curl 和任何最近版本的 vim 或 neovim。我构建这个插件是为了与 ollama 配合使用,但理论上它也应该适用于 OpenAI 或任何其他经过认证的端点。
这是我第一次在这里提交,期待听到大家的提问或反馈!
人气: 2 个点赞 | 0 条评论
17. Show HN: PVBenchmark – 数据驱动的太阳能分析工具,实现自主电网独立
作者: muc-martin
描述: 嗨 HN,
我开发了PVBenchmark,用于预测和基准测试您所在位置的太阳能发电。它利用有关面板朝向、倾斜度和容量的数据,在安装前预测系统的性能;对于那些已经在使用太阳能的人,它则可以让您将实际输出与类似设置进行比较,以找出效率不足之处。
最初是一个针对德国的项目,现在已提供全球范围的预测和比较。无论您是希望减少对电网的依赖,还是仅仅优化当前的设置,我都非常希望您能给我一些反馈,帮助PVBenchmark变得更加有用。
人气: 2 个点赞 | 0 条评论
18. Show HN: 汽车问题聊天机器人
URL: https://beta.doxastic.xyz/
作者: sleipner42
描述: 你好!我建立了一个聊天机器人,可以访问汽车手册,以帮助解决与汽车相关的问题。
欢迎反馈。如果你希望我添加你的汽车,请告诉我。
人气: 2 个点赞 | 0 条评论
19. Show HN: CFRS[]:一种最小的绘图语言,仅包含6个命令:C、F、R、S、[、]
URL: https://susam.net/cfrs.html
作者: susam
描述:
人气: 1 个点赞 | 1 条评论
20. Show HN: 基于 React 和 Node.js 构建全栈 Chrome 扩展的课程
URL: https://fullstackextensions.com/
作者: rfitz
描述: 我在扩展领域工作了多年的多种产品,决定制作一个课程,分享我当初刚开始时希望知道的所有内容。课程涵盖了构建一个完整的“产品”,包括用户界面、API 和扩展,这些部分能够彼此通信。它还涵盖了许多我常被问到的话题,比如扩展级别的认证、通过内容脚本将 React 应用注入网页,以及更多相关内容。
人气: 2 个点赞 | 0 条评论
21. Show HN: 决策棋 – 一种棋类变体,玩家在同一回合内进行对弈
URL: https://decisionchess.com/
作者: drekkenz
描述: 欢迎加入我们的 Discord,链接在主页上。
我建议先查看介绍和特别课程以了解规则。我收到了一些关于游戏在 Mac 上无法加载的反馈,但我无法进行调试,建议您等大约 10 秒以加载游戏。该网站在桌面设备上效果最佳。
您可以进行聊天、观看实时游戏、从自定义位置进行游戏、参加带有增量的计时模式,或者注册账户以进行排名游戏和在个人资料中跟踪游戏。
该变体的 AI 不是很好,基本上是随机的,因为我没有很好的思路来高效实施,所以我建议您与其他人进行对战。可能会有一些漏洞。我为了好玩制作了一些子变体,但不确定它们是否好玩,如果这个网站受到欢迎,我可能会对它们进行调整。
欢迎任何反馈!
人气: 2 个点赞 | 0 条评论
22. Show HN: 一个本地的人工智能助手,它会了解你并为你处理任务。
URL: https://github.com/existence-master/Sentient
作者: Kabeer2004
描述: 我的团队和我花了一段时间在这方面的建设,现在我们刚刚开放源代码!
这是一个个人 AI 伴侣,可以学习关于你的事实并将其保存在知识图谱中。它可以利用这些 "记忆" 来回应查询并执行诸如发送电子邮件、准备演示文稿和文档、添加日历事件等带有个人上下文的操作
它完全在本地运行,得益于 Ollama 的支持,甚至在需要时可以搜索网络。(所有用户数据也保持本地存储)初始的基础图是通过你对个性测试的回答以及从你的 LinkedIn、Reddit 和 Twitter 个人资料中提取数据来准备的——这为伴侣提供了一些关于你的初步上下文。
知识图谱存储在 neo4j 数据库中,我们从零构建了一个 GraphRAG 管道,以高效地检索和更新知识
未来的计划包括语音模式、浏览器使用功能、能够自动执行操作、改善的用户界面/用户体验等更多功能!
人气: 2 个点赞 | 0 条评论
23. Show HN: Flow – 一种用于深度研究的新型工作流程
URL: https://twitter.com/deepwhitman/status/1893396405282316792
作者: bilater
描述: 大家好,
我对这个功能感到非常兴奋!这是一次真正努力模拟深入研究的尝试。
我的仓库 Open Deep Research 最近因借助 OpenAI 的营销而获得了一些关注。:D
虽然我对我的仓库获得一些关注感到受宠若惊,但我觉得我最初的设置并不算真正的深度研究。这是一种浅层研究——也就是说,你只有一次前向传递:搜索一个查询,抓取数据,然后进行综合(SSS——这是我的营销术语)。
但实际上,你进行 SSS 后,还有后续问题,有时候你会深入探索。我确实受到了另一个仓库的启发:https://github.com/dzhng/deep-research
所以,我想看看是否能设计一个用户界面来捕捉这个工作流程,最后决定使用流程图。这个想法是用户可以进入,进行 SSS(为一个查询搜索、抓取并综合报告),然后生成后续查询,不断创建报告。
然后你可以将这些中间报告整合成最终报告。流程图用户界面让你对整个过程有完整的控制和可见性,允许你在任何阶段生成和保存中间报告并进行组合。
希望大家喜欢,对任何反馈都很感激! :)
Loom 视频:https://www.loom.com/share/3c4d9811ac1d47eeaa7a0907c43aef7f
Github:https://github.com/btahir/open-deep-research
人气: 2 个点赞 | 0 条评论
24. Show HN: 完整的曼德尔布罗特集合连续轨道
URL: https://banditcat.github.io/partialIterates/
作者: BanditCat
描述: 如标注所示。点击曼德尔布罗特集以显示对应的朱利亚集和从0开始的完整轨道。这是组合算子的解析延续,适用于任何多项式,不仅限于曼德尔布罗特集。
人气: 2 个点赞 | 0 条评论
25. Show HN: 我为C#制作了一种可调试的类似BASIC的脚本语言。
作者: cdhanna
描述: 我想分享一下我在个人语言项目上的进展。我制作了一种基于 Dark Basic Pro 风格的 BASIC 语法的脚本语言。这个脚本语言是为 C# 设计的。它是可调试的,依赖项非常少。我在 vscode 的一个扩展中设置了 LSP 和 DAP。
这个脚本语言可以通过源生成的委托函数调用 C# 方法,因此避免了运行时反射,这使得它在性能上并不是特别慢。
我的长期目标是创建一组命令,与 Monogame 接口,并制作一个关于在 2000 年代早期(我学习 Dark Basic Pro 时)制作游戏的游戏。不过这个目标还有很遥远,我想先把目前所做的整理打包。还有更多文档需要编写,但我觉得我总是会有更多文档需要写。
我并不真心提倡其他人除了我之外在真实项目中使用这个脚本语言……但我认为它很酷,创造它的过程也非常有趣。我想和大家分享我的工作 :) 谢谢大家。
人气: 2 个点赞 | 0 条评论
26. Show HN: Hire.Inc 的 Spotlight – 每周策划的人才推荐
作者: ahmedsalah
描述: 我很高兴推出 Spotlight by Hire.Inc,这是一个每周发布的通讯,精心挑选顶尖技术人才,每周一推荐8名工程师。
这个平台旨在帮助初创企业和招聘人员快速找到理想的候选人,并且完全免费。
您可以使用我们的 AI 招聘工具解锁无限候选人档案。(https://hire.inc)
人气: 1 个点赞 | 0 条评论
27. Show HN: Cyberintel.info 网络安全新闻聚合,利用 LLM 和 NER
作者: pjeyarat
描述: 我创建了 CyberIntel.info,一个轻量级的网络安全新闻聚合器,能够从可靠来源提取文章,并根据不同的角色组织内容: 公众 从业者 研究人员
它利用人工智能技术,如命名实体识别(NER)和智能标签,来高效地分类新闻,方便您找到相关更新,无论您是普通读者、安全从业者还是研究人员。它还提供书签功能,可以将文章保存以便日后阅读
我创建这个平台是因为我发现跨多个来源跟踪网络安全新闻非常令人沮丧。
希望听到您的想法!有哪些功能会让这个平台对您更有用?
人气: 1 个点赞 | 0 条评论
28. Show HN: 旨在支持您戒除坏习惯的人工智能伴侣
URL: https://letsqu.it/
作者: colors__
描述: 一个名为Quin的AI伴侣,旨在帮助戒除酒精、吸烟等习惯。它运用富有同情心的对话、认知行为技巧、激励面谈以及灵感来源于催眠的方法,帮助你处理情感和思维的迷雾。
人气: 1 个点赞 | 0 条评论
29. Show HN: 生命与超级大陆 – 地球大陆的互动时间推移
URL: https://szupie.github.io/supercontinents/
作者: szupie
描述: 你好!我创建了一个工具,可以在互动地球仪上展示地球大陆在时间上的移动。它还包括了生命演化的简要历史,强调了板块构造对生命可能产生的影响。
这是一个个人项目,灵感源于一个问题:在恐龙时代是否存在草?草的演化在这个(不可否认是以人为中心的)重大事件列表中似乎并不重要,但这个写作确实提供了一个关于如今地球上不同生命形式出现的良好总结。
很想知道你对此的看法!有什么让你困惑的地方吗?对于古生物学和古地质学的专家们,有没有任何信息是错误的?
人气: 1 个点赞 | 0 条评论
30. Show HN: 语言学习平台,允许任何人创建课程
作者: alekoiz
描述: 建立了一个网站,任何人都可以制作类似教材的语言课程,并添加音频/视频等多媒体内容。
人气: 1 个点赞 | 0 条评论
31. Show HN: 在Rust中解决百万富翁问题
URL: https://github.com/vaktibabat/garbledcircuits
作者: vaktibabat
描述: 我做了这个项目来更好地理解混淆电路。简而言之,这是一种算法,允许多个参与方私密地评估一个多元函数(即没有任何参与方了解其他参与方的输入)。我觉得这个算法非常酷,从头实现它真的让我更加欣赏它 :)
我还写了一篇文章,描述了所有算法及其实现:https://vaktibabat.github.io/posts/smpc_circuits/
很高兴收到任何反馈 :)
人气: 1 个点赞 | 0 条评论
32. Show HN: 用于复杂工作流程的AI代理工作空间新概念
URL: https://www.useportals.dev/
作者: wordongu
描述: 嘿,大家好!
我想分享一下我几个月来设计和构建的项目,目的是为了使 AI 开发更加集中和便捷,让任何人都能开始获得价值,特别是随着模型和工作流程的新进展。
核心框架是一个拖放式构建器,用于多智能体工作流程,您可以将 LLM 调用和工具用类似于其他自动化构建器的逻辑连接在一起。更令人兴奋的是工作区线程,它能够检测并选择使用的工具(如网络搜索、知识库检索等)。通过尝试不同的工具,您可以直接保存并启动基于不同触发器(聊天、工单、电子邮件等)运行的工作流程。
目前它完全免费,并提供多种高级模型(gpt-4o、claude sonnet、deepseek r1),我相信这对实验以及构建早期概念代理是一个很好的起点。
感谢您的关注,想和您进一步讨论这个概念!
人气: 1 个点赞 | 0 条评论
总结
今天的Show HN汇总展示了一系列多样化的创新项目。从AI驱动的工具到创意编码解决方案,这些项目反映了我们技术社区的动态特性。哪个项目最吸引你的注意力?请在评论中告诉我们!
Tags: #ShowHN #科技创新 #开发者项目 #AI应用程序 #开源软件