Blender 导入 USD 场景速度慢的奇特案例

2024-12-22

一位开发者在使用Blender导入USD场景时,遇到了导入速度极慢的问题。通过性能分析,他发现瓶颈在于Blender内部的ID排序函数`id_sort_by_name`。该函数原本预期为O(N)复杂度,但由于USD文件中的命名方式导致其退化为O(N^2)复杂度。开发者通过修改命名方式和优化排序算法,成功将导入时间从4分40秒缩短到8秒(对于较小的文件)。然而,他发现问题根源在于Blender对ID的排序要求,并提出了使用Trie树或哈希表等数据结构来替代当前的链表结构的建议。

阅读更多
开发 USD

QEMU虚拟机迎来Vulkan加速:Virtio-GPU驱动重大更新

2024-12-12

QEMU 9.2.0及以上版本通过Venus补丁实现了对Virtio-GPU的Vulkan加速支持。这标志着QEMU虚拟机在Vulkan图形渲染方面取得了重大进展。文章详细介绍了配置步骤,包括安装必要的软件包(Linux内核6.13+,QEMU 9.2.0+,Vulkan驱动等),以及如何构建QEMU和创建虚拟机镜像。虽然virt-manager目前尚不支持Vulkan配置,但可以通过命令行参数直接传递配置选项。文章还提供了故障排除指南,并指出了当前virt-manager和libvirt的相关限制。

阅读更多

iPad Pro 12.9 (2020)妙控键盘竖屏模式DIY智能连接器线缆

2024-12-11

本文介绍了如何DIY制作一根智能连接器线缆,使iPad Pro 12.9 (2020)的妙控键盘可以在竖屏模式下使用。作者详细描述了所需的组件、线缆制作步骤、连接器准备工作以及外壳的改装。该方法涉及到焊接、环氧树脂填充等操作,并提醒操作不当可能损坏iPad。文章末尾的评论区讨论了充电及数据传输方面的问题。

阅读更多
未分类 妙控键盘

使用纯 JavaScript (VanillaJS) 在单个文件中实现前端库(React、Vue、Angular)及其基本工作原理

2024-10-31

该项目展示了如何使用纯 JavaScript 在单个 HTML 文件中实现类似 React、Vue 和 Angular 的核心功能。它通过简单的计数器示例演示了每个库的基本原理,包括响应式系统、组件化、虚拟 DOM 和数据绑定等概念,旨在帮助开发者更好地理解这些前端库的底层机制。

阅读更多
未分类 VanillaJS

配置语言比较

2024-10-27

本文比较了四种配置语言 YAML、JSON、ConfigParser 和 TOML,分析了它们各自的优缺点,并结合 Python 包管理的应用场景,最终认为 TOML 是更合适的选项。

阅读更多
未分类 TOML

侯世达谈Lisp:原子和列表

2024-10-16

本文是侯世达于1983年2月在《科学美国人》杂志上发表的一篇关于Lisp语言的介绍文章。文章以通俗易懂的语言解释了Lisp的基本概念,包括原子、列表、函数、递归等,并通过与“Lisp精灵”对话的方式展示了Lisp的交互式编程特点。侯世达还介绍了Lisp在人工智能领域的应用,以及函数式编程的理念。

阅读更多
未分类

利用 OpenAI 的结构化输出功能提取财务披露报告和报纸警方记录信息

2024-10-14

这篇文章介绍了如何使用 OpenAI 的 gpt-4o-mini 模型,通过提供文档截图的 URL,并根据用户定义的模式提取数据。文章以国会财务披露报告和报纸警方记录为例,展示了如何定义数据模型并使用 Python SDK 和 pydantic 库进行数据提取。结果表明,即使在定义数据方面几乎没有做出努力,也没有进行数据准备的情况下,结果也相当可靠。

阅读更多
未分类

一个漏洞,五万美元赏金:Zendesk 如何在数百家财富 500 强公司中留下后门

2024-10-12

15 岁的安全研究员 Daniel 发现 Zendesk 存在一个严重漏洞,该漏洞允许攻击者利用电子邮件欺骗漏洞访问任何使用 Zendesk 的公司的客户支持票据,并可能接管公司 Slack。Zendesk 最初以漏洞利用程序超出范围为由拒绝承认该漏洞,但在 Daniel 向受影响公司报告并获得超过 5 万美元的赏金后,Zendesk 最终修复了该漏洞,但没有向 Daniel 提供任何赏金。

阅读更多

即时 HTML 预览书签

2024-10-07

这篇文章介绍了一个 Chrome 书签工具,可以将复制到剪贴板的 HTML、CSS 和 JavaScript 代码渲染成完整的网页,并支持 SVG 代码。该工具特别适用于 ChatGPT Canvas,可以快速预览生成的代码效果,而无需使用 IDE 或保存文件。

阅读更多
未分类

请停止重复造轮子:JSX 的误用

2024-07-30

文章批评了开发者在 React 开发中不必要地使用数组和 map 函数来生成导航栏等 UI 元素,认为这种做法增加了代码复杂度,违背了 JSX 的初衷。作者主张直接使用 JSX 来描述 UI 结构,并认为 JSX 本身就是一种声明式的语言,能够清晰地表达 UI 元素之间的关系。文章还指出,在某些情况下,例如 React Router 的数据 API 中,使用抽象列表比 JSX 更合适,因为这些数据并不直接对应 UI 元素。

阅读更多
未分类

Dave Snowden 关于组织、集体和决策的演讲

2024-06-21

这篇文章是 Dave Snowden 在 2022 年 USI 大会上关于组织、集体和决策的演讲稿。Snowden 强调了构建能够适应无法预测事件的系统的重要性,就像盐沼适应水流一样。他探讨了自然化意义建构、复杂性理论、人类系统中的叙事作用以及处理虚假数据的重要性。Snowden 主张采用演绎和溯因逻辑,而不是传统的归纳逻辑,并认为理解人类系统需要跨学科的方法。他还介绍了诸如 exaptation(将现有能力用于新目的)和微观推动(在系统准备好改变时进行微小改变)等概念。

阅读更多

面向家庭 IPv4 管理员的简短 IPv6 指南

2024-06-07

本文是面向熟悉 IPv4 但不熟悉 IPv6 的家庭网络管理员的指南,介绍了 IPv6 的概念和配置方法,包括地址结构、无状态地址自动配置(SLAAC)、前缀委托、唯一本地地址(ULA)等,并提供了一些实用的建议,例如使用 ULA 进行局域网通信、使用动态域名服务更新外部可见服务器的地址等。

阅读更多
未分类 网络管理

如何在Chrome和Chromium浏览器上继续使用广告拦截器

2024-06-06

本文介绍了如何在Chrome和Chromium浏览器上继续使用广告拦截器。由于谷歌的manifest v3规范缺少了广告拦截器正常工作的webRequestBlocking API,从Chrome 127版本开始,将逐步停止对manifest v2扩展程序的支持。为了解决这个问题,可以使用ExtensionManifestV2Availability密钥来继续使用manifest v2扩展程序。文章提供了在Linux、ChromeOS、Windows和MacOS系统上启用该密钥的具体步骤。

阅读更多

正统 C++

2024-05-22

正统 C++ 是一种旨在改进 C 并避免现代 C++ 中不必要元素的 C++ 最小子集。它提倡使用 C 风格的 C++,避免使用异常、RTTI、流、过度使用元编程和分配内存的 STL 元素。它建议谨慎使用新标准中的特性,并等到它们在下一个标准迭代中得到改进后再使用。

阅读更多
未分类