, C/ |6 a; N# Y$ y: H* T/ D% _
1 I( B- U2 S+ d. m, @; m$ Y+ X9 d1 _ DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。
, D1 `6 {6 |: E) \" O
* W7 x: ~$ G7 a9 L9 L3 C1 \1 y. l$ e+ q
; Y- l+ U3 A5 J# m9 ~ 每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。
: P. p$ j, u/ V1 }( `9 m
; o* c! K/ m8 Z ' E$ V* u- S. C) J7 {; y8 w2 t
欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~
' z: X+ R6 t3 B, ^4 p % H+ m7 Z0 K2 |! h' K8 [, p: f
+ H1 N4 L* N" q0 u( M
订阅方式:
4 h) f6 P7 X8 ^& U. i : E1 R8 Q& Y4 Z
5 o3 a3 V0 d' Y8 g- F Star并收藏项目DevWeekly
: Q. g! z5 g2 Z 关注知乎:Jackpop . b& |9 X3 g2 A- B. R0 \. x. ^
关注并星标公众号:平凡而诗意
" q6 H( F: S2 u; G( `. n- K
& I$ w$ F* n" A+ m
, V& Q4 m1 L8 ~& Y 进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意!
" L( R' y g0 ^2 ?& i8 |: F% X 7 J! C: z% C' |4 @+ o" {! u5 P
% \- v2 j$ t, p) u
开源项目3 h+ W! d5 K# Z
8 L. R1 J, J Y+ U & }, p. i& q5 G* ^% a; q* P
1. jetfuel
4 { L, v+ m, i! w6 B' m ) O' U( Y. q& m# L; q" _ h7 x
7 f6 ]6 K% t1 h6 ]8 | PythonStar:104
j' O8 \) W0 `* j1 g
8 n% P, H+ U+ b5 }
* b* ^, I+ M- r% B
. |+ q" u) k; \3 q
8 y5 r6 }% V) o! @& o% V$ V * Y! s7 L1 c3 h8 t
Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。 , j6 j' f/ @0 D& O# w
9 F W& ?3 Z3 R$ l5 P f3 _- U
! f4 M1 g3 t# Y2 {. _8 ] 2. LovelyPlots
" u8 |/ J; A, p4 u ' G% V q( ?6 W) ^: A' K
t6 l& q- q" x/ H' N) _8 U
PythonStar:560
: C# ?1 f9 F9 N! F( I 8 n" @/ _" o' u9 u5 z1 [
3 Z8 l' ^4 l1 i6 `
1 c1 z% f' H8 w9 }4 q
3 Z) z* g" y1 H; G) z
2 n! g( j* j% b9 s! e$ t( p LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 $ Q1 m* Y: \6 z, h- ~
+ Z7 g4 g& }3 h' ~6 O 7 k# j& `! G _/ y+ f# f7 i3 ]3 \. i
此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。 9 n) [2 u8 T, W: t: ]
8 z1 [ n" U/ `+ F) d. x1 x
# y& z) B8 j8 f( U6 M 3. tsuki5 m1 ? W: s; ~8 ?5 a5 r: _/ I* [" A, p
# |" P1 { U/ G; R4 [- H6 ~) L7 |! P5 y
9 o5 }& M" s0 U
PythonStar:58 - l9 p* I) e9 U. ~& Z5 o. S# i
) | ~: X2 M' b0 z! W. [
, t. b6 w" c, [7 h Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。
* \) a9 J. p, f" a8 ~+ W. p , s% }+ l- c# x7 G- G$ l- y R& D
]) _. ^/ c' E7 w
4. Xtra
5 E# @6 P9 Q7 m+ {8 `/ N# [, C 1 {$ y# ~7 B& u8 r: }
4 k& r# i" B: N6 w+ @1 p
KotlinStar:350 + s% {3 i/ j* A6 F3 U
% u, ^& i9 O, ]/ `7 \% k 3 m$ b4 }; K* t; H& U; L" E
Xtra是一款适用于安卓的Twitch播放器和浏览器。
* i7 y* m% E1 R" G) J' |* k
- {, m3 M5 m0 ~9 P0 H. y. v- Z
' \! P9 s: M% A2 t/ r8 W 5. sbctl
9 k! e- d, c1 H- q$ [; ~7 w9 ~
$ s' A+ t# Q: _/ K& x) u4 Z2 d
9 B6 f6 s* f4 b% _1 f/ S GoStar:555 ' n1 N* P$ S, F o5 x7 J
" ^( Z* V8 K! I& M9 H
5 ^% d/ h: ~4 l, B3 O5 v
. c' L S e' @
v' K! j3 m7 O3 }3 O; C5 F0 s
' z! k1 b8 |& ~) g7 h9 W sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。 . s9 b: p( t8 S+ u6 c+ m8 ~ s
$ O; k% t- g1 F+ i3 J
# w( ^, X* m6 L r, t/ y1 z
6. cli# q) |& \6 g$ O+ ~( H$ r% f; n
( ]7 Q& ^# J6 y, u$ R" x( X
. L2 ~- q; S8 s% p; }
GoStar:983
/ N! ^ l0 W( \1 V i0 `
( i& L: B0 B) Z g0 c ^5 `/ A 2 k, n6 M7 Y0 A/ ?
用于 IPinfo API 的官方命令行工具。
& _7 C8 q1 w" K$ S 0 e9 F; F C! O7 w1 |
$ o' M7 p) T0 P5 | 7. thisisthewall3 C& Z' ]0 j) k5 x; }% ~3 q1 n4 U
! E+ H% x/ h' e; s2 Q
- V' j/ j. r. Q" p JavaScriptStar:14 2 N7 \4 m. \- p" P
- {- v3 N: D8 V ! M6 f1 Z1 m, n/ Q
使用此API,你可以在任何设备的屏幕上获取壁纸的图片。 / s9 g6 e; L5 q9 O% \
; A+ G& H: B. ?$ s6 ~/ G
1 f' j+ n7 g' C! I. i9 N9 T
8. magic-regexp
$ T% X1 H1 p- h+ ~! N9 O
9 ?1 K6 r) T5 W( V4 t9 Z9 O
! L S& p+ J% s/ C, T TypeScriptStar:1.4k
* I# }- ]% ]* y) R( b$ Q 6 S; S+ E8 C( {6 T
5 H4 o, K) l4 \; U" s5 A u 一种经过编译、类型安全、可读的正则表达式替代方案。
8 ?# z e$ _. J# \' O
) V* u6 y$ p% S/ x5 c2 t% L
0 [) T4 M" z* B 9. frawk/ c4 j9 Z* k) y; `5 k \, v
8 u) @$ a7 G* f/ K # C9 Y; L z& I4 C) g. D
RustStar:1k
* ~! C. h b" w3 L " H, u/ `6 y: c5 B( y
0 {. X m2 h: {+ \
frawk是一种小型编程语言,用于编写处理文本数据的短程序。 5 q9 s2 B8 f2 L
* \: C7 @3 r/ ]7 J. X6 L( Z( F2 v
' o" }: `$ s0 J. E
它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。 7 z9 I; F& k: {$ F2 J
, G/ W; R$ N( Q
$ u7 O9 @, K6 T+ S2 }! u. k7 ^ 10. Vale
3 ?( v7 W h* F" |, A$ g4 W% H ) G* W; N1 h2 c% f6 M
" b7 A- g7 ]. H
ScalaStar:1k I6 Z2 Z0 q# ?/ i
' U& e! p+ E1 D
5 M- P1 `, ]6 h. X- r* ?
Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。
% F* a, g1 z# L+ L3 ^) D 3 ?# ~+ \$ i3 x7 P1 W" H: z
0 j" X5 P- y) p8 _
资源工具
; O* K5 W5 M! h+ Z2 d7 C9 ]
. M7 y' t5 p1 T7 T' E
! O- r: b9 E3 J7 {* f! a' ? 1. GitExplorer
% i! D6 R2 }3 O* ^: P' e+ Q' a
( O/ B+ w" h3 ~( F+ D
( u( Z. V1 \. q& K2 C2 |! v: g9 g ; l' d* S* z6 N
5 c6 i& T+ d' c# \( S
. W; T) ~/ U; f 一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。 4 f6 T% x( Z0 j' h5 Y/ J" @5 ]( d
+ k0 d2 \7 Q5 y
& b! n9 |3 l0 y4 r. E3 D1 u: p
2. Bookworm! l3 J ~4 V1 v% O, e
& R2 s' V( s0 t3 m" b* c
/ A3 W; k6 F! n( V! X8 r 1 U7 Q H8 M6 q3 b/ {4 v7 ^( [
5 F# K$ A/ C# ~1 ~. C) p - U3 B) v" h( C3 j
适用于 Linux 的简单而功能丰富的电子书阅读器
( {; Y, ~! H; o6 b
4 i' `% S1 W7 J& B+ ]7 | ; ^- _: ^/ j9 p
3. gitlogs
0 O! Y. O/ Z6 S
# H5 ?" \3 O4 E& {7 s3 a5 N3 W, {( g0 w
8 a3 x; p; z" _& M) Z 能够及时准确的发现最新优秀的Github项目。 6 f s1 a4 j6 `& s( r3 n+ t
4 j7 Z% ^9 g' E1 a. C7 ? & L4 J' ~7 `- [9 s' m% v
4. readme.so m# N' j9 S3 g8 l2 U
9 l2 u( M" N0 f' ^( t5 M
9 n8 Q* G7 v8 ]$ l F5 W, v. b5 e # E8 d3 b: p* a; D& I0 w* M" Z
& A4 x2 ^# J" X- Y5 J$ o
7 w$ S: i0 w( `9 v
readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美?
' J2 {; q% q$ J
5 k/ u& X& I: K" w ~8 h- i# P 5 z' s' D* v) b2 f+ Q
这款项目就可以通过简单的选择快速生成美观的readme。
) L4 @1 H- d& J6 @* V 0 h. E3 b* ^# i. Y7 @
5 |+ L7 d' z6 k" E7 E6 ` 5. learngitbranching% A6 F/ t; |5 y: ?
+ o$ h! R5 m3 F9 l) d9 r
; p/ Y! [ B4 N1 k . v8 o& G5 g6 f: l0 e+ ?
4 Q- K5 @ ?( y( N7 i ~8 \
$ W! m! k6 e l0 f7 E1 F 一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。
* `# I( o, h. e
* t+ T" x$ u1 ]+ g; h* }
, \: B1 G2 g% |+ x# _4 E* {# D: V 技术文章
/ k9 j4 g/ R$ v% F% Z" h2 m1 ^
; @7 x' ?: o% x! }+ c4 k
3 G P: N6 }8 Z, Q 1. 了解Linux路由
9 _, o; ]5 M9 t0 m2 ~ : ?0 h, G2 B. d& t% k0 z1 E
' {' i* G( f5 | [1 j0 ^
过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。 - |* s: D" r4 S m
- i4 L6 u% A @- d/ R8 E6 w+ h
9 M0 @2 D$ Z% x, C7 w7 i# C 现在情况已不再如此。 2 A4 Q8 a7 x) o3 _" d5 P7 W
* }4 k4 e" b. x M5 U . H1 R* w7 l8 ~* }
例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。 " f: a9 U* m; {- t! z
6 l4 n& ~8 K2 o
/ ]; y+ x+ t% e+ _8 v- t 默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。
9 h4 O; J& w; g$ R
8 }; S% w! t1 n5 d% T5 r# V( a4 J + }. A* X' o9 J: g( c, g
通过这篇文章就来了解一下Linux路由是如何工作的。
& O1 }; Y8 @5 k0 w3 D 6 L1 D# F m# X7 P9 Y
" ]! ?( K* J( b; J$ s; Z! H
2. 一个专业程序员的10年$ M. L4 u! p" v% S" N; E
7 K3 k$ T2 Y, }4 m+ V; ?3 ^( s9 t 5 q: J% l! |1 ^4 P( T( h8 v
10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。 $ N' v- J& ]; {' q9 T
: o: A. z: Z) S. e
* i; _( M6 R7 u) ^1 [ 作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。
. n/ \9 [8 W2 _
0 R& ?9 } K& _. k 0 a B+ x S5 c& U. u5 M. s$ b
举报/反馈
" L6 V7 Q5 B- s8 Q7 y ! Y# U' @! k9 Z; o
3 t. |/ w" x7 |+ U- S
% ]3 q% k0 i- [7 _$ [$ M
* I$ |/ G. }& B! l; f9 f, }
0 s( `1 G! |3 n# f C |