# HelloGitHub Vol.34
> 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、[playerdemo](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/itisyang/playerdemo):开源、入门级视频播放器跨平台视频播放器。该播放器拥有视频播放器基本功能,适合学习播放器开发技术,音频、视频技术
### Go
2、[color](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/gookit/color):Golang 的命令行色彩使用库。拥有丰富的色彩渲染输出、通用的 API 方法、兼容 Windows 系统
10、[giojs](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/syt123450/giojs):基于 Three.js 的 Web 3D 地球数据可视化的开源组件库。使用 Gio.js 的网页应用开发者,可以快速地以申明的方式创建自定义的 Web3D 数据可视化模型,添加数据,并且将其作为一个组件整合到自己的应用中。支持静态 Dom、React和微信小程序。具有一下特点:
- 易用性 -- 仅使用 4 行 Javascript 即可创建 3D 地球数据可视化模型
- 定制化 -- 使用 Gio.js 提供的丰富的 API 来创建自定义样式的 3D 地球
- 现代化 -- 基于 Gio.js 构建高交互、跨平台、自适应的现代化 3D 前端应用
11、[gridea](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/getgridea/gridea):静态博客写作客户端,你可以用它来记录你的生活、心情、知识、笔记、创意。使用了 electron 技术,对于学习 Javascript 桌面端开发是一个很好的项目
### Python
19、[awesome-python-applications](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/mahmoud/awesome-python-applications):(英文)介绍 Python 有趣、神奇的开源项目。目前涵盖多个领域、项目丰富
20、[click](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/pallets/click):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!
```
21、[PSpider](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/xianhu/PSpider):代码量极少,功能却很完备的 Python 爬虫框架。特点:
- 功能完备:包含抓取、解析、存储等
- 代码量少:方便阅读源码、动手修改、二次开发
- 等等
22、[ranger](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/ranger/ranger):以类似 VIM 操作,方便、快捷地管理文件的工具
23、[sherlock](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/sherlock-project/sherlock):(英文)在主流社交网站,例如:GitHub、Facebook 等网站上查找指定的用户名是否存在。你想取一个独一无二的名字吗?快试试吧
### Swift
24、[iOS-Developer-Roadmap](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/BohdanOrlov/iOS-Developer-Roadmap):(英文) iOS 开发者学习路线图
### AI
25、[RecommenderSystem-Paper](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/daicoolb/RecommenderSystem-Paper):推荐系统论文整理列表,包括了行业顶尖会议 AAAI、NIPS 等发表的论文,以及 KDD 一些获奖论文。方便推荐系统方向以及文本表示方向等研究人员,跟踪阅读行业内经典论文和最新研究方向
26、[Semantic-Segmentation-Suite](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/GeorgeSeif/Semantic-Segmentation-Suite):图像语义分割模型组件整理,包含了模型、数据增广、准确率评价等模块。方便研究者快速搭建和试验一个图像语义分割模型,同时集成了一些 state-of-the-art 的模型
27、[spinningup](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/openai/spinningup):(英文)OpenAI 制作的教育资源,可以更容易地学习深层强化学习。官方项目,浅显易懂,提供练手的例子,方便初学者或对深层强化学习感兴趣的人群学习和入门
28、[the-gan-zoo](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/hindupuravinash/the-gan-zoo):生成对抗网络(Generative Adversarial Networks,简称GAN)的一个大集合,作者列举了生成对抗网络领域各式各样的应用集合,大部分为论文,包含少数的 GitHub 项目。该项目对于 GAN 领域覆盖面全面,论文列表整理清晰,GAN 方向的研究者可以从这个项目中查询到想看的经典的论文或者扩充自己的知识储备
29、[transformers](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/huggingface/transformers):Google 神级语言表示模型的 PyTorch 预训练模型和 PyTorch 框架结合,使得更加容易上手。PyTorch 版本更方便小白上手实验。示例代码:
```python
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])
```
### Other
30、[algorithm-visualizer](https://hellogithub.com/en/periodical/statistics/click?target=https://github.com/algorithm-visualizer/algorithm-visualizer):一个交互式算法可视化网站。你可以自由选择自己想学习的算法,每个算法它都清晰描绘了其原理和运作过程