( } D/ Y, z) y
$ k5 n8 {) Z# L& t a$ K
DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。
) y9 |4 R, n% F/ z
" C9 m' W; x6 Q5 _9 k
' `0 L" m+ [: @* E0 r 每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。
' L! n0 L. ?4 q- s ] # [; T0 Y& N: L4 y5 M; `
8 I: G# u0 t" S6 |: C 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~
% w( `. e+ ~- ?# O- D
9 f. f1 c- Z5 r) p% @
0 ?6 d8 V1 ^1 O 订阅方式: % b0 I6 U$ }: \/ w$ v0 l+ E+ \8 ]; h% F
% P/ a8 r3 V0 @" l" d
7 k' m4 [5 m2 d" U* V
Star并收藏项目DevWeekly
* [& y/ F2 |( f1 v7 f 关注知乎:Jackpop ! l$ j6 b4 J6 W6 B' r9 `
关注并星标公众号:平凡而诗意 & b. P5 E3 q. o8 p# i
1 w3 N# d' f! w/ i: `' D j/ f 7 i2 o' N( O3 ]' ]9 T3 j3 V
进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意!
7 B4 k. }9 C8 L9 {' }3 q
) ]; j9 Z' F3 v8 B# g( w
# O3 Y+ C9 e) v% `) g3 K# n7 ~ 开源项目 U9 t1 n+ _/ ^* r! \: u" J
. A u% F( p0 b, F1 ]5 ]( {# c# `* |
, |2 P5 q+ E. m/ d0 P' ?( S7 | 1. jetfuel$ v% B% m5 h `/ S# p/ W8 x# Z
. @. W6 A0 h b J, E+ Z. n - L( Q [) B, p( N7 }7 i, ?4 M* a0 g
PythonStar:104 . d) q& F3 M) @* Q. }7 d
) U9 N8 l+ G4 ~5 o* Z( }" T( m% p
7 \, v6 K$ J" y0 x3 t' } Z# m
% u% I5 z8 o1 q. H' E: k, D0 g / Z/ \7 y* S! n& d
0 L5 {) f8 |/ s' s, R
Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。 ! p, b5 D* ]( q! h) L
; ?# l: _6 b% b+ p X+ ~9 o/ q4 K1 }# x/ b. y& k
2. LovelyPlots! a) Q: ~0 }1 W! X" E0 U
& v3 I9 a3 `+ M, p- }1 v4 j3 b7 p
' X- ~% V9 A) |( h. G) p3 S
PythonStar:560
3 I# h6 Y4 d* A
8 z3 B4 y( g- C7 X+ Q( I3 \# N
' M4 {4 Q1 C1 p6 `7 \. w : ~- c5 O$ p0 c2 N, E
, w5 _/ A- n' U. `, s* }- C$ x/ N
9 l Y* f" y! y, Q# ^
LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 # b, j M; \, u" E/ p4 ]: V- G, n
/ \8 v/ v1 Z0 X , g* |" g! _: X6 U; f2 J8 V
此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。 ; {; a6 J( g& ^2 x; k6 m+ t4 t, {
9 c( f8 a; r! k" U) q1 D; y% Y
" w% M+ y5 k8 v6 z% c 3. tsuki
' I2 n9 I: k& {) h0 d- b; |
9 B, t: P! b7 M n4 N6 ?$ v$ m
/ b& J2 p: Z: f2 }/ V1 U PythonStar:58
" ?) w0 K5 A$ s+ a, W( g$ c
; O0 @( H" Y. e1 G- i
: I0 Z! B. G- }2 | Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。 / k9 M% m z' s" e. ^4 U
! q$ M2 z0 I; h6 t' a$ j
# |" @: G/ Z* F# @" \/ \; B3 K5 Q 4. Xtra, ?- D. U& K4 R: k+ L$ v
4 V6 @+ K% e: z5 `5 f; Q3 t# C6 @
! J" P' O0 g* Q# U2 D$ B: c8 I KotlinStar:350
" `4 P8 I' J4 ? ^1 u( l 1 x4 f+ |1 n" X- @
# ]$ I; E) g/ B9 G7 Z
Xtra是一款适用于安卓的Twitch播放器和浏览器。 9 j3 h8 p! U5 i7 [! M
1 R% k# a+ s! \$ [! m# O3 n h4 O' X/ y/ S
5. sbctl
5 a2 H3 N; e' d/ |* Z
9 J/ S) r/ [& T6 O8 d9 Y" ^ # s& p* d% o6 D$ b. d2 H
GoStar:555
% Z) C/ P3 h4 Y) h I
- G& A5 |$ O8 N4 _3 O + z4 o0 U$ M( G3 O
" e+ q. H8 z3 k5 E
! N& B. [3 V- \2 \) v7 w" h# G
! R/ {0 Y, c9 b
sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。 % Z' k* w0 P. W
( O( t# H1 f6 C8 A
, A" J, |5 O: k 6. cli5 Y/ ~' @1 F% ^( {# O2 d$ o
4 J# W) b2 z$ R8 ]: _
6 \8 n( M/ u7 t: k$ | GoStar:983
' x$ L$ ~; \: Z; h* q & l. [' ^. T* M+ p" s) x% d
8 U/ b( |/ C) W1 P/ n! n
用于 IPinfo API 的官方命令行工具。
7 M8 N* p& \" ]& _8 ~7 U; I 2 I: l; b# V6 x6 `# H; c; `
/ w1 {" h! C5 f8 v3 w) k! g" X
7. thisisthewall
7 a7 o: H" K# |8 D
/ D. T0 ^' |4 L: \- l# [ 8 D. R" A" W5 U' M$ ~0 C
JavaScriptStar:14 + H8 U& J/ _8 v
2 v5 ~2 ]" m+ y% h: r& O
7 l# Y$ v2 z% j# G" g; `6 m1 S/ |3 S 使用此API,你可以在任何设备的屏幕上获取壁纸的图片。 + l5 ?( w3 Q! Q/ |; E
L2 ~4 v0 o' S3 T4 Q5 o' B
~9 A7 P" L; }9 l6 x 8. magic-regexp% C/ X5 o- d' I* W( f$ `' U
# k) c4 a! u8 \3 ~ 2 i# T: v5 r% g! J/ W% E- y
TypeScriptStar:1.4k
) Q0 s6 P( m9 N6 N# O0 H 5 o1 ~. T4 T2 C; H* h( g
) l }! k1 n# U) L) T2 ]
一种经过编译、类型安全、可读的正则表达式替代方案。 ( g: O s* e/ L6 r3 F
+ ]5 w/ r. T% ^1 }& e9 T
' V0 u( S2 {) { 9. frawk
! T: x9 V+ b* l' O' O3 G0 e . I& \% F1 `; d5 a% X3 K6 I
! K, T- c) Q! ?9 J
RustStar:1k . j* U% }8 Z4 O" }! ~4 m
! ?3 `, E6 c4 U( m" Q1 g7 @
; M3 E$ T! n4 z* j+ V& K frawk是一种小型编程语言,用于编写处理文本数据的短程序。
! T* g: q/ z% t o% f+ K 3 a7 I; h0 d7 J- O4 q% X: ?
. O4 X0 k- [1 ]% f7 j
它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。
, M6 v* L" e; N# c, e , [* Q4 @$ R9 B7 ~
& f: F; d. v& `2 x3 }2 S. `
10. Vale
9 p6 p* z/ H( F% U' d/ f * ~4 X& g/ S0 Z: |$ q) v
/ e% L! R9 [+ u# ^9 P. v# {7 b6 Q ScalaStar:1k ( ] j4 ?7 k* o( |: ~) F( n
; D( Z/ Z2 f# o! N 2 j1 }: q, x5 c9 G% k5 ~! W5 r
Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。
2 N& K; O2 p- u8 i) e2 s
; [: v7 R0 x) W& L4 O6 }, y * H3 u% _6 ]$ V9 }
资源工具
8 k. d* B1 a# P5 q! n! F ]
1 G' K0 Z! T/ A4 n7 X8 O; f 7 ]" T/ z: M; i+ s; }1 {
1. GitExplorer, P2 u9 L' c, C5 \7 [; Q" ]2 W8 t
; f; O% G6 D: l# p
0 y4 k8 y& u! @9 E
- z8 E4 e4 {: b% h
$ G/ _9 H0 O# U4 d2 k
2 z- @1 N+ ]5 {3 f l 一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。 / T- |/ s2 Z2 E; S& o
3 M; \2 ~* x, Z2 c( R( ? ; B- y9 R7 C1 u, _" a! [: e' a
2. Bookworm
% m- e. z a. P' e; B9 v* T
4 m2 k. u7 c6 C3 O$ |, [7 Y
" c, g7 j3 R7 d- S/ j" h ! c [9 w7 [3 W3 P4 L. [0 ]
5 u& g; k- Y8 X1 t
$ E8 h2 Q/ N# s( J7 M' [, E 适用于 Linux 的简单而功能丰富的电子书阅读器 5 x4 K, V. `# j
/ C0 S0 e) e; i' f+ D9 o7 q9 g
, `2 a3 y- [' J2 F9 I6 q2 |+ z0 d 3. gitlogs: |% B* q" W$ j* W7 V
3 q/ z# }/ q/ c4 x( T
6 f- b5 r: ^) p" ?
能够及时准确的发现最新优秀的Github项目。
; Z% g+ E) u% ~$ | 6 m9 ~* [* ~7 O6 L0 d
, e) ~6 e( U3 X
4. readme.so
# @+ O, I! e9 W; k8 F
) T, v7 H# W) \6 V
; b) c1 \+ Z+ l# {# j6 P2 w& H) r3 _ }+ w' w. a4 ~1 E7 J
: y% o0 @) N7 c; J
* X; l4 q& \' g5 }" |, H readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美? + T: t7 J* b1 n! T i
, ?# r. i; W6 Q1 V; P, e( h+ f
5 `: e$ _" h! V. Z4 a1 M3 R" Z
这款项目就可以通过简单的选择快速生成美观的readme。
' h7 P' v& u" ], G0 ?- F2 l
4 Z( ?- A7 m0 U. L' I/ y' V
2 Q0 N- O! T4 ]0 _' d& G, \$ f 5. learngitbranching/ I8 M. q5 Z7 J. S* X1 m
& C* f2 Z: F7 d- {
; i* g2 E3 \5 h7 \
3 U' c8 `+ v' A/ {: z2 Z- K
, d1 |4 G5 w2 Y e
2 ]/ G- Y5 F: f1 y 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。 7 m6 C6 q, E% I I
7 d4 Z' a0 n! p( N/ x
- q5 x' ?/ ^: G4 d; V3 y- {' } 技术文章0 _4 m& P) D' ?) q1 m; w+ _1 ?; d/ K
6 o$ b/ d1 C ] r
. Y- D: {( V5 ]- m% o1 t
1. 了解Linux路由6 }- n6 U, {! T e" \: D" }
0 i, i" T+ B+ [
# Q* x" O$ [: y/ \+ W+ m 过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。
, z L" t; w! l0 v1 a
% ]1 }( z' v: y# i, h) _; ?
$ {: B7 ?3 Q% ~/ Z" @) o 现在情况已不再如此。 : D3 U6 l7 [' Y# z
$ `) b L+ e4 V. l6 c0 _/ |
* Q: v' j* k+ A 例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。
/ U1 C! N J6 p& |* Z
& _3 j) d( q7 o5 o$ v6 @
' Y7 ?" R9 K1 k/ ]2 E 默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。
R) f \8 X% e* Y$ e! \
% C a" y7 d! K" G- |: f8 R* [
/ O* _7 z% @- T% m" q 通过这篇文章就来了解一下Linux路由是如何工作的。 : ^6 c( B# d R0 \, T* b* v
# a9 S! X* @6 w
L9 ]+ G. p/ u9 t+ {! m- _ 2. 一个专业程序员的10年
. n6 S2 m0 ]4 I' x, ^7 u: v & [" }( F- {+ _
0 y. W1 c0 F8 V) Z
10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。
) a, @" @. u8 p, L, @# } - r/ R: Q1 U5 l* {0 a
& m2 ^6 O! n$ q8 d" @ 作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。 + A w) T1 y. X6 R
n. p" j) Z3 A8 f. t3 _: o
+ b5 l: `7 L. H" t9 _$ Q 举报/反馈
. b+ T; ^( G. }5 F 7 M& d9 N0 J( l6 q% d# [
, k! k( c6 E& l( Y- @! i! n' X" X6 s1 F" y& X
/ w: d, d+ ?5 U; v% k v: H& B3 F$ y' W2 y; e' y
|