8 I$ }3 a, o! c' J ) u' u: G3 b7 _
DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 8 f4 \) N* Y: D2 \& t) R3 o
6 ^ l* J% i( w9 W( P" w
9 ]$ Y1 y) H1 J; R! _' D
每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。
( V- Y: t6 V8 E4 F 2 W" r R0 H2 `/ i! ~
* F- x- @! G: L( e' S
欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~ ! D2 q! s( M F2 N. e7 q6 t5 |
[. z0 r w. {6 ]- |
- Q9 b" l) [( q A1 j/ O 订阅方式:
6 Z/ W) l/ L! t) z7 ~7 ]
# h1 F8 }1 c* b3 y+ s# N . ^# }' g6 f" j+ w0 D) P) N- I
Star并收藏项目DevWeekly 1 p% n* I8 N x( P) J& t# s: h
关注知乎:Jackpop , Q( Y8 Y$ \/ ]( u4 j8 c9 k4 B- f, @
关注并星标公众号:平凡而诗意
$ Q5 I2 Y8 g' f8 T
0 f& O) U9 H) T" q2 h6 T
( M. t! t- d; p6 }2 E$ ^6 J: u/ r 进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意! ) u8 b5 Z4 ]+ F# h8 F; n
$ K1 x7 V8 v/ P
' }3 a" p8 q4 g
开源项目9 p6 H! L8 \5 j& f8 r6 W2 l N
" g1 L4 R1 ]. K, B
/ v3 Z! H( o4 H/ | E2 T 1. jetfuel0 Y% [7 ]7 [% f% Y9 o
, p1 q) X: @: R
2 Q" ~+ f8 I" x: B% f4 k! A PythonStar:104 : V+ _! g! k; s, t/ s
7 Q7 d% s0 n" O; \3 m3 W
) T/ c! |+ \4 \# B3 O3 R% f
0 L. d6 u& D8 ~% s b3 o0 ^; Y
+ H" W* R1 o, h |. e, ?( h; T! e
) y0 R# r' ?5 X- P Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。 # `8 X) Q6 C! |: T# j
' G& ?$ d) B& w" T- @
' A* {5 f9 R$ G9 X1 N2 J0 f, x 2. LovelyPlots$ b- r4 a7 ]/ c) w! {7 S/ j9 u
/ u F- D* r. Z
3 U2 ~8 w% \' u1 h0 V
PythonStar:560 ! x9 Q$ \7 d; h! M* k5 y
* N- S3 Y* t! {2 X* ~
9 r: [8 P6 f0 y* p* r
' M9 k, P; _9 y: B' A( h. y, r
% m1 b; n. x6 ?
" R) ?+ x b/ {$ h/ {4 i LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 ]6 h2 u- j/ H ]
o$ ?- o! b# _
& W8 S; q$ b p: L2 W
此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。
" o* }! p+ X0 D2 G9 M
/ C3 }6 o0 q" X: B6 [ N+ B
% ~& p( ^! P1 k% ]! ]. ^ 3. tsuki
% U M- {/ x& K) E( @7 V. F( D+ S, N
( o/ i5 c5 x7 L% i9 X. m3 H 6 X# k' p% s* C- b
PythonStar:58
/ H4 ?- S C+ J0 S1 H 7 I2 h1 y5 }% T
" u/ M C, Y) G# }6 J2 g/ w% ?# w9 ^
Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。
4 z0 ~2 G# u7 L' Z. K3 i # l7 L+ `' y3 s/ Y' x9 l8 Q% J
$ v: u" I/ B0 ?6 P4 A, Z 4. Xtra/ r, c' ]! _3 Q( }- t5 D
4 c- t4 j$ {# _ @3 d4 y: E3 c
; K: a6 ^9 k7 U. H) j7 f KotlinStar:350
; ^% K$ U" H7 `% }& k
" y. V! e$ m. ]
- Y# x x' H+ C$ g( I Xtra是一款适用于安卓的Twitch播放器和浏览器。
+ i& u( W) q$ _9 J( |- l. h O! p7 o/ G: y
; J- Q5 g% n4 w
5. sbctl1 N K4 g% S8 z, S9 Z2 z/ Z8 l3 F0 }6 v
, s9 e$ w8 P; A u4 S0 u0 @ 3 D% \1 X) t/ \( o D- f# p
GoStar:555
' u) O. h" u, w$ W
& U6 y% h. Y; t* w" {4 w+ H
4 Q H) r5 \& H$ f- J! c ^ ) k: p& l0 w- L6 a. P
: T: l2 |8 `3 ^( M4 a8 B
( ~6 @8 n1 K3 p5 k7 A& Y
sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。
$ D: C# {! M9 x; D% S' q% g # }9 k0 D; \, o' @3 Z$ ?0 N
0 w3 b: ~( \/ K( n I0 F
6. cli. t$ W+ a1 O: G' w. l$ L4 h! {
6 x* _4 F6 F$ p& [. ^
) g6 L4 a S. O8 N$ d5 V* @6 R GoStar:983
' Q0 o, L% V2 y7 `1 W 1 h& q% f- C: ?! z* [. G, V
- G5 x1 [4 J5 b, e4 J
用于 IPinfo API 的官方命令行工具。
( l, m$ o8 m5 a2 ?
8 G; n: D" e) l2 v" ]
1 f) I+ w7 |0 i7 `3 C$ `9 Y 7. thisisthewall
$ O+ {$ d* ^" H/ G
" N7 a# s I' f2 w# }& U) A
/ {+ r, s" _# i$ d JavaScriptStar:14
. U0 }( `, l$ D + W' T9 v8 }! g: s' ]
. r! ?1 G: r6 u- D k& N
使用此API,你可以在任何设备的屏幕上获取壁纸的图片。 Q' [3 E* h& E7 i/ S& ^
; `6 f! N2 K9 H; ~
; k/ r# }; g5 K: R/ t' C5 o
8. magic-regexp
6 ~+ o. [. C/ z
1 D( N8 i) `- Z' D, D, f% W- c
`; i- N/ n' s TypeScriptStar:1.4k
0 N% j: b5 ?+ e7 ]! ^3 A0 n7 V+ G
* W8 K3 j6 r6 _! R! ` 5 H7 s; M7 i' u; q# m
一种经过编译、类型安全、可读的正则表达式替代方案。
8 ^7 {: F1 s- z! ]4 W8 e' P
" `# u( H9 G" o
1 @! ~* `! T9 n9 U3 z0 d 9. frawk% K; W! s% s% c' n
0 [( a7 f- f0 Y: D A! y
: Q3 `3 b9 M4 H* h- Y9 r. h
RustStar:1k
+ a/ W( d6 } Z. X* Z# [ ' I3 f! {: f) |# h' m
, G% b9 s0 S8 l1 h frawk是一种小型编程语言,用于编写处理文本数据的短程序。 ( z( t2 p" g8 I5 Q/ R# j- ~
2 t0 i8 t9 B* J
* R2 P* E" g8 Z' I- i 它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。
+ i6 ~9 g7 r5 `" x; @0 K, ]* r ) o) M* A; i6 N9 d( u5 M; Z% b4 m
% ^. q& ~' T7 s0 S0 l2 ]% s# T8 t6 n 10. Vale
3 |. s7 ~( x- a $ j& T8 K% U0 D6 @) v6 s/ e8 k
' l* @( L( p% { ScalaStar:1k
% _ e! ?5 x# E' L0 B
8 n. C- W: n' c. P0 r+ H0 K4 s w 2 C# ~# z0 D4 z d
Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。 7 T; N+ R! ]& j/ \/ }4 N& f& |% J9 V, f
) l2 u1 ?' _+ Y3 n ( T8 E/ m3 P/ z6 l; X- _
资源工具2 A# b+ [) O8 Z7 v: P
. U5 }" U# ~; c* @6 [
0 f4 M, O! M- {
1. GitExplorer" d+ U0 H! [9 }. A( }
$ u' Z' u* [, D' ^! m Y
" m+ O/ L3 r) N9 M. K ) b, s3 {( n* M% H4 x1 v! a1 b* }- T) p
" A. N% l: s+ R# a
" o: D9 Y/ c! T' }' S8 V 一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。
7 G! P% L s- @7 [
4 Q" O; _" V* Y" p, y, |: M4 | , S. m2 o+ t8 M9 x9 r, W
2. Bookworm
& s5 |4 j, P, M& j/ \( M' p
# P& V1 t3 O: Q @4 b3 ] % k& {. e, Z3 i& |! ?) @4 l
, e8 t9 ?* h/ H% d2 C
0 i/ g% Q0 d% P0 `4 R , N' u( M5 r+ Q$ D5 X, z( [; T
适用于 Linux 的简单而功能丰富的电子书阅读器 . ^% A7 \5 V. j7 b" L
2 U& Y7 d+ p( v" _8 ^# E
1 t% |. `- v. ^0 n7 `, C% e& H' y 3. gitlogs7 N% m/ ]6 H" i) y
2 H9 i; _0 X) I . }% T# d# F# b; s# S* ~; W
能够及时准确的发现最新优秀的Github项目。 0 Q# H k2 E' l8 i
( @. p9 u6 W( q' v: y
( O8 p" k- M& N+ S6 [ 4. readme.so# r% ?% P u O5 q& I$ k8 [5 h* C
, v$ r P% f; {, Z0 c3 @
# e9 k) i1 w" K6 [9 m
1 [ K3 \( }2 O' }4 O v& V
) b# w. H* [ e" `% M2 g% s : _8 X, c- @# Z; }3 s# x& ]
readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美?
' K+ A3 u2 m4 k6 k2 S4 U& A 2 G1 x- T) Q, T; A( v! p) {; X% R/ @
6 l4 q* ~) f% U* t 这款项目就可以通过简单的选择快速生成美观的readme。 , |8 L! ]) J* I3 b
% u% l) S6 m3 v$ @7 l # v b3 z/ Q+ u6 ~" [1 {( A
5. learngitbranching% \$ z$ G2 J# x+ T$ \
u6 u6 e: v3 R 3 v9 y& Z% J' @! |6 a
0 R2 M# [6 l7 D# c N4 _& W1 p7 h+ d$ ]& S% d; \
1 y6 r: D: @- N& [8 X- h9 a l 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。
, S' m- W7 _3 A8 i: W# a* S 1 S5 B: e% Y) p. A3 T
* o. d/ G5 J3 |/ c7 E! w
技术文章/ ^0 _" _4 X3 [0 A
6 W& W% } M. _9 o( R' u" N6 U 2 v d/ y1 X( D2 y2 s, O& M6 s
1. 了解Linux路由
+ y7 }; x- F6 I% r0 ?' X 4 O- B" z4 _/ R
- h* N" b8 z. j 过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。 ' R z4 k$ {* x- M, _ m; f* V _& V
, K: A& g8 d/ `. [$ H
- @' H/ ]- \6 o2 f& C
现在情况已不再如此。 % Q4 G& |& m. @1 A
) Y0 b e" B+ D4 U. o& f$ o- `
) o9 F R; ]% K- L7 o6 C. ~ 例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。
' p" s( M& ^; C0 ^) h$ m ; l0 K5 V& `' L+ ~. w
7 |0 Q% E6 e- c; I. P) w* u5 ?. H
默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。 7 {: y: k! c9 ~; x$ w- s* O
, ~% |8 ]8 w2 z6 P3 S* l1 M3 _
; z: S! u# U; Y) Y
通过这篇文章就来了解一下Linux路由是如何工作的。 ) f% |" c! z, P
% q- N# @9 v& M, W: i. l+ A) B- B0 `2 T
( w; s4 h0 k i: Z1 [3 Y! S( i
2. 一个专业程序员的10年9 L% b) Z M' J6 N
) V% ]$ k2 u5 y6 f: z1 ]
3 h( G* v( k. U1 } 10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。 # @* s: @7 Z5 @( c) P' U1 y1 o
% o: c+ J. v0 ]
. c& ?9 a' f, r) D 作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。 3 t( C+ a, R1 O) s9 b
5 {1 Y4 ]: e2 D7 V7 B0 v
9 J x9 C% G+ f1 u8 F# s 举报/反馈 , P2 b2 Y6 v5 `( }; O
7 }) i U A) L
* l) w* C) E+ s' |
, M, D- Z+ e! {, t1 T$ V$ c. ?! q. {3 p/ x
+ O4 K3 X m# K" g4 N. I5 S
|