. A5 p" l+ \4 W* x5 O6 Z. q& j
' j3 B! P+ X- C: ]
DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 0 ^ o7 t0 R4 c$ b, d
* A2 y' c( o, ]' t! e$ \
$ l% u7 ^. K9 I+ Y2 x
每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。
5 D) W+ U% r5 l
. A8 }$ D4 U8 m$ I: C; v" O) \ 1 i% E ~; w8 |
欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~
$ n7 S4 `: w/ F0 }" N( ~" b. l' d8 ? 8 u, l* @, y. t/ M4 y# B) n
9 I2 y# L* E" l1 _# E- I1 X 订阅方式: / M9 ?4 d! @8 r0 y$ Z2 R
, e1 H+ O% c0 u+ ~8 [8 p( E
( L0 Y- Y _# c5 Y6 \
Star并收藏项目DevWeekly
' A% N, }, g' T- J% z6 `) V 关注知乎:Jackpop 9 v' w: ], R9 `9 R4 l# s
关注并星标公众号:平凡而诗意 1 E' t3 X( c3 a
- M* G6 R* ]0 h7 ^
3 E2 `. w; M+ }" r% e 进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意!
6 N; F: G5 p3 h8 M
6 h3 L1 h: k0 O$ @& y$ h* m & z r0 h4 I' i
开源项目
0 O. Q5 ~, I& m' t+ }' g; M2 U; b # F: X0 H" W' t2 s/ P+ F f. s
8 f S `8 Q8 Z. L9 D+ D t
1. jetfuel
! ]- ?+ T/ ~! i; K* H0 k' N: X & c- [3 V7 ]& ?- O Y
' P% m" R* R) t3 [+ x, ? PythonStar:104
* k# M8 t4 j# ]) e; \5 \
2 U1 p& Y' _9 R ! N8 B9 T) L5 C6 u0 j- S
/ [: w5 U3 A( B! ?
/ F$ U+ |. h% r) o' P3 V% L 8 _1 b- y& p- a1 D5 f
Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。 6 ^5 q/ j! ~+ ^- L$ B) v
2 U+ `. k+ g9 M/ h5 Q% I- ]0 I
* |0 K, \. m% m8 X 2. LovelyPlots+ J( n7 a4 @& j9 f1 }7 b! X6 R
) f C5 T/ T; Q, K ! i0 j; \- E: }! c; G/ @ r8 `
PythonStar:560 / d" Y; I+ A' n
, M0 a* N* k# P& B* U) x 2 ]6 P; _" I, }, Y6 i1 M! e* _
4 I2 B3 C/ O; c) ?9 j7 l
3 `; ]+ O7 f Q9 X ~7 l7 L8 ^
! z1 V! t! p0 p" r7 ]; K; f LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 , N- X P6 q# A5 v& {
: q; T; d4 P. v+ U
. o- ?0 n8 E/ S5 z M
此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。 4 b. w( S u D8 g( r! T% z
- H s; U' D( |$ ?0 ?
6 z; L! n: ]% L- I" T 3. tsuki
8 Z5 T! z- x \0 Y, \# x9 {, M
- Y, O( t( \+ l- @# f 2 L4 u: J0 Z, r, r- P
PythonStar:58 - m% x$ D' z" B0 a: {9 _) A) M
7 L+ W8 X# K# q0 p1 L" G
; R# S: D: T- d! `8 c1 n1 _) d
Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。 & X4 K2 U. ?2 C8 q+ I
1 e' F, D" g0 M, ^1 M3 \
& J( ?/ u2 {3 @9 M. `
4. Xtra
% O. |/ Z9 [% W9 i8 v2 Z9 N- O0 y
- y: K2 L7 [9 b5 q6 i6 I
# ^7 p( s. m( i1 G9 J" M KotlinStar:350 ' Y% W* o8 A* |( p$ E6 g
3 [+ d3 Y4 z0 S: g
: d! s8 U3 b; M$ H* |* G
Xtra是一款适用于安卓的Twitch播放器和浏览器。
) D4 D+ ?% z& k* _ ; L7 H. r9 u2 N" M
4 U- [+ }6 Q, w- t, d
5. sbctl
: |" h) _+ G- }" F+ R; P! M) ]
2 y6 L7 c/ @; H & p) d6 I/ q/ `6 h3 |2 ?4 F ]
GoStar:555
% V. f# e$ u1 r9 E( h4 }5 t
- U3 U6 V0 g6 i( |
# i5 L! I0 ^! F3 p4 C) { Q( K - p' G. B9 Y/ F% d9 }$ k' E
, I3 G r$ M( f% T
8 h6 ` ^! ?$ Y/ u sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。 6 o* w/ I' t6 z2 I. g
. N* E7 S2 a# {$ x/ |
7 P7 i6 ~8 H3 K0 c, C" u6 N
6. cli7 K u+ ^0 N+ K
& w0 q, `. O7 ^
& r9 {# B% O6 [, b% v' S GoStar:983
. d5 T2 N/ n, Y & H! |* W5 G8 ~
) d$ Q2 [/ m) y
用于 IPinfo API 的官方命令行工具。 % l+ P: q3 }2 P' k: H
4 j$ u8 o( k$ D# u8 V9 i4 b
4 z( N% P. v6 F! j6 v( [, _5 Y
7. thisisthewall
2 E' s$ Y2 F/ w! e8 f* i
: i" m* `" a* W2 N
6 g( P5 b, }; r A- R JavaScriptStar:14
I$ A" l7 A7 r l i: t ; l( `" i/ J3 F( F2 W* I
1 W w) G0 K) Z1 `; S* Z) M
使用此API,你可以在任何设备的屏幕上获取壁纸的图片。 / Z# d" |, R( a s" D$ {" \
7 [ d( E9 a: Y
- T) F# A) N$ |- U/ S
8. magic-regexp
; G! Q5 @0 M5 ` 5 S) N, g# s& L) v" {3 s; h1 l* ^
% A/ X! [! h' {; s9 k
TypeScriptStar:1.4k
3 Z; F4 b% m/ l' w 5 ^0 m& H6 R8 A9 v' C O/ }
1 W, l+ @0 o8 ^ y; j 一种经过编译、类型安全、可读的正则表达式替代方案。 # m5 w2 _" D" e* j7 z
( l% _8 R8 o& w! T! E6 ^. d
8 l8 {+ X! S8 i2 F8 V 9. frawk
- M2 S. ], F# W, d
8 d6 V2 t5 G2 ~& \ , k, U5 A$ a3 ^. N q
RustStar:1k
5 E* \4 D& f& w5 L2 T. C
) x0 b$ C8 ^5 ^. F2 ?& c : s& E# V0 D2 o6 }7 L/ |7 R
frawk是一种小型编程语言,用于编写处理文本数据的短程序。 + p. Q b4 S; g
$ G7 B8 g% v ]4 s9 `3 Q2 K/ s
{" F% U* Z% _2 R/ s: Q 它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。 % U3 l$ {. B: H; b
: j+ {! C! e% {7 I* k4 d4 U4 y
5 g6 e% M7 t, J$ C: I 10. Vale- u3 K# v9 a T. J$ s* k3 z# K
# l( U2 N, K3 m) \1 O4 u
9 ^- x+ R5 Y n* l$ ^ ScalaStar:1k 0 ?5 W+ c( V( U; U! ^+ ~/ v/ @
7 K! i' U. d0 M
& e0 L0 m/ e( [' } Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。 1 ~; S- r3 Q& b2 k
3 O+ V7 W/ i( J1 Z7 r1 j5 w
6 x, B) M1 g1 {1 w 资源工具
1 |' I, U+ K2 o: }" m- U 0 p* S; q Y; K" J' _" ?) V+ x! R6 }
1 w; c' `5 N) P, P* ^9 Q, ^9 R
1. GitExplorer t6 S) z4 e! w) o
; c/ X4 ^. F! K2 W( K
$ T6 q& P. w; r- i) m4 ~0 y
% H b' H' b$ p# P6 h 0 u- G/ d0 ^3 {
# ]- C5 f/ e5 n: B* u/ Z
一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。
5 f q( f+ f5 D, x
7 k/ \( b. a# _6 d+ k( j9 K ( [0 V ?2 ? Y% G
2. Bookworm
- O+ L. e+ [6 K
/ m9 z& u B$ z1 r. k
1 \* Z Y: w0 ~. Z8 ?, v, q* K
5 u0 B5 r+ C0 E" V, i1 L
. z* t7 }$ N, Z8 h - v |, e2 b5 \* v: U7 [" N9 d. j
适用于 Linux 的简单而功能丰富的电子书阅读器
& H5 V9 p" o0 x! j" J w" t. n S. p4 Y
Q& Y( L4 {- v$ R" C) X7 |
3. gitlogs
9 q/ o4 T+ p- Z% c1 D0 Q
. R! C0 c% T9 {) S/ u% \7 r 6 r1 M' N8 D2 B; Y
能够及时准确的发现最新优秀的Github项目。 ( [( ~! @4 j" C: }8 |
, U# c$ N! z9 q. [$ G. L3 r2 M( W
. T+ ^/ Q/ g; ?6 ]! C 4. readme.so6 r1 f% U+ }2 V
e0 r4 P5 Z" h" C0 X3 f1 S
7 Z. i( }- ~: @7 u; f5 j# w0 ?
% h1 E. J7 p8 Q0 ~* ? ) d+ t# x) ]7 D
2 }2 ^; C1 D: ?' M4 e' W readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美?
( E3 ]8 P4 E' _% ?; `8 \, c( [- v9 @
3 E# U6 S7 {* T/ ~" T' I, k $ s `# U" U6 N0 p' m; ]! h
这款项目就可以通过简单的选择快速生成美观的readme。
! C8 d" R/ s4 f. h# [) z
. e( v4 T2 w$ l6 o, o( ]! C
, h) o6 a: P1 U& o4 |* G2 y 5. learngitbranching9 Z/ \5 ^7 F- i, k
& J$ R1 K+ z( {0 o* p, v% g
- d; ]2 {* d8 z G ; x. z/ c% F/ w9 Z
6 d" d9 B# l! ~- b- @! u* A/ ]
- y- d* A( c- A" P( o# Y q 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。
9 U8 n1 G, j/ K: g& M
, \: p }% T0 Q# `' O9 R' n7 c ; c1 D* D7 k8 m
技术文章
4 i3 [& ^& u6 n; [9 p
" N- M, B z7 ?. x0 @7 f \ C! J: o' l$ N7 b* K8 G4 r
1. 了解Linux路由/ e4 ?1 `3 i; R; ~* D
. n w j- U5 A6 q' n# n% f& n( {
* `! B8 S" Y7 _, v
过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。
5 d; R* w. W& _ ' q/ b! F3 c+ K2 I1 I
4 }' I% I, t) v 现在情况已不再如此。
1 T8 ?' D3 S' m0 r# }* N3 ^6 A7 W : x" r& z: @ O! |2 b, b
7 P* f- z4 z3 D, K, k9 t6 f& n 例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。 2 T0 Y/ g0 C" d0 Y5 x) g. h+ c
- z# ], A% Q4 I! H
, |8 I$ j0 ^. ?" `2 c 默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。 $ m( r" b2 _2 s0 x. B
% X+ i! H* X% ]9 z( b
, w- l' \0 C/ F: b, c
通过这篇文章就来了解一下Linux路由是如何工作的。
" h* }7 ^! g. {, |9 w
7 f4 D5 ~; E: U' }+ h& H 2 p3 ^3 Z. n7 D( c7 g6 r& J
2. 一个专业程序员的10年0 ~+ ?- w# T: v1 ~# R9 ]. ?7 [
6 f- ? ]' b" A7 }7 w
0 @( u& m& @, e f! f) L: A
10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。 - r. i h0 J1 Q
, i& N9 W% T/ f( I0 F) [. P# v9 S % d: R& Q, i7 w$ N" c( Z
作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。 ! t5 B1 `7 X4 A5 k
: l D* Y* i# ]. B
: Q) }* A" m* M% Q! R7 k+ N2 A
举报/反馈 # L; K/ e: X* J8 @+ x1 j% s4 V
$ m7 Z. ^+ V5 y8 f1 M+ \$ b4 H. m6 p* S3 T5 T9 E: V N* `( j
: Z: l) ^3 u" Y! G0 C% ?! t+ R( S/ x/ J' G- a
5 l, w4 o. E3 D% b9 K/ ] |