0 y5 E6 u" R- |6 W7 ]
/ t/ X2 Z" o' y: o {9 u/ m
DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。
1 G( G. D4 U/ ~ : V: X: s+ _: t: l' z0 N( f' x; g6 H
5 N0 d) Z% X0 V) b. v 每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。
; e/ ]; Z, L s/ W+ N ! M; g) V+ ~6 h" D |8 N; M* T
) j0 w/ j( o" J$ H2 j) V/ O3 h* M 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~ + i" G" l5 b+ I: x6 u
, f6 }/ g% a" p5 v
& Q. Y0 \: N2 K8 {9 c 订阅方式:
" V3 ^1 B" h; }5 U " y5 t g" t. Z8 j! s) H0 ?) X0 c \
) ?: v0 z* _% @* |" C
Star并收藏项目DevWeekly , Y, S6 l0 R' @1 J5 n3 }& N
关注知乎:Jackpop
) U" L( s- v) q+ c. I6 Y# Y7 v 关注并星标公众号:平凡而诗意
/ X* Q4 `4 ^8 f6 ~0 P- D, p; H: W
0 ]7 l' A. j" N2 b7 U) A6 P& h+ L1 X # ?5 ^+ H& q$ b4 R& V6 C
进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意! 8 R1 r1 m; {5 Y3 z- B: N
, P* n" r& X( r8 [1 T M8 W 8 o$ a, r6 }/ {# N+ j/ Q+ s
开源项目0 k4 t) f ^0 a) A3 e$ H3 Y; B
9 \" u' g0 v0 V5 B4 a
* i6 R: e$ A) R/ U6 s0 K. y9 h7 c9 I 1. jetfuel2 S7 L2 n P u! N
* _2 J' W* l% b: w# ?' N/ O' G* s
( U& @. ]9 l* E, y- p6 x) M! D5 m PythonStar:104 # o& {$ c- { B9 K0 ~
' L3 z( l+ l ?6 O
* E. Z% k3 E4 S2 A. o$ B6 y
# o3 M5 Z! O9 x' X* e0 ~ J) k/ u) M1 I, A! ^. m! p! L# n, F
7 ~" m7 E* r- v& Z# m
Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。
; i2 E9 H+ o6 R# R! R ! Q0 ]6 p2 X/ B& K3 `/ T3 j+ Y# a
0 |: B$ R7 v2 X" U
2. LovelyPlots* ^$ Q* p+ Y9 ?& M" {" e% k2 W
7 \3 T/ y. D% N6 O6 T/ a 6 g( J4 u" R1 X* G
PythonStar:560
+ I" W: |4 V; D0 y5 G# B5 l) u $ T( L: a0 q+ j8 F$ }5 ]7 r
! p; v* I% |+ d+ t9 J( l* Z
% I- s% v! R% P/ ^% F- V; s
/ F/ d. \' }$ B! [8 c& d
( e- q" s( Z+ o- S/ @% I LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。
7 x1 b: H+ G# b7 z6 H# I |" S
% |6 f- f# ]: J7 G+ c ! J+ r2 L F; ?) K7 M0 P S
此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。 , A3 Z& n# M) e% d# e
" R7 \; B. Y3 p" f. ^6 x2 X' K
5 Z8 n# B' ~. L$ w2 ?$ Z9 L 3. tsuki
. U& K% q6 l, y9 q
3 c7 o1 }( E# o( E- Q* O " k: G1 c/ X7 y- V
PythonStar:58
$ E) Q" s( u- F! x- Y# S
: v I& m& r! x9 Y/ O5 s/ W # t1 @& w/ L( C5 f! S% `
Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。 ! h4 P% a$ w: a% f T
; S2 _7 B8 ^3 W, d1 A
' S$ ^5 q8 e: f4 q: N7 H0 w" }
4. Xtra
$ R/ K$ c8 b! A: c5 p3 p : h: D3 Z1 q- H8 z/ \; W
' f& c. y3 H$ w( R
KotlinStar:350 , O [- S& A$ S6 i9 j
, T$ u5 ^; @4 _) K
5 ` N- s5 z- r. }9 K! V* A2 { Xtra是一款适用于安卓的Twitch播放器和浏览器。 8 v$ {5 I8 }: `6 Q) H
" K8 h6 ?. Z `) M( f/ p! I
/ n3 y% ?) \8 e: H7 v' X
5. sbctl
6 M) I* D" m) H! f) A. ?; H' [ ) D5 Q0 F9 Y1 {( X. x
; R: Z0 m3 ^) z; y4 Y GoStar:555
; e) F9 F' W7 W! ]% c2 a! g5 f " F" i3 p/ d$ }) D; M# Y4 Q
+ \) L! `5 E) }7 k( A 1 Y8 j2 ~# _$ I! r6 Q! l
. k9 t5 d+ ?- M/ n+ i6 h # y/ o3 W9 [9 C) x( ~5 j
sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。
5 Z# G' Q0 F; k# c" J
4 G2 U5 q: ~/ e! _2 @. _
# m, E. y& D9 B% n 6. cli: D+ P5 e- O# d
. {5 z* _. E( X. W8 z# O # X( S# ]# f# w/ T7 U: k2 X& `* ~
GoStar:983 Z# q: B1 {' ] C1 p
+ _; C. q9 O, Q2 Z5 m8 B, J
) h# l7 z# S" t# O4 n% p- K 用于 IPinfo API 的官方命令行工具。 ( E. e. K8 {4 Y8 ]9 u* Y: k% ]
0 M6 t) B/ R: I( C6 K
' e: U6 U. j) y" J
7. thisisthewall Y- C3 A3 {; ^+ c; Q6 d
) A+ X% C5 l5 h
& [5 L3 }/ ]- T6 ^3 \ JavaScriptStar:14
% y4 N. [; h0 s 1 g& v5 e; a+ `2 D$ W
( r3 [$ v8 h/ }1 y 使用此API,你可以在任何设备的屏幕上获取壁纸的图片。
' L$ k. v# B! q; W8 n1 e' P/ L# s 9 w! G- U6 D' ?! N& e
4 {4 ~/ d4 J3 G1 Z, V0 ?% ^ 8. magic-regexp6 E9 A5 n0 M8 M8 }5 M% k
1 e$ C7 |+ F, X4 Y
. V* M* {. a2 f4 x7 f1 j TypeScriptStar:1.4k . O% F1 `. \6 ?) T5 w
- K. N/ j% u. Y9 ^$ c3 V7 E$ K
( ~; \( I: k" X/ h5 m1 U
一种经过编译、类型安全、可读的正则表达式替代方案。 \! E7 n7 Y# L/ e% F# W0 ~9 r
1 o9 Z1 Y" }# r1 K" N2 F4 r
. ^, q3 ?8 B0 [" B( H 9. frawk
0 b+ Z( }' ~+ J, Q- z6 {) a2 }5 l
8 k* ^; @6 ~# b2 T/ p
" F; \+ @" _# l4 N# \/ }* l RustStar:1k
/ i9 o: J" |: H" _' H
6 Q7 ]' B4 x% ~+ k* q' \
/ o3 z: U4 h5 Y) C. R Y frawk是一种小型编程语言,用于编写处理文本数据的短程序。
; h9 r) `) Y) [( k: |0 N% _ + S) e+ d5 A; _+ z
& J; Y; c, q# i: T2 _) Z, c! `# ?- F/ C3 _ 它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。
1 w6 a ^* F/ K5 l# ^% ]3 @
; m* e$ P7 w: A7 I6 w/ @' O
4 U2 V9 [7 T/ e0 s 10. Vale
+ C: ?4 @: [- N& j 0 _, |/ e5 |# M
: p% b+ E- j* ^5 h9 i0 `/ T4 t! i$ ~ ScalaStar:1k
1 w0 C A3 G# Y' V0 e2 ^% s % [3 T, S8 ], v; L
" R& j& ]0 l* i9 t, h8 z- J; p
Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。 1 \$ J7 c3 X8 E: j
; u, K d* o0 A: K
1 D) K, x6 B5 g: q* @6 q
资源工具
0 V) a! y6 F" i* Q % n; Q% Q! j% u# w
. z4 |4 q6 @( O, M. D. T 1. GitExplorer
: D1 @8 L/ V# ~; V4 P + ]6 I8 l, Z$ T U
& K: s( ]' r. F L( Z3 ^& F
# F C" E; `: n# h9 o $ f. M9 _! {8 P6 }( G! r, m
+ K) r7 ?+ J) E# m: a4 ` 一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。 / a4 M4 m: {( ?5 ^" \6 O* ?4 n* a
2 q. z# _: j& y* [5 o
3 G, G" a3 }7 @& W8 g$ e- U3 M 2. Bookworm
. j. J. t& o, H/ z
: `4 m1 a5 p- |1 Q: A
5 m l2 j# w9 x! s4 M7 a . c! b6 d6 o& b
) r# j+ @6 O* b! Y P) l s R/ @0 c- ]( Q Y
适用于 Linux 的简单而功能丰富的电子书阅读器 8 q+ b% N9 u9 y. u7 ?% I8 g
; W! h/ A% M& k t! l: \
1 h' W9 u* Z: H3 Z$ {
3. gitlogs6 s# o# t# X' n. Y2 B
0 G2 Z" ?6 {; ~- d+ g& d. k u0 }3 d6 [" ^# [
能够及时准确的发现最新优秀的Github项目。
, X6 ~* {/ m5 ^1 H
( M3 {2 I: a5 ?8 I; m 1 ]$ R S3 j6 u) c. C
4. readme.so
: N! I' r6 S! m( }6 s" ~* z - \: p4 v \9 h/ `4 g: ?$ |% S
. }' W0 `7 T2 D3 ?4 R* z/ B: ]) u. j
3 d# J+ S0 V6 Z8 w$ V9 Y
+ W, D1 O4 _* o/ _1 |. w
, U* G- H4 x7 H, Q0 A readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美?
2 r" N: E/ D6 S7 [ R, R. L " h2 u3 z% j5 |- o" v7 J
. v0 k/ a: y+ t0 C$ C0 s
这款项目就可以通过简单的选择快速生成美观的readme。 7 S6 x t, B7 H/ L- K* b( X
( D% P) U& m6 l' j
! D* e9 F: p' ^ 5. learngitbranching
7 H) N' b" n- g Q0 e' V$ w1 \4 C3 [7 ` $ [' C) a3 F# v$ P
" o4 I3 e6 _1 [* ]) a- W
5 H5 m( d* d/ Q" R
+ L( U$ C9 J, P# O
3 }& Y$ _9 T' S" h
一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。 ; M1 F7 v( R1 A3 r0 u1 N; m. H
( d1 `2 r6 q, g# y. u
8 S7 k3 `5 B7 H1 ^
技术文章
* D! _; ?7 L- |; ?, ]- D5 H
# p) U/ d9 [+ Z3 H$ _) ? * @& O9 R1 J2 O1 b1 M# Y& \
1. 了解Linux路由6 Z% g, @4 y$ f/ ^% {
( u Y: b& j/ \- Z% Q
6 c& F$ G' ~+ Z5 Q6 Q 过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。 2 ]& C, D( `/ x' @# R
+ E7 H9 Y7 b1 c# c. H; q7 F& f& V - J* H3 G' g2 `& m* y* w% c
现在情况已不再如此。
$ [# J8 U# F2 K5 @$ k7 I
* S6 f4 B" D7 t& | + Q/ F& [, d# z& s% f( N2 b% g$ `6 P
例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。
% i8 }+ t4 {3 ~" D
1 c# @, ?$ |: d% s# U # O% [& S6 u" g9 K
默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。 * Z+ G& b9 d/ h0 l9 ~$ P( w. v. F4 @
6 ]2 i: z0 ]/ |; v$ `) r% ` r * m. n* i, n! {& c' [
通过这篇文章就来了解一下Linux路由是如何工作的。 3 r# G6 D' I2 n+ _$ s
/ [* ~+ ?4 e+ ^5 h- K2 i
( h& c0 ^/ `, f4 j 2. 一个专业程序员的10年
% ^; z4 r% K. }7 s) J1 T # Z% K) @$ h; f" W# I
/ t% O; u. g6 _% h" j- _/ r
10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。
% P) y8 v' n1 m- ]& W$ x " n- l7 q) x; L7 B ~& s% a6 D
6 ]3 F( a( ~- g: b+ s: d9 ~; `
作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。 }$ C% ] i7 F p. e7 Z6 R# z
+ I! O5 O- F6 N" B
9 _( g/ P1 L/ u2 ?3 b$ r 举报/反馈 % w ]2 T& k1 T) R
1 a: @8 k% D7 n, z
4 {# Y( @2 r( p+ [
! {: T, [7 U2 i8 b7 |- V8 G3 T
+ b5 T0 r/ c: ^! }. P% Q) o) K0 w c" C8 R0 U- g2 c0 f
|