" I1 ]/ ^7 `5 v/ ?# v( T( u2 i
+ g0 i1 o/ D- s DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。
J; O$ T7 A) I, R" c/ _, d ' f% e* @% G. B& u+ M
# R: ]; q, _# C2 E+ W 每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。
+ i/ Y. l: C) t6 P
8 u6 R) Q% q$ f. \6 [
% S$ }0 B8 o" `3 a 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~
! F3 {( _9 Z1 V) r2 ?- i& c
) `% a/ y3 Y' C1 k |
: Z7 H# P" ?4 T, b 订阅方式: / k" D2 O5 r! @. U3 I
/ k- W' w0 t' V% x/ F
; h8 w: |$ z- E$ w9 Y
Star并收藏项目DevWeekly 0 E! c" V$ X; |3 g5 U3 Z, w
关注知乎:Jackpop
) a9 a( u* g. ^ 关注并星标公众号:平凡而诗意 2 Z/ |& ]' V2 N R$ G7 U" h( j
( K) F% x% \6 \2 ]- i , _6 `$ \9 W3 ?2 l& f
进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意!
& h% @, v' Q) Z" T0 x* k% i. a b S, s5 ?0 P* `9 j
2 h! C: X+ S" o0 B
开源项目 q. \* |* |' [; a) i& ~9 Z+ m; s
7 |& g% v+ g8 }* h6 r3 V
( _2 d6 G1 x1 S* B 1. jetfuel
6 a t- o4 n- c4 c7 F& K
+ a! q8 S' a4 I1 k6 z & h$ M3 l- _* ]
PythonStar:104
) _) ?' M9 _5 z$ T" n& Y3 I. N
5 k4 P. w6 ~8 H/ Q* _ 3 a. X) ^/ T8 m
2 g1 T, @( t" z: K6 R5 M
; x7 d' X3 v7 B4 k- k2 Z
* F- P( O% ~6 n8 R7 N& N% R5 u Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。
6 n A# }# z7 t+ ^ / f2 O8 F) e! i& k" B
% K/ C4 {' x, b) x0 Y( d' b
2. LovelyPlots
8 ?7 c( S D! ^8 \ U" p. h1 q0 o& r* w- _( o
. X$ Y. ]- {$ \& v1 H& |
PythonStar:560 & r1 v0 u! b1 a: ^1 u9 r
$ T, p" q v/ M+ W
9 m! n+ {9 A: S& B
% n* q2 S' m3 U1 D9 E S
# B4 b% T3 d) s5 |
. H' z6 [$ C3 n0 H LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 + L5 s" Q+ }+ ?" K/ _" B4 d. C
+ K {. q+ J- G& _0 W# v0 H8 n
- P; o' }! x C# V. @ 此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。
6 K D, z* z. i; i9 y+ [- h
2 Y0 V, @$ l6 l. E ) b5 q% `& D- n7 o1 g
3. tsuki/ T$ v: D/ y4 P' }" c9 Y
3 ~7 G0 s, W/ b$ f
- |+ q$ G; d* s9 ^& {! Q* O PythonStar:58
P& N; [# H. B( C# A) }: m7 H
. k. n {8 ?' }( m' a D: W2 [ ! U3 J5 E, i# o) H! e$ C
Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。
& i1 o5 [/ A& F) \ 7 {4 W" o# y& d! [) ]# p: t
7 A, J$ c* X: e* P8 S# k 4. Xtra; M! x+ ]% L! D- R
# P7 S* v& k, v% s7 O; V% w
7 u6 y6 v' _& ^$ n2 ]% ^: W6 Q
KotlinStar:350 * T3 d, {- f- @
, C+ l) h, b. D8 \) @ A" c5 Y- K
' r m4 j9 A: q5 i
Xtra是一款适用于安卓的Twitch播放器和浏览器。 ; W+ n$ v5 `0 e v
( w2 I* g# Y2 x- p4 ]
! v6 z# {* l" o6 u8 O1 }; h0 l 5. sbctl
% ^; }& r2 e" v* C& j/ B " @2 g0 P5 Y- |' Y, h% i
* i7 P& A; ]" X GoStar:555
+ W2 A" `* d2 r6 G: A 2 o, c; v5 O& ^6 u0 W
$ Y. [! `! W; ^4 F3 F6 t4 _ h
; r2 C$ w' ~+ o1 l% D( L
) U4 X `" q9 W- \" X2 g . N1 k- n0 Z, J- q# `0 I
sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。 & `9 ~- B1 G+ L' E* [
. L7 h" w* t6 O" H5 @9 Q2 X7 [
, U H @+ Z9 I' ^# Z7 H
6. cli
8 X! C% z9 R9 M3 R' D
6 [7 O/ c2 c2 B) r5 u8 ?. e( A# m& @ * P) [: x% P1 ]* j
GoStar:983 & b: H. }- s/ o
5 D* N% R5 v, l$ o" \
- e$ k. J, g3 p4 G* t5 ~, q 用于 IPinfo API 的官方命令行工具。
. j( S( X" U `* X$ M
9 C2 c B5 Q; v6 _. ]* n
3 S/ X# |5 C5 v1 E# S8 d3 r 7. thisisthewall1 d+ x3 I9 s+ v J! t' H
7 {! D2 ^- f0 t! m4 w9 ] A1 y9 A$ o/ U
- P8 C6 X) c* @4 q* u5 Y8 s
JavaScriptStar:14
5 \8 L% z. r/ g
. @8 H6 |, m7 N4 z3 f; P 6 z% }+ N" Q$ A1 z" g
使用此API,你可以在任何设备的屏幕上获取壁纸的图片。 6 d/ @! R0 ^8 E* N* g
# G' Y% Q3 `( U, W# s2 t! e+ I# o! t . E1 u l# X0 ^, e, o
8. magic-regexp+ e6 m; K4 _. @( K
' v. g# z* d) q+ }: v+ k . B3 C, t$ r0 ?4 s \# f
TypeScriptStar:1.4k
' i' L+ f& e, }" e# f v8 g" I
5 R: [8 P3 d1 u; k# J : h$ a4 X; X c4 Q1 Z r4 p$ q8 I, D
一种经过编译、类型安全、可读的正则表达式替代方案。
0 k' E! E. f! b( m ; u6 B# @$ g: ~ m$ \3 q
- e* [& T2 K+ T8 H4 l
9. frawk
: l' m" {2 ~9 P3 Z( a1 t$ r7 G n( z
7 t/ B* v* q! j1 u* ?! X6 g . @' a. c1 G: H( x
RustStar:1k
( L$ ? }( e! M # L' T4 s& t, J: U
T, Q- _* f) F4 f
frawk是一种小型编程语言,用于编写处理文本数据的短程序。
4 E0 X8 |/ a- E4 s6 q: X , H: G9 {# K. l. T* ?7 K5 q2 e. G
9 b' F( D6 Y1 A6 k
它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。 3 L1 v1 |% d3 K
$ E/ n2 ]7 r( b. ^8 L
6 M* ?1 ?+ H Y: Z; `7 v; J" o 10. Vale0 E$ S1 q- n7 H# t% s( u
5 f* d5 I0 z- t, | R& G; E4 X5 H
* w# A" _" `* I2 w ScalaStar:1k ! I, { _. Y/ J) d
# \6 [. r9 t; h9 e0 a
+ n/ m0 w' [6 _% J7 o" A! f Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。 9 H2 _# ~( w6 n3 }4 O; J
+ V1 r! R# W7 q8 N# L
) J. E: H6 S# D# O, k! D 资源工具
) Z" G: h% P4 u. G& B
- B* ]! w, P* x# u - Q% t; t5 ^/ G& Y
1. GitExplorer
) T5 ]8 \; g" Q6 j2 ?" z3 y , p4 H+ {. C- \- R& ^$ d. b
4 y* s5 u3 _7 M" u7 g
3 |' K: B: s* ~* E+ i- L ( {" ?* n8 k% ?0 k8 f% X3 B
1 S: X9 P) d: D- O7 D: v; q 一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。 9 ~) I. V& B0 H! x
* F! Y% F7 Y- S: e% o K- I$ Z ; r6 ^: T7 Z# `; b% D2 B9 T9 p
2. Bookworm+ {( N9 j. T# t. A/ [5 ]: r4 r
6 x( N b1 o+ ]) A3 x
1 h5 X; B! m! }8 P
! I! h( q' k( x y5 T
9 l" Y+ ~) @! ?( |. {; ~, p
: D, S X: W- G7 j) W 适用于 Linux 的简单而功能丰富的电子书阅读器 % ]* s) p' H p+ R
! l) I5 P# e" g9 z/ K8 \ 0 ?% S8 e. z2 x6 w
3. gitlogs' J! w V: R4 U9 ?- {6 B
* h) M' _1 i) c5 K- M8 }( I" B
$ ^" M) H& G5 B! a 能够及时准确的发现最新优秀的Github项目。 , H) B. w+ r* U0 L' n" i5 y
: t5 k# p- v# [$ h
4 Y f3 F% r0 c. {9 P 4. readme.so0 q+ _; t3 p3 U
0 f# K7 [* B* N2 [
' w! O4 @. F$ S m
* J5 F/ w Y* J! H; A5 [! | , \6 t8 F; m) S% M7 Q" E6 M( D
# X7 c" i" [# U readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美? 3 c& P |+ k" X8 |
0 x6 A+ j, P' ^5 J* Y
% Y8 z, r4 t; M* L- j4 u
这款项目就可以通过简单的选择快速生成美观的readme。
0 e( g+ v* |$ ]* H! ^8 d
, C, R9 `. F3 c7 k0 }4 [; v8 i 1 O0 o3 U8 A3 e& ^ f+ B7 \
5. learngitbranching: \5 r7 b; K/ c7 c+ L) B% N
1 U) o! D3 ` `) i) s
4 S; k7 v0 A1 @- @' P " T7 x" T) z6 g) j& \% O
, f- w8 X( P1 |, g1 }
4 h3 A$ g7 X+ |1 l 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。
/ r5 G# x2 n+ |' L ; N! Q/ A0 q& ^! x' a X/ K( v
/ R% r2 c( [9 i
技术文章; A3 b7 R. x9 h3 d( z- L5 z- ?
; L- X5 E4 x' W1 Q2 _
. W m* O( i a 1. 了解Linux路由4 x- t9 H2 `& F. S: y- f, j2 c; w
! W# n- Q+ `3 J2 b# y# V$ ~) ^4 r
, y, s7 E: E0 z, L2 q 过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。 , {" b4 ^9 m0 R% u
/ @; O2 X" M3 N
) {0 U- M8 a' C. C7 V1 K7 C& d* p 现在情况已不再如此。 % c G8 R) r$ t* j, A
9 j0 t: q" t3 |5 ~( ^+ A2 [* f
; x3 B7 ^0 P/ s" E. l; N! j 例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。 7 y* ?+ k& i2 p& S0 n8 k* V
4 Z2 N! J$ u1 G6 H
3 g# M7 }( x T# O* W 默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。
$ ^& n! q, R* j3 R6 }
, ]" i1 W5 R& n: F9 b" \ 1 I$ r: k C3 S0 n* f+ K+ q
通过这篇文章就来了解一下Linux路由是如何工作的。
! o& e4 f4 J9 p$ q6 D% N) _
$ p( J2 M. L8 v! f: Q \. ?; _& l" r
: P$ E7 `8 `! n( w5 p j8 W! U 2. 一个专业程序员的10年
5 x' L+ y, P' v9 w9 v
$ z$ ~1 ]4 a. A3 @; R" n
5 r5 x; G! b( L* l# | 10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。 * G) q2 t( B+ I
8 i7 ]& }0 W% f+ d# N0 \
6 s$ ] C5 U; \" B# f K/ i8 I 作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。
; z7 o* z; N6 @2 d( q2 h
! A+ o( M0 L/ d, X6 s
! b+ L- S: u% T4 B, B3 l4 H 举报/反馈 " H9 i7 X8 \ r% k
! Z$ V: s$ l5 z( h+ r- z" b4 W8 n1 P; r, R; u
' A/ K" ^5 p6 K8 P3 i
$ V \ I. ^* @9 Q% g7 \
: d( d) X, V6 p% q6 a' a1 y
|