1 `- Q( D/ F. W0 j; q- U% L
& Q, H/ {8 `. a, D' F4 \! L! \: U
DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 5 g. S; g" l# T `- V# @
8 y/ p% @% L, k8 h
& N1 o, F+ Z0 b: z E' u0 D0 Y
每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。 ! Q& E/ D9 g# m) R" }
' b! P# l! N! V) i
8 S; z: o- ?% {: Q4 d0 C 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~ % }" @( g- S( n4 G; _
9 K9 M2 ]2 y2 @4 `9 x( o# e- O , a) q& ~2 }: z/ d0 p( D
订阅方式:
( u. n; a' u" a; }8 O- a i5 T& q" T2 A6 j0 `6 w7 B
8 L, f8 Z/ F' P5 w Star并收藏项目DevWeekly , f& U0 j3 C; L9 h
关注知乎:Jackpop 1 r2 ^0 _) h8 j+ r# i
关注并星标公众号:平凡而诗意
; K D' N4 Q$ g, `: r $ B/ i- Q7 M( F4 Y& {
6 E ~$ F. V% D4 _( M3 X9 i 进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意! " ]& ^0 |; N! C8 S7 }8 T2 q$ @
8 B9 }. w& C& e; @" R% u6 Q Q1 q" }
% c2 Q& ?7 {) P3 o5 Y6 ]: @/ ~0 a 开源项目% W7 d7 H8 {1 r1 R2 n! M9 k6 R y
. i; l5 m: g9 j# P
4 V. T1 A$ I ?! U6 B$ z, K9 G
1. jetfuel
, ]. \7 n1 D+ d5 `; \3 ~4 T0 @$ n# \ : Z/ C) a1 C! v0 ^3 o; f
1 |8 |4 U+ @$ [* P/ L
PythonStar:104 1 f/ ?. w; r" S9 B6 x: m3 X
$ B! u% H6 i U
+ I3 H! H( X7 F5 r+ r5 V" j% f2 W4 A
0 @# l0 v2 Q* O* w2 Y& o 2 r$ Z) \: K+ p8 I% l
: [1 P! {' N$ f# ^5 d
Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。
+ u, Z) t* j" M1 v5 L
" K6 w8 y6 T' d* G; C
7 d" e3 W3 i9 h" f 2. LovelyPlots
6 c. z5 W6 S |7 e8 p# _ ' m; C, S/ g. c# d: I& C
" ] S6 l8 x8 g; B. l
PythonStar:560
/ E* X) z) n! B: Z5 D3 M 2 P' ?) q# o0 Y8 s& J
" l' n% s6 ]$ K* Z7 p- J " M: w2 ]) E8 }5 I; e' n
0 o6 m! w$ y7 q0 a! ]
* J* R ^+ G9 _" @3 M! F LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。
3 M1 _+ J! b J/ ~ , b9 C- B4 M# p2 e* J- c3 j
1 _1 o& ~8 j' D! ^" R, E5 O 此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。
' d: ~" }2 p! D' v4 P) N! P 4 D* W$ N$ E9 f& g9 w& x
& T+ F! m* `2 x 3. tsuki( v2 o$ y& C5 p! x, l0 }
5 D* g, S7 h/ U [
/ D' {4 S1 |$ B7 ]; _2 h( J PythonStar:58 * D6 \# t3 f0 U5 P, J% P) f
* F+ {: v# N* q! d
2 y' n& ~; e" f) M Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。
+ N! W! \/ P V, s % E" N3 ]/ i! k( n# L# W7 }0 M7 S
! S/ g; @% s* ?7 P7 `4 |* @ 4. Xtra0 l3 @! l! M7 [* K6 w/ f4 U3 T6 @
5 Y4 M7 j# I4 Z; a* c * C! r+ K$ ]& e( d& g
KotlinStar:350 5 d. Q9 k* _# i' Q6 [2 T/ K- [
4 f( y# r. ^0 \! c# I, ?, M 0 U7 R7 g7 q( k+ d$ x8 c3 \3 E; V
Xtra是一款适用于安卓的Twitch播放器和浏览器。 , m9 x1 j3 S1 t
' y4 w$ [ {8 z. G7 g3 i. z
- o' y$ j! l( ?- q 5. sbctl4 \/ P7 M0 |4 |5 J" |
$ |; _9 _% B1 }1 F4 h, {5 ~0 A
+ i4 H' p7 J: b6 R7 U GoStar:555 ( ^/ `2 [8 e$ R7 |. Y5 T& Q
' S) ?/ q/ O! O' k2 A! ~% ^* I + Z7 `- p! y) o
- v, v5 C( h& l $ S' T* A0 x0 j N% _9 M7 P) b
; {: N( |7 }: J* c
sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。 . E' p8 ` a6 W, Q0 d) P8 n9 Z' y
& c; X* u# v' R! y! [
& Q; }' h# W- c1 B7 R( q
6. cli; ^) i+ Y$ D6 L$ J' |
+ D3 k) u0 W+ }; B; i& Z
7 ?7 [" [4 c, \# a( l. n GoStar:983 / m7 o$ m5 x) W6 M: @
6 @/ @! c5 A5 f2 l
) Y6 G! o+ X- c/ @0 J" x 用于 IPinfo API 的官方命令行工具。 ( Z. @: J; I) f# U% H
0 d& N! |5 t0 D2 y 8 e4 @$ ?/ g2 S5 s
7. thisisthewall
3 J% ~$ t0 E9 |" g! u ' p2 ?* F }, }, x, G7 ]5 N4 D
3 a( D6 o, m8 t8 p JavaScriptStar:14 3 q6 i6 k6 N+ s( g% b
" D" B: L* P; I% j. t [& t t
' S! W. p+ L( c6 Y9 b 使用此API,你可以在任何设备的屏幕上获取壁纸的图片。 $ W$ c6 {, u ?+ Y2 I0 i
; e+ s! k9 L) [
' J0 G, `+ |/ J- T) |/ s
8. magic-regexp, X3 F! M- Y7 X3 }$ H Q
1 U f- O/ Q$ H
$ Q- W% f @0 C5 `7 D' [4 X6 W Y TypeScriptStar:1.4k D8 X0 f1 j; A2 ]3 j8 e, p
7 H, B* x1 E! o$ j
* W. U% f! k0 F: U) J/ @
一种经过编译、类型安全、可读的正则表达式替代方案。 7 l- |$ u, m+ O
* ~4 L+ i- ^2 B) l
! I+ r C! t7 k, t' B k, Z) H. r 9. frawk9 Z9 t# l4 U# \- X5 ?+ ?2 y
. m/ l4 R/ e% y$ N+ k / ~/ ~, |* J" r" i* W& Q
RustStar:1k
$ c8 q2 K* n0 c9 t( o5 Q3 v, h
) T8 h' o# I& D* n5 n ! V8 N' ^9 w4 E" q
frawk是一种小型编程语言,用于编写处理文本数据的短程序。
, h/ D1 O' C9 x/ M1 i8 v; Q
9 K) W: n) ]% H' a 7 O' {, s3 O) n% E: k g
它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。 + Q R( ?! g0 |/ \' L
6 `7 m0 ?* `7 u: E
( }% g/ K! k* y; p2 j' ~ 10. Vale
7 _0 ?/ J$ H3 a* _5 w' N1 d
& C: U# i' @2 p% A% z0 W" Z $ u" f; b9 l* A4 Z2 }
ScalaStar:1k 5 y+ u; H6 ]9 a: Q: |/ F F
/ ], j& X! t) E$ S
) m4 u8 h5 f5 h; \ Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。 5 W, L9 H7 f) E8 m' q
2 h) t h. G E! ]8 q5 \
: ~) P" G4 i8 t5 A. A$ b 资源工具: e3 i1 q0 B: U$ ^
+ P* a: N, A! d1 c1 @9 e9 u 9 L- J- S, G4 G1 X
1. GitExplorer% t7 j, Q: \. _& \' |
$ G b! }% p4 ~
& F* f- O9 b% R _ ; _" z* f! I' f7 c, u: D- U( g
$ H8 {3 Y% C2 T4 @ - u( K% u: T; J. {. I9 E3 ^
一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。
* i( l: p3 A0 u* Y ! b Y2 ^! a! L0 m+ F6 j
" D& d" G: b0 ~8 N
2. Bookworm- ^: b2 Q$ Q h5 h1 j2 o" Q
B, p X5 Q; Y( D 9 {* B+ X% }- n) B
/ k+ g1 c' U+ D9 J2 e3 e% s( _
% B6 N, A: z# U; i/ a
9 Q, T ^0 G9 S 适用于 Linux 的简单而功能丰富的电子书阅读器 ( [- ^9 A. i0 K9 V" ~; X
7 H& }5 s4 o) D+ m. t5 r
5 g0 i* ]: ^6 m$ T2 l, k; V 3. gitlogs
- K+ c$ x/ W- q
Y! a; u& ]7 Q7 Q @: F3 m) E
3 _+ V1 u: l* j- y# q9 w 能够及时准确的发现最新优秀的Github项目。 $ S0 y7 R3 I6 i, ~
9 U2 P# K5 j- v 1 Y" z8 \5 M! T! L3 h
4. readme.so
9 s& {3 f- m) h* U+ ]
) }, Q8 r4 b( Y " @ b& [8 j0 l) r
! e, a% c' R0 b3 f
g1 m9 X2 Q3 R* X) \0 f
8 A' T4 H) {) V. p* A4 ^ readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美?
5 V9 f# z5 y. W0 D . I/ {% ]+ Q/ H: e4 I
" I3 L* }8 ?# {# s( |; d 这款项目就可以通过简单的选择快速生成美观的readme。
/ G) W0 {! R6 s- ^
" }* I& V+ }8 K
( x# o# k9 x) F* x) v) Y3 w 5. learngitbranching
3 ?) ]. n, e9 ` T/ @4 B
+ J1 j8 |, d3 V/ b: T/ n% R- u# V
! t7 F W) n/ a% e% o6 w) T/ O; P 8 j6 l; T5 e n9 N/ N0 j0 x
7 \$ J2 B9 |) f& C6 M 6 a0 k6 j+ ~; B e
一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。 3 x6 R; \. w) q) X
+ R& E5 o6 n. G" y- F; p+ j
( w1 z* r2 V6 u3 v% P; h 技术文章, p: A4 w; U+ [: H
" C" c, ? W, z- D0 G0 y
; L. Z2 Q. H, {" \6 D! ~, x
1. 了解Linux路由% r* F9 O5 Z8 n, L
1 A4 x4 e, d/ H- G. y0 _7 [
3 J' G" y0 c) P+ X: ?7 G$ P 过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。
6 c8 C* C+ P+ @: D$ S' y ^) h1 s! Z% q+ u$ W5 E* D
' r7 d" I) _& R# p' E/ |8 x# y. ]
现在情况已不再如此。 * ~' D: y; d) _7 ], b
9 a/ h* P) I& S0 G$ e+ q% k0 N
( i6 `% G& Y8 x: o2 ?: h 例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。
4 u4 c: k& X d- q& ^" Y
! l7 P- X# W6 Q) \7 S# F4 F
" b4 k% \7 J! i' E 默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。
% w7 G1 [" J) p1 o ' Z+ |- Z0 I7 S5 Z
0 A- S2 n/ G( F5 H5 L3 j7 | 通过这篇文章就来了解一下Linux路由是如何工作的。
+ e/ |2 q6 b H+ u2 L- D ! \% j6 p7 I! j: J6 G. U! A
# t8 q& g$ e2 `; f, V. N; ?' M 2. 一个专业程序员的10年
8 I" Y4 z/ R2 S) f: t 7 k7 U6 l" v9 T5 r4 X; q4 b
: j/ r# h1 F. B6 T 10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。 , P2 D6 o& c! n- C
. f) c8 W$ s* L {+ P0 u
: N" T$ Y, Z- l7 H
作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。 7 j7 s1 `! \$ T0 E3 a" |8 g* C
0 D& N3 p5 h. E+ E3 [+ o o2 v
' a+ _: w _8 V: _) z/ E
举报/反馈 6 N5 C- ~0 H) q8 x# i ] M0 g
2 l+ ]* S; Y9 r$ A6 l4 {7 I% L3 t# |7 C2 M
; ]( `5 W3 F5 _; K# o* O# E- p
* s0 u9 b3 s0 s% P5 l' b( ?4 F3 U1 c/ J+ B& Q5 {
|