分类: 开发

苹果App Store审核指南深度解读

2025-05-02
苹果App Store审核指南深度解读

这份长达数千字的苹果App Store审核指南,详细阐述了应用上架的方方面面,从安全、性能、商业模式、设计到法律合规,几乎涵盖所有细节。指南强调了应用安全性和用户隐私保护的重要性,严格禁止包含令人反感的内容、恶意软件以及侵犯知识产权的行为。同时,指南也对应用的性能、功能完整性、商业模式以及设计提出了具体要求,并对应用的元数据、图标、截图和预览等方面进行了规范。此外,指南还对使用苹果服务的应用提出了特殊要求,例如推送通知、Game Center以及Apple Pay等。这份指南旨在帮助开发者更好地理解App Store的审核流程,提高应用上架成功率,并为构建一个安全、可靠和高质量的应用生态系统贡献力量。

开发 审核指南

Jujutsu:颠覆你对 Git 的认知

2025-05-02

告别笨重的 Git 工作流!Jujutsu 是一种新型版本控制系统,它将 Git 的提交、工作副本、索引和暂存区统一为“变更”这一概念,让代码操作更安全、灵活。告别繁琐的暂存区操作,Jujutsu 自动跟踪所有文件修改,通过`jj new`创建新的变更,`jj abandon`安全地放弃变更,`jj squash`和`jj split`轻松合并或拆分变更。强大的`jj undo`功能和操作日志,让你大胆尝试各种操作,无需担心出错。虽然与 Git 的协作模式略有差异,但 Jujutsu 本地操作的便利性将大大提高你的开发效率。

开发

微软利用LLM提升低级编程安全:Checked C和RustAssistant

2025-05-02

微软研究院的研究人员展示了利用大型语言模型(LLM)提高低级编程安全性的两个项目。第一个项目使用LLM辅助Checked C,自动添加内存安全注解到遗留C代码中,提高了代码安全性,并减少了人工标注的负担。第二个项目是RustAssistant,它利用LLM自动修复Rust编译错误,显著降低了Rust的学习曲线。这两个项目都证明了LLM在提升代码安全性以及开发者效率方面的巨大潜力,为软件工程带来了新的可能性。

开发

仅510字节的微型操作系统OSle:掌控你的启动扇区

2025-05-02
仅510字节的微型操作系统OSle:掌控你的启动扇区

OSle是一个仅510字节的,运行在实模式下的微型操作系统,完全驻留在启动扇区中。它用x86汇编语言编写,却具备Shell、文件系统、进程管理以及预置软件和SDK等核心功能,允许用户开发自己的程序。文章提供了详细的安装、构建、运行以及在真实设备上运行OSle的步骤,并包含在线演示和教程。这是一个极具挑战性和趣味性的项目,适合对操作系统和底层编程感兴趣的开发者。

开发 x86汇编

布隆过滤器:概率数据结构的魅力

2025-05-02

布隆过滤器是一种概率数据结构,它以极小的空间代价高效地判断一个元素是否在一个集合中。通过多个哈希函数将元素映射到位数组,布隆过滤器能够快速地判断元素是否存在,虽然存在少量误判的可能性(误报),但对于大多数查询结果为负的场景,它能显著提高效率。文章详细解释了布隆过滤器的原理、实现以及数学推导,并通过Go语言示例展示了其应用,最终计算出针对十亿级数据,误判率为1%时的最佳参数配置,证明了其在海量数据处理中的实用性。

鲜为人知的Linux鼻祖:MCC Interim Linux

2025-05-02

在Linus Torvalds发布Linux内核后,Owen LeBlanc创造了第一个真正的Linux发行版——MCC Interim Linux。这篇文章讲述了LeBlanc及其在曼彻斯特大学期间开发的这个发行版的故事。MCC Interim Linux 并非以华丽的界面或丰富的软件包著称,而是凭借其简易的安装程序,为早期Linux的普及做出了巨大贡献。它让更多人能够便捷地安装和使用Linux,成为后来更成功发行版的重要基石。LeBlanc的经历也反映了开源软件在早期推广中面临的挑战,以及技术人员与管理层之间在技术选择上的观念差异。

用Zig开发游戏:一年经验总结

2025-05-02

作者分享了一年使用Zig语言开发3D游戏的经验。Zig的Discord社区非常活跃,能够快速解答各种问题,甚至包括编译器底层问题。Zig内置对向量的支持良好,但矩阵支持不足。Zig的构建系统比CMake等系统更简洁高效,虽然学习曲线较陡峭。标准库尚不完善,但不断改进。编译器更新频繁,带来性能提升和便捷的开发体验,例如--watch选项和即将推出的增量编译功能。总体而言,作者对Zig的开发体验表示满意,并期待未来的更新。

开发

Rust 正则表达式引擎:速度与鲁棒性的较量

2025-05-02
Rust 正则表达式引擎:速度与鲁棒性的较量

SerpApi在数据提取方面面临挑战,Ruby默认的Onigmo正则表达式引擎性能不足。文章对re2、rust/regex和pcre2三种引擎进行了基准测试。结果显示,rust/regex在大多数情况下速度最快,尤其是在处理Unicode文本时表现出色,但其集合功能(set)性能不稳定。re2速度也很快,但在Unicode支持方面存在局限性。pcre2的Ruby绑定过时且无法启用JIT模式。总而言之,rust/regex是Ruby的最佳替代方案,但需谨慎使用其集合功能。

开发

2025年CouchDB和PouchDB的离线优先应用实战

2025-05-02
2025年CouchDB和PouchDB的离线优先应用实战

本文介绍了一个名为Pouchnotes的250行代码的示例应用,它演示了如何使用CouchDB和PouchDB构建离线优先的笔记应用。该应用允许用户在线或离线记录笔记,并自动与远程CouchDB同步。文章详细解释了数据在应用内部和远程数据库之间如何移动,包括使用PouchDB的本地数据库、双向复制协议以及处理冲突的策略。此外,文章还探讨了如何使用TypeScript与PouchDB高效协作,包括处理多种文档类型的方法。Pouchnotes采用Svelte 5、Vite和Pico.css构建,是一个简洁高效的示例,适合学习离线优先应用的开发。

WhatsApp 的隐私保护AI处理技术:Private Processing

2025-05-02
WhatsApp 的隐私保护AI处理技术:Private Processing

WhatsApp 推出 Private Processing,一种可选的隐私保护 AI 处理技术。这项技术利用可信执行环境 (TEE) 在安全的云环境中处理用户消息,例如总结未读消息或提供写作建议,确保 Meta 和 WhatsApp 都无法访问用户数据。Private Processing 遵循可选性、透明性和用户控制等原则,并通过多种安全措施,例如机密处理、可验证的透明性以及无目标性等,来保证用户隐私和数据安全。WhatsApp 将公开 Private Processing 的部分组件,并扩大漏洞赏金计划的范围,以促进独立安全研究。

开发

arXivLabs:与社区协作的实验性项目

2025-05-01
arXivLabs:与社区协作的实验性项目

arXivLabs是一个框架,允许协作者直接在arXiv网站上开发和分享新的功能。参与arXivLabs的个人和组织都认同并接受了arXiv的开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,只与遵守这些价值观的合作伙伴合作。如果你有想法能为arXiv社区增值,那就了解更多关于arXivLabs的信息吧!

开发

Deno Deploy:边缘计算的陨落?

2025-05-01
Deno Deploy:边缘计算的陨落?

Deno Deploy,号称具有“大规模全球覆盖”的边缘计算平台,其服务器数量却从2024年初的35个区域骤减至2025年2月的6个,服务范围大幅缩水。作者亲身经历了Deno Deploy性能下降,并指出Deno的其他产品,如Fresh框架和Deno KV,也发展缓慢甚至停滞。文章表达了作者对Deno未来前景的担忧,并将其归咎于缺乏创新和对Node.js的盲目追赶。

ScummVM Wiki遭大规模DDoS攻击,Anubis守护神强势反击

2025-05-01
ScummVM Wiki遭大规模DDoS攻击,Anubis守护神强势反击

ScummVM项目的维基网站遭遇了来自全球35000多个IP地址的大规模DDoS攻击,导致网站瘫痪。攻击者利用特殊URL对数据库进行高强度访问,使得Apache、PHP-FPM和MariaDB服务器资源耗尽。为了应对,作者部署了Anubis系统,该系统通过工作量证明机制有效地过滤恶意请求,在几乎不消耗服务器资源的情况下,成功抵御了攻击,保障了网站的正常运行。Anubis不仅能有效防御AI爬虫,还能作为DDoS防护系统使用。

开发

Kubetail:Kubernetes 实时日志监控利器

2025-05-01
Kubetail:Kubernetes 实时日志监控利器

Kubetail 是一款为 Kubernetes 打造的实时日志监控平台,它能将多容器工作负载的日志合并到一个时间线中,方便用户在浏览器或终端查看。Kubetail 使用 Kubernetes API 直接获取日志,无需外部服务,并追踪容器生命周期事件,确保日志时间线同步。它提供简洁易用的界面,支持多种过滤条件,例如工作负载、时间范围、节点属性和正则表达式。安装方式多样,包括 CLI 工具、Helm Chart 和 Glasskube。Kubetail 的目标是成为 Kubernetes 最强大的日志平台,欢迎用户反馈和贡献。

开发 实时日志

大型科技公司Skunkworks项目的成功秘诀

2025-05-01

本文作者总结了在Meta和Confluent参与大型软件项目开发的经验,提出了在大型公司内部开展Skunkworks项目的18条原则。这些原则涵盖了团队组成、沟通方式、激励机制、风险管理等方面,核心思想是打造一个高效协作、勇于创新的小型团队,并通过快速迭代、精确的外部沟通和以成果为导向的奖励机制来保证项目的成功。作者强调,要避免过早退出Skunkworks模式,并重视团队成员的独特技能和项目的整体成功,而非个人的晋升。

开发 Skunkworks

JRuby:优雅地整合Java库,告别繁琐的外部依赖

2025-05-01

在RubyKaigi大会上,开发者们面临着使用外部库的难题:C库需要编写C扩展或FFI绑定,其他语言的库则更加复杂。文章以Charty(包装matplotlib)和QuickChart(用JavaScript实现)为例,展示了现有方案的笨拙。作者提出了一种更优雅的方案:利用JRuby整合Java库,以JFreeChart为例,无需编写Java、C、Python或JavaScript代码,即可轻松创建图表。文章详细介绍了JRuby的Java集成层,包括使用jar-dependencies管理依赖、调用Java类以及创建简单图表(柱状图和饼图)的步骤。最终,作者鼓励读者尝试JRuby,并支持JRuby的持续发展。

百万只猴子打字机:一个亿万单词工程的幕后

2025-05-01
百万只猴子打字机:一个亿万单词工程的幕后

一个名为monkeys.zip的网站,让上万只虚拟猴子持续打字,已经写出了超过60亿字,完成了莎士比亚作品75%以上的字数!文章详细介绍了该网站的技术架构:基于15秒的Tick机制,将数据生成、存储和数据库更新分成四个步骤,并利用sfc32生成确定性随机数。为了优化性能,使用了Redis缓存和数据库分表策略。作者还分享了项目中遇到的挑战和未来的优化计划,例如升级服务器以提升打字速度。

开发 后端架构

C++26编译时标准库大跃进:constexpr支持全面升级

2025-05-01

C++26即将迎来标准库constexpr支持的重大飞跃!多个提案(P2562R1, P1383R2, P3074R7, P3372R2, P3508R0, P3369R0)将稳定排序算法、cmath和complex库函数、联合体规则、几乎所有容器和适配器以及专用内存算法都纳入constexpr支持。这使得编译时编程能力大幅提升,例如,现在可以在编译时对constexpr容器进行排序。虽然std::hive和std::hash因其特性限制未被包含,但整体而言,C++26将极大扩展编译时编程的可能性。

开发

macOS恶意软件扫描导致应用启动缓慢

2025-05-01

开发者Jeff Johnson发现macOS系统中的syspolicyd进程会对应用进行恶意软件扫描,导致包括Xcode、FileMerge、Google Chrome等应用启动缓慢。扫描过程会占用大量CPU资源,即使是小巧的应用也会出现明显的延迟。Johnson推测,syspolicyd不仅扫描应用本身,还会扫描其链接的库文件。他通过禁用系统完整性保护(SIP)解决了这个问题,但同时也失去了部分系统服务。文章探讨了这个问题的根本原因,并表达了对这种“安全秀”的无奈。

AI写代码,AI审代码?这合理吗?

2025-05-01
AI写代码,AI审代码?这合理吗?

Greptile公司联合创始人Daksh发现,一个名为Devin的AI代码生成工具的提交次数超过任何人类工程师。这引发了一个有趣的问题:AI生成的代码应该由AI本身来审查吗?虽然LLM是无状态的,每次调用都是独立的,但这并不意味着AI可以完美地审查自己的代码。AI生成的代码虽然提高了效率,但也可能引入人类难以发现的错误。研究表明,AI在发现某些类型的错误方面比人类更有效,尽管其准确率还有待提高。最终,文章认为,尽管AI代码审查并非完美,但它在发现AI自身引入的特定类型错误方面比人类更有效。

开发

Changesets:简化多包仓库版本管理和变更日志

2025-05-01
Changesets:简化多包仓库版本管理和变更日志

Changesets 是一款用于管理版本和变更日志的工具,尤其专注于多包仓库。它允许贡献者声明更改的发布方式,然后自动更新包版本、变更日志并发布新版本。Changesets解决了多包仓库的版本管理难题,使依赖包保持同步,并简化了对多包的更改。它通过changeset文件记录发布意图,并提供CLI工具将多个changeset合并成一次发布,处理内部依赖关系,更新变更日志,并一键发布所有更新的包。项目还提供了详细的文档和集成CI的建议,以及一个GitHub Action用于自动化版本控制PR和发布。

Fivetran收购Census:数据集成迈向全自动化时代

2025-05-01
Fivetran收购Census:数据集成迈向全自动化时代

Fivetran收购了反向ETL公司Census,标志着数据集成领域的一次重大飞跃。Census的可靠反向ETL引擎能够将数据从数据仓库可靠地传输到各种业务应用(如Salesforce和HubSpot),实现数据分析与行动的闭环。此举将Fivetran平台扩展到数据摄取和转换之外,使客户能够在无需自定义代码或持续维护的情况下,利用自动化和可观察性功能,实现实时决策、AI和业务运营。Canva等客户已经利用Fivetran和Census实现了显著的业务成果,例如提高了电子邮件打开率和平台参与度,并节省了大量的工程时间。

Mac应用启动缓慢之谜:恶意软件扫描还是哈希缓存?

2025-05-01

博主Jeff Johnson去年发现Mac应用启动缓慢是由于syspolicyd进程的恶意软件扫描导致的,然而博主Howard Oakley却对此持否定态度。Johnson用spindump抓取的进程快照反驳了Oakley,指出恶意软件扫描发生在dlopen加载动态库时。Oakley则认为缓慢启动是由于对框架文件夹中文件的SHA-256哈希缓存未命中导致的。Johnson认为Oakley的理论缺乏证据,并且忽略了通用二进制文件包含两种架构的事实,这使得Oakley的哈希计算时间估计不准确。这场争论的核心在于对系统日志和进程快照的不同解读,以及对缓存机制的不同理解。

开发

Redis 重回 AGPLv3 开源许可证

2025-05-01

Redis 的核心开发者 antirez 回忆了 Redis 切换回 AGPLv3 开源许可证的历程。他个人强烈主张采用 AGPL,认为 SSPL 未被社区广泛接受。最终,Redis 8 正式发布,采用了 AGPLv3 许可证,antirez 对此感到欣慰,并表示将继续努力改进 Redis,特别是新推出的 Vector Sets 数据类型。

开发 AGPLv3

开源自托管书签管理器:你的隐私,你做主

2025-05-01

这款开源、自托管的书签管理器,将你的隐私放在首位。它拥有响应式设计,适应各种屏幕尺寸;强大的搜索功能,让你轻松查找收藏;浏览器扩展,方便你直接收藏网页;支持批量操作、导入导出以及暗黑/亮色模式切换。更重要的是,它承诺永不将你的数据出售给第三方,并提供安全的API集成,方便你创建自定义解决方案。赶快体验这款注重隐私和功能强大的书签管理器吧!

加速SQLite数据库复制:文本转储的妙招

2025-05-01
加速SQLite数据库复制:文本转储的妙招

作者在复制大型SQLite数据库时遇到速度瓶颈,因为索引文件占据了大量空间。他发现将数据库转储为文本文件(`.dump`命令),再用gzip压缩,可以显著减小文件大小,从而加快复制速度。相比直接复制3.4GB的数据库,这种方法将文件压缩至240MB,速度提升了14倍。此外,这种方法还避免了数据库复制过程中因更新导致文件损坏的问题,提高了可靠性。

开发

Windows 7启动慢?竟是单色壁纸惹的祸!

2025-05-01
Windows 7启动慢?竟是单色壁纸惹的祸!

你是否记得Windows 7?这款操作系统曾让微软重回巅峰。但鲜为人知的是,一个简单的编程错误导致使用单色壁纸的用户,系统启动需要30秒!罪魁祸首是背景图片就绪消息的代码位置错误,导致系统苦等消息超时。更令人啼笑皆非的是,“隐藏桌面图标”策略的加入,也因代码顺序问题加剧了这一问题。微软耗时数月才解决此bug,这段趣闻也从侧面反映了编程中可能出现的各种奇葩错误。

浏览器端CSV万能转换器:数据处理新利器

2025-05-01

这款强大的在线CSV转换器,让你在浏览器中就能轻松处理各种数据!它支持CSV、TSV、XLSX、XLS和TXT文件的导入,并能自动检测格式和编码。你可以轻松重命名表头、启用/禁用字段、拖拽排序列,甚至还能分割或合并列、使用正则表达式进行文本替换,以及将数据转换为JSON或XML格式。全屏视图方便查看大型数据集,内置搜索、过滤和排序功能,更能比较数据集差异。无需下载安装,立即体验数据处理的便捷!

开发 CSV转换

FinArva AI 黑客马拉松:用 AI 解决印度金融难题

2025-05-01
FinArva AI 黑客马拉松:用 AI 解决印度金融难题

GroMo 举办的 FinArva AI 黑客马拉松 2025,由 AWS 赞助,旨在利用 AI 和产品创新解决印度最棘手的金融分销问题。参与者将有机会设计针对印度下一批用户的智能解决方案,获得独家指导,向顶级金融科技领导者展示他们的想法,并角逐超过 100 万卢比的奖金。此次活动面向所有大学生、在职专业人士和 AI 爱好者,团队规模为 3-5 人。

SerenityOS浏览器引擎Ladybird中的Use-After-Free漏洞利用

2025-05-01

SerenityOS项目的Ladybird浏览器引擎在其LibJS JavaScript引擎中存在一个Use-After-Free (UAF)漏洞。该漏洞源于解释器参数缓冲区的错误管理,攻击者可通过精心构造的代理函数对象和恶意`[[Get]]`处理程序触发该漏洞。利用该漏洞,攻击者可以实现任意内存读写,最终获得代码执行权限,例如执行`/calc`命令。研究人员利用Fuzzilli模糊测试工具发现了该漏洞,并通过一系列步骤,包括内存泄露和伪造对象,最终实现了漏洞利用。

1 2 99 100 101 103 105 106 107 213 214