2024 07 19 HackerNews

2024-07-19 Hacker News Top Stories #

  1. 一位7岁女孩用HTML创建的网站聚焦动物与技术,展现儿童对科技的兴趣与创造力。
  2. NVIDIA宣布自R515驱动起全面转向开源Linux GPU内核模块,提升性能并增加新功能,但仍保留部分闭源支持。
  3. Mistral AI与NVIDIA合作开发的12B参数模型Mistral NeMo,在推理和编码准确性上达到行业领先水平,支持多语言。
  4. 博士论文致谢部分展现出作者真实情感与个人故事,反映科研人员的成长与挑战。
  5. SAP AI Core的安全漏洞暴露了客户云环境和私有人工智能资产,SAP已修复漏洞并确认无数据泄露。
  6. 计算机科学家Brian Kernighan分享AWK语言的创立与发展,强调其对现代编程语言的影响。
  7. 史蒂夫·乔布斯1983年演讲中提倡计算机设计应兼顾功能与美感,预见其成为生活重要部分。
  8. 基于RP2040芯片的DECstation 3000模拟器可运行DECWindows,重现经典工作站体验。
  9. Jon Bentley 1986年的文章探讨小语言在编程中的应用,强调其在效率和灵活性上的价值。
  10. Hall of Shame网站收集黑暗设计模式实例,提醒用户注意不道德设计,促进更透明的设计实践。

My daughter (7 years old) used HTML to make a website #

https://naya.lol

7 岁的女儿使用 HTML 制作的网站:动物和技术。

  1. 动物部分

    • 提供了多个链接,用户可以点击访问不同动物的页面,包括:
      • 猫(Cats)
      • 狗(Dogs)
      • 猎豹(Cheetahs)
  2. 技术部分

    • 同样提供了多个链接,用户可以点击访问不同技术产品的页面,包括:
      • 平板电脑(Tablets)
      • 计算机(Computers)

整体来看,该网站似乎是一个分类信息页面,用户可以通过点击链接获取更多关于动物和技术的详细信息。


HN 热度 965 points | 评论 398 comments | 作者:fintler | 18 hours ago #

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

  • 很高兴看到小朋友在技术上玩得开心,希望她能继续享受这个过程。
  • 软件开发中的乐趣似乎在逐渐消失,许多人变得忙碌而严肃,缺乏对新技术的兴奋感。
  • 过去二十年科技进步迅速,导致人们对新工具的印象降低,许多新技术未能达到预期。
  • 当前生活质量普遍较低,年轻人面临许多压力,导致大家情绪低落。
  • 在美国,软件工程师在某些地区购房并不困难,但大城市的生活成本问题依然存在。
  • 对于许多新进入行业的人来说,追逐金钱而非热情,导致行业氛围变得冷淡。
  • 游戏开发仍然是一个充满热情的领域,尽管薪水较低,但热爱依然存在。
  • 现代技术的复杂性让人们在学习和使用中感到困惑,尤其是 CSS 等前端技术。
  • 许多人怀念早期互联网的简单和个性化,认为现在的开发环境过于复杂和商业化。

NVIDIA Transitions Fully Towards Open-Source Linux GPU Kernel Modules #

https://developer.nvidia.com/blog/nvidia-transitions-fully-towards-open-source-gpu-kernel-modules/

NVIDIA 在其技术博客上宣布,随着 R515 驱动程序的发布,该公司于 2022 年 5 月推出了一套开源的 Linux GPU 内核模块,并采用双重 GPL 和 MIT 许可证。最初的发布主要针对数据中心计算 GPU,GeForce 和工作站 GPU 则处于 alpha 状态。

NVIDIA 表示,未来将提供更强大和功能齐全的 GeForce 和工作站 Linux 支持,最终开源内核模块将取代闭源驱动程序。经过两年的发展,NVIDIA 的开源 GPU 内核模块在应用性能上已达到或超过了闭源驱动,并增加了多项新功能,包括异构内存管理(HMM)支持、保密计算以及与 Grace 平台的协同内存架构等。

NVIDIA 计划在即将发布的 R560 驱动程序中完全过渡到开源 GPU 内核模块。需要注意的是,并非所有 GPU 都与开源内核模块兼容。对于 NVIDIA Grace Hopper 或 NVIDIA Blackwell 等前沿平台,必须使用开源 GPU 内核模块,而闭源驱动在这些平台上不受支持。对于 Turing、Ampere、Ada Lovelace 或 Hopper 架构的新 GPU,NVIDIA 推荐用户切换到开源内核模块。对于 Maxwell、Pascal 或 Volta 架构的旧 GPU,仍需使用闭源驱动。

在安装程序方面,所有安装方法默认安装的驱动版本将从闭源驱动切换为开源驱动。用户在使用包管理器安装 CUDA 工具包时,需注意安装的元包结构。NVIDIA 还提供了一个检测助手脚本,帮助用户选择合适的驱动程序。

此外,NVIDIA 提供了针对不同 Linux 发行版的具体安装命令,以确保用户能够顺利过渡到开源驱动。对于 Windows 子系统 Linux,用户无需进行任何更改,因为该平台使用的是主机 Windows 操作系统的 NVIDIA 内核驱动。

总之,NVIDIA 正在积极推动其 GPU 驱动程序的开源化,以提高兼容性和性能,同时为用户提供更灵活的选择。


HN 热度 832 points | 评论 234 comments | 作者:shaicoleman | 1 day ago #

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

  • NVIDIA 开源驱动的意义有限,因为其依赖于专有固件和用户空间库,真正的功能仍然封闭。
  • 开源内核模块的推出可能会促使 NVIDIA 开放用户空间组件,但目前仍需依赖专有固件。
  • AMD 和 Intel 的开源驱动在用户空间库方面表现更好,GLX 库的缺失是一个主要问题。
  • NVIDIA 过去不愿开源驱动的原因与其商业利益和防止 BIOS 破解有关,现在由于硬件架构的变化,开源变得相对安全。
  • 开源驱动的推出可能是为了适应 AI 和数据中心市场的需求,减少维护成本。
  • 用户对 NVIDIA 驱动的体验因人而异,有些用户认为其稳定性高,而另一些用户则遇到兼容性问题。
  • 许多用户仍然更倾向于使用 AMD,因为其开源驱动在 Linux 上表现更好,且不需要额外的配置。

Mistral NeMo #

https://mistral.ai/news/mistral-nemo/

Mistral AI 最近发布了 Mistral NeMo,这是一个与 NVIDIA 合作开发的 12B 参数模型。该模型具有高达 128k 的上下文窗口,能够在推理、世界知识和编码准确性方面达到同类模型的最先进水平。Mistral NeMo 的架构标准化,使其易于使用,并可作为任何使用 Mistral 7B 的系统的替代品。

主要特点: #

  1. 预训练和微调:Mistral NeMo 提供了预训练的基础模型和经过指令微调的检查点,均在 Apache 2.0 许可证下发布,以促进研究人员和企业的采用。该模型经过量化感知训练,支持 FP8 推理而不损失性能。
  2. 多语言支持:该模型专为全球多语言应用设计,支持多种语言,包括英语、法语、德语、西班牙语、意大利语、葡萄牙语、中文、日语、韩语、阿拉伯语和印地语。
  3. 新型分词器 Tekken:Mistral NeMo 使用了一种新的分词器 Tekken,该分词器基于 Tiktoken,经过 100 多种语言的训练,能够比之前的 SentencePiece 分词器更高效地压缩自然语言文本和源代码。特别是在压缩源代码和某些语言(如中文、意大利语、法语等)方面,Tekken 的效率提高了约 30%。
  4. 指令微调:与 Mistral 7B 相比,Mistral NeMo 在遵循精确指令、推理、多轮对话处理和代码生成方面表现更佳。

访问和使用: #

Mistral NeMo 的权重已在 HuggingFace 上托管,用户可以通过 mistral-inference 进行尝试,并使用 mistral-finetune 进行适应。该模型也在 NVIDIA 的 NIM 推理微服务中打包,并可从 ai.nvidia.com 获取。

Mistral NeMo 的发布标志着向全球用户提供前沿 AI 模型的重要一步,旨在使各种语言的用户都能受益于先进的人工智能技术。


HN 热度 358 points | 评论 142 comments | 作者:bcatanzaro | 10 hours ago #

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

  • Mistral NeMo 模型在推理、世界知识和编码准确性方面表现出色,适合各种应用场景。
  • 12B 参数的模型在性能上有显著提升,但与较小模型的比较可能存在不公平之处。
  • 小模型在提供语言接口方面仍然有用,尤其是在特定应用中。
  • 量化训练使得 FP8 推理无性能损失,但对硬件要求较高,可能需要较大的显存。
  • 许多新模型的发布速度快,但实际应用价值和使用场景仍需进一步探讨。
  • 开源模型的商业模式仍不明确,尤其是在如何与云服务竞争方面。
  • 编程领域似乎是当前 LLM 最成功的应用场景,其他领域如法律和金融的应用尚待开发。
  • 多语言训练可能会带来跨语言的知识迁移,但仍存在一定的局限性。
  • 对于大上下文窗口的使用,硬件要求较高,普通用户可能难以实现。
  • 社区对模型的支持和更新速度较快,但仍需关注模型的兼容性和性能优化问题。

The unexpected poetry of PhD acknowledgements #

https://science.anu.edu.au/news-events/news/unexpected-poetry-phd-acknowledgements

这篇文章探讨了澳大利亚国立大学(ANU)博士论文中的致谢部分,揭示了其中蕴含的诗意和情感。作者 Tabitha Carvan 通过随机阅读博士论文的致谢部分,发现这些文字不仅是对支持者的感谢,更是一种情感的宣泄和个人故事的表达。

文章指出,尽管博士论文的其他部分通常是严谨的科学研究,但致谢部分却是作者可以自由表达情感的地方。作者们在这一页上倾诉了他们在漫长的研究过程中所经历的挑战、感激和个人成长。致谢的内容往往是公式化的,但每一段文字背后都有独特的故事。

Carvan 提到,许多博士生在写致谢时会用上华丽的辞藻,表达对家人、朋友和导师的深切感激。她引用了多个博士生的致谢实例,展示了他们如何在这一部分中表达对生活中重要人物的感激之情,以及在艰难时刻所得到的支持。

此外,文章还提到,随着时代的变化,致谢的风格也发生了变化。过去的致谢往往较为正式,而现代的致谢则更加个人化,甚至包括对宠物和咖啡师的感谢。这种变化反映了博士生在研究过程中与周围人建立的深厚联系。

总的来说,Carvan 通过对博士论文致谢部分的分析,展示了这一看似简单的文本如何承载着丰富的情感和故事,成为博士生经历的重要组成部分。


HN 热度 321 points | 评论 74 comments | 作者:zsrobinson | 1 day ago #

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

  • 博士论文的致谢部分常常展现出意想不到的诗意,反映了作者的真实情感和经历。
  • 有人认为,致谢部分是表达个人感激的重要时刻,能够展示出作者的个性和人性。
  • 许多人在写致谢时感到压力,担心如何表达才能合适,尤其是在不同文化背景下。
  • 致谢部分常常是读者最关注的部分,许多人会优先查看致谢内容。
  • 有评论提到,致谢的写作过程往往是反复推敲的,最终却是在最后时刻匆忙完成。
  • 一些人认为,致谢的内容可以是幽默和轻松的,反映出作者的真实生活。
  • 也有人提到,致谢部分可能会被抄袭,这种现象令人惊讶。
  • 许多作者在致谢中提到对家人、朋友和导师的感激,强调了他们在研究过程中的支持。
  • 有人提到,致谢部分可以是对失败的公开承认,帮助人们更好地处理学术生涯中的挫折。

SAPwned: SAP AI vulnerabilities expose customers' cloud environments and privat #

https://www.wiz.io/blog/sapwned-sap-ai-vulnerabilities-ai-security

这篇文章《SAPwned: SAP AI vulnerabilities expose customers’ cloud environments and private AI artifacts》由 Wiz 研究团队撰写,探讨了 SAP AI Core 的安全漏洞,揭示了这些漏洞如何可能影响客户的云环境和私有 AI 资产。

主要内容摘要: #

  1. 研究背景

    • 随着 AI 基础设施在商业环境中的普及,AI 服务提供商面临的租户隔离漏洞风险增加。Wiz 团队的研究集中在 SAP 的 AI 服务——SAP AI Core 上,旨在识别潜在的安全隐患。
  2. 研究发现

    • 敏感数据访问:SAP AI Core 需要访问大量敏感客户数据,使其成为攻击者的目标。通过合法的 AI 训练过程,研究人员能够执行任意代码,进而获取客户的私有文件和云环境凭证(如 AWS、Azure 等)。
    • 具体漏洞
      • Docker 和 Artifactory 访问:研究人员能够读取和修改 SAP 内部的 Docker 镜像和 Artifactory 服务器上的工件。
      • Kubernetes 集群管理员权限:获得了 SAP AI Core 的 Kubernetes 集群的管理员权限,能够访问客户的云凭证和私有 AI 资产。
      • 网络限制绕过:通过配置 Pod 的特权,研究人员绕过了网络限制,访问了内部网络。
      • AWS 令牌泄露:发现 Grafana Loki 实例,获取了 AWS S3 的访问令牌,能够访问大量日志数据。
      • 未认证的 EFS 共享:发现多个 AWS EFS 实例未进行身份验证,能够自由访问存储的 AI 数据。
      • Helm 服务器漏洞:通过未认证的 Helm 服务器,研究人员获得了 SAP 的 Docker Registry 和 Artifactory 的凭证,甚至能够进行集群接管。
  3. 安全建议

    • 研究强调了在 AI 服务中实施深度防御的重要性,建议加强内部服务的安全性,以减少潜在攻击的影响。
    • 需要改善 Kubernetes 的租户隔离标准,确保不受信任的代码与内部资产和其他租户的适当隔离。
  4. 漏洞披露时间线

    • 研究团队于 2024 年 1 月向 SAP 报告了这些安全发现,SAP 随后进行了修复并确认未有客户数据泄露。

结论: #

这项研究揭示了 SAP AI Core 在安全性方面的重大隐患,强调了在云环境中保护敏感数据和确保租户隔离的重要性。研究团队呼吁业界加强对 AI 基础设施的安全防护措施,以应对日益复杂的网络安全威胁。


HN 热度 234 points | 评论 57 comments | 作者:todsacerdoti | 1 day ago #

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

  • 这次事件的根本问题在于 K8s 配置的安全性,而不是 AI 产品本身的缺陷。
  • SAP 作为大型企业,基本的云安全问题令人失望,显示出其在云计算安全方面的不足。
  • 大公司在此类问题上损失更大,因此应更加重视安全,而小公司则可以借助不被关注的优势。
  • 研究表明攻击者能够运行恶意 AI 模型,显示出对基础设施的关注是必要的。
  • 品牌方应对安全性负责,包括确保产品在发布前经过充分测试。
  • 希望 SAP 能认真反思为何未能及时发现研究者的活动。
  • 决策者往往对技术缺乏理解,导致安全管理不善。
  • 安全研究人员通常需要在深入系统前与目标方联系,获取权限。
  • 许多企业仍在使用过时的软件,尤其是在大型企业中。
  • 使用 K8s 进行多租户管理时,安全性和复杂性是主要挑战。
  • 多租户 K8s 的实现需要严格的控制和管理,单一集群难以保证安全。
  • 对于多租户环境,使用虚拟化技术可能更有效,提供更强的隔离。
  • 不当的网络渗透行为应受到法律制裁,尤其是未经授权的入侵。
  • 进行年度渗透测试是确保产品安全的重要措施。
  • 客户的账户数据可能会暴露给同一客户,存在安全隐患。
  • 报告中的漏洞已被修复,但数据模糊处理的有效性存疑。
  • 此事件可能促使 SAP 推广其 AI 产品,但用户对安全的关注度不高。
  • 许多会计系统开始销售 AI 以自动化交易,可能导致安全访问权限问题。

A brief interview with Awk creator Dr. Brian Kernighan (2022) #

https://pldb.io/blog/brianKernighan.html

这篇文章是对计算机科学家布莱恩·肯尼汉(Brian Kernighan)的简短采访,主要讨论了他在编程语言设计方面的贡献,尤其是他与 AWK 语言的关系。

主要内容摘要: #

  1. 布莱恩·肯尼汉的背景

    • 肯尼汉是加拿大计算机科学家,曾在贝尔实验室参与 UNIX 的开发。
    • 他与丹尼斯·里奇共同撰写了《C 程序设计语言》一书。
    • 自 2000 年以来,他在普林斯顿大学培养下一代程序员,并对计算机科学界做出了重要贡献。
    • 他编写了第一个文档化的“Hello World!”程序。
  2. AWK 语言的创新

    • AWK 的主要创新是关联数组(associative arrays),这一概念在当时较新,现在已在许多编程语言中普遍采用(如 Java 和 C++ 中的哈希映射,Perl 和 Python 中的字典)。
    • 另一个重要的概念是模式-动作范式(pattern-action paradigm),虽然并不新颖,但在当时并未广泛使用,是一种有效的计算组织方式。
  3. 编程语言设计的参考

    • 肯尼汉提到在 1970 年代设计编程语言时几乎没有参考资料,因为他参与的语言都是新颖且特定用途的。
    • 他提到 Yacc 和 Lex 是重要的工具,前者用于创建和实验语法,后者用于词法分析,二者都简化了代码的编写。
  4. 对年轻人的建议

    • 肯尼汉建议年轻人尝试设计和实现小型特定用途的编程语言,这不仅有趣且实用,且比创建像 Rust 或 C++ 这样的复杂语言要容易得多。
    • 他鼓励寻找可以通过特定语言自动化的任务,并创建简单的编译器和运行时。

这篇采访展示了肯尼汉在编程语言设计领域的深厚见解和对新一代程序员的鼓励。


HN 热度 228 points | 评论 112 comments | 作者:breck | 1 day ago #

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

  • 评论者分享了 Brian Kernighan 在普林斯顿大学的教学经历,提到他早期接触 Linux 的故事。
  • 关于 awk 的实现,讨论了 gawk、mawk 和 nawk 的不同之处,认为 gawk 是 GNU 的实现。
  • 有人提到 Lex Fridman 与 Kernighan 的访谈,认为这类访谈让人感到荣幸。
  • 评论中提到 Kernighan 的著作和访谈,认为他在计算机科学领域的贡献不可忽视。
  • 讨论了 awk 与 Perl 的比较,认为 Perl 的出现影响了对 awk 的使用。
  • 有人提到 Kernighan 在访谈中提到的关联数组,认为这一概念在编程语言中非常重要。
  • 评论者对 Kernighan 的访谈风格提出了不同看法,有人认为他在访谈中表现得不够深入。
  • 讨论了编程语言的影响力,认为 awk 在某些方面对后来的语言如 Python 和 JavaScript 有影响。
  • 有人提到 Kernighan 的书籍仍然是学习编程的重要参考资料。
  • 评论中提到对 Kernighan 的尊重,认为他在计算机科学史上的地位不可动摇。

The Objects of Our Life (1983) #

https://stevejobsarchive.com/exhibits/objects-of-our-life

该网页展示了史蒂夫·乔布斯在 1983 年国际设计大会上的演讲内容,主题为“我们生活中的物品”。演讲中,乔布斯探讨了计算机设计的重要性,强调设计不仅关乎功能,更关乎美感和人类体验。

主要内容摘要: #

  1. 演讲背景

    • 乔布斯在 1983 年参加国际设计大会,时值苹果公司推出 Lisa 计算机的前夕。
    • 他认为计算机将会改变人们的生活方式,并预测到 1986 年个人计算机的销量将超过汽车。
  2. 设计的责任

    • 乔布斯指出,美国当时的设计重心主要在汽车上,而对消费电子产品的设计关注不足。
    • 他呼吁设计师们参与到计算机产品的设计中,强调无论设计好坏,计算机都会被制造出来。
  3. 计算机的未来

    • 乔布斯描绘了一个未来,计算机将成为人们日常生活中不可或缺的一部分,甚至会在某些方面超越汽车的使用时间。
    • 他提到,计算机的设计应该是美丽的,能够与用户建立情感联系。
  4. 对设计的热情

    • 乔布斯分享了自己对美的追求,认为设计不仅是装饰,而是揭示物品本质的过程。
    • 他提到,苹果公司在设计上一直追求卓越,致力于创造出不仅功能强大而且外观优雅的产品。
  5. 互动与教育

    • 演讲结束后,乔布斯与观众进行了问答环节,讨论了网络、隐私、图形设计等多个话题。
    • 他强调了将人文学科融入计算机设计的重要性,认为这将吸引更多人使用计算机。
  6. 个人哲学

    • 乔布斯表达了对“回馈社会”的渴望,认为每个人都应该为人类的进步贡献自己的力量。

总结: #

乔布斯在演讲中不仅展现了他对计算机未来的远见卓识,也表达了他对设计美学的深刻理解和对社会责任的重视。他的演讲激励了设计师们关注计算机的设计,推动了个人计算机的普及与发展。


HN 热度 207 points | 评论 104 comments | 作者:Brajeshwar | 11 hours ago #

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

  • 许多人欣赏乔布斯的演讲风格,认为他能以简单直接的方式传达复杂的想法,激发观众的共鸣。
  • 乔布斯的沟通能力不仅仅是技巧,他对产品的热情和对美的追求使他的演讲更具感染力。
  • 有人认为,乔布斯的设计理念推动了人性化科技的发展,但也有人批评这种设计导致了对技术的过度抽象,使用户与机器之间的距离加大。
  • 乔布斯的预言能力被认为是非凡的,许多他在 1983 年提出的想法在后来的科技发展中得以实现。
  • 有评论指出,乔布斯的管理风格和个性存在争议,尽管他推动了科技进步,但他的毒性管理行为也受到批评。
  • 一些人认为,乔布斯的影响力和愿景在苹果公司的文化中依然存在,强调以客户价值为导向的产品设计。
  • 对比乔布斯与现代科技领袖(如马斯克),有人认为乔布斯在社交媒体时代可能会表现得更为极端,但他在个人生活中并未公开贬低他人。
  • 有人对苹果在安全名义下限制创新表示失望,认为这与乔布斯早期的开放精神相悖。
  • 讨论中提到,乔布斯的设计理念和对美的追求在某种程度上影响了现代科技产品的方向,但也引发了对人性化设计的反思。

A RP2040 based DECstation 3000 emulator that can run DECWindows #

https://github.com/rscott2049/DECstation2040

该 GitHub 项目名为“DECstation2040”,是一个基于 RP2040 的 DECstation 3000 模拟器,能够运行 DECWindows。以下是该项目的详细摘要:

1. 项目介绍 #

  • 硬件配置

    • 使用 RP2040 芯片,工作电压为 1.8V,主频 300 MHz。
    • 配备 32 MB 的 PSRAM 和 8 MB 的 SPI 闪存。
    • 具有 uSD 卡插槽。
    • 支持 1024 x 864 的单色 VGA 输出。
    • 以太网 RMII PHY 支持(在 1.5 版本上有插槽,2.1 版本中集成)。
  • 软件功能

    • 4 端口 PSRAM PIO 引擎,提供 42/32 MB/s 的内存带宽。
    • PIO 驱动的 VGA 输出,支持 16x16 的光标覆盖层。
    • USB HID 支持 DECWindows 的键盘和鼠标输入。

2. 软件架构 #

  • PIO 引擎

    • 通过四个 PIO 引擎实现独立的内存读写访问,支持视频 DMA 和以太网流量。
    • 视频 PIO 引擎支持高达 1080p60 的像素率,默认视频率为 1024 x 768 @ 70Hz。
  • DMA 管理

    • 使用五个 DMA 通道来驱动视频 PIO 引擎,优化内存使用,减少了对每行 DMA 命令的需求。
  • USB 支持

    • 支持至少两种键盘/鼠标组合类型,具体型号包括 Rii mini X1 和 Logitech K830。

3. 硬件构建 #

  • 提供了详细的硬件构建步骤,包括电路板的焊接和测试。
  • 推荐使用 JLCPCB 进行电路板制造,并提供了物料清单(BOM)。

4. 软件构建与运行 #

  • 提供了从 Dmitry 的 LinuxCard 项目修改而来的代码,支持 RP2040。
  • 详细说明了如何下载和配置软件,编译生成可执行文件,并通过 USB 串口进行调试。

5. 项目进展与未来计划 #

  • 项目自 2023 年 3 月开始,开发者分享了在开发过程中的挑战与收获。
  • 未来计划包括优化内存使用、编写以太网仿真代码等。

6. 致谢 #

  • 项目得益于 Dmitry 的 LinuxCard 项目和其他开源项目的支持。

7. 图片与视频 #

  • 项目页面包含了多个版本的图片和视频,展示了模拟器的进展和功能。

该项目展示了 RP2040 的灵活性和强大能力,适合对硬件模拟和嵌入式系统感兴趣的开发者。


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

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

  • 有人认为 DECstation 的设计很美,尽管现在的技术已经大幅提升。
  • 回忆起 DECstation 的使用经历,许多人表示当时的工作效率很高,现在却很难找到类似的简单系统。
  • 讨论中提到,现代编程依赖于互联网的知识积累和复杂的浏览器,可能导致人们更倾向于选择现代设备。
  • 一些用户分享了在大学使用 DECstation 的经历,强调了集中式目录和 X11 的便利性。
  • 有人提到,DECstation 在运行远程应用时表现良好,尤其是在使用 Alpha 服务器时。
  • 对于 RP2040 的能力,评论者们表示惊讶,认为它能够模拟过去的大型工作站。
  • 讨论中提到,RP2040 的 PIO 引擎非常灵活,能够支持多种内存访问。
  • 有人提到,虽然 RP2040 没有内存管理单元,但可以通过模拟器运行 NetBSD 等操作系统。
  • 许多评论者怀念 DEC 的 Ultrix 系统,认为它在某些方面比现代系统更具吸引力。
  • 讨论中提到,模拟 DEC 设备的项目引发了对过去计算机技术的兴趣和怀旧情绪。

Little Languages (1986) [pdf] #

https://staff.um.edu.mt/afra1/seminar/little-languages.pdf

这篇 PDF 文档是一篇关于“小语言”(Little Languages)的文章,由 Jon Bentley 撰写,发表在 1986 年 8 月的《ACM 通讯》上。文章主要讨论了在编程中使用小语言的概念和应用。以下是文章的主要内容总结:

  1. 小语言的定义

    • 小语言是一种用于表达内容的机制,通常用于描述特定问题领域的输入。
    • 它们与大型编程语言(如 FORTRAN、COBOL、Pascal)不同,小语言更专注于特定的任务。
  2. 小语言的应用

    • 程序员每天都在使用小语言,例如在格式化输出时使用 FORTRAN 的格式描述或 COBOL 的图片描述。
    • 小语言可以简化复杂任务的描述,例如在 UNIX Shell 语言中用几行代码找到文档中最常见的 K 个单词。
  3. PIC 语言

    • 文章以 Brian Kernighan 的 PIC 语言为例,介绍了如何使用小语言来生成线图。
    • PIC 语言通过简单的文本描述来绘制图形,例如使用椭圆、箭头和盒子等基本图形元素。
  4. 小语言的实现

    • 文章讨论了如何在更原始的计算环境中实现小语言,例如在个人计算机上的 BASIC 语言。
    • 介绍了如何使用 UNIX 系统的工具(如 LEX、YACC 和 MAKE)来构建和实现小语言。
  5. 小语言的设计原则

    • 设计小语言时应考虑其目标和用途,保持语言的简单性,并使用基本的抽象概念。
    • 语言设计应具有正交性、通用性、简洁性、完整性、相似性和可扩展性。
  6. 小语言的实际应用

    • 文章通过几个例子展示了小语言在不同领域的应用,例如在化学结构描述、调查问卷设计和数据可视化中。
    • 介绍了如何使用小语言来处理调查数据,包括输入、验证、制表和输出。
  7. 小语言的处理器

    • 讨论了如何设计和实现小语言的处理器,包括如何处理语言错误和如何利用编译器构建工具(如 LEX 和 YACC)。
  8. 进一步阅读

    • 文章推荐了一些关于编译器和 UNIX 编程环境的书籍,这些书籍详细介绍了小语言的设计和实现。
  9. 问题和解决方案

    • 文章最后提出了一些问题,鼓励读者设计和实现自己的小语言,并提供了一些解决方案的提示。

总的来说,这篇文章强调了小语言在简化复杂任务、提高编程效率和灵活性方面的重要性,并提供了一些设计和实现小语言的指导原则和实际应用案例。


HN 热度 167 points | 评论 23 comments | 作者:ashish01 | 1 day ago #

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

  • 许多小语言在编程中被广泛使用,如正则表达式、SQL 查询等,但它们通常作为字符串嵌入,这限制了静态分析工具的应用。
  • 通过巧妙的元编程,可以帮助类型检查器更好地理解这些小语言,从而提高效率和提示的有效性。
  • 嵌入式 DSL(领域特定语言)应被视为系统的组成部分,而不仅仅是字符串,这样可以在编译时进行语法检查。
  • 良好的元编程系统可以扩展语言以适应特定领域,而不是反过来。
  • 构建语言的过程复杂,包括语法、解析器、编译器、编辑器插件等,导致开发者倾向于使用现有的大语言。
  • 意图编程和语言工作台的概念在 1990 年代被提出,但未得到广泛应用,JetBrains 的 MPS 是一个较好的实现。
  • MPS 的学习曲线较陡,缺乏与常用语言和 IDE 的平滑过渡,导致采用率低。
  • GraalVM 的 Truffle 语言尝试简化语言构建过程,但仍需编写解析器和解释器。
  • Tcl 是一种灵活的语言,适合在大型系统中添加自定义 DSL。

Collection of Dark Patterns and Unethical Design #

https://hallofshame.design/collection/

该网站(Hall of Shame)展示了一系列“黑暗设计模式”的示例,旨在帮助用户理解不道德的设计实践。以下是主要内容的详细摘要:

  1. 黑暗设计模式概述:网站分类展示了多种黑暗设计模式,帮助用户识别和理解这些误导性设计。

  2. 主要黑暗设计模式

    • 诱饵与转换(Bait and Switch):吸引用户的诱人优惠,随后意外更改条款,常常隐藏条件,导致用户做出未曾打算的承诺。
    • 确认羞辱(Confirmshaming):通过让用户感到内疚或羞愧来促使其注册产品或服务。
    • 伪装广告(Disguised Ads):广告伪装成用户界面元素,诱使用户点击,转向其他网站。
    • 隐藏费用(Hidden Costs):在结账最后阶段出现未提前告知的额外费用,如运费和税费。
    • 误导(Misdirection):设计流或界面元素使用户的注意力偏离预期操作。
    • 烦扰(Nagging):应用和网站通过不断打扰用户,迫使其屈服于请求。
    • 隐私诱导(Privacy Zuckering):服务或网站诱使用户分享超出其意愿的信息。
    • 蟑螂旅馆(Roach Motel):订阅服务容易注册但难以取消。
    • 悄悄加入购物车(Sneak into Basket):在结账时自动将额外商品加入购物车。
    • 陷阱问题(Trick Questions):在注册流程中使用的常见模式,表面上看似相同的复选框,实际含义却截然不同。

该网站通过这些示例,旨在提高用户对不道德设计的警觉性,促进更透明和诚实的设计实践。


HN 热度 164 points | 评论 65 comments | 作者:janandonly | 17 hours ago #

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

  • 许多在线平台使用“黑暗模式”来误导用户,例如假装其他人正在查看同一房源或显示剩余房间数量的虚假紧迫感。
  • 一些用户反映,直接联系酒店时通常能找到更便宜的价格,但这并不总是适用。
  • 许多评论提到,在线旅行代理商和航空公司常常隐藏额外费用,导致用户最终支付的价格远高于预期。
  • 有人指出,某些网站在用户搜索时故意提高价格,显示出不诚实的商业行为。
  • 许多用户对 GoDaddy 等公司的不道德行为表示愤慨,认为其商业模式存在严重问题。
  • 一些评论提到,软件开发者应该有道德规范,以抵制这些不当行为。
  • 用户对 Spotify 等平台的广告和推荐机制感到失望,认为其推送的内容越来越多且难以关闭。
  • 有人提到,手机制造商与应用开发者之间的合作,可能导致用户隐私被侵犯,设备被用作监控工具。
  • 讨论中提到,某些商业行为可能已经触犯法律,尤其是在用户取消订阅时的复杂流程。
  • 许多评论认为,教育用户识别这些“黑暗模式”是必要的,以帮助他们做出更明智的选择。