分享每周阅读的比较好的技术文章。
系统设计指南
学习如何设计大规模系统,涉及的主题包括:性能,可扩展性,可用性,一致性,CDN,负载均衡,反向代理,微服务,服务发现,缓存,数据库等。
VIM的历史
从Unix纪元就开始不断开发和改进的一个软件。1966年Ken Thompson到达贝尔实验室,重写了QED编辑器,后来他和Dennis Ritchie开发了ed,ed对普通人来说很难使用,1977年George Coulouris在ed基础上开发了em编辑器(凡人的编辑器 editor for mortals),1976年Coulouris到伯克利访问时遇到了学生Bill Joy,后者开发了ex(extended ed),1979年出现了vi(相比ex,在visual mode增加了功能),1988年Bram Moolenaar基于vi开始开发Vim。
Facebook推出的机器学习指南
原文:Introducing the Facebook Field Guide to Machine Learning video series
继Google发布的机器学习指南之后,Facebook也分享了如何把机器学习应用到实际的问题中。包括:正确的定义问题 -> 准备训练数据集 -> 评估模型的性能 -> 选择正确的特征 -> 模型的选择,调优 -> 实验。
Android 9发布
引入机器学习核心,让手机更加智能。自适应电池(Adaptive Battery)可以优化资源调度,也提供了文本分类(Text Classifier)API和神经网络(Neural Network)API。
100天机器学习代码
使用Python实现的一些基本机器学习算法,可以关注下。
Netflix是如何工作的?
原文:How Netflix works: the (hugely simplified) complex stuff that happens every time you hit Play
2017年的一篇文章,讲述了Netflix的基本架构,大量的微服务,部署在AWS上,通过CDN来加快访问速度。
Linux命令小册子
原文:Julia Evans的推文
Julia Evans对于常用的Linux命令和Bash技巧画了一些示意图,有启发,有注意理解。
GitHub的开源负载均衡器
原文:GLB: GitHub's open source load balancer
GLB是一个4层负载均衡器,可以在多个物理机上扩展同一个IP地址,而且在后端服务器变更时最小化连接中断时间,改进了之前ECMP和LVS+状态存储的方式。ECMP(Equal-Cost Multi-Path路由)是基于TCP四元组(源IP,端口号,目标IP端口号)使用一致性Hash来进行路由选择的。
保罗·格雷厄姆对SICP的评价
news.ycombinator.com/item?id=176…
保罗·格雷厄姆(《黑客与画家》的作者)对这本经典之作评价很高,圣经级别。同时可以看看彼得·诺维格(Peter Norvig)对该书的评价,都发表于2000年。
Effective Java第3版
原文:随书源码
此书Java程序员必读,给出了Java编程语言的一些最佳实践。第3版包含90个条目(Item),涵盖了Java 7,8,9的新特性,如Java 7的try-with-resources,Java 8的Streams,Lambdas,Java 9的Modules等。
重构 第二版
原文:The Second Edition of "Refactoring"
《重构》(Refactoring)也是程序员的必读书籍,和第一版不同的是,新版示例代码采用了JavaScript。
lazygit
原文:lazygit
一个很炫的命令行终端Git客户端,Go语言实现。
编程语言 Julia 1.0
原文:Julia 1.0
MIT发布了Julia 1.0,集大成者,希望有C的速度,Ruby的动态性,Lisp的宏,Mat lab的数值计算,Python的简单好用,R的统计,Perl的适合字符串处理,Shell的胶水命令。