最大似然估计与损失函数的深层联系

2024-12-15
最大似然估计与损失函数的深层联系

本文深入探讨了最大似然估计(MLE)与常用损失函数之间的内在联系。作者从MLE的基本概念出发,逐步解释了其与KL散度的紧密关系,并以均方误差(MSE)和交叉熵为例,详细推导了它们如何从MLE自然地导出,而非人为设定。文章清晰地阐述了,通过假设数据分布(例如线性回归中的高斯分布,逻辑回归中的伯努利分布),利用MLE最大化似然函数,最终得到MSE和交叉熵损失函数。这为理解损失函数的理论基础提供了清晰的路径,不再仅仅停留在直觉层面。

阅读更多

从舒适区到高速成长区:如何在一两年内获得五年经验

2025-02-19
从舒适区到高速成长区:如何在一两年内获得五年经验

本文探讨了职业发展中学习速度的差异。作者认为,某些时期学习效率极高,如同几年经验浓缩于几个月。他以Drivy被Getaround收购为例,讲述了在高压下完成复杂任务,获得飞速成长的经历。作者提出了“舒适区”、“学习区”、“快速成长区”和“倦怠区”四个概念,并建议在不同区域间灵活切换,保持持续学习,避免长期停留在舒适区或快速成长区导致倦怠。

阅读更多
开发 经验积累

四维空间探索:超越三维世界的几何学

2025-01-28

本文以生动形象的比喻,解释了四维空间的概念。作者通过二维生物观察三维物体,类比我们观察四维超立方体(超正方体)。文章深入浅出地讲解了如何通过截面理解四维几何,并运用旋转矩阵和线性代数知识,计算和可视化旋转后的四维超立方体在三维空间中的投影,最终呈现出复杂的几何形态。

阅读更多
数学 四维空间

欧盟启动OpenEuroLLM项目:打造开源多语言大型语言模型

2025-02-03

20家欧洲顶尖研究机构和公司组成的联盟启动了OpenEuroLLM项目,旨在开发一系列高性能、多语言的大型语言模型(LLM)。该项目旨在增强欧洲在人工智能领域的竞争力,通过开源的方式促进高品质AI技术的普及,并支持欧洲公司和公共机构开发更具影响力的产品和服务。OpenEuroLLM项目遵循欧洲的监管框架,并与开源社区合作,确保模型、软件、数据和评估的完全开放性,以满足特定行业和公共部门的需求,同时保护语言和文化多样性。

阅读更多
AI

怀旧游戏《巷猫》重制版发布

2024-12-17

程序员Joflof历经多年,终于完成了对1983年经典游戏《巷猫》的重制版。该重制版不仅保留了原汁原味的像素画面和音效,还新增了五个关卡和多人游戏模式,最多可支持4只小猫同时游戏。此外,Joflof还为街机爱好者特别增加了街机模式配置选项。目前游戏仅支持Windows系统,但作者希望有热心人士能协助移植到Linux和Mac系统。

阅读更多
游戏 重制版

Rust 语言下的即时模式 GUI 库:egui

2024-12-26

egui 是一个用 Rust 编写的即时模式图形用户界面 (GUI) 库。它轻量、高效,并提供简洁易用的 API,让开发者可以快速构建各种交互式界面。不同于传统的保留模式 GUI,egui 在每次帧都重新绘制整个 UI,从而实现更灵活的布局和更简单的状态管理。这使得 egui 非常适合游戏开发、数据可视化以及需要高响应速度的应用场景。其易用性和强大的功能使其成为 Rust 开发者构建 GUI 的绝佳选择。

阅读更多
开发 egui

AI时代的编程面试:异步队列挑战

2025-07-07

本文介绍了一种独特的编程面试题:实现一个异步队列`sendOnce`,确保单线程客户端向故障服务器发送请求时,每次只有一个请求在处理。面试考察候选人处理棘手标志逻辑、调试代码、单线程环境编程以及应对新增需求(如最小延迟、批量发送、取消机制、重试机制等)的能力。作者还探讨了AI在面试中的作用,认为AI能辅助编码,但候选人仍需具备代码审查能力,高效利用AI工具成为新的评判标准。

阅读更多
开发 异步队列

DoubleClickjacking:绕过所有Clickjacking防护的新型UI攻击

2025-01-17
DoubleClickjacking:绕过所有Clickjacking防护的新型UI攻击

DoubleClickjacking是一种新型网络攻击,它利用双击事件的计时特性绕过所有已知的Clickjacking防护措施,包括X-Frame-Options头、CSP的frame-ancestors和SameSite: Lax/Strict Cookie。攻击者通过诱导用户双击一个看似正常的按钮,在毫秒级的时间内切换到另一个窗口,从而劫持用户的操作,例如授权恶意应用程序或更改账户设置。这种攻击几乎可以影响所有网站,因为它利用了mousedown和onclick事件之间的细微时间差,即使是最快或最慢的双击也无法避免。目前,一些网站已经采取了防御措施,例如在用户进行鼠标移动或键盘交互前禁用关键按钮,但这需要客户端的保护措施。长远来看,浏览器需要开发新的标准来防御DoubleClickjacking。

阅读更多

HTML 元素全览:一次完整的 HTML 元素之旅

2025-01-25

本文以生动有趣的方式,逐一介绍了 HTML 的各种元素,从常见的标题、段落、列表到鲜为人知的 ``、``,以及废弃的 ``、`` 元素,应有尽有。文章还包含一个交互式问卷,让读者更深入地理解 HTML 元素的应用。这是一次充满乐趣的 HTML 学习之旅,带你领略 HTML 元素的丰富性和多样性。

阅读更多
开发 HTML 元素

隐私并非已死:警惕全有或全无的心态

2025-02-17
隐私并非已死:警惕全有或全无的心态

倡导隐私保护的人士经常遇到两种有害的论调:一是认为隐私已死,保护个人数据毫无意义;二是认为只有完全私密和安全的工具才值得使用。作者认为,这两种心态都会导致人们放弃努力提升隐私保护。文章鼓励人们采取渐进式的方法,庆祝每一个小小的进步,例如从短信迁移到Signal,即使并非完美,也应鼓励和支持。与其追求完美,不如通过微小的增量改进,逐步提升隐私保护水平,营造积极的隐私文化。

阅读更多

使用BFF模式构建安全的Keycloak、Angular应用程序

2025-01-28

本文介绍了如何使用Backend for Frontend (BFF)模式,结合Keycloak和Angular构建一个安全的Web应用程序。为了避免在浏览器中存储敏感数据,该方案将所有与Keycloak交互的认证流程都委托给BFF服务器处理。BFF充当Keycloak和Angular应用之间的安全中介,管理OAuth2和PKCE流程,安全地存储令牌,并防止敏感操作(如令牌刷新)到达浏览器。Angular应用无需直接与Keycloak交互,只需与BFF提供的简化端点交互。文章详细讲解了Keycloak的配置、BFF服务器(使用Express.js)的搭建,以及Angular应用的开发,并强调了这种架构在提高安全性方面的优势。

阅读更多

平台恶化:不是风投的错,是缺乏约束的错

2025-01-26

Cory Doctorow的文章探讨了社交媒体平台恶化的原因,并非简单的归咎于风投追求利润最大化。文章指出,平台的“恶化”源于用户被困于平台(高昂的切换成本和集体行动问题),以及平台缺乏市场竞争、政府监管和劳工约束。文章认为,解决平台恶化问题,关键在于打破用户锁定,增加监管和竞争,而非简单地否定资本主义。同时,文章也分析了Mastodon和Bluesky两种新兴社交媒体平台的优劣,并倡导通过技术手段(如Free Our Feeds项目)增强Bluesky的韧性,降低用户切换成本。

阅读更多
科技 平台恶化

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

2025-02-26

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

阅读更多
开发 代理对

Go语言的设计哲学:权衡与取舍

2025-01-31

本文探讨了Go语言的设计理念及其优缺点。Go语言诞生于Google,旨在简化大型并发服务器代码的编写和维护。作者通过分析Go语言的特性,例如简化的文件系统API、缺乏运算符重载、显式的错误处理以及与其他语言的互操作性,来解释其设计决策背后的权衡。虽然Go语言在某些方面受到批评,例如缺乏泛型(现已添加)和对Windows的支持不足,但作者认为这些都是为了实现其主要设计目标而做出的有意识的取舍,最终使Go成为一款高效且易于使用的工程语言。

阅读更多
开发

无恐慌Rust:能否用Rust替代C语言编写底层系统库?

2025-02-03

本文探讨了使用Rust替代C语言进行底层系统编程的可行性,特别是针对一个名为upb的Protocol Buffers库。作者起初怀疑Rust能否在性能和代码大小方面与C语言匹敌,但发现了一种名为“无恐慌Rust”的技术,它通过避免使用panic!()来实现。这篇文章深入探讨了“无恐慌Rust”的原理、优势和挑战,包括代码大小、不可恢复的退出以及运行时开销等问题。作者展示了如何通过巧妙运用libc库、优化选项以及`std::hint::assert_unchecked`等技术来编写“无恐慌Rust”代码,并强调了在debug模式下保留溢出检查以进行额外的一致性检查。虽然该技术需要细致的工作,并可能需要避免使用大部分标准库,但它有望在保证Rust安全性的同时,获得与C语言库相同的性能和代码大小。

阅读更多
开发

Cloudflare的AI生成的OAuth库:惊艳与隐忧并存

2025-06-08
Cloudflare的AI生成的OAuth库:惊艳与隐忧并存

Cloudflare使用Anthropic的Claude LLM几乎完全编写了一个新的OAuth提供程序库。虽然代码结构良好,测试也通过了,但作者发现了一些安全问题,例如过于宽松的CORS设置、缺少标准安全头以及一些OAuth规范的错误实现。虽然工程师们对Claude的输出进行了审查,但一些关键的安全漏洞仍然存在,这突显了即使在严格审查下,AI生成的代码也可能存在风险。这引发了人们对AI辅助编程的可靠性和安全性,以及对人类专业知识在安全关键型系统中的重要性的思考。

阅读更多
开发

Arm 发布 Chiplet 系统架构规范,推动芯片演进

2025-01-22
Arm 发布 Chiplet 系统架构规范,推动芯片演进

Arm 发布了其 Chiplet 系统架构 (CSA) 的首个公开规范,超过 60 家公司参与其中。CSA 通过标准化和协作,推动了 Chiplet 生态系统的发展,解决了个性化芯片设计日益增长的需求以及芯片生产的成本和复杂性问题。CSA 允许重复使用专业化 Chiplet 来创建多个定制片上系统 (SoC),从而以更低的成本实现更高的性能和更低的功耗。Arm 与生态系统合作伙伴共同开发了该架构,确保了 Chiplet 设计的可重用性和互操作性,加速了基于 Chiplet 的系统创新。一些公司已经利用 CSA 开发了针对 AI 工作负载的定制解决方案,例如 Alphawave Semi 利用其与 Arm Neoverse CSS 驱动的 Chiplet 结合专有 I/O 芯片,为不同市场(网络、边缘计算、存储和安全)提供高性能芯片;以及 ADTechnology、Samsung Foundry 和 Rebellions 与 Arm 合作创建了一个用于大型 AI 工作负载训练和推理的 AI CPU Chiplet 平台。

阅读更多
科技

Rust CUDA 项目:赋能 Rust 高速 GPU 计算

2025-04-11
Rust CUDA 项目:赋能 Rust 高速 GPU 计算

Rust CUDA 项目旨在将 Rust 打造为使用 CUDA 工具包进行高速 GPU 计算的一流语言。该项目提供将 Rust 编译为高速 PTX 代码的工具,以及用于与现有 CUDA 库交互的库。它克服了以往 Rust 与 CUDA 集成困难的问题,提供了一套全面的库,涵盖 CUDA 生态系统的各个方面,包括用于 GPU 端函数、CUDA 驱动程序 API 包装器以及用于光线追踪的 OptiX 支持等。该项目目前处于早期开发阶段,但其目标是推动 Rust GPU 计算产业向前发展。

阅读更多
开发 GPU计算

Linux内核维护者辞职:因“我们才是那道防线”言论

2025-02-15

Linux内核维护者Karol Herbst因对社区内“我们才是那道防线”(thin blue line)言论无法容忍而辞职。他认为这番话缺乏包容性,尤其在美国当前的政治环境下更是如此,并认为维护者应该为其言论负责。Herbst强调了他对开源社区包容性和尊重的坚定信念,并表示自己因维护工作的压力和倦怠而选择离开。

阅读更多

冰岛泥炭屋探秘:穿越时空的古朴建筑

2025-01-22
冰岛泥炭屋探秘:穿越时空的古朴建筑

本文讲述了作者游历冰岛,探访多个保存完好的泥炭屋(Laufas、Glaumbaer等)的经历。这些古老的建筑,其墙壁和屋顶以泥炭为主要材料,厚实的墙体提供了良好的隔热效果。文章详细描述了泥炭屋的内部结构、生活方式以及不同时期泥炭屋的演变,并穿插了作者在Glaumbaer泥炭屋内偶遇传统音乐表演的有趣经历。此外,文章还介绍了其他一些开放的泥炭屋博物馆,为读者展现了冰岛独特的历史文化遗产。

阅读更多

uv:Python 项目管理工具的 Pareto 解决方案

2025-02-18
uv:Python 项目管理工具的 Pareto 解决方案

经过一年的使用,作者发现Astral的Python项目管理工具uv是高效的Pareto解决方案。uv独立于Python本身,易于安装和使用,并提供pip和venv接口,能统一安装和运行Python,解决各种平台和环境下的兼容性问题。uv还具有强大的依赖解析器和构建功能,并提供便捷的命令行工具,极大提高开发效率。虽然在遗留项目或受限的企业环境中可能存在一些限制,但作者强烈推荐优先尝试uv,因为它极大地简化了Python项目的管理和开发流程。

阅读更多
开发

用 BQN 征服 Advent of Code 2024

2025-01-25

作者参与了 2024 年的 Advent of Code 挑战,并选择学习 BQN 数组语言。文章详细记录了学习过程,包括环境搭建、文档和工具的使用体验,以及对 BQN 语言特性的介绍,例如其独特的运算符、数组操作和函数定义方式。作者还分享了几个 Advent of Code 题目解法,展示了 BQN 在处理数组和网格问题上的优势,并对比了 BQN 与命令式语言的差异。虽然初期学习曲线陡峭,但作者最终认为 BQN 是一种有趣且强大的语言,特别适合解决编程谜题。

阅读更多
开发 BQN

在终端里看图:一个程序员的修罗场

2025-01-19

一位程序员为了追求完美的终端图像查看器,踏上了一段充满挑战的旅程。他从简单的像素显示出发,深入探索了各种图像格式(JPEG、PNG、GIF、AVIF、JPEG XL、HEIC、ETC、BC、OpenEXR等)的加载和渲染,遭遇了各种意想不到的难题:格式标准不统一、库文档混乱、HDR图像处理的复杂性、色彩管理的玄机,以及终端输出协议的局限性。最终,他克服重重困难,打造了一个功能强大的图像查看器,并在此过程中深刻体会到计算机图形学的复杂与魅力。

阅读更多
开发 终端显示

4.0 GPA的计算机科学毕业生也找不到工作?科技行业寒冬的真相

2025-01-07
4.0 GPA的计算机科学毕业生也找不到工作?科技行业寒冬的真相

一条X平台上的帖子引发热议:即使是拥有4.0 GPA的顶尖计算机科学毕业生,也难以在科技行业找到工作。评论区观点不一,有人认为美国毕业生期望薪资过高,也有人指出科技行业近年来裁员严重,岗位减少。还有人建议学习一技之长,而非过度依赖学位。这反映出当前科技行业就业市场面临的挑战,毕业生需结合自身实际情况,选择合适的职业发展道路。

阅读更多

JavaScript 运行错误:你的应用需要启用 JavaScript

2025-01-16

网页显示“你需要启用JavaScript才能运行此应用”,提示用户需要在浏览器设置中启用JavaScript才能正常使用该网站或应用。这是一个常见的错误信息,表明网站或应用依赖JavaScript来实现其功能,而用户的浏览器当前禁用了JavaScript。解决方法是前往浏览器设置,找到JavaScript设置并将其启用。

阅读更多
杂项

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

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

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

阅读更多
开发 UX/UI设计

递归:并非你想象中那么难

2025-01-04

《递归的递归之书》一书颠覆了递归算法“高深莫测”的刻板印象。作者通过Python和JavaScript的实例,循序渐进地讲解了递归的基本概念、常见算法(如阶乘、斐波那契数列、树遍历、迷宫求解等)以及优化技巧(尾调用优化、记忆化)。书中还涵盖了分治算法、排列组合、动态规划等高级主题,并以绘制分形图案为例,展现了递归的强大魅力。全书项目驱动,代码易于理解和运行,适合初学者和有一定编程基础的读者。

阅读更多
开发 递归算法

Rust编译器:基于查询的增量编译架构

2024-12-13

Rust编译器为了解决传统流水线式编译带来的效率问题,采用了基于查询的增量编译架构。该架构将编译过程分解成一系列相互依赖的查询,并利用编译数据库缓存中间结果,从而只重新计算必要的代码部分。这类似于构建系统的依赖管理机制,显著提升了编译速度,尤其在IDE集成等场景下效果显著。虽然该架构引入了复杂性,但相比传统方法的逐步改进,它为Rust带来了更稳定、高效的增量编译体验,目前已成为开发构建的默认模式。

阅读更多
开发 增量编译
1 2 1066 1067 1068 1070 1072 1073 1074 1084 1085