Idris语言的新特性:绑定应用
Idris语言即将推出一个名为“绑定应用”的新特性,它通过语法糖简化了依赖类型编程中依赖对和其它类型构造的编写方式。这项特性避免了依赖于特殊编译器魔法的需求,而是将这种能力开放给所有开发者。文章详细介绍了该特性在Sigma类型、Exists类型、Subset类型、Ornaments、ForAll、ForSome以及for循环等多种场景下的应用,展示了它如何提升代码可读性和书写效率,使Idris的依赖类型编程更加简洁直观。
阅读更多
Idris语言即将推出一个名为“绑定应用”的新特性,它通过语法糖简化了依赖类型编程中依赖对和其它类型构造的编写方式。这项特性避免了依赖于特殊编译器魔法的需求,而是将这种能力开放给所有开发者。文章详细介绍了该特性在Sigma类型、Exists类型、Subset类型、Ornaments、ForAll、ForSome以及for循环等多种场景下的应用,展示了它如何提升代码可读性和书写效率,使Idris的依赖类型编程更加简洁直观。
阅读更多
《骑士骑行》是一款策略棋盘游戏,目标是用有限步数将骑士移动到目标方格。游戏中,快速到达目标、避免受攻击以及沿途抓捕棋子都能获得分数。抓捕棋子可以获得额外步数和分数(兵卒1分,骑士或主教3分,车5分,皇后9分),连续抓捕2个或更多棋子可获得额外奖励分数。移动到受攻击的方格会扣1分,抓捕所有棋子则分数翻倍。步数用尽即游戏结束。
阅读更多
本文作者将当今互联网比作一个治安混乱的贫民窟,充斥着垃圾邮件、恶意软件和网络攻击。他以自身经历和数据为例,描述了互联网的黑暗面:海量的垃圾邮件,持续不断的DDoS攻击,以及各种恶意软件的威胁。作者认为,互联网的平均智商正在下降,未来可能进一步恶化。他虽然尚未放弃互联网,但也正在考虑这一选项,并指出一些人已经开始悄然离开。
阅读更多
文章探讨了全球风险上升导致世界难以承保的可能性。作者以自身无法获得飓风保险的经历开篇,指出气候变化导致的极端天气事件频发,保险公司面临巨额损失,被迫撤出高风险地区或提高保费。文章批判了单纯依靠政治或技术手段解决问题的思维方式,认为政府强制保险公司提供保单并非长久之计,最终可能导致纳税人承担巨额损失。作者回顾了历史上的气候危机如何导致社会动荡,并指出当前的“无限可能”的思维方式掩盖了自然环境的限制。文章最后总结,世界正变得难以承保,因为许多被视为理所当然的事情不再具有经济上的可行性,并且单纯依靠政治或技术手段无法解决日益增长的系统性风险。
阅读更多
这个项目探索了如何利用Pi0、Lerobot和Rerun训练机器人。它支持Linux系统,并利用Pixi包管理器进行依赖管理。该项目包含相机标定、人体姿态和运动学分析,以及从多视角图像中提取三维关节位置和角度信息,最终目标是将同步的多相机画面转换成机器人可用的关节角度和三维位置数据,用于机器人动作重定向和精细运动技能学习。项目提供了Jupyter Notebook教程,涵盖人体姿态和运动学、身体和手部姿态重定向以及模仿学习和遥操作等内容。
阅读更多
本文作者,一位应用密码学专家,对流行的加密通讯应用 Signal 的密码学安全性进行了深入分析。文章详细介绍了密码学审计的过程和局限性,并指出一些公司虚报审计结果以误导用户的现象。作者以 Signal 为例,对其实现的加密机制进行了周末式的快速审计,并对未来审计的重点和方向进行了展望,旨在帮助用户更好地理解和评估加密应用的安全性,而非简单依赖于营销宣传。
阅读更多
这篇文章讲述了 Commodore PET 早期 BASIC 解码器中一个奇特的错误,该错误源于其对空格的处理方式。早期 BASIC 解码器会忽略关键字之间的空格,导致“LET THEN”被识别为“LETHEN”,从而引发语法错误。文章深入探讨了 BASIC 的标记化过程,解释了为什么忽略空格可以提高效率,并分析了 Commodore BASIC 1.0 的解码器代码,最终揭示了这个错误的根本原因以及在后续版本中的修复方法。
阅读更多
FBI和CISA发布联合警告,提醒用户警惕“幽灵”勒索软件。该软件自2021年出现以来,已在全球70多个国家造成损失,目标涵盖各行各业的关键基础设施。攻击者利用已知漏洞入侵系统,通过Cobalt Strike等工具横向移动,窃取数据并加密文件索要赎金。有效的防御措施包括及时修补漏洞,定期备份数据,以及监控网络中的异常活动,例如未经授权的PowerShell使用。
阅读更多
GitHub代码审查中,批量应用代码建议功能存在诸多限制:无法应用于无代码更改的建议、已关闭的Pull Request、部分代码变更视图、单行多建议、已删除行、已应用或已解决的建议、待审阅建议、多行注释以及正在合并的Pull Request。此外,还存在一些未知原因导致的“此刻无法执行该操作”的错误。
阅读更多
美国货币监理署(OCC)报告一起重大的信息安全事件,未经授权访问了其员工和高管的电子邮件,其中包含高度敏感的金融机构信息。此次事件始于2月11日发现异常系统活动,OCC立即启动应急响应协议,并于2月12日切断入侵。初步调查显示,泄露信息涉及受联邦监管金融机构的财务状况,OCC正与财政部合作,进行全面调查并改进安全措施。
阅读更多
美国联邦调查局(FBI)和荷兰当局联手捣毁了一个位于巴基斯坦的大型垃圾邮件和恶意软件传播服务,该服务名为“The Manipulators”,长期以来一直为跨国有组织犯罪集团提供网络犯罪工具。此次行动查封了数十台服务器和域名,缴获了数百万条受害者记录,其中包括至少10万条荷兰公民的记录。该服务主要通过销售网络钓鱼工具包、欺诈页面和电子邮件提取器等工具,帮助犯罪分子实施商业电子邮件入侵(BEC)等诈骗活动,导致受害公司遭受巨额经济损失。值得关注的是,“The Manipulators”的成员曾多次被媒体曝光,甚至在社交媒体上公开宣传其服务,然而他们却对自身和客户信息的保护毫无重视,最终导致自身被捕并服务被关闭。此次行动是打击网络犯罪的重大胜利,但调查仍在继续,警方正在追捕该服务的买家。
阅读更多
本文讲述了作者团队如何逆向工程一个90年代中期使用Turbo Pascal编写的DOS时代的希伯来语-英语文字处理器QText,并破解其文档加密。由于加密算法简单,且密钥包含在文件中,作者尝试了暴力破解和逆向密钥生成算法两种方法。最终,他们成功重建了密钥生成算法,并编写了Python脚本实现了自动解密。此案例展现了早期软件开发的加密技术和逆向工程的技巧,也体现了信息安全技术的发展历程。
阅读更多
新加坡南洋理工大学和法国高等矿业学校的研究团队利用农业废料——糠醛——成功研制出一种新型钙钛矿太阳能电池,其能量转换效率达到21.39%。这项突破性研究不仅降低了太阳能电池的生产成本,还减少了对石油基聚合物的依赖,为环保型可再生能源的开发提供了新的方向。虽然效率仍低于传统硅基电池,但这项研究为未来利用可持续材料制造更高效的太阳能电池提供了重要参考。
阅读更多
Lisp-Stat是一个类似于R的统计计算系统,它既适用于探索性数据分析,也适用于一线生产部署。文章指出,Common Lisp在Google的多个高可用性、高吞吐量事务系统中得到应用。选择Common Lisp的原因在于它满足了系统在探索性分析、企业级生产环境以及开源许可证方面的需求。作者援引R语言创始人之一Ross Ihaka的论文,指出Common Lisp能够克服R和Python在编译为机器码等方面的不足,是更理想的统计计算系统基础。
阅读更多
Nextcloud 安卓应用的上传功能受到了谷歌的限制,只能上传照片和视频,其他文件无法上传。谷歌以安全为由撤销了关键权限,但 Nextcloud 认为这是谷歌打压竞争对手的行为。尽管 Nextcloud 多次申诉,但谷歌拒绝恢复权限,影响了数百万用户。Nextcloud 认为这是大型科技公司利用其平台优势打压竞争对手的典型案例,并呼吁加强对大型科技公司的监管。
阅读更多
这篇文章介绍了三个自动化客户流程:客户入职流程(收集文档、身份验证、账户设置、欢迎电话和自动化欢迎材料)、KYC流程(验证客户身份、评估风险、收集文档、背景调查和合规记录维护)以及合同审查流程(初稿审查、法律团队审批、利益相关者反馈、修订跟踪、电子签名收集和最终文档存储)。通过自动化这些流程,企业可以显著提高效率,降低风险,并提升客户体验。
阅读更多
一篇关于维基百科数学编辑的论文引发了学术出版中匿名性的讨论。论文作者之一使用维基百科匿名用户名“XOR’easter”,但美国数学学会(AMS)拒绝发表该论文,原因是他们不知道该匿名的真实身份。这突显了互联网匿名性和学术界传统出版模式之间的冲突,以及学术界对匿名发表的接受度问题。作者认为维基百科的匿名政策是为了保护编辑者,而学术界需要重新思考匿名发表的意义。
阅读更多
作者先前在WebAssembly中实现了setjmp,绕过了WASI libc对异常处理提案的依赖。但该方法限制在2GB以内。文章讲述了如何利用File API和Blob类型实现基于内存的文件系统,从而处理更大的文件。由于Web I/O是异步的,而系统语言通常是同步的,作者使用了Asyncify来桥接两种范式。过程中遇到了wasm-opt优化的问题,通过创建伪wasm-opt解决。最终,通过巧妙地使用volatile函数指针,成功绕过了Asyncify对`asyncjmp_rt_start`函数的错误假设,最终实现了对大型文件的异步处理。
阅读更多
OBNC是一款用于编译Niklaus Wirth的Oberon编程语言的编译器,实现了2016年最终版本的语言规范。它将Oberon源代码转换为C语言,然后使用宿主机操作系统的C编译器和链接器进行编译和链接。OBNC编译器遵循GNU通用公共许可证,而库则遵循Mozilla公共许可证,方便项目发布。该软件包包含编译器、构建工具、文档生成器和一个小型基础库,还包含一个扩展库ext,增加了访问命令行参数、环境变量等功能。OBNC支持POSIX兼容操作系统,需要Boehm-Demers-Weiser垃圾收集器。Windows用户可下载预编译版本。
阅读更多
MIT斯隆管理学院的研究表明,AI的成功不再仅仅依赖于技术,更取决于其背后的哲学思考。文章指出,从AI的训练数据到模型的部署,哲学理念无处不在,影响着AI的推理、预测和创新能力。作者认为,企业领导者需要主动运用哲学思维,而非被动依赖隐含的哲学原则,才能充分发挥AI的价值,获得竞争优势。忽视哲学的指导,将导致AI投资回报率低下。
阅读更多
作者在ESP32上使用SSD1306 OLED显示屏的过程中,尝试了多个驱动程序,最终选择了一个已弃用的驱动程序并对其进行了修改。最初,他使用了Espressif提供的驱动程序,但该程序仅支持单一字体。之后,尝试了LVGL和U8G2库,但都存在刷新率低的问题。最后,作者回到已弃用的驱动程序,并通过修改I2C API调用使其兼容最新的ESP-IDF版本,实现了40Hz的刷新率。为了支持多种字体,作者整合了nvbdflib库,该库能够直接解析BDF字体并绘制到帧缓冲区,最终实现了高速刷新和自定义字体支持。
阅读更多
Linux内核维护者Greg KH在LKML邮件列表中力挺用Rust重写部分内核代码。他认为,大量内核bug源于C语言的细微缺陷,而Rust的内存安全特性能有效避免此类问题。虽然全部迁移到Rust不现实,但将新代码和驱动程序用Rust编写,可以显著减少bug,提高开发效率。Greg呼吁内核开发者拥抱Rust,共同维护Linux的长期健康发展。
阅读更多
9front操作系统发布了11091版本,该版本带来了大量更新,包括:改进的快照调度程序、新的Intel i225 2.5 GbE驱动程序、对AMD Ryzen的CPU温度支持、libc的Unicode 16.0规范化接口以及对多个架构(包括x86, amd64, arm64)的支持。此外,还包含对编译器、库和程序的诸多改进,例如AWK支持新的rc-quote格式,以及对各种程序的错误修复和性能优化。该版本提供了多种安装介质,方便用户在PC、树莓派、MNT Reform和QEMU上安装。
阅读更多
本文提出了一种名为梯度一致性过滤 (GAF) 的新方法,用于改进分布式深度学习优化中的梯度平均。传统方法平均微批量梯度来计算宏批量梯度,但这在训练后期容易导致梯度正交或负相关,从而造成过拟合。GAF 通过计算微梯度间的余弦距离,过滤掉冲突的更新,有效降低了梯度方差,提升了验证精度。实验结果表明,GAF 在 CIFAR-100 和 CIFAR-100N-Fine 等图像分类基准测试中,即使使用更小的微批量大小,也能显著提高精度,最高可达 18.2%,同时降低了计算量。
阅读更多
Discord的广告产品目前采用固定价格模式,基于覆盖率、频率、品牌提升和用户参与度等指标预测。其优质广告库存的CPM约为25至30美元,但具体价格取决于广告格式、地区和覆盖范围等因素。Discord选择CPM而非CPA定价,是因为广告浏览量和用户参与度都能为广告主创造价值,且CPM更适合Discord的经济模式。尽管广告业务潜力巨大,但对Discord而言,这仍是一个相对实验性的业务部门,其主要收入来源仍是Discord Nitro付费订阅服务。
阅读更多
由于IPv4地址的枯竭,运营商广泛采用CGNAT技术,将多个用户映射到同一个公网IPv4地址。这虽然解决了地址短缺的问题,但也给执法部门和安全工具带来了巨大挑战。因为一个IP地址可能对应成千上万的用户,传统的基于IP地址的识别、过滤和配置方法不再有效,导致执法调查困难,安全系统误判等问题频发。欧盟等机构已开始推动IPv6的普及,以解决CGNAT带来的安全隐患。
阅读更多
Canonical发布了Ubuntu 25.04 “Plucky Puffin”,带来了GNOME 48、改进的安装和启动体验,以及针对Spring框架的全新“devpack”。该版本提升了Intel GPU上的AI工作负载性能,并支持AMD SEV-SNP的机密计算。Linux 6.14内核改进了调度,并引入了新的NTSYNC驱动程序,提升了Wine和Proton上Windows游戏的性能。此外,Ubuntu 25.04还包含最新的工具链、改进的管理功能和网络控制,以及对Intel Core Ultra处理器和ARM64硬件的增强支持。
阅读更多
本文分析了特朗普政府的贸易保护主义政策,特别是其“解放日”关税对美国制造业的破坏性影响。作者认为,这些关税并非出于对国家安全的真正担忧,而是基于对中国经济的错误理解和短视的策略。文章探讨了克莱顿·克里斯坦森的“破坏性创新”理论,并指出美国制造业的衰落是技术进步和全球化竞争的结果,而非单一因素造成的。作者批评了美国政府试图通过关税来恢复国内制造业的做法,认为这种做法不仅低效,而且可能损害美国的国家安全利益。文章最后呼吁美国政府采取更有效的策略,而非依赖于贸易战来解决问题。
阅读更多
JEP 483通过在HotSpot JVM启动时预先加载和链接应用程序类来显著缩短启动时间。它通过监控应用程序的一次运行,并将所有类的加载和链接形式存储在缓存中,从而在后续运行中重用。此功能无需修改应用程序代码,对大型服务器应用程序启动速度提升显著,例如Spring PetClinic的启动时间缩短了42%。虽然目前缓存创建过程为两步,未来版本将简化为一步,并支持更灵活的训练运行配置。
阅读更多
Andrej Karpathy在YC演讲中探讨了软件的演变,从Software 1.0(手动编写代码)到Software 2.0(训练神经网络),再到Software 3.0(可编程大型语言模型,LLM)。他将LLM比作一种新型计算机,其上下文窗口如同内存,通过自然语言进行编程。LLM的应用场景广泛,但同时也存在一些挑战,例如幻觉、认知缺陷和安全风险。Karpathy强调了构建部分自主应用程序的重要性,这需要在人类监督下,有效利用LLM的超能力,并克服其不足。未来,LLM将成为一种新型操作系统,改变软件开发模式,让更多人参与编程,并催生出更多基于LLM的创新应用。
阅读更多