公告
新加入了 2 位机器学期的小伙伴负责机器学习专栏。项目的首页增长合做组织一栏,若有开源组织有意合做能够点击联系我。javascript
咱们还在路上,不停地前行。html
《HelloGitHub》第 32 期
兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣!前端
简介
分享 GitHub 上有趣、入门级的开源项目。java
这是一个面向编程新手、热爱编程、对开源社区感兴趣 人群的月刊,月刊的内容包括:各类编程语言的项目、让生活变得更美好的工具、书籍、学习笔记、教程等,这些开源项目大多都是很是容易上手,并且很是 Cool。主要是但愿你们能动手用起来,加入到开源社区中。python
- 会编程的能够贡献代码
- 不会编程的能够反馈使用这些工具中的 Bug
- 帮着宣传你以为优秀的项目
- Star 项目⭐️
在浏览、参与这些项目的过程当中,你将学习到更多编程知识、提升编程技巧、找到编程的乐趣。mysql
🎉 最后 HelloGitHub 这个项目就诞生了 🎉c++
如下为本期内容|每月 28 号发布最新一期|点击查看往期内容git
C 项目
一、os-tutorial:(英文)如何从头开始建立操做系统程序员
二、nvtop:NVIDIA GPU 类 (h)top 的任务监控工具,它能够监控多个 GPU 并以熟悉的方式(类 htop 方式)打印有关它们的信息github
C# 项目
三、QuickLook:它容许 Windows 用户只需按空格键便可以快速地查看文件内容(类 macOS 的 Quick Look)
C++ 项目
四、oatpp:轻量、高性能、零依赖,纯 C++ 实现的 Web 框架。示例代码片断:
ENDPOINT("GET", "demo/api/json", getJson) { auto dto = MyDto::createShared(); dto->statusCode = 200; dto->message = "Hello json"; return createDtoResponse(Status::CODE_200, dto); } Output: {"message": "Hello json", "statusCode": 200}
Go 项目
五、go-sniffer:该工具经过抓包截取项目中的数据库、redis 请求解析成相应的语句。便于调试,不要修改代码,直接嗅探项目中的数据请求。使用说明以下:
======================================================================= [使用说明] go-sniffer [设备名] [插件名] [插件参数(可选)] [例子] go-sniffer en0 redis 抓取redis数据包 go-sniffer en0 mysql -p 3306 抓取mysql数据包,端口3306 go-sniffer --[命令] --help 帮助信息 --env 环境变量 --list 插件列表 --ver 版本信息 --dev 设备列表 [例子] go-sniffer --list 查看可抓取的协议 ======================================================================= [设备名] : lo0 : 127.0.0.1 [设备名] : en0 : x:x:x:x:x5:x 192.168.1.3 [设备名] : utun2 : 1.1.11.1 =======================================================================
六、dive:用来探索 docker 镜像每一层文件系统,以及发现缩小镜像体积方法的命令行工具。启动命令:dive 镜像名
七、soar:SQL 自动优化和改写的工具。能够自动优化 MySQL 语法族,而且给出为何要这样优化的理由。功能特色:
- 跨平台支持
- 目前只支持 MySQL 语法族协议的 SQL 优化
- 支持基于启发式算法的语句优化
- 支持复杂查询的多列索引优化(UPDATE、INSERT、DELETE、SELECT)
- 等等
echo "select title from sakila.film" | ./soar # Query: 25807E6B94BEA72C ★ ★ ★ ★ ☆ 80分 SELECT title FROM sakila. film ## 最外层SELECT未指定WHERE条件 * **Item:** CLA.001 * **Severity:** L4 * **Content:** SELECT语句没有WHERE子句,可能检查比预期更多的行(全表扫描)。对于SELECT COUNT(\*)类型的请求若是不要求精度,建议使用SHOW TABLE STATUS或EXPLAIN替代。
八、websocketd:把命令行的输出 stdout 和 stderr 重定向为一个 websocket 服务的工具。运行步骤以下:
- 安装命令:
brew install websocketd
- 建立 count.sh 内容以下
- 运行 count.sh,命令:
./count.sh
- 启动一个 websocket server,命令:
websocketd --port=8080 ./count.sh
- 建立 html 文件,代码以下
- 点击打开 count.html 文件,查看效果
count.sh 文件内容以下 #!/bin/bash for ((COUNT = 1; COUNT <= 3; COUNT++)); do echo $COUNT sleep 1 done count.html 文件内容以下 <!DOCTYPE html> <pre id="log"></pre> <script> // helper function: log message to screen function log(msg) { document.getElementById('log').textContent += msg + '\n'; } // setup websocket with callbacks var ws = new WebSocket('ws://localhost:8080/'); ws.onopen = function() { log('CONNECT'); }; ws.onclose = function() { log('DISCONNECT'); }; ws.onmessage = function(event) { log('MESSAGE: ' + event.data); }; </script>
九、athens:Go Modules 下载代理服务,解决国内 Go 装包的痛。妈妈不再用担忧我由于装不上依赖库而不吃饭,使用步骤:
$ export GO111MODULE=on $ export GOPROXY=http://127.0.0.1:3000 $ git clone https://github.com/athens-artifacts/walkthrough.git $ cd walkthrough $ go run . go: downloading github.com/athens-artifacts/samplelib v1.0.0 The 🦁 says rawr!
十、archiver:命令行压缩和解压缩工具。终于不用再记 tar -czvf
了,使用命令:
# Syntax: arc archive [archive name] [input files...] 压缩 $ arc archive test.tar.gz file1.txt images/file2.jpg folder/subfolder # Syntax: arc unarchive [archive name] [destination] 解压缩 $ arc unarchive test.tar.gz
Java 项目
十一、ratel:命令行可联网的斗地主游戏。Ratel 分客户端和服务端,你可让小伙伴们的客户端都链接你的服务器进行游戏,也能够直接链接做者的公网服务器进行游戏
十二、SpiderMan:手机端显示 Android 崩溃日志,示例代码以下:
SpiderMan.init(this) //设置回调异常信息,友盟等第三方崩溃信息收集平台会用到, .setOnCrashListener(new SpiderMan.OnCrashListener() { /** * * @param t * @param ex * @param model 崩溃信息记录,包含设备信息 */ @Override public void onCrash(Thread t, Throwable ex, CrashModel model) { } });
JavaScript 项目
1三、three.js:一个知名的 JavaScript 3D 库。随着数据可视化以及 Web AR 的流行,会愈来愈多使用到 three.js ,尤为是和 Vue/React 前端框架结合使用。官方网站包含丰富的示例和全面的中文文档,赶快去写几个 demo 熟悉下该库吧
1四、storybook:UI 组件开发测试的环境。你可使用 React、React Native、Vue、Angular、Ember 开发你的组件,而且可使用 storybook 提供的众多插件进行测试以及开发。在线示例
1五、hexo:基于 Node.js 快速、简洁且高效的静态博客生成框架。可使用 hexo 快速生成静态博客,它拥有丰富的插件库、主题库。在使用 hexo 的时候也能够本身建立、定制属于本身的主题
Objective-C 项目
1七、MacPass:一款 macOS 平台的免费、开源、实用的密码管理工具
Python 项目
1八、himawaripy:一个 Python3 脚本,它会定时(需设置定时任务)抓取由日本 Himawari 8 气象卫星拍摄的接近实时的地球照片,并将它设置成你的桌面背景
其它
1九、search-engine-optimization:(英文)这个项目收集了不少 SEO 优化的建议
20、lemonade-stand:《开源项目挣钱实用手册》中文版
2一、ProgrammingFonts:适合程序员的编程字体的集合,如今有 30 多种奇妙的字体
2二、Linux-Tutorial:Java 程序员眼中的 Linux
2三、Best-websites-a-programmer-should-visit:(英文)一些对程序员有用的网站,网站类别包含:新闻、查问题、学习、教程等
开源书籍
2四、sdn-handbook:有关 SDN 的资料和书籍很是丰富,但入门和学习 SDN 依然是很是困难。该项目整理了 SDN 实践中的一些基本理论和实践案例心得,但愿你们看完后有所收获
2五、write-you-a-haskell:(英文)《Write You a Haskell》
机器学习
2六、awesome-machine-learning:一个精选的机器学习框架、库、软件的集合项目
2七、fastai:利用当前最好的深度学习算法简化训练神经网络的过程。包含了不少“开箱即用”的工具,支持 Vision、Collab 等模型。示例代码:
# here's how to train an MNIST model using resnet18 untar_data(MNIST_PATH) data = image_data_from_folder(MNIST_PATH) learn = create_cnn(data, tvm.resnet18, metrics=accuracy) learn.fit(1)
2八、deepvariant:一个数据分析工做流。可以使用深度神经网络从下一代 DNA 序列数据中调用遗传变异体,联想到了最近的基因编辑人类事件。关于如何工做的技术细节,以下图:
2九、AlphaAI:使用无监督学习和监督学习来预测股票,有趣的项目。运行步骤以下:
git clone https://github.com/VivekPa/AlphaAI.git cd AlphaAI pip install -r requirements.txt python run.py
30、bert:一种新的语言表征模型,来自 Transformer 的双向编码器表征。目前最强 NLP 预训练模型,横扫 11 项 NLP 任务记录
换种方式阅读
- 网站: https://hellogithub.com
- GitBook: https://gitbook.hellogithub.com
声明
若是你发现了好玩、有意义的开源项目 点击这里 分享你以为有意思的项目。
欢迎转载,请注明出处和做者,同时保留声明。
本文同步分享在 博客"削微寒的程序员之路"(CNBlog)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。