1 ]8 W6 P' N0 o9 w+ c0 b3 L4 i8 I
4 d) o. W5 @- b, S3 t0 N( F DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 7 r0 n- K) R+ g) H/ G( R2 V
/ _9 O1 ?" J% S1 ^
& ?9 b; J/ Z$ ^8 x: H 每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。 5 \; z! P* [) ?( ]; J; [
9 Z9 R9 q$ n8 y. T% T& \; S
! A5 ]' @$ f5 n# ^/ i 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~
/ y Y- a, ?' o& M( G7 J N4 z' S6 u& P ^0 A! f6 r
4 n! j3 H5 i p7 t8 e 订阅方式:
z' m6 l8 c+ u$ ?7 _ ) q9 y$ r/ b! @1 ?
1 z, Y$ f% w! F
Star并收藏项目DevWeekly
3 q/ v( V* T' \ 关注知乎:Jackpop
) S2 [5 C3 R- ^. M! I3 h, b, z 关注并星标公众号:平凡而诗意 U I% T1 @: E6 S0 d$ z% N1 o* u
0 M( W9 C% R+ P$ ~7 i
/ k" a! l; }& n# d 进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意!
& N. |! ?6 W4 U8 P* X* B/ G/ f
" }: F4 _ a3 T2 i , \& X/ [3 C- w, E' A* d
开源项目
' h$ K j1 @" C, \ 3 ]0 d7 H2 [/ W+ l& _) X
* A( Y9 d& |( y$ w% y7 b
1. jetfuel7 B* d# D/ y# r8 D7 Y
; R' X" J# E% y" _9 X4 x! D
$ T+ d* F: S( e* g( p- A PythonStar:104
6 h7 m2 f1 C/ z& B9 J7 n
# w$ G! g5 N! m V8 t9 N' ]; H: k+ e 0 F- F/ ?1 K- Y* y1 Z
" h4 O6 r9 h$ D$ n8 y% X
4 P% D! e7 B8 L2 W, x
, G5 @. X% w4 N$ } Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。
9 f. R F; a# a0 I. R6 }4 J
2 ^* ^8 ^; K' j# A; R
9 V* e% u0 | B- Q1 j- L# |% Y 2. LovelyPlots
* x, {- z( u* Y0 \ 0 \+ {$ ?4 v! \9 }% x& h( J
: @" d: P! _, o, n1 U
PythonStar:560
5 I8 R6 k: ?& @+ Y5 R# k
/ p/ R2 {5 v, C+ O; ]; k$ C " _2 L0 X2 m( h" N
! v; v) H0 r/ v2 s' g+ O6 m( P
1 O. w( A: D8 @. ]9 ^
$ N& h% s( h- L- d0 R. r LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。
5 \' Y, @ K4 S
3 _$ f' U# F- g, D! ^0 K : k6 L7 N6 @: G! g* B. Q
此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。
7 V7 ^, `& b0 p# ]0 N7 N ) T( \& I1 t+ ]5 k+ ?6 n
8 |+ x$ N' X7 w3 S2 x 3. tsuki6 n; ]1 X+ f; W- _
. [* k% s8 x+ N3 @9 @
F: F! N' o+ d; ]: w6 f PythonStar:58
& `1 q0 M0 @: o0 Q* E6 Q ( K( m* [$ q8 Y9 B+ [7 `
1 l0 V& O# h: S, J3 b6 W; P Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。
?* m7 K! k* ~& {# P" T
2 j# o5 Q% g7 E # E. k9 ]. M: c: j' ^ x! {# d
4. Xtra( G4 ^6 ~+ P6 Q* G
2 S1 }7 s: I) r5 B8 N3 R
4 B6 ]" ?% Y% y2 ~7 G KotlinStar:350 4 y& [. _& b, C
: J8 t4 N5 e- D6 X5 D' ? 0 [1 H( j$ l' }5 Y9 E
Xtra是一款适用于安卓的Twitch播放器和浏览器。 0 @# k" \1 h+ X8 q& A
" U) A! c8 t j: x- s( N
x- \! E9 @$ {5 w, N3 `, e7 n& u7 i0 `
5. sbctl
6 ]& R' E G V ' ]6 \ k5 o) I- ^6 u
H; | J& o* F
GoStar:555 % H- @2 G' |: B0 ?* Y4 H7 M- M% y
: z- w! N4 }0 L& P" c$ v
& {. M" Z* ?# V ! g" h0 ~. m1 Y1 V: K
1 c, ?7 Z% q3 S3 D 3 T; s1 D7 ?4 N, ~" J
sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。 0 O o6 Z! Q( d5 J: W+ B
* g# Y/ {1 N% e3 j7 Q9 D, ^! b( k ( W8 I) H- `) ]
6. cli- u% N& e+ `: f7 n
" A0 H! c' q7 t# v0 ]/ f
) d7 N+ T* }- c' {. E: g: { R GoStar:983
8 R, ?9 j2 r. H % U! X* D; ]. z% g
8 w4 v2 G4 A6 r6 X 用于 IPinfo API 的官方命令行工具。 1 D, F4 J4 I5 n' y( O8 n
' c1 G5 |) v1 J F
# P) x( L- D3 R9 ^% T, ]
7. thisisthewall/ K! ^+ E, q2 X$ O7 V
9 O1 t6 h+ i% b b7 G
# H$ C# ?3 H: R9 Q1 L9 @( ?7 C JavaScriptStar:14 % _/ {+ k( u3 C8 U
2 N2 Z7 Y5 l: h% T4 j6 t/ `% n / X: k% k# V. \* V. j- c
使用此API,你可以在任何设备的屏幕上获取壁纸的图片。
. ^% ]" `4 k1 G. W 6 t# Z1 @. ^/ w7 z) Z
# i, ]5 V: F2 C* R
8. magic-regexp
: r2 W# ^6 p# H( }) r* K1 a$ q
% h8 e7 U" Y# b% F 1 }- g3 h: `! P
TypeScriptStar:1.4k
9 A0 [8 g! J# W _2 y4 x
5 l! n+ Z3 T0 Y, k " G8 k6 p2 O. Y1 P. ?
一种经过编译、类型安全、可读的正则表达式替代方案。
, f% \0 q% m8 K, j 0 y( G2 Y7 Q- J" i2 H
' a+ R0 ^) T4 O5 C4 _5 l9 i8 t, ?
9. frawk% G$ R" F7 G3 E8 s
3 k2 D5 \2 _4 Z: O% {( q
. A+ P3 ^" V# P! _) W" |( H RustStar:1k 8 w0 H% |2 [2 |; ~! \4 t
2 u' r V# x7 @
7 ?. Q& {9 f" m9 n1 o* b4 N: m frawk是一种小型编程语言,用于编写处理文本数据的短程序。 3 ~4 j' T/ r& f
( E6 {" b& R, i0 b
0 Q4 w6 } o i6 b. y3 e 它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。
1 A8 G* |5 b+ I/ H9 _ m, Z; B/ f2 Z ; ~ F; e; X* [9 @8 ~
( m: |( j6 S1 X
10. Vale
) B* T; H, c8 k2 a+ z; |
; e) _0 h7 G8 [9 W8 w4 x5 d+ p
: E& \, Q( x2 Y$ K; n ScalaStar:1k # M: c8 J- Q% Q
0 g# a+ B8 p' W" B( J9 Y0 w+ `
( @0 ?7 q7 V5 y0 @9 Y7 {; F' `
Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。 4 a! ^0 F. h" `; F6 i6 P. D
( R8 X" Z2 X6 ?& g+ ^3 F 7 l9 ]( R( U4 b' t$ }8 h4 Y) U- S
资源工具5 z( ?; G$ b8 X. w' j- P% f
z, g% l3 u2 J% s) l# R2 W
$ S# o3 K( l* n' Y( m 1. GitExplorer7 C0 G: F7 Z! v
8 R7 F0 {8 ~. A8 o/ Y" r ' }1 }( g. b5 m
. O8 s9 s! ~5 T! t% j
! w' `( s j5 H s 9 {# _/ D5 M. @: y( B9 S
一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。
: [# v1 u4 Q8 w& G9 z 2 K( q- X# j' |
2 q7 {$ F1 f4 W
2. Bookworm/ P. r- {. J5 W0 s, W0 V( h
9 R# V+ t0 |. l' U1 ]4 @ ) w/ s$ U& o8 Z' N6 F* u6 H* [, h
y8 s) e. G. H* V* B s5 ^, b; @ - Z* t$ y& R* F, p! R5 i+ I/ O
4 Q8 S. M/ \' i$ ^! @# i9 H 适用于 Linux 的简单而功能丰富的电子书阅读器 ! { K) M: _$ W! F, H- h. s
5 ~) W" x. E5 B! B. F+ x( x
: R/ Y, {' d2 _& u0 A" q2 T N4 D8 B
3. gitlogs" e" C4 l9 x8 c' d" f. @
, V( J# D/ _4 S8 W3 Q
- n) _$ n+ e3 u/ j$ A; V0 K 能够及时准确的发现最新优秀的Github项目。
4 H# W D. n' B( n2 A
0 ^8 v* |, }, S# f* a
1 G4 ?- m5 C! }) ~6 a 4. readme.so
1 t/ c* |+ c% `" X7 B2 H d% | 0 i0 F) N0 s( C
6 C2 ~% e, L, a8 l . {2 X" e2 d) ?% F
! R6 A, H4 y+ u' M
' E* g0 z2 n5 A9 ]3 I- @, b0 L readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美?
+ |) C `, h3 J' p 0 p- u l. h; H9 I; p
5 E% E$ k4 w3 g2 T4 Q# `+ x1 w: F
这款项目就可以通过简单的选择快速生成美观的readme。
4 u$ Q7 J5 E! H* a; j8 H
2 p, j1 a+ ]& e( w, A
+ c8 v; I4 E$ I 5. learngitbranching
, z; }6 z- F j+ p & Q4 G B$ R2 ^4 g0 i% x; v- N
# f7 u4 I: r8 f/ _& E( B# @
) e) T' o" y! I. H' p& o" [ H0 }7 @3 V7 Q0 w
* r/ A; A1 p! r, N1 Q/ Q1 b( a 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。
, N) g3 c N8 x 1 L8 u8 p5 Q' i2 p/ E
! m5 I$ v% {$ [1 U9 d& `! R 技术文章
. \4 A* g* |- O/ q! f ' \1 @* X4 b- r+ W
4 R$ f) P6 t2 {+ ]/ q) Q' n
1. 了解Linux路由
/ @* O- U8 s" p' k4 P & a5 I! Y/ C) h5 I, t) v* p
9 |- d. |7 P5 u7 P" U" L+ U: {
过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。
1 {6 b' K- p/ p5 M
; i }# g7 h4 F: F/ \3 v u: ^ # a, ?4 d6 G9 [, K D% q( o% i
现在情况已不再如此。 " S2 B) x: D/ K" m) h V1 w7 g, C
& u2 A& }. ~ }' F6 f7 J( Y \, t; R1 Q 8 ~: o$ v5 p( I& h
例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。
5 ], ^& r6 V5 @( C L3 ^2 X- j8 A7 g
; ]+ S; v) ~- I, @3 c5 w) P- I
默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。
, y T. g! e3 B4 o
6 g/ E- c2 w5 A6 l
: [; C# G# U6 W9 } 通过这篇文章就来了解一下Linux路由是如何工作的。 . V# m$ X! _: T$ I, `
0 u; e4 s5 }2 O. c' u9 f" W! D
( m& Q4 I/ o! n& Q' |9 N' r 2. 一个专业程序员的10年
+ U! d' l$ u5 N& \0 f% N- \! c3 k $ r+ s: `& a( l/ x* y6 k3 U
- |: S# b f+ o. K0 E. n$ w( T# g 10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。 $ S1 J T& c! w9 M
t! }7 r- S" d; ]2 Z l
1 }5 ?9 U2 Y+ z0 z# G# @
作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。
8 B9 B) n+ c- d0 c4 L2 v , U: v0 u. e1 {% w8 A7 z
) ?5 P4 ?: |: u7 f
举报/反馈 - J' S+ B8 \, h- ^ {
7 j- @+ y Z; R5 f, W4 I+ v% s, G5 \2 I# K8 B& b2 s* w9 p
1 V3 J% b+ u% P' R* R5 {+ O# P; b5 r
! @; `* J) y. x* i8 p
D$ T$ i; |) G8 B9 j |