My programming projects I’ve worked on over the years. Nothing special, but they’ve all met my needs at one point or another.
Name Description URL Notes adamantium Top Secret for now milena Haskell client for Apache Kafka https://github.com/adamflott/milena Tyler Holien did the initial work, I took over maintainership winobot A Perl based IRC bot built on AnyEvent::IRC https://github.
Programming papers I’ve read.
Note: 2016/1/1 is a place holder date as I don’t recall when I read it
Title Tags Date Read An Empirical Study on the Correctness ofFormally Verified Distributed Systems verification, distributed-systems 2019/3/3 Anna: A KVS For Any Scale big-data 2016/1/1 ApproxJoin: Approximate Distributed Joins distributed-systems, database-things 2018/12/25 Azure Data Lake Store: A Hyperscale Distributed File Service for Big Data Analytics big-data 2016/1/1 Big Data Technology Literature Review big-data 2016/1/1 Broom: sweeping out Garbage Collection from Big Data systems 2016/1/1 Build systems a la carte haskell, build-systems, spj 2018/6/14 Charon: Declarative Provisioning and Deployment nix, functional-programming 2016/1/1 City Data Fusion: Sensor Data Fusion in the Internet of Things 2016/1/1 Combining Deep and Shallow Embedding for EDSL haskell, dsl 2018/7/31 Concurrent multi-level arrays: Wait-free extensible hash maps 2016/1/1 Debugging Distributed Systems withWhy-Across-Time Provenance distributed-systems 2018/12/25 Dissecting Apple’s Meta-CDN during an iOS Update cdn 2019/1/10 Distributed Systems distributed-systems 2018/7/1 Domain-specific Languages and Code Synthesis Using Haskell haskell 2016/1/1 Dynamic Space Limits for Haskell haskell, ghc 2019/2/1 Engineering and Software Engineering general 2018/6/1 Everything You Always Wanted to Know About Synchronization but Were Afraid to Ask 2016/1/1 Fail-Slow at Scale: Evidence of Hardware Performance Faults in Large Production Systems 2016/1/1 Fault Tolerant Functional Reactive Programming (Functional Pearl) haskell 2018/10/5 Filter Before You Parse: Faster Analytics on Raw Data with Sparser big-data 2018/9/22 From monoids to near-semirings: the essence of MonadPlus and alternative haskell 2016/1/1 Future Psychohistory - Computation and Humanity 2016/1/1 Google’s MapReduce Programming Model — Revisited big-data 2016/1/1 Gorilla: A Fast, Scalable, In-Memory Time Series Database scaling, database 2019/4/4 Gray Failure: The Achilles’ Heel of Cloud-Scale Systems 2016/1/1 Hailstorm: Distributed Stream Processing with Exactly Once Semantics haskell 2016/1/1 Hokusai — Sketching Streams in Real Time 2016/1/1 How functional programming mattered 2016/1/1 Identifying impactful service system problems via log analysis analysis, logs 2018/12/25 In Search of an Understandable Consensus Algorithm (Extended Version) distributed-systems, raft, leader-election 2019/1/19 Jitsu: Just-In-Time Summoning of Unikernels 2016/1/1 Monad Transformers Step by Step haskell 2016/1/1 Monadic Parser Combinators haskell, parsing, classic 2019/2/18 Monads for functional programming haskell 2018/6/30 NetChain: Scale-Free Sub-RTT Coordination 2016/1/1 Omid, Reloaded: Scalable and Highly-Available Transaction Processing 2016/1/1 On the Design of Distributed Programming Models 2016/1/1 Online Reconstruction of Structural Information from Datacenter Logs big-data 2016/1/1 Overload Control for Scaling WeChat Microservices scaling 2018/12/25 Protocol-Aware Recovery for Consensus-Based Storage 2016/1/1 Quantum Computing in the NISQ era and beyond 2016/1/1 Quantum algorithms: an overview 2016/1/1 Skyway: Connecting Managed Heaps in Distributed Big Data Systems 2016/1/1 Spanner: Becoming a SQL System 2016/1/1 Stitch: The Sound Type-Indexed Type Checker haskell, types 2018/12/31 Stream Fusion.
Your Programming Language Sucks If
My checklist for what constitutes a bad programming language. A tongue-in-cheek look at what I need in a language to be productive, safe, and correct.
Your Programming Sucks If…
You don’t have REPL Coerce strings to numbers without being wrapped in an error type (or exception) Static type system with no generics 1 Can’t distribute a fully static binary Lacks a non-runtime syntax checker 2 Fails to compile due to unused imports 1 If “undefined behavior” appears anywhere in the specification 3 Has an unrestricted eval function Lacks a garbage collection or the ability to disable the GC Go… Sigh.