《HelloGitHub》第 34 期
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目,每月 28 号更新一期。这里有好玩和入门级的开源项目、开源书籍、实战项目、企业级项目,让你用极短的时间感受到开源的魅力,对开源产生兴趣。
根据 SQL 和配置文件生成接口的工具。与传统的 SQL 生成 RESETful API 的工具不同,这个工具允许你自定义一些 API 的前、后处理,Auth 之类的行为。启动命令
sqler -config=path to config file
adduser { // 参数校验 validators { user_name_is_empty = "$input.user_name && $input.user_name.trim().length > 0" user_email_is_empty = "$input.user_email && $input.user_email.trim(' ').length > 0" user_password_is_not_ok = "$input.user_password && $input.user_password.trim(' ').length > 5" } bind { name = "$input.user_name" email = "$input.user_email" password = "$input.user_password" } methods = ["POST"] // 权限校验 authorizer = <<JS (function(){ log("use this for debugging") token = $input.http_authorization response = fetch("http://requestbin.fullcontact.com/zxpjigzx", { headers: { "Authorization": token } }) if ( response.statusCode != 200 ) { return false } return true })() JS exec = <<SQL INSERT INTO users(name, email, password, time) VALUES(:name, :email, :password, UNIX_TIMESTAMP()); SELECT * FROM users WHERE id = LAST_INSERT_ID(); SQL }
Android 工具库,注释规范、API文档清晰明了、工具类种类多。根据不同功能模块封装,方便使用。帮助开发人员,便捷、快速地开发安全、可靠的项目。内置部分常用的资源文件,如 color.xml、layout.xml 等
功能丰富的 Java 工具包。它帮助我们实现了常用的工具方法,从而减少代码的体积,提高开发效率。该项目最初是作者工作项目中的
util
int a = 1; //aStr为"1" String aStr = Convert.toStr(a);
实现了类似 GitHub 404 页面的动画效果。效果有趣,使用场景较多,并且实现了组件化,示例代码:
<html> <head> <title>Demo - Axial3d</title> </head> <body> <script src="https://unpkg.com/axial3d"></script> <div id="axial3d"></div> <script> (function () { var options = { selector: '#axial3d', imgs: [ {src: 'https://bestvist.github.io/axial3d/public/demo1/bg.png', left: '50px', top: '10px'}, {src: 'https://bestvist.github.io/axial3d/public/demo1/2.png', left: '150px', top: '10px'}, {src: 'https://bestvist.github.io/axial3d/public/demo1/3.png', left: '50px', top: '300px'}, {src: 'https://bestvist.github.io/axial3d/public/demo1/4.png', left: '300px', top: '300px'} ] } var effect = new Axial3d(options); })() </script> </body> </html>
基于 Three.js 的 Web 3D 地球数据可视化的开源组件库。使用 Gio.js 的网页应用开发者,可以快速地以申明的方式创建自定义的 Web3D 数据可视化模型,添加数据,并且将其作为一个组件整合到自己的应用中。支持静态 Dom、React和微信小程序。具有一下特点:
- 易用性 -- 仅使用 4 行 Javascript 即可创建 3D 地球数据可视化模型
- 定制化 -- 使用 Gio.js 提供的丰富的 API 来创建自定义样式的 3D 地球
- 现代化 -- 基于 Gio.js 构建高交互、跨平台、自适应的现代化 3D 前端应用
静态博客写作客户端,你可以用它来记录你的生活、心情、知识、笔记、创意。使用了 electron 技术,对于学习 Javascript 桌面端开发是一个很好的项目
腾讯开源的通用 Web 组件化框架。特点:
- 拥有官方 UI 组件库
- 使用 omio 可以兼容到 IE8
- 设计精巧、兼容性好
- 基于 Web Components 标准
- 等等
import { render, WeElement, define } from 'omi' define('my-counter', class extends WeElement { static observe = true data = { count: 1 } sub = () => { this.data.count-- } add = () => { this.data.count++ } render() { return ( <div> <button onClick={this.sub}>-</button> <span>{this.data.count}</span> <button onClick={this.add}>+</button> </div> ) } }) render(<my-counter />, 'body')
腾讯开源的移动 H5 的控制台开发调试工具,支持查看 console 日志、网络请求、自定义插件等。示例代码:
<script src="path/to/vconsole.min.js"></script> <script> // init vConsole var vConsole = new VConsole(); console.log('Hello world'); </script>
提供在线借书功能的开源小程序项目。连接读者与图书馆,实现图书借阅线上化。界面风格良好,功能完整。具有注册登录、图书搜索、书单系统、订单管理等功能。这是一个完整的小程序项目,包括了前后端的开发,并且撰写了完善的文档,适合初学者学习。可以扫描下面的小程序码体验:
一款 macOS 的强大的修键软件
(英文)介绍 Python 有趣、神奇的开源项目。目前涵盖多个领域、项目丰富
Python 的第三方库,用于快速创建命令行。支持装饰器方式调用、多种参数类型、自动生成帮助信息等。示例代码如下:
import click @click.command() @click.option("--count", default=1, help="Number of greetings.") @click.option("--name", prompt="Your name", help="The person to greet.") def hello(count, name): """Simple program that greets NAME for a total of COUNT times.""" for _ in range(count): click.echo("Hello, %s!" % name) if __name__ == '__main__': hello() # 下面为运行效果 $ python hello.py --count=3 Your name: Click Hello, Click! Hello, Click! Hello, Click!
代码量极少,功能却很完备的 Python 爬虫框架。特点:
- 功能完备:包含抓取、解析、存储等
- 代码量少:方便阅读源码、动手修改、二次开发
- 等等
以类似 VIM 操作,方便、快捷地管理文件的工具
(英文) iOS 开发者学习路线图
推荐系统论文整理列表,包括了行业顶尖会议 AAAI、NIPS 等发表的论文,以及 KDD 一些获奖论文。方便推荐系统方向以及文本表示方向等研究人员,跟踪阅读行业内经典论文和最新研究方向
图像语义分割模型组件整理,包含了模型、数据增广、准确率评价等模块。方便研究者快速搭建和试验一个图像语义分割模型,同时集成了一些 state-of-the-art 的模型
(英文)OpenAI 制作的教育资源,可以更容易地学习深层强化学习。官方项目,浅显易懂,提供练手的例子,方便初学者或对深层强化学习感兴趣的人群学习和入门
生成对抗网络(Generative Adversarial Networks,简称GAN)的一个大集合,作者列举了生成对抗网络领域各式各样的应用集合,大部分为论文,包含少数的 GitHub 项目。该项目对于 GAN 领域覆盖面全面,论文列表整理清晰,GAN 方向的研究者可以从这个项目中查询到想看的经典的论文或者扩充自己的知识储备
Google 神级语言表示模型的 PyTorch 预训练模型和 PyTorch 框架结合,使得更加容易上手。PyTorch 版本更方便小白上手实验。示例代码:
import torch from pytorch_pretrained_bert import BertTokenizer, BertModel, BertForMaskedLM # Load pre-trained model tokenizer (vocabulary) tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') # Tokenized input text = "Who was Jim Henson ? Jim Henson was a puppeteer" tokenized_text = tokenizer.tokenize(text) # Mask a token that we will try to predict back with `BertForMaskedLM` masked_index = 6 tokenized_text[masked_index] = '[MASK]' assert tokenized_text == ['who', 'was', 'jim', 'henson', '?', 'jim', '[MASK]', 'was', 'a', 'puppet', '##eer'] # Convert token to vocabulary indices indexed_tokens = tokenizer.convert_tokens_to_ids(tokenized_text) # Define sentence A and B indices associated to 1st and 2nd sentences (see paper) segments_ids = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1] # Convert inputs to PyTorch tensors tokens_tensor = torch.tensor([indexed_tokens]) segments_tensors = torch.tensor([segments_ids])
一个交互式算法可视化网站。你可以自由选择自己想学习的算法,每个算法它都清晰描绘了其原理和运作过程
VS Code 编辑器官方快捷键查图汉化版
- C++ 项目
- Go 项目
- Java 项目
- JavaScript 项目
- Objective-C 项目
- PHP 项目
- Python 项目
- Swift 项目
- 人工智能
- 其它