3 x+ ~6 z( p9 ?% W2 G/ \6 r
2 E2 l. k; r& w' Y# c' M4 E DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。
* B$ \& `* }" w9 D
, T( x! d J4 w) Y/ m4 W
& z$ s/ g7 ]/ A( A, A! D' N 每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。 6 A. ^4 e& i+ u0 b' X( D9 C) z
# z* Z+ l: ~2 ]+ L
7 _- y2 |& a1 q 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~
t5 e7 }9 k, z9 o3 y
$ k! |# E5 W1 _" V" p# W * d6 o; E5 z8 \6 v6 |, K; B, S/ T8 w
订阅方式: 8 p4 F5 s% A$ i+ B x& H( W- u
q5 c/ D) A5 F5 H4 p) \ & }3 d- B2 P9 T
Star并收藏项目DevWeekly
+ H. M! @$ E% `4 b 关注知乎:Jackpop & I& n/ p& n, z/ }" }
关注并星标公众号:平凡而诗意
2 E! D# L7 M Z. \+ y- M
U4 J& a: H" V9 P& j; D9 r* Y
3 N0 q* L7 e$ W- X7 p) G; e \ 进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意!
- @7 m5 T0 S* @* w% @
" X( t( t2 c4 {: z M. b: R 9 [5 f! s: d% q
开源项目
. P: V0 I/ ^- ], j
' u3 }2 c$ o) z/ A " z! V4 W* W, S( b3 C, N& k5 w
1. jetfuel
! N* j) a* ?* A' T" P/ E
+ W! ^1 V" i) s 2 M! {6 l9 a1 _; d* J: p" m7 G4 P4 ]) u
PythonStar:104 ) Z7 D8 N% Y# ] C# _( N# V
7 U5 L* |- o# l/ }, _6 d/ ^! f
3 Q3 Z. b" J5 G0 y1 |
! K; p) k; G+ r' g9 e* Z0 v) t: w& ~5 s
0 T- H) h: D5 {( J
0 m- @% p9 }- d- r- T Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。 7 ?5 x$ F$ z* o
) W* ~3 U0 k; i$ {8 l
9 h- C, G* @; {- C" q, L 2. LovelyPlots$ S- m5 S3 u; h8 B# p1 c: h
; F# F; }) ?5 C) T
; R" S+ t7 f/ F3 W
PythonStar:560
7 l( E7 {' H8 p ; T3 U( F5 V m" o- T( I
$ m4 S, [+ ~5 E2 \) K" m 0 A9 L& o6 ]9 A+ t7 D
9 V/ d$ S% S p0 W
9 {# K" {, R8 _, p p+ s+ u
LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 - e9 b! O8 l) ]2 H: A8 M0 P2 h5 H0 u
% [6 K* \/ d/ I, A
d! O' x# J: ^ A z7 \
此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。 . J0 W. }8 [+ S) Z/ i; m. i1 T
$ E ]# v0 S8 p9 E% P+ e+ ?! D8 c 8 ?* M8 j6 _% T2 |$ N% v a1 J }
3. tsuki7 W& m+ `# ~" I: M& @9 k. i
$ ?7 r1 m' I& S7 W+ a/ U# [
$ D" w- L& h9 I7 Q PythonStar:58 3 z/ y* b, Q6 t
; _2 `4 r3 \1 D/ T4 d9 j& a
! B+ c: n2 L( t, _1 u5 { Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。
* q7 |; F3 _ O6 Z
* s* n# ]% q( u O , M1 s# R4 a# a( q5 a9 {* ~9 h2 S
4. Xtra `9 r, i! r3 c' z- D i; G
8 O! R5 R- f" l' n " } E/ P3 w" _* ?! l
KotlinStar:350
& ]" S, l* W5 H4 F h ; Q' }" R$ @1 o# N! _
2 U3 a! v- _6 z1 L
Xtra是一款适用于安卓的Twitch播放器和浏览器。 . M4 p6 W/ u9 c3 ~- X0 Q
- { |6 d2 ?- H* F+ H
; ^6 L2 u' n& v- w 5. sbctl
6 _, s0 e- _7 t* H
# N- s* @: J/ S/ U
% o7 O* S, |- J; L GoStar:555
: _2 A5 m# \/ P$ P 3 t* S# d) Z3 l7 @- A2 q- {
, `! G+ {/ l) H' O6 X7 {7 S
1 E& l2 `# t+ n
2 t* w }6 l8 @ ( r0 h4 W1 N0 D- T- v
sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。
; b1 T: D$ D$ x8 k( i' T4 A- @
4 ~, f$ M5 w6 g0 X2 M2 d* Z* W
0 ]2 D9 a6 i: v7 q7 y0 G) t8 ?2 M 6. cli* P- v) B! R% j/ \! B% |
% V, N6 ?! |; Q% c( l4 I2 M) n# @
* |; j8 C6 e9 P GoStar:983 : w0 X+ E3 R9 j5 d& L+ B$ v
& E1 l+ d. T2 R- I1 L9 N
* `' w6 _, v4 m# N, [ 用于 IPinfo API 的官方命令行工具。 " u0 T6 V" Q. Y
: m4 |( Y+ u; `1 y+ ~
; J4 u, J& g/ t 7. thisisthewall) {; |9 v% H$ }
! x( @# I, e! L* ~
9 M z3 e1 r& S" c2 J JavaScriptStar:14
2 F$ }! P T. u/ K1 M6 z& j3 X
1 t2 b- `7 _1 I, q! W, A) O
) D) I8 \9 _9 g" Y' L( I 使用此API,你可以在任何设备的屏幕上获取壁纸的图片。 5 h w& n2 e9 z4 o- J
2 ?/ [/ R- w4 K" t Z
$ ]8 E" g' m7 X7 m
8. magic-regexp
3 J9 y+ b: N+ w2 I5 a3 ~
$ S9 o1 U, U6 A+ j% v
* Y' M2 E4 K- j5 o TypeScriptStar:1.4k 3 C" |* E( d# a
9 b$ t! S; \# V / O2 T' H; u9 T9 R8 ?
一种经过编译、类型安全、可读的正则表达式替代方案。 ! H9 z/ Y: z! b2 c0 {
7 @8 L3 S8 \1 b0 s) R- L, `7 b6 z% r , O# }! Y% j& N# K0 _
9. frawk& ~, u. D# @* N1 ]" j" Y* |
% L, d: D. e6 X6 C% c7 h
# y. X7 @5 ?9 l RustStar:1k
0 Q/ t2 m* g% C" @* p, J, ]0 L $ U9 t4 c' q! { }3 ?
! P5 \2 H( t _) w9 E2 J, {
frawk是一种小型编程语言,用于编写处理文本数据的短程序。
7 A3 [( p% a% ]
+ n3 v9 W% K8 w3 @8 y' C1 K
) R& y6 E6 W, g% @! \/ I% g 它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。
/ K1 ~8 h# s: Q$ j 8 _2 k8 F9 ^. h! e5 y8 H
* C& L7 O" m8 I; y8 |
10. Vale' G3 `" m3 e( n5 d
1 _8 g8 c, f' ?4 u8 I0 M
8 Y6 J8 J! T% t7 @( J; F$ o ScalaStar:1k
4 E6 g5 V+ i/ q3 h# L6 S / N2 c7 y& A9 P7 e- T4 v. }
1 q; P4 v! T8 x7 R Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。
& A) v3 h! w9 _" p1 H# [( K ! v1 F# C! N. y8 `/ C
" ?* S+ J! N9 ~/ E% p 资源工具1 b; _6 J/ O* d! o
3 m7 _+ D& }. U / Y+ U- L2 E! O' C1 }% A+ m
1. GitExplorer
# N0 |; r4 C( }& K2 f: F; s
( a) l" _, R) h, y5 ^9 Q% ~
C+ P* I A0 V. z
& v* B# U* P# k! o8 S
. k" p7 O7 H2 w
( ~& t6 K! I/ G& m7 n/ @ 一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。 * l) h2 n( t6 t: z
6 P6 U5 E% ]/ y3 y5 n, d* H 7 a. ?8 h: [1 [2 u( r/ I
2. Bookworm
% u5 d. }' C9 k- b' t2 p# z6 u
, h$ d$ @! ^# X8 A - ?# q2 N+ P$ H
4 W3 a. T' x/ m6 e [0 s- u
3 k+ {( S2 ?( O+ L% X0 F
6 F$ C: l# F" I/ D5 J# Y 适用于 Linux 的简单而功能丰富的电子书阅读器 - {5 [$ o6 X6 n: R) b3 t9 a
' G# f% Z- [7 C& f) P, R- c
0 y& ]! i: @' h& N" \) @ 3. gitlogs
: y( h" Y t* U& |5 a + C! A Z' x8 V$ |+ h# X! m
$ _4 m5 G- Q$ R5 }/ K
能够及时准确的发现最新优秀的Github项目。
+ ?9 x1 l$ i0 Q6 u$ V+ ` # ?* n3 ]. B9 {& ? O1 S }! o7 L8 O
- o# V, F; l3 G% ]3 c& D 4. readme.so" q0 T1 ]2 [, l: y9 B
# y/ r/ ]* C `0 a% l1 Y: {6 k7 c
" S9 M2 O; k8 b- F. }; L! S: O
' U1 {. M" A# w. k
+ H2 [- v9 N1 f: X$ E- f - ?$ a( U/ i! ^
readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美?
! c' W j/ z6 h9 Y7 y! z* B
. C9 A) x6 ~( U& t! P
- c8 S' |& G! m, M- F 这款项目就可以通过简单的选择快速生成美观的readme。
* s6 ?: C( ?0 ~$ L
0 L3 q. A2 ? S: J: i$ U
3 R2 J- c& A) W2 ?* }) N" n) t9 ` 5. learngitbranching
$ _, B* c2 G: P/ [2 I
3 V8 Z$ O# \& z% A B' L# S& a % _8 l9 F" x/ y t R
) a! p; A$ F1 z7 g6 {& X
. i4 `, L. R. L$ U/ Z9 V* l + M$ {% h" y8 U1 I* h, R
一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。 : [! ?* O' x" H& \: {# r
5 L$ s/ h, k* b8 V8 S$ Y
4 D" P) R5 G+ H* w* z( |( l 技术文章/ |# v& d w5 R7 i5 T2 ~/ j
( s, R' S7 i w' c . ~% ~; `2 d6 c! C" \
1. 了解Linux路由
+ } H' K+ f3 y7 q9 Y* M + k4 V5 ?' M6 H( B% c+ o7 h
) i1 l! R0 W) n) m
过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。 + B/ V# o) o. [! u# [
9 U) r. R4 U. m7 l4 N$ D( R' ^ 0 ~" q T S; Y& y2 `- _
现在情况已不再如此。 & a+ U' V! B8 w
) g; Q( E- g! S# @" J
2 V, p9 W9 p( e$ p 例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。 7 n y5 i4 M) M
3 X, z8 i. r9 w! V: A9 d9 N
; m: w8 p* j2 y/ l7 X 默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。
2 p' e) s+ e' B. e 8 G, m# k5 ~% r3 X+ s: g+ G0 g
0 d K" |: X2 F8 m$ A. d- J 通过这篇文章就来了解一下Linux路由是如何工作的。
! ]( _1 A3 ?: [8 U( @0 ^: [. z4 U
, L! K2 h* `7 G4 | K% H1 ^8 S
. ~0 I+ x) B9 B3 o# y/ a 2. 一个专业程序员的10年
+ F, V) x0 e& k4 j
' W- T$ z: `5 U
/ e& a. k5 W2 f 10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。 5 s7 M; q& l2 \5 _& O$ o
8 d5 K- k9 @/ }; z3 r9 S5 J
# ]8 E6 u% j' K4 Y& \% ?& l
作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。
- H1 T+ K( v0 R* c2 P+ j% \# g
- q8 E6 R4 E' ^. ]" _
$ G( c& ]# Z' n7 z4 v E$ N1 t 举报/反馈
0 E, I* H) S7 J) v+ D
. w: V) j' T6 Q3 U8 w+ G# h+ d& Q
4 _( C) \8 |( Y+ B" r! ~9 Z6 p9 j$ ]1 w; u9 i) q
, n7 I' z; y$ p
, t ^. m! D( N2 l+ [* a+ l |