启用 JavaScript 和 Cookie 以继续。
启用 JavaScript 和 Cookie 以继续。
3分钟挑战:认识罗比,一个极其字面的机器人。罗比会完全按照你的指示执行——没有假设,没有常识,不会“自行领悟”。大多数人认为他们可以解释一个简单的过程。大多数人是错的。免费。无需注册。大约需要3分钟。由Deliberate Company打造。
## 闹钟的历史 可靠地叫醒人们的尝试由来已久,最早可追溯到公元前5世纪,古人将水钟(clepsydra)改造成闹钟。哲学家柏拉图率先设计了一种利用受困空气产生口哨的版本,而后来的改进则通过排水盆自动敲响村庄的钟声。 机械钟出现在13/14世纪,最终在敲钟前加入了音乐旋律,到了15世纪,带有别针设置闹钟的装置出现在家庭中。尽管个人在17世纪就开始尝试闹钟机制,但第一台获得专利的机械闹钟直到1876年才问世,但价格昂贵且不可靠。 工业革命推动了对准时的需求,催生了“敲门唤醒者”——他们亲自叫醒工人。这突显了几个世纪以来,对可靠闹钟的追求随着社会需求和技术进步而不断发展。
许多电脑评测关注的是设备适合*谁*,实际上是在限定可接受的追求。新款MacBook Neo,售价599美元,被定位为一台基础机器——Chromebook的竞争者,入门级笔记本电脑——评测者正确地指出了它在专业任务上的局限性。然而,这忽略了重点。 真正的学习和痴迷并非源于拥有*正确*的工具,而是源于突破现有条件的限制。Neo,尽管存在限制(8GB内存,A18 Pro芯片),但仍然是一台完整的Mac,提供完整的macOS体验和实验自由——甚至可以尝试破坏。 它的局限性不是阻碍,而是计算基础知识的学习。与封闭系统不同,Neo允许用户发现*为什么*某个东西无法工作,从而培养真正的理解。它是一款面向有抱负的创作者的机器,适合那些会无情探索、下载所有内容、并将硬件推向极限的孩子——不是为了立即获得成果,而是为了在过程中学习。它不是关于优化现有的工作流程,而是关于发现可能性,并最终,*成为*更好的自己。
2009年至2012年间,苹果的“发送到YouTube”功能——直接集成到iPhone和iPod Touch中——极大地增加了平台上的视频上传量。然而,这种便利带来了一个意想不到的副作用:视频通常会以基于iOS文件命名规则的默认标题上传(“IMG_XXXX”)。
如今,在YouTube上搜索这些“IMG_XXXX”标题,可以发现对日常生活的迷人且未经过滤的观察。这些不是精心制作的视频;它们通常是意外上传——原始、未编辑的瞬间,捕捉了从开箱书籍和家庭游戏之夜到令人惊讶的感人生活事件,例如怀孕揭晓。
由此产生的信息流非常真实,为人们提供了观察陌生人生活的独特窗口。虽然其中许多内容平淡无奇,但也有一些揭示了亲密时刻和意想不到的故事,这些故事在网上保存了十多年。这是一个未经过滤的人类体验的数字时间胶囊,证明了在短暂的一段时间内,技术无意中创造了互联网上最真实的社交信息流。
## 错误的问题:为韧性而设计 许多工作面试失败并非由于缺乏技术知识,而是对*问题*本身的误解。作者反复遇到一个模糊的要求:“设计一个高韧性的数据库。” 这不是一个数据库问题,而是一个*产品*问题——在不了解特定应用及其需求的情况下无法回答。 作者用一个例子来说明:一个详细的、可用于生产的PostgreSQL解决方案(使用Kubernetes上的CloudNativePG)被否决,而一个简单的“Cassandra”答案却被接受。这突显了一个关键点:韧性并非数据库固有的,而是由其应用场景决定的。 数据库代表着权衡——一致性与可用性(CAP定理)。 Cassandra在写入密集型工作负载(如物联网数据)方面表现出色,但牺牲了强一致性。 这对于需要ACID合规性的金融交易来说是不可接受的。 在选择数据库之前,必须提出关键问题:存储什么数据?查询模式是什么?需要什么一致性和持久性?哪些故障模式至关重要? 选择错误的数据库可能导致合规性问题、数据丢失,最终导致业务失败。真正的专业知识不在于知道*一个*解决方案,而在于提出正确的问题来*找到*解决方案。
安吉拉·利普斯,一位来自田纳西州的祖母,因一个有缺陷的人工智能面部识别系统被错误地认定为北达科他州银行诈骗案的嫌疑人。她持枪被捕并入狱近六个月,利普斯始终坚称自己无罪,并表示她从未去过北达科他州。 警方使用该软件将她与使用假身份证盗取数万美元的女性监控录像进行匹配,理由是面部特征和体型相似。至关重要的是,调查人员在逮捕她之前*没有*联系利普斯进行核实。 最终,在她的律师出示了证明她犯罪期间在田纳西州的银行记录后,她被释放了。然而,当局将她滞留在北达科他州,需要慈善机构资助她返回家园。这段经历使利普斯失去了房子、汽车和狗,而且她没有收到法戈警察的道歉。 此案凸显了人们对人工智能面部识别技术的准确性和潜在滥用日益增长的担忧,此前曾发生过类似涉及身份错误和错误指控的事件。
## Go 调度器总结
Go 调度器通过将 goroutine 多路复用到较少的操作系统线程来高效管理并发执行。它利用 GMP 模型:**G**oroutine(轻量级任务)、**M**achine(操作系统线程)和 **P**rocessor(具有本地运行队列和缓存的调度上下文)。
每个 P 允许 goroutine 在没有持续锁的情况下运行,并通过工作窃取将工作与阻塞的操作系统线程解耦。调度器的核心循环 `schedule()` 优先运行本地队列中的 goroutine,然后是全局队列(确保公平性),最后从其他 P 窃取。
Goroutine 通过在阻塞时(例如,通道操作)或完成时主动让步与调度器协作。 抢占式调度处理无响应的 goroutine。 由于其状态小,goroutine 之间的上下文切换非常快(50-100 纳秒),从而可以并发运行数百万个 goroutine。
主要特性包括用于响应速度的自旋线程、用于效率的堆栈增长以及协调所有内容的全局调度器状态 (`schedt`)。 该系统允许 Go 以最小的开销实现高并发。
## 语言景观的变迁 1992年特夫克·埃森奇的去世标志着乌比赫语最后一位说话者的逝去,这种语言以其复杂的80个辅音结构而闻名,凸显了一种全球趋势:语言快速灭绝。尽管全球约7000种语言中有3000种目前正濒临灭绝,通常是由于技术和全球化传播了强势语言,但语言并非仅仅在消失——它在*转变*。 伴随着语言消亡,一种令人惊讶的新语言形式正在涌现。科技和科学等专业领域正在产生大量的词汇,而在线亚文化则发展出独特的俚语和术语。此外,人工语言(“构语”)的有意创造——从简单的托基波纳到极其复杂的伊特库伊尔——展示了蓬勃的创造力。 这些新形式虽然不同于传统语言,但提供了独特的认知工具和审美价值。虽然保护濒危语言仍然至关重要,但认识到语言多样性的动态本质——同时的毁灭*和*爆炸式增长——至关重要。归根结底,语言是人类思想、文化和联系的不断演变的反映。
## 发展的分歧:人工智能与动力的转变
人工智能辅助编码的兴起,揭示了开发者社区长期存在的分裂,此前这种分裂被共同的流程所掩盖。许多人哀叹着代码创作的丧失——“优雅”、调试的挣扎、个人烙印——而作者发现自己的悲伤源于不同的原因。
对一些人来说,编程一直关乎*创作过程*,代码本身就是一种艺术。而对作者这样的人来说,他们开始编码是为了*达成结果*,人工智能感觉就像一个自然的发展——另一个让计算机“做事情”的工具。这种动力的差异现在变得非常明显,开发者们在手工编写代码和指导人工智能之间做出选择。
作者承认对不断变化的互联网生态系统和职业前景感到悲伤,这些焦虑与编码行为本身无关。认识到你悲伤的是*什么*——是技术本身还是环境——至关重要。如果技术丧失,一些人可能需要在其他地方寻找满足感,而另一些人可以适应并积极塑造代码周围不断变化的世界。
最终,作者拥抱这种变化,即使到达那里的路径已经改变,也能在有效的产品中找到同样的满足感。