; P: _, d- q+ y3 H2 S
3 z" S: e8 H3 @& j DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 3 i6 j' x- [+ t/ c* ?& O
3 ^; M0 w) M7 X) c2 y* L 6 y6 s0 l. Q4 `4 @ Z
每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。 1 w4 m/ q+ D. h! ~1 `, m
9 u$ V- j# P n2 h7 s. j
) T7 C; ?; i: B: ] 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~ 9 @ ~$ c* D+ ^2 ^6 X5 ` m0 Q0 q, B
( l2 Z, m! R% Z; t ; P8 T/ \4 e! L) G9 Y) {
订阅方式:
9 F! Z2 l% V# I( S3 T1 Y# |$ C 3 t: ~/ g0 b+ c
3 X. i3 O$ g# Y7 G+ n7 y
Star并收藏项目DevWeekly # s7 _$ t6 \* s9 P" G4 j
关注知乎:Jackpop L k. R1 t) s9 |( w1 v4 o
关注并星标公众号:平凡而诗意
( L$ ^- p) O# S% ~* N
# m* @6 O. G- W$ ^( o
3 k: e! U/ b7 G 进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意! 7 f* f, E6 R# J4 Y" ^+ q' l
: U' t5 B( T U8 T 8 ], j* e8 n- {# a; w: `
开源项目1 V6 _- F5 y' r3 [7 ^
3 T9 M& t- W8 R8 r : P; x5 Q6 Q, A
1. jetfuel
4 L& m+ E( R6 l8 m 6 X* c: t& r& S( B& x" n6 ^
9 v' m8 G0 E2 W! \7 ?/ J! x
PythonStar:104 4 r* w: o3 `! O% E" H
) n* A6 b7 @" d8 g; ?8 B
$ D8 M1 b9 w" _
4 U, P5 V! m: r' p6 j# ?
3 }3 {6 Z5 N1 ^" q \7 ^ 3 Q8 ]: | |& e1 n& U0 e) b; ~
Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。 " u, K' n$ ]: q* h/ F4 ?
/ \4 p3 @- K( o4 J; f
$ p5 }0 V" a9 n5 {- G+ E$ ?* Y 2. LovelyPlots; d! e! R0 v" r" ]0 F7 Y+ _
" Q. F5 ?6 l. T# J % @& b% a: V# o
PythonStar:560
; Y; W4 L9 U: I9 r* w $ Z$ D4 y" q5 q$ R8 k
! N9 O v6 }' |$ x# u) ^6 \
! m6 x8 @+ D) s( `6 F* I6 ]" I, [+ `) F
5 `1 T" g, I. v5 c
( `4 |6 x& M$ r LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 5 W6 X; ]* g" Z# G8 q s; t o( z3 H
; c S: Q) c# ]% n6 Y! ]
% }6 a" B' x t* R- _) W5 M 此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。 ) ^/ }2 L4 w+ ?1 H
( `1 r- W( @: S9 n! ]
) L* B% w0 {: K% ^$ ]2 k! `/ F 3. tsuki8 J/ ]+ ^: K; P" Q; g5 [
]. T/ b) [0 m/ \% [5 A
' l: u8 H/ D- t8 ` PythonStar:58 ) j- B- F3 S/ i* M9 O2 s
* [3 f8 J$ o4 w3 V0 b- L1 {) ^
- d# e2 r. ?1 g8 `- E$ x2 Q Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。
) ]3 r3 l! O$ a: v & P8 X( O# o, ?5 F J" g
( k9 K) q. _- ~. _3 `5 I) v* ^ 4. Xtra4 r; z. e. y/ N0 b( O; X! K
( V4 l" W0 ?7 M/ e, `. N3 Y 0 y4 }0 g' l) h- C$ e
KotlinStar:350
: \: j7 A- N! ~7 w" T1 O + ]7 u# ?: V! G
% ?; X, Y) a, _) h/ [$ I( J Xtra是一款适用于安卓的Twitch播放器和浏览器。
+ ~. p3 ~9 c$ D5 A( {# M6 z, O - D, Z! x1 V0 @" l6 L
0 E0 W8 `9 z7 m+ ~ 5. sbctl) T# W! X: a( b6 L/ G+ N
% {1 L- o8 f, F1 ~/ e+ L- W0 y 4 P4 l1 P5 k+ K% ]) F% e( ~0 ~6 K8 _
GoStar:555
2 P' M2 ]$ Y, C9 Q ' F+ [" v0 v t5 |! j: G
& v5 V7 j4 L: g2 p9 ~2 j9 b6 C* t
) m: P7 ^/ n: A+ `
4 ?* y+ [1 i# K3 n; z
5 l0 q9 h$ c6 K8 y& e6 y1 ^" H. |, e+ c sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。 9 U& F1 B8 `) c' Y7 ~
' p5 |" o( h, Q( s
9 T* E0 a' a; i6 J4 R 6. cli" G( f$ i1 w* D$ ?( C c4 O* r
3 b# r( m3 Q K6 R2 W1 h
, a, C* Y( X% E' \! G7 l; O
GoStar:983 5 ~: g8 ~8 l8 G" h
0 c9 d6 s) Z' |# K$ m% [ $ j) U% R6 o* T
用于 IPinfo API 的官方命令行工具。 ! W1 u0 V/ n2 j. C8 K K
# T8 A# m A' O* _- w7 C, I# U
& [) b9 l3 U: }* ? 7. thisisthewall
0 P7 Y& e, [0 G8 P' t
# ?, T. I9 N+ x/ D4 ?" C$ J
8 e; M0 [/ e5 r. p JavaScriptStar:14 7 l' {4 N; ^+ U' ]9 d$ D
0 U' x( Z$ n E8 X( l: G
" Y4 |5 `6 n/ p3 ] 使用此API,你可以在任何设备的屏幕上获取壁纸的图片。
2 |$ k" q$ ]% O3 I. }5 a
- [; ^& J! m! ?2 T& w2 b
. {) {- i2 B+ ?* d3 G8 @4 p 8. magic-regexp
0 X; L) }" U# D+ l; }0 W : v+ p% `( N* u9 l* ?+ S& E0 e
4 Q. c* Q; l$ l7 \
TypeScriptStar:1.4k . g* q, k% D; x0 p* Z. E& }' Q
! X. c; R8 H7 j4 `# w+ Y
, d" Y h1 q1 R# } 一种经过编译、类型安全、可读的正则表达式替代方案。
B+ F, R' c4 T% F& i1 z( } ! O1 q! b+ b3 s6 w' x
; _" _+ \( v+ x* v6 f' `
9. frawk* Z* Z4 T' c4 Z. F, c/ i
8 h/ \, M1 |' M) w2 G * a: ]3 b: B; ?, l" ]! Y
RustStar:1k . S+ D6 I* k. N; q9 m
- Z5 U% z2 n5 z0 z: t9 m. p: S
0 a! \/ y. P6 h
frawk是一种小型编程语言,用于编写处理文本数据的短程序。
- E' V: C9 t5 Q0 m9 p9 v2 x
: H7 i/ m0 \/ Q5 t
! a4 p* b1 e+ Y! _7 w 它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。 0 M0 @" Z4 c& P
4 |8 I/ G. r6 s7 e3 l3 s2 Z
8 G: x# [9 t& b: }6 l! S4 Y
10. Vale$ ^5 x2 T! i0 i3 Y
6 P1 G+ i+ W U' `3 V6 p
* n b* X; F8 @. a( f. I$ @
ScalaStar:1k
8 q9 R$ ~8 Y$ d: w9 Z; y
& p& b) ~. j2 s / @% n. j) I$ `) ^! E
Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。 2 W; I$ }4 T& S& J7 |: J$ `8 g
. H% Q/ B( \. |) A& `% s, F0 y$ T$ {
" Q7 {; Q' u+ l) F5 G4 H F 资源工具
% ~. D' f* U/ S2 `) w* h% I7 H b7 X/ T8 D" m9 C4 A4 m
8 V1 A: R3 f/ }. x4 ]# i- M
1. GitExplorer
( y* O& l9 K, e4 Z2 _2 o6 z$ @
, v' M _2 X3 K6 U6 f5 X5 i( U) `) [
8 R4 e1 z ^/ k2 ?( v* f) ^
) k1 e, p8 E' }8 A! K- {; K [4 s
5 H) w4 b4 I& ~8 @" u" ? ; X5 R+ }5 S& f- c! \+ d
一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。
/ K6 l' q# s5 ?. U9 `
8 I& S1 U6 P4 K- @& i0 g( Q% x
- p/ o' ~$ ]' D 2. Bookworm
! z1 ~! l3 H4 U; j8 a ` 2 a5 j( x6 e+ K9 Q4 ?+ ?
! E9 N/ `. d) Y5 ?* v/ ~ + w- b; Q0 z- }9 H E P
% p7 s8 y3 m' ^! w$ `# D3 P5 O
9 F2 g& e/ o) R: c4 {4 e, e, w# E7 |# I
适用于 Linux 的简单而功能丰富的电子书阅读器
6 R* I& g% V; P, V$ u a
x7 k0 ]4 V0 \2 j# P0 n' ~
+ H, W `+ N% ?" t 3. gitlogs
6 _7 m6 A; X n9 O7 u2 M0 o# S
- S* b0 A$ V" k4 D& p 1 S8 E: u) D: d7 T' ?
能够及时准确的发现最新优秀的Github项目。
/ P. @8 e) b2 u3 o3 Q* V! m
6 X& s$ E7 Z: H% f/ ?# h ) ~' r& K0 R+ F; j. D. N- d( n6 g
4. readme.so; ]7 E8 s7 G L3 J* R' ^
- A1 k) ?) A; \2 L) W4 j% k
* _$ p- v- _" L1 O2 g( x1 E" ]
" j. _- x* |" q % T; I* J5 x- s' ^/ n
* K7 C/ h# W2 ?7 B2 Y9 F3 v/ e
readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美?
7 m6 ^* e+ W# M- c1 z9 d% @5 N: r
+ f( w/ [) H9 ?4 U . }% e2 C. x. y1 Y; E5 u- f/ {
这款项目就可以通过简单的选择快速生成美观的readme。
; A* b, S1 ]/ \; w $ \- P. z) f7 R: \9 l
4 O6 L- z$ G9 U3 \ F0 l, B 5. learngitbranching
5 v2 d# R6 n2 E Q6 N# i5 V' q* E
! u% Y M R' m: [4 r5 i
: ^+ f# }, }9 v' l . A! p# Q9 A' J; e, K
' L, ]* H9 ]7 K0 R $ U- _* D. H! K% `8 r; ]
一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。 # P: c: [ ^/ r" q6 D
, z; e/ j; p! S& s
) n0 F9 T2 ]5 R8 w+ P9 g* n
技术文章- H" `, Y4 T% K6 w
3 U- G/ ^4 d) a" @; U6 X
$ V3 I7 F Y/ o( F. N {5 [
1. 了解Linux路由& A7 V& L$ k' f9 I( n( L2 X
1 C1 b* ] n0 \% x
& j8 o. w1 g5 _% O& R" J
过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。
; P' ]" x; h0 R, H- ?% g2 d
! n; p, ~9 D3 f: D8 Y * a3 p" q2 u4 A, ?8 r2 D
现在情况已不再如此。
1 Z7 n/ @! T5 W1 S% h. Z. k- P# @' w
3 M1 L' j+ \' U1 w6 o$ f3 a, ?7 I' x
+ w6 f* @8 ]0 P* r) {5 K6 ^ 例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。 ; A# u& v) ^0 A6 G) r( O$ U
. L6 G0 d" {/ a$ m' M" ~% `
q; B, H6 \: y
默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。 ' B9 R+ H. Y5 Q0 B5 D# T! b. g
+ O. Z. U0 b- S7 f* A. ~
( T& t" ~8 I& E# i* B 通过这篇文章就来了解一下Linux路由是如何工作的。 ! B. W4 s* R- {, |
" c7 |/ q# b7 X) G; e1 y
7 V& N& l; r, h 2. 一个专业程序员的10年0 s @0 [0 D* s j
+ {9 f+ }1 p8 Z8 l6 J4 R
: e; U/ T1 Y: H Z 10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。 2 `- j8 s c' I' |: }% t
- f+ S' G1 B, H0 D, `8 {* ^, F : u- D7 U' h& X# N- v
作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。
5 ]% v/ F& C1 j! u! ?
" A6 H9 b! u0 {# N; c4 \ 7 [+ U# p7 [5 W4 n" l! I
举报/反馈
. Z0 }/ e% Y% B ) M3 [( `8 c% D% U( m
1 x& F! f( q4 k
9 X6 `5 ~2 j) R2 f# z4 X' p) z- Y
3 q. t; T# ]8 e! X, D/ D/ X4 W
$ D6 a4 x" Z) C# `* b1 i |