用C#编写.NET垃圾收集器:一场NativeAOT的冒险
作者尝试使用C#和NativeAOT编写一个.NET垃圾收集器。虽然最终结果无法用于生产环境,但这为深入了解.NET垃圾收集器内部机制提供了绝佳机会。过程中,作者遇到了链接器冲突等问题,并尝试了多种解决方法,最终通过修改导出函数名并使用msbuild target调整定义文件解决了问题。文章详细描述了遇到的挑战和解决方法,对.NET开发人员具有参考价值。
阅读更多
作者尝试使用C#和NativeAOT编写一个.NET垃圾收集器。虽然最终结果无法用于生产环境,但这为深入了解.NET垃圾收集器内部机制提供了绝佳机会。过程中,作者遇到了链接器冲突等问题,并尝试了多种解决方法,最终通过修改导出函数名并使用msbuild target调整定义文件解决了问题。文章详细描述了遇到的挑战和解决方法,对.NET开发人员具有参考价值。
阅读更多
谷歌宣布其开源安全芯片OpenTitan正式投产,这是首个商业化应用的开源硅基Root of Trust(RoT)。OpenTitan旨在提升设备的安全性,通过透明的设计和开放的合作模式,解决现有安全芯片的“黑盒”问题。该芯片将应用于Chromebook和谷歌云基础设施,并有望推动业界更广泛地采用开源安全设计和后量子密码学(PQC)安全启动。
阅读更多
厌倦了被社交媒体牵着鼻子走?本文提供了40多个实用技巧,帮你摆脱手机依赖。文章首先分析了过度使用手机背后的原因,如无聊、焦虑和拖延症等,并强调适度使用社交媒体并非坏事。随后,文章介绍了如何改变思维模式,将减少手机使用时间转化为增加其他活动的时间,并推荐了iOS和Android系统自带的屏幕使用时间管理功能以及一些辅助App,例如One Sec, Opal, SpeedBump等,帮助用户设置使用限制、追踪使用数据,并培养健康的使用习惯。最后,文章还提供了一些额外的建议,例如管理通知、调整应用布局、使用灰度模式等,帮助用户逐步减少屏幕时间,最终获得身心平衡。
阅读更多
微软开源了一个名为MarkItDown的Python工具,可以将各种文件(包括PDF、PowerPoint、Word、Excel、图片、音频和HTML等)转换成Markdown格式。该工具API简洁易用,支持多种文件类型,并包含OCR和语音转录功能,方便用户进行文本分析或索引。项目欢迎贡献,并遵循微软开源行为准则。
阅读更多
谷歌母公司Alphabet宣布以320亿美元全现金收购领先的云安全平台Wiz。此举旨在加速云安全和多云战略在AI时代的增长。Wiz提供易于使用的安全平台,连接所有主要云和代码环境,帮助防止网络安全事件。此次收购将整合谷歌云的AI专长和Wiz的创新技术,提升云安全水平,降低客户成本,并促进多云安全性的采用。
阅读更多
研究人员在探索Busy Beaver问题(BB)的过程中,发现了一个名为“反水螅”的BB(6)候选者。该问题与一个类似Collatz猜想的函数有关,该函数的迭代过程决定了程序的运行轨迹。反水螅的运行轨迹类似于随机游走,其是否会终止取决于奇数和偶数操作的比例。这项发现为Busy Beaver问题的研究带来了新的挑战和方向,研究重点可能从寻找最大的Busy Beaver数转移到解释和理解这些“密码生物”(Cryptids)的运行机制。
阅读更多
作者使用eBPF程序重定向端口53上的DNS请求,却遇到.NET 5的DualMode Socket导致的IPv4通过IPv4-mapped IPv6地址发送的意外情况。.NET 5的SocketsHttpHandler使用了DualMode Socket,即使是IPv4流量,也使用IPv6 Socket并设置IPv4-mapped IPv6地址。这导致eBPF程序误判为IPv6流量而拦截,最终作者通过检查skb->protocol而不是skb->family来区分IPv6和IPv4-mapped IPv6地址,解决了问题。
阅读更多
作者多年来开发了数百个项目,却总是难以坚持。他发现自己对信息的渴望超过了对项目的投入,项目上线后反馈减少,便会失去动力。他认为自己对信息的成瘾,以及算法推荐带来的即时反馈,让他难以克服产品市场匹配的挑战,最终导致项目失败。这篇文章探讨了信息时代下,如何克服对即时反馈的依赖,坚持完成项目。
阅读更多
tsbro是一个新库,旨在简化浏览器中TypeScript的使用。它绕过浏览器的导入系统,使用同步XHR获取TypeScript代码,用swc wasm编译成JavaScript,并将其转换为CJS以支持同步require。这样,开发者无需构建步骤即可在浏览器中直接运行TypeScript代码,并使用例如Preact等外部库,非常适合快速原型开发或PoC。目前,tsbro的不足之处在于堆栈跟踪难以阅读,以及需要手动创建环境声明文件。
阅读更多
间隔重复记忆系统(SRS)巧妙结合测试效应和间隔效应,让你轻松记住成千上万的事实。SRS不只适用于死记硬背,还能帮助你深入理解概念。首个此类系统Supermemo由Piotr Wozniak创建,并普及了“间隔重复”这一术语。它高效且灵活,让记忆成为一种选择。
阅读更多
Inko 语言的设计者在探索堆栈分配和借用检查的最佳方案。默认情况下,Inko 类型在堆上分配,提供灵活性但存在性能开销。为了提高性能,引入了 `inline` 修饰符以支持堆栈分配,但这也带来了新的挑战:如何在保证内存安全的前提下处理借用和移动语义。文章探讨了多种方案,包括允许字段赋值、引入唯一类型和逃逸分析,最终认为编译时借用检查是最佳方案,但实现复杂度高,短期内不会实现。目前,Inko 仍然采用不允许内联类型字段重新赋值的策略。
阅读更多
作者发布了llm-smollm2插件,该插件将一个压缩的SmolLM2-135M-Instruct LLM模型打包到Python包中,大小不到100MB,可以直接通过pip安装。文章详细介绍了插件的构建过程,包括寻找合适的模型、处理llama-cpp-python库的冗余日志输出,以及打包和发布到PyPI的过程。虽然该模型能力有限,但作者认为它是学习LLM技术的好工具。
阅读更多
本文探讨了在C++中优化整数除法运算的几种方法。直接使用整数除法效率较低,尤其当除数在编译时已知时。文章首先介绍了使用C++模板函数的方法,通过在编译时确定除数,让编译器进行优化。然而,模板函数会增加代码复杂度。随后,文章尝试使用lambda表达式和模板lambda表达式来简化代码,但发现直接使用模板lambda表达式会遇到问题,需要使用`operator()`来调用。最后,文章比较了多种方法的优缺点,包括使用简单的lambda表达式、以及更高级的模板元编程技术,并建议根据实际情况选择最合适的方法。
阅读更多
在构建DOS 2.11源码时,作者面临一个难题:古老的MASM 1.25不支持目录结构,而现代化的文件组织需要树形目录。为了避免将所有文件堆积在一个目录,作者巧妙地利用了DOS APPEND命令。APPEND是一个TSR程序,它可以拦截文件打开等系统调用,并在当前目录找不到文件时,从预设路径列表中查找。这使得MASM 1.25能够在树形目录结构中找到所需文件,解决了历史遗留问题,也展现了APPEND命令在特定场景下的强大实用性。
阅读更多
作者在2018年尝试使用Kubernetes进行容器编排,虽然体验了自动化部署的便利,但Kubernetes的高资源消耗让他苦不堪言。最终,他找到了Podman——一个轻量级的Docker替代品,结合systemd和用户持久登录,实现了类似Kubernetes的自动化更新功能,却极大地降低了资源占用,让他的服务器运行更轻快、更节能。这篇文章分享了作者从Kubernetes转向Podman的经验,以及如何利用Podman、systemd和用户持久登录实现容器的自动化更新,为寻求轻量级容器编排方案的开发者提供了新的思路。
阅读更多
本文探讨了Rust中Trait对象多重边界限制的原因。作者发现,尝试在一个Trait对象中同时使用多个Trait约束(例如`Mammal + Clone`)会导致编译错误。文章深入分析了Rust和C++中动态分发的底层机制,比较了两种语言中vtable的实现方式,并探讨了通过Trait继承来规避该限制的方法及其实现局限性。最终,作者认为,允许多重Trait边界需要引入多个vtable指针,虽然这会带来一些冗余,但能有效解决类型转换问题。
阅读更多
美国情报机构发布新指令,加深与大型科技公司的合作,甚至愿意为此承担风险。这反映出科技巨头如今掌握的权力已超越许多国家,情报机构不得不依赖它们获取信息。指令授权情报机构与公司共享机密信息,并通过各种途径简化合作流程。这引发了对权力平衡的担忧,以及科技巨头可能滥用信息和影响政府决策的担忧。文章认为,这标志着权力从国家转移到大型科技公司的趋势进一步加剧。
阅读更多
游戏开发商Firaxis Games在开发《文明VII》时,与肖尼部落酋长Ben Barnes合作,真实还原了肖尼文化和历史。这种合作不仅体现在游戏中对肖尼文明和领导者Tecumseh的精准刻画,还延伸到建立录音棚,以支持肖尼语的保护和传承。这不仅是一场游戏开发的成功案例,更是一段游戏与文化传承交织的感人故事。
阅读更多
作者在个人项目中大量使用Bootstrap,特别是用于Anki Books和Larder两个项目。他赞扬Bootstrap简化了交互式UI小部件的创建,并分享了在Larder项目中使用Bootstrap颜色变量自定义主题的经验。作者将Bootstrap的主题色设为变性人旗帜的颜色,并对结果感到满意。他特别提到Bootstrap节省了大量工作,只需修改少量CSS变量就能轻松改变网站整体颜色风格,避免了复杂的色彩设计工作。
阅读更多
皮尤研究中心2024年在线调查中出现了一个奇特的Bug:一些受访者反馈“yes”选项被错误地显示为“forks”。调查发现,该问题源于一个“lightbox popup”设计特性,导致部分浏览器将英文问卷误判为西班牙语,并触发谷歌翻译的自动翻译功能。而谷歌翻译中存在一个奇怪的错误:将西班牙语“yes”翻译成英语时,结果是“forks”。皮尤研究中心通过禁用浏览器翻译功能和改进程序,解决了该问题,并确认该Bug对调查数据影响微乎其微。
阅读更多
这个项目构建了一个实时AI语音聊天系统,让你可以用语音与大型语言模型(LLM)进行自然对话。它采用客户端-服务器架构,通过WebSockets传输音频,实时转录语音、处理文本并合成语音回复。该系统支持多种LLM后端(Ollama、OpenAI)、TTS引擎(Kokoro、Coqui、Orpheus)以及自定义语音和模型。 它还具有低延迟、智能轮流对话、灵活的AI模型选择等特点,并提供Docker化部署,方便用户快速上手。
阅读更多
辛西娅·奥齐克在《死信办公室的声音》中,以独特的视角探讨了书信的消亡与不朽。从拜伦与卡罗琳·兰姆的热情书信到她本人化名卡罗琳·兰姆写给哲学家摩根贝瑟的戏谑情书,奥齐克展现了书信的多重面貌:它既是浪漫的载体,也是文学创作的灵感源泉,更是个人情感的真实告白。她还追溯了书信在文学史上的重要地位,从《弗兰肯斯坦》到《傲慢与偏见》,众多经典作品都以书信为叙事结构。文章也探讨了书信在不同时代背景下的演变,从传统手写信到电子邮件再到社交媒体,书信的形式不断变化,但其承载的情感和价值却依然存在。最终,奥齐克以对书信的深情缅怀,寄托了对逝去情感与时代的追忆,以及对未来人际交流的思考。
阅读更多
Type,一家由Y Combinator支持的AI原生文档编辑器公司,正在招聘一位资深软件工程师加入其布鲁克林团队。理想的候选人应具备丰富的Web应用开发经验,精通React和TypeScript,并对产品策略有深入的理解。工作内容涵盖构建高级富文本编辑功能、多人协作编辑功能以及基于LLM的写作和编辑功能等。公司提供具有竞争力的薪资、股票期权以及全面的福利待遇。
阅读更多
ChatGPT最新上线的AI图像生成器一夜爆红,用户纷纷用其生成宫崎骏风格的图像,引发版权争议。该工具能够模仿特定工作室的风格,例如吉卜力工作室,甚至可以根据用户上传的图片进行风格转换。这一功能与谷歌Gemini的AI图像功能类似,都能够轻松再现受版权保护作品的风格,引发了关于生成式AI模型是否侵犯版权的担忧。虽然法律界人士认为风格本身不受版权保护,但训练模型所使用的素材可能涉及版权问题,目前仍处于法律灰色地带。OpenAI回应称允许模仿广泛的风格,而非个体艺术家的风格,但这并未完全解决争议。
阅读更多
Model Context Protocol (MCP) 迅速成为 LLM 驱动的聊天和代理与第三方数据和工具集成的标准。然而,其便捷性也带来了安全和隐私方面的风险。文章分析了 MCP 的安全漏洞,例如缺乏完善的身份验证机制、允许执行用户提供的代码、以及 LLM 本身在处理大量数据和自主性方面的局限性。此外,MCP 还可能导致敏感数据泄露和意外数据聚合,对企业内部数据安全构成挑战。作者建议开发者、应用和用户共同努力,提高 MCP 的安全性,并谨慎使用该协议,避免潜在风险。
阅读更多
直接将工具调用的完整输出反馈给大型语言模型(LLM)成本高且速度慢。文章指出,使用输出模式获取结构化数据,让LLM通过生成的代码来编排处理过程,是一种更简单高效的方法。传统方法中,将工具输出作为消息反馈给LLM,让其决定下一步操作,在数据量小时有效,但面对真实世界的大量数据(例如,从Linear和Intercom的MCP服务器获取的JSON数据),这种方法会迅速失效。文章建议使用代码执行作为数据处理的基本方式,利用变量作为内存,通过代码编排多个函数调用,实现可扩展的数据处理,并解决LLM处理大量数据时存在的成本高、速度慢和可能丢失数据的问题。 这需要构建安全的、无状态的AI运行时环境,目前仍处于早期阶段。
阅读更多
Google的reCAPTCHA技术用于识别网站访客是否为人类,但其数据收集方式与GDPR存在冲突。reCAPTCHA通过分析用户行为(如鼠标移动、按键次数等)以及收集IP地址、浏览器信息等个人数据来评估用户身份。由于未获得明确同意,网站运营商需证明其使用reCAPTCHA有正当理由,但这很难做到,因为Google对数据的具体用途不明确,用户的隐私风险难以评估。文章建议网站运营商使用更隐私友好的替代方案,并强调透明化操作、获取用户同意以及数据最小化原则的重要性。
阅读更多
Apache Hudi是一个开源的数据湖仓平台,它构建于高性能的开放式表格式之上,能够高效地摄取、索引、存储、服务、转换和管理跨多个云数据环境的数据。Hudi支持多种数据格式和来源,提供原子提交、回滚/恢复支持以及快速增量处理功能,并具有可扩展的索引子系统以加速查询。它还支持多种查询类型,包括快照查询、增量查询和时间旅行查询,并提供与Apache Hive Metastore等元数据存储的集成。
阅读更多
秘鲁文化部宣布在卡拉尔考古遗址发现一座金字塔和一个巨型地画。这座隐藏在茂密植被下的金字塔至少有三层平台,其垂直巨石和中央楼梯是卡拉尔建筑的典型特征。同时发现的巨型地画描绘了一个人物头像,其风格与北部塞钦文化相似,表明卡拉尔与其他安第斯文明之间存在早期文化交流。这一发现不仅丰富了对卡拉尔城市规划的理解,也为其旅游业发展提供了新的潜力,进一步展现了美洲最古老文明的复杂性和非战争发展的社会组织结构。
阅读更多
在恩维尔·霍查领导下的阿尔巴尼亚人民共和国时期,出于对外部侵略的极度 paranoia,建造了超过75万座碉堡,平均每平方公里5.7座。这些碉堡遍布全国各地,成为独特的景观,也反映了霍查极权统治下的社会和经济现状。尽管从未投入实战,但这些碉堡耗费了大量资源,对阿尔巴尼亚的经济发展造成严重影响,如今则成为独特的旅游景点和当地居民的另类住所。
阅读更多