Ruby零基础构建对象系统:从匿名函数到元编程

2024-12-15

本文讲述了如何在Ruby中从零开始构建一个简单的对象系统。作者巧妙地运用匿名函数和哈希表,实现了方法查找、原型继承、Mixin和元编程等核心概念。通过逐步构建“构造函数”、模拟私有变量和公共接口,最终实现了类似于面向对象编程中类和继承的功能,为读者深入理解对象系统原理提供了清晰的实践路径。文章以实例代码演示了如何创建对象、定义方法、实现继承和Mixin,并最终实现了类似于Ruby的`attr_accessor`的元编程功能,极具学习价值。

阅读更多
开发

令数据压缩难题倍增:标记化问题被证明为NP完全问题

2024-12-22
令数据压缩难题倍增:标记化问题被证明为NP完全问题

一篇发表于arXiv的论文证明了两种标记化变体的NP完全性。标记化是将数据集压缩到最多δ个符号的问题,这两种变体分别是直接寻找词汇表(直接标记化)和选择一系列合并操作(自下而上标记化)。这一发现对数据压缩和自然语言处理领域具有重大意义,表明高效解决大规模数据集标记化问题极具挑战性。

阅读更多

微型无人机:厘米级飞行机器人问世

2025-03-31
微型无人机:厘米级飞行机器人问世

加州大学伯克利分校的研究人员研发出了一种翼展不到一厘米的微型飞行机器人。这款机器人无需电池,通过外部磁场驱动飞行,目前飞行范围有限,但研究人员表示可以通过增强磁场强度来扩大其活动范围。这项突破为搜索救援、工业设备检查甚至植物授粉等应用提供了新的可能性,并刷新了最小飞行机器人的记录。

阅读更多

Commodore 64 BASIC 2.0 高分辨率位图图形与快速清屏

2024-12-12
Commodore 64 BASIC 2.0 高分辨率位图图形与快速清屏

这篇文章介绍了如何在Commodore 64的BASIC 2.0环境下高效地处理高分辨率位图图形,特别是快速清屏的方法。文章指出,Commodore 64原生BASIC缺乏直接处理位图的指令,传统的清屏方法效率低下。作者巧妙地利用BASIC字符串存储机制,通过创建并填充大量包含CHR$(0)的字符串来覆盖位图内存区域,从而实现快速清屏,并用一个绘制余弦函数的例子展示了该方法的应用。

阅读更多

Win7/Win Server 2008 R2 纯色壁纸登录延迟问题

2025-01-28

在Windows 7或Windows Server 2008 R2系统中,如果设置纯色作为桌面背景,登录过程中可能会出现30秒的欢迎屏幕延迟。微软已确认此问题,并提供了更新修复此问题。此问题在使用远程桌面连接登录或禁用桌面窗口管理器会话管理器服务时不会发生。此外,使用图片文件作为桌面背景也能避免此问题。解决方法包括使用带纯色的图片作为背景或调整注册表项DelayedDesktopSwitchTimeout的值。

阅读更多

秋季账单系统:从Publishable Key到加密Server Actions的迭代之路

2025-05-15
秋季账单系统:从Publishable Key到加密Server Actions的迭代之路

一家公司在构建账单系统时,尝试了多种方法来简化开发流程,最终解决了前端敏感支付操作的问题。他们首先尝试使用Publishable Key,但存在安全性和功能限制。随后转向Next.js的Server Actions,但暴露了customer ID,导致安全漏洞。最终,他们通过在Server Actions中加密customer ID解决了安全问题,但这种方法依赖于Server Actions,缺乏框架无关性。未来,他们计划转向更通用的、框架无关的方法,简化后端设置。

阅读更多
开发

雪的文字符号:一场跨越时空的文化之旅

2024-12-25
雪的文字符号:一场跨越时空的文化之旅

这篇文章讲述了世界各地不同文化中对“雪”的文字和符号的表达,从商代甲骨文的“雪”字,到中国古代酒壶上的“风花雪月”图案,再到纳西族东巴文中的雪的符号,以及因纽特语中对不同类型雪的细致描述。文章还探讨了古希腊、古代埃及、希伯来语和玛雅文明中与雪相关的文字和符号,展现了不同文化对雪的独特理解和表达方式,以及其背后的文化内涵和历史渊源。

阅读更多

旗帜探索者:一款终极全球旗帜益智游戏

2025-01-27

《旗帜探索者》是一款结合策略思维和视觉识别的益智游戏,玩家需要通过旗帜碎片来识别国家或地区。游戏提供无限模式和每日模式,玩家最多有6次机会猜测,每次猜测后会获得距离、方向和百分比三个反馈信息。通过不断练习和学习,玩家可以提升自己的地理知识和旗帜识别能力。游戏还提供详细的进度追踪系统和社交分享功能。

阅读更多

AI 生成的虚假社交媒体内容泛滥,骗取金钱

2025-02-21
AI 生成的虚假社交媒体内容泛滥,骗取金钱

生成式AI使得社交媒体充斥着虚假内容:AI生成的木雕、烘焙照片和动物图片,配以煽情文字吸引眼球,骗取网友同情和金钱。这些内容看似拙劣,却收获大量点赞和评论,甚至有人打赏“创作者”。文章揭示,这是利用AI批量生产虚假内容的“内容农场”获利的模式,通过大量低成本内容吸引流量,从而获取广告收入或销售“客座文章”。

阅读更多
科技

为何高质量产品如此难以寻觅?

2024-12-16

文章探讨了为何市场上高质量产品和服务如此匮乏。作者认为,市场并非完全有效,公司和产品中的低效现象长期存在,消费者难以辨别产品优劣,往往受营销影响做出选择。即使是专业人士的建议也可能不可靠。企业为了追求效率,常选择外包或购买现成产品,但这些产品或服务质量往往难以保证,甚至存在根本性缺陷。作者以自身经历和多个案例说明,企业内部和外部都存在信息不对称和信任缺失的问题,导致高质量产品难以生产和销售。最终,作者提出,构建高质量产品并非易事,但为了获得可靠的服务,企业有时不得不选择自主研发,这对于中小企业来说是巨大的挑战。

阅读更多

Vulnerability-Lookup:一个协作式漏洞管理平台

2025-02-06
Vulnerability-Lookup:一个协作式漏洞管理平台

Vulnerability-Lookup是一个强大的开源平台,用于快速关联来自不同来源的漏洞,简化协调漏洞披露(CVD)流程。它支持多种数据源导入,包括NIST NVD、CISA等,并允许用户添加漏洞观测、评论和创建漏洞集合。其提供的API和Python库方便了与其他工具的集成,开发者可以轻松创建自己的漏洞观测工具。Vulnerability-Lookup采用GNU Affero GPL v3.0开源许可证,由CIRCL、Alexandre Dulaunoy、Raphaël Vinot和Cédric Bonhomme共同开发。

阅读更多
开发 漏洞管理

大型代码库的构建利器:单仓构建工具

2024-12-20

面对大型代码库(100-10000名活跃开发者),传统构建工具力不从心。单仓构建工具如Bazel和Mill应运而生,它们支持多语言、自定义构建任务、自动缓存和并行化,并提供远程缓存和执行功能,显著提升构建速度和效率。此外,它们还支持基于依赖的测试选择和构建任务沙箱,减少测试时间和不确定性。对于小型项目,这些功能或许显得多余,但对于大型项目而言,它们却是高效协作和持续集成的关键。

阅读更多

Clojure异常处理:没有银弹,只有选择

2024-12-14

Clojure的异常处理风格多样,没有单一最佳实践。文章探讨了多种方法:抛出原生异常、使用`ex-info`携带数据、返回错误map,以及利用各种库实现更复杂的错误处理流程,如`anomalies`库或`pact`、`failjure`等。作者强调,选择何种方法取决于具体场景,甚至在一个项目中可以混合使用。开发者需根据自身需求选择最合适的方案,Clojure赋予了开发者充分的自由。

阅读更多
开发

SQL-tString:安全构建SQL查询的利器

2025-05-16
SQL-tString:安全构建SQL查询的利器

SQL-tString是一个强大的Python库,它允许你使用t-string(类似于f-string)构建SQL查询,同时有效防止SQL注入漏洞。它支持参数化查询,并能处理可选参数和NULL值条件,灵活地适应不同的数据库方言(例如,支持qmark和$两种参数风格)。即使在Python 3.12和3.13版本中,也能通过兼容的方式使用。

阅读更多

Beam:基于SSH的跨机器文件与管道传输工具

2025-01-04
Beam:基于SSH的跨机器文件与管道传输工具

Beam是一个利用SSH协议传输文件和管道的工具,无需二进制安装,仅需SSH客户端即可。它支持管道传输,安全性高,利用公钥进行身份验证。用户可通过简单的SSH命令发送和接收数据,也可使用随机通道名增强安全性。虽然Beam服务器位于德国,传输速度可能受限,且不支持端到端加密(数据在服务器端短暂解密),但其轻量级特性和简单的自托管方式使其成为便捷的文件传输方案。

阅读更多
开发 管道传输

Onit:你的本地AI聊天助手

2025-01-24
Onit:你的本地AI聊天助手

Onit是一款开源的AI聊天助手,可在你的桌面上运行,支持本地模式和多种模型提供商(Anthropic、Google AI、xAI等)。它类似于ChatGPT桌面版和Cursor Chat,但可在电脑的任何地方使用,而不仅仅是IDE。Onit的核心价值观是:普遍访问、提供商自由、本地优先、可定制性和可扩展性。目前支持本地模式(通过Ollama)、多提供商支持(OpenAI、Anthropic、xAI等)、文件上传、聊天历史记录和可自定义快捷键等功能。未来计划增加自动上下文、本地RAG、本地自动完成等功能。

阅读更多

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

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

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

阅读更多
科技 细胞培养

Git 高级配置:核心开发者如何配置 Git?

2025-02-25
Git 高级配置:核心开发者如何配置 Git?

本文深入探讨了鲜为人知的 Git 配置设置,这些设置可以显著提升 Git 使用体验。作者分享了 Git 核心开发者们在“春季大扫除”实验中发现的最佳配置,并将其分为三大类:明显提升 Git 使用体验的设置(如改进分支排序、diff 算法、推送和获取操作)、无害且偶尔有用的设置(如自动更正提示、提交时显示 diff 信息、重用冲突解决方案),以及根据个人喜好选择的设置(如改进合并冲突、rebase 默认设置、文件系统监控)。作者详细解释了每个设置的作用,并提供了相应的命令,帮助读者优化自己的 Git 配置,提升效率。

阅读更多
开发

仅需3秒!全球首个AI语音克隆技术

2025-01-10

AnyVoice推出全球首个仅需3秒音频即可生成超逼真语音克隆的AI技术。这项突破性的技术彻底改变了语音克隆的效率,无需冗长的录音。目前支持英语、中文、日语和韩语。用户只需在安静环境下自然朗读3-10秒的音频,即可获得高质量的语音克隆。该技术可用于商业用途,但需购买商业许可证。

阅读更多

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

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

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

阅读更多
开发

Devlands:在游戏中学习Git

2025-03-02
Devlands:在游戏中学习Git

两年来,作者一直致力于开发可视化Git工具。最初的Git-Sim虽然成功,但仅限于有一定Git基础的用户。于是,作者构思了一个更具沉浸感的版本:Devlands。它将Git仓库转化为一个像素世界,分支是走廊,提交是房间,用户可以漫步其中探索代码。游戏还包含一个Git教程,并集成了AI代码解释器,旨在降低Git学习门槛,让更多人轻松掌握代码版本控制。

阅读更多

马斯克的DOGE:政府数据监控新手段?

2025-01-25
马斯克的DOGE:政府数据监控新手段?

特朗普政府将美国数字服务部门(USDS)改名为“美国DOGE服务”,由马斯克领导。此举引发担忧,因为DOGE将获得所有政府机构的非机密数据访问权限,可能用于监控或打击政治对手。尽管官方声称是为了提高效率,但此举绕过了联邦咨询委员会法案,缺乏透明度,并可能导致利益冲突和监管被捕获。DOGE的双重结构——一个永久性组织和一个临时性组织——进一步加剧了这些担忧,临时组织可以雇佣不受严格审查的特殊政府雇员。

阅读更多

Win+鼠标:Windows窗口管理神器resizer2

2024-12-29
Win+鼠标:Windows窗口管理神器resizer2

resizer2是一款Windows窗口管理工具,让你像在KDE或i3桌面环境一样,使用Win键+鼠标来调整和移动窗口大小。它支持窗口移动、大小调整、透明度调节、最小化和最大化等功能,甚至能跨越多个显示器操作。虽然需要管理员权限才能移动系统窗口,并且存在一些已知问题(如与某些全屏应用不兼容),但总体来说,resizer2为Windows用户提供了更便捷高效的窗口管理体验。

阅读更多
开发

Android 系统字体迭代器 Bug 侦探记

2025-06-02

这篇博文讲述了一个持续时间比预期更长的 Bug 修复过程。Android 系统定义了不同的 API 级别,某些符号仅在特定 API 版本中可用。Firefox Android 版 (Fenix) 使用 `ASystemFontIterator_open`,但它仅在 API 29 及更高版本可用。为了兼容旧版 API,Fenix 使用了 `__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__` 和 `__builtin_available` 进行编译时和运行时检查。然而,由于 Firefox 的构建系统默认使用隐藏可见性 (`-fvisibility=hidden`),导致弱符号 `ASystemFontIterator_open` 在共享库中变为未定义,最终导致崩溃。修复方法是临时更改包含 Android 系统头文件时的默认可见性。

阅读更多
开发

月球:一次引人入胜的宇宙之旅

2024-12-17
月球:一次引人入胜的宇宙之旅

本文以引人入胜的方式,深入探讨了月球的运动、地月系统以及太阳系中三体运行的奥秘。通过生动的互动演示,作者解释了月球的轨道、潮汐、日食和月食等现象,并揭示了月球表面地貌的形成过程以及月球亮度的成因。文章涵盖了引力、角动量守恒等物理概念,并以通俗易懂的语言解释了复杂的天文现象,是一篇兼具科学性与趣味性的佳作。

阅读更多
杂项

纽约市拥堵收费:一项意外的成功

2025-03-21
纽约市拥堵收费:一项意外的成功

2025年1月5日,纽约市实施了拥堵收费政策。尽管最初定价低于预期,但过去两个月的数据显示,该政策在缓解曼哈顿交通拥堵方面取得了显著成功,车辆进入收费区域的数量减少了超过一百万辆,公交乘客数量激增,地铁犯罪率下降,商业活动也出现增长。尽管特朗普试图叫停该计划,但由于其法律依据薄弱,该计划有望继续实施。拥堵收费的成功为其他城市提供了一个减少交通拥堵、改善公共交通的范例。

阅读更多
科技 拥堵收费

开源项目或将出售SBOM片段以减少许可证扫描工作

2025-02-17
开源项目或将出售SBOM片段以减少许可证扫描工作

开源项目的许可证扫描工作量巨大且重复,因为公司很少共享资源。文章提出,开源项目可以出售SBOM片段(CycloneDX中的组件或SPDX中的包,包含正确的许可证信息)作为解决方案。通过赞助GitHub项目,企业可以获得始终最新的SBOM信息,从而避免重复劳动,并确保许可证信息的准确性。

阅读更多
开发 SBOM

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

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

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

阅读更多

一个静态网页意外催生了一个社区:Local-First运动的崛起

2025-02-12
一个静态网页意外催生了一个社区:Local-First运动的崛起

一位前Facebook工程师在帆船生活中,开发了一个名为TinyBase的本地优先数据存储项目。他随后创建了一个简单的静态网页localfirstweb.dev,意在整理和推广本地优先软件开发理念。该网页意外走红,吸引了众多开发者,并最终由一位哈佛商学院毕业生Yonatan建立了活跃的Discord社区,推动了本地优先软件运动的发展。这展现了看似简单的行动如何引发意想不到的连锁反应,也预示着本地优先软件开发的未来潜力。

阅读更多
开发

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

2025-01-31

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

阅读更多
开发
1 2 1072 1073 1074 1076 1078 1079 1080 1084 1085