大家好,这里是每周更新的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/
使用方式
一句话点评
蛮三刀酱:以后再也不怕做鬼畜没有语音素材了!
4. papers-we-love:计算机最佳论文整理
项目介绍
Papers We Love (PWL) 是一个围绕阅读、讨论和学习更多关于计算机科学学术论文的社区。 该库里可以找到的一些最佳论文(Best Paper)的目录,将分散在网络上的好论文汇集在一起。
使用方式
该仓库直接以文件夹进行了分类:
并且还推荐了其他的一些论文搜索网站,有些你应该耳熟能详了。
- 2 Minute Papers
- Bell System Technical Journal, 1922-1983
- Best Paper Awards in Computer Science
- Google Scholar (choose a subcategory)
- Microsoft Research
- Functional Programming Books Review
- MIT’s Artificial Intelligence Lab Publications
- MIT’s Distributed System’s Reading Group
- arXiv Paper Repository
- SciRate
- cat-v.org
- y-archive
- netlib
- Services Engineering Reading List
- Readings in Distributed Systems
- Gradual Typing Bibliography
- Security Data Science Papers
- Research Papers from Robert Harper, Carnegie Mellon University
- Lobste.rs tagged as PDF
- The Morning Paper
一句话点评
蛮三刀酱:其实如果你是正在做科研的学生,可能这些大方向的最佳论文不能满足你。不过对于想要了解整个计算机方向最新科研成果的工业界人士,或者是科研小白,看下这些论文肯定能够有所收获。
5. 网页版windows11:用前端代码做一个Windows11
项目介绍
这个开源项目旨在使用 React、CSS (SCSS) 和 Js 等标准 Web 技术在 Web 上复制 Windows 11 桌面体验。
演示
使用方式
在线体验网站:win11.blueedge.me
一句话点评
蛮三刀酱:离谱,离谱啊!
结尾
Github精彩项目分享是我新开的一个系列,也是一个全新的尝试,我想把内容尽量提炼和压缩,保证文章的趣味性,并且通俗易懂。
也请大家多多提意见,我会不断地改进。
我是目前在阿里搬砖的工程师蛮三刀酱。
持续的创作离不开你的点赞和转发分享!