2020#47 Readings of the Week
7 minutes read | 1366 words by Ruben BerenguelAnother hard push at reducing my reading list. At the current pace I may not write many more of these posts.
This week I have kept the pace of reading, and I have also finished a generative sketch I’m particularly happy: Iris. You can read about how it was done here.
NOTE: Generative code, ZIO, Scala, Python, Spark, Maths. 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.
Questions to ask at the end of a technical interview
I can think of a few more, but these are good (some should be asked earlier IMHO).
The Anarchist Abstractionist — Who was Alexander Grothendieck?
Although I’m technically an applied mathematician (dynamical systems and functional analysis being my “main”), for my research masters I split my courses between applied maths and algebraic geometry. I read parts of SGA and EGA for one of the courses (and had to give a talk about Grothendieck and Serre’s vanishing theorems). Grothendieck’s life (and mathematical output) are mesmerizing.
Rewriting the heart of our sync engine - Dropbox
With a sufficiently large user base, just about anything that’s theoretically possible will happen in production.
By the way, they moved from Python to Rust.
Clustering Pollock
Interesting data visualisation and analysis. I have also been clustering colours
My Favourite Git Commit (and Hacker News comments)
Not only is this post interesting, but the comments on Hacker News (especially the top one, with a possible convention for Git commit messages also are.
How to Implement Search By Color (in PostgreSQL)
(edited title) Very interesting, I got to learn about the cube type in Postgres (ah, Redshift, will you ever move from Postgres 8?). I faced a similar problem (but more like the other side) on extracting the palette of an image It is quite a hard problem (and using RGB distance is not the best approach).
Why Tacit Knowledge is More Important Than Deliberate Practice
I had never thought about what was involved in tacit knowledge. After reading this I see how it is everywhere, in my interactions (as a giver and a taker of knowledge)
The NUMMI Factory — A Parable About Software Development — What We Can Learn from other Industries
The key concept you can take from here is autonomation
Kelly Agnew’s Story Goes Down the Toilet
Why would you cheat on an ultra?
Frank Sinatra Has a Cold
A very classic, very long-form nonfiction piece. It’s long, but entertaining. If you don’t like Sinatra or don’t know who he is, skip it.
The Lost Satisfactions of Manual Competence
By Cal Newport, which for me always adds a mental “but” because I have the nagging feeling he usually talks from his navel-gazing perspective. I’ve been a shoemaker, so there’s that for manual competence ¯\﹍(ツ)﹍/¯
Introduction to Bayesian Filtering
What the title says. If you want to know what/how a Kalman filter is, this is a good first step
Efficient Databricks Deployment Automation with Terraform - The Databricks Blog
Interesting to have as an option. We don’t use Terraform (but cloudformation directly with boto), although for the initial Databricks deployment all the IAM roles required were configured manually (it is not worth automating what may never be used or modified again!). It wasn’t that hard to be fair, although I have some experience with IAM.
Life Is A Comonad
That’s Conway’s Game of Life. Real life is obviously a ****morphism.
Thread shifting in cats-effect and ZIO – SoftwareMill Tech Blog
I wasn’t aware of these finer details (I don’t get to write much functional code in Scala). But this matches my idea of how to do certain parallel things I have been thinking for a while.
The New Math Bridge Beyond Fermat’s Last Theorem
Fascinating, can’t say much more. I left number theory 15 years ago ¯\﹍(ツ)﹍/¯
Debugging Python With ipdb and pdbpp • vim, git, aws and other three-letter words
A friend at work uses pdbpp
extensively. I’m more of a print
user, but using well a debugger can save a lot of time (learnt on my gdb
and valgrind
days).
Transforming Python ASTs to optimize comprehensions at runtime
This is a great tutorial about using the ast
Python module for something useful. Although as mentioned at the end of the post, 3.8 walrus operator offers a simpler way to optimise this problem.
Mini CouchDB: Reading from FoundationDB in Rust
I have edited the title slightly. I have FoundationDB in the list of technologies I would like to use, but I have no good plans for it.
Tech alignment with ADRs, Working Groups and Narratives
I’m a fan of ADRs, even if we don’t get to use them at work.
What the heck is pyproject.toml?
I use pyproject.toml files as poetry requires them, and having one file to rule them all is excellent. Also, platypi.
Running Lisp in Production
Lisp is a language I started with but have never come back. I’m not sure why, I enjoyed my time with it a lot.
tic-tac-toe in a single call to printf
I do weird things, but then there are people out there like the author of this.
How to Put More “Character” Into Your NPCs
I don’t plan on writing a game (I will add yet, for good measure) but this was an interesting digression on what makes “simple dialogue” pop.
Automatic work session recordings with OBS Studio + TaskWarrior + TimeWarrior + YouTube
For a while I had a set of scripts that took screenshots every 30 (?) seconds and coalesced into a movie at the dat’s end. Didn’t help me much aside from eating a ton of space 😅
Is APL Dead?
Written by a true APL expert (he has written a compiler for a subset of APL, to run on GPUs). I really dig APL, and even was close to moving to a job on it a few years ago. I still think it is the answer to quick data exploration, but other considerations (for instance, check my Mapping as a Tool for Thought slides) make it unpractical for me.
Custom Named Entity Recognition Using spaCy
I’ve been doing some high intensity (order of millions) web scraping+NLP lately, so I have delved into Spacy (gensim and Stanza as well). For now I have not needed to extend NER, but having that as a possibility is tempting.
A GPU Approach to Conway’s Game of Life
I have a hard time wrapping my head around GPU processes, vertexes and shaders. Luckily there are people that grok that, and this is a very thorough and detailed explanation of how to simulate Game of Life using texture renderers and framebuffers on a GPU.
Gosper’s Algorithm Explained
This is an excellent and concise explanation of HashLife, an algorithm to speed up Game of Life simulations by taking advantage of symmetries and repetition (trading memory requirements for speed)
A Brief History of ZIO
Pretty interesting to see how ZIO came to be. Although I hate all the drama around Scala libraries, community, people, Twitter, Reddit and Haskell.
Latency in Asynchronous Python
This looks like one of those bugs that are super hard to find. Good asyncio tips in here as well.
asyncio: We Did It Wrong
This is an awesome walkthrough for asyncio: writing, interacting with threads, sync code, exceptions, testing, debugging and profiling. There is nothing left to chance.
Buy me a coffee