2 Z: Z& S- b7 w5 c) I + G2 [& J/ M, a3 C
DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 * y1 k6 i3 h+ g% G8 G
: w0 ?; J0 g. b. {& w7 J+ ~
7 Y# J+ Z4 Y+ t* v
每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。
6 i" `' F2 _% f7 o# b
% S; ~7 b6 x. F3 P9 h: u
) K/ [7 g }. A% Z 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~ / ?6 [7 E3 b% o1 V5 t5 \- B) `
2 _- z4 a: y- j& J7 R! @" |
0 S/ H3 `3 L, G8 C& @( Q
订阅方式:
, x1 ^, ~- k2 l: w, M( q * h* x1 }4 _$ T7 \
& y" M( ^. g5 \* H0 p
Star并收藏项目DevWeekly
p2 H( o; s" j7 U+ C 关注知乎:Jackpop & u- X \! v( u, \( `$ F6 p
关注并星标公众号:平凡而诗意
6 B' n: v$ A) O" U
5 Q+ z/ g( a" q3 P A5 Y# n
3 b1 P4 \* d: x+ t* l r 进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意!
0 _" r; L. c) @& u9 Y# i % T5 W2 {' X8 g& t) |
8 J( h: `. M: W1 R- s
开源项目
5 d8 g% }% G% x$ U8 k* y) g$ n
8 U6 L6 A# L0 o # \$ W9 \8 s* j2 y
1. jetfuel
! ?# X" O @ W. f
$ k! q. P: o* b
' r% ]& P5 N5 ^& U3 ]+ | PythonStar:104
' M! N! E* M) Q+ a: Z( I
I) J; e( j( ] j0 i: S: n/ a
t5 U. a3 f2 r
( R T( [8 S7 [! Z* o
4 y( b, o5 H/ N4 I( _2 p, {# ?1 O
: }& S6 T; q6 M Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。 + j- h" O3 l- ]6 q B" x
+ k1 y$ K: o* B% d$ E; `
" f0 G. F" }, o3 {/ v 2. LovelyPlots7 ^' d; V5 x1 f5 F
1 ]7 k! ?) D" o- D( ^& g
$ g. u( ?! ^& @. D2 |; n4 _ PythonStar:560
9 ?# m8 G3 e% i- h1 x P) N/ E* y- z/ m
3 S8 N1 J5 C. o. r6 j! t- W1 Q
6 K* H4 k. q- u+ H; ~# R % ^" |1 E7 a" m8 O3 P
- u1 j r, p! M2 I9 a LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 + V3 |- u6 A" B) [
t, w+ @( K9 U5 T6 e; W
5 L9 k& \, s0 s- W5 V 此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。 ; u, _0 l4 B# {$ N$ D% X4 E, |
7 v3 q) z3 [7 R ^2 y9 \7 u
2 `: p4 ]2 P* |) }, |1 w- z 3. tsuki# \' G# a3 M/ s% s& v/ W; U. G: {
7 s, a; L e" S
8 r: k( X" x9 j' K2 G PythonStar:58 ; c, @6 o. |' D/ Q0 F. o L& p
5 s0 u& c5 j- M1 M " b0 ?( l! ^- `. Q& v% I8 v- w
Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。
" H/ o: B G4 T- r( F ) |5 r5 K9 S0 b; }2 U1 j9 D
8 N+ x) ?0 Z7 s4 [& D1 q) O) ~- b
4. Xtra
! R/ S+ F0 u2 k# w2 v# B8 ^ 2 o/ ^) a7 E) Y+ ~
2 S* G+ C, N4 I& C4 q KotlinStar:350
& x. N2 ^! @) [! O7 l * Y" ^2 ^# s+ |6 N2 t* a9 E3 z
' b Q. c0 I' g3 p3 F
Xtra是一款适用于安卓的Twitch播放器和浏览器。
3 B/ H0 J$ y4 u! K7 U/ v$ e/ h 3 V" ]* P) K2 n4 G8 `
4 F1 z1 e$ i. L 5. sbctl
9 ` X+ C, h) Q4 f* a$ s7 [# a : t* [/ o+ {& w7 K) {% B
4 A7 l. k' z) u: a; ^7 b
GoStar:555
- ~4 H" O L1 A& N : M) {( ^. G6 H# q# Q) ]: Z
7 D5 y& e+ ~$ Z4 E5 ^& a- K0 e6 T
+ k5 W7 g: L$ s% c: ]# p. h9 z 6 g$ S Q* b" P0 g- W& R# q S- m
5 y- e# W* o! V' X
sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。
" T4 |4 J( b# L) T) A
& y/ V# I" y/ U# p% Q8 K : F: B8 m1 m( t' M7 p
6. cli
" U' ~& I8 ?0 d $ U, i' |7 w3 A' r
! ?3 Q9 |/ E6 b ?8 _4 g
GoStar:983
* Z( a9 p/ }' l9 u! r/ J
+ u' L k \0 V9 t! q& u , ^: j! H5 s' B N% K; a
用于 IPinfo API 的官方命令行工具。
' w/ \6 V9 B' r/ g 6 u: {1 L( g; F) a/ K1 Z
/ E8 z3 E9 U2 \" Y 7. thisisthewall5 g1 s( E3 X$ |( E# T
; _* _( ~ e: U4 ?% ?: p) L8 N
6 C. L) Z/ f5 O; a JavaScriptStar:14
F) y8 L! X+ j6 r 8 h( y. ^6 R/ A( m" J
5 S& s+ y) v0 G2 M; X" U$ }; v7 R 使用此API,你可以在任何设备的屏幕上获取壁纸的图片。
5 ] c! d' t7 m# A / q( Z3 Z, x" A+ Z" e
1 }4 j" e! n5 B9 D
8. magic-regexp! }: w$ }6 H# ^# O3 L. E
1 b |" N0 ~# r% d3 |, O. n( u
; c Z) z3 H& [4 q) y/ {* y
TypeScriptStar:1.4k # v3 @7 }+ `% I
9 H& S$ r8 X5 ^ D% X+ f & h& j9 z1 V. G9 Z1 u
一种经过编译、类型安全、可读的正则表达式替代方案。 1 y' l3 K& [0 q% M
$ x7 {$ j( O }+ G+ P# v
; `7 e, O& m2 t" w
9. frawk; g, X4 y1 X6 f2 _
+ B! ^6 U$ Y. \9 J; D# M& ~
; `! l: P9 S: u: _; ?, V
RustStar:1k 8 k$ k3 Z) U$ S7 F, U8 x: P
: \- g. @% @- y ' w Z+ \# |% t V8 g% H9 T% z
frawk是一种小型编程语言,用于编写处理文本数据的短程序。 * a6 V& p+ I- y& K( Z
7 N0 l' n8 f* T8 u
; E0 v8 t0 _ L2 o+ f
它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。
9 [8 d: x$ H S1 C
3 b6 \1 I; s. {7 U
( _% z9 i) v8 ^5 ~2 k% r& _ 10. Vale- d% ]5 z6 b; q" D1 u) a% z
6 ]5 Z1 B& W! O. o, l
" m3 Z3 Y7 {8 p( E4 u% a4 X* `# j9 D+ Q7 b ScalaStar:1k # B- R6 |) |; }6 `# ?, M
& B: C5 n# M( _) s$ P
: K% g' x& @, L6 Y5 h
Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。
9 u3 I( }/ Y+ k6 E( e
- C \5 V6 B2 \' ]! H9 R3 F& ^/ N 2 g) G- R: _3 S, O* z5 h
资源工具
/ X/ ]- ^7 I( B/ i% m
( |7 z$ X# s' z+ t' h+ A9 k
- N+ q# V2 l, I: f6 M; [ 1. GitExplorer
. Y' _) a% Q/ o9 G. l0 y1 Y
9 L& u, t: F& v h5 A' q
; Z7 H! c, B8 _1 W- c. C $ ]+ q- l8 L4 c: t
1 l5 p- F1 n$ I- O& x4 H: f$ b
j% {. [- h+ F) x- X$ O1 A 一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。
) l. y. P/ H) D; L+ C
5 G& m5 {9 `+ K" `9 ^
% J, k0 R$ B! F, V 2. Bookworm
7 S0 E( ~4 Y2 Y) c' t' e
5 y9 q- v; d0 ^- }- R! X! S " }' B+ [6 k. `1 O8 U
+ x/ B2 F* F8 Y4 F
0 p l V% g6 {0 n2 L
1 C4 h& C* b2 J, c9 h 适用于 Linux 的简单而功能丰富的电子书阅读器 1 s# D7 j% h8 ?( V4 J3 ~; X
4 @# ^/ W2 N1 m
7 P P* J2 S7 W: n0 a6 g0 O; }+ @- f2 f 3. gitlogs) s: ^% u4 T# X x$ O/ _
0 m/ G. S2 ]) M+ l; h3 b- U' j
- Q; R4 S5 U$ t! A8 z6 g 能够及时准确的发现最新优秀的Github项目。 8 a& N; s9 u D1 W) |! m
4 V, O. |3 E! ~1 o9 |$ t, l( W
/ h7 n8 _; e8 W$ Q0 B 4. readme.so
: l+ e' l2 p- Y5 e ) {( m% _: e0 Q: `
; u) O1 ~8 P& t% m. A g
, H, j5 l' _$ z; f/ o 3 Y4 A ~$ j' X- @. I( D Y
0 m$ \" }3 l* [& f. G readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美? y' u3 `* c" ~1 F& ~: G
4 C) t8 i. }8 z) n" b& Z5 r
0 V4 p0 O/ P6 G% V D 这款项目就可以通过简单的选择快速生成美观的readme。
8 r/ @7 C0 @3 Y7 f. R+ P
' j7 i# t& h3 ~8 v; ]& u% F
: E% J" C- k( J9 c7 k0 f7 _ 5. learngitbranching
t8 w1 o; R5 e" h 6 N# X3 f5 J' t; @8 n! J
2 L+ T0 u. `9 g4 {
/ ^/ z$ v3 A% [. j: @& c6 R ! t3 B# v8 J' H2 w; e
0 s( A( l$ r+ t- [% @+ e 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。 ) }/ k' S& m E2 A n
+ E, q6 A! T, t5 G$ @. [! w' B7 e9 C
1 B* g4 {6 {* l& Z 技术文章
$ L- c( \/ v, ?; j * C, z, j8 F0 K! } F- i
4 S+ U* P3 O0 m& s3 |# A! f) g 1. 了解Linux路由
2 X0 a0 E9 Z3 R9 j+ N- D1 m6 b
- K! v/ m! t9 `+ F0 a* N' w
6 y- C$ V6 o0 v 过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。
3 B. ^, b1 ]/ S' ~( T! T u
% {; H+ c3 b2 T% d# p, [9 D! b + z# ?7 p( c9 V, k
现在情况已不再如此。 ' r9 k7 K3 y/ t6 Y" L# `4 ^, j4 ~
; [1 H7 N q C7 G, u% ^ & y- x% z* \ \4 R
例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。
: T2 |* k- P9 w3 K + Z- y6 E1 ?+ C2 E2 D8 `
2 P0 h E* d. G( y: X' J 默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。
4 N' e2 X1 [1 l7 j* N# q* {
5 L; P7 t/ i" \5 I$ \9 d6 ?$ f& z
* S5 e: }: i% e' O; a" [4 _& ?+ m 通过这篇文章就来了解一下Linux路由是如何工作的。
o9 K0 L3 o& Q: z0 y3 M0 X1 s
, ~/ ^& Z: c7 R4 E. V- T
* ]; ]$ c5 |; O: D! H 2. 一个专业程序员的10年
3 K: p M0 b- w$ |+ L
8 y, d" w v" ` v4 {) `1 E $ I0 r- u- E2 H* W9 I
10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。
% r% M% Y8 T% A7 \- E7 c
0 y+ O: R# i# {% _8 T
# {7 w+ l5 c4 T/ t- y) g9 [ 作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。 ) g5 A% _. c' k; @( W
% r, X! o( v( M+ m' I6 z
' L3 {3 a& t- L3 f" Q% x% P9 \ 举报/反馈
' T W. p, I }: `, d' z, W
, r" D, z! B3 v" v3 B
% D. \" l i3 \% P
, p- @2 _, j$ v& M: H) L1 j* i6 ~( ? U2 \$ N% y9 m5 t$ `
/ y9 b& \2 d m
|