; H( w* f+ v# Z+ `- S1 A
; q2 t; K- K9 }( C7 j# i/ t
DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 J/ ~# M$ ^! Q$ e5 Y0 m
, G6 e% t% @# E- s5 Q3 W
! X% e, W6 L! [( q( q8 I
每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。 ) p; `( k2 n3 ^5 _4 ?
' }7 s6 `! g+ J
$ h; b! ]8 T' b3 j9 M 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~ 4 u) m9 H5 M; ^( o
0 l9 b6 U' s- e# u* w( h) D$ }
4 h9 n2 O& A0 B1 L! N( ? 订阅方式:
/ B4 _. @( f) o% X% e- m3 K : k/ T8 T W$ N- y0 n; k0 I
! x2 g- p" u4 Y' b! ?; b9 \$ w Star并收藏项目DevWeekly 4 W* s6 T- J/ i! m; @+ n
关注知乎:Jackpop % y+ g/ ]7 j! o1 u( M7 i
关注并星标公众号:平凡而诗意
6 C1 n$ |8 @$ a/ ]( q $ [! R" W% o* A! n5 H
7 v1 ?1 M1 M# n6 [ m$ w( D 进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意!
3 u0 Q& k1 x8 C& w
0 `+ t8 |. R( Q+ P; `
5 w" L! c8 I8 X: B5 q 开源项目
' Q0 U& [2 c% K/ `( y
7 P0 q/ a! A1 e1 b ) }% a5 y1 g) r
1. jetfuel
, W: z) d4 O; {0 n# E, o/ X; _* Z( f
u9 f$ T. Y- p! a5 ` ( u8 k9 l5 Z6 C3 n
PythonStar:104 2 b. o: }$ o9 t* p7 {
+ Q, `* |# C8 ]: ^6 b1 n
3 U' K8 o' {/ { N& O
\' o' {# A* Z+ ^1 X' X, e- u + \# l4 N0 q! H) o# Y; W$ U3 }1 M' q
4 L$ ~5 N$ ?$ Y9 B, T2 c6 t5 r. @) i
Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。 & w: z/ D, ^# H4 z0 B
' ]' U5 f! ?' c* g% l: [: D5 Q
, V' D9 i; j) X5 T: X4 O 2. LovelyPlots0 @/ [1 q7 E; l$ }
& C- Y( V4 j% b+ b4 z
1 U8 r6 P6 e2 i0 a/ l; z$ W PythonStar:560
* Z) j/ M5 [& R' J. [
h( y& n' W7 i& |+ ^- x% { ! P6 o1 e0 E. t
. o- F/ x @* `2 o) C0 N* o
$ E" O0 E) I. C6 j5 [ . S9 f' \$ f" ?; X
LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 : g# d2 ?2 C5 ~% f2 z/ E7 |1 c( }
# \5 y; J9 @2 Z' f& j" z 2 d* W( i! w) b2 _" L0 n% P- b
此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。 4 J' c* c- w. Q5 M4 h
2 W2 H+ u& A; M/ |7 @ [. \
$ F1 l# I8 v# G" t0 L 3. tsuki5 r5 e! {! [: u1 r- v, n
% P5 W1 K) Y# Q. q) v
) H& A: m+ o- A, o& a5 _% q
PythonStar:58
9 o. g3 K6 K$ ^$ N/ T 5 E# \+ Q# v7 E% g( q' M' H
$ O: G' \4 v2 `! u: P0 X! ?
Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。
0 _7 ]6 V% Z/ M! i+ z 0 P0 E( q0 H6 [7 W2 h3 ]
+ E* B0 b9 [5 }1 P
4. Xtra
9 r. `: @9 i3 b" \6 e0 z
8 h& j& D: J. ^5 q% H: B9 U$ t
: Y8 Z7 q/ z; q1 Z) ? KotlinStar:350
2 V( Q. \$ O8 I 6 Q c A. i1 D0 {# D
4 J1 }' h7 Y/ C! `8 ] Xtra是一款适用于安卓的Twitch播放器和浏览器。
8 ]5 b, @% ?4 o + { y+ \5 Z- ?) z8 C
: M0 ?! G: E2 m" r* V0 j 5. sbctl6 v. X9 Q' k9 W% |- a7 s4 `
9 }. S# ~4 z/ F0 E4 D
$ o# `; F5 g+ j
GoStar:555
; j9 E& p+ V# B; v9 U
/ x" Y) Y0 j3 H/ v . _: [4 P- v, d$ _# W; Y" L9 V
1 U4 A! t# u7 L$ Y
( l2 S$ G' P' u5 A
) D# n: P5 ~6 c# m7 q' y# g% I sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。
1 G: z g: ~% \: q" E4 V( e
2 v. {+ y# d7 I) I ^- K& F$ N7 F" R
( @: B+ q8 d* `% X+ K0 J4 J 6. cli9 w/ b4 [. d! \3 m
; p/ z8 Z5 A4 n7 E7 w+ |5 j
& }- E3 M) e1 C7 k
GoStar:983 w0 _4 Y: ?. y0 m( E
8 h2 O" B) i N
X$ b& u/ F- [
用于 IPinfo API 的官方命令行工具。
+ Z5 [/ D3 R4 c" ]9 P ' h( g# n, b, \8 V, a5 S8 ~( O
0 N% E1 @- |& {3 T9 u
7. thisisthewall6 Z5 k: U4 }/ Y4 b& T3 F5 P
* d2 A7 r( I' R
: c7 \ k9 p% l$ u" D JavaScriptStar:14 6 [" ~$ @$ p R% O+ @
/ m7 u$ F7 C2 t, ?7 m; t- \+ W7 Y
, ^' R& y# T+ p: F% H/ o4 Y: I& s
使用此API,你可以在任何设备的屏幕上获取壁纸的图片。
& C2 F+ O! S' c' p* Z8 `7 L$ C ( |% v& S3 V. h3 k9 B2 _ N8 H
$ L0 @4 x, @& M* X# f9 T
8. magic-regexp' @" M5 I F' h- w3 t
# ~2 a, X4 e2 h9 A$ Q4 d
m9 v+ n$ ]! j5 b
TypeScriptStar:1.4k
& d( G X& p! m9 _4 t3 n
% {0 C! `$ f, B, V+ n7 ^
0 a3 R, `* B5 ]! Y5 K 一种经过编译、类型安全、可读的正则表达式替代方案。
- t) x) X1 Q/ |7 m. P5 `4 Y! a; F
7 p6 |: s0 K1 |' F9 y. F 6 \- }* S$ t- O" t0 R `8 G
9. frawk
! ]* {2 @$ n$ N5 }* @ 5 L2 X& W3 v4 x: h7 X
5 l% A$ v* R% V* r, K- o$ J' M8 T RustStar:1k : E# F5 Z `& T- z
4 ^; L& x$ D/ i. ^
. S3 E- S/ C2 T9 c frawk是一种小型编程语言,用于编写处理文本数据的短程序。 * k# P) C6 s6 l
- e. M3 s( {: K; l6 b, I, r 6 I7 o, S' V" o& b! q8 F( j
它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。 - @* ?0 ], B% U2 F' ~' j
8 V/ |. E( p5 v( K* K) ~0 Q0 |
$ g/ R8 J- t/ X
10. Vale+ M6 Y+ s v3 A G/ P J2 l% R7 G
* [( {5 r2 }9 p: K. }- _
% I9 N3 X( n5 [; `2 \& n8 z/ P
ScalaStar:1k
j. ~: `; F0 V9 ~" H# l4 t# h9 e# ^ 3 [" W* Z) i. ?2 Q* p1 U% B
9 y* `' q4 S- B/ `7 E Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。
8 B8 ] ?9 e+ L9 |( B ( n! J3 k5 W0 z' ?0 t( M0 P
% P$ B9 S3 }& `* O( E
资源工具
A' o6 x; \" U8 ^ 4 Z% S* R- W% d& k. g
2 h) S" ?4 p& ~- v' u- Z' \" w
1. GitExplorer
% S3 u5 x' y4 e 6 k$ H) S" A$ H' I% P3 o# |8 E
' g4 @- ]; s5 T% L. y$ ]1 f: w
4 y) ?- v4 h( m& o. U! i4 j( G
* r; B% b8 R3 i7 s: S9 O
% v1 r+ p+ |6 w. p5 L( z8 U8 p
一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。 + N- @9 ?6 Y/ y. _
$ O& r% y& N/ I5 M' D
( T! `( G" I( m0 T
2. Bookworm# m) L p2 ~1 l" a. K' `
8 L5 X3 z3 O& c# _/ n
, R5 \. P/ L2 Y7 {( w
$ h- H9 h* e9 y, h" D1 R 7 n- G R) z4 r5 _2 C( d
4 f3 R9 Z2 U$ E) |0 ]! C
适用于 Linux 的简单而功能丰富的电子书阅读器 ' W2 z4 i8 k' F! ?0 T/ l
+ {2 `9 s8 V( ~: p4 ^% N9 ` 9 L) g" b7 e/ m2 N; J
3. gitlogs
# Z% U. e! K# q# ? ) S2 D* k3 E$ U+ ?1 O* h; ?. C' P
8 ]; N+ F# k- l/ \1 R
能够及时准确的发现最新优秀的Github项目。 j( d7 Y1 o* r6 u# n3 g
- M4 }! A3 K! }: x" p8 M" N 6 _7 X, q* r7 v! Y+ |$ s% u; }& g
4. readme.so6 E/ [- {. V- w! ]
5 n T0 c6 h9 I/ H+ k) c$ E/ P
9 ~# g+ W* [, A
$ _7 m* d$ g2 f9 b8 o9 q , H5 y! h0 ?8 x* S `9 r: U
$ z$ X6 @! K3 D0 k readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美? + a/ k, P+ N4 x' I1 b$ b P
- ^3 {. k, ?* X, L, U2 t$ ^
# R# ]' r% _7 B# {5 b
这款项目就可以通过简单的选择快速生成美观的readme。 $ B* x7 F8 a \* u( C3 v/ o
7 {. o! Q6 K$ [* o" y% J; ?
4 q; \/ a5 r. U( n0 r
5. learngitbranching
" \+ N9 F# Z# l+ s' j7 p
d" V+ F9 j& t2 d- u/ p: y " a) A3 y) F& v- Y d
7 Y$ Q* z4 v0 a! w1 O
; A" D7 O4 r- H4 J% O' M
- J3 e& S# }# P- U2 G7 _ 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。 ( |! Q* |4 M2 v2 r" n1 O$ y
' p3 c, }& w: I) H! V
. ?9 z: n ^( N! j/ U6 b% J" B 技术文章
* }9 ]5 e% }! X
8 V" H" y3 T- Z8 O: t
! t( f; J5 `8 Z 1. 了解Linux路由 ]. ~, h2 I( k( i5 ~( I& q" F
& R: X3 E s6 N) X
$ } U; F1 `2 f4 B4 V6 X
过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。
5 x+ }6 C( w" I
V `$ m3 [& r( j4 ~% N% O
0 n. P6 h; a) S( X- }$ @- q. ?1 d8 l 现在情况已不再如此。
4 ^$ S: `- ^ j 2 S8 Y: h* H; _& ]2 B; j
# ~$ ?2 d6 f G$ N 例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。 $ D9 x: E5 v) x: B$ L
( q" R, V* E0 L* ~ h" x; b
$ X$ f% N" w, ?* T2 S8 B2 { 默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。 ]' y4 m; Q! X9 D! u. `. N, c
% T( [4 c, q+ s+ E/ G 3 D, b! M# O: P$ t$ H' P# F ^4 _
通过这篇文章就来了解一下Linux路由是如何工作的。
: i1 H! _2 T* n$ h
! E: b& ^& ?# `
' `; |% k Y5 i1 K! { 2. 一个专业程序员的10年
8 `( n7 |' L7 z4 S7 m
( c8 y8 q3 Y' G/ i! b0 [. S + K* ]% W3 K. M" M2 p5 J6 {$ N5 Y
10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。 0 P1 |6 e/ N- u+ Y
6 I# _& B* U' K# V ' I8 s2 `/ x8 o
作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。
. w, z/ D, }) P# }4 k ( p4 }2 n& D$ k* m6 @8 H- @
8 H# S4 A+ s% s$ t
举报/反馈
1 T% a) g4 q4 x/ Z6 n" ~
/ V# a' V" w( k( \ n
" S* y" Z: H- q/ V R
6 y* c+ j& M$ o( ^# G# n5 a3 z! |1 e) s
% N. I& y3 ~5 d. C- }
|