人造肉:从33万美元的汉堡到未来餐桌

2024-12-16
人造肉:从33万美元的汉堡到未来餐桌

从1931年丘吉尔预言到2013年首个实验室培育汉堡诞生,人造肉产业历经坎坷,终于在近年来迎来爆发。早期高昂的成本(首个汉堡高达33万美元)并未阻挡创新,如今全球已有超过100家公司投入其中,总投资额达26亿美元。技术进步降低了生产成本,例如替代血清的培养基,并提升了生产效率,例如PluriMatrix技术。监管方面,美国、新加坡等国已批准人造肉上市,但普及仍需时日,预计主流化还需要20到30年。

阅读更多
科技 细胞培养

SCCS:50年后,源代码旅馆的传奇

2024-12-13

本文回顾了源代码控制系统SCCS 50 年来的影响。作者Larry McVoy详细解释了SCCS独特的编织格式,这种格式允许通过引用进行合并,避免了其他系统中基于补丁的复制方式的低效。他解释了SCCS如何利用编织格式在恒定时间内检索任何版本的文件,并保留跨版本的作者信息。尽管SCCS存在一些缺点,例如长期锁定和文件导向,但其编织格式的效率和对作者信息的保留使其成为一个具有开创性的系统,并为后来的版本控制系统如BitKeeper奠定了基础。

阅读更多

虚拟线程吞噬内存:一个网络爬虫的速度与内存之战

2025-05-30
虚拟线程吞噬内存:一个网络爬虫的速度与内存之战

作者使用Java虚拟线程构建了一个网络爬虫,起初速度大幅提升,但随后却遭遇了OutOfMemoryError。这篇文章讲述了作者如何利用虚拟线程提高爬虫速度,以及如何通过引入信号量限制并发任务数量来解决由虚拟线程导致的内存溢出问题。作者比较了使用平台线程和虚拟线程的爬虫性能,并探讨了在使用虚拟线程时需要注意的资源管理问题,提醒开发者虚拟线程虽然高效,但需要更精细的资源管理以避免内存问题。

阅读更多
开发

十年软件开发经验:我的想法转变

2025-02-05

一位软件工程师回顾十年职业生涯,分享了他对软件开发理念的转变。他不再迷信简单,认为优雅并非真正的衡量标准,好的管理至关重要。他认识到沟通在工程中的重要性,并强调了为年轻开发者提供空间的重要性。同时,他坚持一些观点,例如代码风格不必过于苛刻,代码覆盖率与代码质量无关,微服务需要合理性,大多数项目无需过度追求扩展性。这篇文章为软件开发者提供了宝贵的经验和反思。

阅读更多
开发 经验总结

Jeep弹窗广告:糟糕的用户体验

2025-02-11

Stellantis旗下的Jeep等品牌在车载信息娱乐系统中投放全屏弹窗广告,引发用户强烈不满。这些广告,例如Mopar的延保服务广告,会在车辆每次停车时出现,严重干扰驾驶体验。此举不仅损害了客户信任,也反映了汽车行业过度依赖订阅模式和广告收入的趋势。面对用户抱怨,Stellantis回应称广告是与SiriusXM合同的一部分,并建议用户手动关闭。然而,愤怒的用户已开始探索禁用广告的方法,这可能导致Stellantis失去客户,尤其是在其销量已出现下滑的情况下。

阅读更多
科技 车载广告

Ruby 3.4 新特性:更快的连接、更清晰的异常追踪和更便捷的代码

2025-01-01

Ruby 3.4 发布了!博主Chris Sinjakli重点介绍了三个令人兴奋的新特性:首先是默认的块参数名称`it`,简化了代码;其次是实现了RFC8305(Happy Eyeballs Version 2),改进了TCP套接字连接处理,尤其在IPv4和IPv6双栈网络环境下表现出色;最后是更清晰的异常回溯,方便开发者调试。这些改进提升了开发效率和体验,展现了Ruby团队对开发者体验的重视。

阅读更多
开发 Ruby 3.4

iText 9.1 发布:性能提升和 SVG 支持增强

2025-02-20
iText 9.1 发布:性能提升和 SVG 支持增强

iText 庆祝其 25 周年纪念日,发布了 iText Suite 9.1 版本。此版本在 iText Core 中大幅扩展了 SVG 实现,改进了文本定位和字体处理,并增加了对相对大小属性的支持。此外,它还显著提高了大型表格的生成性能,尤其是在向表格添加结构化标记信息时,这对于 PDF/A 和 PDF/UA 非常重要。pdfHTML 附加组件也受益于性能提升,并且现在支持 GraalVM Native Image 编译,这增强了在资源受限环境中的 PDF 生成灵活性。其他改进包括数字签名功能增强、PDF/UA-2 支持改进以及对各种附加组件的更新。

阅读更多
开发 iText

Simple Search:极简搜索栏集合

2025-01-26

Simple Search并非一个复杂的搜索引擎,而是一个简洁的搜索栏集合网站。它摒弃了花里胡哨的设计,只保留了最核心的功能:搜索。用户可以方便地在一个页面上访问多个流行搜索引擎,例如Google、Bing、DuckDuckGo等,无需在不同网站间切换。这对于需要快速搜索信息的用户来说,无疑是一个高效便捷的选择。

阅读更多
杂项

70年代的终极梦想:Sony FX-300收音机

2025-02-18
70年代的终极梦想:Sony FX-300收音机

一位70年代的孩子回忆起他梦寐以求却从未拥有的Sony FX-300“Jackal 300”收音机。这台日本主要销售的收音机配备了微型CRT电视屏幕、精密模拟调谐、顶部安装的磁带播放器/录音机、调频/调幅接收等功能,其复古设计令人惊艳。作者对这款收音机的独特设计赞赏有加,并向读者征求关于这款“圣杯级”机器的拥有经验。

阅读更多

Spice86:基于.NET的实模式DOS程序逆向工程仿真器

2025-02-20
Spice86:基于.NET的实模式DOS程序逆向工程仿真器

Spice86是一个.NET平台的实模式DOS程序仿真器,用于逆向工程和重写无源代码的DOS程序。它通过仿真程序执行,导出运行时数据(内存转储和执行流程),然后利用spice86-ghidra-plugin将数据导入Ghidra,将汇编指令转换为C#代码,逐步用C#重写汇编代码。Spice86支持多种命令行选项,包括调试、EMS内存、A20门、GDB远程调试等,并提供自定义GDB命令进行动态分析。此外,Spice86还内置了一个简易调试器,支持内存检查、反汇编、寄存器和堆栈查看,以及结构化内存查看。

阅读更多
开发 DOS仿真器

用Rust编写Windows内核驱动程序

2025-02-08
用Rust编写Windows内核驱动程序

本文介绍了使用Rust编写Windows内核驱动程序的实践经验。作者克服了Rust与C/C++类型转换的冗长问题,利用`wdk`相关的crates构建了一个简单的WDM驱动程序——“Booster”,可以修改任意线程的优先级。文章详细介绍了项目的搭建、依赖项配置、核心代码实现以及驱动程序的安装和测试过程,并指出了Rust在内核驱动开发中存在的挑战和改进方向。

阅读更多
开发

AI智能体对浏览器UX/UI的期待:一场革命性的设计

2025-01-18
AI智能体对浏览器UX/UI的期待:一场革命性的设计

随着AI智能体的兴起,浏览器用户界面(UX/UI)需要重新设计以满足其需求。文章探讨了当前浏览器UX/UI的局限性,例如信息架构不足、可访问性有限以及API集成不足等问题。为了适应AI智能体,重新设计的浏览器应注重数据可访问性、自动化功能、简化的界面元素以及安全隐私。文章还介绍了AI友好型浏览器设计的关键原则,例如上下文感知界面、低延迟交互以及模块化可定制设计等,并通过案例研究(如Brave、Microsoft Edge和Opera浏览器)展示了AI集成浏览器的成功案例。

阅读更多
开发 UX/UI设计

reCAPTCHA:一个价值万亿美元的跟踪Cookie农场?

2025-02-10
reCAPTCHA:一个价值万亿美元的跟踪Cookie农场?

一项来自加州大学欧文分校的研究表明,Google的reCAPTCHA不仅未能有效阻止机器人流量,还通过跟踪Cookie引发了隐私问题,浪费了数十亿小时的集体时间,并为Google带来了近万亿美元的数据价值。研究发现,reCAPTCHA的图像识别和行为分析功能都为Google带来了巨大的价值,前者用于广告定位,后者用于AI模型训练。研究人员估算,人们在解决reCAPTCHA上花费的时间价值高达61亿美元,而Google从reCAPTCHA中获得的价值可能高达数千亿美元。研究结论指出,reCAPTCHA的真正目的是作为一个营利性的跟踪Cookie农场,而非一项安全服务。

阅读更多
科技

YouTube:Podcast视频化浪潮下的领跑者

2025-02-26
YouTube:Podcast视频化浪潮下的领跑者

YouTube凭借其强大的视频平台优势,已成为美国最受欢迎的Podcast收听平台。通过改进产品体验,增加创作者收入分成计划,YouTube帮助听众轻松发现和收听Podcast,甚至在电视上观看。每月超过4亿小时的Podcast收听时长证明了其成功,也显示出Podcast视频化趋势的强劲势头。从体育脱口秀到犯罪悬疑,多元化的Podcast内容正在YouTube上蓬勃发展,YouTube将继续努力打造最佳Podcast平台。

阅读更多
科技 视频化

Org-Supertag:赋能 Org-mode 的超级标签系统

2025-01-03
Org-Supertag:赋能 Org-mode 的超级标签系统

Org-Supertag 是一款 Emacs Org-mode 插件,它增强了 Org-mode 的标签功能,使其不仅能为节点添加属性,还能直接操作节点,实现更灵活的知识管理。它借鉴了 Tana 的理念,采用非侵入式设计,与 Org-mode 原有功能和谐共存。Org-Supertag 引入了“超级标签”的概念,定义节点的结构和行为,并支持字段和行为系统,实现节点属性的结构化和自动化操作。其查询系统支持跨节点、标签和字段的统一搜索,并提供多种结果导出方式。

阅读更多
开发 Org-mode

PPG Wave 2.2与2.3深度解析:8位与12位DAC之谜

2024-12-15

本文深入探讨了PPG Wave 2.2和2.3合成器之间细微却重要的区别。尽管2.3使用了12位DAC,但波表声音的回放仍然是8位的,只有通过外部设备导入的采样才能充分利用12位精度。文章通过示波器测量,揭示了其独特的音频处理方式:两个振荡器交错发送数据,DAC输出频率是单个振荡器采样率的两倍,这种方法创造了独特的音色,并产生了超出人类听觉范围的高频混叠。文章还分析了其CV更新速率相对较低,但音色依然富有特色。

阅读更多
硬件 PPG Wave

寄生式SEO运营商巧妙规避谷歌惩罚

2024-12-21

文章揭露了寄生式SEO运营商Finixio/Clickout Media如何快速有效地规避谷歌对其网站的处罚。在谷歌算法更新后,Finixio/Clickout Media旗下多个网站因违反网站声誉滥用政策而受到严重处罚,流量和排名骤降。然而,他们通过巧妙地使用重定向和隐藏技术,在几天内便恢复了业务,并继续通过其寄生网站网络获利。他们甚至在受罚后扩大了运营规模,利用新网站和已有的高权重网站(如CoinTelegraph)继续进行赌博和加密货币推广。文章详细分析了他们的策略,包括利用地理位置隐藏内容、在不同平台投放内容等,并指出这种现象的根源在于谷歌算法对主题权威性的削弱,导致域名权威性成为主要的排名因素。

阅读更多

超越RAG:构建增强而非取代思考的知识管理系统

2025-01-02
超越RAG:构建增强而非取代思考的知识管理系统

本文探讨了Zettelgarden知识管理系统的设计理念,它旨在增强而非取代人类思考。作者回顾了从纸质卡片到数字笔记的演变过程,指出数字系统虽然方便搜索和链接,但也失去了纸质卡片带来的意外关联的益处。作者批判了当前AI辅助知识管理系统中过度依赖自动化和RAG(检索增强生成)模型的弊端,认为其难以处理海量信息且忽视了个人理解和知识加工的重要性。Zettelgarden则强调个人笔记的重要性,鼓励用户添加个人评论和见解,并通过独特的卡片结构促进知识间的关联。作者认为,未来的知识管理应是人机协作,计算机负责组织,而人类负责思考和理解。

阅读更多
开发

湖泊名称与颜色:一次基于卫星图像的趣味数据分析

2025-02-14
湖泊名称与颜色:一次基于卫星图像的趣味数据分析

作者进行了一次别开生面的数据分析:他收集了法国、意大利、俄罗斯和白俄罗斯四个国家最常见的十个湖泊名称,并利用卫星图像数据分析了这些湖泊的平均颜色,以此验证湖泊名称与其颜色的匹配程度。结果显示,虽然部分湖泊名称与颜色相关(例如“黑湖”),但实际颜色差异并不显著,湖泊平均颜色通常呈现浅蓝灰色。这项研究以轻松幽默的风格展现了数据分析的趣味性,也引发了对地理名称准确性的思考。

阅读更多
杂项 地理信息

Windows 文件名中的神秘方块:UTF-16 代理对的奇遇

2025-02-26

本文讲述了Windows系统中一个奇特的现象:任务管理器中出现许多名称包含奇怪方块的小型可执行文件。这些文件并非恶意程序,而是由于文件名使用了UTF-16代理对造成的显示问题。UTF-16为了兼容扩展的Unicode字符集,使用了代理对来表示超出基本多语言平面的字符。当字符串处理产生孤立或格式错误的代理对时,就会导致文件名无法显示。文章解释了代理对的概念,并提供了一个Python脚本,可以生成包含不可渲染文件名的文件,从而重现这一现象。

阅读更多
开发 代理对

C++ 标准委员会正努力驯服“UB巨龙”:提升 C++ 的安全性和可靠性

2025-03-31
C++ 标准委员会正努力驯服“UB巨龙”:提升 C++ 的安全性和可靠性

长期以来,C++ 的未定义行为(UB)一直是安全漏洞和难以调试错误的根源。C++ 标准委员会正积极努力,通过多种方法逐步解决这个问题。C++26 已经取得了一些进展,例如消除未初始化变量的 UB,并强化标准库的边界安全。未来的工作将着重系统地编目和处理 C++ 语言中的 UB,利用错误行为、语言配置文件和合约等工具,在不牺牲 C++ 性能和灵活性的前提下,提高其安全性,最终与其他现代内存安全语言的安全水平持平。

阅读更多
开发 UB

GitHub项目地图:40万+项目可视化探索

2024-12-15
GitHub项目地图:40万+项目可视化探索

程序员Anvaka利用GitHub公开数据,创建了一个包含40万多个项目的交互式地图。该项目通过Jaccard相似度算法计算项目间的关联,并使用Leiden聚类算法将项目分组,最终呈现出一个直观的可视化效果。用户可以搜索项目,并探索项目间的联系,展现了GitHub项目生态的复杂性和丰富性。

阅读更多
开发 项目关系

Hydro:Rust 的高性能分布式编程框架

2025-01-31
Hydro:Rust 的高性能分布式编程框架

Hydro 是一个用 Rust 编写的用于构建高性能分布式系统的框架,它通过数据流语言和高性能单线程 DFIR 运行时,提供了一种“构建正确”的分布式服务方法。与 Actor 或 RPC 等传统架构不同,Hydro 使用编排式 API,使跨多个位置的计算描述更加简洁。它还集成了 Hydro Deploy,方便本地或云端部署。Hydro 采用两阶段编译,先在开发者本地生成部署计划,再编译为 DFIR 生成各个机器的二进制文件,最后根据计划和云资源规格部署到云端。它已被用于构建各种高性能分布式系统,包括两阶段提交和 Paxos 等经典协议的实现。

阅读更多
开发

埃隆·马斯克的政府改革尝试:一场与官僚体系的较量

2024-12-15
埃隆·马斯克的政府改革尝试:一场与官僚体系的较量

本文探讨了埃隆·马斯克等试图改革政府低效的尝试。作者认为,民主党并未优先解决政府低效问题,马斯克的介入并非解决问题的良方,反而可能加剧问题。政府内部人士对马斯克的改革持观望态度,他们认为即使是亿万富翁也难以撼动根深蒂固的官僚体系。文章指出,冗长的法律程序和利益集团的阻挠是改革的巨大障碍,而法院在加剧这一问题上也扮演了重要角色。最终,作者呼吁重新审视政府改革的策略,并对改革的难度和复杂性有清醒的认识。

阅读更多

Bevy 0.15 Web端拖放图像功能实现

2024-12-15

本文介绍了如何在Bevy 0.15 Web应用中集成Web原生API,实现拖放图像的功能。文章详细讲解了使用wasm-bindgen、gloo和bevy_channel_trigger等工具,在Rust代码中处理DOM事件、提取文件数据、并将数据传递给Bevy引擎进行图像加载和渲染的过程。整个过程类似于JavaScript中的实现,但使用了Rust的特性,并解决了错误处理和事件监听器内存泄漏等问题。最终实现了将拖放的PNG图片加载到Bevy应用中并显示的效果。

阅读更多
开发

亚马逊英国停止销售布卢姆斯伯里图书

2025-01-24
亚马逊英国停止销售布卢姆斯伯里图书

亚马逊英国宣布停止销售布卢姆斯伯里出版社的纸质书和电子书,原因是双方在续约谈判中未能达成一致。此举可能对布卢姆斯伯里造成严重打击,也引发了业界对亚马逊与出版商之间贸易条款的担忧。亚马逊表示,布卢姆斯伯里拒绝进行诚信谈判,而其与其他出版商的合同条款则完全不同。虽然亚马逊强调客户仍可在第三方卖家处购买布卢姆斯伯里图书,但这无疑是一个高风险策略,因为这将影响到许多布卢姆斯伯里畅销书作家,例如JK罗琳。此次事件让人想起十多年前亚马逊与哈谢特出版社之间的那场公开冲突。

阅读更多

用Fortune算法生成Voronoi图:一个O(n log n)的挑战

2025-02-08

本文深入探讨了使用Fortune算法以O(n log n)时间复杂度生成Voronoi图的复杂过程。作者坦言,实现该算法的难度超乎想象,并建议除非需要每秒处理大量大型Voronoi图,否则应考虑更简单的O(n²)实现或使用现成库。文章详细解释了Voronoi图的概念、Fortune算法的原理(包括扫描线、海滩线、事件队列、抛物线等),以及算法中各种数据结构和事件处理流程,例如站点事件、圆事件、不完整边、半边等。尽管算法复杂,但其生成的Voronoi图效果令人印象深刻。

阅读更多
开发 Fortune算法

Hilbert曲线:一种优美的空间填充曲线及其可视化

2025-01-18

本文深入探讨了Hilbert曲线,一种具有良好聚类属性的空间填充曲线。作者通过将三维RGB颜色空间的Hilbert曲线投影到二维平面上,创造性地将其可视化。该可视化效果呈现出独特的艺术美感,同时直观地展现了Hilbert曲线的聚类特性。文章还介绍了Hilbert曲线的算法实现,并提供了一个Python项目,用于生成和可视化各种空间填充曲线。

阅读更多
开发

完美主义的陷阱:从量变到质变的创作之路

2025-07-05
完美主义的陷阱:从量变到质变的创作之路

本文探讨了完美主义对创作的阻碍。作者指出,完美的创意往往只存在于想象中,一旦付诸实践,就会面临与想象的差距。作者以摄影课实验为例,说明大量练习的重要性,指出“量变才能引起质变”。文中还提到了“放弃点”的概念,即创作热情消退的时刻,只有坚持练习,才能克服这个困难,最终创造出优秀的作品。

阅读更多
设计 练习
1 2 1073 1074 1075 1077 1079 1080 1081 1084 1085