Skip to content

Latest commit

 

History

History
252 lines (160 loc) · 19.8 KB

HelloGitHub33.md

File metadata and controls

252 lines (160 loc) · 19.8 KB

《HelloGitHub》第 33 期

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

简介

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

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

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

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

🎉 最后 HelloGitHub 这个项目就诞生了 🎉

目录


欢迎关注 HelloGitHub 公众号,获取更多开源项目的资料和内容。

内容

以下为本期内容|每个月 28 号发布最新一期|官网

C 项目

1、json-tutorial:由Milo Yip发起的用 C 从零开始编写 JSON 库教程。大纲:

  1. 启程:编译环境、JSON 简介、测试驱动、解析器主要函数及各数据结构。
  2. 解析数字:JSON number 的语法
  3. 解析字符串:使用 union 存储 variant、自动扩展的堆栈、JSON string 的语法、valgrind
  4. Unicode:Unicode 和 UTF-8 的基本知识、JSON string 的 unicode 处理
  5. 解析数组:JSON array 的语法
  6. 解析对象:JSON object 的语法、重构 string 解析函数
  7. 生成器:JSON 生成过程、注意事项。练习完成 JSON 生成器
  8. 访问与其他功能:JSON array/object 的访问及修改

🔙 返回目录 🔙


C++ 项目

2、LeetCodeAnimation:用动画的形式呈现解 LeetCode 题目的思路

🔙 返回目录 🔙


CSS 项目

3、lit:仅 395 字节的响应式 CSS 框架

🔙 返回目录 🔙


Go 项目

4、yeetgif:一个命令行工具,用来组合、生成表情的 gif 动图。支持多种模式:旋转、抖动、鬼畜等,可以组合出很魔性的表情

5、ptt-daily-beauty:每晚 11 点会自动发送 PTT 论坛(台湾最大论坛) Beauty 板块前 3 名的小姐姐图片。点击订阅

6、q:Golang debug 库,自动打印变量类型并且格式化输出

7、tldr:Golang tldr 客户端。对比之前推荐过的 Python 版本客户端,Golang 版本速度更快、交互友好、且支持选择搜索结果的展示样式。每当你想要用 tar 解压缩,但是记不住具体参数的时候,tldr 可以拯救世界

🔙 返回目录 🔙


Java 项目

8、xLog:简单、美观、强大、可扩展的 Android 和 Java 日志库,可同时在多个通道打印日志,如 Logcat、Console 和文件。功能:

  • 全局配置(TAG,各种格式化器...)或基于单条日志的配置
  • 支持打印任意对象以及可自定义的对象格式化器
  • 支持打印无限长的日志(没有 4K 字符的限制)
  • XML 和 JSON 格式化输出
  • 等等

9、AndroidWM:一个轻量级的开源 Android 图片水印框架,支持文字水印和图像水印,以及不同的水印样式、位置等。同时可以支持 LSB 空间域隐形数字水印的加载和频域数字水印的加载和检测,适合客户端图片水印添加,移动端图像处理等

🔙 返回目录 🔙


JavaScript 项目

10、better-onetab:实用的管理浏览器多标签页面的工具,目前支持 Chrome 以及 FireFox 的扩展。支持标签页储存和标签页分组等功能

11、lint-md:用于检查中文 markdown 编写格式规范的命令行工具。方便集成 CI,支持 API 方法调用。对于矫正 markdown 编写格式来说是一个很好的检查工具,基于 AST 的格式规范检测的代码也可以借鉴和学习

12、js2image:将源代码压缩成圣诞树的样子,使用此项目压缩生产环境代码后请注意测试。有兴趣的小伙伴可以尝试扩展出压缩成其它样子,很有意思

13、swc:基于 Rust 开发的 Babel 替代品,速度更快,值得关注

🔙 返回目录 🔙


Objective-C 项目

14、iSH:在 iOS 上跑 Linux shell,可以通过 linux 命令操作你的 iOS 设备

15、Nudeln:基于 UITextView 书写风格类似于 masonry 的 iOS 端富文本控件。它采用声明式(链式)方法定义富文本控件,与编程式的相比它所需的代码量更短、更直观和易用。示例代码:

#import "NudeIn.h"

/// 声明控件为你的成员变量

@property (nonatomic,strong) NudeIn *attrLabel;

/// Do it yourself

_attrLabel = [NudeIn make:^(NUDTextMaker *make) {
    make.text(@"this is a ").font(14).color([UIColor blackColor]).attach();
    make.text(@"BlueLink").font(17).color([UIColor blueColor]).link(self,@selector(linkHandler:)).attach();
    make.text(@", and this is a ").font(14).color([UIColor blackColor]).attach();
    make.text(@"RedLink").font(17).color([UIColor redColor]).link(self,@selector(linkHandler:)).attach();
}];

/// 对声明了 link 属性的部分定义回调
 (void)linkHandler:(NUDAction *)action {
    
    if ([action isKindOfClass:[NUDLinkAction class]]) {
        
        NUDLinkAction *linkAction = (NUDLinkAction *)action;
        
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:linkAction.string message:nil preferredStyle:UIAlertControllerStyleAlert];
    
        [alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        }]];
        
        [self presentViewController:alertController animated:YES completion:nil];
        
    }
    
}

16、JXCategoryView:几乎实现了当前所有主流 APP 的分类切换控制效果的库。效果丰富、配置简单,优点:

  • 使用协议封装指示器逻辑,可以为所欲为的自定义指示器效果
  • 提供更加全面丰富、高度自定义的效果
  • 使用子类化管理 cell 样式,逻辑更清晰,扩展更简单

17、LongestCocoa:写 Objective-C 的程序员肯定对冗长的描述性命名风格爱的深切。所以 Cocoa 框架里最长的方法或在常量名有哪些?该项目就是告诉你这些冗长名字都有那些

🔙 返回目录 🔙


PHP 项目

18、MeEdu:开源免费的在线教育系统,支持在线点播、在线电子书、会员收费三大模块。在线尝试

🔙 返回目录 🔙


Python 项目

19、loguru:一个让 Python 记录日志变得简单的库

20、lsbasi:用 Python 写一个简单的解释器系列教程

21、mkdocs:用 Python 开发的快速、简单的静态网站生成器,主要是为了构建项目的文档。文档源是 markdown 文件,用法和 Hexo 差不多,可通过一个 YAML 文件进行配置

22、weixin_crawler:基于 Scrapy、Flask、Echarts、Elasticsearch 等实现的微信公众号文章爬虫。自带 UI 界面、分析报告、搜索功能

🔙 返回目录 🔙


其它

23、Back-End-Developer-Interview-Questions:《后端开发面试题》中文

24、weekly阮一峰技术分享周刊,每周五发布

25、codelf:变量命名工具。计算机科学里两件最难的事:缓存失效和命名。该工具支持直接搜索中文,当你查中文的时候,Codelf 会直接查好单词和单词的近义词给你。然后再搜索 Github、Bitbucket、Google Code 等上的开源项目的源码匹配出与这些词汇相关的变量名和函数名。在线尝试

26、the-art-of-command-line:该项目是作者在 Linux 系统上工作时,发现的一些命令行使用技巧的总结。有些技巧非常基础,而另一些则相当复杂,甚至难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了,它们会提高你在编程时的灵活性以及效率。中文

27、nginxconfig.io:在线生成 Nginx 配置文件网站,在线尝试

28、cool-retro-term:一个终端模拟器,模仿了老式阴极管屏幕的外观和视觉感觉,养眼、轻量且外观可调,支持 Linux、macOS。搭配上 Vim 或 Emacs,即刻获得与上个世纪 hackers 相同的编程体验

🔙 返回目录 🔙


开源书籍

29、Cpp_Concurrency_In_Action:《C++ Concurrency in Action》的中文翻译版(C++ 并发编程),在线阅读

30、ddia:《Designing Data-Intensive Application》中文翻译版(设计数据密集型应用)

🔙 返回目录 🔙


机器学习

31、MTCNN_face_detection_alignment:人脸检测领域经典之作,出自 2016 年 ECCV 一篇论文。目前在工业应用中落地比较成功,很多公司检测模块运用 MTCNN 或者其加速版,MTCNN 将人脸检测和关键点检测通过一个模型作为 MultiTasks 的方式进行训练,inference 时候可同时得到人脸框信息和关键点信息

32、FaceBoxes:出自论文 FaceBoxes: A CPU Real-time Face Detector with High Accuracy,是一种可以在 CPU 上实现实时检测的方法,而且精度不错。该项目是 Caffe 版本,步骤讲解清晰,可以快速复现。鉴于 FaceBoxes 的检测速度非常快,也可以作为一种生产落地的方法,并且现有速度仍有一定的优化空间

33、SSH:该项目是 ICCV2017 论文 SSH:Single Stage Headless Face Detector 作者自己开源的项目,算是官方开源项目,具有一定的权威性。SSH 也算是人脸检测中一个经典的方法,具有较高的精度和较快的速度。项目实现了论文中的很多细节,对复现过程也有详细的讲解,容易实现。美中不足的是论文中的 Pyramid 方式,该项目没有实现

34、S3FD.pytorch:该项目是论文 S3FD:Single Shot Scale-invariant Face Detector 的 pytorch 复现版本。S3FD 目前在 FDDB 的评测中排在前几位,属于精度较高的人脸检测方法。论文主要解决人脸尺度问题,进一步提升对小脸的检测

35、deep-learning-papers-translation:主要内容是 CV 领域里一些论文的翻译,包括分类、检测、OCR和模型轻量化。不喜欢看英文原版论文的,可以关注该项目

🔙 返回目录 🔙


『上一期』 | 反馈和建议 | 『下一期』


看完了,还不够?<科技爱好者周刊>。还不过瘾,那就看看每天更新的前端日报吧 <今日前端>
点击分享发现的有趣项目

声明

知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。