2019#29 Readings of the Week
6 minutes read | 1159 words by Ruben BerenguelThis feels like a heavy engineering edition. A lot of Haskell, Rust, Python and Scala. There’s still a bit of everything, but this will appeal hardcore developers more than usual.
NOTE: The themes are varied, and some links below are affiliate links. Haskell, Rust (and Spark), Python, formal methods, maps. Expect a similar wide range in the future as well. You can check all my weekly readings by checking the tag here. You can also get these as a kind-of-weekly newsletter by subscribing here.
CEO Shadow Program
An interesting idea from GitLab on training executives.
How to write to a Parquet file in Scala without using Apache Spark
You may have wondered how to do this. Obviously the answer is Parquet4s and here’s an example
Interested in improving your relationships? Try Nonviolent Communication
I should practice this.
Solving Planning Problems with Fast Downward and Haskell
I had a “I need a planner” project in my personal project list and was considering a lame solution with Prolog (very 70s), but this is so much better, and a great excuse to finally write something in Haskell.
FastSpark: A New Fast Native Implementation of Spark from Scratch
An implementation of the RDD interface from Spark in Rust. The speed up is promising, the code looks clean and clear enough. Has lots of potential, if I have some time someday I’d like to help with some Arrow stuff here.
Open-sourcing Polynote: an IDE-inspired polyglot notebook
Caveat: won’t respect the python environment you start it on. Aside from what,
it offers jep
for data interchange between cells written in Scala and cells
written in Python. How cool is that? It also offers auto-graphing (like
Zeppelin) and a very convenient autocomplete/symbol expansion system. All in all
seems to have huge potential, and is usable from moment 0.
Beating C with 80 lines of Haskell: wc
It’s of course beating the unoptimized version present by default in Mac OS. But it’s a good exercise in how to optimize Haskell code, which is notoriously tricky to do.
Python at Scale: Strict Modules
Instagram has a very large Python monolith, and of course this means some problems that are minor for others are huge for them. Here they share how they handle the unconstrained “power” Python module loading “offers”. I’m looking forward this being added to some Python version.
Introducing Apache Arrow Flight: A Framework for Fast Data Transport
Anybody up for rewriting Spark’s inter-machine communication? (Not me, if I go to that codebase soon will be for a suggestion by Holden Karau to improve/implement a pandas thingy)
A Tiny, Static, Full-Text Search Engine using Rust and WebAssembly
Super-neat. Writing a search engine leveraging Bloom filters, serialized into WASM, together with the full engine. And written in Rust. Buzzword bingo time!
Turtle.Tutorial
Turtle is a Haskell library to write shell scripts (type safe, effect-neat, etc). I don’t remember seeing this tutorial last time I checked it: this tutorial is superb.
Formally Modeling Database Migrations
I’m not 100% convinced of the approach, since it feels overkill-ish (and Alloy is pretty terse, so that feels like an additional downer), but I like seeing formal methods approaching the data engineering space.
My favourite Git commit
Writing git commits is hard. I’m trying to work on it, but sometimes I still
write TICKET-### fix bug
. At least I have stopped naming my branches using
in_soviet_russia
jokes. Although I kind of miss that.
‘The perfect combination of art and science’: mourning the end of paper maps
I’m a kind of map junkie (and I don’t mean only Wardley maps). Have several books on maps, many maps (more than I can hang), I GIS-ed a custom map of my hometown, would love to take some workshop on hand-drawn mapmaking at some point (does this exist?). So this is just excellent.
Marshall Island Stick Charts
I saw these in the link above and just loved them. I’ve been collecting tools for thought since I wrote my presentation for SoCraTesUK 2019 on Wardley Mapping, and this could definitely go there.
The $10m engineering problem
Cost optimization in AWS is hard, and here the Segment team share how they improved their margins.
With Category Theory, Mathematics Escapes From Equality
Turtles, turtles all the way down! (this one talks about the development of infinite stacks of equivalence relationships, a form of infinite categories).
Lesser Known Coding Fonts
Not sure if lesser in my case, I’ve been using Monoid myself for a year or so. It’s a very beautiful font to write code in.
Invisibility cloak
Well, I’d rather have a bag of holding or a wand of wishing but this is interesting engineering.
📚 Micromastery
I read this one last weekend. Had too much overlap with other books I have read, so the new content was minimal. The only useful thing I got from it was learning there is a form of prose known as flash fiction, ranging from 10-1000 words. I’m kind of attracted to the idea of writing 100 word prose, so I have investigated a bit more that one.
📚 Category Theory for Programmers (Scala edition)
So, all told, a category is just a monad in the bi-category of spans.
This has taken me very long, and has sprouted several side readings of category theory papers, a renewed interest in Haskell, and a list of exercises from the book I want to try. Also a renewed interest in re-reading stuff about schemes and sheaves (Hartshorne where are thou?). I’m not sure I recommend you read it, it’s long.
🍿 Alloy for TLA+ users by Jay Parlar
An excellent introduction to Alloy by Jay Parlar. You don’t need to know TLA+ to watch it (but would help).
🍿 Fast Downward: Solving Declarative Planning problems in Haskell
If you think you’ve seen this before, yes. The blog past by Ollie above is related to this talk. And he’s giving this talk in London Haskell next week.
🍿 A Talk Near the Future of Python
Holly molly. I’m afraid of giving spoilers, but… So, here David Beazley starts by writing a simple stack machine in Python. Extends it a bit, not much. And then uses it to interpret and play (through pygame) a game written in Rust and compiled into WASM. There are like 4 instances where the public applauds in the middle of the talk, and I felt like doing the same at home.
🍿 Upgrade Your Future
John de Goes evangelizing on ZIO. And indeed, using ZIO has many advantages, watch it.
🍿 No Garden of Eden - Adventures in Teaching Haskell to Kids
The comments from kids about Haskell can be hilarious.
Newsletter?
These weekly posts are also available as a newsletter. These days (since RSS went into limbo) most of my regular information comes from several newsletters I’m subscribed to, instead of me going directly to a blog. If this is also your case, subscribe by clicking here.