3 D4 t" l* l( ]0 H# `$ @
1 F6 a3 [0 n; t% m5 U; C& Z
DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 ; ^7 O7 p5 w& v% E a( Y. L# P
/ m% j1 s/ k0 v$ y
9 B) }9 H% k# M1 Q
每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。
' A( s m1 B" a6 j" ^, T
0 w4 { N; ~. x
6 y1 F! e9 Y( ~1 Z5 F' w9 z 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~ ( N8 o% M: d1 q& G1 N5 c/ @- H
+ G; u+ P* W; S- o! Z9 Y( X. @4 p
% I- f+ c( X0 J/ Q" j
订阅方式: & u8 v5 W$ v1 U# C/ a" o
! {. C1 u b) f7 p
& s, f* w' i$ S! _3 c* S* {1 o Star并收藏项目DevWeekly % R6 }3 Q! ~& ?5 |% A% q' v- ?. j
关注知乎:Jackpop 8 Q5 C, Z6 T, r+ G' [
关注并星标公众号:平凡而诗意
2 z. b$ y& H9 z ; Y& ^$ P, n6 ^& L9 x
* U* A; T) c5 a9 S
进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意!
4 ^6 B3 W7 X6 _: ~ d
; z: N9 J8 k9 E t1 _" M" P
2 A Y$ T/ |& ?1 l$ o 开源项目+ E6 U5 r2 H' C% R7 L# r
' J+ \& m6 m5 J D
+ `* a" |: g# U3 v 1. jetfuel/ a9 ]- b' s( U4 B- N' R7 F
' J% |8 j; j; U F; b$ ^
+ y4 m# D6 J6 {( _. Y
PythonStar:104
- _9 q6 |8 L! c4 \) C
5 _& r5 Y3 u$ h+ B8 i & |* _' b" O8 `$ u
' K& w3 @ J# t, T$ q2 |9 W) P
% y9 u2 P8 L* ~5 B
& o$ T% Y: K$ M: n. m# R" Z Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。
3 Z; p) ~6 u# h7 x: J6 A
3 a; g( D6 m9 L( r _( N
5 N* S* a7 A- w9 K J; e$ E 2. LovelyPlots" r& Q/ g% X6 s% k
5 R2 g7 g3 G/ \# J: g$ R
6 @" O# M. G2 y a l
PythonStar:560 / K% a( n6 |2 m
& [& R3 }5 ~5 c: } + \1 h" u' N% I, {7 `: i6 [4 X
* J& o+ R, w& |9 G: c! G
3 k+ R+ n* K x' q0 `1 Z! ]$ `% ~
% X( y9 N0 {. X LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。
1 W, A. v$ x( N& j& c
P d! h7 p9 i+ ]2 A
; ^- U" F1 l6 z! \ 此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。
' ]" Y$ L5 E% o9 v4 d6 n
$ ]. C' w* p5 i" [ , ~3 B7 Q( c8 s# z) M3 n
3. tsuki
! ]0 o- Z9 N( D6 H( ]0 N. k & r4 N, C, G6 v$ p9 L2 C: t8 F
' c0 u1 H, j, z' A6 z. a' D PythonStar:58 ! N9 ^ c2 Z) h, }7 J$ D5 Y- |
* O, c( I. C V% H
8 x# v$ U# n+ M" t# m Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。 8 J! F# L- j! ], i; x
) d: s" U$ \4 W- g + W6 h9 y, M6 \# t1 a5 m) G2 O
4. Xtra; F1 {7 o' \ `" x) a- L
$ P7 O" N% h5 I% L' {; H$ W
7 r( s, j. c! V, r8 @; ~' p
KotlinStar:350 3 u: a( e* P E
& V$ U1 P' f% F) k1 p7 W9 r" x) C( N% e 4 d4 x/ y$ \9 A- d' E9 G
Xtra是一款适用于安卓的Twitch播放器和浏览器。
6 I! Z8 l! \1 I" ~- F$ M
2 B: ?4 W" E E' o" ?3 |( M3 A
- c- a. q. p1 X 5. sbctl
1 N2 y1 @7 S6 ~ W , D3 k( O2 q" t# E/ u
5 _* T+ f' s/ ]( ^9 V1 g
GoStar:555
1 c9 v* h |+ O* L( M' X( ^: j U+ X0 k/ o/ H' {% O% |$ g
2 l$ S% p* f" x9 X4 q1 C
1 m) n5 _3 [2 ^$ s" R/ ?
0 Z8 j. g9 J9 n4 d4 j, Y
* K1 R9 J% [ T. M
sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。 5 d/ a- Z* X) _
. e- R0 f& G7 }% n
4 h; w$ q" u* y% S# d/ e% h( R
6. cli
3 B, i( x% o: C+ y* h( F% } . f, C( X* G0 h
- X6 Y" L v* e, B3 F GoStar:983
$ J/ R1 s4 w3 s5 l3 k. G- D) @
9 Z8 S3 V% O' M
- g3 X6 ~7 F8 n7 O& c, K1 r 用于 IPinfo API 的官方命令行工具。 3 l4 p5 ~# V$ Y; u" K$ V+ ^
- `% z8 B) I6 S6 n4 i7 r2 Q8 ? ; t) q9 d) D9 C3 T% v9 S
7. thisisthewall
( D2 i" Q3 x8 ]/ F# O6 } ) k- E5 Q" K8 d, R/ B/ O; R7 t
/ D. Z5 E5 s4 n+ r JavaScriptStar:14 % g+ Y2 R3 I, n# o9 Q" D0 S
0 W1 [+ ^% x0 _, a+ w9 h& w# |7 f
}7 @0 I! W* y& K
使用此API,你可以在任何设备的屏幕上获取壁纸的图片。 % R( P" w% y. Y4 _( _! g9 m
- ~! K/ z7 B5 h @! ~; y; R
* D% L+ X# ^6 Y+ k6 a: y 8. magic-regexp
( m1 l7 j8 B2 Y& x 6 U m1 G" ^; _) J( A
4 I7 d( w% B. ?+ |& P8 F) B TypeScriptStar:1.4k 6 B q( z: s# g
2 ]; M# T/ @" y+ M8 c
: {0 e+ d& }4 e$ N H# \: q 一种经过编译、类型安全、可读的正则表达式替代方案。
5 m1 u) X5 m6 c- y% m
( ~; N" t! u; L4 y+ t " V( f8 J8 g* E
9. frawk
! `$ o, a4 h' Z& H4 l$ u$ W- {: D - C6 K: v r3 T e8 T2 T2 D1 d8 b
% E& t( G ^ V8 _ RustStar:1k 7 T. G8 u) z) @5 e
3 K5 P5 w- z; ` B0 |/ Z
* D/ x+ h' v* N0 K" |" n
frawk是一种小型编程语言,用于编写处理文本数据的短程序。
1 I x2 |, J9 p0 r" k9 {) x0 C: k! d 2 R- F- c! S) k) G6 @0 s5 I S* |
. A! x( f' `9 a% X3 V) S 它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。 : g; u% v L m5 [9 a
* T0 d2 Z& S" y% x# r; Y" _3 j
, g6 b, Q" i( n' \; J& U5 z 10. Vale
# t) H4 Y" @* V1 u6 z
' S' F; E( G2 G
$ V. A1 E3 _& S7 B3 @ ScalaStar:1k % y/ q$ D# L3 R D/ Q4 F+ \
2 h, B& N9 k9 G" Z8 w5 J
% U9 c- ~' L* C2 K
Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。 0 c! I# Y! O7 e; u. }5 D9 a- ^
6 N* w& M! k* R; j7 c
, u Q6 i% I8 @
资源工具6 G* }& y' {& G V# f/ b
& W; A: E- x# m, V, D* k/ a- B
& \3 E' I5 h- r 1. GitExplorer
2 W6 P! H5 D$ \5 F8 @
* b6 R3 D% V$ z }) m9 Y/ w+ P
3 q2 U: ^# p+ t' `1 b1 K
" s, n4 a G/ A0 X8 G, Z 6 e* P6 s4 Z) R: _$ T- D( W' A& n
0 e! f7 Z N! g
一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。
7 `5 |1 ~% K; y4 v
I$ u7 t0 m: r. o! M9 v
8 r" S1 U7 G; K! \* N: M% v 2. Bookworm
8 z. F% O* @! z4 E
3 P( ?2 v6 ?: r' f" }" Z
0 h) H0 U. N( E! R 8 J6 V* V- P8 v+ j! |; \3 O
9 O. `& L& W: c5 k. p
8 A8 H3 h+ g! f 适用于 Linux 的简单而功能丰富的电子书阅读器 " u+ e( y* [4 Y# a$ M" x
& U) j+ g0 w% B
+ C4 y) z9 l( }+ g. I* U# D 3. gitlogs
" a& i: I5 R. l- K1 g) q g
8 `, e! Y3 X9 j2 {6 v2 d- h0 E
y) O" T9 L/ X, X$ J/ e/ x 能够及时准确的发现最新优秀的Github项目。 " A+ A) {( D1 C* f# y7 v
E9 G* D* j S1 O
: ?) R. I, g* ^. ]( b" k3 i 4. readme.so
# x& C* |! B8 d2 r- ^+ T9 p3 r
9 E& d8 x8 C0 ]( `" g / F- `8 `7 ~+ @
3 ^: l1 t' A8 F9 i7 _0 c, Y
* L, K4 r, E/ |5 M: t8 M8 h
6 K; a" ~/ C, G# @" A: M$ C, F \5 z L9 @ readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美? $ }( M( \: E" B2 H" L
3 N. u- A: I2 d* \
% f9 M/ x* ?1 v! b/ s
这款项目就可以通过简单的选择快速生成美观的readme。 : A' `; ]' l# l8 {5 x* i
; N9 t! O$ q2 `. c9 V5 Y
6 O3 ]/ k! T _' ?
5. learngitbranching
8 r9 A$ L2 t1 ]) |3 U 1 V/ I5 P- V/ t: U0 P- ~ |
: u7 O, d2 U$ X9 ~5 |" j. J
# B( M3 W7 m2 ? ( e0 y% N# t9 v& f! U0 G0 t g
# X% e, R7 ?- ?" E f, e
一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。 $ L3 m$ R6 |$ C
1 l& \4 c; I, x; _! f/ P
$ i7 K3 l& _3 r0 n9 R0 @% X* j
技术文章
v( X, C4 u5 o( w9 O6 D# p 6 c9 l, `: a6 T% l' @1 L) U
9 T( A. E6 O7 ]) S. T M. D* S
1. 了解Linux路由 m5 r2 E2 g+ H- Q8 r9 G# p" q
7 H, t$ u* a! o4 Y, p! `* Q) ]
g, u7 i4 t+ M- ~% P 过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。 1 z' t3 u% S3 K
9 k' ^7 ]7 Y5 z9 f8 g6 v# Q
/ f- K# A5 a9 O+ L! Q }) ?! ?5 E& O 现在情况已不再如此。 ! u9 O* O* T$ o1 T) D# }
0 S" A8 e/ q& _" J
# h. o/ T. O! {4 e% h# s5 S2 y# W 例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。 , I8 o2 V# F) q3 J+ f
3 ~4 ^9 H4 X% \; S
) O) [' Z7 @9 S; g( N8 _ 默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。
: C3 Y0 M7 l- I. G. ?: | F3 n0 P' ~% J1 I' L0 l& n
* R: J: T( ?3 T6 I! b
通过这篇文章就来了解一下Linux路由是如何工作的。
9 R9 k# o7 p' x C
2 M& }" I! Z% q
. C# t6 H! d% m" v8 t) i/ z$ Y; Z 2. 一个专业程序员的10年& Q6 M l! b7 x. K1 R. ?1 q/ P
5 e; ]# z+ g7 B8 m6 k; y0 e' _. m
$ r+ A& d& {* @! [$ m0 ~
10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。 . U: e# d5 z0 a8 s* B- f( D8 r, b
! X& N; C- B1 f
( W: S1 E; K- t3 P/ l
作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。
" l' X, G/ u: N2 R1 e) o E
+ s5 P! v# a( b9 X1 C0 Z K 2 F- o1 C5 A) L y" c& u- t7 r) V) s1 ]
举报/反馈
6 L/ A8 B! \# w2 f G( S ! ^6 \0 @* F: M; g- @1 i5 e8 W
8 X8 @* x4 C6 C5 [/ b+ Y) D9 ]' O/ h: U' `/ P
1 |% u# z$ q7 J8 m' \( Y
- |' Z; f; j3 b5 p8 h
|