测试并非沉没成本:它如何加速你的团队

2025-04-05
测试并非沉没成本:它如何加速你的团队

本文探讨了软件工程师普遍抵制编写测试的原因,以及测试对于提高代码质量和团队效率的重要性。作者以自身经历为例,指出即使在压力巨大的创业环境下,放弃测试也是一个错误。文章强调测试并非仅仅是单元测试、集成测试等类型的区分,而是验证代码核心功能的代码块,它能够按需运行、快速重复、在其他地方复制和自动化。作者还指出,编写测试会促使开发者编写更易于测试的代码,从而提高代码质量和模块化程度,并最终提升团队效率。最终,作者呼吁工程师们重视测试,将其视为提高生产力和减少bug的关键,并利用AI辅助测试,但不能完全依赖AI。

阅读更多
开发

Airbnb如何预测房源生命周期价值

2025-04-04
Airbnb如何预测房源生命周期价值

Airbnb为了提升用户体验,开发了一个预测房源生命周期价值(LTV)的框架。该框架估算三种LTV:基线LTV、增量LTV和营销驱动增量LTV。基线LTV预测房源在未来365天内的预订量,利用机器学习和房源信息进行预测。增量LTV考虑了房源之间预订的竞争,通过减去被蚕食的预订量来计算。营销驱动增量LTV则衡量内部营销活动带来的额外价值。文章还讨论了在实践中遇到的挑战,例如准确测量基线LTV、衡量增量性和处理不确定性(例如疫情期间)。Airbnb利用LTV来识别高价值房源、改进房源推荐以及评估营销活动效果。

阅读更多

AI图像生成模型的盲点:镜子中的反射

2025-04-03
AI图像生成模型的盲点:镜子中的反射

最新的AI图像和视频生成模型在创造逼真图像方面取得了显著进展,但它们在渲染镜子反射方面却存在一个持续的挑战。研究人员测试了多个模型,发现它们经常生成扭曲、不一致或完全错误的反射图像。例如,Gemini模型在渲染猫和椅子等物体反射时存在问题,Ideogram模型则在处理人物图像的反射时出现错误。这表明,虽然AI图像生成技术发展迅速,但在物理精度方面仍有很大的提升空间,准确模拟现实世界的物理现象,例如镜子反射,仍然是一个重要的挑战。

阅读更多
AI

用圆弧逼近椭圆:一种更实用的绘图技巧

2025-04-01
用圆弧逼近椭圆:一种更实用的绘图技巧

传统的椭圆绘制方法在实际应用中存在局限性。本文介绍了一种利用多个固定半径圆弧逼近椭圆的技巧,该方法通过在CAD软件中绘制椭圆,然后将其分割成若干角度相同的扇形,再将这些扇形的弦和半径映射到椭圆上,最终得到一系列圆弧,从而构成近似椭圆的曲线。这种方法尤其适用于建筑设计等领域,可以根据需要调整圆弧数量和角度,灵活控制曲线形状,获得更实用、美观的造型。

阅读更多
设计 几何绘图

Piranesi 透视技巧:一种被遗忘的艺术技巧的重新发现

2025-03-27
Piranesi 透视技巧:一种被遗忘的艺术技巧的重新发现

本文探讨了18世纪艺术家皮拉内西(Giovanni Battista Piranesi)使用的独特透视技巧。与传统透视法不同,皮拉内西的技巧在描绘一系列相似的物体时,采用近大远小的比例,而非真实的透视收缩。这种技巧虽然违反了透视规则,却能增强图像的可读性,使画面更易于理解。文章分析了这种技巧的数学原理,并通过与传统透视法的对比,展示了其在图像处理和地图绘制中的应用潜力。作者甚至开发了一种算法,将这种技巧应用于图像编辑软件,为图像处理提供了一种新的视角。

阅读更多
设计

可交互智能蛋糕:用蛋糕做个摄像头

2025-03-22
可交互智能蛋糕:用蛋糕做个摄像头

本文讲述了作者与一位糕点机器人专家合作,制作一个可交互的智能蛋糕的故事。这个蛋糕不仅外观像相机,内部还嵌入了摄像头、LED灯、热敏打印机等,能够检测到人脸,并拍照打印个性化收据。文章详细介绍了硬件、软件、代码和组装过程,并分享了最终成果,一个可以拍照的美味蛋糕!

阅读更多

GraalVM for JDK 24发布:性能提升与更小体积

2025-03-18
GraalVM for JDK 24发布:性能提升与更小体积

GraalVM for JDK 24正式发布!此版本带来了诸多改进,包括基于机器学习的GraalNN,平均提升微服务基准测试峰值性能约7.9%;全新的SkipFlow优化,使原生可执行文件缩小约6.35%;对Java Agent的premain支持增强,以及对Vector API的优化,使其性能与JIT相当。此外,还增强了安全特性,例如改进的SBOM支持,以及调试和监控功能的提升。总而言之,GraalVM 24在性能、体积和安全性方面都有显著改进,值得开发者尝试。

阅读更多
开发 Native Image

时间旅行者的拖延症:一种策略?

2025-03-18
时间旅行者的拖延症:一种策略?

拥有永恒的时间,一切任务都不紧急。但有些重要任务却令人望而生畏,失败则意味着人生的彻底失败。本文讲述一位时间旅行者如何通过拖延——听音乐、收集旧书、观光旅游,甚至利用观光了解当地历史和文化,来研究历史事件的“模因衰变”,从而为未来计划的重大任务做准备。看似懒散的拖延,实则是他周密计划的一部分,以应对试图阻止他的敌人。

阅读更多
杂项

比基尼环礁:原子弹伤痕下的生态奇迹

2025-03-15
比基尼环礁:原子弹伤痕下的生态奇迹

近60年前,23次核爆将比基尼环礁变成人间炼狱。如今,它重现了1946年时的天堂美景,但伤痕依然可见。斯坦福大学教授Stephen Palumbi的团队发现,即使在威力相当于216座帝国大厦爆炸的“Bravo Crater”附近,也存在繁盛的珊瑚礁和鱼群。他们计划通过基因组测序研究珊瑚和椰子蟹的基因突变,探索其适应辐射环境的机制,并期望这项研究能应用于癌症治疗等领域。这项研究不仅揭示了海洋强大的恢复力,也提醒人们铭记历史,避免重蹈覆辙。

阅读更多
科技 核爆

fastplotlib:一个简单易用的科学可视化库

2025-03-11
fastplotlib:一个简单易用的科学可视化库

fastplotlib是一个新的Python科学可视化库,它专注于提供快速交互式可视化和易于使用的API。其核心设计理念是将数据视为数组,简化数据交互,并通过简单的回调函数处理事件。用户无需学习复杂的API即可进行动态数据操作和交互式可视化构建,例如更改颜色、数据等,以及定义点击事件等。这种简化的API设计降低了使用门槛,提高了可视化效率。

阅读更多
开发

重拾编程:在Commodore 64上绘制PETSCII图像

2025-03-09
重拾编程:在Commodore 64上绘制PETSCII图像

一位在IT行业工作23年的资深CTO,失业后决定挑战自我,学习复古电脑编程。他以在Commodore 64上绘制PETSCII图像为目标,详细记录了从使用在线编辑器创建图像,到使用Perl脚本转换数据,再到利用C64 BASIC程序和VICE模拟器最终在Commodore 64上显示图像的全过程。这个故事展现了他学习新技术的热情以及对复古科技的热爱,也为其他对复古电脑编程感兴趣的人提供了一份宝贵的经验分享。

阅读更多
开发

叙事在艺术中的消亡与重生:一场跨越时空的博弈

2025-02-28
叙事在艺术中的消亡与重生:一场跨越时空的博弈

本文探讨了艺术中叙事的内在与外在施加,以及20世纪艺术中对叙事破坏的尝试。绘画等视觉艺术的叙事通常由观众解读,而文学艺术则具有内在的叙事性。20世纪的先锋派运动试图打破叙事,但在文学和音乐等时间性艺术中并未取得显著成功。作者批判了艺术家或评论家对作品强加权威性叙事的做法,认为艺术作品应具备独立的审美价值。最终,文章指出,时间的维度和智识体验是文学、音乐和电影艺术中复杂叙事发展的关键因素。

阅读更多
设计

Titan:受人脑启发的AI架构,攻克长序列建模难题

2025-02-21
Titan:受人脑启发的AI架构,攻克长序列建模难题

谷歌研究人员提出了一种名为Titan的突破性AI架构,它模拟人脑的记忆系统,解决了现有深度学习模型在处理长序列数据时面临的内存限制和可扩展性问题。Titan结合了注意力机制和神经长期记忆模块,能够高效地处理和记忆历史数据,在语言建模、基因组学和时间序列预测等任务中表现出色。它还具有测试时学习能力,能够根据输入数据动态更新记忆,从而增强泛化能力和适应性。实验结果表明,Titan在各种长序列任务中显著优于现有模型,为AI发展开辟了新的方向。

阅读更多

怀旧玩具Screwball Scramble:病毒式传播与版权纠纷

2025-02-20
怀旧玩具Screwball Scramble:病毒式传播与版权纠纷

一款名为Screwball Scramble的经典怀旧玩具最近在网络上爆红。TikTok博主Drinks On Me的搞笑评测视频获得超过1.5万次观看,Reddit用户captainepeper则开发了一个网页版游戏,但随后因侵犯版权而被TOMY公司要求下架。尽管如此,这款玩具依然凭借其精巧的设计和独特的玩法吸引了众多玩家,甚至Vsauce的Michael也制作了相关视频,获得了超过1200万次观看。Screwball Scramble历经50年而不衰,其独特的魅力在于挑战玩家的技巧和耐心,也引发了人们对童年回忆和经典玩具的关注。

阅读更多

Pinterest推荐系统升级:基于嵌入的检索模型改进

2025-02-14
Pinterest推荐系统升级:基于嵌入的检索模型改进

Pinterest团队改进其基于嵌入的推荐系统,以提升个性化和多样性。他们通过先进的特征交叉(MaskNet和DHEN框架)和预训练的ID嵌入,显著提升了模型性能,并通过改进服务语料库和时间衰减求和方法进一步优化。此外,他们还探索了多嵌入检索和条件检索等先进技术,以满足用户多样化的意图,最终实现了用户参与度和保存行为的提升。

阅读更多

科技公司低估资深工程师的隐性危机

2025-02-10
科技公司低估资深工程师的隐性危机

一家科技公司为了“成本优化”,解雇了一位经验丰富的资深工程师,并用刚毕业的初级工程师替代。这并非个案,而是科技行业普遍存在的现象。公司过度依赖初级工程师,导致资深工程师经验被低估,甚至无法及时发现和纠正重大错误,最终影响系统稳定性和公司发展。这篇文章揭示了科技行业对初级人才的迷恋背后隐藏的危机,以及资深工程师被低估的严峻现实。

阅读更多

Perf 性能分析工具的栈展开难题

2025-01-31
Perf 性能分析工具的栈展开难题

Perf 是一款强大的性能分析工具,它通过 PMU 计数器溢出中断来捕获线程状态,进行性能分析。但栈展开却是一个棘手的问题。现代编译器默认不生成帧指针,导致栈回溯变得困难。虽然可以使用 -fno-omit-frame-pointer 重新编译,但代价高昂且可能导致系统库不兼容。DWARF 提供了另一种方案,但其复杂性和性能开销巨大,Linus Torvalds 都明确反对将其用于内核栈展开。因此,Perf 采取折中方案:只复制栈顶部分到用户空间进行展开,虽然限制了栈大小 (65,528 字节),但能有效平衡性能和实用性。

阅读更多
开发 栈展开

Dart宏计划搁浅:转向改进数据处理和构建速度

2025-01-29

Dart团队宣布放弃长期研发的宏功能,原因是其编译时间成本过高,影响了热重载等开发体验。团队承认宏功能的研发遇到了难以克服的技术障碍,与其继续投入有限资源,不如专注于提升数据处理能力和构建速度等更实际的需求。未来,Dart将改进数据序列化/反序列化支持,并增强构建工具`build_runner`以及推出独立的增强功能(augmentations),以提升开发者体验。

阅读更多
开发

阿里云Qwen2.5-Max:AI领域的巨大飞跃

2025-01-29
阿里云Qwen2.5-Max:AI领域的巨大飞跃

阿里云发布了其最新的AI模型Qwen2.5-Max,这是一个基于混合专家模型(MoE)的大规模语言模型。它利用超过20万亿个token进行预训练,上下文长度可达10万个token,在处理长文本和复杂推理任务方面表现出色。Qwen2.5-Max的MoE架构使其在效率和性能方面具有显著优势,能够快速准确地处理大量信息,并适用于实时分析、客户支持自动化和游戏机器人等多种应用场景。该模型注重企业应用,旨在帮助企业降低基础设施成本并提高性能。Qwen2.5-Max的出现标志着中国AI技术在全球竞争中取得了显著进展,也预示着AI技术发展将更加多元化。

阅读更多
AI

渗透测试员利用空字节注入绕过安全防护

2025-01-27
渗透测试员利用空字节注入绕过安全防护

一位经验丰富的渗透测试员0xold分享了他利用空字节注入技术发现的两个漏洞。第一个漏洞是密码重置功能中的回调URL解析问题,通过注入Unicode空字节字符`\u0000`绕过了系统的限制,成功控制了部分回调URL。第二个漏洞是路径遍历到XSS,攻击者通过fuzzing发现一个名为`templatename`的参数,利用空字节注入和自定义词表,最终成功执行XSS攻击。此外,他还通过空字节注入绕过了内部WAF,成功进行了SQL注入攻击。

阅读更多

用AI自动整理游戏收藏:技术深度解析

2025-01-23
用AI自动整理游戏收藏:技术深度解析

作者利用最新的开源AI模型Qwen2-VL Instruct,通过拍照自动整理游戏收藏。文章详细描述了从拍照上传到游戏识别、数据提取和保存的全过程,并深入探讨了模型选择、图像分辨率与识别准确率和计算时间之间的权衡,以及图像方向对识别结果的影响。作者最终选择了762x762像素作为最佳分辨率,并计划在后续文章中介绍如何将识别结果与真实游戏数据匹配。

阅读更多
AI

Zork源码探秘:15000行代码里的游戏设计与开发者恶搞

2025-01-20
Zork源码探秘:15000行代码里的游戏设计与开发者恶搞

作者Rok Ajdnik出于测试Kubernetes集群的奇思妙想,深入研究了经典文字冒险游戏Zork的15000行源代码。文章详细解读了Zork不同版本的历史、ZIL语言、游戏架构(包括解析器、游戏对象、语法、对象树等),并揭示了代码中隐藏的彩蛋(XYZZY)、不当命令(RAPE)以及开发者故意设计的随机掉落机制等趣味细节。作者还分享了其将Zork移植到Go语言的项目进展。

阅读更多
游戏

LLM终结了传统NLP?

2025-01-18
LLM终结了传统NLP?

大型语言模型(LLM)的兴起,例如ChatGPT,正在挑战传统的自然语言处理(NLP)方法。传统NLP通常将问题分解成小的子问题(例如文本分类、命名实体识别),并为每个子问题训练单独的模型,需要大量标注数据。而LLM可以通过零样本提示解决多种NLP问题,无需大量训练数据和模型重新训练,简化了流程,提高了效率。这引发了人们对LLM是否会取代传统NLP的讨论。

阅读更多
AI

字节队列限制:一段鲜为人知的网络优化技术传奇

2025-01-16
字节队列限制:一段鲜为人知的网络优化技术传奇

本文讲述了Linux内核中一个鲜为人知的网络优化技术——字节队列限制(BQL)的故事。BQL通过动态调整设备队列限制来解决缓冲区膨胀问题,从而降低延迟。作者从其在Sun Microsystems时期学习到的两个关键概念出发,讲述了BQL的设计理念、实现方法和算法细节,并用图表和数据分析了BQL带来的性能提升和潜在不足。虽然新硬件可能会逐渐取代BQL,但它在低端设备上的应用价值依然显著。

阅读更多

80年代的AI先驱:一个简单的猜动物游戏

2025-01-12
80年代的AI先驱:一个简单的猜动物游戏

本文讲述了一个在80年代用BASIC语言编写,名为“猜动物”的简单游戏。这个游戏通过决策树实现,用户回答“是”或“否”,程序逐步缩小范围,最终猜出动物。更重要的是,它能够从错误中学习,将新的问题和答案添加到知识库中,并支持进度保存和加载。这展现了即使在AI技术不发达的年代,程序员就已经开始探索可训练算法的思想,为现代机器学习奠定了基础。作者用C++重写了该算法,并对比了两种语言实现的优缺点。

阅读更多
AI

软件吞噬世界?一位资深程序员的反思

2025-01-06
软件吞噬世界?一位资深程序员的反思

一位拥有43年软件开发经验的资深程序员,在退休后经营了两家实体店,对“软件吞噬世界”这一论调进行了深刻反思。他发现,许多软件公司为了利润,不择手段,例如提高订阅价格、设计糟糕的用户体验,甚至利用算法制造冲突,损害中小企业和消费者利益。他呼吁软件行业重新审视其发展模式,关注人与人之间的连接,而不是一味追求技术进步带来的利润最大化。

阅读更多

TDK Ventures投资Silicon Box:押注先进的芯粒封装技术

2025-01-06
TDK Ventures投资Silicon Box:押注先进的芯粒封装技术

本文讲述了TDK Ventures投资Silicon Box的原因。Silicon Box 致力于开发先进的芯粒封装技术,该技术将多个小型芯片(芯粒)组合成一个完整的系统级芯片 (SoC)。这种方法克服了传统单片式芯片架构的局限性,提高了设计灵活性、成本效益和性能。Silicon Box 的创新之处在于其行业领先的互连技术和新型面板封装技术,能够实现比现有技术高出 8 倍的生产效率。TDK Ventures 投资 Silicon Box 基于其在芯粒互连方面的创新、强大的生产能力、技术专长以及强大的投资者合作伙伴关系等因素。

阅读更多
科技 芯粒

Doctolib的代理AI系统:医疗保健支持的未来

2025-01-03
Doctolib的代理AI系统:医疗保健支持的未来

Doctolib正在开发一个名为Alfred的代理AI系统,以增强其医疗保健支持团队。该系统由多个专业AI代理组成,这些代理协同工作以处理例行查询,从而使人工团队能够专注于更复杂的问题。Alfred采用了一种“人在回路”的方法,确保AI不会直接执行敏感操作,并通过精心设计的用户界面提供流畅的交互体验。该系统利用LangGraph框架来协调代理之间的复杂交互,并通过JWT进行安全身份验证和用户权限传播。目前,Alfred专注于管理医生日历的访问权限,但Doctolib计划将其应用于其他支持场景。

阅读更多

程序员的“报应”:在z/OS上运行HelloWorld的辛酸历程

2024-12-29
程序员的“报应”:在z/OS上运行HelloWorld的辛酸历程

一位程序员在研究生课程中对操作系统交互不屑一顾,多年后却因撰写博客文章需要,不得不与IBM的z/OS系统打交道。z/OS系统与现代软件工程环境大相径庭,其文本界面、JCL脚本、以及IBM的特殊命名方式都给这位程序员带来了巨大的挑战。文章详细描述了她在z/OS上创建文件(数据集合)、使用ISPF编辑器、分配数据集合、编译、链接、加载以及使用SPOOL处理输出的艰难历程,并分享了许多实用技巧和经验教训,堪称一场与“老旧”系统的技术博弈。

阅读更多

朝鲜恶意软件分析揭露:隐蔽的网络攻击

2024-12-28
朝鲜恶意软件分析揭露:隐蔽的网络攻击

安全研究人员发现了一起由朝鲜APT组织发起的网络攻击活动,该活动利用伪装成招聘挑战的恶意软件(BeaverTail)诱骗受害者。BeaverTail 恶意软件未经严重混淆,能够窃取浏览器中的加密货币钱包信息,并下载名为 InvisibleFerret 的第二阶段恶意软件。InvisibleFerret 进一步窃取浏览器数据、剪贴板信息,并充当远程访问木马(RAT)。研究人员分析了 BeaverTail 和 InvisibleFerret 的代码,揭示了其简单的代码结构和目标广泛的浏览器及系统信息窃取能力。此案例再次强调了朝鲜网络威胁的持续性和隐蔽性。

阅读更多
← 前页 1 3 4