《HelloGitHub》第 21 期
兴趣是最好的老师,HelloGitHub 就是帮你找到编程的兴趣!
|以下为本期内容|每个月 28 号发布最新一期|点击查看往期内容|
C 项目
1、kcp:纯算法实现的快速可靠协议。能以比 TCP 浪费 10%-20% 的带宽为代价,换取平均延迟降低 30%-40%,且最大延迟降低 3 倍的传输效果
C++ 项目
- 严格区分 “一简对多繁” 和 “一简对多异”
- 完全兼容异体字,可以实现动态替换
- 严格审校一简对多繁词条,原则为 “能分则不合”
- 支持异体字和地区习惯用词转换,如 “裏” “裡”、“鼠標” “滑鼠”
- 词库和函数库完全分离,可以自由修改、导入、扩展
- 支持 C++、Python、PHP、Java、Ruby、Node.js 等
- 兼容 Windows、Linux、Mac 平台
Go 项目
3、mattermost-server:采用 Go 语言开发的团队通讯服务项目,可用于自行搭建服务。为团队带来跨 PC 和移动设备的消息收发、文件分享,搜索等功能的通讯服务平台
Java 项目
4、android-material-design-icon-generator-plugin:IntelliJ/Android Studio 生成、设计 icon 的插件,安装简单使用方便。如下图所示:
5、Blade:轻量级、高效、简洁优雅的 Java Web 框架,致力于为个人开发者更快捷地开发 Web 应用提供便利。详尽的中文文档及入门视频。示例代码:
public static void main(String[] args) {
Blade.me().get("/", (req, res) -> {
res.text("Hello Blade");
}).start();
}
6、canal:MySQL 数据库 binlog 的增量订阅、消费组件。模拟 MySQL salve 方式,实现 MySQL 的主从同步,同时加入了增量日志解析等功能。MySQL 原始主备机制,示意图如下:
7、RxGalleryFinal:Android 图片、视频文件选择器,支持多选、单选、拍摄和裁剪等
8、grain:极简的、组件式的 RPC 框架,灵活且适合学习。包含系统通用多线程模型与消息通讯、多对多关系的分布式锁、基于系统通用多线程模型的 Websocket 框架、支持行级锁的多线程锁等组件
JavaScript 项目
9、numeric-keyboard:手机数字键盘,包含一个纯键盘 UI 和输入框套件。有纯 JavaScript、React、Vue 三个版本
10、git-point:基于 React Native 开发的非官方开源 GitHub 客户端,功能丰富包含查看项目和用户信息、接收通知、管理 Issues 和 PR。支持 Android、iOS,选择对应的客户端下载使用
11、wepy:微信官方的开源项目,该项目是为了让小程序支持组件化开发的框架,特征如下:
- 类 Vue 开发风格
- 支持自定义组件开发
- 支持引入 NPM 包
- 等等
12、webster:一款可以抓取网页中 AJAX 异步内容的分布式爬虫框架
13、anyupload:该项目是一款上传插件,使用方便、简单。支持多文件上传、上传速率动态控制、真实进度监控 kb/s、分块生成 MD5、分块上传、MD5 校验、暂停、取消等功能。在线体验
Kotlin 项目
14、github-profile-summary:GitHub 账号数据可视化服务,很新颖地增加了 star 后可见(回复可见)😄
Python 项目
15、thefuck:在 Linux 命令行中,当你输入的命令有错误后,直接输入 fuck
就可以自动执行修复后的命令,效果图如下:
16、youtube-dl:强大的视频下载工具,支持几百个国内外主流视频网站。正如名字一样,最初是为了下载 youtube 上的视频而开发的。如果有国外服务器的朋友,可以充分利用这个工具,下载 youtube 上的视频,速度不要太爽。下面介绍安装、下载视频等命令:
# 1. 安装命令:sudo pip install youtube-dl
Installing collected packages: youtube-dl
Successfully installed youtube-dl-2017.12.14
# 2. 查看 URL 支持格式:youtube-dl --list-formats URL
format code extension resolution note
134 mp4 450x360 DASH video 449k , avc1.4d4015, 25fps, video only
17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k
36 3gp 300x240 small , mp4v.20.3, mp4a.40.2
18 mp4 450x360 medium , avc1.42001E, mp4a.40.2@ 96k
43 webm 640x360 medium , vp8.0, vorbis@128k (best)
# 3. 选择格式下载视频:youtube-dl -f 18 URL (18为mp4 450x360格式)
[youtube:playlist] Downloading playlist PLF90USSyuoYzPhhFG7XFBRn63Zvs--lNP - add --no-playlist to just download video JyLducMVYVg
[youtube:playlist] PLF90USSyuoYzPhhFG7XFBRn63Zvs--lNP: Downloading webpage
[download] Downloading playlist: 情满四合院完整版
[youtube:playlist] playlist 情满四合院完整版: Downloading 42 videos
[download] Downloading video 1 of 42
...
# 4. 下载完成后,最后使用 https://github.com/houtianze/bypy 库把下载的视频同步到百度网盘上
17、jieba:强大的 Python 分词库,拿来直接用就好。示例代码如下:
# encoding=utf-8
import jieba
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list)) # 全模式
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list)) # 精确模式
seg_list = jieba.cut("他来到了网易杭研大厦") # 默认是精确模式
print(", ".join(seg_list))
seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式
print(", ".join(seg_list))
【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学
【精确模式】: 我/ 来到/ 北京/ 清华大学
【新词识别】:他, 来到, 了, 网易, 杭研, 大厦 (此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了)
【搜索引擎模式】: 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造
18、pydu:该库将平时常用的数据结构和工具都收录其中,可供日常开发的使用,同时方便学习与借鉴,丰富的文档能帮助新手更好的理解和使用它。这些实用的模块都是来自于开源项目和贡献者们的智慧,快来加入到这个项目中,让它变得更加实用和丰富
其它
19、vscode:Visual Studio Code 是微软出品的支持多平台的开源编辑器,体积小、功能丰富、性能强大、扩展性很强。我是用着挺爽,写些代码片段、文章、文档开箱即用。个人感觉编写中型项目、代码调试的话还是 IDE 更方便些,总之推荐下载和使用。下载地址
20、hello-comic:程序员有关的漫画的集合,希望有更多的人可以加入该项目分享有意思程序员漫画
21、android-training-course-in-chinese:Android 官方培训课程中文版,在线阅读
22、go-advices:Go 建议中文版
23、git-flight-rules:Git 飞行规则,所谓飞行规则就是特定场景的非常详细的标准处理流程。该项目记录了使用 Git 过程中,如果遇到问题的解决办法和步骤,中文
24、coding-interview-university:一套完整的学习手册,项目发起者是为了让自己通过 Google 的面试而制定的计划。最后,他去了 Amazon。感谢 掘金翻译的中文版
开源书籍
25、pydata-notebook:《利用Python进行数据分析 2017 第二版》中文翻译笔记