分类: 开发

Cascii:无需依赖的在线ASCII和Unicode绘图工具

2025-03-17
Cascii:无需依赖的在线ASCII和Unicode绘图工具

Cascii是一款基于Web的ASCII和Unicode图表构建器,使用纯JavaScript编写,无需任何服务器、Web打包、库以及任何标记和样式表。只需打开cascii.html文件即可开始绘制图表。Cascii还托管在cascii.app,你可以获取图表短链接、创建账户等。它支持多种绘图功能,包括图层管理、选择、分组、排序、复制、动态表格、自由绘制/擦除、自动保存、粘贴/导入文本、历史记录(撤销/重做)等,并支持ASCII和Unicode字符。

移动应用盈利差距巨大:头部应用收入暴增500倍

2025-03-17
移动应用盈利差距巨大:头部应用收入暴增500倍

RevenueCat最新报告显示,移动应用盈利差距正在扩大。2024年,头部5%应用的收入是其余95%应用的200倍,而今年这一数字已飙升至500倍!头部应用月收入超过5000美元,而25%分位数的应用月收入仅为5-20美元,甚至更低。76.1%的北美开发者80%以上的收入来自iOS应用。为弥补收入不足,开发者们正尝试更多变现方式,例如付费墙、增值服务和价格上涨,甚至AI应用也可能采用按使用付费模式。订阅续订率低也是一大难题,月度订阅计划中,仅不到10%的用户能续订到第二年。

localscope: 告别Jupyter Notebook中的全局变量陷阱

2025-03-17

在Jupyter Notebook中使用全局变量常常导致难以追踪的bug。localscope库通过限制函数访问的变量范围,有效解决了这个问题。它能防止意外的全局变量泄露,从而避免代码运行结果的不确定性和调试难题,让你的代码更可靠、更易于维护。例如,一个计算均方误差的函数,如果依赖全局变量sigma,则sigma的变化会影响结果,而localscope会强制要求将sigma作为参数传入,避免这种隐患。

开发

Rust 代码形式化验证工具 coq-of-rust:100% 代码无bug

2025-03-17
Rust 代码形式化验证工具 coq-of-rust:100% 代码无bug

coq-of-rust 是一款将 Rust 代码翻译成 Coq 证明系统的工具,旨在实现 Rust 代码的形式化验证,从而消除所有 bug。它通过将 Rust 程序转换为 Coq 代码,并利用 Coq 的证明技术进行验证,最终达到 100% 代码无 bug 的目标。该工具支持 Rust 的大部分核心特性,并提供形式化验证服务,适用于智能合约、数据库引擎等关键 Rust 项目。

开发

arXivLabs:与社区协作者共同开发实验性项目

2025-03-17
arXivLabs:与社区协作者共同开发实验性项目

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

开发

Firefox 62 正式支持 CSS Shapes:让你的网页内容环绕任意形状

2025-03-17
Firefox 62 正式支持 CSS Shapes:让你的网页内容环绕任意形状

Firefox 62 版本正式支持 CSS Shapes,允许网页内容环绕非矩形形状流动。这篇文章介绍了如何使用图像、渐变和基本形状创建各种形状,并利用 Firefox DevTools 中的新工具简化形状编辑。你可以用图片的透明区域、渐变的透明区域,甚至预设形状(圆形、椭圆形、多边形)来控制文本的环绕方式,并使用 `shape-margin` 属性调整文本与形状的间距。文章还讲解了如何使用 `shape-image-threshold` 属性处理半透明图像,以及如何结合 `clip-path` 属性裁剪形状。

开发 CSS Shapes

HTTP/3 的分裂:巨头与长尾的博弈

2025-03-17
HTTP/3 的分裂:巨头与长尾的博弈

尽管 HTTP/3 和底层协议 QUIC 已标准化并广泛应用于大型网站,但在主流编程语言和开源工具中却缺乏原生支持。文章分析了这种矛盾现象,认为其根源在于互联网的“双层结构”:少数大型科技公司(“超大规模网络”)与其余开发者(“长尾网络”)之间存在巨大的资源和技术差距。“超大规模网络”拥有资源快速采用新技术,而“长尾网络”则受限于开源工具的更新速度和兼容性问题。OpenSSL 对 QUIC 的处理方式进一步加剧了这种分裂。作者呼吁关注这一问题,避免技术进步的红利仅被少数巨头垄断。

开发

将 Azure Entra ID 配置为 Keycloak 中的 IdP

2025-03-17
将 Azure Entra ID 配置为 Keycloak 中的 IdP

本文详细介绍了如何在 Spring Boot WebFlux 应用程序中使用 Keycloak 作为身份验证提供程序,并连接 Azure Entra ID (前身为 Azure Active Directory) 作为 Keycloak 中的身份提供程序。文章涵盖了 Azure 和 Keycloak 中的配置步骤,包括创建应用程序、配置 OpenID Connect、设置客户端密钥和重定向 URI,以及将 Azure 组映射到 Keycloak 角色以检索用户权限信息。作者分享了配置过程中的一些技巧和注意事项,例如切换 Azure 接口语言为英文以避免翻译问题,以及在 Keycloak 中选择正确的身份提供程序类型。最终实现了一个完整的身份验证和授权流程,并详细说明了如何在 JWT 令牌中包含角色信息。

Cline:你的AI代码助手,掌控你的CLI和编辑器

2025-03-17
Cline:你的AI代码助手,掌控你的CLI和编辑器

Cline 是一款基于 Claude 3.7 Sonnet 的 AI 助手,能够逐步处理复杂的软件开发任务。它可以创建和编辑文件、浏览大型项目、使用浏览器和执行终端命令(需授权)。Cline 支持多种 API 提供商,并能通过模型上下文协议 (MCP) 扩展自身功能。它提供人机交互式 GUI,确保安全可靠。Cline 还具有错误监控、代码补全、版本控制等功能,极大地提高了开发效率。

开发

Nango:一个开放的统一API集成平台

2025-03-17

2022年,Bastien和Robin因B2B SaaS集成难题而联手,发现现有预构建解决方案无法满足客户需求。他们接手了一个废弃的开源OAuth项目,意识到OAuth只是冰山一角,关键在于构建一个开放、可扩展的平台。2023年,他们加入Y Combinator冬季批次,将Nango重新推出为一个开放的统一API,成为驱动所有集成的单一平台和基础设施。

开发

LLM驱动下的复古游戏开发:只需几小时,就能克隆一个ZX Spectrum应用

2025-03-17
LLM驱动下的复古游戏开发:只需几小时,就能克隆一个ZX Spectrum应用

作者通过一个实验,展示了大型语言模型(LLM)在软件重写和克隆方面的强大能力。他首先用LLM生成一个简单的销售税计算器C语言程序,然后将其反汇编成汇编代码,再利用LLM生成该程序的功能规范文档。最后,他通过LLM将该规范转换成ZX Spectrum汇编程序,并成功运行。整个过程耗时仅约两小时,展现了LLM在跨语言软件转换和快速原型开发方面的潜力,同时也暗示了“开源”软件的潜在风险。

开发

无限协作的敏捷项目管理平台

2025-03-17
无限协作的敏捷项目管理平台

这款平台将Scrum方法论融入无限协作的项目管理中,无论团队规模大小,都能高效工作,自由沟通。它采用按任务付费的模式,没有用户限制,可以创建无限项目、团队和存储空间,并通过AI生成变更日志追踪进度。核心功能包括Backlog和Sprint视图等看板,还提供丰富的插件扩展功能,满足不同项目需求。

开发

Wagtail 用户青睐 uv 包管理器

2025-03-17
Wagtail 用户青睐 uv 包管理器

最新数据显示,uv 已经成为 Wagtail 用户中仅次于 pip 的第二大流行的包管理器,超越了 Poetry。虽然 pip 和 Poetry 仍然很受欢迎,但 uv 的使用增长并非仅仅来自 Wagtail 的新用户。数据显示 2024 年 7-8 月份 uv 的使用数据存在异常波动,可能是由于早期采用者或版本解析问题导致的。Wagtail 团队需要确保 uv 与其他工具一样良好地工作,并更新相关文档,甚至考虑在 bakerydemo 网站中将 uv 作为首选包管理器。

开发 Wagtail

C++重载解析中的“更好”:一场关于类型转换的探险

2025-03-17
C++重载解析中的“更好”:一场关于类型转换的探险

本文深入探讨了C++中重载解析的复杂性,特别是关于隐式类型转换的“更好”规则。作者通过对标准转换序列(包括限定符转换)的详细解释和示例,逐步揭示了编译器如何选择最佳匹配函数。文章以代码示例和逐步分析展现了C++类型系统中令人费解却又精妙的机制,最终引出了对隐式转换实用性的反思。

重拾数学之旅:MathAcademy学习体验

2025-03-17
重拾数学之旅:MathAcademy学习体验

作者分享了重拾数学学习的经历,以及使用MathAcademy在线学习平台的体验。他曾因糟糕的老师而讨厌数学,但成年后为了编程学习的需要,决定重新学习数学。MathAcademy的循序渐进的课程设计、积极的学习社区和游戏化元素,帮助他坚持学习并取得进展。虽然费用较高,但作者认为MathAcademy物有所值,推荐给其他想要学习数学的人。

开发 MathAcademy

开源运动的困境:我们是否迷失了方向?

2025-03-16
开源运动的困境:我们是否迷失了方向?

作者反思开源运动的现状,尽管开源社区创造了令人惊叹的技术成果,如维基百科和Linux内核,但在市场份额和影响力方面却远未达到预期。文章指出,开源运动过于关注技术本身,忽视了普适性与社会公平,将开源视为“黑客的俱乐部”,未能有效解决普通用户的实际问题。作者呼吁开源社区走出舒适区,将目光转向更广泛的社会议题,真正实现“人人自由”的目标,而非仅仅是赋能少数技术精英。

开发

编程语言分级与多语言协同开发

2025-03-16
编程语言分级与多语言协同开发

作者根据编程语言的类型和特性,将编程语言分为四个级别:解释型动态类型语言(如JavaScript)、解释型静态类型语言(如TypeScript)、编译型自动内存管理语言(如Go)和编译型手动内存管理语言(如Rust)。作者认为,针对不同需求,选择合适的语言级别至关重要,并提出构建一个由Rust、RustGC(2/3级混合语言)和RustScript(4级语言)组成的语言集,以提升开发效率和代码性能。这套语言集共享语法,并支持不同级别语言间的无缝调用,从而解决了不同语言工具集维护、人员培训等问题,最终目标是提高编程效率和代码质量。

Git bundle-uri:微小补丁,巨大潜力

2025-03-16
Git bundle-uri:微小补丁,巨大潜力

作者尝试优化Git clone速度,利用bundle-uri特性下载缓存文件预先填充项目数据。测试发现,本地文件作为起点可显著加速clone,但CDN加速效果不佳,原因是Git只复制refs/heads引用,忽略其他引用。作者提交了一个微小的补丁修复此问题,使得clone速度更快,仅下载增量数据。未来Git服务器可能会自动使用bundle-uri,减少服务器负载,提升clone效率。

开发 bundle-uri

高效的三维网格平滑算法:抛弃邻居查找

2025-03-16

本文介绍了一种高效的三维网格平滑算法,无需构建复杂的半边数据结构。通过“抛掷顶点”的方法,直接迭代三角面片,在单次遍历中累积邻居顶点位置,从而计算平均位置实现平滑效果。该方法避免了邻居查找,提高了效率。文章还探讨了并行化处理的几种方法,包括使用原子操作和预计算邻居列表,并比较了它们的性能差异。最后,文章还介绍了如何重新计算平滑后的顶点法线。

开发 网格平滑

PicoLisp:从入门到精通的全面文档指南

2025-03-16

这篇文档旨在引导你全面掌握PicoLisp编程语言。它汇集了网络上分散的PicoLisp代码和知识,提供了从入门到高级的教程、示例和重要概念讲解。文档涵盖了高效编辑、不同版本PicoLisp(包括64位版和Java版ErsatzLisp)、在线书籍、源代码以及众多实用库和框架,例如Web.l、Macropis和Pl-web等。 你将学习如何构建项目,并与社区分享你的成果。

开发

CppMatch:Rust风格错误处理与模式匹配的C++库

2025-03-16
CppMatch:Rust风格错误处理与模式匹配的C++库

CppMatch是一个轻量级的C++库,它引入了Rust风格的异常处理和模式匹配机制。它使用`Result`类型表示成功或失败的结果,并提供`expect`宏简化错误处理,`match`宏实现模式匹配,以及`zip_match`函数组合多个`Result`。 该库兼容Clang和GCC,并支持多种错误处理策略,例如使用lambda函数处理不同类型的错误。对于想要在C++中体验Rust优雅错误处理方式的开发者而言,CppMatch是一个值得关注的工具。

开发

tänzer:轻量级Tcl Web服务器框架

2025-03-16

tänzer是一个极简的Tcl Web服务器框架,它提供了一个非常直接的环境来编写HTTP/1.1 Web应用程序。它支持异步HTTP/1.1、基于模式的请求路由引擎、SCGI客户端和服务器支持、CGI可执行文件支持以及快速的静态文件服务,并且可以在Tcl 8.6上开箱即用。tänzer旨在简化异步Web应用程序的编写,即使是编写“Hello, world!”也轻而易举。

开发

C/C++ 中未定义行为的陷阱:高效代码与安全风险的博弈

2025-03-16

本文深入探讨了C/C++中“未定义行为”的本质及其对编译器优化和程序安全的影响。文中指出,未定义行为允许编译器在特定情况下生成更高效的代码,但同时也可能导致程序以不可预测的方式出错,甚至产生安全漏洞。文章通过案例分析,解释了编译器如何利用未定义行为进行优化,以及如何规避由此带来的风险,并建议开发者谨慎使用,结合多种工具和方法来确保代码的正确性和安全性。

开发

Hoarder:一款强大的自托管网络内容存档工具

2025-03-16
Hoarder:一款强大的自托管网络内容存档工具

Hoarder 是一款开源的自托管网络内容存档工具,允许用户搜索、过滤和标记网页内容,并完整保存网页内容,即使原网站下线也能访问。它使用 headless Chrome 下载内容,并可选地集成 AI 功能(例如使用 OpenAI 或 LiteLLM 生成标签和摘要)。Hoarder 提供 Web 应用程序和 Android 应用程序,支持全文搜索、标签过滤和 RSS 订阅。作者还分享了使用 Docker 和 Caddy 部署 Hoarder,以及与 SingleFile 集成的方法,并讨论了从 Linkding 迁移到 Hoarder 的经验。未来期待的功能包括更好的注释支持、移动端阅读功能和离线电子书导出功能,以及去中心化的社会化功能。

开发

React Native WiFi神器:一键连接任意WiFi

2025-03-16
React Native WiFi神器:一键连接任意WiFi

这款名为Wify的React Native应用,能通过扫描图片或摄像头识别WiFi密码,并自动连接。它支持多种语言的OCR识别,还能模糊匹配WiFi名称,即使存在细微差异也能成功连接。应用内置权限管理,并提供友好的用户提示,极大地提升了用户体验。无论是Android还是iOS系统,都能轻松上手使用。

开发 WiFi连接

Tcl 教程速览:从入门到构建可复用库

2025-03-16

这份Tcl教程涵盖了Tcl编程语言的方方面面,从基础的文本输出、变量赋值和运算,到高级的正则表达式、关联数组、文件访问、子进程调用以及库的构建。教程循序渐进地讲解了循环、流程控制、数据结构(列表、数组、字典)等核心概念,并深入探讨了字符串操作、模式匹配、调试技巧等实用技能。无论是初学者还是有一定编程经验的开发者,都能从中受益匪浅,快速掌握Tcl编程的核心能力,并最终构建出可复用的Tcl库。

开发

编写优秀的编程文档:一份教学指南

2025-03-16

本文作者以生动的比喻和故事,阐述了编写高质量技术文档的理念。他认为文档的核心是“教学”,而非简单地提供信息。文章批判了仅依赖源码、测试或代码文档化工具的不足,强调应将文档视为一个循序渐进的学习过程,从初次接触、快速上手到深入学习,最终到高级参考,每个阶段都应精心设计,引导用户成为专家。作者还分享了个人教学经验,并建议将文档编写视为教学过程,注重用户体验和知识的循序渐进。

开发 编程文档

zlib-rs 0.4.2 发布:速度提升的压缩库

2025-03-16
zlib-rs 0.4.2 发布:速度提升的压缩库

zlib-rs 0.4.2 版本发布,带来显著的性能提升!在解压缩方面,它已成为速度最快的 API 兼容 zlib 实现之一,甚至在重要的压缩场景中也超越了竞争对手。该版本通过巧妙的多版本化技术和 DFA 优化,在运行时高效地选择最佳实现,显著提高了性能。基准测试表明,zlib-rs 在解压缩方面大幅领先于 zlib-ng 和 zlib-chromium。虽然压缩性能方面还有提升空间,但 zlib-rs 已经足够优秀,并正在寻求资金支持以完成剩余工作。

C++中高效整数除法的多种实现策略

2025-03-16

本文探讨了在C++中优化整数除法运算的几种方法。直接使用整数除法效率较低,尤其当除数在编译时已知时。文章首先介绍了使用C++模板函数的方法,通过在编译时确定除数,让编译器进行优化。然而,模板函数会增加代码复杂度。随后,文章尝试使用lambda表达式和模板lambda表达式来简化代码,但发现直接使用模板lambda表达式会遇到问题,需要使用`operator()`来调用。最后,文章比较了多种方法的优缺点,包括使用简单的lambda表达式、以及更高级的模板元编程技术,并建议根据实际情况选择最合适的方法。

LLM辅助编程:效率提升的代价是智力退化?

2025-03-16

作者分享了长期使用LLM辅助编程工具(如GitHub Copilot)的亲身经历,指出虽然LLM提高了编程效率,但也可能导致程序员对基本知识的遗忘和对工具的过度依赖,最终降低自身解决问题的能力。作者建议,应将LLM视为学习工具而非代码生成器,批判性地对待其输出结果,并注重理解底层原理,才能真正受益。

(eli.cx)
1 2 136 137 138 140 142 143 144 213 214