$ B; h: q9 K& k
! o/ N6 ]+ J; {4 e
DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 # k/ n: k6 S( V
& i. v5 O9 i& E0 v; y # e- x) {- _9 J1 ?% q+ O
每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。
I) j5 ^9 r% n8 s
0 m: ^: a; H; D9 J# @" X2 ^
, v; p! x) Z. G9 n5 C! q5 Q 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~
0 E2 D2 I0 H5 \( `- C4 G1 @- L , ~9 t6 f8 I h3 ^6 M% g: U3 P
# c8 L) x2 _) f5 }+ K3 z
订阅方式: 5 z9 i i a# W7 ]: P) X
4 k) W3 p g9 g: g- G+ r& D* Z9 t - k5 s! `; R7 r v- l
Star并收藏项目DevWeekly , X z1 y$ {4 ~5 J, {( S
关注知乎:Jackpop : a( w+ |# ?% v" p0 I* E
关注并星标公众号:平凡而诗意
2 ?+ ?0 ?3 p5 D) P r * H2 n4 R' @+ |
9 c- p; _/ t3 \3 f% U9 k
进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意! * g6 K$ p* \* V1 K R6 N8 ?
' t R$ O" l, ]9 w% O
^& e+ Q. m& B 开源项目- z2 [+ \8 c" Q3 L
+ o& `/ P! d& ]/ U* Y5 F! q
) O8 \% \- H' I3 n$ Y 1. jetfuel
0 M5 P4 a$ M, h) \
5 Y7 w$ I& g) D0 i7 l" E
( D" u3 N0 R9 t PythonStar:104
J9 f, |! E _" o4 a
& ^5 l7 u# Z8 c4 a+ f0 W7 R
( G, u( e3 z' i0 _ ( _2 \, w2 C' c' ~# D" U* \
/ ~- [1 {4 F* D" w" L* u5 [) `; n
! j8 I3 o! U/ O4 J# l1 w* D7 p2 a Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。 . C7 y0 ~ i' G) x0 k8 X
; W6 f4 ]( p8 V5 E1 {
- U% p1 L9 X7 f
2. LovelyPlots
* f5 c, k i0 b, h
# Y6 s7 @' j2 U3 I( i0 h
6 i: z* {. g( | PythonStar:560
9 A6 Y4 Z. T, r9 Y3 R7 y x ! h+ S5 P# f6 M
# d5 m" x% M- B , h2 a, A6 G1 E% u: ^& j6 d/ }' J5 g
5 S; B0 R, G8 }$ n {5 Z
& [8 U7 r6 x: k2 x9 B* F0 }! _, V# Q LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 0 |9 |$ r# \$ Q0 N
- H" \+ S( ~# }. v
! h( @4 N z- f) [7 ^, w. ~ 此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。
* T- P( l0 z. G5 y- L3 l+ Q 9 ?+ A2 k1 s0 @
4 ^5 L; h1 G: Z4 n1 e5 c
3. tsuki N% z h. [ s; E6 y( r6 u0 k$ ]
; _" X( _0 L. t3 E
# a+ K5 Z9 T6 \: m* U* l- _: P2 q PythonStar:58
0 W) s& t+ N3 A" o( h! G+ g - V1 x( `+ A1 Y" p9 J
1 G& d& S% g6 v1 w# D
Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。 # U- E: A2 V0 j0 D
1 D0 A/ I9 U! B" b# A+ q& ~
5 }% t! |0 r8 ?
4. Xtra( Q! {5 W' l( f% S$ g
' V0 X: U; k* e- b9 f* _( o
! y( ~* W2 H9 f$ [8 @( [
KotlinStar:350 * c: q. ]" p! G' H
" s/ I1 b# L F; ~ ; L$ }+ _' J5 H7 L! p4 O6 j
Xtra是一款适用于安卓的Twitch播放器和浏览器。 5 Z5 b) J0 c9 g% ^& ]0 Y: f) f
2 E: ?0 K' y9 b0 z, O
, \) g+ @! o- R 5. sbctl, r1 B; @8 w" K: ~, u& U! ^* ~. _* m% G
: s" o F1 e/ o/ e- t
$ j1 ^$ L; C" y# _ GoStar:555
* @; M5 W H/ @9 p* ]1 [" v3 g
4 y5 z2 D) H. m+ Y, u& |- K, {
; i; _0 m1 d7 _- P6 p 4 Q- g' b7 t: H1 J
- j, \. ]% m( E. G% i
# a& q/ R/ H. }7 g( g; z) o) ]
sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。
- u' u: q q( N# s
4 ~) e2 I7 a/ u( Q6 W5 c
& @& j4 s2 M t, |8 ?) t 6. cli
6 a0 f& c( m2 O8 E: ^
1 R [) Z, K5 Q Z+ \7 z' b
, F* @/ y; d3 V: g GoStar:983
9 s( Z) }( u2 T1 s! |
9 O7 y1 A6 Q6 I8 D7 C8 D/ T" N 5 A6 ]8 |: r* o" P' D6 o Z
用于 IPinfo API 的官方命令行工具。
5 z6 X' O) T9 y
/ J4 i4 l5 V" ?' J. }: @' X
& D% v- G# X# j0 U 7. thisisthewall8 Y* u7 L' A8 N/ ?3 F& y6 f
3 V; U. K/ K* g) z, S) e# | ! R5 ?& X- V5 g; _: g5 L
JavaScriptStar:14
* \8 t% D# I2 U/ ~+ K% A 3 E" G6 ` F7 U# U6 B b! R, G
1 G- {: a! K. p9 x 使用此API,你可以在任何设备的屏幕上获取壁纸的图片。
+ ^" Y5 l& q9 r2 U# p% J# M 2 \" a) G* _7 Z7 O6 R$ N
- `; e3 g& v: ^4 q
8. magic-regexp
, x# v& z) N+ O! V: t2 T4 d7 }' |8 x
1 o/ U3 }! F5 A" N3 \
2 v3 C2 q: y) N4 Q- C6 y6 B3 z TypeScriptStar:1.4k 1 k+ r3 u+ @! c5 F4 P$ A' ~
/ h$ m2 V' ]- o; `3 ?7 H 0 m8 W) y \' N& Z+ o
一种经过编译、类型安全、可读的正则表达式替代方案。
% f0 [+ S. W7 E# S* A' f _! g: R+ t% Q4 x/ G4 T
; ~+ B& ?# E5 [8 n# b3 ~
9. frawk4 Y! H7 f" f- q9 ?5 p$ n) P9 I+ e
3 z! a! M! o: N8 ]% J
( G/ t, J6 z( a5 r y) o" u4 y$ o5 k RustStar:1k
8 d# n$ D! o: H+ E o n6 A6 a
8 e$ N4 T. \3 \- N8 S! J * J; ?% g. \: Q/ E4 q' @' E
frawk是一种小型编程语言,用于编写处理文本数据的短程序。
4 V* R* \) u: K9 h$ M3 Y
) L6 {0 m- b! @" [) f1 h. D 8 v. { |5 @" n& s; c5 V T; f
它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。
3 X+ F& _8 I0 G) P: T( L9 p8 |. L
& z9 D* g& i5 O. `; O
& Y. H) D2 r7 K; n 10. Vale
" c! Q% ` s; U/ y' J
1 H$ d, }# R7 D# ]" m
/ b( J; h' t. t. t7 e1 u+ M% g ScalaStar:1k
, k* x! }; x' q% l3 h* R1 }
( ^" M* q- X6 X- E4 L 1 \4 l5 C1 q$ O: e3 V
Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。 2 g2 N! V& m/ e! d1 M
7 j* \$ ]( i. n t7 y6 q6 j
) a4 x+ B# v& z+ j& a% J$ T3 F9 c5 w 资源工具' q, K8 h, J: I
9 E4 G9 K9 D2 h @
$ A) e+ _/ W- U4 H9 |
1. GitExplorer
1 o0 W Q; a2 ^7 t
s% D4 @7 @! e' _& u 0 A- L8 G8 l9 @% x4 a( A$ }5 s3 W( V
3 w, p0 _: L5 t. ~ 9 _ Q3 T+ X1 K
4 O" p; \% j! Y1 w4 u6 O3 r, A 一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。 ( }" X4 s; s$ y% n5 Q
4 r7 _/ A- Q& }6 L
1 B' V# @5 J, u4 s$ m: B+ B3 |- F 2. Bookworm
O) [3 J l- x4 b
( _5 _& k5 V& V6 E1 V ~$ i * ?! g7 I2 q. x( b$ y
2 X+ B' l- L5 U! T i+ F8 r 5 C5 q; ~4 \% D% y/ D
3 v! x; r& D6 }4 ~ 适用于 Linux 的简单而功能丰富的电子书阅读器 7 g$ e* ^. D7 ]5 K! v& F( B
9 |* I" ^! S. x/ }: \& R \- U( g3 b
1 E [( `5 h3 H& G
3. gitlogs
7 m$ m) C2 _5 H- m, S8 e 2 w3 O! o2 k) @) f. P
2 j2 n: b- m5 f- ~9 O: C5 }5 a
能够及时准确的发现最新优秀的Github项目。
9 v. N- z5 z. x1 o \7 | 3 D8 C* Q% |9 ]2 ^ Q' T" R7 ]3 |
; p% J7 |. g: y3 l5 Z4 F/ @3 G( k8 y
4. readme.so
0 \, u: G2 V, a" `) B' G
" D1 D' y8 t' C2 Q2 C, V0 w) a . @% x% Y6 E& d5 ~% }# r
5 f2 Y2 w$ k5 K( ]2 E/ ?' h
& l2 n W( @1 ?$ K, m0 S5 a7 u. R 1 M/ h2 i6 n7 p7 d( K
readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美?
/ I4 B. [& x& A Y) {. n* l
7 T% `4 H; L1 k3 _8 e 6 n# ~1 j2 a! ?1 H! A% `0 F% o3 m
这款项目就可以通过简单的选择快速生成美观的readme。
0 z0 R4 w6 @0 k/ F$ e" e6 c$ j 1 [* o9 ]$ `, Y2 g, L+ g( L
0 [" e/ F# U* q. ^
5. learngitbranching) h" K: f! ^* h
( Q/ f% E: h" p7 z' g
8 [! z, T+ g8 [6 r, a' Y8 M2 v4 ^' i3 l 0 l1 f: I6 i6 b( r' e
. A3 g4 [- F- q) @" [ d
1 Q0 [2 l& W. a# q0 S& ]6 h z 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。
% C% Z+ Y+ K7 D1 @+ n7 ] & L) t; t- A# d
7 r. D/ {0 P/ E3 L7 s
技术文章8 I l2 f7 h; b& T8 A9 n" A; X1 Y
; C, ]7 h3 N, u; a$ C. ~
! t& X4 K0 Z5 `1 b 1. 了解Linux路由
5 W% c5 @5 V2 [9 {0 h F
& x1 d& a1 r" F, W$ H" A
. c* R$ g; w4 o0 Q* R8 }& N v* H 过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。
+ l9 G) {# L+ a. F, [2 n' t
/ J/ c: u# u; {$ u, Y$ z+ ^ ' E! o4 E- P; s
现在情况已不再如此。
9 H5 ^8 ?; k j$ y9 D ! Z# c; P, X. O- w+ `1 _5 ^
8 Q- c$ S7 Y; f" M( h9 R
例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。
# F0 H3 D/ j" U* X9 h3 l- ~
+ c" d" f. ^* L3 ~8 a a 3 W1 X @' N* O
默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。 % _, h3 W0 C- {8 S) N
& l1 S. F" W; ^. p' E0 z- M. s
" T) o4 k, [8 S- G 通过这篇文章就来了解一下Linux路由是如何工作的。 3 n: q7 `( n- B
( W* V. ?5 X' K- s% a1 z 5 \- `0 Y; a4 G: o1 `. L
2. 一个专业程序员的10年
- m2 X: w: \9 m1 S- r * R* G0 @! V6 R
! j# W1 e% L$ R$ j- ~% o 10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。
* p8 i) r" M) R7 h
; Y" m/ G' r3 C+ [8 q+ [ 2 L' J; @7 I) Z" R# B4 ?
作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。 2 K% z B, t3 z+ |- H$ S2 J
- s' D# C8 p/ e R9 c
$ J$ h" m2 |. `
举报/反馈 / [+ \2 @6 g' ]0 k% p. d- x* j
! o( S2 H/ [ v* G& Q+ c. Y
, Z' Q$ q& z0 p$ T% b8 g; `1 r! b) [) a7 Z1 `
1 [4 L( Q& m& m# m) u1 K8 [1 K
: X$ u# ? u# _$ j( p, z W+ d) f+ R: e
|