dyweb / weekly

DevComm-Shanghai Weekly 上海地区高校技术社团联合周报(欢迎投稿)
https://dyweb-weekly.netlify.com/
65 stars 5 forks source link

Weekly-104 #89

Closed gaocegege-bot closed 5 years ago

gaocegege-bot commented 5 years ago

联合周报第 104 期开始投稿 :tada:

gaocegege commented 5 years ago

https://github.com/deebloo/things-you-can-do-in-a-web-worker

Web Workers give web developers the ability to run code in multiple threads. 这个是 web worker 可以做的一些事情

gaocegege commented 5 years ago

https://github.com/artzub/GitHubVisualizer

GitHub Contributions Visualizer

screenshot from 2018-12-04 11-40-29

skyzh commented 5 years ago

最近写完了 Nand2Tetris 的 VM Code Translator,发现编译器一类的软件似乎没有写单元测试的必要。但是我们可以直接用它编译几个程序来测试功能。

于是发现了 GCC 的 Test Suites。 https://gcc.gnu.org/onlinedocs/gccint/C-Tests.html#C-Tests

https://github.com/gcc-mirror/gcc/tree/master/gcc/testsuite/g%2B%2B.dg/cpp

xplorld commented 5 years ago

https://randomascii.wordpress.com/2018/12/03/a-not-called-function-can-cause-a-5x-slowdown/

windows llvm 特别慢,发现是因为开了1k+ process, destroy 的时候特别慢,发现是 windows 关 GDI process 的时候特别慢,发现只要你调用了某个看起来无害的 windows parse argv 的函数就会 load GDI. 手工 parse argv (并 delay load)以后速度 5min -> 1min

xplorld commented 5 years ago

https://www.hanselman.com/blog/AnnouncingWPFWinFormsAndWinUIAreGoingOpenSource.aspx

WPF WinForms WinUI 都开源了,啥时候 windows 也开源呢?

gaocegege commented 5 years ago

https://github.com/panjf2000/ants

🐜⚡️A high-performance goroutine pool for go

code base 非常小的 goroutine pool 实现

gaocegege commented 5 years ago

http://mysql.taobao.org/monthly/

阿里云RDS-数据库内核组的月报,每一期都挺硬核的

at15 commented 5 years ago

https://github.com/aphyr/meangirls CRDT 跟着 @htfy96 star (作者是 jepsen 的作者 ... 项目起名字还是很有个性的 ....

skyzh commented 5 years ago

http://www.cs.nott.ac.uk/~pszgmh/pearl.pdf

Functional Pearls Monadic Parsing in Haskell

skyzh commented 5 years ago

在看 Real World Haskell 的时候看到 Monad 和 fmap 看的云里雾里。

http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html

Functors, Applicatives, And Monads In Pictures

看完这篇就差不多理解了(

at15 commented 5 years ago

https://github.com/etcd-io/gofail 在 tidb 群里看到的 一开始以为是基于 go/ast 之类的 ... 然后发现是字符串替换 ... https://github.com/etcd-io/gofail/blob/master/code/rewrite.go (应该性能更高.jpg

gaocegege commented 5 years ago

https://github.com/sausheong/gonn

Building a simple neural network in Go

竟然还有 gonum.org/v1/gonum/mat 这种库

gaocegege commented 5 years ago

https://github.com/ahmetb/kubectx

切换 Kubernetes 集群的命令行工具,当你有多个集群的时候就会发现非常有用

at15 commented 5 years ago

https://github.com/chromedp/chromedp A faster, simpler way to drive browsers supporting the Chrome DevTools Protocol.

gaocegege commented 5 years ago

https://github.com/me115/design_patterns

设计模式介绍,每一个都有列出重要程度,方便从最常用的开始学习

xplorld commented 5 years ago

@gaocegege 为啥不用 kubectl config set-context

gaocegege commented 5 years ago

他支持一些 alias 之类的扩展功能,方便一些

at15 commented 5 years ago

https://github.com/shiftkey/desktop github desktop for linux 亲测可用

at15 commented 5 years ago

https://github.com/crossplaneio/crossplane The open source multicloud control plane

codeworm96 commented 5 years ago

https://github.com/rust-clique/human-panic Panic messages for humans.

codeworm96 commented 5 years ago

https://hacks.mozilla.org/2018/12/rust-2018-is-here/ 对 Rust Edition 概念非常好的介绍,终于看懂 Edition 是啥了...

at15 commented 5 years ago

https://github.com/dyweb/gommon/releases/tag/v0.0.8 gommon 的 log 重构终于部分完成了, 做了点微小的 benchmark 也把所有流行的 logger 都又看了一遍

go test -run none -bench . -benchtime 3s -benchmem -memprofile p.out
goos: linux
goarch: amd64
pkg: github.com/dyweb/gommon/log/_benchmarks
BenchmarkDisabledLevelNoFormat/gommon-8             1000000000           7.28 ns/op       16 B/op          1 allocs/op
BenchmarkDisabledLevelNoFormat/gommon.F-8           5000000000           0.59 ns/op        0 B/op          0 allocs/op
BenchmarkDisabledLevelNoFormat/gommon.check-8       5000000000           0.23 ns/op        0 B/op          0 allocs/op
BenchmarkDisabledLevelNoFormat/zap-8                500000000           11.6 ns/op         0 B/op          0 allocs/op
BenchmarkDisabledLevelNoFormat/zap.check-8          500000000           11.6 ns/op         0 B/op          0 allocs/op
BenchmarkDisabledLevelNoFormat/zap.sugar-8          500000000            9.15 ns/op       16 B/op          1 allocs/op
BenchmarkDisabledLevelNoFormat/zerolog-8            5000000000           1.70 ns/op        0 B/op          0 allocs/op
BenchmarkDisabledLevelNoFormat/apex-8               2000000000           2.56 ns/op        0 B/op          0 allocs/op
BenchmarkDisabledLevelNoFormat/logrus-8             1000000000           7.16 ns/op       16 B/op          1 allocs/op
BenchmarkWithoutFieldsText/gommon-8                 30000000           139 ns/op         288 B/op          3 allocs/op
BenchmarkWithoutFieldsText/gommon.F-8               50000000           106 ns/op         160 B/op          1 allocs/op
BenchmarkWithoutFieldsText/std-8                    10000000           410 ns/op         128 B/op          2 allocs/op
BenchmarkWithoutFieldsText/zap-8                    20000000           289 ns/op          72 B/op          3 allocs/op
BenchmarkWithoutFieldsText/zap.sugar-8              20000000           359 ns/op         200 B/op          5 allocs/op
BenchmarkWithoutFieldsText/zerolog-8                 3000000          1546 ns/op        2011 B/op         36 allocs/op
BenchmarkWithoutFieldsText/apex-8                    3000000          1638 ns/op         320 B/op         15 allocs/op
BenchmarkWithoutFieldsText/logrus-8                  1000000          3626 ns/op         769 B/op         15 allocs/op
BenchmarkWithoutFieldsText/klog-8                   10000000           631 ns/op          16 B/op          1 allocs/op
BenchmarkWithoutFieldsTextFormat/gommon-8           20000000           224 ns/op         360 B/op          4 allocs/op
BenchmarkWithoutFieldsTextFormat/zap.sugar-8        10000000           391 ns/op         241 B/op          6 allocs/op
BenchmarkWithoutFieldsTextFormat/apex-8              2000000          1995 ns/op         488 B/op         18 allocs/op
BenchmarkWithoutFieldsTextFormat/logrus-8            1000000          4051 ns/op        1001 B/op         18 allocs/op
BenchmarkWithoutFieldsTextFormat/klog-8             10000000           668 ns/op          24 B/op          2 allocs/op
BenchmarkWithoutFieldsJSON/gommon-8                 50000000           132 ns/op         288 B/op          3 allocs/op
BenchmarkWithoutFieldsJSON/gommon.F-8               100000000           74.0 ns/op       160 B/op          1 allocs/op
BenchmarkWithoutFieldsJSON/zap-8                    20000000           189 ns/op           0 B/op          0 allocs/op
BenchmarkWithoutFieldsJSON/zap.sugar-8              20000000           268 ns/op         128 B/op          2 allocs/op
BenchmarkWithoutFieldsJSON/zerolog-8                50000000           117 ns/op           0 B/op          0 allocs/op
BenchmarkWithoutFieldsJSON/apex-8                    2000000          2080 ns/op         512 B/op         10 allocs/op
BenchmarkWithoutFieldsJSON/logrus-8                  2000000          3115 ns/op        1218 B/op         22 allocs/op
BenchmarkCallerJSON/gommon-8                        20000000           292 ns/op         368 B/op          3 allocs/op
BenchmarkCallerJSON/gommon.F-8                      20000000           240 ns/op         240 B/op          1 allocs/op
BenchmarkWithContextNoFieldsJSON/gommon-8           30000000           119 ns/op         352 B/op          3 allocs/op
BenchmarkWithContextNoFieldsJSON/gommon.F-8         50000000            75.1 ns/op       224 B/op          1 allocs/op
BenchmarkWithContextNoFieldsJSON/zap-8              30000000           187 ns/op           0 B/op          0 allocs/op
BenchmarkWithContextNoFieldsJSON/zap.sugar-8        20000000           258 ns/op         128 B/op          2 allocs/op
BenchmarkWithContextNoFieldsJSON/zerolog-8          50000000           112 ns/op           0 B/op          0 allocs/op
BenchmarkWithContextNoFieldsJSON/apex-8              1000000          3319 ns/op        1089 B/op         19 allocs/op
BenchmarkWithContextNoFieldsJSON/logrus-8            1000000          3781 ns/op        1362 B/op         25 allocs/op
BenchmarkNoContextWithFieldsJSON/gommon.F-8         50000000            96.2 ns/op       352 B/op          2 allocs/op
BenchmarkNoContextWithFieldsJSON/zap-8              20000000           263 ns/op         128 B/op          1 allocs/op
BenchmarkNoContextWithFieldsJSON/zap.sugar-8        20000000           295 ns/op         256 B/op          1 allocs/op
BenchmarkNoContextWithFieldsJSON/zerolog-8          30000000           122 ns/op           0 B/op          0 allocs/op
BenchmarkNoContextWithFieldsJSON/apex-8              1000000          3705 ns/op        1545 B/op         23 allocs/op
BenchmarkNoContextWithFieldsJSON/logrus-8            1000000          4374 ns/op        1844 B/op         29 allocs/op
PASS
ok      github.com/dyweb/gommon/log/_benchmarks 248.617s
at15 commented 5 years ago

https://jepsen.io/consistency 一致性模型间的关系

at15 commented 5 years ago

https://github.com/sahib/brig File synchronization on top of ipfs with git like interface and FUSE filesystem 主要是看到有 fuse https://github.com/sahib/brig/tree/master/fuse

gaocegege commented 5 years ago

婶婶什么时候写篇文章分享一下造轮子的 design choices 吧,我们也学习一个