分类: 开发

MarkItDown:免费在线Markdown转换工具

2024-12-21

MarkItDown是一款免费的在线Markdown转换工具,由微软开源项目Markitdown提供支持。它可以将多种格式的文件(如Word、PDF、HTML等)快速转换为标准Markdown格式,方便用户进行博客写作、笔记整理、技术文档编写和内容迁移等工作。该工具无需下载安装,安全可靠,并具有高效的转换速度,是处理各种文件格式的便捷之选。

开发

技术债务与技术资产:如何明智投资?

2024-12-21

本文探讨了技术债务与技术资产的区别。技术债务如同财务债务,是不得不偿还的代码问题,例如bug、代码可读性差等,会降低开发效率。而技术资产则是对已知问题的提前投资,例如构建高质量SDK,能减少未来维护成本,提升开发自由度。文章建议,企业应优先偿还技术债务,再投资技术资产,并借鉴成熟的流程和技术,避免技术债务的累积,最终获得更高的开发效率和产品质量。

开发 技术资产

避免内联汇编常见错误的规则

2024-12-21

本文并非内联汇编教程,而是总结了避免常见内联汇编错误的六条规则。作者指出,内联汇编易出错,应尽量避免,现代编译器提供了丰富的内建函数替代方案。如果必须使用,则需注意:尽可能使用`volatile`限定符;如果访问内存,则需要`memory` clobber;切勿修改输入约束;不要在内联汇编中调用函数;不要定义绝对汇编标签;使用汇编程序的局部标签特性来避免标签冲突。文章最后鼓励读者通过实践来巩固这些规则,例如检查在线教程中的错误。

开发 内联汇编

无数据库支付处理:事件溯源的革命性应用

2024-12-21

支付工程师Alvaro Duran在《支付工程师手册》中提出了一种颠覆性的支付系统设计理念:无需数据库。文章指出,异步编程的广泛应用源于对数据库的依赖。通过事件溯源,系统将支付过程中的每一个步骤都作为事件记录,而非直接存储状态。这些事件暂时存储在内存中,系统根据事件流重建支付状态,从而无需持久化存储。这种方法借鉴了高频交易领域的技术,实现了高性能和高可靠性,即使系统宕机,通过热备份也能迅速恢复。文章以支付流程为例详细阐述了这一理念,并展望了其在未来支付系统中的应用前景。

Web Components引用系统@celine/bibhtml发布3.0.3版本

2024-12-21

基于Web Components的HTML文档引用系统@celine/bibhtml发布了3.0.3版本。它提供类似于LaTeX/BibTeX的引用体验,底层使用Citation.js,即使引用格式错误或禁用JavaScript也能优雅降级。该系统支持BibTeX、非结构化文本、DOI和Wikidata四种参考文献格式,并提供``、``和``三个自定义元素,方便用户在HTML文档中添加和管理参考文献。

突破性进展:将C代码安全编译为Rust

2024-12-21

研究人员开发了一种新方法,能将C语言代码安全地编译成Rust语言。这项技术利用静态分析和类型导向转换,避免了依赖Rust的`unsafe`代码块,从而保证了内存安全。该方法已成功应用于HACL*加密库和EverParse库中的代码,生成了一个8万行纯Rust编写的、经过验证的现代加密库,这是业界首创。

开发 C语言编译

程序员用Bash打造“伪3D”游戏

2024-12-20

一位名叫izabera的程序员利用Bash脚本语言,成功开发出一款令人惊叹的“伪3D”游戏。这款游戏致敬经典游戏《Wolfenstein 3D》,其在GitHub上开源,代码简洁但效果惊艳,展现了Bash脚本强大的潜力以及程序员的创造力。项目包含游戏源码和演示视频,感兴趣的开发者可以前往GitHub查看学习。

开发

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

2024-12-20

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

DOS APPEND命令:解决老旧MASM与现代文件组织的冲突

2024-12-20

在构建DOS 2.11源码时,作者面临一个难题:古老的MASM 1.25不支持目录结构,而现代化的文件组织需要树形目录。为了避免将所有文件堆积在一个目录,作者巧妙地利用了DOS APPEND命令。APPEND是一个TSR程序,它可以拦截文件打开等系统调用,并在当前目录找不到文件时,从预设路径列表中查找。这使得MASM 1.25能够在树形目录结构中找到所需文件,解决了历史遗留问题,也展现了APPEND命令在特定场景下的强大实用性。

开发 APPEND MASM

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

谷歌在其面向企业的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 版本发布了备受期待的图视图,支持拖放和撤销功能。新视图基于 GraphNodes 和 GraphEdges 原型构建,可视化建模ROS图、语义场景图等多种图结构。该版本还实现了基于时间旅行的撤销功能,并内置了新的基于力的图布局引擎Fjädra,提升了用户体验。

开发 Rerun 图视图

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

2024-12-20

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

文章探讨了浏览器如何处理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,它利用美国国家融合模型(NBM)和全球预报系统(GFS)数据,提供海量历史天气数据。只需一个HTTP请求,即可在几秒钟内获取数万个数据点的小时级数据,支持多种数据格式(CSV、Parquet、JSON等)和地理位置查询方式。其经济高效的定价和强大的功能,让开发者能够轻松获取所需数据,无需下载和存档。

开发 历史数据

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

2024-12-19

本章介绍了近场通信 (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是一个轻量级、语义清晰且灵活的状态管理库,专为中大型单页应用复杂状态管理而设计。它基于计算值、命令和状态三种基本数据类型,拥有简洁直观的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是一个基于Keycloak的、由Tide安全架构保护的、易于使用的身份和访问管理系统。本文档指导你如何在10分钟内用TideCloak创建一个安全的单页React应用程序。首先,你需要安装Docker和NPM,然后运行TideCloak-Dev Docker容器。激活免费的开发者许可证后,你可以创建React项目,安装依赖项,并运行应用。用户可以登录、注册并根据预定义角色查看自定义内容,所有这些都由TideCloak管理,并由Tide的网络安全架构保障安全。

开发 TideCloak

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

2024-12-19

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

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

2024-12-19

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

开发

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

2024-12-19

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

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

2024-12-19

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

开发

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

2024-12-19

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

开发
2 4 5 6 7 8 9