HelloGitHub/content/HelloGitHub33.md

288 lines
19 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 《HelloGitHub》第 33 期
> 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣!
<p align="center">
<img src='https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/cover.jpg' style="max-width:100%;"></img>
</p>
## 目录
点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。
![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png)
**Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/33) 换一种浏览方式。
<p align="center">
<img src="https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/weixin.png" style="max-width:30%;"></img><br>
关注「HelloGitHub」公众号第一时间收到推送
</p>
## 内容
> **以下为本期内容**|每个月 **28** 号更新
### C 项目
1、[json-tutorial](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/miloyip/json-tutorial):由[Milo Yip](https://github.com/miloyip/json-tutorial#%E5%85%B3%E4%BA%8E%E4%BD%9C%E8%80%85)发起的用 C 从零开始编写 JSON 库教程。大纲:
1. 启程编译环境、JSON 简介、测试驱动、解析器主要函数及各数据结构。
2. 解析数字JSON number 的语法
3. 解析字符串:使用 union 存储 variant、自动扩展的堆栈、JSON string 的语法、valgrind
4. UnicodeUnicode 和 UTF-8 的基本知识、JSON string 的 unicode 处理
5. 解析数组JSON array 的语法
6. 解析对象JSON object 的语法、重构 string 解析函数
7. 生成器JSON 生成过程、注意事项。练习完成 JSON 生成器
8. 访问与其他功能JSON arrayobject 的访问及修改
### C++ 项目
2、[LeetCodeAnimation](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/MisterBooo/LeetCodeAnimation):用动画的形式呈现解 LeetCode 题目的思路
### CSS 项目
3、[lit](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ajusa/lit):仅 395 字节的响应式 CSS 框架
### Go 项目
4、[ptt-daily-beauty](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/LarryLuTW/ptt-daily-beauty):每晚 11 点会自动发送 PTT 论坛(台湾最大论坛) Beauty 板块前 3 名的小姐姐图片。[点击订阅](https://www.daily-beauty.xyz/)
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/139529827.png' style="max-width:80%; max-height=80%;"></img></p>
5、[q](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ryboe/q)Golang debug 库,自动打印变量类型并且格式化输出
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/51268344.png' style="max-width:80%; max-height=80%;"></img></p>
6、[tldr](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/isacikgoz/tldr)Golang tldr 客户端。对比之前推荐过的 Python 版本客户端Golang 版本速度更快、交互友好、且支持选择搜索结果的展示样式。每当你想要用 tar 解压缩但是记不住具体参数的时候tldr 可以拯救世界
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/162439231.gif' style="max-width:80%; max-height=80%;"></img></p>
7、[yeetgif](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/sgreben/yeetgif):一个命令行工具,用来组合、生成表情的 gif 动图。支持多种模式:旋转、抖动、鬼畜等,可以组合出很魔性的表情
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/151709018.gif' style="max-width:80%; max-height=80%;"></img></p>
### Java 项目
8、[AndroidWM](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/huangyz0918/AndroidWM):一个轻量级的开源 Android 图片水印框架,支持文字水印和图像水印,以及不同的水印样式、位置等。同时可以支持 LSB 空间域隐形数字水印的加载和频域数字水印的加载和检测,适合客户端图片水印添加,移动端图像处理等
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/146386709.png' style="max-width:80%; max-height=80%;"></img></p>
9、[xLog](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/elvishew/xLog):简单、美观、强大、可扩展的 Android 和 Java 日志库,可同时在多个通道打印日志,如 Logcat、Console 和文件。功能:
- 全局配置TAG各种格式化器...)或基于单条日志的配置
- 支持打印任意对象以及可自定义的对象格式化器
- 支持打印无限长的日志(没有 4K 字符的限制)
- XML 和 JSON 格式化输出
- 等等
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/48155157.png' style="max-width:80%; max-height=80%;"></img></p>
### JavaScript 项目
10、[better-onetab](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/cnwangjie/better-onetab):实用的管理浏览器多标签页面的工具,目前支持 Chrome 以及 FireFox 的扩展。支持标签页储存和标签页分组等功能
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/131522404.png' style="max-width:80%; max-height=80%;"></img></p>
11、[js2image](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/aoao-eth/js2image):将源代码压缩成圣诞树的样子,使用此项目压缩生产环境代码后请注意测试。有兴趣的小伙伴可以尝试扩展出压缩成其它样子,很有意思
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/48420530.png' style="max-width:80%; max-height=80%;"></img></p>
12、[lint-md](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/lint-md/lint-md):用于检查中文 markdown 编写格式规范的命令行工具。方便集成 CI支持 API 方法调用。对于矫正 markdown 编写格式来说是一个很好的检查工具,基于 AST 的格式规范检测的代码也可以借鉴和学习
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/156473632.png' style="max-width:80%; max-height=80%;"></img></p>
13、[swc](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/swc-project/swc):基于 Rust 开发的 [Babel](https://github.com/babel/babel) 替代品,速度更快,值得关注
### Objective-C 项目
14、[ish](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ish-app/ish):在 iOS 上跑 Linux shell可以通过 linux 命令操作你的 iOS 设备
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/90320494.png' style="max-width:80%; max-height=80%;"></img></p>
15、[JXCategoryView](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/pujiaxin33/JXCategoryView):几乎实现了当前所有主流 APP 的分类切换控制效果的库。效果丰富、配置简单,优点:
- 使用协议封装指示器逻辑,可以为所欲为的自定义指示器效果
- 提供更加全面丰富、高度自定义的效果
- 使用子类化管理 cell 样式,逻辑更清晰,扩展更简单
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/126299577.gif' style="max-width:80%; max-height=80%;"></img></p>
16、[LongestCocoa](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Quotation/LongestCocoa):写 Objective-C 的程序员肯定对冗长的描述性命名风格爱的深切。所以 Cocoa 框架里最长的方法或在常量名有哪些?该项目就是告诉你这些冗长名字都有那些
17、[NudeIn](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/hon-key/NudeIn):基于 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];
}
}
```
### PHP 项目
18、[meedu](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Qsnh/meedu):开源免费的在线教育系统,支持在线点播、在线电子书、会员收费三大模块。[在线尝试](https://meedu.vip/)
### Python 项目
19、[loguru](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Delgan/loguru):一个让 Python 记录日志变得简单的库
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/100401612.gif' style="max-width:80%; max-height=80%;"></img></p>
20、[lsbasi](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/rspivak/lsbasi):用 Python 写一个简单的解释器系列教程
21、[mkdocs](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mkdocs/mkdocs):用 Python 开发的快速、简单的静态网站生成器,主要是为了构建项目的文档。文档源是 markdown 文件,用法和 Hexo 差不多,可通过一个 YAML 文件进行配置
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/15830664.png' style="max-width:80%; max-height=80%;"></img></p>
### 其它
22、[Back-End-Developer-Interview-Questions](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/arialdomartini/Back-End-Developer-Interview-Questions):《后端开发面试题》[中文](https://github.com/monklof/Back-End-Developer-Interview-Questions)
23、[codelf](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/unbug/codelf)变量命名工具。计算机科学里两件最难的事缓存失效和命名。该工具支持直接搜索中文当你查中文的时候Codelf 会直接查好单词和单词的近义词给你。然后再搜索 Github、Bitbucket、Google Code 等上的开源项目的源码匹配出与这些词汇相关的变量名和函数名。[在线尝试](https://unbug.github.io/codelf/)
24、[cool-retro-term](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Swordfish90/cool-retro-term):一个终端模拟器,模仿了老式阴极管屏幕的外观和视觉感觉,养眼、轻量且外观可调,支持 Linux、macOS。搭配上 Vim 或 Emacs即刻获得与上个世纪 hackers 相同的编程体验
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/14614344.gif' style="max-width:80%; max-height=80%;"></img></p>
25、[nginxconfig.io](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/digitalocean/nginxconfig.io):在线生成 Nginx 配置文件网站,[在线尝试](https://nginxconfig.io/)
26、[the-art-of-command-line](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jlevy/the-art-of-command-line):该项目是作者在 Linux 系统上工作时,发现的一些命令行使用技巧的总结。有些技巧非常基础,而另一些则相当复杂,甚至难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了,它们会提高你在编程时的灵活性以及效率。[中文](https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md)
27、[weekly](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ruanyf/weekly)[阮一峰](https://github.com/ruanyf)技术分享周刊,每周五发布
### 开源书籍
28、[Cpp_Concurrency_In_Action](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/xiaoweiChen/Cpp_Concurrency_In_Action)《C++ Concurrency in Action》的中文翻译版C++ 并发编程),[在线阅读](https://chenxiaowei.gitbooks.io/cpp_concurrency_in_action/)
29、[ddia](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Vonng/ddia)《Designing Data-Intensive Application》中文翻译版设计数据密集型应用
### 机器学习
30、[deep-learning-papers-translation](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/SnailTyan/deep-learning-papers-translation):主要内容是 CV 领域里一些论文的翻译包括分类、检测、OCR和模型轻量化。不喜欢看英文原版论文的可以关注该项目
31、[MTCNN_face_detection_alignment](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/kpzhang93/MTCNN_face_detection_alignment):人脸检测领域经典之作,出自 2016 年 ECCV 一篇[论文](https://kpzhang93.github.io/MTCNN_face_detection_alignment/paper/spl.pdf)。目前在工业应用中落地比较成功,很多公司检测模块运用 MTCNN 或者其加速版MTCNN 将人脸检测和关键点检测通过一个模型作为 MultiTasks 的方式进行训练inference 时候可同时得到人脸框信息和关键点信息
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/69148037.png' style="max-width:80%; max-height=80%;"></img></p>
32、[S3FD.pytorch](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yxlijun/S3FD.pytorch):该项目是论文 [S3FD:Single Shot Scale-invariant Face Detector](https://arxiv.org/abs/1708.05237) 的 pytorch 复现版本。S3FD 目前在 FDDB 的评测中排在前几位,属于精度较高的人脸检测方法。论文主要解决人脸尺度问题,进一步提升对小脸的检测
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/159029902.png' style="max-width:80%; max-height=80%;"></img></p>
33、[SSH](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mahyarnajibi/SSH):该项目是 ICCV2017 论文 [SSH:Single Stage Headless Face Detector](https://arxiv.org/abs/1708.03979)
作者自己开源的项目算是官方开源项目具有一定的权威性。SSH 也算是人脸检测中一个经典的方法,具有较高的精度和较快的速度。项目实现了论文中的很多细节,对复现过程也有详细的讲解,容易实现。美中不足的是论文中的 Pyramid 方式,该项目没有实现
<p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/33/104791940.jpeg' style="max-width:80%; max-height=80%;"></img></p>
<p align="center">
<a href="https://github.com/521xueweihan/HelloGitHub/blob/master/content/HelloGitHub32.md">『上一期』</a> | <a href='https://github.com/521xueweihan/HelloGitHub/issues/899'>反馈和建议</a> | <a href="https://github.com/521xueweihan/HelloGitHub/blob/master/content/HelloGitHub34.md">『下一期』</a>
</p>
---
<p align="center">
👉 <a href='https://hellogithub.com/periodical'>来!推荐开源项目</a> 👈<br>
微信中搜:<strong>HelloGitHub</strong> 关注公众号<br>
不仅能第一时间收到推送,还有回馈粉丝的活动<br>
如果文中的图刷不出来,可以点击 <a href='https://hellogithub.com/periodical/volume/33'>这里</a>
</p>
## 赞助
<table>
<thead>
<tr>
<th align="center" style="width: 80px;">
<a href="https://www.ucloud.cn/site/active/kuaijiesale.html?utm_term=logo&utm_campaign=hellogithub&utm_source=otherdsp&utm_medium=display&ytag=github_hellogithub_otherdsp_display">
<img src="https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/ucloud.png" width="60px"><br>
<sub>UCloud</sub><br>
<sub>超值的全球云服务</sub>
</a>
</th>
<th align="center" style="width: 80px;">
<a href="https://www.upyun.com/">
<img src="https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/upyun.png" width="60px"><br>
<sub>CDN</sub><br>
<sub>开启全网加速</sub>
</a>
</th>
<th align="center" style="width: 80px;">
<a href="https://github.com/OpenIMSDK/Open-IM-Server">
<img src="https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/im.png" width="60px"><br>
<sub>OpenIM</sub><br>
<sub>开源IM力争No.1</sub>
</a>
</th>
<th align="center" style="width: 80px;">
<a href="https://apifox.cn/a103hello">
<img src="https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/apifox.png" width="60px"><br>
<sub>Apifox</sub><br>
<sub>比 Postman 更强大</sub>
</a>
</th>
<th align="center" style="width: 80px;">
<a href="https://he3.app?utm_source=hellogithub&utm_medium=github&utm_campaign=hellogithub">
<img src="https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/he3.png" width="60px"><br>
<sub>He3</sub><br>
<sub>开发者必备工具箱</sub>
</a>
</th>
<th align="center" style="width: 80px;">
<a href="https://promptperfect.jinaai.cn/a/KARRY">
<img src="https://github-production-user-asset-6210df.s3.amazonaws.com/55871322/256815369-7539126d-cbfa-4c66-b607-00f4f9ef0123.jpg" width="60px"><br>
<sub>PromptPerfect</sub><br>
<sub>大模型提示词开发工具</sub>
</a>
</th>
</tr>
</thead>
</table>
## 声明
<a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh"><img alt="知识共享许可协议" style="border-width: 0" src="https://licensebuttons.net/l/by-nc-nd/4.0/88x31.png"></a><br>本作品采用 <a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh">署名-非商业性使用-禁止演绎 4.0 国际</a> 进行许可。