大家好,这里是每周更新的Github精彩分享周刊,我是每周都在搬砖的蛮三刀酱

我会从Github热门趋势榜里选出 高质量、有趣,牛B 的开源项目进行分享。

1. PowerShell:不止于Windows,支持全平台的强大Shell

项目介绍

没错,就是微软的那个PowerShell,可能有很多同学在Windows上用过,功能还是比较强大的。

PowerShell Core 是一个跨平台(Windows、Linux 和 macOS)自动化和配置工具/框架,可以很好地与您现有的工具配合使用,并针对处理结构化数据(例如 JSON、CSV、XML 等)、REST API 进行了优化 。 它包括一个命令行Shell、一个相关的脚本语言和一个用于处理 cmdlet 的框架。

Windows PowerShell和PowerShell Core的区别

我看了下Github仓库上的解释,该个仓库(PowerShell Core)是从Windows PowerShell代码库拉取的分支,但在此库中所做的修改不会同步至Windows PowerShell代码库,所以在这里提出的问题或者是修复和Windows PowerShell并不是同步的。

这次冲上Trand榜,不确定具体原因,但应该是开始支持了一个全新的平台,目前已经支持这么多平台了:

PowerShell 与 cmd 有什么不同?

  • PowerShell是跨平台的,cmd是Windows专用的。
  • PowerShell有面向对象的管道。
  • PowerShell能够调用.NET的很多功能。
  • PowerShell内置有Azure相关的command

演示

这位老哥给我们演示了在MacOS上安装和使用PowerShell

https://www.youtube.com/watch?v=QBfuzwYUxl8

一句话点评

摘自知乎:Powershell和cmd的区别大概就像Python Shell和Bash的区别一样大吧。

2. gctoolkit:微软官方出品的Java GC日志分析器

项目介绍

GCToolkit 是一组用于分析 HotSpot Java 垃圾收集 (GC) 日志文件的库。 该工具包将 GC 日志文件解析为一个个小的事件,并提供聚合数据的 API。 这样一来用户就能对JVM中的内存的状态进行复杂和高度自定义的分析。

使用方式

GCToolkit 由 3 个 Java 模块组成,涵盖 API、GC 日志文件解析器和基于 Vert.x 的消息传递模块。

让我们看一个在 GC 完成后总堆占用率的示例:

public class Main {
    
    public static void main(String[] args) throws Exception {
    
        var path = Path.of(args[0]); 
        var logFile = new SingleGCLogFile(path); 
        var gcToolKit = new GCToolKit(); 
        var jvm = gcToolKit.analyze(logFile); 
        var results = jvm.getAggregation(HeapOccupancyAfterCollectionSummary.class); 
        System.out.println(results.toString()); 
    } 
}

代码大致思路如下,建立一个数据源,新建一个GCToolKit,开始根据类HeapOccupancyAfterCollectionSummary对GC进行分析,将分析数据集合到日志里。

下面是一个堆占用聚合数据的实现HeapOccupancyAfterCollectionSummary:

@Collates(HeapOccupancyAfterCollection.class) 
public class HeapOccupancyAfterCollectionSummary implements HeapOccupancyAfterCollectionAggregation {
    

    private HashMap<GarbageCollectionTypes, XYDataSet> aggregations = new HashMap<>(); 

    public void addDataPoint(GarbageCollectionTypes gcType, DateTimeStamp timeStamp, long heapOccupancy) {
    
        var dataSet = aggregations.computeIfAbsent(gcType, k -> new XYDataSet()); 
        dataSet.add(timeStamp.getTimeStamp(),heapOccupancy); 
    } 

    public HashMap<GarbageCollectionTypes, XYDataSet> get() {
    
        return aggregations; 
    } 
}

一句话点评

蛮三刀酱:第一眼看GCToolkit这个名字以为是个图形化的GC查看器,就像JVisualVM一样,实际上GCToolkit更加偏底层数据处理框架。

3. Realtime-Voice-Clone-Chinese:5秒内克隆您的声音

项目介绍

AI拟声: 5秒内克隆您的声音并生成任意语音内容(支持中文),很有意思的一个AI项目。

演示

https://www.bilibili.com/video/BV1sA411P7wM/

使用方式

  1. 需要安装PyTorchffmpeg,然后克隆项目代码
  2. 使用数据集训练合成器:使用aidatatang_200zh或者SLR68 dataset数据集
  3. 启动工具箱,录制声音,然后就能生成声音。

一句话点评

蛮三刀酱:以后再也不怕做鬼畜没有语音素材了!

4. papers-we-love:计算机最佳论文整理

项目介绍

Papers We Love (PWL) 是一个围绕阅读、讨论和学习更多关于计算机科学学术论文的社区。 该库里可以找到的一些最佳论文(Best Paper)的目录,将分散在网络上的好论文汇集在一起。

使用方式

该仓库直接以文件夹进行了分类:

并且还推荐了其他的一些论文搜索网站,有些你应该耳熟能详了。

一句话点评

蛮三刀酱:其实如果你是正在做科研的学生,可能这些大方向的最佳论文不能满足你。不过对于想要了解整个计算机方向最新科研成果的工业界人士,或者是科研小白,看下这些论文肯定能够有所收获。

5. 网页版windows11:用前端代码做一个Windows11

项目介绍

这个开源项目旨在使用 React、CSS (SCSS) 和 Js 等标准 Web 技术在 Web 上复制 Windows 11 桌面体验。

演示

使用方式

在线体验网站:win11.blueedge.me

一句话点评

蛮三刀酱:离谱,离谱啊!

结尾

Github精彩项目分享是我新开的一个系列,也是一个全新的尝试,我想把内容尽量提炼和压缩,保证文章的趣味性,并且通俗易懂。

也请大家多多提意见,我会不断地改进。

我是目前在阿里搬砖的工程师蛮三刀酱。

持续的创作离不开你的点赞和转发分享!