4 ?! s% F. h8 G9 z
0 B; B9 z2 x) @# Y( W( e DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。
; g1 d3 C R0 [: t; }+ L& T # |2 H, J2 f, {% D! i P% A/ g
1 z; D3 s7 G# S) } v
每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。 * x4 ^; g8 F( s" Q4 Y! [* b
6 Z/ r" F' ^5 B. i3 m+ p# e9 ~) z ( U/ ?8 F: {6 q: E& L. Y
欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~
7 Z+ n( h: ?( k( v3 x% }
5 v& C: B# q j4 F* @
0 J5 e: {5 U) ] ]+ U 订阅方式: 7 d2 X. u* n4 C8 a4 l# h
# `7 [4 H" n6 m0 F2 W5 u: x
8 K0 E$ i: P" W/ z Star并收藏项目DevWeekly
6 J/ ]- F$ v+ a% H2 I 关注知乎:Jackpop
) y b4 p8 n: }# } 关注并星标公众号:平凡而诗意 ! {2 K+ q" e2 T- y
; g4 d- k) V4 s9 l- u) W) i( \8 E/ z
9 u: b: U9 ~: ?# E% ]; ^ 进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意!
2 b4 j" m+ m0 N7 V
" m, c$ N, ~- S, E
8 e% Z9 R7 p1 V7 F. R 开源项目: O. i5 I5 B, _8 @- |8 ~
0 x; X% F. {% b+ E: T5 T # c! S- b1 d3 [5 _* _" {
1. jetfuel6 f& I, L% h5 e+ R6 O% N
7 ]5 K. Q: e0 }& ?) d- I5 e+ s % B6 g1 r. i3 V3 x1 Z
PythonStar:104 : H) p# T0 |. z& d3 F
5 U$ j: R; x0 C s& O 7 |# {! I3 s0 O& ~$ B
7 j" v& y- ^$ r# ] : K# |, {7 i0 U2 r' [. K; P
0 Y6 @& \. b! Z# E4 H
Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。
9 s+ A$ B3 ~) t( i! l4 s' h5 A
& E2 F* ^( N+ h8 I% ], U; q % z: _3 h6 G7 H/ Y" U8 ~8 E W
2. LovelyPlots
9 t3 b- A% D& R7 r# n0 D + s3 l! x- @2 _
3 M; Z# ]; E9 S) T7 D$ r3 P/ i
PythonStar:560
+ x, v7 ^; o* e2 p0 B+ R) r+ N6 l
' ]& l6 E: H8 ]% o; d 4 ^5 ]2 t: L8 Q( W/ ]1 U o
8 A# B) |# b' R
: P- O) N% ~/ X" {
4 v6 h8 Y8 M7 f LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 0 `4 n% o5 @ B+ G8 X
) P( E7 E5 @: G/ R
- x9 T# W- s1 E7 t4 X' G# ]0 s* R 此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。 : [, C$ `# z. J9 {1 p7 I3 R
- b) x/ v* i: R' g3 g/ A
4 y- l+ M% b' X0 k2 g& p 3. tsuki
/ E$ `5 y! N) z 2 r+ Y$ {+ {" S- Y5 }5 v
, m# ?( w/ T" i/ J
PythonStar:58
$ M: h( E5 C0 @% s& X
3 x0 N1 W7 y; F( n 3 \$ E, _( U( N& E5 i
Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。 : C' k8 N- e: i6 R* `; p4 o+ J: N2 E
' C7 v8 I, m5 {0 L" S5 Q7 P0 M 0 a! C# o8 ]8 A- D. m$ v1 ?
4. Xtra o8 N7 F) X$ {1 E& R1 X
# t9 K/ j, R5 t8 I ; Q: C+ T) {' F: {9 _! r" G4 m& c& _
KotlinStar:350
9 j$ r$ D7 p- {5 z$ Z# Z# P2 A* W( ` 4 R% K$ `8 E9 E6 X/ s' B- H
6 k* a( y1 D, o! ]2 d Xtra是一款适用于安卓的Twitch播放器和浏览器。
3 f* r; g3 v: V, K5 ^' E- e" E
# y% C6 q% G) f; f3 q * G& f6 s, ^7 e
5. sbctl
+ b9 |$ K9 B5 ?8 X0 i
5 Z& D- m4 ~' n9 g 2 ]7 x- p) v# P
GoStar:555
' e v% a2 ^& o* F8 B# J
0 C0 \2 X4 ~4 R8 Y . k2 R' f8 v$ m1 B
( U9 _$ _: w2 l4 G' p# I9 c
4 Z3 E3 o( o- g( {3 @* C. S+ H6 `
6 s6 b6 I& w+ ]0 |$ P: X. F6 { sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。
# Z) y* S9 `7 N# y: S) m+ I
4 e; O% p! M k" H+ M* u1 }
! ~/ w& u% c1 E2 e+ U 6. cli" t. x" L' S& m
" w5 Z* G5 B0 k4 [2 k0 v4 v" ~; N
( a7 S h7 F4 t3 e& v# Q0 c+ d
GoStar:983
/ l v C% b) W; J
+ u4 g4 ^6 t- M) \ 1 w/ V1 r8 \ o- I8 c. x
用于 IPinfo API 的官方命令行工具。 , T! d: `9 F* m7 ~% Y+ _
' X! I" Z; S7 y3 F0 D: `' {5 d
4 ~6 a; B9 |& x( x# \+ A4 q 7. thisisthewall
f0 I& w! b3 Y+ h
- o4 \8 z! r" `
1 z4 U9 ^) d8 }8 Y% h0 y& \ JavaScriptStar:14 - G$ D2 b# t, v! v
$ C: ^* N' f! A& d7 m2 M7 c& D9 H
) p4 N0 U3 R# H/ `" c 使用此API,你可以在任何设备的屏幕上获取壁纸的图片。 5 N; a# L: e/ @% C# ]
0 a4 C5 x8 l/ x& Y" c! @7 v2 @ 6 M5 q/ ]; u% h, l5 ?$ s6 G
8. magic-regexp
; @; W# v/ F2 J+ W5 U: h# T3 `
5 ~/ i9 I5 t4 r, h: A
6 a1 x8 D1 h! z* s! H( Z7 U# a TypeScriptStar:1.4k 3 h/ R" r! y' _5 s1 G6 R
: a$ g. C3 x9 \( G/ b
' Q; F6 s2 `' w) ~* ?( X$ y- a
一种经过编译、类型安全、可读的正则表达式替代方案。
# U) M. Y' @+ b P- `
) ?0 C# y) g& H u- Y' Q* D8 V0 J# _
9. frawk
6 a( E$ E! ?+ s+ x! L Q7 w
/ n2 |4 d- z% ~3 [ _8 L) q% ^ * J0 l* }) E. ^# }3 M* R( o
RustStar:1k
6 d x: U4 G, |. M2 ?( \3 ? l) n- ] * q, u! d, d: a# n" ]" m
: W+ Q* `7 c6 g, o) ~6 g frawk是一种小型编程语言,用于编写处理文本数据的短程序。
9 _1 ^0 d. U/ s; ~7 Q+ H O4 H V& b% T6 m( U$ w
6 e9 W3 [( {: g
它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。
+ b v: y- [2 k5 ~7 v! O- t- K ! c! G2 p3 A# L
f% q# L# U, L/ h# b6 Z 10. Vale
2 q0 }( P1 i/ n
; n4 _7 ?# }- g4 N; g 3 a2 Y2 Z8 Q3 G5 T* {0 ]. n
ScalaStar:1k # z& X/ M) L$ m1 r3 N, |6 R* K* C
# f: B, |+ ?9 K
, I! j$ u& ^7 \9 Q3 ?) L" f: u6 O5 V Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。
8 g: T6 N: a- Z+ ~4 z/ v% I
) l& a9 `4 D4 m" Z 1 C! }9 h: W5 z+ C! t4 Q$ s
资源工具
) b: n- {& e9 x O. ` ! h9 Q- X8 u) q! p1 b
5 Z2 v: G6 [* O7 V: ^9 b0 J- T* G 1. GitExplorer, S# H1 i# y" h$ ]
/ W# K5 z* v% O% g y' V4 _ $ |& d9 f8 d' C0 H, |5 A2 w& P
. w6 T) e3 W2 O) P8 Z+ j
: g% l; m5 j9 h; q ( W& E7 Y4 j0 ]+ D: R/ j" L4 c; w
一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。
# _6 U8 W" |9 W" l1 `
1 h( Z7 ?3 M+ E5 H 0 ]& e( f$ [# ]8 T) c5 ^( x
2. Bookworm
^3 K6 \1 b# g) A
u0 }; J, ^* u) z) b( f# I0 J
0 H7 l+ _* G( J7 K ) q- v2 ^# S( @
' L1 g8 d2 p; q Z+ r5 V4 }+ k
7 H$ v% K$ \/ o- ]
适用于 Linux 的简单而功能丰富的电子书阅读器 4 V/ l/ r5 \ O7 ~
) N0 o+ W5 V3 L- \
3 Y6 A2 G/ [ {% p* z 3. gitlogs
1 q) j: t/ h* N% h! \
1 e( {) Q. w8 B+ ~& y8 ~. z7 L5 T- P% g ; d( h4 o8 k. \, r- D$ u8 P
能够及时准确的发现最新优秀的Github项目。 ' R7 | ]& k9 h1 n9 W
, n" M* k$ h" A8 C
- U [, ` K5 G 4. readme.so5 y9 [* y) v; u" |
* ~8 ]. r: n& r% ?1 T' S
. g5 I& ~% l5 f: H9 t, N- v8 J
2 K' ^" M0 E: ~) k3 B* C, w 2 @; u/ L' S( l- r6 Y5 |9 K
& v: h0 c7 A( {
readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美?
2 u& y! f A- w2 C 8 s" G, \# j. q3 z; O7 @4 [
- u( ]: |9 b0 c0 U4 y, L& y3 ^2 z" ? 这款项目就可以通过简单的选择快速生成美观的readme。
8 a* Z/ D8 q0 ~# }* ]" h
3 S( |' ~ ~/ W2 N* g
3 j* w: Q! s$ R1 }; T) i& c* j 5. learngitbranching) W! N6 H3 e; j1 r& x
; x7 b8 e. b* V2 X* W4 V 3 \3 i/ A9 z1 l6 x) ?
/ Z9 a- S" c. b+ M9 W( X% o0 R + L1 ~. |% Z' e: m) m3 m6 h
( _& d- V$ g: w7 a' r& f- q 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。 ' b- K2 o6 d( `( Y7 X7 C4 Y. [0 l" d
P5 d& p3 g. Z# u3 p* F
; m. Q$ N6 P* d 技术文章
, b7 w) X5 n! Q B' ~ 1 y5 y/ ^- d. ^( c1 d
+ H7 o+ j- K6 v 1. 了解Linux路由0 F L! k& o, o: F5 |* I
0 {6 h9 l a8 y* g" h/ F$ H, H& m
; g) A1 c' U$ S" \) u: o( s+ S 过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。 3 Y8 w9 N! T3 b
8 [' ] q. x& O+ Z0 h+ R
: p* K) c/ I/ x! w1 L
现在情况已不再如此。
8 f8 D7 k7 T, B2 \0 ] : p+ \2 @( q: b3 S
( Q+ G4 w2 U+ B, V7 `, ~
例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。 * K E6 E" m \1 ~
6 n( @+ e0 K' M1 Q; T; b6 h+ l
0 i# ` ?1 [+ @& \; m0 A4 R 默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。 ' A" q: O' p: S1 v" R1 a/ o
5 [/ [( L7 t; w- Q; u0 U
: U$ F5 p% Z( p" |' y& X) y& q4 [
通过这篇文章就来了解一下Linux路由是如何工作的。
. f3 K2 U: F5 e. Y) {( o( M# W 5 s. n- ^& y( m5 b% N
9 I& J7 k9 ?4 x
2. 一个专业程序员的10年& h1 u. ^* U( ^& J
1 w6 m1 o& ]+ n. L- x$ G. t
: I5 {0 d* w. R 10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。
, c$ o* Z+ e5 ~: R' E
1 H& {) H: j$ l m4 I : _2 c" D$ |5 e. d/ ]5 d2 |7 o/ }
作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。 4 c* g# a; u g/ f: q% K
, V+ [8 w4 ~9 X& M. A8 D ; g# Q- Q1 x) v3 G, |
举报/反馈
) Q! Z, P# K$ [7 ]/ U * _/ l0 p6 K! s$ [ i0 `/ \* I
# j6 `/ J8 @1 o9 m1 c6 [, c
+ x5 K& k( I# Z/ m! v- ~/ p6 {* P
, {+ }; [4 _/ z; E$ E1 A4 Z
: O6 i: k: y1 V- ? |