启用 JavaScript 和 Cookie 以继续。
启用 JavaScript 和 Cookie 以继续。
## FSF 庆祝 40 周年全球黑客马拉松 自由软件基金会 (FSF) 将于 11 月 21 日至 23 日举办一场全球在线黑客马拉松,以庆祝其成立 40 周年并推广自由软件开发。本次活动旨在突出自由软件黑客们常常不为人知的工作,并促进社区合作。 欢迎所有技能水平的参与者 – 无需编码经验!项目包括对自由软件目录、GNU Boot、GNU Guix 和 Org Mode 等工具的贡献,任务范围涵盖编码、文档编写和许可研究。 个人或团队(最多四人)可以免费注册并选择感兴趣的项目。将为首次贡献者、多元化团队以及最有影响力的贡献者颁发奖品。参与者还将获得证书以表彰他们的工作。 FSF 鼓励捐款以支持其工作和 GNU 操作系统。更多信息,包括注册详情和赞助机会,请访问 [fsf.org/fsf40](https://fsf.org/fsf40)。使用 #HackFSF40 参与讨论!
需要 JavaScript 才能使用此应用。
你需要启用 JavaScript 才能运行此应用。
## RP2040开发板设计与制作:概要 本指南详细介绍了以RP2040微控制器为中心,设计定制开发板的过程,强调理解*为什么*使用某些元件,而不仅仅是*如何*使用。RP2040由于其简单性、低成本和灵活性,非常适合初学者。 该过程使用KiCad,建议提前通过教程熟悉该软件。PCB设计包括原理图(电路图)和PCB布局(物理元件放置与布线)。原理图围绕五个核心元素构建:电源、闪存存储、晶体振荡器、I/O以及RP2040本身。 关键考虑因素包括使用电容进行适当的电源去耦,使用LDO稳压器降低USB-C电源电压,以及对晶体振荡器和闪存进行仔细的信号布线。本指南强调良好的原理图规范,例如一致的标签方向和清晰的元件值。 最后,本指南涵盖了制造过程,包括生成JLCPCB等服务所需的文件,并为选择自行组装电路板的人员提供了一节关于手工焊接元件的部分,重点介绍了成功焊接SMD元件所需的工具和技术。最终目标不仅仅是制作出一个可用的电路板,而是更深入地理解PCB设计原理。
## Zig:一种全新的编程方法
Nilo Stolte的文章介绍了Zig,一种新的编程语言,它为软件开发提供了一种独特的方法,远不止是替代C或C++。Zig凭借其强大的编译器而脱颖而出,该编译器能够编译C代码并交叉编译到不同的架构——这一特性已经对行业产生了影响。
文章引导读者快速入门,重点介绍了变量声明(带有类型推断)、结构体和for循环等关键概念。Zig强调简单性和控制性,允许进行低级编程,并具有位域和直接内存操作等功能。其核心优势在于能够在*编译时*执行重要操作,从而提高性能和鲁棒性。
作者通过构建数独网格示例来演示这些概念,展示了Zig如何管理数据结构和错误处理。Zig的测试块允许轻松进行原型设计和调试,即使在优化后的代码中,也可以使用内置的`@breakpoint`。最终,Zig将编译型语言的性能与解释型语言中常见的灵活性和动态功能相结合,为寻求强大而创新的工具的开发人员提供了一个引人注目的选择。
由于美国联邦政府停摆,美国联邦航空管理局已发布紧急命令,自11月10日起限制白天商业火箭发射。发射时间现在限制在东部时间晚上10点至早上6点之间,以最大限度地减少空域冲突,尤其是在佛罗里达州肯尼迪航天中心和加利福尼亚州范登堡太空军基地附近,因为空中交通管制面临人员短缺。 这主要影响SpaceX及其频繁的星链发射,并可能延迟其他任务,例如联合发射联盟的ViaSat-3 F2。美国宇航局原定于11月9日进行的火星ESCAPADE任务面临关键的发射窗口,因为在新的限制下,第二次尝试将不再可行。 停摆导致美国宇航局约95%的员工被强制休假,而包括许多TSA员工在内的关键人员仍在无薪工作。联邦航空管理局表示,发射限制是一项积极措施,旨在应对严峻形势,维护飞行安全。
## Web Monetization:可持续出版的新途径
作者最近在JSConf墨西哥探讨了Web Monetization,并与Interledger基金会讨论了它的潜力。这项新兴标准旨在为出版商提供多样化的收入来源——从一次性捐款到持续的按浏览付费模式——同时为受众提供直接支持内容创作者的方式。
用户可以通过安装浏览器扩展程序、连接基于法定货币的钱包(如USD或EUR的GateHub——*加密货币不可用*)以及浏览已实现货币化的网站(扩展程序中显示为绿色复选标记)来参与。付款会“流式传输”实时进行,可在DevTools中查看。
出版商只需在页面中添加`<link rel="monetization">`标签,并填写其钱包的支付指针即可。JavaScript API允许根据用户贡献动态更改内容——例如移除广告或解锁内容。
原生Web Monetization代码已经在Chromium中进行测试,由Interledger基金会资助。作者认为这项标准对于Web出版的财务可持续性未来具有重要意义。
## iOS 桥接 Windows:摘要
Windows Bridge for iOS (WinObjC) 是微软的一个开源项目,它使开发者能够在通用 Windows 平台 (UWP) 应用中重用现有的 Objective-C 代码和 iOS API。 这使得 iOS 应用能够在各种 Windows 10 设备上运行,并利用 Windows 的功能,如 Cortana 和通知。
**入门需要:** Windows 10 (版本 10586+), Visual Studio 2017 带有特定的开发者工具(包括通用 Windows 平台 & 使用 .NET 的移动开发),以及通过 Chocolatey 安装的命令行工具 (`choco upgrade winobjc-tools`)。
**导入 Xcode 项目** 涉及使用 PowerShell 中的 `vsimporter.exe` 工具生成 Visual Studio 解决方案。 示例,如 WOCCatalog,可用于演示功能并提供代码示例。
全面的文档、教程、开发路线图和常见问题解答可在项目的 Wiki 和 Windows Dev Center 网站上找到。 开发者可以按照 Wiki 中概述的指南并遵守 Microsoft 开源行为准则为项目做出贡献。 对于希望从源代码构建的贡献者,提供了高级安装步骤。
## 闯入编译器工程:一位应届毕业生的经历 在经历了一段艰难的求职后,作者于2024年8月在旧金山湾区获得了一份编译器工程师的工作。编译器工程师是将代码在编程语言之间转换的人——他们是*实现*,而非*创造*这些语言。 鉴于缺乏面向有志于成为编译器工程师的人员的可访问信息,本文详细介绍了作者的道路并提供了建议。 作者是2023年麻省理工学院的毕业生(数学与计算机科学),通过硕士项目、纽约一家初创公司的职位,以及现在一家大型科技公司获得了经验。他们强调进入该领域的难度——职位较少且技能门槛较高——但也强调了潜在的雇主:初创公司、大型科技公司(尤其是汽车和硬件)、学术界,甚至量化金融领域。 成功取决于推荐和人脉。作者强调积极寻求推荐,即使人脉有限。面试涵盖LeetCode风格的问题(用C++)、语言设计、中间表示、优化、编译器基础以及低级系统概念。像麻省理工学院的计算结构和性能工程这样的课程将有益于准备。 最终,作者发现编译器具有吸引力,因为它们具有低级、基础的特性以及优化性能的挑战。他们鼓励有志于成为工程师的人们要足智多谋,参与开源项目,并在艰难的就业市场中坚持不懈。 **(附注:作者的首部小说《Hello World即刻倾心》,一部以黑客马拉松为背景的青少年浪漫小说,将于11月11日出版!)**