本周Github上6个有趣的项目如FireDBG等

本周Github上有趣的项目、工具和程序库

1、Tart
Tart 是一个虚拟化工具集,用于在 Apple Silicon 上构建、运行和管理 macOS 和 Linux 虚拟机。

  • Tart 使用 Apple 的原生 Virtualization.Framework,该框架是在构建第一款 M1 芯片时开发的。硬件和软件之间的这种无缝集成确保了平稳的性能,没有任何缺陷。
  • 为了存储虚拟机映像,Tart 与 OCI 兼容的容器注册表集成。像使用 Docker 容器一样使用虚拟机。
  • Tart 与许多持续集成系统集成,包括按需 GitHub Actions Runners 的专用服务。通过使用Cirrus Runners 运行工作流程 ,只需更改一条生产线,即可将 CI/CD 成本降低多达30 倍。


2、astroguard
一个基于 gcc 的简单代码审计和分析工具,用于 C 程序遵守 NASA 的 JPL Rule of 10。 C 程序可以指定到该工具中,并通过gcc -> gcov -> glov的序列运行以获得代码覆盖率和编译信息。

NASA JPL 10 规则

  • 规则 1:避免复杂的流程结构,例如 goto 和递归。
  • 规则 2:所有循环都必须有固定的边界。这可以防止代码失控。
  • 规则 3:避免堆内存分配。
  • 规则 4:将功能限制在单个打印页面上。
  • 规则 5:每个函数至少使用两个运行时断言。
  • 规则 6:将数据范围限制在尽可能小的范围。
  • 规则7:检查所有非void函数的返回值,或者强制转换为void以表明返回值无用。
  • 规则 8:谨慎使用预处理器。
  • 规则 9:将指针的使用限制为单个取消引用,并且不要使用函数指针。
  • 规则 10:在所有可能的警告处于活动状态的情况下进行编译;所有警告都应在软件发布之前得到解决。


3、spotube
开源 Spotify 客户端,无需 Premium 也不使用 Electron!同时适用于桌面和移动设备!

开源、跨平台 Spotify 客户端,可跨多个平台兼容,利用 Spotify 的数据 API 和 YouTube(或 Piped.video 或 JioSaavn)作为音频源,无需 Spotify Premium

特点

  •  由于使用公共且免费的 Spotify 和 YT Music API,没有广告
  • 可下载曲目
  •  跨平台支持
  •  体积小,数据使用量少
  •  匿名/访客登录
  • 时间同步歌词
  • 无遥测、诊断或用户数据收集
  • 原生性能
  • 开源/自由软件
  •  播放控制是在本地完成的,而不是在服务器上


4、FireDBG
用于 Rust 的时间旅行可视化调试器

使用新视角可视化和调试 Rust 程序

调试程序很困难。当某些事情没有按预期工作时,这是极其令人难以置信的。通常 90% 的工作是在追踪错误所在,而 10% 的工作实际上是在解决它!
但为什么现在程序员不更频繁地使用调试器呢?相反,我们都喜欢println到处添加,运行程序,添加更多打印,冲洗并重复,只是为了发现我们仍然没有打印关键变量,甚至可能需要在淹没时猜测程序状态在日志中。
正在运行的程序对我们来说就像一个黑匣子,控制台是我们了解其内部状态的唯一窗口。然而,归根结底,打印相关信息仍然是程序员的责任。
调试器如何帮助我们调试程序?我们发现它通常归结为:

  • 我的程序的控制流到哪里去了?
  • 我的错误从何而来?
  • 我的变量里面有什么?
  • 按什么顺序发生了什么?

这就是我们创建 FireDBG - Rust 的时间旅行可视化调试器的原因

时间旅行调试

  • 根据维基百科,时间旅行调试是通过源代码回溯过去以了解计算机程序执行期间发生的情况的过程。与只能向前迈进的“传统”调试器不同,时间旅行调试器允许我们向后退一步并查看因果关系。
  • 时间旅行调试器是存在的1,它们通常通过在指令级别记录数据来工作。但这会产生大量数据,所以现在的问题是:我们如何理解这些数据并有效地穿越时间?


5、Willow Protocol
点对点数据存储协议。它的优点是什么?细粒度的权限、敏锐的隐私保护方法、破坏性编辑以及微小的带宽和内存占用。

数据存储永不脱机。您可以获得任意数据(例如文本、媒体)的始终可用的存储。您可以根据需要拥有任意数量的这些商店,并键入不同的名称空间。当来自不同设备的存储属于同一命名空间时,它们确定性地相互同步。

  • 我们创建 Willow 是为了使共同运营网络成为一种可持续的实践。一种协议,支持多个小型专用网络和大型公共网络。该协议将运行基础设施的负担分摊给用户,无需志愿者服务器管理员。
  • 我们使 Willow 成为不确定时代数字网络的可靠解决方案。当我们被迫缩小规模时,无论是由于暂时的信号丢失、自然灾害还是战争,它必须具有弹性。它必须尊重我们剩下的资源,并且能够在低规格硬件和低带宽网络上运行。
  • 我们将 Willow 设为私有,这样就可以找到具有共同兴趣的人,而无需向全世界传播这些兴趣,并且可以让其他人代表您分发数据,而无需让他们知道该数据是什么。
  • 我们制作 Willow 是为了协调点对点网络与社会现实。争论分布式系统的复杂性不应该意味着我们放弃删除等基本功能,或者接受只能无限增长的数据结构。

6、Reor
私人人工智能驱动的个人知识管理工具,侧重于在本地运行模型。

Reor Project是一种个人知识管理工具,可以利用人工智能自动组织知识:它将相关的想法连接在一起,提供语义搜索并利用知识库中所有内容的完整上下文回答问题。您还可以使用类似 Obsidian 的所见即所得 Markdown 编辑器来编辑笔记。

Reor 从一开始就是为了在本地运行模型而构建的。我们认为,在本地(且私下)运行模型至关重要:任何实体都不应能够控制世界上第一个人工智能系统,也不能控制您的个人想法,无论它们多么“开放”。

入门

  1. 从reorproject.org下载。Mac、Linux 和 Windows 均受支持。
  2. 像普通应用程序一样安装。

运行本地模型
Reor 直接与Llama.cpp库交互,因此无需下载 Ollama。尽管目前我们不为您下载模型,因此您需要手动下载您选择的模型:

  1. 下载 GGUF 模型文件。TheBloke有一个很好的页面,其中包含最受欢迎的模特。我建议从 7B 4 位模型开始,看看它在您的系统上的性能如何。
  2. 在“添加新的本地模型”下的 Reor 设置中将其连接。

如果您愿意,您还可以通过您自己的 API 密钥使用 OpenAI 模型......