3 C+ P2 x, ?- `0 l ^7 u
9 g& D8 E& w; U% w% A$ f% z& N j/ a8 z DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。
# C. |. E8 i: b* F) b * }8 b% {7 ? M- D1 C8 C: h* s
2 W' j, M- s2 F0 y1 x5 E* W
每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。
. R1 x' s+ N* [; A8 i: c/ \ . ^6 V n1 ?7 N5 ^+ t& P, [
1 T% g4 s( G; v 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~ 3 c# F* k. V/ D) t$ B& i% z
3 g1 d" w; [( T/ l
. Y0 p. \& r, u5 f: p9 W4 K* P; K
订阅方式:
/ n! u1 d1 }0 I9 h! Y7 S. Y
7 M8 W$ o/ c9 i( x$ j7 h8 f% F } # [2 l f1 P f6 g. E1 j
Star并收藏项目DevWeekly
3 d0 L; K0 d( L9 v/ L 关注知乎:Jackpop
/ v7 Y! U0 H3 j- i9 e& R& P 关注并星标公众号:平凡而诗意 % O& z: A$ A: A: B, \" I* p/ b
) r6 h" u! }) N
* Q2 z# q! u# J 进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意! % l2 W6 }, X$ S( S& \9 q: m+ M
2 u1 T, c, Y8 O+ h/ M! {
) w, I+ M* O% J9 d7 E: _! C- y$ j 开源项目
8 H. u" o; j: j/ t/ T% g 4 M7 D7 ^. P" t8 M' T. p6 M# I8 g
( A- ]" v" e5 J. d4 ]2 x2 g2 ~% ]
1. jetfuel
( [* x5 L( }( M" ^! x
' M# ], }$ I& Y) `; |3 i
! Z! X5 l2 T" J6 Y PythonStar:104 ' u& m5 D8 B% } Q6 \
0 E" g1 T# Y) z6 R; x4 ^' D
; i& ]+ |. w! f* s% h" C
: i @9 E# m& l8 h% L+ Y( r 1 E9 d7 B- B4 p; T3 y: j$ v7 k
0 n# K. @6 N& H$ J Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。 ( j/ ]: v: i' l. H* Y" @% C
8 d7 q- a$ s$ ^% Q$ N
9 e) ]# M0 u+ C! f% n 2. LovelyPlots
" G4 Y q6 t+ Y+ ^8 u
2 h; O4 @8 x; D* |- Q. R( ]& n' r
3 C" f( d4 Y9 u PythonStar:560 5 P) ?* T$ ?4 v% D! P+ B3 u% N$ h
: n: E0 V' {4 u" T2 O0 j
# P/ G2 ^9 V4 o9 \) h' N& |; t . J" e! T. S2 a! J6 c* e# ^
' I4 N3 ?6 l% q7 }/ e, o" J
5 y6 @2 V+ U: _1 B% o( j LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 % A. S: U. t" I) h6 ?$ j, _
7 A1 Z- y" K2 o- x1 @+ k % t) v S; r: Y7 D3 _7 J' b5 m
此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。
$ j* Y# T% |+ l0 X0 m2 Z
" X9 `3 A7 P' i- T/ K% I& k; z
. c" \: D7 W( ~/ ^' n% W! E+ v 3. tsuki
/ E y, b# r6 k' X8 w) D
/ L, B& N' A" T+ F( B
3 i) t% G7 p2 r6 { PythonStar:58 5 A9 a; X6 A0 P$ b5 Y
" e# V6 C- C4 [9 ?, f
+ O: g) p. S( F Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。 " A+ C) H/ P% D% e% N+ p' p
( N! r' A) y. U& {, ]& N/ u [( m 3 v/ R* J( c! y$ r3 `9 C5 A
4. Xtra
4 e G- P; a* Y8 m7 N0 F V 3 d" ]. v% Y; q% X: J
# O% M; E; z# r! b3 Q8 [ KotlinStar:350 2 k p0 b8 I; E7 o9 [
8 C. E+ `" {0 j4 o
; ]/ K3 i$ |" x/ ^ Xtra是一款适用于安卓的Twitch播放器和浏览器。 . ?* y) y' J; O+ t2 ~ L
6 Y* B9 ? W3 h% v3 w
8 W/ u/ k' L1 ?! T9 d1 E 5. sbctl, B @( u3 g8 r2 h4 g
6 r/ G6 k- |9 A0 \% L$ b3 _5 e
' `% B* D0 d. x+ g GoStar:555
* N* V9 ?& u' k4 y
" X2 c1 S- Q% e3 D/ o! |: z# @
8 ?5 V$ b7 @. z* r" v # S) ^0 Z" f" c2 R( z# y
/ Z; k) c: {) X/ Q1 y
5 R8 P( M7 A! y: b4 Q
sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。 & f K1 k$ I- l+ Y' b
: d4 a+ A- J' i$ d7 i
0 U* h8 x& \3 e" t+ ?0 U+ T, E' T* ^; a 6. cli" G9 z4 G% N/ I5 Q! i
$ y% d7 [( N [* v0 u
* |3 N5 r2 s9 ~5 @- ]2 e) T GoStar:983
y4 j( r, V9 Q: v5 J& t ) \- y# B# |; w* g3 a! J5 U( T8 ]
4 N% C v0 Q3 v) y3 B
用于 IPinfo API 的官方命令行工具。
" b% ?9 ]/ r/ r9 ^/ T" }
2 @! B2 H% ^7 L5 f7 j$ _) Z8 X - P, a! N% n( g! {: c8 n
7. thisisthewall0 z1 ]. E5 G( G9 r
7 {. d& O s: I; r, `8 ? # f' S. o i3 C- U3 P; K
JavaScriptStar:14 % t% w9 n/ |; W! I* d2 D5 F& k2 S! ]
+ q' I* f5 i6 o
4 B* ^; Q8 k( Z& i
使用此API,你可以在任何设备的屏幕上获取壁纸的图片。 2 b, W9 |) P$ C* g$ \7 A
+ k, D7 }4 |- o. w 1 I, t% _, Q! \& V
8. magic-regexp B7 I5 L/ i5 C1 y
) U- `) C! g4 k- B9 _
3 S8 Z* A- c; b+ ]
TypeScriptStar:1.4k
1 W i; a. Q% x! T. d 0 ~, |- Z4 m: C9 y8 O
! h" `! C) I$ k0 H! i
一种经过编译、类型安全、可读的正则表达式替代方案。 ( E5 F6 a- L- D& v8 O$ W4 J/ u. h' ^
( [5 ]5 W6 i0 W# x. d
0 I, Y% Q- @! z. c( U 9. frawk
9 J! x. `+ ~3 m
& Y& Y( Z* ? o' ?/ K 3 }% i( q9 |: Y
RustStar:1k 7 y/ R* e X# [4 h! q! H3 G2 f
, J9 G$ s. O, E# h& R# D . a _# e" a: H
frawk是一种小型编程语言,用于编写处理文本数据的短程序。
& l* D3 |) Q, h' r( v
, H9 z/ d3 t$ _7 g- p, \8 u 6 y& J3 T* I0 T( N) i" _# w
它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。
2 G/ n$ f2 q4 G1 z5 L. v) ~3 ?; C - J3 a9 o7 ], y+ ^
/ A8 \; T4 n. F# }: `% g 10. Vale" D2 o4 S. d/ O' y* Q p# I
1 v- a7 d1 O; u 9 j6 S# s" e" k+ ~2 c6 u. `
ScalaStar:1k 6 j) _: p/ K0 F# T
% u o( G5 a7 h/ v! z% o1 x# o$ K
1 N o, {7 l( _2 S7 I3 }4 P Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。
$ a8 w5 x5 j r8 V/ m
8 v* ?0 y C' w. D) X: O6 A ' r8 i# ^6 J3 P$ G# R
资源工具
- K( q' T% i. ~0 |3 i
+ q/ {+ G' P8 ]' } M* C% h2 a * L! }5 C m4 T6 K# d2 Z
1. GitExplorer3 S( j w- m1 q/ M' }& F2 _: Z z
7 F. ?0 Z8 b) S
& }1 i8 R D+ t, S9 p
9 A$ B2 {; d" |" _" [
5 r7 B: i1 L6 x
) ]& K6 j3 D' X8 V7 k* S 一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。
" N c9 P& T q- i1 ^1 N
# N( o, w5 H7 y/ Q) O
" |& B! R( R7 n5 p: q* k6 {$ F 2. Bookworm9 R+ m! J6 _2 v: J5 b1 Q) ~
5 t9 G# F- E+ b# { s, g
) ^8 O$ Z6 ~9 L, @" s& R/ l
' ^ G- h( V5 h9 @7 S- q) J% H
' E) l* Y& ^7 ?- D" p" w
+ S, x0 J* ]9 v. n
适用于 Linux 的简单而功能丰富的电子书阅读器 9 k0 ^& n, M5 w1 m8 a; }
. E$ g) b' s: p
: [" j5 G& b; R4 A
3. gitlogs- n# {& g7 w; f2 z0 h* w
2 L3 P# {3 ^6 ]4 l6 H( R, C
( \) P& r; R& K; D! D 能够及时准确的发现最新优秀的Github项目。 7 u* }$ V O' P7 t/ o2 Y' U! y
$ f+ S4 E$ _2 A( s8 ^5 Z, D : j, t$ z. L/ V( }7 D) B
4. readme.so% D& C0 j2 D5 e- A7 s: x0 K7 L
" P5 O' [9 I8 Z; W3 y0 G. b
7 U2 q4 H6 K: z$ I/ S# p
L! G: h: n, @
2 {% q+ D/ N2 @4 l8 R
* r- M, X. E: _4 M* u readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美? : S0 I6 s* s; ?- ?+ @1 }* `
+ Z/ u1 }/ @+ M m) l
! x* o0 t6 q# C; J! E 这款项目就可以通过简单的选择快速生成美观的readme。 8 { B0 A1 O, E$ i( F
/ Q5 @% ^0 T5 f9 i6 T 3 f( h$ ~; ?5 d* O
5. learngitbranching
& d9 E# f2 i( x* M - }$ c; o4 ~! V' \' k
5 ~% x( R/ r7 H8 I6 z% B
0 M0 R1 o+ V9 Z/ }6 N& m. A . F" _ |$ M: z, c( u( d
& O, {. d1 f& Z7 t! X, {# b 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。 9 Q' l: f0 c& r9 ]+ N
0 u$ _; m- Z) G0 C* y$ D0 h$ K
! n- t5 z8 L7 _) S* J( l! P 技术文章% i; `+ z; v8 q2 v
2 C0 V, K3 {4 _! V' m8 w6 B
: H. ?' O4 Y8 h% @1 B 1. 了解Linux路由
& l4 h, z0 ^; ~* S5 q1 p
$ _ O. \2 Y0 ?" i% g # s$ x1 h0 j ^/ T2 q9 U
过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。
- B, g3 b8 T5 K& X% M 1 X) ^# S; `% h, I1 F* O
$ T% A4 @3 F$ ]5 _
现在情况已不再如此。
0 q4 f+ E9 |# S7 t' I
+ y, S p) Z/ F) J# ^( U* p. | - i$ n2 v/ H7 S6 q' a
例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。 0 w8 D( R% a6 c% W
/ j$ r' {2 t7 u" [9 g. V
; M5 [: R; l: {' C. @3 s T 默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。
3 J* ?- A4 i8 o, o # g9 X0 q8 o y+ H8 z3 h) U6 T9 J
( c+ D9 Q4 H# b; D 通过这篇文章就来了解一下Linux路由是如何工作的。
3 c$ J, ?0 {/ E/ F" e: l0 F- b
* W- J& h% s) p/ V2 | ' A& U# B" L- a: M
2. 一个专业程序员的10年
, w- h$ p' B& b6 n8 [9 e
& g& E- b% L/ _. q' M3 i! z4 t
1 F* U" [9 H% a8 n 10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。 8 _5 X9 G6 h- h/ L$ ]) k( b1 n
9 L* t# o3 q% _- t8 u! N
: s( f: s. `0 e+ F1 p5 z9 b9 a 作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。 8 a6 }7 s6 ?* O# c/ W2 _! \
* ~, {: |7 R5 \
! E+ R/ N1 R$ G 举报/反馈
1 u, J8 [5 r @# C 0 o1 n! `9 h- e2 U3 `. j4 E* c
5 {: Q7 H9 c" y/ i: ^5 s0 {* s5 f5 h
$ {0 X- D5 h) \8 W% V3 i/ V# a
: O) t4 \0 N1 P9 W. h8 z9 h/ t
! Y2 B1 _& h* W4 v) `0 U* w1 g
|