( F# L k3 v: `/ Y1 y1 o
1 \$ `( w$ y; H& i DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 9 [( C c, l: L \4 c
% b. ~3 w3 ~) E0 F
7 U2 x+ T% \5 o0 ?9 [& B+ ` 每周五定期发布,同步更新到知乎:Jackpop 和公众号:平凡而诗意 。
3 w# x+ E* J0 Q, k5 M E; z
: y& Z B% y! @/ r& `
2 F: p. _) T, ~! \6 E$ N4 g& ] 欢迎大家投稿,提交issue,推荐或者自荐开源项目/资源/工具/文章~
6 p$ v* l* r. b) ?3 l; Z 6 _+ S4 e8 k/ N
* R0 F) T! ?0 f; d: R8 m% G 订阅方式: 7 p9 r; O7 s, j7 M
1 s$ h& i. g* i ) m! @( K7 I- K. \
Star并收藏项目DevWeekly 1 ~# \! y" y/ B6 c; P0 M0 Q1 A6 c
关注知乎:Jackpop , \4 M2 K4 [, U; h7 p, P$ g
关注并星标公众号:平凡而诗意 # f* \ j6 D4 Q$ d0 W
v% O/ Z% y& j2 V 1 b' E4 e7 s& r
进阶技术,优质资源,实用工具,欢迎关注公众号平凡而诗意!
7 b$ @/ B+ r; P5 D. W6 _ 1 K8 E9 k" z! C8 o- }' {. L
( @7 B' Y) O9 c3 i, ]
开源项目1 L+ e0 L. |1 D7 \2 n* q. U
+ R2 \# l" H1 v( R* v/ M
; t9 G) R/ j$ ^1 ~- s 1. jetfuel7 [: d2 ^5 h6 L) q7 k, M
* u2 b" M: L5 D
/ V( J4 l* U9 D- r6 \6 t3 I PythonStar:104 % B0 [$ }" e; m/ v
( F9 }$ x/ h9 {2 Z
# C# Q. w: d7 f u- `5 F2 q
- D0 i2 X* q8 ?1 Z , q& s. G8 {. d1 [7 r$ t
5 \: B8 {! W) o7 s% A0 ^ Jetfuel是一种性能分析器,可以监视生产Python的性能,并使结果易于聚合和搜索。
( t1 @' w8 P8 E7 N2 r ; V3 O! m2 X& A$ o
5 m C1 g0 c" p- y- C* Y 2. LovelyPlots
T9 w) b* ?4 p6 z& j, |: i2 u
6 T% {0 O$ u7 t+ \, X: x6 y8 Y$ y
7 ~4 J# a& b/ {) z8 g. Q- i7 T PythonStar:560
! V; |- R- U+ t0 E* f, B 9 ?8 x- f8 i7 n) T' |8 s( v) _' {
2 C i& h& l V) U% h9 _3 Y 1 ], ]4 e( e' E" K% f0 Q8 E
5 n; x6 W. B. w2 J) c! a. K- I
$ V7 r% C. F* t4 V" }* B& \2 ]
LovelyPlots是一个包含matplotlib样式表的存储库,可以很好地格式化科学论文,论文和演示文稿的图形,同时使它们在Adobe Illustrator中完全可编辑。 4 G* }. Z: F+ ]% a
$ ~0 k0 w; I# \& ]+ Y+ S' J
" M# A+ Z& F5 o8 `/ H 此外,.svg导出选项允许图形自动调整其字体以适应文档的字体。例如,.tex文件中导入.svg插图将使用.tex文件中使用的文本字体自动生成。
% O0 {& n. J ^1 ^; J+ @7 ?1 S& _# Z ) Q9 P: O. N" ?1 j0 M% t+ I
3 v: l, U. Y0 c9 b8 a 3. tsuki1 ~/ Y! G6 u, M
& K& l7 N: i, y! o! @! _: a y. c
3 u& T0 {3 T/ v" ]* ] PythonStar:58
4 f6 ~& R/ P. x" s
! b) K! C+ c3 {, i; k' H % y' o% g# F. c) N
Tsuki是一个极简主义的开源社交媒体平台,使用Python构建。 , i/ D2 f6 a* G2 \& s1 C: X
6 e5 b8 J# [9 p) j4 z$ V! g- g t+ d/ n9 S9 i$ E* { ~
4. Xtra
& n, r8 U9 d) H% v( t
+ Z, T% k: x7 v, g1 z+ p# f
5 ~+ k' F2 |& O KotlinStar:350
; x. ~! v0 l1 I& F
9 J, B \8 U# `7 _" u
! B7 z" i5 Q2 _6 ]% i; f Xtra是一款适用于安卓的Twitch播放器和浏览器。 * a! N* K3 \8 H" w! a4 v
& _9 K0 @/ H3 t. ~0 |2 _
( G2 G: y; }# q# R" R2 N% ~
5. sbctl; f+ r2 o3 S9 L2 {( ~& A8 @2 w
, ?: g; E) D% } % n1 F' L/ s2 z4 p0 y
GoStar:555
$ y0 L* x, h; F5 E! O 8 `3 ]7 i) j' _# ]. l" t1 v# Q
# l* Q* x I5 m1 R. r2 ?2 n5 k6 A
7 w* v+ h. N. E( W+ ]* r' X
( O& J8 h; [( v$ m( S2 K" i$ S
; U8 Y# K- r& ]$ |1 N8 o
sbctl 旨在成为一个用户友好的安全启动密钥管理器,能够设置安全启动,提供密钥管理功能,并跟踪需要在启动链中签名的文件。 5 {( G/ u! E* W& j% r/ t1 I
3 ^+ O# X: s. { i
" R+ X4 \4 g1 z# R6 c0 \' ? 6. cli/ B; v, }) m% D/ }6 N0 ~
( P! J8 p; \; f$ a3 ~ & e: Y2 r! \0 i- P
GoStar:983
: s3 M" e- }/ z2 T% v
3 X4 p% q% h- g( t* b# ]( y S$ d
2 T2 A# E5 |6 K8 Y 用于 IPinfo API 的官方命令行工具。
# q1 Z' y$ `, A0 L+ H4 _3 ~
& [9 i# A3 i1 j3 n- n) B " b* H x$ ~5 T7 S6 ~" |' \$ _8 I
7. thisisthewall: u' J# y3 i& q8 u# P
4 ?, C. z: k) B, y$ B5 w , [; T7 d% I0 {5 ?5 M9 q
JavaScriptStar:14
( M- A5 g- U5 A( u$ H+ L3 [3 Q8 u
4 h, w1 f4 D& G, S" ] $ u Q3 ^ e+ Z: O& }/ V
使用此API,你可以在任何设备的屏幕上获取壁纸的图片。
, n3 R6 g' J$ L5 L5 a: i+ k - m; R H2 D5 }. k; h3 p
+ Y' d" g1 {1 m2 R7 b- z 8. magic-regexp) ]7 c# j. F9 Z, A
! o7 G" s$ U: z0 Y/ F2 e6 F: H
d/ U% H/ K. ?2 L$ i
TypeScriptStar:1.4k
* L: R% u& \5 S* E% C
$ h. J) Y! V! y) q8 V! o
6 l2 c% `2 Q4 N' e 一种经过编译、类型安全、可读的正则表达式替代方案。
+ k9 r# r6 ~& u4 {+ ^3 L' | 4 \9 j0 w. _3 d+ @/ ]
* K; Z$ x9 z3 l% I+ c! a
9. frawk j& t6 \8 s5 N( o! I" l+ h. L1 P
" |& f$ I8 X' S4 A' ^! D9 x 2 x4 ?+ f6 U: ?# |, [7 W- r9 M3 n
RustStar:1k
* v+ M, S/ O H
3 _. w# Q! x% j* h
% q5 C" z' Q3 C2 n V frawk是一种小型编程语言,用于编写处理文本数据的短程序。 6 F2 `" Z5 q$ _) O) @( S: T! R
, m1 O& D- J5 F! U( T$ [9 z/ h4 D
' r3 a$ Q. t; y8 @7 r& F 它类似于AWK语言,许多常见的Awk程序在传递给fruk时会产生等效的输出。如果你希望脚本像标准 Awk 字段一样处理转义的 CSV/TSV,或者希望脚本执行得更快,那么frawk会表现更好。 ' h1 r' J3 @3 {1 ]+ w+ V- D
& U/ e: z5 ^5 k) ^7 G0 I
" V1 \- h( I7 X7 A- y6 I1 T9 B 10. Vale
2 s; E/ V" p0 f
- M) g( ?- f7 |+ ~ H) t
% j8 ?# M7 n+ e" `' I$ x ScalaStar:1k 4 s5 L# _5 Y1 ` n0 J/ H4 @- \
$ d! D( k! Y- ~. g$ k
3 ]# l8 k) u/ T* ~+ o
Vale是一种编程语言,其目标不仅是快速和内存安全,而且简单灵活。
% P% h: c$ e/ n! }
' U+ T% @( x0 w# K
1 h: L4 A9 ~/ Q, J* j* O& P 资源工具
2 l- x; c/ e) w! X0 S
$ V4 x& y" d/ z& d1 [# s
$ p2 i+ C* `% G1 @ 1. GitExplorer
' Y+ n4 x2 {* z4 v9 h/ K0 r
! u. [2 E. F8 P' _6 j8 K: J; Z s$ {% s; e! y# S* K3 O! Q
5 p1 G& g( i6 |5 J% ~9 t1 p & ~8 H0 D" V s
& |4 N0 s/ N2 S3 w# _
一款Git命令浏览器,只需要选择想执行的动作,它就可以快速生成命令。 , P7 `: x' X7 `6 s( F/ _
4 z( k0 ?* K) s/ _) _9 I
- M6 m; d4 u3 j$ B* { 2. Bookworm
; y3 G6 W" r8 N# P1 P" }
4 H3 s4 ]- e, v+ v8 n8 M" Q2 G6 Q
! T+ |$ L! H' e+ }' U $ C, W3 [% H. l8 v1 [) h' A0 \& ^
/ N m: M2 t; g4 X
8 }! Q% P) h, [ 适用于 Linux 的简单而功能丰富的电子书阅读器 5 y# \. p! ~- S) X
7 B' e# g' ~) U4 W* ]; g ' F* k' `4 K0 K- r9 k6 a
3. gitlogs1 k3 _ z' Y" O; n0 H/ s( \2 u
4 z% z7 R* ^$ V
+ J. K/ I$ a2 _8 g* `( h4 ^$ Y% x 能够及时准确的发现最新优秀的Github项目。 ! ?5 y1 }# }2 r3 y
: r1 z7 i5 P0 F8 Z& s \ 7 s$ a4 l; B1 L' r
4. readme.so: q% t4 r' w1 w
$ o2 R1 w8 {" E& M3 m4 w2 w
0 v7 X: E! M0 }) D
$ c# v% k( S k: ?- |1 D
5 {; g6 E7 ^; K- e * e/ g! L9 c& s( E* a% e3 n! u! ?
readme是Github开源项目中非常简单的文件,那么为什么有的readme写的那么精美? 0 k6 M" U$ V% K7 K9 q" c# ]! m
% A2 \3 Z+ o0 R; a0 J" |
* Z2 O% G- c2 a
这款项目就可以通过简单的选择快速生成美观的readme。 ; @! | g* ~; d! F4 C2 w
: Y: |: j( j! Q
( L8 U0 d/ R: F" K2 H
5. learngitbranching: [0 |9 a8 L5 f+ k2 V
: f9 ?8 y. c$ O$ ]* T
1 b/ f! {5 ?6 _! V
0 V% D7 i; r6 Q: J7 n/ d% z : i' |" L& P8 K$ k+ e
4 V, [, x/ l4 I) ?
一款在线的Git分支学习工具,通过这款工具可以可视化的解释常用命令,更有助于理解。
; ?7 j: s5 T& P 3 u( ~0 \4 L( i. [3 M6 q" A
, l$ ]- ]- u& E8 T i) ^. w. p
技术文章$ [4 V0 }7 s4 Z/ Z/ V0 X& x
; t( {+ C; V# J [. x
/ B- @! j; U3 f5 C- X 1. 了解Linux路由
$ e$ r4 k+ _' m+ i) u# a& T
( s' j5 ~; k& ]. o! r( ]$ A+ y
1 t" J) w, H3 q, L7 g 过去只需在我的Linux终端中输入路route(或者后来的ir route),就可以准确了解我的所有路由。 ( U$ b! T2 `9 G) ~9 d: K1 _! c
+ E' @* [2 O) u3 U: t9 ~7 Z" J ; x' |0 s7 ~2 {
现在情况已不再如此。 s/ j" b1 D6 N$ D/ y! j5 [
% I2 R+ x+ B0 x
5 T4 J: S: Q3 ~4 C1 G 例如,当前使用的机器使用wg-quick脚本通过有线卫士协议连接到Mullvad虚拟接口。我很确定我的所有流量都通过Mullvad,但却无法从我的ip路由输出中看出这一点。
% w, g8 p& J( B7 d" W
, _- f) U( A# O6 M) A' ? + w* m3 x& k2 ^. A5 H
默认路由似乎通过我的物理网络接口而不是虚拟接口定向所有流量。
7 R( r6 S! q' b
: V* A& K' k: ]7 }3 w7 w- ^
9 m. N4 P% r: l% { 通过这篇文章就来了解一下Linux路由是如何工作的。 " @% ^. ]1 i2 w1 X
+ n( O' a) a7 T6 i7 ?7 }' f9 C
3 A% z3 O3 I2 G" e2 Q$ _/ y2 X 2. 一个专业程序员的10年
( ?# k& \$ H. u
7 @* l9 \4 ^2 A; h! F$ T u
* p4 @: ~8 m" ]+ k; J 10年,对于一名程序员来说算是比较漫长的,在这10年中项目、工作经历了很多,也感悟了很多。 " L! Y; ^7 L0 _. }
4 ]; {) k) c4 c u/ f5 d+ ~! g3 I
6 `! V }3 m/ @
作者是一名从事10年编程的程序员,从工作、技术等不同方面总结了自己的感悟,很有借鉴意义。 ) T6 G; g$ P7 b) A4 R
2 {% f; W: Y; x 6 t9 F) v' J4 i& X
举报/反馈
9 t& s" W2 W& M. u6 ~
* T& H) ]# t- u9 i2 y2 w! q+ B: F7 I+ |/ s2 O
9 L' L" x$ G S4 F+ \2 J1 J3 L* B
; H- }0 d4 |# |! v6 E1 ]& k
|