255 lines
8.8 KiB
Markdown
255 lines
8.8 KiB
Markdown
> **高考志愿**、**考研保研**、**副业赚钱**、**职业规划**、**简历优化**,微信欢迎加入[《猴哥成长营》](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!
|
||
|
||
但是,它更加注重隐私,如果你想自己开发一款更加注重隐私的电子邮件APP,FairEmail非常有用。
|
||
|
||
|
||
它具有如下特性:
|
||
|
||
- 功能齐全
|
||
- 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为基础,分享一些很不错的工具,这些工具将使程序的运行过程更加容易。
|
||
|
||
|
||
|
||
|
||
|