> **高考志愿**、**考研保研**、**副业赚钱**、**职业规划**、**简历优化**,微信欢迎加入[《猴哥成长营》](https://www.yuque.com/jackpop/ulig5a/srnochggbsa2eltw?singleDoc#)!

**DevWeekly**收集整理每周优质开发者内容,包括**开源项目**、**资源工具**、**技术文章**等方面。 每周五定期发布,同步更新到 知乎:Jackpop公众号:平凡而诗意 。 欢迎大家投稿,**[提交issue](https://github.com/Jackpopc/DevWeekly/issues)**,推荐或者自荐开源项目/资源/工具/文章~ **订阅方式**: 1. **Star**并收藏项目[DevWeekly](https://github.com/Jackpopc/DevWeekly) 2. 关注 知乎:Jackpop 3. 关注并星标公众号:平凡而诗意 进阶技术,优质资源,实用工具,欢迎关注公众号**平凡而诗意**!

## 开源项目 #### 1. [pdfarranger](https://github.com/pdfarranger/pdfarranger) ` Python` `Star:1.5k` ![e8hNq.png](https://pic1.zhimg.com/80/v2-d0ecb951e778d7a94f2cf07f6f7761cf_720w.png) pdfarranger是一个小型的Python-gtk应用程序,它帮助用户合并或分割PDF文档,并提供一个交互式的直观图形界面来对PDF进行旋转、裁剪和重新排列等操作。 它是一款在pikepdf的基础上开发的一款前端工具,pikepdf是一个用于读取和写入PDF文件的Python库。 #### 2. [eg3d](https://github.com/NVlabs/eg3d) ` Python` `Star:1.8k` CVPR 2022文章《Efficient Geometry-aware 3D Generative Adversarial Networks (EG3D)》的官方实现代码,给予Pytorch。 通过这个算法,仅使用单视角二维照片集合就能无监督地生成高质量的多视角一致的图像和三维形状。 #### 3. [diffgram](https://github.com/diffgram/diffgram) ` Python` `Star:1k` ![e8iLc.png](https://pic1.zhimg.com/80/v2-a1c133e0214071f1d4143c2fd14b951c_720w.png) 标注数据一直都是人工智能领域的一大难题,diffgram的出现可以轻松的实现不同数据类型(图像、视频、三维、文本、地理、音频等)的标注。 #### 4. [unionml](https://github.com/unionai-oss/unionml) ` Python` `Star:167` UnionML是一个开源的MLOps框架,旨在减少构建模型并将其部署到生产过程中的困扰。 你可以通过定义一些核心方法来创建UnionML应用,这些方法会自动捆绑到ML微服务中,首先是模型训练和离线及在线预测。 UnionML建立在Flyte基础之上,为生成自己的ML模型提供了一个高级接口,这样你就可以专注于准备一个更好的数据集并改进模型,它能够让构建和部署机器学习微服务变得更加简单。 #### 5. [milvus](https://github.com/milvus-io/milvus) ` Go` `Star:11.3k` Milvus是一个开源的矢量数据库,为嵌入相似度搜索和人工智能应用提供支撑。 它具有如下特点: - 对万亿级矢量数据集进行毫秒级搜索 - 简化的非结构化数据管理 - 可靠的、永远在线的矢量数据库 - 高度的可扩展性 - 混合搜索 - 统一的Lambda结构 #### 6. [mani](https://github.com/alajmo/mani) ` Go` `Star:284` ![e8NPG.gif](https://pic1.zhimg.com/80/v2-d48ad199e5f0a837bac1f3e05de73668_720w.gif) `mani`是一个CLI工具,可以帮助你管理多个代码仓库。 当你在处理微服务、多项目系统、许多库或一堆库,并希望有一个中心位置来拉动所有仓库并对它们运行命令时,它很有用。 你可以在一个配置文件中指定仓库和命令,然后在所有或部分仓库上运行命令。 #### 7. [moose](https://github.com/idaholab/moose) ` C++` `Star:958` MOOSE是一个有限元、多物理场景的框架,由爱达荷国家实验室开发。 它为一些复杂的非线性求解器技术提供了一个高级接口,它提供了如下能力: - 自动并行 - 模块化开发简化了代码的重复使用 - 内置网格适应性 - 直观的平行多尺度求解 - 灵活、可插拔的图形用户界面 #### 8. [zero-ui](https://github.com/dec0dOS/zero-ui) ` JavaScript` `Star:375` ZeroUI - ZeroTier Controller Web UI - 是一个用于自我托管的ZeroTier网络控制器的Web用户界面。 这个项目受到ztncui的高度启发,是为了解决目前应用自我托管网络控制器的限制而开发的。由于项目的核心架构,一些ztncui的问题不能被修复。 ZeroUI的功能更完整,它拥有几乎所有网络控制器支持的功能。 此外,它还可以在广泛的平台上使用。 #### 9. [markdoc](https://github.com/markdoc/markdoc) ` JavaScript` `Star:4.8k` ![e8e91.png](https://pic1.zhimg.com/80/v2-f497e7586a2672011975808a36419acd_720w.png) 一个强大、灵活、基于Markdown的创作框架。 Markdoc基于Markdown的语法和工具链,可以用于创建自定义文档网站和体验。 #### 10. [fclones](https://github.com/pkolaczk/fclones) ` Rust` `Star:878` fclones是一款高效的重复文件查找和清除程序。 fclones是一个命令行工具,可以识别相同的文件及文件夹,并对清理过程进行清晰的标记,不仅能够清理出大量硬盘空间,还可以保障数据安全。 fclones可以在各种操作系统上使用,但在Linux上效果最好。 ## 资源工具 #### 1. [Cli2Cloud](https://cli2cloud.com/) ![e8ATI.png](https://pica.zhimg.com/80/v2-9c048fa631e215dbeefe02c6098aa4b1_720w.png) 一款可以实时监控并与任何地方的人分享你的终端输出的工具。 #### 2. [CodeEdit](https://github.com/CodeEditApp/CodeEdit) ![e8KvD.png](https://pic4.zhimg.com/80/v2-e7c41046b734d784cea73fd5e319e88d_720w.png) CodeEdit是一个由社区创建的开源代码编辑器,完全为macOS编写。 它的功能包括语法高亮、代码完成、项目查找和替换、片段、终端、任务运行、调试、git集成、代码审查、扩展等。 #### 3. [LogFX](https://renatoathaydes.github.io/LogFX/index.html) ![e8yO6.png](https://pic2.zhimg.com/80/v2-e59c24dd64cb615aec19a20128fe7b42_720w.png) 一个漂亮的日志查看器,能够处理非常大的文件。 LogFX是一个多平台、免费和开源的日志查看器,旨在处理非常大的文件而不影响性能。 #### 4. [SpeedSheet](https://speedsheet.io/) ![e8ZdF.webp](https://pic1.zhimg.com/80/v2-4569f9cdb2a505a6f28405eef686b448_720w.gif) 这是一个交互式Python资料库,涵盖了核心的Python编程语言。 通过使用搜索可以立即得到答案,包含Python、NumPy、Jinja等。 #### 5. [infer](https://github.com/facebook/infer) 一个用于Java、C、C++和Objective-C的静态分析工具。 ## 技术文章 #### 1. [受欢迎的编码练习网站](https://www.freecodecamp.org/news/the-most-popular-coding-challenge-websites/) 如果你想提高你的分析能力,仅仅通过视频或者书本学习是远远不够的,我们还需要在解决问题中实战锻炼。 这篇文章就给大家提供了一些比较受欢迎的编码练习网站,其中就包括Codeforces、LeetCode、Kaggle、Codewars等一些比较有名气的网站。 #### 2. [为什么不能使用If-Else?](https://thaitran.hashnode.dev/how-to-code-like-a-pro-in-2022-and-avoid-if-else) 如果学习一门编程语言,我们都会知道`if...else...`、`for`循环等基本语法。 作为一个初学者,我们可以按照书本上一板一眼的学习和使用。 但是,如果要成为高阶程序员,就需要不断考虑怎么更加高效的应用编程语言。 使用`if...else...`是我们在大学里学到的编程基础知识之一,刚开始接触编程经常会用到。但是,许多高级开发人员都认为`if...else...`存在很多问题,而且我们在开发中也要尽量避免过度依赖`if...else...`。 这篇文章就介绍初级、中级、高级程序员如何应对程序中一些类似的问题。