Dawei Ma Profile picture
Oct 23, 2021 22 tweets 8 min read Read on X
DDIA 作者 @martinkl 关于分布式系统的公开课,质量非常高。涉及到的主题有CAP理论、拜占庭将军问题、RPC、分布式系统逻辑时钟、容错、Raft、分布式事务、最终一致性、CRDT、广播算法等,共不到7小时的时长。
youtube.com/playlist?list=…


这套课程后半部分很多算法都依赖Total order broadcast算法(这个算法又依赖lamport/vector clock逻辑时间算法),mark下这个重点。
purelyfunctional.tv/guide/clojure-…

一篇介绍并发开发模型的好文章,虽然是Clojure语言的,但对理解各类并发模型如Go的CSP,Erlang的Actor,还有Clojure的STM。当然Java的基于锁的并发同步原语也有很多介绍。文章内容轻松易懂,推荐阅读。Clojure也是门有意思的语言,基于REPL的开发测试比Java要高效不少。
ardanlabs.com/blog/2018/08/s…

这是我看过介绍线程调度最好的文章,作者从操作系统线程调度出发介绍调度的相关概念,到介绍Go语言的调度器设计,解释了常规操作系统线程调度与Go这种协程调度的差异,进而阐述了Go高并发的秘密。
接上)吐槽下Clojure的core.async库的go/channel设计,和Golang相同的CSP并发设计风格,但在进行同步阻塞系统调用(如网络请求)时会阻塞底层的JVM线程,怎么看都像一个半成品😂而Golang的调度器会自动将会同步阻塞操作系统线程的Goroutine切换至使用network poller上进行异步请求。
ardanlabs.com/blog/2018/12/g…

@goinggodotnet 的关于Go垃圾回收的系列文章太精彩了!从GC的原理部分介绍(GC不同阶段对应用性能的影响及堆内存的变化),然后通过一个例子测试应用通过对堆内存的使用变化来优化GC的开销,提高应用性能。此文并没有陷入实现细节,而是通过原理介绍及测试找到优化性能的方法
bmpi.dev/dev/deep-in-pr…

写了篇介绍Go/Java/C/C++/Swift等编程语言是如何实现范型的。 ImageImageImageImage
这篇文章犯的一个最大的错误在于把泛型写成了范型 看来写作还是得慢着来,一口气写几小时就会犯很低级的错误😮‍💨
bmpi.dev/dev/deep-in-pr…

写了篇编程语言实现并发的文章(第一篇),目前还是草稿状态,欢迎各位提出意见或建议,感谢😄
bmpi.dev/dev/deep-in-pr…

历时一个月总算正式写完这篇关于不同编程语言实现并发方式的操作系统层面统一的知识,包括进程调度、用户线程与同异步I/O模型。编程语言和框架一直在变,但掌握这些操作系统基础知识能更好的去理解这些并发模型(Lock、STM、Async/Await、Reactive、Event Loop、CSP、Actor) ImageImageImageImage
Operating Systems: Three Easy Pieces这本书推荐阅读,从Virtualization、Concurrency、Persistence、Security四个视角介绍操作系统的入门知识介绍,文笔优美,通俗易懂。不仅讲技术还讲技术历史发展的故事。豆瓣9.7分,亚马逊也是好评如潮。

在线免费阅读:pages.cs.wisc.edu/~remzi/OSTEP/
这篇文章教你如何只用Linux的/proc文件系统的内容来调试进程的性能,非常硬核,推荐阅读👉 tanelpoder.com/2013/02/21/pee…
最近项目上在考虑将Clojure工程用Kotlin重写,一些可能的原因:

- 入门难度较高,需要适应其Lisp风格的语法
- 虽然可以用Java的包,但相比直接调用还是有一些开发成本
- 很多Clojure开发的包都无人维护或没什么活跃度

这对企业级项目开发来讲存在一些难以接受的问题👇
项目强制要求系统上线需要先解决BlackDuck扫描出的一些Security、License、Optional的Risk,Clojure由于生态不活跃,会被扫描出很多问题,Security还好解决,最麻烦的是License的问题,需要整个替换,而可替换的包也没那么多,Optional的问题是考虑到整个包维护的活跃度(commits、version发布频率)等
所以就算能愉快的使用Clojure开发,也会在这类问题上耗费很多时间,对企业来说不如用Java、Kotlin去开发。

虽然很多人吐槽Java与Go,但生态的活跃度在企业开发里的确比想象中要更重要。

小众语言玩个人项目还行,走高开发效率的路线也还行。
进击的SQLite,不仅可以:

- 跑在浏览器里:github.com/jlongster/absu…

- 还可以跑在CDN上:blog.cloudflare.com/introducing-d1/

- 当然也可以是分布式的:fly.io/blog/all-in-on…

以后个人项目需要DB的可以优先考虑用SQLite来搞,便宜简单还强大👍
bmpi.dev/dev/deep-in-pr…

本文介绍多种并发模型包括锁、STM、CSP、Actor及I/O多路复用等,还有对Java、Go、Erlang/Elixir与Clojure等对这些模型的实现的介绍。

编程的两大安全难题是线程安全与内存安全。这个系列的两篇文章都是在尝试介绍不同编程语言是如何解决线程安全从而更容易的实现高并发。 ImageImageImageImage
sqlite.org/fiddle/

SQLite官方做了一个Fiddle的应用,现在可以在浏览器导入数据库并查询修改,之后可以导出被修改后的库。

暂时还想不到这个应用场景是啥🤔
写了篇《Google软件工程》的读书笔记。这篇主要分享文化相关的内容,这也是我认为国外做软件工程和国内差异大的地方,相反过程与工具的差异可能就是规模不同导致的👇

bmpi.dev/dev/software-e… ImageImage
一些提高工程效能的实践👇

1. 主干分支开发模型
2. TDD
3. 结对编程
4. 内建安全
5. 快速自动构建
6. 自动部署流水线

AWS CTO @Werner 的这个演讲非常精彩有趣,涉及的分布式技术主题也很多,强烈推荐观看。

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Dawei Ma

Dawei Ma Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @madawei2699

Aug 29, 2023
分享下最近在开发时用到的一些好用的 SaaS 服务:
- 云平台: Cloudflare / Fly / AWS / Azure
- AI:OpenAI
- 支付: lemonsqueezy / Stripe / Paypal
- 分析: umami / plausible / mixpanel
- 可观测: newrelic / pagerduty / opsgenie
- FeatureToggle: optimizely

详见👇chat2invest.com

SaaS中的活菩萨,chat2invest的很多服务都是以 worker 的形式在上面免费运行,包括域名、DNS、worker(包括网关、Auth、User、Notification、LangChain等十几个服务)、R2(存放系统文件,以及数据库备份文件)、KV(键值数据库)、D1(关系数据库)、Turnstile(登陆验证码)cloudflare.com

另一个SaaS活菩萨,chat2invest中的一些数据分析服务是python开发的,我在其中部署了核心的数据服务、Nginx网关以及独立部署的PG数据库。Fly配合Cloudflare可以把AWS中大部分ECS及Serverless的服务给低成本平替掉,还自带好用的CI/CD服务,成本非常低。fly.io
Read 10 tweets
Mar 5, 2023
#ChatGPT 昨天花了半天重温了李光耀先生的书:李光耀观天下,本来想自己写个读书小结,但这事 chatGPT 显然也可以做。于是用 gpt-index 这个库试了下,效果奇好。我导入的是英文版的 epub,然后用中文要求 chatGPT 总结或回答我的问题。由于我已经读了两遍了,不得不说,这个总结很到位。未来已来🤯
#chatGPT 把我博客的一篇中文文章(bmpi.dev/dev/renaissanc…)投喂了给它,问了几个问题,总结的都很到位,就感觉很聪明🤯不知道这个和 bingAI 相比哪个更聪明?我一直在 bingAI 的等待列表里,如果哪位大佬有 bingAI 可以对比下这两个结果的差异,不知道哪个更好一些?
#ChatGPT 导入五百多页的英文 PDF,最终抽取出 34 万的 Token,读 PDF 也毫无障碍。看起来作为一个读书智能助理已经没什么大问题了🤔
Read 10 tweets
Dec 5, 2022
真是一个能帮助快速出 PoC 功能的小助手🤯
测试了半天,chatGPT实现小需求、修Bug、用TDD写代码、多语言实现都没有问题,甚至注释都给你写好了,这些代码大部分情况都是可以直接work的。虽然能力可能不及senior的程序员,但是一般Junior的程度可能真到了,或者很快就到了,以后接卡实现需求甚至直接commit代码都很完全有可能发生🤯
Read 5 tweets
Jul 7, 2022
#中文技术博客SEO优化的困境

背景是最近在做一篇文章的SEO优化,这篇文章在一些看起来Google搜索量不小的词上排入Top10了,于是决定做一些精细化的优化来提升页面排名。

但在和一个SEO优化师聊了之后,经过一些分析,决定不继续优化了。(1/8
原因是Google的中文搜索流量实在低,按英文优化方式就算能做到Top1的位置,流量可能并不高。

从Google Ads查询到这两个看起来搜索量应该不错的词每月搜索流量只有50多个,但是在Top10的页面里刚好有个站的真实搜索流量数据我是知道的(通过分析GA数据),和Google Ads的数据是相符的。(2/8
这也意味着Google中文搜索用的人并不多,用Google搜索就算是中文技术人员,一般也都喜欢用英文来搜索,导致中文的搜索量很低,就算能优化上去,性价比也很低。(3/8
Read 8 tweets
Jun 2, 2022
根据一些回复整理了下👇

从作者的角度看:

- 有自己的见解、观点和立场
- 写作目的
- 引领读者
- 真诚

从文章的角度看:

- 言之有物
- 能把事情解释清楚
- 有结构有逻辑
- 有明确的主题,并能有分析、结果与建议

从读者的角度看:

- 引起共鸣
- 有趣有干货
- 读者喜欢 Image
创作是基于品味而思考的产物,而品味又是流量的敌人,如何均衡两者之间的矛盾是创作者需要思考的:品味太高会导致受众过少,品味太低又会让作品显得平庸🤔
最近看了很多泛技术的文章。一个困惑就是一些文章从标题看不出所需要的前置背景知识。花时间读下来却疑惑更多,文章与读者阅读的鸿沟太大,也可能是文章触及了非目标读者,最终让我产生了浪费时间的感觉。有没有办法像书籍一样快速的提示文章所需的前置条件帮助读者快速甄别?
Read 6 tweets
Apr 19, 2022
最近半月频繁跑医院,现在的医院非常喜欢给病人配中药,当然真正对症下药的是西药以及一些化验报告。我娃还有我都收到了一些药理不明的中药,包括我输液也给配了一些中药(甚至包括彝药、藏药),我曾经还吃过蒙药,这些中成药共同点就是治病看缘分,一般吃不死人,副作用未知。
查了下有人说现在的医院治病靠西药,赚钱靠中药,说中药利润率高,没想到现在的西药已经卷成这样了。再联想到最近热门的王思聪手撕莲花清瘟背后的药企,以及占去三分之一运力的事情。感觉我们国家在推广中药上还是花了不少功夫,甚至制定了专门的标准来推广。但我还是想感谢西药以及背后的科学。
昨天看了一篇读库的文章,写的挺好,有点类似BBC之前拍那个病毒和细胞之战的视频。看完后突然觉得我们老祖宗实在太喜欢宏大叙事了,个体在里面只是宏大叙事的干电池,连对感冒的理解也是这样:中医理论认为,感冒是人体抵抗力下降时,受到外邪(风、寒、暑、湿、燥、火)入侵引起的。
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(