头图

Hello everyone, here is the weekly Github wonderful sharing weekly. I am .

I Github will be selected from the list of hot trends in high quality, fun, cow B open source project to share.

1. PowerShell : not only Windows, but a powerful Shell that supports all platforms

Project Introduction

That's right, that is Microsoft's PowerShell, which may have been used by many students on Windows, and its functions are quite powerful.

PowerShell Core is a cross-platform (Windows, Linux, and macOS) automation and configuration tool/framework. It can work well with your existing tools and is aimed at processing structured data (such as JSON, CSV, XML, etc.), REST The API has been optimized. It includes a command-line Shell, a related scripting language, and a framework for processing cmdlets.

The difference between Windows PowerShell and PowerShell Core :

I read the explanation on the Github repository. The repository (PowerShell Core) is a branch pulled from the Windows PowerShell code base, but the changes made in this repository will not be synchronized to the Windows PowerShell code base, so I propose it here The problem or fix is not synchronized with Windows PowerShell.

I rushed to the Trand list this time. I am not sure of the specific reasons, but it should have started to support a brand new platform. So many platforms are already supported:

What is the difference between PowerShell and cmd?

  • PowerShell is cross-platform, and cmd is dedicated to Windows.
  • PowerShell has an object-oriented pipeline.
  • PowerShell can call many functions of .NET.
  • PowerShell has built-in Azure-related commands

Demo

This old man showed us how to install and use PowerShell on MacOS

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

One sentence comment

Taken from Zhihu: The difference between Powershell and cmd is probably as big as the difference between Python Shell and Bash.

2. gctoolkit : the official Java GC log analyzer produced by Microsoft

Project Introduction

GCToolkit is a set of libraries for analyzing HotSpot Java Garbage Collection (GC) log files. The toolkit parses GC log files into small events and provides APIs for aggregated data. In this way, users can perform complex and highly customized analysis of the state of the memory in the JVM.

How to use

GCToolkit consists of 3 Java modules, covering API, GC log file parser and Vert.x-based messaging module.

Let us look at an example of the total heap occupancy after the GC is completed:

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()); 
    } 
}

The general idea of the code is as follows, create a data source, create a new GCToolKit, start to analyze the GC according to the class HeapOccupancyAfterCollectionSummary, and collect the analysis data into the log.

The following is an implementation of HeapOccupancyAfterCollectionSummary for heap occupation of aggregated data:

@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; 
    } 
}

One sentence comment

Quite three knife sauce: At first glance, the name GCToolkit thought it was a graphical GC viewer, just like JVisualVM. In fact, GCToolkit is more biased towards the underlying data processing framework.

3. Realtime-Voice-Clone-Chinese : Clone your voice in 5 seconds

Project Introduction

AI Onomatopoeia: Clone your voice within 5 seconds and generate any voice content (support Chinese), a very interesting AI project.

Demo

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

How to use

  1. Need to install PyTorch and ffmpeg , then clone the project code
  2. Use the dataset to train the synthesizer: use aidatatang_200zh or SLR68 dataset
  3. Start the toolbox, record the sound, and then you can generate the sound.

One sentence comment

Mansandaojiang: Never be afraid of being a ghost without voice material anymore!

4. papers-we-love : Collection of best computer papers

Project Introduction

Papers We Love (PWL) is a community around reading, discussing, and learning more about academic papers in computer science. A catalog of some of the best papers (Best Paper) that can be found in the library, which brings together good papers scattered on the Internet.

How to use

The warehouse is directly classified into folders:

And also recommended some other paper search sites, some of which you should be familiar with.

One sentence comment

Mansandaojiang: In fact, if you are a research student, the best papers in these general directions may not satisfy you. However, for industrialists who want to understand the latest scientific research results of the entire computer field, or scientific research novices, looking at these papers will definitely be able to gain something.

5. web version windows11 : use front-end code to make a Windows11

Project Introduction

This open source project aims to replicate the Windows 11 desktop experience on the Web using standard Web technologies such as React, CSS (SCSS) and Js.

Demo

How to use

Online experience website: win11.blueedge.me

One sentence comment

Mansandaojiang: Outrageous, outrageous!

end

Github wonderful project sharing is a new series that I opened, and it is also a brand new attempt. I want to refine and compress the content as much as possible to ensure that the article is interesting and easy to understand.

Please also give your comments, I will continue to improve.

I am an engineer who is currently moving bricks in Alibaba.

16125c0530f29f's continuous creation is inseparable from your


蛮三刀酱
52 声望8 粉丝