Netflix Data Platform - Genie 3

查看原文

本文介绍了 Netflix 的数据平台 Genie 3 的改进思路。这个平台目前日均运行任务数量大约是 150k,运行在 40 台 EC2 实例上。用例主要有两个:1)对开发隐藏 data warehouse 的细节,只暴露出提交任务和查看任务的接口;2)提供 repl 式的沙盒体验,开发可以自己新建出沙盒然后把数据用 stdout 导出。

  • Execution Engine: 业务方提交的任务并不是真正运行的脚本,任务会被根据具体的环境,集群,命令,应用等配置编译成脚本去运行。
  • Leader Election:用 ZooKeeper 或者手动设定一个节点是 leader。有些任务只在 leader 上运行。
  • Security: 通过 Spring Security 加上登录验证,默认 …
read more

ActivityPub Overview

查看原文

本文是 ActivityPub 的标准协议。ActivityPub 是分布式的社交网络协议。它的服务模型是:

User =(POST)=> Outbox =(GET)=> Rest of the World
User <=(GET)= Inbox <=(POST)= Rest of the World

需要有人自行搭建 ActivityPub 服务为 用户 提供 Inbox & Outbox。这些服务可以互相连接形成一个联邦。 服务之间使用 HTTP + JSON-LD 通信。

read more

Solve Less General Problems

查看原文

本文传达的观点是:没有必要写一个能解决所有问题的方案,任何方案都有优缺点和更适用的场合,你的方案完全可以跟具体问题更切合,不需要特别的泛化。

read more

Run Length Encoded

查看原文

RLE (Run Length Encoded) 是一种用于存储有大量 pattern 的数据文件格式。如下格式表示的是 Conway Life Game 中的滑翔伞:

#C This is a glider.
x = 3, y = 3
bo$2bo$3o!

其中 #C 一行表示 Comment,x = 3, y = 3 标注了 width, height. 下面的数据格式是 <run_count><tag>$; 如果 run_count 是 1 可以省略,例如 bo, 2bo, $ 表示一行结束。

衍生思考:这种格式介于机器和人可阅读的格式中间 …

read more

Redis is not open core

查看原文

本文是 @antirez 的新博文,尝试论证的话题是:redis 不是 open core 软件。

  • open core 是指软件核心是开源的,但是把一些有用的部分抽走闭源走商业版权。
    • (比如 influxdb 单节点开源,要用 cluster?你要么付费,要么自己鼓捣个 influxdb-relay
  • redis 不是 open core, 因为它所有的功能都是开源的,没有单拿什么东西去卖钱。
  • redis lab 基于 redis 做了一些功能开发卖钱,这跟上面的 open core 有本质区别。
  • redis 将会专注于自己特性的开发,专注自己领域的问题。
read more

Self-hosted Live Streaming

查看原文

本文介绍了直播技术的一些基本知识,并给出了 101 教程 - 使用 ffmpeg, x11grab, nginx 搭建直播 laptop 屏幕的流服务。

  • ffmpeg 有内建的 DASH 格式,这个格式目前是业界给 web 浏览器做 live streaming video 的标准格式。这个格式讲视频分成离散的文件,然后用 xml 文件告诉播放器去哪里找这些文件。如果浏览器没有支持 dash,可以加上 dash.js 做个垫片。
  • 做直播服务要做两件事:实时录视频 + 用 web 服务器支持访问录出来的流视频。前者可以用 ffmpeg -f dash ... /tmp/live.mpd 生成,后者可以通过 nginx 设置支持 application …
read more

SMS 2FA 不安全

查看原文

本文介绍了 Reddit Data Breach 的经验教训:使用短信作为 2FA 的信道非常不安全,它走的是 cell-phone 网络,还是有可能会被第三方劫持。更安全的方法是部署 software tokens 2fa。这类软件包括 Google Authenticator, Misoft Authenticator, Duo, LastPass authenticator 神马的,使用 TOTP (time-based on-time password) 算法,生成 short-lived (30seconds) 密码。

如果网站被脱裤,建议及时采取措施更新密码。(还有不要多站一密

read more

Methodologies for measuring project health

查看原文

本文描述了如何判断开源项目的健康程度(并可以进而选择要不要这个程序到自己的项目中)。

  • 查看 user->community members->contributors->core contributors 这个链条。例如 Django 就是一个很健康的项目,整条链条人都很多。
  • 查看项目的 Magnet / Sticky 程度。前者看能吸多少人,后者看能留住多少人。能做出的结论是:如果既不吸人也不留人的项目,那很可能是正在死掉的项目。
  • 查看 NCR (New Contributors Ratio 新人贡献率)和 CCR (Coding Contributors Ratio),前者可以把才贡献了小于三个月的人归类为新人,大于三个月成为 Experienced Contributors。后者是看在给定期间给出没至少一个提交或者PR。更高的 CCR 或者 更高的 NCR 都可以算作健康羡慕。
    • 需要注意的是,如果是个小项目,多少个 contributors …
read more

Using Workers To Make Static Sites Dynamic

查看原文

本文大概可以算做 Cloudflare Workers 的软文,探讨了这项技术在 CDN 节点上做 Serverless 的可行性。

在使用方法上跟 AWS Lambda 什么的都差不多,要写的代码也都差不多;好处可能就是代码是部署在非常 edge 的地方,用户能更快访问到数据。

这篇文章提到了一个有趣的小技巧:当 CMS 系统要藏起来一些东西但又不需要 military grade security 保障的时候,往 workers 上面丢一段代码 if(!request.headers.get('user-agent').indexOf('XXX')) {return new Response('Access Denied', {status: 403})}。这样静态网站也能搞得出一些简单的动态逻辑。

另外一个有用的地方可以是给 静态网站上 A/B 测试 …

read more

« Page 10 / 54 »