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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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”
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.
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.
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...
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)
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.
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.
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.
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!
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.
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.