Some possible career goals
本文介绍了作为技术人,在技术,工作,产品,创业,沟通等方面的潜在目标,每个人追求各有不同,但本文覆盖了蛮多的选择。
- 技术:成为领域专家 / 学习前沿技术 / 维护大项目 / 贡献开源项目 / 从头开始打造一个关键系统 / 理解复杂系统 / 快速造原型
- 工作:大公司 / 小公司 / 走 manager 路线 / 走技术路线(architect,senior,principle。。。) / 参与知名公司的软件编写
- 产品:打磨工具 / 写网站 / 内网工具 / 解决领域问题(例如天气)/ 开发者工具
- 沟通:写书 / 做演讲 / 做周边 / 写博客
反正,每一种都能让技术人停不下来。
read morepypeln - Python data pipeline library
Pypeln 是一款基于 Processes, Threads and asyncio.Tasks 进行并发任务操作的库,旨在提供优雅的 API,而需求又不至于到要去用 Spark or Dask 的程度。
from pypeln import process as pr
stage = pr.map(task1, data, workers = 3, maxsize = 4)
stage = pr.filter(task2, stage, workers = 2)
data = list(stage)
或者
from pypeln import thread as th
stage = th …
How does Dropbox rollout Python 3 for desktop applications
本文描述了 Dropbox 如何将 macOS,Windows,和 Linux 客户端应用程序迁移到 Python 3.
- Python 带来的好处:类型注解,Coroutine。
- 挑战:发布客户端的 Freezers 脚本要应对 TypeScript/HTML, Rust, and Python, as well as Objective-C and C++ 的混合代码库。
- 特别是近些年操作系统开始要求代码部署需要做签名,或者更新的 API(macOS FinderSync)
- 解决方案:在各种打包工具不太好使的情况下,转投嵌入式 Python (Embedding Python)。这样可以基于特定操作系统的接口搭底层,然后往上套一层 Python,再往上运行业务逻辑。
- 发布分成3步
- 客户端停用现有的 freezer scripts …
The Observability Pipeline
本文的话题是使用 The Observability Pipeline 帮助更好地理解系统。问题产生的背景是现代软件不再局限于裸机+Nagios 这种组合,而是趋向于 cloud-native and container-based systems。可能你 Debug 着,容器就被干没了。所以,要想解决这个问题,就得让应用自己传出结构化的日志记录用于分析 - 这产生了新问题:如何处理这些日志呢?结论是建一条 Observability Pipeline。
监控是关于known-unknowns and actionable alerts, observability 是关于 unknown-unknowns,并帮助开发更容易理解系统行为。以下是开发 The Observability Pipeline 的一些要点:
- 确保日志是 Structured 的。你要写 spec,spec 要能区分 logs, metrics, traces, events …
Learning Go by Comparing to Python
本文为 Python 使用者提供了一份与 Go 对比的 Cheat sheet。
fmt.Println
v/sprint
fmt.Print
v/sprint(string, end='')
//
,/* ... */
v/s#
,""" ... """
`This is
a multi-line string.`
v/s
"""This is
a multi-line string.
"""
- vector/list initialize:
var numbers [5]int
v/s[0] * 5
- slice:
some_numbers := numbers[1:3 …
Load Balancing for Latency
本文介绍了在某些特定情况下比 Round Robin 更适用的负载均衡算法。负载均衡要完成的两个大目标是:Scale(支持更多数量的 backend),和 Resilience(坏掉的一些 backends 不影响服务总体)。本文探讨了如果引入 Latency 用于负载均衡也会有很不错的效果。一般健康检查校验服务是否挂了,而 Latency 能校验服务现在合不合适承接流量。本文的立论是:一个好的负载均衡也应该同等检查 failure 和 latency。
本文介绍的两种算法分别是:
- least loaded, 负载均衡维护每台机器的流量,路由新流量去负载最低的机器。
- peak exponentially-weighted moving average (“peak EWMA”): 负载均衡维护每台机器的 round-trip time,需要的话乘上权重,路由新流量去平均响应时间最短的那台机器。
一般最常见的还是 round robin;这两种算法见于 Twitter Finagle 的 RPC …
read more