/ I2 p2 c& w$ D# J6 V! I' s
, J6 _$ b2 |: B+ u8 | DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。
2 O) T7 ?; J6 ~, d
( B" d5 A+ t" Z% o) F
. Y5 _+ N3 `4 Z% l 每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。 & I6 }2 R4 f, L) f( \
5 _# R: g7 F: c: H3 L$ c+ s
6 }4 V- ]) g0 m 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~ 4 e+ j2 G: J, W W' D, ^2 _
0 W: T, X a9 H9 C
7 }( }( O/ i8 C5 j 订阅方式: : P% q6 o; T2 f8 ]% B' |
+ j; U; e, U: e! u/ T' t+ W5 k
, q& k$ ]0 e6 D* j p
Star并收藏项目DevWeekly
$ m9 S2 h4 ^7 t. _+ _) f' b 关注知乎:Jackpop
2 F- |& _' k. u" t: w ^ 关注并星标公众号:平凡而诗意 7 g- P0 X7 P" u4 u
' i: y; ]& ~. Y0 K1 M# L- ~) K, c # }- ?( N6 V7 e9 }* U3 Y) w2 W
进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意! 4 L8 Q' N- l! G6 ^0 v3 I! z
9 O0 m" ~) d% N& H1 j
2 Z. e; S" b; Q* s% S T" b$ n3 K 开源项目; N9 {% o' w5 I
2 w* Z3 c6 z, Y
: b( s, O. D" L" | 1. jetfuel1 ?5 _" y+ ~0 G9 ?! |( x/ R1 l
% g8 n5 e/ v& f - {0 h* |- D7 H N
PythonStar:104 $ n! Q" F/ j) I
/ A, O3 Y$ c% M" S
( W E* r) p2 a2 b( `2 U6 F
+ q( M, H5 @& { m3 U9 ?* S* T. C
& I& s. Y/ }' d, C" i/ y6 `! X+ @
1 s* |8 F* @2 |$ h Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。
" Q8 c% l; I3 {1 Y9 ~1 z B P, G
6 l) p& Q5 a# \; ~# U( V( t 9 s# J; x9 M U" U/ r8 e: C- z
2. LovelyPlots
, W- X1 E; B( p
' q! E; A" f- A6 z3 Y, V & z. z% @1 Q) _. z) N. M, ]* o
PythonStar:560 5 E. S' @9 Y8 R2 u+ J$ \+ I
! K" z) K% Y/ _/ q& i- R
0 U2 m* o1 m5 y- c
- c; V Y3 F( x# U: `- u' z
# x. P* ^3 |) {7 R0 j+ m. W8 ^7 v U% f( j4 K$ C( V! j* ^
LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。
8 ~8 K1 v6 i3 S" z 0 o/ v: l; ? e9 y4 P9 K' J* C
3 V3 z; U; U8 f( |
此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。
. h+ n, ~6 @3 z$ s, w% y
# ]- M, H. H* n% l8 r 6 ~9 }/ T( V8 L* V% Z7 ^6 p
3. tsuki7 Z( J+ `$ o8 V3 ^
$ C: ` ?, M q5 `, z % h& i2 R4 Y5 s3 n
PythonStar:58 2 i% F) u; ~- s& g$ Q' L2 z" ?
+ M& D5 t) O: V5 Q- Y# ?
: Y7 q9 v- B+ ]# |3 O( @9 X Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。 + Y7 v* G6 _' |% p/ |' a+ G
; Y) W# A2 o- n! J1 ~! M
; X4 T/ N: P3 t( y0 C4 X# g# H% v
4. Xtra1 W( X( ]2 k6 l
' g* r+ i; E6 U % T/ c: M& h9 x: a K* }' L" P# m
KotlinStar:350
. U( C5 M1 z+ j5 f R9 H6 H+ G# W ; P& {7 K4 ]+ F. w: K- |' S& }3 O! u
# P2 Z- s4 h0 t( R
Xtra是一款适用于安卓的Twitch播放器和浏览器。
# w2 a" g' A8 x% n+ ? : }/ e0 Q I0 z: V; t$ p( C
/ H' J% l# l! B4 r' V 5. sbctl7 h, p5 V% u! ~8 H( \ {" P
4 Z( D# Q: ?! q k/ ~- I; Z; l0 q5 p
4 m7 X! f/ y& x% |* ~7 a* G, j GoStar:555 6 Z% W1 E7 G" j" e. c
2 [5 {; H# M+ ^5 d e8 p( _3 i+ W
% N* [+ E- K! A- b+ L' T# o# t" K. x" I8 j- p 2 t* `$ J% l4 ?/ ?0 p' C
: q+ Q+ Z. U: l( J- L( s1 I' {
0 c4 t0 i# e* H( B) P: Q& Q sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。 + D6 I( r1 p( }: ]" R+ P! ^
4 l# l: g% i$ F: f* |
1 z; @ \4 x+ g1 s 6. cli
+ Y- ]+ z) B; R* B% R( [$ U $ q- T7 B* u; K( D
4 |, Q* V/ O& `/ u6 |( D/ s/ D GoStar:983 * i+ h) ^9 T8 E% ]1 \* a, |
9 K4 s" l1 N+ N9 V9 N; T$ }4 L; [ c/ B' H' e1 X0 \3 D) O3 I7 @
用于 IPinfo API 的官方命令行工具。
" d' q; ]. U: {, @9 C3 D, C* D) i$ F
6 ^" z! f: M) w1 O* D* q/ Y
* Y/ H; z/ I2 P0 \& M2 V 7. thisisthewall
2 K* _' p( ?* t, ^4 I
6 ^9 e8 D% I/ D! q
) A; {8 L" ^, P' W& h C JavaScriptStar:14 3 ^) d; F _2 T8 j
4 Q7 n8 d1 D& V( d" j' @
; W0 t+ ~5 }1 `4 ]3 b/ l! ~$ _: K* ]& W 使用此API,你可以在任何设备的屏幕上获取壁纸的图片。 ( i2 h0 N, M3 j5 s
. H& E2 h; e! `2 X$ @' j" u+ g0 R ' v1 f/ [- A# b9 K
8. magic-regexp. E8 z4 y1 ^- _5 M: H+ j
2 I) R% e: ]+ R! o/ Y8 s: T6 }! v
+ q: M# [* x" N" T) G, J- | TypeScriptStar:1.4k
% U9 ]% u; `' N4 O7 J ) `% V# a7 x* D3 N% S8 M
9 t9 H1 d3 W$ B$ @: H) ^# B# I 一种经过编译、类型安全、可读的正则表达式替代方案。
; w" T" U; `; r: o5 \2 [
$ @. s; A2 [ o
8 n4 R$ C; Z1 b$ x1 [( ]" r# R& \ 9. frawk4 E4 u o1 ~1 A& p9 Z) y5 F
, K7 k, g7 I9 x8 T U$ ^3 @
& Q! y0 N+ d5 _3 ?( H
RustStar:1k 0 ]: y% |8 P* Z4 ^7 [" J4 o
5 |! y1 y/ X' s0 @
- R, U. [* `3 c7 q# l+ v% V frawk是一种小型编程语言,用于编写处理文本数据的短程序。 : z- Q9 d6 s. @5 i9 d
4 C/ j" c x% {" F1 g+ x 9 i" I& s" |; F
它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。 + o. ?" t* Y) _2 |
1 m( A( P% ^# M$ V; ` . ~& V+ R2 K9 ]! L
10. Vale" V5 ^5 ~$ {, F2 e' D
; E' G5 l: h1 M3 [. E2 c; h7 g 6 L8 {; Y# @' s; a Z
ScalaStar:1k 1 |" ?* W' P9 a5 o; f
% j2 m& B( n1 Z1 I& J* V( i4 z
% j# o& h) [' e! @, k Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。
4 w& b* R) j) m8 ^: R8 l+ \, d
9 s6 I, g! y8 s, E* P+ X
, Y6 p+ R. {9 a2 g+ ~' }( @) s 资源工具0 ?0 d. X0 A% [1 ]' A% K
* d/ {3 Q: X. P+ Y
* f8 s" \% C* o 1. GitExplorer( Z J) C' h$ [7 F
0 X+ ]7 l2 i) m0 a/ ?5 C b9 I! N, Y! e
0 w* N5 b7 e$ S% v. N! p
+ x: y- N+ I$ K6 u& \
& t; }) S$ @7 A 一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。
2 l( [4 R) J# n# j! I3 p2 i/ N5 } / L7 G4 _6 L. t! U; x& {
- t% l# f0 z- o 2. Bookworm# H9 h. t5 J. _1 ^; V
k4 [) L. Y# ` D
: M- y* S. w/ G' B3 c4 l
% G1 K- Q/ x$ p( r : T; T2 I8 }5 l! Q3 ~- x; a$ d1 p8 P
+ y: e# _5 g# S( l
适用于 Linux 的简单而功能丰富的电子书阅读器 - b% O3 B) v$ o: l1 I- m- R. y
D5 r% ?- d, O* f9 ^6 V
( Y2 I1 B% z8 L: ` X' j/ |1 O% m+ f/ W
3. gitlogs
: j4 D0 ]% O7 J6 H/ b1 f; I8 \ 6 ~. y" ]2 I* p# G' C
* w# J& h/ A0 i5 Y4 q
能够及时准确的发现最新优秀的Github项目。 + U2 M7 w- u) N) B
; R8 w: v8 @' |" ?$ r! ?1 p
4 M: h1 V/ v' c, h( a- \6 b. d% D 4. readme.so! Z* o6 _7 |& w
K0 y; J3 ?' P' ?$ }/ T q) t: P
+ c$ S2 S% s/ b6 ~8 [$ k
T) M, L; Q5 @, n1 `/ ^
4 L2 A( p6 W0 |0 {! F K
& D( V1 [9 z* W- V$ L6 g readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美?
" c$ n* R4 }( G- m" g# I. D9 I $ {6 R8 f! E& h) f0 U
" a" P" z" ^8 i9 C" u; c 这款项目就可以通过简单的选择快速生成美观的readme。 : `# N$ i$ L8 z& X7 j1 \, q
& }$ l0 w! Y9 A$ r ) g0 l3 s7 L% }6 V* V; @: r! y3 g1 v
5. learngitbranching
+ |. T1 i5 J0 [9 P6 ~# J, X , Q; ^( |. v- Z+ z/ }7 x
) ~. j+ d$ q- B: X" J
) e; u% A$ e7 y9 z
- Z! V% ]8 t1 R3 ~! J $ w; v& R9 T( t, U1 |4 O
一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。
& a* Y5 `) ~9 d5 ~1 c. Q$ e + y. X% }+ e! N# Y& X0 z. v
$ u4 n; x! J$ x1 j U: h 技术文章6 W9 _: `+ g7 }& Y* X
$ Y' U% r# G# |
, a0 t0 S4 e9 g3 T v+ U& P X
1. 了解Linux路由1 Y6 \2 o5 ~; I8 G: _/ f
6 G; ^" J" A3 G2 a
) U6 s) L3 D6 @( t0 A/ N4 H 过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。 1 j$ M& Y% K" U5 u4 b/ K V
0 ^+ Y( ?1 n$ j
5 Q1 G4 V2 H6 R+ z y* H, S, C 现在情况已不再如此。
, O' ]* d! C2 \" j' `
0 g2 j' k/ V1 _. w: r- n 7 w" F* b5 r' r w7 W: S$ v
例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。 * A, H0 k: D+ `& F8 t; J5 S: g
# g j+ [: P4 c3 T; A" o5 O
{6 I- Q7 E I; i2 ` 默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。 ) O, Z+ S' f: z0 ?6 ^' g. s
: [5 z1 i8 \& c7 A6 i0 J
" p. A1 K* `0 |$ Z! @+ @9 R
通过这篇文章就来了解一下Linux路由是如何工作的。
) W, o9 C2 U% l- L' ]0 H
2 B8 \, d- v& ?( n- A
& K+ ?. p" } d. P* s7 V% ^# g7 n$ l. v 2. 一个专业程序员的10年
/ _, ~( F, Q' I- [ |4 A& \
$ m+ ?; n" C$ P% S( M , s, s0 u$ J8 X& t+ {
10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。
/ @: f. T# c6 ~$ V5 e( u1 j
6 A0 q+ C% K8 `5 a2 g. X
' i/ A9 k0 O! t 作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。
, H! C* {! Z' [$ m1 b, B 1 Y9 e4 m& e" U7 J. E# s" E
% Q7 e" t$ ~/ e9 f' D 举报/反馈 % O3 Z K' I; ?: _" U+ w+ Z
/ q. V7 g4 M2 m$ z ]7 S
9 s9 M$ r7 z" o4 f+ K; v
& |8 X3 R' l8 e9 d9 t9 r
* h' a1 B" H4 v" E7 `$ u( P! X' E+ c& m: ?4 Y& r3 I0 H
|