0 f. j+ R. x1 e/ S: Q" A2 g5 n% p0 ~
3 k% P9 n1 _$ h, g2 ^& l$ X DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 * k; [( @" e$ C6 f) z7 e
; K0 |! X+ p. |' a- Y6 h/ J; `1 p# T& v 9 {9 E7 ~2 B4 y# r
每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。 9 N6 m$ H, U/ k
3 }3 o: T) {7 \( q+ U5 |
! |! M5 m3 t6 a% J 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~
5 U, ]7 Z4 c! g# @) q# h2 m% |3 G 8 l6 i/ t. i) [2 r6 t% ?
7 z% K& q: T% X) P" ?
订阅方式:
; F* U: }: F! q3 b
5 e2 R7 P: V; ~: P2 c 7 c* T& S- n w5 ]
Star并收藏项目DevWeekly ' z! b0 s% v9 y, F& I
关注知乎:Jackpop 3 i* Y& T. V- H
关注并星标公众号:平凡而诗意 ' D9 V) r1 g+ t! z! L
$ D& P% v5 Q/ D7 f% G4 \
! o5 d5 d8 f; B$ u7 \6 R2 z* H
进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意! ! C- w8 i v8 u, q9 _* J2 W
* k! Q4 x N7 y4 P7 f
% C. Y7 F6 S2 i4 a5 r+ D
开源项目2 K' G7 E, \ d8 _( r
3 i R8 r6 N4 }* a
+ ]! s# Y8 r* t- c 1. jetfuel
4 V, G: B! Z) ^1 Q- W* U& X 7 |4 ~& z1 _' [$ D- Q6 I+ ~ ^) ^
* p$ M! W. J: _+ k- X# t PythonStar:104
# Z0 G9 p1 h1 J5 m
! m- O5 Z1 E2 x) C$ V) m 7 H- ^3 e. K, c
& d5 @8 b9 K) d7 j- b( t
( j6 ]7 l- {1 _$ k7 N+ b' P( @
) s, ?+ z( i w2 a+ t/ `
Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。
9 O! \. M1 L J4 Y: N; m& X7 b2 ` - R6 g. G* m6 U( {' `0 j: ?& e: u
8 y3 D v+ O, p
2. LovelyPlots) \* A1 t( N3 W
7 v7 X( e7 }8 M B1 i
. y. d6 j. Z4 O% K5 e1 u PythonStar:560 % ~* k) Q* ?/ T4 j2 ?/ z( l
3 \# `4 {& O+ h2 a% q Q B3 o# U7 }6 R. {
- D+ j8 d+ \% J, h9 |5 M
) a- C, m6 S* S* Z+ f( A
+ \/ Z0 i6 V6 z. D! a0 _/ y LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。
% v3 V& \9 b# _, `1 K9 e4 i % ?. _6 N7 r: G& @. f
" C- h8 M. u2 a) ]- K+ s 此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。 . A, K; V* W) [) O
. _& R6 A4 G9 ~ S
+ [% {+ k( { [' r9 x p 3. tsuki8 n. a. g; \, t2 S
0 B% r) X7 C1 j6 M% Q* j& y : X7 t/ ?. d! c
PythonStar:58
$ p& I7 F4 i, N
" T$ I- }) }* P! h 4 k) r8 u ^2 C9 l6 N6 Z
Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。
& M4 b( D% M* O$ v7 D- s
, a: V! W- I" m/ ]
) y; Z2 ?- B2 Z7 Z2 a 4. Xtra0 f7 d# s: |* G& t/ x0 V. F! Q
/ O( v3 a& C4 a. I
0 c$ q( H+ m: D0 ^% C- l% e8 b KotlinStar:350 * U V# I7 u b2 z4 |
$ |7 |6 z% c ?$ R& Y( r: K! B8 ]
2 [# I! w9 ~, K* {2 ~# H5 }+ t
Xtra是一款适用于安卓的Twitch播放器和浏览器。 : D. ~5 U# W3 D3 c5 C( S' {! I6 {
$ g9 k/ b# p; H3 {
. m. c, l" ]8 V! I 5. sbctl
$ v# r$ w6 G. t. o2 Y ( K2 e4 w, o; ?/ Z8 r
+ g# o& m/ [$ w4 `# V$ u- k) j
GoStar:555
" Z/ K( c0 g( a! l* p& _* Q . ^8 P1 R0 K9 n# p( H) Y5 {3 h
/ X- Z0 t3 A- m4 M6 V
: _9 k+ p9 }4 ?. Z0 r) b1 f4 g
7 \' h9 V( l1 W* V7 o
3 C- X7 n' V- z sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。
" Q! I& m3 X+ s* C , J/ x' T4 W/ e3 `. Q1 P4 q
/ U& t) D4 S0 h9 ?2 c+ e 6. cli3 Z8 p- A7 N+ X" J1 K, v: f
9 s0 i0 ^/ S% r
$ A9 _, v2 y; v4 x5 e" r
GoStar:983
- C' V' {! l6 [! J; }
3 _4 k3 U( X8 P. d+ ?4 l
! c( Q5 i& S- W7 q 用于 IPinfo API 的官方命令行工具。 . Z$ ?* i1 e7 T
4 T% m% J2 a4 s. C
- t+ [& ]: ]+ b8 s: F0 h 7. thisisthewall
: w6 h& h2 Z! L$ o: v0 _: R
' ]+ d: g) t7 S: G+ M
/ }6 C1 @$ Z% {+ |) W5 g. w JavaScriptStar:14 4 X; K" n$ O' w5 U6 a6 ?
( l2 H. i* y4 ~% B6 D
- w) s- S; L9 k: [1 }" G/ \
使用此API,你可以在任何设备的屏幕上获取壁纸的图片。 9 Z+ j/ p z& T5 H: ] H: N" K
7 ` C% y: P) @2 R! z" v4 c' g
% o/ H, s& q! b* h! h) G% w' k 8. magic-regexp1 w3 g( T. U) W
/ S8 t) L$ |0 R4 t6 ~2 @! ` % O, d6 e3 q) J
TypeScriptStar:1.4k
" {; u. u5 @8 K, q' g) U# n. D2 _ ; u" ~; q' L' ]7 L4 i+ F! S/ ~
( F- ~6 h. U& j3 K 一种经过编译、类型安全、可读的正则表达式替代方案。 # J! x" a3 I9 {6 {! [& u8 V' C
: Q6 ^8 }8 Y: J! \- a' e: q# ?
8 w2 u5 Q3 | m 9. frawk' j+ ~1 \( }3 b5 l3 r+ z
2 [' Q8 F, F( [! H- z. Q$ Q
9 L9 O( B& s' L+ J
RustStar:1k
) u$ R5 b; o' m* w# @- S 0 v: i0 k, r. C0 }
7 f p% y0 U/ ?+ p1 H- | frawk是一种小型编程语言,用于编写处理文本数据的短程序。 # l" }1 N5 n. X
& ^& w# o( v8 l' T* W/ ]+ z
5 }( D) M# g# d9 ]. f+ t 它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。
) B" @# o5 d8 Y5 T
& [' y. y6 z& A" ~' x6 @" Y: l; l- m
8 s* X( M/ e8 q* Z6 c4 V6 V 10. Vale+ x% i9 F7 ^" {: J' e" A
# U' I2 }! e5 ] N- |) c& f% Z0 P
( @ Y. S" ?8 l( U ScalaStar:1k * J; p8 c5 M8 a7 B4 `3 ^
7 q2 B1 q0 V T& e' v& R
- s- v+ F# _8 [$ k: }5 h Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。 & e7 ?4 w, X/ w5 V
1 B) w; j& D% h: b0 e @1 j
+ k8 f5 Z& J, d/ \4 O9 ^3 g0 J* y: ? 资源工具4 c8 n4 {6 r! j, }! v' Y
* Q1 z( q8 `1 |+ z/ |
2 L M, u; q. D+ t7 Y. O/ S 1. GitExplorer+ O- t* Y9 H) r7 i% e' }( l6 b e
4 P. ~# Z$ S* Y8 W/ z0 i
& F/ w% V& a# T1 P( y0 ?' Q& L! K. w0 v
2 G, W0 K$ Q) b0 s) L , @+ A. b( g5 @. ^4 r' t! N/ Q9 H' u. x
! t9 V6 g/ B5 W% s
一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。 . K, S4 u# \6 A' ]/ [' H$ Y2 R
; L% |5 t. R; S; W
; d" Q4 E O! i
2. Bookworm
/ ]) G- [: [; b- `3 }) V/ P - r* C) v9 D8 @' ?, h
7 @" ]# {$ c- C6 J2 N$ F
( }' R! Z4 l; p) R% i
7 I1 V, B! W: N* R4 F# e+ C' d N2 X 3 w: d1 Q" X2 W
适用于 Linux 的简单而功能丰富的电子书阅读器 1 Y0 j" ?* P( c; a2 S, n: H* n' M
% H0 C) `- Y9 s& }1 J* I2 s" r1 a, z
8 a! \( b, q7 { Q 3. gitlogs
( Y& S+ i8 I' d1 Z' d
8 J; C& d4 V7 j6 B3 @0 v7 ?- m C
6 X1 z7 G4 k E 能够及时准确的发现最新优秀的Github项目。
8 V8 G8 L' F6 [" h( Z+ R 4 s/ V! s0 ]! c) j' ] C
: N/ {& r; Q. O' h* m- R/ w 4. readme.so
; t7 U5 z: `1 c. ?7 M: U8 X0 {
2 o9 J& P4 @5 y% ? ` ' a# Z$ ]" X& F7 V% A
; u0 N* P. U. g8 ]8 b1 I$ C& [
9 _) w. `" C/ q7 l9 q9 C/ p c
+ n; a i; @5 Y. U
readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美? & S! d1 E, z5 F
+ G6 i' y. R0 b6 O3 G& A1 Y2 K) c
- x+ D+ t' W' b) l9 T 这款项目就可以通过简单的选择快速生成美观的readme。 5 h$ P! ~ X/ `! T7 C$ v2 b
. @# e* l- o1 ]% `5 w/ H' x6 d6 o/ p 2 t% T. L& i/ G$ |: W
5. learngitbranching# J1 Z v2 a, }% F$ S
; q, U7 v( d& V, [ 8 u/ U! V# `6 o' _ }
% v/ s- o/ N! g& Q
$ o7 C5 f" Y5 P
6 O) O: [6 t2 |9 P# [$ Y- f) a! r 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。
- O6 r+ H( d8 Z# p7 V# s7 R
- U' k5 _/ q, n, u+ N# L ) {: A! s$ U+ g' r* \' p
技术文章
& ~ e. L$ V: R # {0 T5 k0 l0 g: K$ L5 B8 t
! p7 z# u! [& |1 \ 1. 了解Linux路由$ e( X- r* d9 e- Q
1 ~2 Q( h. `8 w3 X& k" A
r3 C+ |# f3 c/ g- C3 A1 l 过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。
4 K9 z$ u& J/ {' c : X9 n$ v) C ?1 \* z+ X: m* g+ C
% S+ e4 t$ P, C" y7 c1 ]% O
现在情况已不再如此。 ! i( Q: E D3 B P4 \" x7 U$ h
: z4 b% n4 U* K + c" \+ ~3 r+ y3 f4 W* b% }" W7 l
例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。 % Q: Q9 K `* F) ^
7 N; ^' c0 p |% v! @" H! O# t9 B* d 8 z: i* s4 W& ?: S& J
默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。 $ M5 Y5 s" i: e) ]; Y# ^6 V5 {
# \9 E$ U0 t5 K- b" P; K) B* E
+ z: m- Z K8 h9 o
通过这篇文章就来了解一下Linux路由是如何工作的。
! Y: b' D) r) b0 t( j' s: i
4 d! `8 E! E: a- W' q 5 }+ J4 o% l1 G8 d% W- q, k3 R
2. 一个专业程序员的10年9 }9 r, F7 h: Y/ k$ e7 g
! K- I+ |) W9 }, H, \8 W* s& t4 k
& I& q! J# b" H3 }% D) o 10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。
$ L( O' a; P' F. ], C
3 ]% u- O) v5 b+ \/ O
0 [( u6 a( H1 s5 h- b% { 作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。 0 s- G1 ^8 n% B8 T8 C' s) E% s
~0 k. p ]7 @0 `; ~. D
4 k A+ i3 s$ | P6 @: P5 O- } 举报/反馈 " d9 s4 p) r, G
& \ J, Z+ @1 Q# `
) i: _2 O3 S$ s; f
* u ^! [' H' g, @: X; L- u6 z# V$ H# o
?9 A+ Q( e! l9 p J- S/ P3 @ |