# HelloGitHub Vol.18
> Passion is the best teacher. **HelloGitHub** inspires your interest in open-source!
## Table of Contents
Click the **「Table of Contents」** icon at the top-right corner to open the navigation and enjoy a better reading experience.

## Content
> **The content of this issue is as follows**|Updated on the **28th** of each month
### C
1、[db_tutorial](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/cstack/db_tutorial):用 C 从零创建一个简单的数据库
### CSS
2、[materialize](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/Dogfalo/materialize):基于 Material Design 的现代响应式前端框架,简化了前端的开发,文档丰富。[官网](http://materializecss.com/)
### Go
3、[echo](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/labstack/echo):Go 语言最受欢迎的 Web 框架之一,具有:高性能、便于扩展、轻量的特点,示例代码:
```go
package main
import "github.com/labstack/echo"
func main() {
e := echo.New()
e.GET("/", callback)
e.Logger.Fatal(e.Start(":3000"))
}
func callback(ctx echo.Context) error {
return ctx.HTML(200, "你好 echo
")
}
```

4、[tidb](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/pingcap/tidb):开源分布式 NewSQL 数据库,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。具备如下核心特性:
- SQL支持 (TiDB 是 MySQL 兼容的)
- 水平线性弹性扩展
- 分布式事务
- 跨数据中心数据强一致性保证
- 故障自恢复的高可用

### Java
5、[AndroidTVLauncher](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/JackyAndroid/AndroidTVLauncher):一个 TV Leanback 风格桌面,基于 Leanback 库开发,符合 Android TV 官方交互规范

6、[spring-data-jpa-datatables](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/darrachequesne/spring-data-jpa-datatables):spring-data-jpa 和 jQuery [datatables](https://www.datatables.net/) 集成工具。极大简化基于 datatables 数据表格的开发,示例代码:
```
// 前端代码
$(document).ready(function() {
var table = $('table#sample').DataTable({
'ajax': {
'contentType': 'application/json',
'url': '/data/users',
'type': 'POST',
'data': function(d) {
return JSON.stringify(d);
}
},
// java 代码 server-side becomes
@JsonView(DataTablesOutput.View.class)
@RequestMapping(value = "/data/users", method = RequestMethod.POST)
public DataTablesOutput getUsers(@Valid @RequestBody DataTablesInput input) {
return userRepository.findAll(input);
}
```

7、[xxl-job](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/xuxueli/xxl-job):轻量级分布式任务调度框架,其核心设计目标是:开发迅速、学习简单、轻量级、易扩展,文档齐全。[官网](http://www.xuxueli.com/xxl-job/)
### JavaScript
8、[flatpickr](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/flatpickr/flatpickr):扁平化的日期选择组件,项目源码使用 TypeScript 编写,可以学习使用 Typescript 编写 JS 插件,Typescript 语言的好处是:可以在多人协作中避免一些变量类型错误的问题,从而提高效率。使用示例代码:
```javascript
// ConnonJS 方式引入
const flatpickr = require("flatpickr");
flatpickr("#myID", {});
flatpickr(".myClass", {});
// jQuery 方式引入
$(".selector").flatpickr(optional_config);
```

9、[puppeteer](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/puppeteer/puppeteer):Google Chrome 团队开源的面向 Node.js 的,基于 DevTools 协议的远程 Headless Chrome 控制库,它可以生成网页截图、PDF、抓取单页应用与网页内容、进行自动化表单提交、界面测试与模拟键盘输入等功能。示例代码如下:
```javascript
// 访问 https://example.com 并将截图保存为 example.png
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'example.png'});
await browser.close();
})();
```

10、[SelectPage](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/TerryZ/SelectPage):简洁优雅而功能强大的选择器,使用简单,适应各种UI环境,功能强大,丰富的参数和回调函数
。它包含了 autocomplete、ajax 数据源、多选择 Tag、i18n 国际化,结果列表分页展示,键盘快捷操作等
```javascript
//defined a array, the data returned at the server side is also used that format:
//Array[{Object},{...}]
var data = [
{id:1 ,name:'Chicago Bulls',desc:'芝加哥公牛'},
{id:2 ,name:'Cleveland Cavaliers',desc:'克里夫兰骑士'},
{id:3 ,name:'Detroit Pistons',desc:'底特律活塞'},
{id:4 ,name:'Indiana Pacers',desc:'印第安纳步行者'}
];
//init SelectPage
$('#selectpage').selectPage({
showField : 'desc',
keyField : 'id',
data : data
});
```

11、[vue-3d-model](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/hujiulong/vue-3d-model):展示三维模型的 Vue 组件,支持模型操作和模型点击事件,能自动缩放模型到合适大小并校正偏移,目前支持 obj、stl、dae 和 json 格式的模型,示例代码:
```vue
```

12、[weweChat](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/trazyn/weweChat):微信的第三方客户端。在完整实现 Web 微信功能的基础上,新增并优化部分功能,重设计整体 UI,提供更好的体验。Mac 安装命令:`brew cask install wewechat`

### Python
13、[faker](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/joke2k/faker):用于生成假数据的库,支持多种语言,你值得拥有。示例代码:
```python
fake.address()
# '辽宁省雪市静安廉街b座 998259'
fake.street_address()
# '巢湖街U座'
fake.building_number()
# 'x座'
fake.city_suffix()
# '市'
fake.latitude()
# Decimal('-0.295126')
fake.province()
# '湖北省'
```
14、[newspaper](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/codelucas/newspaper):强大的提取 Web 的内容、文章的库,支持多种语言,安装命令 `pip3 install newspaper3k`。示例代码:
```python
>>> from newspaper import Article
>>> url = 'http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'
>>> article = Article(url)
>>> article.download()
>>> article.html
'
『Previous』 | Feedback | 『Next』
---
👉 Submit open-source project! 👈
## Sponsor
## Disclaimer

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.