前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《HelloGitHub》第 42 期

《HelloGitHub》第 42 期

作者头像
HelloGitHub
发布2021-05-14 11:38:30
4700
发布2021-05-14 11:38:30
举报
文章被收录于专栏:HelloGitHub

兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣!

简介

分享 GitHub 上有趣、入门级的开源项目。

这是一个面向编程新手热爱编程对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编程语言的项目让生活变得更美好的工具书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到开源社区中。

  • 会编程的可以贡献代码
  • 不会编程的可以反馈使用这些工具中的 Bug
  • 帮着宣传你觉得优秀的项目
  • Star 项目⭐️

在浏览、参与这些项目的过程中,你将学习到更多编程知识提高编程技巧找到编程的乐趣

? 最后 HelloGitHub[1] 这个项目就诞生了 ?


以下为本期内容|每个月 28 号发布最新一期|点击查看往期内容[2]

C 项目

1、linq4c:如果你想在 C 中使用隔壁 C# 的 linq 方法,那么不妨来使用这个项目!这是它的 C 语言版。实现了 linq 的大部分方法(60+)。现在它还在不断完善中,欢迎更多的小伙伴加入共同维护

代码语言:javascript
复制
bool WhereCallback(void *item) {
    char *str= (char *)item;
    return str[0] == 'h';
}

void *SelectCallback(void *item) {
    return newStr("%s_1", (char *)item);
}

char *str1 = "huang", *str2 = "hai", *str3 = "feng";

ArrayList array = arrlist_new();
arrlist_append(array, str1);
arrlist_append(array, str2);
arrlist_append(array, str3);

Linq *lq = From(array);
ArrayList result = 
    lq
    ->Where(lq, WhereCallback)
    ->Select(lq, SelectCallback)
    ->ToArray(lq);

for(int i = 0; i < arrlist_size(result); i++) {
    printf("%s\n", arrlist_get(result, i));
}

C++ 项目

2、nebula:Nebula Graph 是一款开源图数据库,目标是为超大规模的图数据提供高并发、低延时的读、写及计算服务。目前是世界上唯一能够容纳千亿个顶点和万亿条边、并提供毫秒级查询延时的图数据库解决方案。特点:

  • 全对称分布式架构
  • 可扩展
  • 高可用
  • 数据强一致
  • 类 SQL 查询语言

CSS 项目

3、iCSS:该项目围绕 CSS 话题,讲述了 CSS 相关的技巧、动画实现

Go 项目

4、kubesphere:一款在主流容器调度平台 Kubernetes 之上构建的企业级分布式多租户容器管理平台。提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大降低开发、测试、运维的日常工作的复杂度

5、starcharts:生成 GitHub 星图的项目

6、ultimate-go:该项目是作者在学习 Go 过程中,对 Go 源码以及涉及到的相关的计算机基础知识的心得与总结。适合 Go 学习者阅读与学习。快来和作者一起深入了解 Go 源码,了解背后的计算机理论和 Go 的设计思想

Java 项目

7、easyexcel:使用简单、上手快速、占用内存小且避免内存溢出的 Java 处理 Excel 工具

代码语言:javascript
复制
/**
* 最简单的读
* <p>1. 创建excel对应的实体对象 参照{@link DemoData}
* <p>2. 由于默认异步读取excel,所以需要创建excel一行一行的回调监听器,参照{@link DemoDataListener}
* <p>3. 直接读即可
*/
@Test
public void simpleRead() {
    String fileName = TestFileUtil.getPath() + "demo" + File.separator + "demo.xlsx";
    // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
    EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();
}

8、lila:一款基于 Scala 语言,完全免费、开源、没有广告、支持多语言的在线国际象棋游戏

9、tablesaw:一款包括数据框和可视化库,可用于加载、转换、过滤和汇总数据的 Java 实用程序。用 Tablesaw 处理数据会节省您的时间和精力,它还支持描述性统计,并且能够与 Smile 机器学习库完美集成。最近两年数据分析师职业大火,做好数据分析,就离不开数据可视化框架。Java 工程师掌握一种数据可视化库势在必行,示例代码:

代码语言:javascript
复制
public class BoxExample {

  public static void main(String[] args) throws Exception {
    Table table = Table.read().csv("../data/tornadoes_1950-2014.csv");

    Layout layout = Layout.builder().title("Tornado Injuries by Scale").build();

    BoxTrace trace =
        BoxTrace.builder(table.categoricalColumn("scale"), table.nCol("injuries")).build();
    Plot.show(new Figure(layout, trace));
  }
}

10、simple-java-mail:一个轻量级 Java 邮件框架,支持复杂、自定义的发送电子邮件业务。包括经过身份验证的代理、附件、嵌入式图像、自定义标头和属性、强大的地址验证等,亮点是支持身份代理等功能,防止其他其他邮件服务拦截邮件

11、XUpdate:一套基于 Android 的全量版本更新整体解决方案。它除了提供 Android SDK 外,还附带了 Spring Boot 搭建的后台服务以及 Vue.js 编写的后台管理界面。主要解决中小企业 Android 版本管理混乱的问题,提供可定制化的解决方案。该框架提供了完全可插拔的版本更新,同时为了让使用者使用方便,还提供了后台服务和管理界面,使用的都是现下最流行的技术。完全做到灵活、方便,并提供了大量丰富的文档供大家参阅

代码语言:javascript
复制
XUpdate.newBuild(getActivity())
.updateUrl(mUpdateUrl)
.isAutoMode(true) // 如果需要完全无人干预、自动更新,需要 root 权限【静默安装需要】
.update();

JavaScript 项目

12、star-battle:一个使用 JavaScript ES6、Canvas 开发的飞船射击类游戏

13、markdown-nice:能够自定义样式的 Markdown 编辑器。支持内容和自定义样式浏览器中实时保存、上传图片、脚注、公式等,输出的内容可一件复制到微信公众号、知乎、掘金、博客园和 CSDN 等一系列平台。极大的减轻了微信公众号文章的排版和编辑工作

14、marktext:一个简单且优雅的开源 Markdown 编辑器,支持 Linux、macOS 和 Windows 。功能:

  • 实时预览(所见即所得)和简洁明了的界面
  • Markdown 扩展,例如数学表达式和 emoji 表情
  • 输出 HTML 和 PDF 文件
  • 各种编辑模式:源代码模式、打字机模式、专注模式
  • 等等

15、leonsans:这是一个用 JS 编写的 Sans Serif 半衬线字体。Leon Sans 允许动态更改字体粗细并在 HTML 5 的 Canvas 元素中创建自定义动画、效果或形状。PS:这个字体是作者来庆祝他刚出生的婴儿 Leon 的哦

16、taro-music:基于 Taro 与网易云音乐 API 开发的网易云音乐小程序。技术栈为 typescript+taro+taro-ui+redux 目前主要是着重小程序端的展示,可以通过项目学习上述几个技术栈的使用和实战,从而能够快速使用 Taro 开发一个属于你自己的小程序,目前已实现的主要功能点如下:

  • 用户登陆
  • 我的关注列表
  • 最近播放列表
  • 歌曲播放页面
  • 等等

Objective-C 项目

17、JHBlog:该项目整理了作者从初级 iOS 开发到中级的晋级之路的相关知识集合

Python 项目

18、healthchecks:基于 Python3 和 Django2 的 Cron 定时任务监控工具,同时支持多种定时任务失败时的告警方式

19、GeneralNewsExtractor:基于《基于文本及符号密度的网页正文提取方法》论文用 Python 实现的正文抽取器,可以用来提取 HTML 中正文的内容、作者、标题。之前我看到这篇论文也想实现该抽取工具,但是我因为懒癌晚期躺下了,感谢kingname‘带趟’ ✌️

20、bokeh:一个交互式的数据可视化 Python 库,专注于在 Web 浏览器中实现美观、直接的数据可视化功能。使用它可以让你快速和轻松地创建交互式图表、仪表板和数据可视化程序。流式数据集的可视化效果如下图:

Ruby 项目

21、ruby-pinyin:可以把汉字转化为对应的拼音的库,同时能够较好的处理多音字的情况。正确处理多音字,示例代码如下:

代码语言:javascript
复制
PinYin.of_string('南京市长江大桥', :unicode)
return ["nán", "jīng", "shì", "cháng", "jiāng", "dà", "qiáo"]

能够正确的将“长”转为“chang2”,而不是“zhang3”

Swift 项目

22、EFQRCode:一个轻量级的、用来生成和识别二维码的纯 Swift 库,可根据输入的水印图和图标产生艺术二维码

其它

23、reverse-interview:如果当面试官问“你还有什么要问我的吗?”的时候你毫无头绪,那这个项目正是你所需要的

24、pull:一个 GitHub App,它可以让 fork 的仓库自动同步,保持和原仓库同步的神器。很多同学参与开源时会 fork 项目,但无法取得原项目的最新更新。此 Github App 可以很好的解决这个问题,截至目前已有几万仓库使用,截至目前已经自动生成了 70 万个 PR,该数字还在持续增加。注意:如果 master 有更改需要备份后使用

25、chinese-colors:中国传统颜色在线手册

26、navi:命令行辅助工具,有了它再也不用担心找不到历史输入过的命令、忘记命令等诸多烦恼

教程

27、advanced-java:一份 Java 工程师进阶知识点集合,内容涵盖:高并发、分布式、高可用、微服务等领域知识。这些知识点不局限于 Java 语言,后端的同学也可以从中收获很多

28、nodebestpractices:《Node.js 最佳实践》

29、Nodejs-Roadmap:Node.js 技术栈学习指南。内容侧重于 Node.js 服务端,包含:Node.js 基础知识、Node.js 核心模块、主流框架实践、缓存、数据库、消息中间件、DevOps、HTTP 协议以及 Node.js 在微服务等

30、c9-python-getting-started:微软出品的零基础 Python 入门教程,内容浅显易懂。包含示例代码、演示的 PPT、配套的 Youtube 视频

机器学习

31、ChineseNLPCorpus:中文自然语言处理数据集

32、albert_zh:海量中文预训练 ALBERT 模型

33、cherry:简单易用的文本分类器。适用多种语言,自带两个预训练模型,使用预训练模型进行分类只需一行代码。使用自己的数据集进行定制训练也只需要十行代码。轻松达到高精确率,召回率。同时该库支持自定义分词算法、分类算法等。示例代码:

代码语言:javascript
复制
>>> res = cherry.classify(model='harmful', text=['她们对计算机很有热情,也希望学习到数据分析,网络爬虫,人工智能等方面的知识,从而运用在她们工作上'])
>>> res.word_list
[(2, '她们'), (1, '网络'), (1, '热情'), (1, '方面'), (1, '数据分析'), (1, '希望'), (1, '工作'), (1, '学习'), (1, '从而')]
>>> res.probability
# 返回结果分别对应 赌博,正常,政治,色情 4个 类别的概率
array([[4.43336608e-03, 9.95215198e-01, 3.51419231e-04, 1.68657851e-08]])

参考资料

[1]HelloGitHub: https://hellogithub.com [2]点击查看往期内容: https://github.com/521xueweihan/HelloGitHub#内容

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 HelloGitHub 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
    • C 项目
      • C++ 项目
        • CSS 项目
          • Go 项目
            • Java 项目
              • JavaScript 项目
                • Objective-C 项目
                  • Python 项目
                    • Ruby 项目
                      • Swift 项目
                        • 其它
                          • 教程
                            • 机器学习
                              • 参考资料
                                • [1]HelloGitHub: https://hellogithub.com [2]点击查看往期内容: https://github.com/521xueweihan/HelloGitHub#内容
                                相关产品与服务
                                容器服务
                                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档