2019-9 Readings of the week (x4)

You know how you slip once on a habit and everything goes crazy? Well, I’ve been 4 weeks without writing these, so here’s the accumulated reading from 4 weeks. Because, even if I don’t write it, I read a lot anyway. Also, there’s lot of interesting content this “week”.

NOTE: The themes are varied, and some links below are affiliate links. This edition contains Rust, food, Scala, functional programming, psychology, Python, likes to nice images, and a bit on procedural generation. Also the books I read these days. 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 weekly newsletter by subscribing here.

Stardew Valley and real life labour

I bought Stardew Valley for iOS during Christmas, after hearing how much Mike Hurley (from the Cortex podcast, and all around the Relay.fm podcasting network) likes it. But, still haven’t played, maybe this week? (although, Cultist Simulator appeared on iOS last week, and it’s very engaging, specially on an iPad Pro with a Pencil).

📚 Superforecasting

I’m undecided on this book. The premise was excellent, the analysis as well, but it was lacking a bit on the “how” area of superforecasting.

To Be Lucky, Believe That You Are

There is something to this, also, more on luck further down. I’m a lifetime subscriber to Nautilus, and you should consider becoming one. Their print magazines are beautiful, and the articles always insightful.

What Working At Stripe Has Been Like

Anything Patrick McKenzie (patio11) writes is worth reading. Don’t miss his Salary Negotiation post.

Cloud Management with Prolog

Prolog, and its query ability sound ideal for a lot of scenarios. This could very well be one of them, although dumping to SQL could be more useful when working with a team.

Addition Font

How to exploit the depths of font description languages to compute. Also has a minor proof on how font rendering (removing some implementation blocks to avoid overflows in font engines) is Turing complete.

Twitter thread about immutability in Python by Yury Selivanov

Some ways you can get pretty much immutability. If you are a functional-ish programmer you’ll value this.

White gold: the unstoppable rise of alternative milks

I like the occasional oat milk (I like the taste of oats) or a specific brand of Catalan walnut milk (pairs perfectly with coffee)

📚 Bad blood

To be fair, I got the audiobook version, but it is thrilling. I listened to it in one weekend, and I didn’t finish earlier because AirPods need recharging.

Apache Spark 2.4.0 features - array and higher-order functions

Aside from the move to Scala 2.12, this is for me one of the most significant changes to Spark. Although I haven’t used these yet, there have been several moments in the past where I needed mapping capabilities over arrays and had to resort to a UDF. They are not hot paths, but knowing how UDFs behave, I’d get a decent speed up of these parts by moving to a HOF.

Faster File Distribution with HDFS and S3

How to load your data into HDFS is always a key question. Pre-load it? Load it directly with a specific (say, spark.read) construct from S3? Here there are some benchmarks of what is more effective, at least for Presto. Results probably extend to Spark et al, since being based over HDFS is the key part.

Mumble: the open source VoIP solution

I learnt about Mumble and the Murmur server a few weeks ago. They are a system for very low latency, low bandwidth audio-only (optionally a bit of text) communication. I wonder if it can help me work remotely more effectively (helping with pairing, or with random “quick talk” while avoiding the overhead of a video call under Slack, Skype or Meet). This Hacker News comment seems to cast it in the correct light.

La belleza matemática de la naturaleza, en ilustraciones de proporciones áureas

Note this is in Spanish. Served as an excuse to find out about Rafael Araujo and his books, The Golden Ratio: The Divine Beauty of Mathematics (with text by Gary Meisner) and Golden Ratio Colouring Book. I have now some of his drawings as backgrounds of my devices. They are gorgeous.

Barcelona from Above (set of pictures by Márton Mogyorósy on Behance)

These were my previous device backgrounds. You can also follow the author on Instagram (you can also follow me but I’m not that interesting)

Space Colony Art from the 1970s – The Public Domain Review

The 70s were special

Laws for Communicating Parallel Processes

A classic paper by Hewitt, the seminal work on actor systems.

Roguelike Tutorial in Rust + tcod

I enjoy playing ASCII based roguelikes from time to time (DCSS, CDDA or Dwarf Fortress), writing one would be cool. And yet another excuse/way to learn more Rust.

Fast and easy high resolution fractals with a pixel shader

I stopped generating fractal stuff before using shaders for it was common, so I never got to learn it. Now, I want it back. It was so much fun.

Python Data Landscape Diagram

A super-thorough diagram showing the data analysis library landscape in Python, with some words on each technology/library.

How the UK lost the Brexit battle

From Politico. It is super-long, but well worth the read if you are anywhere related to Brexit. This could easily be described as how not to manage your negotiation deals.

Procedural Generation with Wave Function Collapse

Like fractals, procedural generation is something I have always enjoyed (as a concept, as a result and as a programming problem). WFC is a good approach for generating maps, images and anything with “rules”

Rust Lifetimes for the Uninitialised

A thorough introduction to how Rust lifetimes work and how to use them

Controlling the Spice, Part 3: Westwood’s Dune

A short history about how Dune II came to be, and to appear almost at same time than Dune. Also, how Westwood (and Dune II) shaped real time strategy from then on.

Python Patterns

An analysis of some common patterns (à la Gang of Four, patterns) when applied to Python

The Unexpected Philosophical Depths of the Clicker Game Universal Paperclips

In the clicker realm, I much prefer SpacePlan (or A Dark Room, but that’s not 100% clicker), but UC was interesting.

Spread the word: the rise of craft butter – and how to make your own

Craft beer, craft bread, craft butter. It’s hard to come with good quality cream in Spain, though.

📚 Platt’s How to Draw Cartoons

A very short and sweet book on drawing cartoonish people. Highly recommended. And I found out the author lives in Hay-on-Wye, given the amount of times we’ve been there I wonder if we’ve crossed our paths.

Oh, shit, git!

If your local git guru is away, this can save the day.

UDFs vs Map vs Custom Spark-Native Functions – Farox2q – Medium

Some benchmarks and code comparisons between UDFs, map and custom spark functions. Sadly, you can’t implement the latter without using a custom build of Spark, and good luck deploying that to EMR...

M-16: A Bureaucratic Horror Story

The surprisingly interesting story about a weapon, the M-16, and how a lot of bad decisions happened because “committees & politics”

Talent vs Luck: the role of randomness in success and failure

A paper. This model sounds super-interesting, and I want to replicate it in Python as soon as I have a few hours available (meh)

How to Deal with Difficult People on Software Projects

It’s funny because it’s true

Machine learning teaches me how to write better AI

This is an old post, but I have always found it really interesting. I used Normalised Compression Distance once, but I no longer remember the setting (I think it was as part of a decision tree metric, but the details escape me, it was 6 or7 years ago)

Supervision and error handling in zio, akka, monix

Zio, Monix and Akka can be used for similar things (asynchronous execution of streams/“stuff”). How you handle errors is different though, and sometimes using one for its error handling can make a difference.

From 48s to 5s - optimizing a 350 line pathtracer in Rust

If you’ve been counting, I’ve been reading a lot of Rust stuff lately. I have always been interested in raytracers/path tracers (wrote one in Lisp ages ago, got up to refraction), so this was a natural fit.

📚 Software Abstractions

This “week” I finished the second edition of Software Abstractions, the book on the Alloy modeling language. It is pretty good. Starts as a light read, but after a while how the language works starts to be a bit too cumbersome. Luckily there’s an extensive set of examples throughout the book, and an examples section at the end. I’m itching to model something in Alloy, but I’m still unsure what.

Remastering Star Trek: Deep Space Nine With Machine Learning

The result is impressive. And got me to consider installing the app used.

The Pyrex Glass Controversy That Just Won't Die

Surprisingly fascinating story about why Pyrex is of lower quality lately in the States. Lucky for me, in Europe it’s still fine

Pinot Joins Apache Incubator

YAQEE (Yet Another Query Execution Engine). But sounds interesting, and has a nice logo. I’ve seen worse

How Bluetooth got its name, an interview with Jim Kardach

Ye olde Harald!

A Pi-Powered Plan 9 Cluster

Plan9 is what Linux could-have-been. It was built for clusters, with file, process, sharing made easy. A long time ago I had a 2-machine cluster (1 Raspberry and a very old laptop), which I used as a storage/sharing files across two Macbooks using Plan9 from User Space syncing into a Venti file server. Ah, those were the days!

Modern art was CIA 'weapon'

TL;DR: The CIA funded art tours to show the capitalist West still had creativity

Maya ritual cave ‘untouched’ for 1,000 years stuns archaeologists

My girlfriend majored in History, with a focus on pre-Columbian meso-american history, so I always pay more attention to articles about the area.

Remembering a Programming Language that Helped Shape the Digital New York Times

An interesting history tidbit. And a good lesson on why custom-built languages and DSLs are a blessing and a curse.

📚 Guns, Germs and Steel

I’ve had this book on my Audible account since... 2014 I think. And actually, I also have the print copy. It was recommend to me by my thesis advisor, and it is indeed a very interesting subject, but there are points when the Audible version is as dull as watching paint dry. I haven’t read the print version, but consider that before audiobook.

Final Tagless seen alive

This is a response to John de Goes’ talk The death of final tagless. I don’t have a definite opinion here. I like free monad approaches, since they make interpreters easy to understand and optimisable “easily”, on the other hand Zio looks clean, but that’s as far as I go: I don’t have a strong opinion either way on final tagless, judge yourself from both sources


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.
Written by Ruben Berenguel