2025 01 03 HackerNews

2025-01-03 Hacker News Top Stories #

  1. 数学家陶哲轩分享了自己论文被拒稿的经历,强调失败是学术生涯的正常部分。
  2. mitmproxy2swagger 是一个工具,可以将 mitmproxy 捕获的流量自动转换为 OpenAPI 3.0 规范。
  3. 文章讨论了硬件 DRM 的实现方式,指出 GPU 而不是 TPM 是主要实现手段。
  4. Zasper 是一个现代且高效的 JupyterLab 替代品,使用 Go 构建,内存和 CPU 使用率低。
  5. 作者分享了使用 Rails 8 构建和部署新应用的体验,认为 Rails 8 非常适合小项目和单个开发者。
  6. Jacob Vosmaer 介绍了他自制的 Beeper 设备,用于提醒自己在长时间工作时站起来活动。
  7. Hacker News 上的招聘帖子,帮助公司发布招聘信息,要求直接招聘,不接受招聘公司或求职板的发布。
  8. Meta 公司正在开发新功能,允许用户在 Facebook 和 Instagram 上创建 AI 机器人,提升用户体验。
  9. 作者将博客比作“商店”,维基比作“陌生人”,并正在创建一个新的维基。
  10. Austin Z. Henley 分享了自己 25 年来在 AI 和 ML 领域的经历和成长。

One of my papers got declined today #

https://mathstodon.xyz/@tao/113721192051328193

特伦斯·陶(Terence Tao)是一位数学家,他在自己的博客中分享了自己的一篇论文被拒稿的经历。陶教授表示,他的论文被拒稿是很常见的事情,每年至少会发生一次或两次。他认为,学术界往往只宣扬成功的故事,而对失败的故事保持沉默,这可能会导致人们产生“冒牌者综合症”。

陶教授还分享了自己的一些失败经历,包括一次他和合作者几乎解决了一个著名的猜想,但被顶级期刊拒稿。他们随后将论文提交给了另一个期刊,并被接受。然而,第二年他们终于证明了完整的猜想,但顶级期刊再次拒稿,这次的理由是论文只比以前的文献改进了一点点。

陶教授表示,他不把拒稿当作个人失败,而是将其视为正常的学术过程的一部分。他还提到,作为编辑,他也曾拒绝过一些不错的论文。他认为,拒稿是学术生涯中必然会遇到的挫折,重要的是要从中吸取教训并继续努力。

在评论中,其他学者也分享了自己的拒稿经历,包括一次论文被拒稿的理由是“我们已经知道这一点”,而且还引用了论文的工作版本。还有人提到,“失败蛋糕”概念,即庆祝失败并与同事讨论失败的原因。


HN 热度 801 points | 评论 263 comments | 作者:GavCo | 1 day ago #

https://news.ycombinator.com/item?id=42568399

  • 论文被拒绝是常见的,甚至连最好的数学家也会遇到这种情况。
  • 即使是世界上最伟大的数学家,也会遇到论文被拒绝的情况。
  • 论文被拒绝并不代表论文的质量不好,也许只是因为主题不适合该期刊。
  • 即使是最好的数学家,也不是随随便便就能发表论文的。
  • 一个人的成就和他所付出的努力是成正比的。
  • 即使是最好的数学家,也会有论文被拒绝的情况发生。
  • 一个人的成就和他所付出的努力是成正比的。
  • 即使是最好的数学家,也不是随随便便就能发表论文的。
  • 即使是最好的数学家,也会有论文被拒绝的情况发生。

MitmProxy2Swagger: Automagically reverse-engineer REST APIs #

https://github.com/alufers/mitmproxy2swagger

mitmproxy2swagger 是一个工具,用于自动将 mitmproxy 捕获的流量转换为 OpenAPI 3.0 规范。这意味着您可以通过仅运行应用程序并捕获流量来自动逆向工程 REST API。

安装

首先,您需要安装 python3 和 pip3。然后,可以通过 pip 安装 mitmproxy2swagger:

pip install mitmproxy2swagger

或者,可以通过 git 克隆仓库并运行 mitmproxy2swagger:

git clone git@github.com:alufers/mitmproxy2swagger.git
cd mitmproxy2swagger
docker build -t mitmproxy2swagger .

使用

要创建一个规范,需要:

  1. 使用 mitmproxy 捕获流量。推荐使用 mitmweb,这是一个内置于 mitmproxy 的 web 界面。
  2. 保存流量到一个流文件。
  3. 运行 mitmproxy2swagger 的第一次传递:
mitmproxy2swagger -i <path_to_mitmptoxy_flow> -o <path_to_output_schema> -p <api_prefix>

或者,可以使用 docker 运行:

docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <path_to_mitmptoxy_flow> -o <path_to_output_schema> -p <api_prefix>

请注意,可以使用一个现有的 schema 文件,在这种情况下,现有的 schema 将被扩展以包含新的数据。也可以多次运行 mitmproxy2swagger,以不同的流捕获,捕获的数据将被安全地合并。

编辑 schema 文件

第一次传递后,需要编辑 schema 文件,移除不需要的路径,并调整参数。然后,运行 mitmproxy2swagger 的第二次传递:

mitmproxy2swagger -i <path_to_mitmptoxy_flow> -o <path_to_output_schema> -p <api_prefix> [--examples]

或者,可以使用 docker 运行:

docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <path_to_mitmptoxy_flow> -o <path_to_output_schema> -p <api_prefix> [--examples]

第二次传递后,将生成端点描述。如果需要覆盖现有的端点描述,可以在运行第二次传递之前删除它们。

HAR 文件

可以从浏览器 DevTools 中捕获和导出流量。然后,可以继续使用 mitmproxy2swagger 处理 HAR 文件。

示例输出

可以查看示例输出,包括生成的 schema 文件和 HTML 文档(通过 redoc-cli 生成)。


HN 热度 512 points | 评论 59 comments | 作者:AbuAssar | 15 hours ago #

https://news.ycombinator.com/item?id=42572662

  • 这个工具很好用,能够自动逆向工程 REST APIs
  • 有人用这个工具成功地逆向工程了一个游戏的 API,并且搭建了私服
  • 有人认为这个工具和另一个工具很相似,可能是因为后者是闭源的
  • 有人指出这个工具不能很好地处理非 RESTful 的 API
  • 有人提到 HATEOAS 是 REST 的一个核心特征,但很少有人使用
  • 有人认为这个工具不能处理 GraphQL 端点
  • 有人提到可以使用其他工具来处理 GraphQL 端点
  • 有人问是否有类似的工具可以用于 Android apps
  • 有人回答可以使用 mitmproxy 来拦截 Android apps 的网络请求
  • 有人提到需要 root 设备和自签名证书来使用 mitmproxy
  • 有人推荐使用 Frida 来绕过 SSL 证书固定和 root 检查

The GPU, not the TPM, is the root of hardware DRM #

https://mjg59.dreamwidth.org/70954.html

这篇文章讨论了硬件数字版权管理(DRM)的实现方式,反驳了自由软件基金会(FSF)在其 “Defective by Design” 反 DRM 运动中对 TPM(可信任的平台模块)的错误主张。FSF 声称,许多主要的流媒体平台利用 TPM 来解密媒体流,从而将解密过程强行置于用户的控制之外,并认为微软要求只有带有 TPM 的硬件才能运行 Windows 11 是为了支持流媒体公司确保媒体只能在严格限制的环境中播放。

作者指出,FSF 的这一说法完全错误,流媒体平台实际上并没有使用 TPM 进行 DRM。相反,媒体公司所使用的硬件 DRM 技术主要依赖于 GPU(图形处理单元),而不是 TPM。文章中详细解释了当前流行的几种 DRM 实现方式,包括谷歌的 Widevine、苹果的 Fairplay 和微软的 Playready。这些 DRM 系统通常根据设备的能力提供不同级别的功能,其中高质量内容(如 4K 和 HDR)通常会与硬件 DRM 绑定。

作者阐述了软件 DRM 的局限性,主要是解密后的内容在操作系统可以访问的内存中,这使得用户有可能抓取解密流,从而使 DRM 失效。因此,媒体公司倾向于使用硬件 DRM,以防止未授权的访问。在 ARM 架构中,DRM 通常在受信执行环境(TEE)中处理,而在 x86 架构中,由于缺乏一个良好定义的 TEE,通常会将其转移到 GPU 上。

TPM 被描述为一种受信执行环境,但它是固定功能的,不能执行任意代码,而且 TPM 的解密速度较慢,无法实时解密 1080p 或 4K 流媒体内容。文章认为,FSF 对于 TPM 的关注不仅在技术上是错误的,还表明其未能理解行业的实际情况。GPU 厂商已经在不引起 FSF 抱怨的情况下悄然部署了这些技术,而微软也积极参与了硬件 DRM 在 Windows 上的实现,导致用户自由受到限制。

总结而言,文章强调了 GPU 在实现硬件 DRM 中的关键角色,指出 TPM 并不是流媒体公司实施 DRM 的主要工具,同时批评了 FSF 对 TPM 的误解及其对 DRM 现状的片面看法。


HN 热度 393 points | 评论 400 comments | 作者:DvdGiessen | 21 hours ago #

https://news.ycombinator.com/item?id=42570988

  • 硬件 DRM 可能比媒体 DRM 更具侵入性,未来可能会导致设备完全被控制,用户无法自由使用自己的设备。
  • 作者认为,媒体 DRM 目前主要依赖于 GPU 厂商,而硬件 DRM 可能会更加普遍和强大。
  • 有人认为,未来可能会出现一种情况,网站会拒绝为运行未经批准软件的设备提供服务,例如使用广告屏蔽器的设备。
  • 有人提议,应该收集所有的公钥,并将其作为一个愿望清单,这样可以更好地了解和应对硬件 DRM。
  • 有人认为,GPU 厂商已经部署了基于硬件的 DRM,并且这种 DRM 不需要 TPM 就可以正常工作。
  • 有人认为,现代 GPU 实际上是独立的计算机,运行着自己的操作系统和软件,这使得硬件 DRM 成为可能。
  • 有人认为,DRM 和 Play Integrity 之间的关系是,两者都试图控制用户在设备上的行为,但它们的目的和方式不同。
  • 有人认为,DRM 最终会导致用户被锁定在自己的设备上,无法自由使用自己的设备。
  • 有人认为,Android 设备是开放的,用户可以自由地更改操作系统,但是这并不意味着用户可以完全控制自己的设备。
  • 有人认为,TPM 和 attested bootchains 会侵犯用户的权利,用户应该能够完全控制自己的设备。
  • 有人认为,TPM 可以被视为一种安全机制,能够保护用户的设备和数据,而不是一种间谍工具。

Zasper: A Modern and Efficient Alternative to JupyterLab, Built in Go #

https://github.com/zasper-io/zasper

Zasper 是一个从头开始设计的 IDE,旨在支持大规模并发。它提供了最小的内存占用、异常的速度和处理多个并发连接的能力。它非常适合运行 REPL 风格的数据应用程序,例如 Jupyter 笔记本。

Zasper 使用了四分之一的 RAM 和四分之一的 CPU,相比之下 Jupyterlab 使用了 104.8 MB 的 RAM 和 0.8 个 CPU,而 Zasper 使用了 26.7 MB 的 RAM 和 0.2 个 CPU。

Zasper 的创建者最初写了一个名为 zasper_py 的项目,旨在为 Jupyter 构建一个新的前端。然而,在这个过程中,他意识到 Go 是重建 Jupyter 项目的理想选择。Go 有着出色的 REST、RPC 和 WS 协议支持,并发和性能是 Go 的强项。

Zasper 有两种风格:Electron App 和 Web App。Electron App 需要安装 zeromq,之后可以通过 npm 运行。Web App 需要构建前端,安装 zeromq,之后可以通过 Go 运行。

Zasper 的快速开始指南包括安装 zeromq、构建前端、安装 zeromq、启动后端和运行 Zasper。Zasper 的日志记录默认写入特定位置,Wiki 中提供了 Zasper 的架构和其他信息。贡献者可以通过文档、错误报告、提交 PR 或审查 PR 等方式参与 Zasper 的开发。Zasper 的路线图包括数据科学家和 AI 工程师的工作流程。


HN 热度 368 points | 评论 87 comments | 作者:thunderbong | 17 hours ago #

https://news.ycombinator.com/item?id=42572057

  • 希望 JupyterLab 能有类似 RStudio 的界面,能够控制 enter 键运行代码块,而不是一行代码,并且能够在 REPL 中运行代码块。
  • Zasper 的作者表示,Zasper 的 Jupyter 内核处理使用 Go 协程,性能优于 JupyterLab,内存和 CPU 使用率分别是 JupyterLab 的四分之一。
  • JupyterLab 的搜索功能慢,需要改进。
  • IPython 维护者和 Jupyter 开发者表示,欢迎 Zasper 这样的替代品,愿意提供帮助和支持。
  • Zasper 的作者表示,会继续改进 Zasper,感谢社区的支持。
  • 有人认为 JupyterLab 团队对 Zasper 的态度很好,展现了良好的体育精神。
  • JupyterLab 的开发者表示,欢迎替代品,认为替代品可以带来更多的选择和创新。
  • 有人认为,JupyterLab 的开发者对 Zasper 的态度很好,展现了对社区的支持和包容。

Rails for everything #

https://literallythevoid.com/blog/rails_for_everything.html

本文作者分享了自己在使用 Rails 8 构建和部署新应用时的体验。作者认为 Rails 8 非常棒,特别适合小项目和单个开发者。文中提到,最新的 Getting Started with Rails 指南非常出色,能够帮助新手快速上手。同时,SQLite 也变得更加强大,能够满足生产环境的需求,无需再添加额外的 gem。

文中还提到,Rails 8 自带基本的 CI 配置,结合 GitHub 的 2000 分钟免费运行时间,能够轻松实现持续集成。另外,Rails 8 还新增了一个身份验证生成器,能够快速添加简单的登录功能。最后,作者使用 Kamal 部署了应用,整个过程非常快速和容易。

总的来说,作者认为 Rails 8 是一个非常棒的框架,能够帮助开发者快速构建和部署应用。文中还提到了一些具体的特性和功能,例如 CI、身份验证生成器和 Kamal 部署等。


HN 热度 328 points | 评论 216 comments | 作者:FigurativeVoid | 1 day ago #

https://news.ycombinator.com/item?id=42569236

  • Rails 的 omakase 方法可以快速解决 90% 的 Web 应用程序共享的问题。
  • Spring Boot 有表单验证,但与 Rails 相比,Spring Boot 的验证需要更多的配置和集成。
  • 将表单与数据库模型耦合不是一个好习惯,但在某些情况下,这种耦合可以带来便利。
  • Go 语言社区没有提供像 Rails 或 Django 那样的全栈 Web 应用程序框架。
  • Go 语言的代码生成工具可以使其与 Rails 或 Django 相比具有更高的效率和便利性。
  • Encore 是一个可以提供全栈 Web 应用程序开发体验的 Go 语言框架。
  • ASP.NET 是一个成熟、完整且功能强大的静态类型 Web 应用程序栈。

My favourite computer ergonomics hack #

https://blog.jacobvosmaer.nl/0036-beeper/

Jacob Vosmaer 的博客:我的最喜欢的计算机人体工程学黑客

背景 我几乎 8 年前就建造了"Beeper",但从未写过博客文章来介绍它。我想它可能会很有趣。我在家里的桌子旁边坐着做电脑工作。当我专注于工作时,我会长时间保持静止,我的身体开始感到疼痛。Beeper 解决了这个问题。

Beeper 由三个部分组成:硬件、固件和软件。硬件是 Adafruit Feather Huzzah ESP8266 开发板、一个按键和一个蜂鸣器。固件是 Lua 脚本,负责控制蜂鸣器和按键。软件是运行在笔记本电脑上的脚本,负责检测屏幕是否解锁、外部显示器是否连接以及是否正在进行 Zoom 会议。

硬件 Beeper 的硬件部分包括一个 Adafruit Feather Huzzah ESP8266 开发板、一个按键和一个蜂鸣器。开发板连接到按键和蜂鸣器,按键用于重置微控制器,蜂鸣器用于发出声音。开发板通过 Micro-USB 端口供电。

固件 固件是 Lua 脚本,负责控制蜂鸣器和按键。脚本会周期性地闪烁 LED,表示微控制器正常工作。脚本还会启动一个 TCP 服务器,监听端口 5678。当收到连接请求时,脚本会调用 beep() 函数,产生一个随机频率和延迟的蜂鸣声。蜂鸣声会持续一段时间,然后停止。

软件 软件是运行在笔记本电脑上的脚本,负责检测屏幕是否解锁、外部显示器是否连接以及是否正在进行 Zoom 会议。如果屏幕未解锁或外部显示器未连接,则不发出蜂鸣声。如果正在进行 Zoom 会议,也不发出蜂鸣声。脚本会每 20 分钟检查一次,如果需要发出蜂鸣声,则会发送命令到 Beeper。

结论 Beeper 是一个简单但有效的设备,它帮助我避免长时间保持静止。它的工作原理是,当我专注于工作时,Beeper 会发出蜂鸣声,提醒我需要站起来活动一下。虽然它可能会有些烦人,但它确实起到了作用。感谢我的妻子提醒我需要注意身体健康,并感谢她对 Beeper 的忍耐。


HN 热度 221 points | 评论 61 comments | 作者:vortex_ape | 1 day ago #

https://news.ycombinator.com/item?id=42569109

  • 每次起床后喝一杯水,确保自己会再次起床
  • 戴紧身裤和腰带是实现“站立目标”的一个好方法
  • 使用 RSIGuard 软件强制休息,具有固定的休息时间和无法关闭的弹窗
  • 使用 Apple Watch 检测久坐并提醒起身
  • 自制一个计时器,记录自己在做什么,并强制休息
  • 使用 Pomodoro 计时器,每小时休息一次
  • 站立时不使用手臂,使用核心肌肉
  • 坐在 HARA 椅子上比喝水和站立更好
  • 使用自制的 Pomodoro 计时器,每小时休息一次
  • 站立式办公桌可以解决久坐问题,但也可能导致其他健康问题
  • 坐在瑞士球上比坐在椅子上更舒服
  • 最好的姿势是下一个姿势
  • 交替使用站立和坐着可以避免静态姿势带来的健康问题

Ask HN: Who is hiring? January 2025 #

https://news.ycombinator.com/item?id=42575537

请说明工作地点,并在远程工作的情况下包含“REMOTE”,如果国家有限制,则包含“REMOTE (US)”或类似的表述,以及在远程工作不可行时包含“ONSITE”。

请只有在您本人是招聘公司的一部分时发布信息——不接受招聘公司或求职板。每个公司只能发布一次。如果公司不是家喻户晓的名字,请解释您的公司是做什么的。

请只有在您正在积极招聘职位并承诺回应申请者时发布信息。

评论者:请不要回复工作帖子来抱怨某事。这里不相关。

读者:如果您个人对工作感兴趣,请仅通过电子邮件联系。

求职者:请尝试访问 http://nchelluri.github.io/hnjobs/ https://hnresumetojobs.com https://hnhired.fly.dev https://kennytilton.github.io/whoishiring/ https://hnjobs.emilburzo.com,或这个(非官方)Chrome 扩展: https://chromewebstore.google.com/detail/hn-hiring-pro/mpfal….

不要错过这些其他优秀的帖子:

谁想要被雇佣? https://news.ycombinator.com/item?id=42575535

自由职业者?寻找自由职业者? https://news.ycombinator.com/item?id=42575536


HN 热度 187 points | 评论 141 comments | 作者:whoishiring | 7 hours ago #

https://news.ycombinator.com/item?id=42575537

  • Krea 公司正在招聘高级软件工程师,负责开发创意工具,帮助设计师和艺术家使用 AI 进行多媒体创作。
  • Beekeeper Studio 公司正在招聘远程全职/兼职人员,负责市场营销、支持和 QA 工作。
  • St. Jude Children’s Research Hospital 正在招聘 Rust 软件工程师,负责重建基因组学生态系统。
  • PlantingSpace 公司正在招聘远程全职人员,负责开发 AI 系统,用于分析和研究。
  • Prophet Town LLC 公司正在招聘平台工程师和全栈工程师,负责开发和维护技术平台。
  • Machine Phase Systems 公司正在招聘软件工程师、表面科学物理学家、理论化学家和机械工程师,负责开发分子纳米技术。

Meta Wants More AI Bots on Facebook and Instagram #

https://nymag.com/intelligencer/article/meta-wants-more-ai-bots-on-facebook-and-instagram.html

Meta 公司正在进行一项大胆的尝试,将 AI 机器人引入其社交媒体平台 Facebook 和 Instagram。根据《金融时报》的报道,Meta 正在开发一项功能,允许用户在 Instagram 和 Facebook 上创建 AI 机器人,并将其作为虚拟人物存在于平台上。这些 AI 机器人将拥有自己的个人资料、头像,并能够生成和分享内容。

Meta 公司表示,这些 AI 机器人将能够与用户进行交互,甚至可以成为用户的朋友。Meta 的产品负责人 Connor Hayes 表示,这些 AI 机器人将能够“存在于我们的平台上,就像账户一样”,并将能够“生成和分享内容”。

这项功能的推出是 Meta 公司在人工智能领域的又一项大胆尝试。Meta 公司已经在人工智能领域投入了大量的资金和资源,并希望通过这项功能来获取更大的回报。然而,这项功能也引发了人们对社交媒体平台上 AI 机器人的存在的担忧。

一些人担心,这些 AI 机器人将会取代人类用户,甚至会被用来传播虚假信息。然而,Meta 公司表示,这些 AI 机器人将会被设计成与人类用户进行友好的交互,并将会遵守平台的规则和政策。

这项功能的推出也引发了人们对社交媒体平台上自动化内容的讨论。一些人认为,自动化内容将会使社交媒体平台变得更加枯燥和缺乏人情味。然而,Meta 公司表示,这些 AI 机器人将会能够生成高质量的内容,并将会为用户提供更好的体验。

总的来说,Meta 公司的这项功能是社交媒体平台上人工智能的又一项大胆尝试。虽然这项功能引发了人们的担忧,但也带来了新的机会和可能性。


HN 热度 184 points | 评论 346 comments | 作者:marban | 19 hours ago #

https://news.ycombinator.com/item?id=42571608

  • 社交媒体平台可能会使用机器人账号来增加用户的互动量和满意度
  • 有人认为这种做法是 Manipulative 和不道德的
  • 也有人认为这是一种有效的方式来增加用户的参与度和满意度
  • 有人提到 TikTok 可能也使用了类似的策略来增加用户的互动量
  • 也有人认为社交媒体平台应该更加透明地表明哪些互动是来自机器人账号
  • 有人建议社交媒体平台可以提供一个选项让用户选择是否想要看到机器人账号的互动
  • 也有人认为社交媒体平台应该更加注重用户的真实体验而不是试图操纵用户的行为

Blogs rot. Wikis wait #

https://j3s.sh/thought/blogs-rot-wikis-wait.html

这个网页是一篇关于 wiki 和博客的文章。作者将 wiki 描述为一个"陌生人",一个可以与之交流和分享想法的空间,而博客则被描述为一个"商店",一个展示自己产品和形象的地方。作者认为,博客往往会变得陈旧和无趣,而 wiki 则是不断变化和更新的。

文章的开头是一段关于 wiki 的诗歌,描述了 wiki 的特点,如"wiki 是我的深渊,是我的 wiki,是我的深渊…"。接着,作者解释了 wiki 和博客的区别,认为博客是为了吸引他人的关注,而 wiki 则是为了满足自己的需求。

文章还提到了作者正在创建一个新的 wiki,取代自己的网站,希望它能成为一个新的开始。最后,作者留下了一个链接,邀请读者关注自己的 Mastodon 账号。

总的来说,这篇文章是一篇关于 wiki 和博客的反思,作者希望通过 wiki 找到一种新的表达方式和交流方式。


HN 热度 182 points | 评论 118 comments | 作者:j3s | 19 hours ago #

https://news.ycombinator.com/item?id=42571367

  • 博客文章是作者在特定时刻的思考快照,如果作者改变了想法或学到了新东西,可以写一篇新文章并链接过去。
  • 维基页面不清楚何时应该更新,难以确定最后更新日期的可信度。
  • 博客和维基有不同的目的,博客适合记录个人思考和经验,维基更适合构建知识库。
  • 个人网站会随着时间的推移而变化,接受这一点并进行更新维护是必要的。
  • 使用最新技术的个人网站可能会在现代浏览器中渲染错误,维护和更新是必要的。
  • 一些个人网站能够保持长期的更新和维护,例如 gwern.net 和 stevepavlina。
  • 个人网站的结构和设计会随着时间的推移而变化,重要的是保持内容的更新和维护。
  • 博客可以通过添加时间戳来改善可读性和可信度。
  • 个人网站的更新和维护需要付出努力和时间,不能指望一次性完成。

My 25-year adventure in AI and ML #

https://austinhenley.com/blog/25yearsofai.html

Austin Z. Henley 是一名副教授,目前在卡内基梅隆大学任教,他的研究领域包括人工智能和机器学习。他在网页上分享了自己 25 年来在 AI 和 ML 领域的经历和成长。

Austin 最初并没有打算从事 AI 或 ML 领域的工作,但是在使用各种工具和技术的过程中,他逐渐被这些领域所吸引。从 2000 年开始,他回顾了自己在 AI 和 ML 领域的主要项目和成就。

在早期,Austin 尝试使用 VB6 编程语言创建游戏。他开发了一个基于 Tamagotchi 宠物的游戏,但由于缺乏动态和互动性,游戏并不吸引人。后来,他使用 if 语句和随机数来创建一个简单的 2D 太空射击游戏,但游戏仍然缺乏挑战性和趣味性。

在大学期间,Austin 开始使用有限状态机和高阶函数来创建更复杂的游戏。他开发了一个游戏,其中敌人行为使用有限状态机来控制,玩家可以使用不同的武器和技能来对抗敌人。游戏变得更加动态和有趣。

在研究生阶段,Austin 开始学习人工智能和机器学习的理论知识。他学习了第一阶逻辑、知识表示、支持向量机和神经网络等概念,但他发现这些理论知识并不容易应用于实际项目。

后来,Austin 开始使用 OpenCV 和神经网络来开发一个低带宽视频聊天程序。他使用 OpenCV 来检测面部表情和提取面部特征,然后使用神经网络来识别面部表情。但是,程序并不稳定,训练时间也很长。

在博士阶段,Austin 开始使用决策树、聚类和推荐算法来分析代码编辑器的日志数据。他开发了一个代码推荐系统,可以预测程序员下一步的操作。

Austin 目前的研究重点是智能开发工具,他希望使用预测模型来预测程序员的错误和提供实时反馈。他还开发了一个智能代码编辑器,可以预测程序员的需求并提供个性化的用户界面。


HN 热度 181 points | 评论 36 comments | 作者:ibobev | 1 day ago #

https://news.ycombinator.com/item?id=42569913

  • 在 AI 领域,实用性和谨慎性非常重要,不能盲目追求 AI 的应用。
  • 使用 LLM(大型语言模型)时,需要考虑其是否真正必要,是否能带来实质性的改进。
  • 在一些情况下,简单的 if 语句或回归模型可能比复杂的神经网络更有效。
  • AI 的应用需要考虑到用户的实际需求和问题,而不是仅仅追求技术的炫耀。
  • 在开发过程中,需要权衡不同方法的成本和收益,避免过度依赖 AI。
  • 使用 AI 时,需要考虑到其可能带来的风险和不确定性,例如模型的可靠性和准确性。
  • 在大公司中,AI 的应用可能需要考虑到更长期的战略和市场需求。
  • 使用 AI 时,需要考虑到其对用户体验和工作流程的影响。
  • 在 AI 的开发和应用中,需要保持谨慎和实用性,避免过度依赖技术的炫耀。