https://github.com/frankmcsherry/blog
Raw File
Tip revision: 341b15d9847889f1b556154eaa797b80af8ec8a3 authored by Frank McSherry on 18 March 2024, 22:10:07 UTC
Variadic left joins
Tip revision: 341b15d
README.md
I am a researcher and computer scientist. I used to work in San Francisco, then I traveled a bit, and I'm now in NYC starting [Materialize.io](http://materialize.io/).

The following posts are in reverse chronological order: newest posts are first. The content of the oldest posts may no longer be correct (mostly those about pieces of software I've worked on, and their state at some time in the past), but they have been retained for posterity (and some humility).

---

| topics | date | title |
|:-------|:-----|:------|
| Differential | 2021-04-26 | [Generalizing Linear Operators](https://github.com/frankmcsherry/blog/blob/master/posts/2021-04-26.md)
| Materialize | 2021-02-11 | [Windows enough, and Time](https://github.com/frankmcsherry/blog/blob/master/posts/2021-02-11.md)
| Materialize | 2020-12-29 | [Slicing up Temporal Aggregates in Materialize](https://github.com/frankmcsherry/blog/blob/master/posts/2020-12-29.md)
| Materialize | 2020-11-18 | [Joins in Materialize](https://github.com/frankmcsherry/blog/blob/master/posts/2020-11-18.md)
| Materialize | 2020-09-24 | [Materialize Under the Hood](https://github.com/frankmcsherry/blog/blob/master/posts/2020-09-24.md)
| Materialize | 2020-08-13 | [Lateral Joins and Demand-Driven Queries](https://github.com/frankmcsherry/blog/blob/master/posts/2020-08-13.md)
| Differential | 2020-08-01 | [Change Data Capture (part 1)](https://github.com/frankmcsherry/blog/blob/master/posts/2020-08-01.md)
| Materialize | 2020-04-01 | [Robust Reductions in Materialize](https://github.com/frankmcsherry/blog/blob/master/posts/2020-04-01.md)
| Materialize | 2020-06-19 | [Eventual Consistency isn't for Streaming](https://github.com/frankmcsherry/blog/blob/master/posts/2020-06-19.md)
| Timely,Differential | 2020-06-09 | [Rust for Data-Intensive Computation](https://github.com/frankmcsherry/blog/blob/master/posts/2020-06-09.md)
| Differential | 2020-06-06 | [Sudoku in Differential Dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2020-06-06.md)
| Differential | 2020-05-01 | [Managing Memory in Differential Dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2020-05-01.md)
| Differential | 2020-03-26 | [Upserts in Differential Dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2020-03-26.md)
| Materialize  | 2020-03-16 | [Materialize on NYC taxi data](https://github.com/frankmcsherry/blog/blob/master/posts/2020-03-16.md)
| Differential  | 2020-02-15 | [Differential Dataflow and Calculus](https://github.com/frankmcsherry/blog/blob/master/posts/2020-02-15.md)
| Datalog, Differential  | 2019-09-06 | [Datalog at SIGMOD and VLDB](https://github.com/frankmcsherry/blog/blob/master/posts/2019-09-06.md)
| Timely | 2019-08-17 | [Tracking progress in timely dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2019-08-17.md)
| Materialize  | 2019-08-03 | [Debugging dataflows with `materialized`](https://github.com/frankmcsherry/blog/blob/master/posts/2019-08-03.md)
| Differential | 2019-06-13 | [LDBC BI Query 25, developed](https://github.com/frankmcsherry/blog/blob/master/posts/2019-06-13.md)
| Differential | 2019-05-20 | [Programming with time](https://github.com/frankmcsherry/blog/blob/master/posts/2019-05-20.md) |
| Privacy | 2019-04-12 | [Differential privacy and Demographics](https://github.com/frankmcsherry/blog/blob/master/posts/2019-04-12.md) |
| Differential | 2019-02-09 | [Monoids and Graph Processing](https://github.com/frankmcsherry/blog/blob/master/posts/2019-02-09.md) |
| Differential | 2018-12-30 | [Tensorflow in Differential Dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2018-12-30.md) |
| Differential | 2018-11-20 | [Strings (and beyond) in differential dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2018-11-20.md) |
| Timely | 2018-09-26 | [Timely Dataflow Architecture](https://github.com/frankmcsherry/blog/blob/master/posts/2018-09-26.md) |
| Timely | 2018-08-18 | [Synchronization via Timely Dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2018-08-19.md) |
| Datalog, Rust | 2018-05-19 | [A Datalog engine in Rust](https://github.com/frankmcsherry/blog/blob/master/posts/2018-05-19.md) |
| Differential | 2018-05-06 | [A differential dataflow query processor](https://github.com/frankmcsherry/blog/blob/master/posts/2018-05-06.md) |
| Privacy | 2018-03-11 | [Things that count](https://github.com/frankmcsherry/blog/blob/master/posts/2018-03-11.md) |
| Privacy | 2018-02-25 | [Uber's differential privacy .. probably isn't](https://github.com/frankmcsherry/blog/blob/master/posts/2018-02-25.md) |
| Differential | 2018-02-19 | [World enough, and timely dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2018-02-19.md)
| Differential | 2018-02-11 | [Yahoo's Steaming Benchmark](https://github.com/frankmcsherry/blog/blob/master/posts/2018-02-11.md) |
| Differential | 2017-12-10 | [Advent of Code](https://github.com/frankmcsherry/blog/blob/master/posts/2017-12-10.md) |
| Timely | 2017-11-08 |  [Timely on Kafka](https://github.com/frankmcsherry/blog/blob/master/posts/2017-11-08.md) |
| Privacy | 2017-10-27 | [Deep learnings about differential privacy](https://github.com/frankmcsherry/blog/blob/master/posts/2017-10-27.md) |
| COST, Differential | 2017-10-23 | [COST in the land of differential dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2017-10-23.md) |
| Privacy | 2017-09-28 | [The Moral Character of Privacy Technology](https://github.com/frankmcsherry/blog/blob/master/posts/2017-09-28.md)
| COST | 2017-09-23 | [COST in the land of databases](https://github.com/frankmcsherry/blog/blob/master/posts/2017-09-23.md) |
| Differential | 2017-09-05 | [Big Data Stream Managers (BDSM)](https://github.com/frankmcsherry/blog/blob/master/posts/2017-09-05.md) |
| Differential | 2017-08-21 | [Live PageRanking](https://github.com/frankmcsherry/blog/blob/master/posts/2017-08-21.md) |
| Timely | 2017-07-27 | [Memory management for big data](https://github.com/frankmcsherry/blog/blob/master/posts/2017-07-27.md) |
| Differential | 2017-07-24 | [Throughput and latency in differential dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2017-07-24.md) |
| Differential | 2017-05-06 | [Specialization in differential dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2017-05-06.md) |
| Differential | 2017-05-01 | [Arrangement in differential dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2017-05-01.md) |
| Differential | 2017-04-24 | [A TPC-H-like evaluation of differential dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2017-04-24.md) |
| Differential | 2017-03-28 | [Differential dataflow 2017 roadmap](https://github.com/frankmcsherry/blog/blob/master/posts/2017-03-28.md) |
| Differential | 2017-03-22 | [What I'm stuck on](https://github.com/frankmcsherry/blog/blob/master/posts/2017-03-22.md) |
| Differential | 2017-03-01 | [High-resolution timestamps](https://github.com/frankmcsherry/blog/blob/master/posts/2017-03-01.md) |
| Differential | 2017-02-21 | [Modular data organization](https://github.com/frankmcsherry/blog/blob/master/posts/2017-02-21.md) |
| Differential | 2017-02-11 | [Differential dataflow status report](https://github.com/frankmcsherry/blog/blob/master/posts/2017-02-11.md) |
| Privacy | 2017-02-08 | [Two flavors of differential privacy](https://github.com/frankmcsherry/blog/blob/master/posts/2017-02-08.md) |
| Privacy | 2017-01-26 | [Differential privacy as a mutual information constraint](https://github.com/frankmcsherry/blog/blob/master/posts/2017-01-26.md) |
| Timely | 2016-09-17 | [Tracking motifs in evolving graphs](https://github.com/frankmcsherry/blog/blob/master/posts/2016-09-17.md) |
| Privacy | 2016-08-29 | [Differential privacy and correlated data](https://github.com/frankmcsherry/blog/blob/master/posts/2016-08-29.md) |
| Privacy | 2016-08-16 | [Lunchtime for data privacy](https://github.com/frankmcsherry/blog/blob/master/posts/2016-08-16.md) |
| Differential | 2016-08-03 | [Differential Dataflow internals](https://github.com/frankmcsherry/blog/blob/master/posts/2016-08-03.md) |
| Differential | 2016-07-26 | [Differential Dataflow Roadmap](https://github.com/frankmcsherry/blog/blob/master/posts/2016-07-26.md) |
| Differential | 2016-07-17 | [Dataflow as Database](https://github.com/frankmcsherry/blog/blob/master/posts/2016-07-17.md) |
| Datalog, Differential | 2016-06-21 | [Differential Dataflog](https://github.com/frankmcsherry/blog/blob/master/posts/2016-06-21.md) |
| Privacy | 2016-06-14 | [Statistical inference considered harmful](https://github.com/frankmcsherry/blog/blob/master/posts/2016-06-14.md) |
| Privacy | 2016-05-19 | [Differential privacy for dummies, redux](https://github.com/frankmcsherry/blog/blob/master/posts/2016-05-19.md) |
| Differential | 2016-03-27 | [Explaining outputs in modern computations](https://github.com/frankmcsherry/blog/blob/master/posts/2016-03-27.md) |
| Privacy | 2016-02-06 | [Differential privacy: an illustrated primer](https://github.com/frankmcsherry/blog/blob/master/posts/2016-02-06.md) |
| Privacy | 2016-02-03 | [Differential privacy for dummies](https://github.com/frankmcsherry/blog/blob/master/posts/2016-02-03.md) |
| COST | 2015-12-24 | [Graph processing in 2016](https://github.com/frankmcsherry/blog/blob/master/posts/2015-12-24.md) |
| Timely | 2015-12-19 | [Progress tracking in Timely Dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2015-12-19.md) |
| Differential | 2015-11-27 | [An introduction to Differential Dataflow, part 2](https://github.com/frankmcsherry/blog/blob/master/posts/2015-11-27.md) |
| Differential | 2015-09-29 | [An introduction to Differential Dataflow, part 1](https://github.com/frankmcsherry/blog/blob/master/posts/2015-09-29.md) |
| Timely | 2015-09-21 | [An introduction to Timely Dataflow in Rust, part 3](https://github.com/frankmcsherry/blog/blob/master/posts/2015-09-21.md) |
| Timely | 2015-09-18 | [An introduction to Timely Dataflow in Rust, part 2](https://github.com/frankmcsherry/blog/blob/master/posts/2015-09-18.md) |
| Timely | 2015-09-14 | [An introduction to Timely Dataflow in Rust, part 1](https://github.com/frankmcsherry/blog/blob/master/posts/2015-09-14.md) |
| COST | 2015-08-20 | [Epic Graph Battle of History: Chaos vs Order](https://github.com/frankmcsherry/blog/blob/master/posts/2015-08-20.md) |
| COST | 2015-08-15 | [Sorting out graph processing](https://github.com/frankmcsherry/blog/blob/master/posts/2015-08-15.md) |
| COST, Timely | 2015-07-31 | [The impact of fast networks on graph analytics, part 2.](https://github.com/frankmcsherry/blog/blob/master/posts/2015-07-31.md) |
| COST, Timely | 2015-07-08 | [The impact of fast networks on graph analytics, part 1.](https://github.com/frankmcsherry/blog/blob/master/posts/2015-07-08.md) |
| Differential | 2015-05-12 | [Differential graph computation](https://github.com/frankmcsherry/blog/blob/master/posts/2015-05-12.md) |
| Timely | 2015-05-04 | [Abomonation: terrifying serialization](https://github.com/frankmcsherry/blog/blob/master/posts/2015-05-04.md) |
| Timely | 2015-04-19 | [Data-parallelism in timely dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2015-04-19.md) |
| Timely | 2015-04-11 | [Worst-case optimal joins, in dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2015-04-11.md) |
| Differential | 2015-04-07 | [Differential dataflow](https://github.com/frankmcsherry/blog/blob/master/posts/2015-04-07.md) |
| COST | 2015-02-04 | [Bigger data; same laptop](https://github.com/frankmcsherry/blog/blob/master/posts/2015-02-04.md) |
| COST | 2015-01-15 | [Scalability! But at what COST?](https://github.com/frankmcsherry/blog/blob/master/posts/2015-01-15.md) |
| Timely | 2014-12-29 | [Timely dataflow: core concepts](https://github.com/frankmcsherry/blog/blob/master/posts/2014-12-29.md) |
| Timely | 2014-12-27 | [Timely dataflow: reboot](https://github.com/frankmcsherry/blog/blob/master/posts/2014-12-27.md) |
| Rust | 2014-12-16 | [Columnarization in Rust, part 2](https://github.com/frankmcsherry/blog/blob/master/posts/2014-12-16.md) |
| Rust | 2014-12-15 | [Columnarization in Rust](https://github.com/frankmcsherry/blog/blob/master/posts/2014-12-15.md) |
back to top