DevWeekly/weekly/2022-07-15-weekly.md

255 lines
8.8 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.

> **高考志愿**、**考研保研**、**副业赚钱**、**职业规划**、**简历优化**,微信欢迎加入[《猴哥成长营》](https://www.yuque.com/jackpop/ulig5a/srnochggbsa2eltw?singleDoc#)
<p align="center">
<img src="https://s11.ax1x.com/2023/12/23/pi7qxU0.md.jpg" height="400"></img>
</p>
**DevWeekly**收集整理每周优质开发者内容,包括**开源项目**、**工具资源**、**技术文章**等方面。
每周五定期发布,同步更新到<a href="https://www.zhihu.com/people/sharetechlee/activities">
知乎Jackpop</a><a href="https://mp.weixin.qq.com/s/hTZAGgkiMS0XPZ9OHQxFJg" rel="nofollow">公众号:平凡而诗意</a>
欢迎大家投稿,**[提交issue](https://github.com/Jackpopc/DevWeekly/issues)**,推荐或者自荐开源项目/资源/工具/文章~
**订阅方式**
1. **Star**并收藏项目[DevWeekly](https://github.com/Jackpopc/DevWeekly)
2. 关注<a href="https://www.zhihu.com/people/sharetechlee/activities">
知乎Jackpop</a>
3. 关注并星标<a href="https://mp.weixin.qq.com/s/hTZAGgkiMS0XPZ9OHQxFJg" rel="nofollow">公众号:平凡而诗意</a>
进阶技术,优质资源,实用工具,欢迎关注公众号**平凡而诗意**
<p align="center">
<img src="https://s1.ax1x.com/2022/07/10/jsCAdH.jpg" width="260" height="260"></img>
</p>
## 开源项目
#### 1. [pikepdf](https://github.com/pikepdf/pikepdf)
`Python` `Star:1.4k`
pikepdf是一个用于读取和写入PDF文件的Python库。
它基于QPDF而QPDF则是一个强大的PDF操作和修复库。
这个库类似于PyPDF2和pdfrw但是相对于后两者它提供更丰富的PDF操作功能并允许对现有的PDF进行编辑和内容转换。
它具有很多优秀的特性,例如:
- 编辑和转换PDF
- 与Jupyter和IPython笔记本集成实现快速开发
- PDF加解密
- 支持从1.1到1.7全部版本的PDF文档
- 修改PDF/A而不破坏PDF/A的合规性
- 自动修复有内部错误的PDF文件
#### 2. [towhee](https://github.com/towhee-io/towhee)
`Python` `Star:721`
Towhee是一个灵活的、面向应用的框架通过ML模型和其他操作的工作流来生成嵌入向量。
它的目的是使`x2vec`更加便捷、易用,从初级开发人员到大型组织--只需几行代码就能生成dense embedding。
为了实现这一目标,它为各种任务提供预构建的工作流,包括音频/音乐嵌入、图像嵌入、人物识别等等。
#### 3. [ga-extractor](https://github.com/MartinHeinz/ga-extractor)
`Python` `Star:31`
ga-extractor是一个CLI工具它能够通过使用谷歌报告API提取谷歌分析数据也可用于将数据转换为适合迁移到其他分析平台的各种格式。
#### 4. [envelope](https://github.com/CZ-NIC/envelope)
`Python` `Star:146`
如何通过Python代码实现自动发送邮件如果通过代码添加附加信息或者附件
envelope只需要一行代码就可以实现在发送电子邮件/签名/加密内容的过程中添加一个信息和附件。
插入一个信息和附件,并通过单行发送电子邮件/签名/加密内容。
它在python-gnupg、M2Crypto、smtplib、magic和电子邮件处理包的基础上进行了一层包装他们的多个功能被合并到一个单一的函数中。
下面是一段示例代码:
```python
Envelope("my message")
.subject("hello world")
.to("example@example.com")
.attach(file_contents, name="attached-file.txt")
.smtp("localhost", 587, "user", "pass", "starttls")
.signature()
.send()
```
#### 5. [FairEmail](https://github.com/M66B/FairEmail)
`Java` `Star:942`
一款功能齐全、开放源代码、注重隐私的安卓电子邮件应用程序
FairEmail很容易设置并且可以与几乎所有的电子邮件系统兼容使用包括Gmail、Outlook和Yahoo!
但是它更加注重隐私如果你想自己开发一款更加注重隐私的电子邮件APPFairEmail非常有用。
它具有如下特性:
- 功能齐全
- 100开放源代码
- 以隐私为导向
- 无限账户
- 无限的电子邮件地址
- 统一收件箱(可选择账户或文件夹)
- 双向同步
- 推送通知
- 离线存储和操作
- 流量消耗量低
- 小巧(~25 MB)
- 简洁
#### 6. [Camera](https://github.com/GrapheneOS/Camera)
`Java` `Star:361`
Camera是一款注重隐私和安全的现代相机APP可扫描QR和条形码
它新版的GrapheneOS相机应用基于Android的CameraX库。
#### 7. [dns.toys](https://github.com/knadh/dns.toys)
`Go` `Star:1.8k`
一个DNS服务器通过DNS协议提供有用的工具和服务。
例如,天气、世界时间、单位转换等
它提供方便的实用程序和服务,可以通过命令行轻松访问。
下面是一些示例命令:
```shell
dig help @dns.toys
dig mumbai.time @dns.toys
dig newyork.weather @dns.toys
dig 42km-mi.unit @dns.toys
dig 100USD-INR.fx @dns.toys
dig ip @dns.toys
dig 987654321.words @dns.toys
dig pi @dns.toys
dig 100dec-hex.base @dns.toys
```
#### 8. [vrperfkit](https://github.com/fholger/vrperfkit)
`C` `Star:513`
一款VR性能工具箱面向性能的VR游戏mods集合。
包括mods
- 升级技术(在较低的分辨率下渲染并升级到目标分辨率)
- AMD FidelityFX超级分辨率
- 英伟达图像缩放
- AMD 对比度自适应锐化
- 固定凹陷渲染
- 可变速率着色
除此之外它还支持Oculus、OpenVR这些VR运行环境和Direct3D 11图形API。
#### 9. [Hacker-Typer](https://github.com/duiker101/Hacker-Typer)
`JavaScript` `Star:672`
Hacker-Typer是一个简单的网页端小工具模拟黑客打字看上去很炫酷的感觉。
你可以打开页面随意敲击键盘,它会生成一段很酷的代码。
![ei8Dc.png](https://pic4.zhimg.com/80/v2-1ccfb0a0a2bdb6fd2c6b8dc74f5e1f8d_720w.png?source=d16d100b)
#### 10. [ceresdb](https://github.com/CeresDB/ceresdb)
`Rust` `Star:1.3k`
CeresDB 是一款高性能、分布式、Schema-less 的云原生时序数据库能够同时处理时序型time-series以及分析型analytics负载。
## 工具资源
#### 1. [RegExr](https://regexr.com/)
RegExr是一个基于HTML/JS的工具用于创建、测试和学习正则表达式。
![eiX8r.png](https://pic1.zhimg.com/80/v2-f57a0dfdcfcb6d9eb3936d57ac340319_720w.png?source=d16d100b)
#### 2. [BrainIDE](https://github.com/LovetheFrogs/BrainIDE)
BrainIDE旨在提供一个易于使用、轻量级和用户友好的IDE。
它全部使用python和tkinter进行GUI设计和编码。
这款软件的主要目的是在不需要互联网连接的情况下,在旅途中进行头脑风暴式的编码。
![eiIxM.png](https://pic2.zhimg.com/80/v2-d958393317c7aaf7bd82f6335afdedc1_720w.png?source=d16d100b)
#### 3. [Geany](https://www.geany.org/)
Geany是一个小而轻的集成开发环境。它的开发是为了提供一个小而快的集成开发环境它只需要依赖其他软件包。
另一个目标是尽可能地独立于像KDE或GNOME这样的特殊桌面环境。
所以, 它只使用 GTK+ 工具包,因此你只需要 GTK+ 运行库来运行 Geany。
![ei3pG.png](https://pic4.zhimg.com/80/v2-b897c6c1458d519be5b4e23d0784a58c_720w.png?source=d16d100b)
#### 4. [Lorien](https://github.com/mbrlabs/Lorien)
Lorien是一个画布/绘画/笔记应用程序,专注于性能、小型保存文件和简单性。
它不像Krita、Gimp或Photoshop那样基于位图图像而是将笔触保存为一个点的集合并在运行时渲染它们有点像SVG
它主要被设计成一个数字笔记本和头脑风暴工具。
![eiCf1.png](https://pic3.zhimg.com/80/v2-f081f16ca73c93f3415448f8fa21d93d_720w.png?source=d16d100b)
#### 5. [Shortcut](https://shotcut.org/)
Shortcut是一款免费、跨平台、开源的视频编辑工具。
![enM5I.png](https://picx.zhimg.com/80/v2-5d6c0ea48c50ece6450ad1f63d663c74_720w.png?source=d16d100b)
## 技术文章
#### 1. [什么是时间复杂度?](https://mudit.hashnode.dev/what-is-time-complexity)
做软件开发过程中,时间复杂度、空间复杂度经常用来对数据结构和算法进行复杂度分析。
在计算机科学中,如何找出哪个算法或数据结构更有效或更快?我们怎样才能比较两种算法或数据结构?
我们可以通过时间复杂度来比较给定的算法:更快地完成给定任务的算法是更好的。
这篇文章则详细的阐述了什么是时间复杂度?以及如何理解时间复杂度?
#### 2. [怎么在VS Code中运行C++](https://pranavgoel.hashnode.dev/cpp-in-vscode)
如果你从事Python开发选择解释器、IDE、配置环境是一项非常简单的工作你只需要安装Python就可以了。
但是当处理C++时这件时间就变得复杂多了因为它需要一个编译器有许多C++编译器可用。
这篇文章以使用MinGW为基础分享一些很不错的工具这些工具将使程序的运行过程更加容易。