$ i: @, K$ w" ]5 u2 D/ S3 x! f4 s
* j" t+ i3 e$ b0 U x DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 ! E: K' y1 n+ \3 A
# t3 @) J' f, P( P
0 u/ x# Q- M& { 每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。 + b2 ^+ |8 ?- Q
" g: Y* Z, Y: g, o
8 ?0 R4 C' w; a! v. u 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~
* J4 ?/ N# I3 y , E/ d# Y1 H' [7 z) P
6 [# y) x/ B# Z8 A0 V& X; h 订阅方式:
' a; V: {( M3 E; i3 `6 G% W
8 ?: P8 P7 I8 ]( }& |) a ) X; A* \& M9 `) s
Star并收藏项目DevWeekly & G6 m" Q9 m2 y( m
关注知乎:Jackpop ' u: S9 e. Y. Y( |& P
关注并星标公众号:平凡而诗意 + m3 l' a1 w+ g4 u4 g
) u. o2 o9 t8 T" D8 F9 R* j
* m' H8 w: g$ K2 R: T 进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意! + \( @, F3 ^. x" J
1 t5 P; v$ Q- v: P# i
) ]# o6 i0 ~- B' e" O$ Y8 M 开源项目
T, @7 C- P/ \" C, P; N" ] 5 _$ D; @( j. b1 J
' Z |8 P% Z# Q q, Q 1. jetfuel
* t! o: o. s& a8 m1 o$ G
/ E# v% q8 a6 ]7 f# R % o% J$ o1 W- l/ H. N" e
PythonStar:104 6 C- h8 P7 F7 Z* ~- w4 b
- d% \2 C+ X) D+ S
& q3 r; {# s3 m" e2 L3 S: b. { ) c& W6 O" S, Q) N4 C# R. N
9 I+ C' ?. m; N, F2 e! Q. D
' \6 { i( \1 G Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。 $ q9 C. P( t$ E, n- O# G
, ~9 q( l2 k* S* \- q# w( \) u7 M& s
2 h) s+ f# n6 m# m% J. s 2. LovelyPlots
2 ?+ q, ^; |6 c4 g; s( Q
2 g2 ]1 i: n# u! i
+ y4 R# k; h4 t9 F4 W PythonStar:560
; z5 G/ j9 f8 h5 Z
# g9 z8 w3 U3 x9 W : X5 Z: m8 [' j* Y$ W
' Z" T; w* @: g$ L+ Q+ k! d 4 S4 X+ L: |0 r2 M& W
, V, u4 b0 e, s* Y LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。
9 H; e3 s' ~7 q9 f - ?: o/ J" b' p: e5 s
9 |; F/ Y+ e2 ]# c8 ^
此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。
" S6 E3 x" L/ u# o. a 2 g' _7 N$ }# G$ k- X
: |- v& X0 w5 ?) x- U* f 3. tsuki
* E( N# I8 h/ P# @# A: d/ m
# m; ~ k% B1 j
( g- ]3 T9 a% h+ B PythonStar:58
. E# N- N! w4 q( L! N9 j ! ~ o" N2 a" C& o9 @* ] b2 ~
# L) N) W4 P! a1 g, ]& G
Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。
2 J6 E2 H- E0 w# X
# X! v8 @) s/ ?( d: o& l3 i f: E; W% ~2 i D" f7 Z# R
4. Xtra
! ^3 Y$ o# t$ L0 S8 |5 n( O
]' ~; T e0 q; e
. z! O @, l8 S6 A& y4 O- P. Q' r$ {( B% X KotlinStar:350
1 g* l( S5 V7 D! W& O' r8 J
. q1 s( ?/ X2 m% n9 v0 F4 H
, `) {5 E. r8 b) ~8 R5 |+ K Xtra是一款适用于安卓的Twitch播放器和浏览器。
( ?6 X- N1 n/ |6 E8 e- w( Q5 s
# Q$ R( g) f8 @ 6 y( l: R4 ^- W! w# ~
5. sbctl
9 H- Z: I, n; R5 ~
8 D$ f9 [0 B7 u0 m8 N
4 C1 P' N0 P' A/ L6 H6 z. B3 X GoStar:555
. [4 ]0 H' H( U9 d " g7 U6 a. x5 F0 g8 h8 W8 c5 b$ E, @
% F4 ?. [9 W1 _0 q
, h: Q' v4 d. n( j
- }3 X5 T( [- D& T+ [
3 ]; b: A {8 l" k$ {6 u7 S sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。 % e' y* T; l# X2 k- V
' [: G9 z, t3 O1 i; x- `
4 K }* E/ k! S8 p) r! Q 6. cli V: M r d6 t5 h* K. I7 |0 }/ Y
/ b$ a: z4 V- G# I
: A* e9 g' D( D h& F0 N
GoStar:983
* x/ b: C* L7 O3 o/ i : i f6 d1 j( R
; K" I1 N& K# `9 X 用于 IPinfo API 的官方命令行工具。 4 B7 O9 A( y* i2 q! _1 `
) @* n- r" j5 x
2 F% G4 P3 ^/ P- a
7. thisisthewall( y; h+ Q4 x- P2 h, l3 n
8 W# n' ~+ W! [2 K' Z7 k/ N # w2 X5 s: y' c/ v) x5 G
JavaScriptStar:14
3 p$ d4 v8 e$ D9 z1 O1 `3 L
9 J6 B" Q! e: G/ \6 I, T ' c8 O: a1 [. Q/ A
使用此API,你可以在任何设备的屏幕上获取壁纸的图片。
/ ]7 d5 w9 a, J, G N
: f5 d3 ]- o& h% v5 ]6 D - {" q0 ]6 Q& d& c; l& C% S# m9 n
8. magic-regexp
6 u4 [; K4 L, T : x! e# L1 L# |$ P
# H# g8 X3 K6 V7 W: A* ^: t TypeScriptStar:1.4k 1 j2 q! A5 i5 g% M: `/ q6 T
5 z) Q6 I0 w/ E# [# D8 B! b5 \
# ^: K6 ?& X$ v 一种经过编译、类型安全、可读的正则表达式替代方案。 ! y9 @& b* @! E
% r: @# c- r, k R" O% \
/ \0 T9 }& j* K8 i2 H 9. frawk
. ^& y, a* F- |1 A; u# u ) J7 G: O o2 @+ Q7 N/ `8 ~3 P$ E
) c. y' a/ b: [# K RustStar:1k
$ w7 \' ^' {7 ^
+ s, n( K% e; z2 @4 f$ h# _
; g- A: l0 _. \1 H frawk是一种小型编程语言,用于编写处理文本数据的短程序。
6 J6 S! `" E3 U! k& x , d5 P% |/ a" }' U) D
5 b l; E8 o% {# j 它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。
: K5 _3 i6 H6 e2 E% }( C
$ ^5 q2 k% d* F) t2 G- c
' g) @0 u6 |, e 10. Vale& F+ S- g, R- a0 S2 j
+ o" r# h4 U3 B* {4 D. O
' G$ \1 v3 Q% b+ J9 r1 w: F0 V ScalaStar:1k 7 g( l R# Z& Z, \- B3 o' T
; ?" f7 t1 [$ w+ P$ e/ m9 }8 V " k: R$ r5 g0 H* B* @6 b: S4 P7 i
Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。
. C h) C6 x8 J6 S' F
) x' I$ h+ R* L$ E $ }7 _+ _ h/ e
资源工具
0 @" @1 P8 X5 L! v
; q7 r" X! e0 e/ a
& Y+ v0 d* h, m8 C: @- ?* ] 1. GitExplorer
( Q, Z9 A# m% ^; i: c " l% a' W( K- O
' `2 t X" U8 S5 s: p K- A+ P 8 G7 c# q! Q7 ~, L: X! k
( {6 P! ] X. G5 {5 a- B K- V
3 i _; v2 @; K ` 一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。
w# r. F( C! G
* S4 O: S2 _4 e+ w/ I. T3 k1 J * y+ I2 F6 L% I6 L' l
2. Bookworm
' x: `+ U* J. h f! M ( T. n0 c+ T& j
1 P( q! R- L& J8 P, `5 t% N * f- [9 T" [7 s4 v% C ] o
& _, V! w- _0 q% L$ } + U: F# m4 i: F
适用于 Linux 的简单而功能丰富的电子书阅读器 . [4 \: _% L. l7 s$ q& }
0 r- T( Y$ u3 d1 n7 R
2 a, I8 R7 y" _! } 3. gitlogs
! o( l% `7 \, d
s% Q6 {, h- P3 U1 E/ i6 p 1 K! J: Q" v, M# d$ E2 `9 D4 ~
能够及时准确的发现最新优秀的Github项目。
0 g6 J' t4 V3 r9 ^4 B) ^" t * t2 q6 V: G: G! p7 r% }
& [1 `* x; V$ V, L. ?8 a) p8 K 4. readme.so
4 |8 M& @5 d$ c- L
2 O, L* Y& |% ?
6 [$ V9 ] N' ~$ S g: x
" U9 m h Z7 G3 G
/ }9 q2 J7 L1 w7 W
' h+ S6 l& r! e1 B; e2 H readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美?
* ^1 e+ B0 k, w8 D ) R$ G1 {, {0 a# P# B0 r6 F2 W
$ F% X% P6 @5 ]/ R l" e
这款项目就可以通过简单的选择快速生成美观的readme。
0 R# V% z( Y; U* z: E$ C- M6 x
! L$ X+ Q7 G$ i; {% k5 j) H
1 I6 @. ?+ Y3 j8 H* f: @# n 5. learngitbranching# s7 b: P4 W% o6 y, ?$ P! l
* e' O& _2 H0 v3 E# `3 A 3 t* o* h8 c, K/ k5 x1 O/ p" s d* q
# |3 p* c8 i) h% d
! p8 ~3 O4 l& U5 Y1 ~+ A9 Z F
$ w2 y; s; {9 t9 v+ d' X. z 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。 . b: z" q- q# g' s/ } ~
; ~2 @5 o* U# x* T4 U( p" M
% z6 K6 V' W- y3 c8 l& k 技术文章& G% h! ~* o* n% R# Z6 d
! f* p( H8 m2 y | ! h4 b: r V+ c7 D
1. 了解Linux路由
0 u5 |* y* C1 u7 Z" q
0 [! {1 h* v' L1 g) {4 N & ]. ?) z# k! Y7 h6 ~% T/ }8 ^
过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。
, X+ P0 d7 d' D1 U& ?% v* |! j( H
7 R# F [7 d2 W7 [
) m1 f2 P# g! y. f: T2 k- w 现在情况已不再如此。
/ }( G. y7 p& }2 C) u+ o ! N$ i' I. w. s& Q3 i6 d/ h! Q. g2 e
* ^' r+ \% B8 J
例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。 \+ {/ m( _8 b7 P1 j& o
& L$ n* ?% j) W2 v1 b+ q5 F9 i, f
" S7 E5 q0 \- _2 L1 l% N
默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。
4 Q( X1 j t6 z- l9 T
7 n& x* t4 g5 _; B
( f& H- z/ T% G1 M& e. z; i7 J. T 通过这篇文章就来了解一下Linux路由是如何工作的。 * O$ E X& j* E- Q" \6 U
- _/ P+ `8 w/ A) J/ b: `
: m5 T, b0 O0 {2 z; m- _' H* s 2. 一个专业程序员的10年
- H/ E* J+ k% y$ N9 g! A3 l
# Y4 L6 A4 ~1 h- n) \ + B; ]% l' Y+ z9 S+ [0 X2 c+ t9 x
10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。
" k' _( ~3 F5 I1 O0 E0 F3 Z
! M" U, O0 j9 U( y/ Y! d
( w" u+ @( T5 f$ t+ c 作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。
. j6 U; s1 V6 q" d3 a9 T6 w" s
5 e; m& L2 J4 n2 o$ h# ~% }5 h# q
! G. G d* B0 {: u 举报/反馈 # l( ?3 E9 h' E' G3 {
7 `8 ]( ?4 G% G2 v1 h N" g1 z5 j1 {$ `3 U( g e6 I1 b- y
! `- i: a* D+ d1 H) g* g4 T* Z m/ T1 O% x [8 H% A; I! B
8 s7 p8 [# `' h0 W& z7 }7 R# d
|