分类: 开发

io_uring子系统迎来进程创建功能更新

2024-12-20

LWN.net报道,io_uring子系统正在开发一项新的进程创建功能。这项功能通过两个新的io_uring操作IORING_OP_CLONE和IORING_OP_EXEC实现,前者创建新进程,后者执行execveat()系统调用加载新程序。这将提高效率,并允许在内核中异步执行更复杂的逻辑,例如路径搜索。然而,该功能仍处于早期阶段,存在一些限制,例如新进程中io_uring操作必须同步执行。未来,开发者希望提升其灵活性,并最终将其合并到Linux主线内核中。

开发 进程创建

Grayjay 应用:关注创作者而非平台

2024-12-20

Grayjay 是一款跨平台视频播放器,它整合了 YouTube、PeerTube、Twitch 等多个平台的视频内容,让用户无需在不同平台间切换。该应用注重用户隐私,本地存储观看历史记录,并支持数据导入导出和自动备份。此外,Grayjay 还提供个性化内容订阅源、屏幕投射功能以及 Harbor 服务,方便用户连接观众并进行内容变现。

开发

谷歌Gemini Code Assist集成第三方工具

2024-12-20
谷歌Gemini Code Assist集成第三方工具

谷歌在其面向企业的AI代码辅助工具Gemini Code Assist中增加了对第三方工具的支持。此举旨在通过插件集成Jira、GitHub、Sentry等工具,减少开发者上下文切换的摩擦,提高生产力。目前该功能处于私人预览阶段,仅限Google Cloud合作伙伴使用。此举将Gemini Code Assist与GitHub Copilot Enterprise形成直接竞争,但谷歌强调其在支持本地代码库等方面具有优势。

主权科技基金投资OpenStreetMap

2024-12-20

OpenStreetMap基金会获得主权科技机构38.4万欧元资助,用于其核心软件的稳定性、增长和现代化。这笔资金将用于更新代码、改进文档和测试基础设施,以及改进核心基础设施,例如应对破坏行为和新的数据交互方式。基金会还将为此创建两个新职位,其中一个是OSM核心软件开发促进者,以协调开发人员的工作并促进社区贡献。

Rerun 0.21 版本更新:图视图、拖放和撤销功能

2024-12-20
Rerun 0.21 版本更新:图视图、拖放和撤销功能

Rerun 0.21 版本发布了备受期待的图视图,支持拖放和撤销功能。新视图基于 GraphNodes 和 GraphEdges 原型构建,可视化建模ROS图、语义场景图等多种图结构。该版本还实现了基于时间旅行的撤销功能,并内置了新的基于力的图布局引擎Fjädra,提升了用户体验。

开发 Rerun 图视图

开源游戏引擎boardgame.io:简化回合制游戏开发

2024-12-20
开源游戏引擎boardgame.io:简化回合制游戏开发

boardgame.io是一个开源的JavaScript游戏引擎,旨在简化回合制游戏的开发。它通过自动处理状态管理、多人网络和AI对手等复杂环节,让开发者只需专注于游戏逻辑的编写。该引擎支持多种游戏阶段、大厅匹配、原型设计以及多种视图层技术(如React和React Native)。其强大的插件系统和可追溯的游戏日志进一步提升了开发效率和游戏体验。

WordPress.org因节日休假暂停部分服务

2024-12-20

为了让WordPress.org的志愿者们在节假日休息,WordPress.org暂停了部分免费服务,包括WordPress.org的新账户注册、新的插件目录提交、新的插件审核、新的主题目录提交和新的照片目录提交。论坛和本地化服务不受影响。WordPress.org创始人Matt Mullenweg提到,由于WP Engine的法律诉讼,他不得不投入大量时间和资源进行法律防御,这影响了他为WordPress改进投入的时间。他呼吁大家支持WordPress.org,并建议大家选择其他不参与诉讼的网络托管服务商。

开发 节日休假

并发编程可视化指南:理解程序状态空间

2024-12-20

并发编程的复杂性在于难以枚举所有可能的状态。本文通过可视化方法,解释如何理解并发程序运行机制。文章首先介绍了程序状态的概念,即变量值和指令位置的组合,然后通过一个简单的C语言程序示例,展示了程序状态的转换过程以及状态空间的生成。接着,文章引入了并发程序,通过两个并发执行的程序P和Q,阐述了如何表示并发程序的状态以及状态空间的构建。最后,文章探讨了如何利用模型检查工具SPIN和LTL语言验证并发程序的正确性,强调了模型检查在确保并发程序正确性中的重要作用。

开发 状态空间

浏览器如何解读“chucknorris”为颜色?

2024-12-20
浏览器如何解读“chucknorris”为颜色?

文章探讨了浏览器如何处理HTML中无效颜色值,例如将'chucknorris'解释为红色。作者解释了浏览器在解析HTML时具有容错性,会尝试将无效值转换为有效值。文中描述了浏览器解析无效颜色值的步骤,并提供了一个CodePen链接,演示了该过程。作者认为浏览器的这种容错性是网页的魅力所在,让即使是无效代码也能在浏览器中运行,展现了网页的韧性。

Python生态圈周报:Markitdown工具发布,Conda包管理问题引发热议

2024-12-20

本周Python新闻涵盖Microsoft发布的Markitdown(将文件转换为Markdown的工具)、PDFMathTranslate(科学论文翻译工具)和docling(文档准备工具)。此外,PEP 768提议为CPython添加安全外部调试器接口,方便实时调试。Conda包管理的混乱引发开发者热议,文章分析了其复杂性及潜在问题,包括版本冲突、虚拟环境管理和与pip、setuptools的交互等。最后,Markdown的使用也引发讨论,文章指出不同Markdown解析器的差异导致兼容性问题。

开发

GribStream:快速高效的天气预报历史API

2024-12-20
GribStream:快速高效的天气预报历史API

GribStream是一个快速、高效且易用的天气预报历史API,它利用美国国家融合模型(NBM)和全球预报系统(GFS)数据,提供海量历史天气数据。只需一个HTTP请求,即可在几秒钟内获取数万个数据点的小时级数据,支持多种数据格式(CSV、Parquet、JSON等)和地理位置查询方式。其经济高效的定价和强大的功能,让开发者能够轻松获取所需数据,无需下载和存档。

开发 历史数据

NFC 数据交换格式 (NDEF) 介绍

2024-12-19
NFC 数据交换格式 (NDEF) 介绍

本章介绍了近场通信 (NFC) 数据交换格式 (NDEF),它是 NFC 设备和标签之间进行通信的通用语言。NDEF 是一种二进制格式,由消息组成,每个消息可以包含多个记录。每个记录由包含元数据的标头和包含内容的有效负载组成。本书还介绍了 NDEF 记录的结构、类型名称格式、有效负载类型、有效负载标识符和有效负载,以及如何使用 Android 应用编写和读取 NDEF 格式的消息。此外,还介绍了 NDEF 消息的大小限制以及如何进行记录分块以发送大于限制大小的内容。最后,通过一个示例应用程序,演示了如何使用 PhoneGap-NFC 插件编写一个简单的 NFC 标签写入应用程序,该应用程序可以将 NDEF 消息写入 NFC 标签,从而启动 Foursquare 应用程序。

开发 NDEF

类型驱动开发:让类型系统简化编程难题

2024-12-19
类型驱动开发:让类型系统简化编程难题

本文探讨了“类型驱动开发”的理念,作者通过在Heartbeat大型Typescript项目中的经验,阐述了如何利用Typescript的类型系统来简化复杂编程问题。文章的核心观点是:通过充分利用类型系统,让类型在应用的各个层面自由流动,从类型定义开始设计新功能,使非法状态不可表示,解析而非验证数据,并保持代码的诚实性和特异性,可以大幅减少bug,提高开发效率。作者还分享了如何利用纯函数作为类型桥梁,以及如何将类型系统作为代码内省工具的技巧,并指出在必要时可以适度地绕过类型系统约束。

Clay:一款强大的UI布局库

2024-12-19

Clay是一款用于构建响应式和可访问UI界面的轻量级UI布局库。它提供了一套简洁直观的API,让开发者可以轻松地创建复杂的布局,同时保持代码的可维护性和可读性。Clay注重性能和可访问性,通过精简的代码和合理的架构,确保页面快速加载并对所有用户友好。无论是简单的页面布局还是复杂的交互式应用,Clay都能胜任,帮助开发者更高效地构建高质量的UI界面。

轻量级状态管理库CCState:高效且灵活

2024-12-19
轻量级状态管理库CCState:高效且灵活

CCState是一个轻量级、语义清晰且灵活的状态管理库,专为中大型单页应用复杂状态管理而设计。它基于计算值、命令和状态三种基本数据类型,拥有简洁直观的API和高达100%的代码覆盖率测试。CCState框架无关,兼容React、原生JS等,速度极快,性能优于Jotai。它提供`state`、`computed`和`command`三种核心API,分别用于存储基本值单元、创建衍生计算逻辑和组织副作用逻辑。通过`useGet`、`useSet`等React Hooks,开发者可以轻松地获取和设置数据,并利用`useLoadable`和`useResolved`处理Promise值。CCState还提供订阅功能,实现状态变化的响应式更新。

开发 状态管理

TideCloak快速入门:10分钟搭建安全React应用

2024-12-19
TideCloak快速入门:10分钟搭建安全React应用

TideCloak是一个基于Keycloak的、由Tide安全架构保护的、易于使用的身份和访问管理系统。本文档指导你如何在10分钟内用TideCloak创建一个安全的单页React应用程序。首先,你需要安装Docker和NPM,然后运行TideCloak-Dev Docker容器。激活免费的开发者许可证后,你可以创建React项目,安装依赖项,并运行应用。用户可以登录、注册并根据预定义角色查看自定义内容,所有这些都由TideCloak管理,并由Tide的网络安全架构保障安全。

开发 TideCloak

轻量级HTML模板库mizu.js:简化网页开发

2024-12-19
轻量级HTML模板库mizu.js:简化网页开发

mizu.js是一个轻量级的HTML模板库,支持客户端和服务器端渲染。它使用简单的语法,接近原生JavaScript和HTML,易于上手。mizu.js提供丰富的指令,涵盖条件渲染、循环渲染、数据绑定、HTTP请求等功能,无需复杂的构建步骤,即可构建各种类型的网页应用,包括单页应用、静态网站和动态网页。其灵活性和简洁性使其成为小型项目和大型项目的理想选择。

WebGPU Sponza 演示:惊艳的浏览器图形技术

2024-12-19
WebGPU Sponza 演示:惊艳的浏览器图形技术

Georgi Nikolov 创建了一个令人惊叹的 WebGPU Sponza 演示,展示了该技术的强大图形渲染能力。用户可以使用键盘和鼠标在场景中自由漫游。但需要注意的是,该演示需要现代浏览器支持 WebGPU API 才能运行。目前,Chrome 113 及以上版本、最新的 Firefox Nightly 版本以及 Safari 技术预览版均已支持 WebGPU。如果你的浏览器不支持,请更新至最新版本以体验这款令人印象深刻的图形演示。

开发

Proxmox数据中心管理器Alpha版本发布

2024-12-19
Proxmox数据中心管理器Alpha版本发布

Proxmox发布了其数据中心管理器的Alpha预览版。该软件旨在集中管理所有节点和集群,提供虚拟机迁移等基本管理功能,无需集群网络。它使用Rust语言开发,拥有现代化的Web界面,提高了速度和兼容性。Alpha版本旨在收集用户反馈、测试核心功能并促进协作。虽然存在一些未完成的功能和bug,但它已能管理大量远程主机和虚拟机。

程序员用AI艺术化电影画面

2024-12-19
程序员用AI艺术化电影画面

一位程序员利用Python、OpenCV和PIL库,将电影画面转化为独特的艺术作品。他从视频中提取帧,压缩颜色,生成条形码和环形“虹膜”图像,展现电影的色彩主题演变。该项目名为“Movie Iris”,代码已开源,可处理任意视频,将日常生活片段也变成艺术品。

开发

极简看板Nullboard:离线可用,本地存储,高效便捷

2024-12-19
极简看板Nullboard:离线可用,本地存储,高效便捷

Nullboard是一款极简主义的看板,专注于紧凑性和可读性。它是一个单页面Web应用,所有数据都存储在本地,支持离线使用,并可导入导出JSON格式的数据。Nullboard支持拖拽、自动保存、撤销重做等功能,旨在提供高效便捷的任务管理体验。开发者出于对现有工具的不满,亲手打造了这款满足自身需求的工具,并开源分享。

开发

Retis:Linux网络栈数据包追踪利器

2024-12-19
Retis:Linux网络栈数据包追踪利器

Retis是一个使用eBPF探针追踪Linux网络栈中数据包的工具,它能够与Open vSwitch或Netfilter等控制和数据路径交互。Retis可以用于调试网络问题、探索Linux网络栈或测试网络功能。它支持数据包过滤和追踪,可以获取除数据包本身以外的元数据和上下文信息,无需在目标系统上编译,并支持后期处理,例如重建数据包路径。Retis易于使用,提供多种预设配置文件,并支持自定义探针和过滤规则,方便用户灵活运用。

Botan:现代C++加密工具包

2024-12-19
Botan:现代C++加密工具包

Botan是一个功能强大的C++加密库,它以BSD许可证开源发布,旨在成为C++加密领域的最佳选择。Botan提供了广泛的工具,包括TLS协议、X.509证书、现代AEAD密码、PKCS#11和TPM硬件支持、密码哈希以及后量子密码方案等。它还包含Python绑定,并支持多种其他语言绑定,以及功能丰富的命令行界面。Botan的最新版本是3.6.1,并被广泛用于Fedora、Debian、Arch和Homebrew等发行版。

开发 Botan

Go语言静态博客生成器Trofaf:简洁高效的博客搭建方案

2024-12-19
Go语言静态博客生成器Trofaf:简洁高效的博客搭建方案

Trofaf是一款用Go语言编写的超简单的静态博客生成器。它仅需三个目录(posts、public、templates)即可运行,通过监控markdown文件和模板文件的变化,自动生成静态网站。支持YAML front matter元数据,并提供命令行选项自定义端口、站点名称等。简洁的设计使其易于上手,适合追求高效便捷的博主。

Fish Shell 4.0 正式发布:Rust 重写带来全新体验

2024-12-19

Fish shell,一款以其易用性和智能功能而闻名的命令行shell,正式发布了4.0版本。此次更新最大的亮点在于将代码库从C++迁移至Rust,提升了现代计算效率。4.0版本还带来了诸多新特性,例如更自然的按键绑定和更强大的历史搜索功能,旨在为用户提供更便捷、愉悦的命令行体验。为了确保稳定性,项目组特别推出了公开测试版,邀请所有用户参与测试。

开发

老程序员的困惑:与年轻一代开发者日渐脱节

2024-12-19

一位拥有25年编程经验的资深开发者,在观察年轻一代Web开发者时,感受到了一种日渐加深的脱节感。他发现,许多年轻开发者对传统的Web开发模式(非单页应用)缺乏了解,甚至将JavaScript框架与纯JavaScript混淆。这让他反思了编程教育中抽象层次的演变以及专业技能的侧重点。他以一个面向开发者的游戏节目为例,指出其中一些“计算机科学”问题实则过于侧重JavaScript的细节,缺乏对更广泛计算原理的考察。这并非对年轻开发者的批判,而是一种对行业发展趋势的观察与担忧,也是对编程领域日益细分化、专业化趋势的思考。

开发 代际差异

高校编程课程改革:注重显式系统设计

2024-12-19

东北大学计算机系开发了一套独特的编程教学课程,核心是强调显式和系统的程序设计方法,而非流行编程语言本身。课程首先使用简易教学语言,循序渐进地引导学生掌握设计原则,再将其应用于工业级编程语言,培养学生逻辑推理和解决大型复杂软件问题的能力。课程还强调编程的社会属性,鼓励学生结对编程,提升沟通协作能力。这种方法不仅提高了学生就业竞争力,也为其未来的职业发展奠定了坚实基础。

开发 课程改革

考古发现揭示14种内存安全方法,颠覆编程世界

2024-12-19

一位软件工程师在玛雅古城遗址中发现了一部古代文献,记载了14种令人惊叹的内存安全方法,远超现今编程语言的认知。这些方法包括借用检查、引用计数、垃圾回收等传统技术,以及一些前所未闻的创新方案,例如基于区域的内存管理、世代引用和线性引用计数等。该发现不仅扩展了人们对内存安全的理解,也预示着未来编程语言的发展方向,或将彻底改变软件开发的格局。

开发

颠覆传统:基于马尔可夫链的动态键盘布局

2024-12-19
颠覆传统:基于马尔可夫链的动态键盘布局

厌倦了千篇一律的静态键盘布局?MarkovKeyboard项目带来革命性改变!它利用马尔可夫链算法,根据你的打字习惯动态调整键盘布局,常用按键更靠近主行。该项目是一个Emacs库,每次按键都会更新布局,虽然目前只支持英文字母,但已能实现动态调整。你可以使用预训练模型或自行训练数据创建个性化布局。

开发 动态键盘

Firenvim:将Neovim嵌入浏览器,提升编辑体验

2024-12-19
Firenvim:将Neovim嵌入浏览器,提升编辑体验

Firenvim是一款将Neovim编辑器嵌入Chrome和Firefox等浏览器的插件。用户只需点击文本框,即可用Neovim编辑网页内容,:w保存修改,:q关闭编辑器。安装简单,支持自定义配置,例如选择要编辑的元素类型、自动接管方式、命令行类型等。Firenvim还提供丰富的功能,例如手动触发、临时禁用、自定义配置文件、处理特殊字符以及与网页交互等。但需要注意的是,部分网站可能存在兼容性问题。

开发
1 2 204 205 206 208 210 211 212 213 214