分类: 开发

YC 支持的 Web 代理测试平台招聘资深爬虫工程师

2025-03-04
YC 支持的 Web 代理测试平台招聘资深爬虫工程师

一家由 Y Combinator 支持的初创公司正在招聘一位资深 Web 爬虫工程师,负责构建一个能够处理数百万个域名和不断变化的反机器人防御机制的互联网规模的 Web 爬取基础设施。该职位需要精通大规模 Web 抓取和爬取技术(Selenium、Puppeteer、Playwright、Scrapy 等),并具备处理验证码、代理管理和数据清洗等方面的丰富经验。该平台旨在为 Web 代理提供端到端的测试平台,包括用于强化学习驱动的优化的浏览器健身房。

AppStat:实时监控应用性能的利器

2025-03-04

AppStat 是一款免费的应用程序性能监控工具,能够实时监控 CPU、内存、磁盘和线程指标。它拥有简洁直观的图形界面,可以帮助开发者快速识别资源瓶颈、内存泄漏和性能峰值,而无需中断工作流程。AppStat 支持深浅模式、置顶显示以及日志导出等功能,方便团队协作分析。

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

2025-03-04
arXivLabs:与社区协作者的实验性项目

arXivLabs是一个允许协作者直接在我们网站上开发和共享arXiv新功能的框架。与arXivLabs合作的个人和组织都接受并遵守了我们开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。有一个想法可以为arXiv社区增加价值吗?了解更多关于arXivLabs的信息。

开发

postmarketOS 2025年2月更新:新命名、音频支持和更多改进

2025-03-04
postmarketOS 2025年2月更新:新命名、音频支持和更多改进

postmarketOS 项目在 2025 年 2 月取得了显著进展。该项目计划改名,并已向社区征集新的名称建议。与此同时,MSM89x7 芯片的音频支持得到增强,更多的小米设备加入社区支持行列。此外,postmarketOS 还进行了安全审计,并对基础设施进行了改进,包括备份和 CI 系统。许多内核更新和软件包升级也已发布,进一步提高了系统稳定性和性能。

开发

告别巨型文档:小文档写作指南

2025-03-04

软件开发中,小而精的代码提交已成为共识。同样,技术文档也应遵循这一原则。小文档更易于审核、反馈更详尽,且风险更低。文章建议文档应专注于单一主题,包含完整上下文,避免过度简化。若文档过长,可将其分解成多个小文档,并利用清晰的组织架构、交叉链接和定期维护来避免信息碎片化。最终目标是提升协作效率,降低压力,获得更高质量的文档。

开发 协作效率

Go语言中panic和recover的性能代价

2025-03-04

本文通过对比Go语言中使用`panic`和`recover`处理数组遍历与传统循环方法的性能差异,揭示了滥用`panic`和`recover`进行控制流的弊端。实验结果表明,`panic`和`recover`机制在小规模数据处理中性能损失巨大,原因在于其抑制了编译器的优化,例如内联和边界检查消除。虽然在处理内部错误时,`panic`和`recover`可能带来效率提升,但作者建议谨慎使用,并应避免将其暴露在程序的公共接口中。

开发 panic recover

突破2GB限制:在WebAssembly中使用异步I/O处理大型文件

2025-03-04
突破2GB限制:在WebAssembly中使用异步I/O处理大型文件

作者先前在WebAssembly中实现了setjmp,绕过了WASI libc对异常处理提案的依赖。但该方法限制在2GB以内。文章讲述了如何利用File API和Blob类型实现基于内存的文件系统,从而处理更大的文件。由于Web I/O是异步的,而系统语言通常是同步的,作者使用了Asyncify来桥接两种范式。过程中遇到了wasm-opt优化的问题,通过创建伪wasm-opt解决。最终,通过巧妙地使用volatile函数指针,成功绕过了Asyncify对`asyncjmp_rt_start`函数的错误假设,最终实现了对大型文件的异步处理。

开发

在GameCube/Wii上运行Windows NT:一个疯狂的项目

2025-03-04
在GameCube/Wii上运行Windows NT:一个疯狂的项目

一个令人难以置信的项目正在将Windows NT 3.51和更高版本移植到GameCube和Wii上!这需要大量的黑客技术,包括定制的ARC固件、驱动程序和工具链。该项目支持GameCube、Wii和Wii U(仅限vWii),并详细描述了安装过程,包括分区、驱动程序安装和潜在问题。虽然这是一个极具挑战性的项目,但它展示了游戏机硬件的潜力和开发者的创造力。

开发

GPL许可证:对WordPress的利与弊

2025-03-04
GPL许可证:对WordPress的利与弊

Red Sweater Software的Daniel Jalkut认为GPL许可证阻碍了WordPress的参与和采用。然而,本文作者反驳了这一观点,认为WordPress强大的插件和主题社区正是GPL许可证的功劳。作者以自身经验指出,GPL许可证在保护用户自由方面起到了关键作用,并最终促进生态系统的繁荣,而非阻碍发展。GPL许可证虽然有其局限性,但其核心原则——共享与互惠——对于构建强大的社区和生态系统至关重要。

(ma.tt)
开发

DeepSeek 的 smallpond:基于 DuckDB 的轻量级分布式计算框架

2025-03-04
DeepSeek 的 smallpond:基于 DuckDB 的轻量级分布式计算框架

DeepSeek 发布了 smallpond,一个基于 DuckDB 的轻量级分布式计算框架,用于处理海量数据集。它采用延迟计算和 Ray 分布式计算,支持多种分区策略,并能与 DeepSeek 自研的 3FS 文件系统高效协同。虽然依赖 Ray 和 3FS 引入了额外的复杂性,但 smallpond 在易用性和性能之间取得了平衡,为数据工程师提供了一种处理 TB 级数据集的新选择。相比于 Spark 等重量级框架,smallpond 更轻便、易于上手,尤其适合那些不需要处理过于复杂查询的中小型公司。

开发

构建你自己的用户空间TCP/IP栈:从以太网帧到ARP

2025-03-04
构建你自己的用户空间TCP/IP栈:从以太网帧到ARP

本文介绍了一个在Linux用户空间构建最小TCP/IP栈的教程系列的第一部分。该系列旨在通过实践学习网络和系统编程。文章首先讲解了TUN/TAP设备的使用,它允许用户空间程序拦截和操作网络流量。接着深入探讨了以太网帧格式和解析,包括MAC地址、ethertype字段以及帧校验序列。最后,文章详细阐述了地址解析协议(ARP)的工作原理、数据包格式以及地址解析算法,并通过arping命令验证了自定义网络栈的ARP回复功能。

开发 ARP

RCL 配置语言的设计抉择:浮点数的挑战

2025-03-04

作者在构建新的配置语言RCL时,面临着如何处理浮点数的难题。RCL作为JSON的超集,需要兼顾JSON语义、类型系统以及代码可读性等因素。文章详细探讨了整数类型与浮点数类型之间的权衡,例如是否需要区分整数和浮点数类型,以及如何处理数值相等性与类型转换等问题。最终,作者选择采用单一数值类型“Number”,以简化语言设计并提升用户体验,并在RCL 0.8.0版本中实现了这一方案。

开发

基于Jupyter Notebook的交互式进程树可视化工具

2025-03-04
基于Jupyter Notebook的交互式进程树可视化工具

DNB网络安全防御中心开发了一个基于Jupyter Notebook的交互式进程树可视化工具,用于提高安全事件响应效率。该工具利用anywidget、marimo、ibis、Apache Spark和dependentree等技术,将Microsoft Defender for Endpoint等EDR的进程创建事件日志转换为交互式树形图。用户可以通过该工具过滤事件、探索进程层次结构以及选择特定进程查看详细信息。该工具还支持在浏览器中运行,方便共享和演示。

谷歌增强 Google Play 应用小部件发现性

2025-03-04
谷歌增强 Google Play 应用小部件发现性

谷歌即将对 Google Play 进行更新,以提升应用小部件的可见度。此次更新包括新增小部件搜索筛选器、应用详情页的小部件徽章,以及一个专门推荐优秀小部件的编辑页面。谷歌产品经理 Yinka Taiwo-Peters 表示,此举旨在解决小部件开发的发现性和用户理解度问题,并强调了用户采用率对开发者的重要性。

Fuchsia组件与Linux容器的异同:一场技术深潜

2025-03-03
Fuchsia组件与Linux容器的异同:一场技术深潜

谷歌全新操作系统Fuchsia抛弃了Linux内核,其核心组件框架与Linux容器(如Docker)有着惊人的相似之处:两者都从网络获取内容寻址的Blob,并将这些Blob组装成隔离的文件系统结构,包含运行软件所需的所有依赖项,然后启动具有命名空间的进程,并将创建的目录作为其根目录。然而,本次演讲的重点在于这两个看似相似的技术是如何以及为何在应用场景和需求上产生分歧,最终导致各自的优势和不足。

Chrome缓存机制引发的诡异Bug:一段曲折的调试之旅

2025-03-03

作者在调试一个Parquet查看器时,发现程序在访问S3存储时崩溃。经过一番排查,发现问题并非在应用代码,而是Chrome的缓存机制。Chrome在处理范围请求时,会优化缓存,但当服务器返回403错误时,Chrome仍返回部分数据,导致应用崩溃。作者向Chromium团队报告了该问题,但该团队认为这是一个特性而非Bug。最终,作者选择在OpenDAL中修复该问题。这个故事提醒我们,调试时要找到正确的信任边界,才能更高效地解决问题。

Chirp:声波数据传输应用

2025-03-03
Chirp:声波数据传输应用

Chirp 是一款通过声音传输数据的应用。它使用简单的编码方案将文本转换为音频频率,这些频率可以通过扬声器播放,并由麦克风拾取。该应用具有实时频率可视化、文本到声音的发送和声音到文本的接收功能,并使用独特的起始和结束签名标记传输。基于 Node.js、React、TypeScript 和 Vite 开发,依赖 Web Audio API 实现音频处理。

开发

arXivLabs:与社区协作者共建arXiv新功能

2025-03-03
arXivLabs:与社区协作者共建arXiv新功能

arXivLabs是一个实验性项目框架,允许协作者直接在arXiv网站上开发和分享新功能。参与者必须遵守arXiv的开放、社区、卓越和用户数据隐私的价值观。你有提升arXiv社区价值的想法吗?快来了解arXivLabs吧!

开发

一名程序员的学术困境与转型之路

2025-03-03

一位在英国大学任教的资深程序员,在经历了六年的全职学术生涯后,感到在当前的体制下无法充分发挥自己的才能,并感到身心俱疲。他决定将工作调整为兼职,以获得更多时间从事自己热爱的编程和写作。他计划通过兼职咨询、众筹等方式,寻求更多支持,以摆脱目前“中等水平且自我管理不善”的困境,并重新找回对工作的热情和创造力。他认为,目前的学术环境过度重视量化指标,忽视了质量和价值,这与他自身的价值观相冲突。他希望通过转型,能够更好地平衡工作与生活,并为社会做出更大的贡献。

开发 学术困境

Xbox 360 幽灵漏洞:攻破超级管理员模式

2025-03-03
Xbox 360 幽灵漏洞:攻破超级管理员模式

本文是关于攻破 Xbox 360 超级管理员模式的第二部分。作者详细描述了如何发现并利用 Xbox 360 虚拟机中的漏洞,最终获得完全代码执行权限,并创建了“Bad Update”漏洞利用程序。作者花费了大量时间进行逆向工程和代码审查,最终通过巧妙地利用加密内存分配中的漏洞和缓存机制,实现了对加密内存的攻击,最终获得了超级管理员权限。这个过程充满了挑战,作者克服了各种困难,例如缓存问题和竞争条件,最终实现了目标。

开发

基于Python的Windows桌面AI助手

2025-03-03
基于Python的Windows桌面AI助手

一个名为Smartest Kid的Windows桌面AI助手诞生了!它使用Python编写,代码简洁,界面友好,灵感源于SmarterChild。通过Windows COM自动化,它能与Microsoft Office(Word、Excel)、图片和文件系统交互。对于想探索AI驱动桌面自动化的Windows用户来说,它是一个完美的工具。该项目开源,并欢迎贡献者加入,扩展其功能和个性化体验。

纯Go实现的高性能注意力机制和Transformer层

2025-03-03
纯Go实现的高性能注意力机制和Transformer层

Takara.ai团队发布了首个纯Go语言实现的注意力机制和Transformer层,旨在提供高性能和易用性。该库包含点积注意力、多头注意力和完整的Transformer层实现,支持批量处理以提高吞吐量,并针对CPU进行了矩阵运算优化。它适用于边缘计算、实时处理、云原生应用、嵌入式系统和生产系统等场景,未来还将支持位置编码、Dropout和CUDA加速等功能。

开发

颠覆认知:SQLite在大规模应用中的优势

2025-03-03
颠覆认知:SQLite在大规模应用中的优势

传统认知中,SQLite仅适用于小型应用。然而,文章指出,借助Cloudflare Durable Objects和Turso等服务,SQLite在超大规模应用中展现出意想不到的优势。这些服务将SQLite数据库按实体分配,取代了传统分片数据库的复杂分区策略,有效解决了分片数据库带来的架构僵化、schema变更困难、跨分区操作复杂等问题。虽然SQLite在大规模应用中也存在一些挑战,例如缺乏开源自托管方案和标准化协议,但其在ACID事务、高效I/O和丰富的SQL扩展方面的优势使其成为一种极具潜力的替代方案。

开发

agents.json:让AI代理轻松与API交互

2025-03-03
agents.json:让AI代理轻松与API交互

Wildcard AI 推出了 agents.json 规范,旨在简化 AI 代理与 API 的交互。该规范基于 OpenAPI 标准,通过添加流程和链接等功能,解决了 AI 代理难以执行多步 API 调用序列的问题。agents.json 文件描述了 API 端点及其交互方式,从而使 AI 代理能够可靠地执行一系列 API 调用。Wildcard Bridge Python 包提供了加载、解析和运行 agents.json 文件的功能,开发者只需添加 agents.json 文件,即可实现 AI 代理与 API 的无缝集成。

开发 API交互

Rust 惊天压缩:将 10GB 的 RATP 公共交通数据压缩至 530KB

2025-03-03

这个周末项目始于浏览巴黎公共交通网络的开放数据存储库,该存储库包含各种 API,用于查询实时出发、当前中断等。作者注意到数据重用部分,其中包含使用此开放数据的外部项目。特别是 RATP 状态网站提供了一个非常好的界面来可视化地铁、RER/火车和电车线路的历史中断情况。作者发现 ratpstatus.fr 的 GitHub 存储库包含从开放数据 API 查询到的所有 JSON 文件,几乎一年来每 2 分钟查询一次。这个存储库有 188K 次提交,仅在最后一次提交时就积累了超过 10GB 的数据。作者好奇能否通过合理的投入(周末项目)来更好地压缩这些数据。本文深入探讨了作者如何使用 Rust 中的驻留设计模式将此数据集压缩了两千倍!文中研究了如何最好地构建驻留器本身,如何调整数据模式以使其与驻留器良好配合,以及序列化如何最好地利用驻留。最终,作者成功地将 1.1GB 的 JSON 文件压缩到只有 530KB,实现了惊人的压缩效果。

开发 驻留

arXivLabs:与社区协作者共建arXiv新功能

2025-03-03
arXivLabs:与社区协作者共建arXiv新功能

arXivLabs是一个实验性项目,允许合作者直接在arXiv网站上开发和分享新功能。参与者(个人或组织)均认同arXiv的开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,只与遵守这些价值观的合作伙伴合作。你有提升arXiv社区价值的想法吗?了解更多关于arXivLabs的信息。

开发

利用LLM构建法国餐厅网络图谱

2025-03-03

作者利用LeFooding.com的法国餐厅评论数据,通过OpenAI的gpt4o-mini模型,结合结构化生成技术,提取评论中餐厅员工信息及工作经历,构建了一个包含5000多个节点和边的餐厅网络图谱。该项目展示了LLM在提取结构化信息方面的强大能力,并探讨了使用不同LLM模型的优劣及成本控制。最终成果是一个可视化的网络图谱,展示了法国餐厅间的关联以及员工的职业路径。

FlakeUI:基于分形结构的全新图形用户界面

2025-03-03
FlakeUI:基于分形结构的全新图形用户界面

FlakeUI 是一款革命性的图形用户界面,它采用分形结构、父子轨道和缩放元素,为内容导航带来全新的体验。想象一下,你的网页内容不再是简单的列表,而是如同宇宙般充满探索乐趣的动态分形结构。用户可以通过拖拽、旋转、缩放等五种手势在内容之间自由穿梭,如同在星系中遨游。FlakeUI 基于 Javascript,适合用于需要用户反复访问的网页,例如精选网页链接库或可搜索的层级目录。其内容编辑通过 XHTML 页面和 XML 文件实现,支持超链接跳转。快来体验这前所未有的内容浏览方式吧!

开发 分形结构

Ninja 构建日志可视化工具:Ninjavis

2025-03-03
Ninja 构建日志可视化工具:Ninjavis

Ninjavis 是一款解析 Ninja 构建日志的工具,它可以提取每个构建项的目标、开始和结束时间,并生成一个包含简单时间线的可视化图表。该工具受 buildbloat 启发,使用 vis.js 进行可视化。使用前需运行 `ninja -t recompact` 清除构建日志中的重复条目。Ninjavis 提供了简洁的命令行界面,方便用户快速生成构建过程的性能分析报告。

开发

uBlock Origin 的 Manifest V3 困境:Chrome 警告与 uBO Lite 的权衡

2025-03-03
uBlock Origin 的 Manifest V3 困境:Chrome 警告与 uBO Lite 的权衡

Chrome 127 将开始警告使用 Manifest V2 的 uBlock Origin (uBO) 扩展程序。由于 Manifest V2 已被弃用,uBO 将面临兼容性问题。官方推出了精简版的 uBO Lite (uBOL),但为了适应 Manifest V3,牺牲了部分功能。用户需要自行选择是否替换为 uBOL,或者继续在其他浏览器(如 Firefox)上使用 uBO。Chrome 也存在通过 ExtensionManifestV2Availability 策略延长 Manifest V2 支持的讨论。

开发
1 2 146 147 148 150 152 153 154 213 214