兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!

简介

HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。

https://github.com/521xueweihan/HelloGitHub

这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!


以下为本期内容|每个月 28 号更新

C 项目

1、hashcat:一款强大的密码恢复工具。破解速度超快支持多种算法,适用于 Linux、macOS 和 Windows 操作系统

  1. 安装:brew install hashcat
  2. 常用参数:
  3. -a 指定破解模式:“-a 0”字典攻击,“-a 1 组合攻击;“-a 3”掩码攻击
  4. -m 指定要破解的 hash 类型:默认为 MD5
  5. --force 忽略破解过程中的警告
  6. 常用破解模式:
  7. 0Straight(字典破解)
  8. 1Combination(组合破解)
  9. 3Brute-force(掩码暴力破解)
  10. 6Hybrid Wordlist + Mask(字典+掩码破解)
  11. 7Hybrid Mask + Wordlist(掩码+字典破解)
  12. 常用掩码设置:
  13. l:纯小写字母 abcdefghijklmnopqrstuvwxyz
  14. u:纯大写字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ
  15. d:纯数字 0123456789
  16. 举例:破解 8 位数字密码
  17. hashcat -a 3 -m 0 --force 0D7002A70CCDE8BF4BA2A4A5572A85E9(密码md5字符串) ?l?l?l?l?l?l?l?l?l?l?l11 位密码的掩码)

2、reptyr:能够把旧终端运行中的程序,迁移到新终端窗口的实用工具

C# 项目

3、Monitorian:轻松调节多个显示器亮度的 Windows 桌面工具。操作界面支持中文,使用时显示器需要开启 DDC/CI

4、PluginCore:适用于 ASP.NET Core 的轻量级插件框架。开箱即用自带插件管理 Web 界面

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3. // ...
  4. // 1. Add PluginCore
  5. services.AddPluginCore();
  6. }
  7. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  8. {
  9. // ...
  10. // 2. Use PluginCore
  11. app.UsePluginCore();
  12. }

C++ 项目

5、cocoyaxi:在 C++ 上实现类似 Go goroutine 的库。它实现了协程同步事件、协程锁、协程池、channel、waitgroup,内存占用少实测 1000 万协程占用 2.8G 内存

  1. #include "co/co.h"
  2. DEF_main(argc, argv) {
  3. co::Chan<int> ch;
  4. go([ch]() { /* capture by value, rather than reference */
  5. ch << 7;
  6. });
  7. int v = 0;
  8. ch >> v;
  9. LOG << "v: " << v;
  10. return 0;
  11. }

CSS 项目

6、log:浏览器 console.log 风格的 CSS 库。查看效果

Go 项目

7、hh-lol-prophet:英雄联盟对局先知工具。免费合法不封号,原理是基于 LOL 客户端接口获取用户数据,实现开局前对玩家信息分析和打分

8、gota:Go 语言的数据处理库。该库提供了类似 Python 语言 Pandas 库的功能,以及 Series 和 DataFrames 的数据结构,支持用列的方式高效地处理数据

  1. type User struct {
  2. Name string
  3. Age int
  4. Accuracy float64
  5. }
  6. users := []User{
  7. {"Aram", 17, 0.2},
  8. {"Juan", 18, 0.8},
  9. {"Ana", 22, 0.5},
  10. }
  11. df := dataframe.LoadStructs(users)
  12. fmt.Println(df)
  13. // Output:
  14. // [3x3] DataFrame
  15. //
  16. // Name Age Accuracy
  17. // 0: Aram 17 0.200000
  18. // 1: Juan 18 0.800000
  19. // 2: Ana 22 0.500000
  20. // <string> <int> <float>

9、illustrated-tls:图解 TLS 连接。用在线交互的方式讲解 TLS 的全过程,从建立 TLS 1.2 客户端发送 ping 再到接收 pong,详细到每一个字节。在线尝试

10、gse:Go 的高性能多语言分词库。它是结巴分词的 Go 语言实现,支持中文和接入 ES 等功能

  1. text = "《复仇者联盟3:无限战争》是全片使用IMAX摄影机拍摄制作的的科幻片."
  2. // use DAG and HMM
  3. hmm := seg.Cut(text, true)
  4. fmt.Println("cut use hmm: ", hmm)
  5. // cut use hmm: [《复仇者联盟3:无限战争》 是 全片 使用 imax 摄影机 拍摄 制作 的 的 科幻片 .]

Java 项目

11、LSPosed:运行于 Android 操作系统的钩子框架。支持 Android 8-11 系统,能够拦截几乎所有 Java 函数的调用,从而可被用来修改 Android 系统和软件的功能

12、supertokens-core:开源的身份验证方案。为你的应用轻松增加登录、会话管理等功能,支持自行搭建服务。可用作 Auth0 的开源替代品

JavaScript 项目

13、charts:简单、零依赖、响应式的 SVG 图表库

  1. const data = {
  2. labels: ["12am-3am", "3am-6pm", "6am-9am", "9am-12am",
  3. "12pm-3pm", "3pm-6pm", "6pm-9pm", "9am-12am"
  4. ],
  5. datasets: [
  6. {
  7. name: "Some Data", chartType: "bar",
  8. values: [25, 40, 30, 35, 8, 52, 17, -4]
  9. },
  10. ...
  11. ]}
  12. const chart = new frappe.Chart("#chart",
  13. { // or a DOM element,
  14. // new Chart() in case of ES6 module with above usage
  15. title: "My Awesome Chart",
  16. data: data,
  17. type: 'axis-mixed', // or 'bar', 'line', 'scatter', 'pie', 'percentage'
  18. height: 250,
  19. colors: ['#7cd6fd', '#743ee2']
  20. })

14、lax.js:用于滚动时创建平滑和好看动画的库。简单轻量仅 4KB 大小,但功能齐全且灵活

  1. <!-- JS -->
  2. <script>
  3. window.onload = function () {
  4. lax.init()
  5. // Add a driver that we use to control our animations
  6. lax.addDriver('scrollY', function () {
  7. return window.scrollY
  8. })
  9. // Add animation bindings to elements
  10. lax.addElements('.selector', {
  11. scrollY: {
  12. translateX: [
  13. ["elInY", "elCenterY", "elOutY"],
  14. [0, 'screenWidth/2', 'screenWidth'],
  15. ]
  16. }
  17. })
  18. }
  19. </script>
  20. <!-- HTML -->
  21. <div class="selector">Hello</div>

15、chameleon:一端所见即多端所见。适应不同环境的跨端整体解决方案,支持 Web、小程序、快应用 等平台

16、reveal.js:一款 HTML 演示框架。让你摆脱传统死板的 PPT 制作方法,可以方便地使用 HTML、Markdown 语言制作 PPT

17、tinykeys:极小的键盘事件监听库

  1. import tinykeys from "tinykeys"
  2. tinykeys(window, {
  3. "Shift+D": () => {
  4. alert("The 'Shift' and 'd' keys were pressed at the same time")
  5. },
  6. "y e e t": () => {
  7. alert("The keys 'y', 'e', 'e', and 't' were pressed in order")
  8. },
  9. "$mod+KeyD": () => {
  10. alert("Either 'Control+d' or 'Meta+d' were pressed")
  11. },
  12. })

Kotlin 项目

18、compose-tetris:基于 Jetpack Compose 的俄罗斯方块游戏

Objective-C 项目

19、HBDNavigationBar:自定义 UINavigationBar 的组件,用于各种状态之间平滑切换

Python 项目

20、saleor:用 Python 开发的电商平台。采用 Django+GraphQL API+React 构建,功能丰富支持移动端、订单、商品、用户管理等。在线体验

21、pokete:运行在终端里的口袋妖怪类游戏。虽然游戏图像采用简单的 ASCII 码构建,但商店、小精灵、对战等功能一应俱全

  1. 运行方法:
  2. # pip install scrap_engine
  3. $ git clone https://github.com/lxgr-linux/pokete.git
  4. $ ./pokete/pokete.py

22、tiptop:炫酷的命令行系统监控工具

  1. 安装:pip install tiptop
  2. 运行:tiptop

23、rembg:简单实用的删除图像背景/抠图工具

  1. from rembg import remove
  2. from PIL import Image
  3. input_path = 'input.png'
  4. output_path = 'output.png'
  5. input = Image.open(input_path)
  6. output = remove(input)
  7. output.save(output_path)

24、textdistance:计算文本距离的常用算法库。包含计算文本相似度、多样性、编辑距离、压缩等多种算法,所有算法均采用 Python 实现,容易理解调用方便

  1. import textdistance
  2. textdistance.hamming.normalized_similarity('test', 'text')
  3. # 相似度为 0.75

Swift 项目

25、OnlySwitch:免费开源的 macOS 状态栏一键设置工具。可以轻松对系统功能进行设置,如隐藏桌面图标、清理 Xcode 缓存、一键隐藏刘海儿、进入夜览模式等数十种功能

其它

26、english-words:大型英语单词文本。它是基于 WordNet 英语词汇数据库整理的文本文件,可用于英语自动提示、自动搜索等功能

27、design-patterns-for-humans:人人都能看懂的设计模式教程。中文

28、Learn-Vim:学习 Vim 的指南。该教程不是“大而全的百科全书”,它着重介绍了 Vim 中最常用的功能,让你可以快速熟悉和使用 Vim。中文

29、electerm:一款支持 SSH/SFTP 的终端工具。支持中文和 Windows、Linux、macOS 操作系统

30、ElectronBot:自制桌面级小机器人。它具备 USB 通信显示画面功能以及 6 个自由度,支持手势识别和人体关键点检测。这里有配套的全部开发资料和 SDK,让你也可以制作出一个这样有趣的机器人

31、blog_os:用 Rust 从零开发一个操作系统的教程。保姆级教程!从空文件夹开始,一步步搭建开发环境,通过原理描述、代码示例讲解操作系统背后的原理。硬要说缺点的话就是教程是英文的,但是配上代码示例读起来不是很费劲。中文

开源书籍

32、Deep-Learning-with-TensorFlow-book:《TensorFlow 深度学习》

33、microfrontends:《微前端的那些事儿》 将 Web 应用由单一的单体应用,转变为多个小型前端应用聚合为一的应用

机器学习

34、deep-learning-for-image-processing:深度学习在图像处理方面的教程。该项目配以视频的方式介绍知识点和搭建方法,对应的 PTT 在 course_ppt 目录下

35、awesome-automl-papers:汇集了自动机器学习(AutoML)相关的论文、文章、教程等资源的项目

36、jina:一款易用的神经搜索框架。神经搜索是指用非结构化数据,搜索非结构化数据。Jina 简化了神经搜索系统的搭建流程,使开发者可以快速构建以图搜图、以文字搜图、问答机器人、照片去重、海量标签分类等应用

  1. from docarray import Document, DocumentArray
  2. from jina import Executor, Flow, requests
  3. class PreprocImg(Executor):
  4. @requests
  5. async def foo(self, docs: DocumentArray, **kwargs):
  6. for d in docs:
  7. (
  8. d.load_uri_to_image_tensor(200, 200) # load
  9. .set_image_tensor_normalization() # normalize color
  10. .set_image_tensor_channel_axis(
  11. -1, 0
  12. ) # switch color axis for the PyTorch model later
  13. )

最后

如果你发现了 GitHub 上有趣的项目,就点击分享给大家伙吧。

以上就是本期的所有内容了,往期内容点击阅读

感谢您的阅读,如果觉得本期内容还不错的话 求赞、求分享, 您的鼓励是 HelloGitHub 前进的动力!️

《HelloGitHub》第 72 期的更多相关文章

  1. 「NGK每日快讯」2021.1.14日NGK公链第72期官方快讯!

  2. 《HelloGitHub月刊》第01期

    <HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...

  3. 《HelloGitHub月刊》第 01 期

    <HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...

  4. 家里蹲大学数学杂志 Charleton University Mathematics Journal 官方目录[共七卷493期,6055页]

    家里蹲大学数学杂志[官方网站]从由赣南师范大学张祖锦老师于2010年创刊;每年一卷, 自己有空则出版, 没空则搁置, 所以一卷有多期.本杂志至2016年12月31日共7卷493期, 6055页.既然做 ...

  5. HelloGithub

    <HelloGithub月刊>第一期   <HelloGithub月刊> 因为现在这个项目只有我自己做,只敢叫“月刊”,希望有志同道合者,快点加入到这个项目中来!同时,如果您有 ...

  6. 在 GitHub 学习,成长为自己想要的样子|HelloGitHub 访谈

    万事开头难,我们经过长期的策划和筹备,终于推出了 HelloGitHub 采访系列「开源项目作者的访谈」.这是一个采访个人开源项目作者的栏目,内容侧重于开源项目作者与开源的故事. 我们深知想要做好一个 ...

  7. 科技爱好者周刊(第 175 期):知识广度 vs 知识深度

    这里记录每周值得分享的科技内容,周五发布. 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容. 周刊讨论区的帖子<谁在招人?>,提供大量程 ...

  8. GitHub 热点速览 Vol.17:在?各家视频会员要不要?

    作者:HelloGitHub-小鱼干 摘要:经济实用,用作上周的 GitHub 热点的横批再合适不过.先不说 GitHub Trending 上不止一个的会员共享项目,免你找好友刷脸要会员,这项目实在 ...

  9. 如何短时间内快速通过Java面试

    当然是刷题啊 1-10期[10期]Redis 面试常见问答[09期]说说hashCode() 和 equals() 之间的关系?[08期]说说Object类下面有几种方法呢?[07期]Redis中是如 ...

随机推荐

  1. Solution -「洛谷 P4449」于神之怒加强版

    \(\mathcal{Description}\)   Link.   给定 \(k\) 和 \(T\) 组 \(n,m\),对于每组,求 \[\sum_{i=1}^n\sum_{j=1}^m\ope ...

  2. ajax的发展

    ajax(Asynchronous Javascript and XML)异步javascrip和XMl. ajax只是一种web交互方法.在客户端(浏览器)和服务区段之间传输少量的信息.从而为用户提 ...

  3. LAMP环境下部署项目管理软件--禅道

    禅道与Jira的对比 禅道最大的特色是创造性的将产品.项目.测试这三者的概念明确分开,互相配合,又互相制约.通过需求.任务.bug来进行交相互动,最终通过项目拿到合格的产品. Jira设计以项目为主线 ...

  4. 以Docker容器的形式运行GVM-11

    OpenVAS(Open Vulnerability Assessment System)是在nessus基础上发展起来的一个开源的漏洞扫描程序,其核心部件是一套漏洞测试程序,可以检测远程系统和应用程 ...

  5. [题解]Mail.Ru Cup 2018 Round 1 - B. Appending Mex

    [题目] B. Appending Mex [描述] Ildar定义了一种方法,可以由一个数组产生一个数.具体地,从这个数组中任选一个子集,不在这个子集中的最小的非负整数称为mex,就是由这个数组得到 ...

  6. 通过shell脚本批量操作mysql数据库

    创建建表语句 ============================================= 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) ------(学 ...

  7. 查看oracle归档日志路径

    转至:https://blog.csdn.net/u010098331/article/details/50729896/ 查看oracle归档日志路径 1.修改归档日志的格式 默认格式是:" ...

  8. python3 使用OpenCV计算滑块拼图验证码缺口位置

    前言 滑块拼图验证码的失败难度在于每次图片上缺口位置不一样,需识别图片上拼图的缺口位置,使用python的OpenCV库来识别到 环境准备 pip 安装 opencv-python pip insta ...

  9. 惨,给Go提的代码被批麻了

    hello大家好,我是小楼. 不知道大家还记不记得我上次找到了一个Go的Benchmark执行会超时的Bug?就是这篇文章<我好像发现了一个Go的Bug?>. 之后我就向Go提交了一个PR ...

  10. LeetCode-017-电话号码的字母组合

    电话号码的字母组合 题目描述:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合.答案可以按 任意顺序 返回. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示 ...