268 lines
11 KiB
Markdown
268 lines
11 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. [dot](https://github.com/sensity-ai/dot)
|
||
|
||
` Python` `Star:2.6k`
|
||
|
||
dot(Deepfake Offensive Toolkit)是一款将deepfakes实时的、可控制的应用于在线视频的工具。
|
||
|
||
那么,deepfakes是什么?
|
||
|
||
简单的翻译过来就是深度伪造,换句话说,它是通过人工智能技术,能够将目标对象的面部特征嫁接到被模仿的对象上,给目标对象进行换脸。
|
||
|
||
#### 2. [codecat](https://github.com/CoolerVoid/codecat)
|
||
|
||
` Python` `Star:241`
|
||
|
||
![e9bCX.png](https://pic1.zhimg.com/80/v2-369270f258a3f7b53aafaa54a3ccf2ed_720w.png)
|
||
|
||
CodeCat是一款可以帮助你使用静态代码分析功能找到/追踪用户输入和安全漏洞的开源工具,这对于代码开发中的安全控制非常有价值。
|
||
|
||
目前它适用于C、C++、GO、Python、javascript、Swift、PHP、Ruby、ASP、Kotlin、Dart和Java。
|
||
|
||
总结一下,它具有如下特性:
|
||
|
||
- 按照Regex的自定义规则进行递归代码搜索
|
||
- 代码视图中的语法高亮
|
||
- 管理规则的系统
|
||
- 控制用户的资源
|
||
- 按照IP地址的允许列表控制HTTP访问的资源
|
||
- 遵循OWASP安全实践的应用
|
||
|
||
#### 3. [OCRmyPDF](https://github.com/ocrmypdf/OCRmyPDF)
|
||
|
||
` Python` `Star:6.8k`
|
||
|
||
PDF有很多不同类型,直接通过word等格式转换的可以直接复制粘贴,操作比较简单。但是,扫描版的PDF则比较麻烦。
|
||
|
||
OCRmyPDF为扫描的PDF文件添加OCR文本层,使其能够被搜索或复制粘贴。
|
||
|
||
它具有如下特性:
|
||
|
||
- 基于普通的PDF生成一个可搜索的PDF/A文件
|
||
- 将OCR文本准确地放在图像下面,以方便复制/粘贴
|
||
- 保持原始嵌入图像的准确分辨率
|
||
- 优化PDF图像,生成的文件通常比输入文件小
|
||
- 使用Tesseract OCR引擎,支持识别100多种语言
|
||
- 能处理数千页的文件
|
||
|
||
#### 4. [data-diff](https://github.com/datafold/data-diff)
|
||
|
||
` Python` `Star:1.3k`
|
||
|
||
data-diff是一个命令行工具和Python库,能够用于对比两个不同数据库的差异。
|
||
|
||
目前,它已经在多种不同类型的数据库上进行过验证,而且对于对比结果可以通过CLI/API的形式来创建监控和告警,能够兼容不同的字段类型。速度也非常快,10s内能够验证25M+行数据。
|
||
|
||
data-diff将表分割成更小的片段,然后在两个数据库中对每个片段进行校验。当一个段的校验和不相等时,它将进一步把这个段分成更小的段,对这些段进行校验,直到它得到不同的行。
|
||
|
||
#### 5. [cfg4j](https://github.com/cfg4j/cfg4j)
|
||
|
||
` Java` `Star:541`
|
||
|
||
现代配置库,用于用Java编写的分布式应用。
|
||
|
||
cfg4j,也就是configuration for Java,一种开源的配置库,可以用于Java开发的分布式应用。
|
||
|
||
它具有如下特性:
|
||
|
||
- 自动重新加载配置
|
||
- 强大的配置机制(接口绑定,多源支持与回退策略,合并等等)。
|
||
- 分布式环境友好(缓存,支持多种环境[测试,预开发,生产],......)
|
||
- 读取配置:Consul、Git repos(YAML和/或属性)、文件、Classpath, ...
|
||
- 与DI容器无缝集成:Spring、Guice等
|
||
- 与Metrics库的集成来展示性能指标
|
||
- 经过大量的测试(99%的代码覆盖率)
|
||
- 完善的文档
|
||
|
||
#### 6. [Decompiler](https://github.com/shotav/Decompiler)
|
||
|
||
` Kotlin` `Star:58`
|
||
|
||
![e91YY.png](https://pic1.zhimg.com/80/v2-3b7877d5fd09a9f594e528b26ea751a6_720w.png)
|
||
|
||
一款开源免费的Java反编译GUI工具。
|
||
|
||
顾名思义,通过这款工具,我们可以对已经编译的Java jar包,可以反编译复杂的Java applets和二进制文件,产生准确的源代码。
|
||
|
||
#### 7. [scrutiny](https://github.com/AnalogJ/scrutiny)
|
||
|
||
` Go` `Star:1.5k`
|
||
|
||
![e9y81.png](https://pic1.zhimg.com/80/v2-0f0e22c90fbc6da4df25e697b9148c4d_720w.png)
|
||
|
||
用于智能S.M.A.R.T监控的 WebUI。
|
||
|
||
如果你运行的服务器有几个硬盘,你可能已经熟悉S.M.A.R.T和smartd守护程序。
|
||
|
||
smartd是一个监控许多ATA、IDE和SCSI-3硬盘中内置的自我监测、分析和报告技术(SMART)系统的守护进程。
|
||
|
||
SMART的目的是监测硬盘的可靠性和预测硬盘故障,并进行不同类型的硬盘自我测试。
|
||
|
||
Scrutiny是一个简单而集中的应用,有几个核心功能:
|
||
|
||
- Web UI仪表板
|
||
- smartd集成
|
||
- 自动侦测所有连接的硬盘
|
||
历史趋势的S.M.A.R.T指标跟踪
|
||
- 利用现实故障率定制阈值
|
||
- 温度跟踪
|
||
|
||
#### 8. [sake](https://github.com/alajmo/sake)
|
||
|
||
` Go` `Star:435`
|
||
|
||
sake是一个用于本地和远程主机的命令运行工具。
|
||
|
||
你在 sake.yaml 配置文件中定义服务器和任务,然后在服务器上就可以运行任务。
|
||
|
||
sake有大量的功能:
|
||
|
||
- 任务、服务器和标签的自动完成
|
||
- 通过SSH进入服务器或docker容器
|
||
- 通过 sake list servers|tasks 列出服务器/任务
|
||
- 以表格格式展示任务输出 sake run <task> 结果
|
||
|
||
#### 9. [codewarrior](https://github.com/CoolerVoid/codewarrior)
|
||
|
||
` C` `Star:170`
|
||
|
||
一款开源的代码搜索工具和静态代码分析工具,它具有如下功能:
|
||
|
||
- 通过重合码模式搜索代码
|
||
- 自定义规则
|
||
- 带有网络套接字资源的HTTPd视图
|
||
- 递归扫描
|
||
- 通过编程语言突出显示语法
|
||
- 通过允许列表控制IP地址访问的资源
|
||
|
||
#### 10. [wayfire](https://github.com/WayfireWM/wayfire)
|
||
|
||
` C++` `Star:1.5k`
|
||
|
||
Wayfire是一个3D Wayland合成器,灵感来自于Compiz并基于wlroots。
|
||
|
||
它旨在创建一个可定制的、可扩展的和轻量级的环境,而不用以牺牲外观作为代价。
|
||
|
||
## 资源工具
|
||
|
||
#### 1. [Pomsky](https://pomsky-lang.org/)
|
||
|
||
Pomsky是一种可以编译成正则表达式的语言,它目前处于alpha阶段。
|
||
|
||
Pomsky可以通过CLI或Rust宏来使用。
|
||
|
||
一些例子:
|
||
|
||
```regexp
|
||
# String
|
||
'hello world' # hello world
|
||
|
||
# Greedy repetition
|
||
'hello'{1,5} # (?:hello){1,5}
|
||
'hello'* # (?:hello)*
|
||
'hello'+ # (?:hello)+
|
||
|
||
# Lazy repetition
|
||
'hello'{1,5} lazy # (?:hello){1,5}?
|
||
'hello'* lazy # (?:hello)*?
|
||
'hello'+ lazy # (?:hello)+?
|
||
|
||
# Alternation
|
||
'hello' | 'world' # hello|world
|
||
```
|
||
|
||
#### 2. [GameShell](https://github.com/phyver/GameShell)
|
||
|
||
一个学习如何使用Unix shell命令的游戏.
|
||
|
||
学习Unix shell是有一定成本的,GameShell被设计成一种工具,帮助学生接触到shell,通过游戏的方式在鼓励学习的同时也能获得乐趣。
|
||
|
||
![e9ppD.gif](https://pic4.zhimg.com/80/v2-72a96c217de5e9ba0abba41480e6dfa6_720w.gif)
|
||
|
||
#### 3. [Commands.dev](https://www.commands.dev/)
|
||
|
||
每个工程师都有过忘记终端命令的时候,因为它很少被使用,或者有难以理解的复杂参数。
|
||
|
||
当这种情况发生时,不得不在他们的终端命令历史中进行搜索,或者打开浏览器进行搜索。
|
||
|
||
Commands.dev就是要解决这个问题。
|
||
|
||
Commands.dev是一个开源的、可搜索的、从整个互联网上收集的流行终端命令的集合。你可以按类别(git、android、docker)查找命令,每个命令都会告诉你需要插入哪些参数。
|
||
|
||
![e9JfF.png](https://pic1.zhimg.com/80/v2-bd4a6538feadbb897600f22fa51f0c03_720w.png)
|
||
|
||
#### 4. [PyScript](https://pyscript.net/)
|
||
|
||
![e9R56.png](https://pic2.zhimg.com/80/v2-f881f25e1f56435dc0cfabac16e49b24_720w.png)
|
||
|
||
PyScript是一种可以在浏览器中运行的Python。
|
||
|
||
它是一个框架,允许用户使用HTML的界面和Pyodide、WASM等,在浏览器中创建丰富的Python应用程序。
|
||
|
||
PyScript框架为各种经验水平的用户提供了一种具有无数应用的、易于学习的编程语言。
|
||
|
||
#### 5. [Hedy](https://hedycode.com/hedy#story)
|
||
|
||
![e9tKP.png](https://pic3.zhimg.com/80/v2-2fd40aab22e8e9621da79c302cf05d1b_720w.png)
|
||
|
||
学习编程可能很困难,不是说编程本身很难,而是有很多规则你需要记住,就像你开始学习英语时一样。
|
||
|
||
同样地,你也需要大量的练习来学习编程。
|
||
|
||
Hedy则是一款渐进式的编程语言。这意味着,你不必一次就学会所有的规则,最初的几个级别没有那么多规则,所以你可以轻松地适应编程。
|
||
|
||
在每个级别中,都会增加新的规则,增加命令的数量,循序渐进的进行学习。
|
||
|
||
## 技术文章
|
||
|
||
#### 1. [用Java和Python进行数据统计和分析](https://dzone.com/articles/data-statistics-and-analysis-with-java-and-python)
|
||
|
||
提起数据统计与分析,很多同学第一印象想到的就是Python或者R。
|
||
|
||
其实,Java也是一款在数据领域应用非常广泛的编程语言,例如,Flink、hive等都对Java有很好的支持。
|
||
|
||
在这篇文章中,重点研究如何使用Java和Python对大量的表格数据进行简单的数据分析并计算一些统计数据。
|
||
|
||
在这里,可以看到如何在每个平台上进行数据分析的不同技术,比较它们如何扩展,以及应用并行计算来提高其性能的可能性。
|
||
|
||
#### 2. [重构代码的10个最佳实践](https://blog.thecode.xyz/10-best-practices-for-refactoring-code)
|
||
|
||
编写代码并不仅仅为了它能够正常执行并输出结果,还要考虑它的设计模式、扩展线、可读性等。
|
||
|
||
重构是在不改变其功能的情况下改进现有代码的设计的过程。
|
||
|
||
作为软件开发者,我们不断面临着改进和优化代码的需要。
|
||
|
||
无论是为了性能、可读性还是可维护性,重构代码都是一项基本技能。
|
||
|
||
在重构代码时,有许多不同的技术可以使用。
|
||
|
||
在这篇文章中,就给大家介绍了重构代码的10个最佳实践。
|