kuniga.me > NP-Incompleteness > 2024 in Review

2024 in Review

01 Jan 2025

My drawing of an elephant
This is a meta-post to review what happened in 2024. Every year I go over the posts I wrote, reflect on the blog as a whole and on the personal side, share things I've done (mostly trips and books read).

Posts Summary

In 2024 I focused mostly in my studies of Complex Analysis with some scattered C++ and systems posts.

Complex Analysis

I started reading the book Complex Analysis by Ahlfors in September of last year. I’d estimate it will take me at least 2 other years to finish it at the current pace (a few hours a week). I’m both astonished at how long I’m able to keep at it, but also sad at the realization of how little time there is to learn other things.

Here’s a list of all the posts I wrote as notes from the book this year:

Work

I felt like I didn’t reserve enough time to study things relevant to my work as compared to previous years, especially books and papers.

Writing Understanding std::call_once() in C++ was interesting and I learned many new things. It was also rewarding to learn about Negative Bloom Filters as there was a possibility to use at work to optimize some workload, but we ended up not using it.

On the other hand, studying low-level coroutines in C++ (Coroutines in C++ - The API) felt like a waste of time. The low-level machinery of coroutines is convoluted and very different from how it is used in practice by high-level libraries such as folly coroutines, and I still don’t have a good grasp on the latter.

My goal was to build a high-level coroutine library from scratch, starting with Coroutines in C++: A Minimal Library and based off Lewiss Baker’s coroutine library, but I later learned that his library is incomplete for Linux systems, and I didn’t feel like it was worth the time trying to figure out how to build it on my own.

Leisure

I was introduced to a game called Kaliko, which is like dominoes, but with hexagonal pieces and “2 dimensional”. These are generally categorized as Serpentiles.

It got me interested in computational complexity again and I decided to read some papers on some puzzles, starting with The Geography Game and Uno. Reading the paper about Uno was particularly rewarding because I found a small error in it and after sending an email to professor Eric Demaine (one of the authors), I got an acknowledgement back.

A post from 2012 is worth of note: Totally Unimodular Matrices. I received an email about it and wanted to refresh my memory. I ended up doing a major overhaul to it and adding proofs to the results I had only stated before.

Personal

I only wrote a meta-personal post, Centralizing Thoughts, in which I stated my desire to write more personal thoughts, at least once a quarter.

The Blog in 2024

Numbers

I kept the resolution to have at least one post a month on average, by writing 24 posts. The blog completed 14 years with 235 posts.

Starting February I finally added some visit tracking, GoatCounter, developed by Martin Tournoij.

This new counter is added to all the pages on my website, not just blog posts, and turns out the most visited page is actually not a blog post but a tool, A Bulls and Cows Solver with 4,817 visits. This is a solver I built for fun in 2018 as part of a post, Bulls and Cows, which is a code-breaking 2-player game. Some cursory Google search suggests this puzzle is a minigame in some other video-game The Silver Case and people found my page somehow.

Restricted to the blog, Linear Predictive Coding in Python written in 2021 continues to be the most popular post with 1,551 visits. From posts this year, Negative Bloom Filters was the most “popular” with a meager 49 visits.

Overall my website received 17,098 visits.

Illustrations

This year I got an iPad with a stylus, and I’ve been loving it not only for taking notes, but for drawing diagrams and painting pictures. The thumbnail of the last 4 posts (inclusive) were created in this iPad.

Virtual Museum

As I mentioned in Centralizing Thoughts, I started a new page with a collection of different types of things I find interesting, in particular in art.

I’ve added most of the pages this year, but most of them were things I had seen in the past. The new items I saw this year were:

Azuleijo, a porcelain tile used to cover walls, and is associated with Portugal and its colonies, though having Arabic origin and being inspired by the Chinese porcelains.

Calçada, a special type cobblestone that looks like a mosaic and it’s associated with Portugal and its colonies.

Moorish Architecture, a blend of Arabic and European architecture, found mostly in Southern Spain, but with influence in modern architecture in multiple places (neo-Moorish).

Resolutions for 2025

Last year I said:

For next year, I do want to finish the complex analysis book and move on to differential geometry.

Well, turns out I didn’t finish the complex analysis book. For focus sake, I’ll keep that as my only resolution for 2025.

Personal

The end of the year is a good time to look back and remember all the things I’ve done besides work and the technical blog.

Trips

In March, after a business trip to London, we decided to extend it by spending two weeks in Southern Spain and Portugal, mainly in a region called Andalucia. It has a very unique history, culture and architecture, generally qualified as Moorish.

a collage of photos from a trip to southern Spain
Andalucía. Top: 1. El Caminito Del Rey, Málaga province; 2. Ronda, Málaga province; 3. Sentenil de las Bodegas, Málaga province. Bottom: 4. Nasrid Palace, Alhambra, Granada; 5. Cathedral-Mosque, Córdoba; 6. Easter procession, Sevilla

I usually aim to have some sort of theme to trips and this was perhaps the most cohesive and on point with the Moorish Europe theme. I hope to find other such great “themed” trips in the future.

a collage of photos from a trip to the Algarve and Lisbon
Algarve and Lisboa. 1. Percurso dos Sete Vales Suspensos, Algarve; 2. Palácio da Pena, Sintra; 3. Museu do Azuleijo, Lisboa.

In August, I took a recharge of 30 days (we’re granted a recharge every 5 years at Meta, and this one is from the time I completed 10 years in 2023). We decided to go on a trip that can’t be easily broken down into smaller parts, and settled on a tour across Southern Africa, starting from Victoria Falls in Zimbabwe to Cape Town in South Africa, driving through Botswana and Namibia.

a collage of photos from a trip to southern Africa
Southern Africa. Top: 1. Victoria Falls, Zimbabwe; 2. Skeleton from the San people, Sandwich Harbor dunes, Namibia; 3. Sand dunes, Namib-Naukluft National Park, Namibia. Bottom: 4. Deadvlei, Namib-Naukluft National Park, Namibia; 5. River Fish Canyon, Namibia; 6. Flower from the protea family, Kirstenbosch National Botanical Garden, South Africa

It required setting up tents almost every day, and sitting on an adapted truck for hours. It was exhausting but a truly unique experience, not just from seeing large African animals close by, but hearing our Kenyan guides speaking Swahili among themselves, observing the constrasts of Afrikaans-speaking whites and blacks speaking their native language in Namibia, being ferried in small boats in the Okavango delta, and visiting a San people village (however artificial that setup is) to learn about their culture.

a collage of photos from a trip to southern Africa
Animals of Southern Africa. Top: 1. Giraffe, Chobe National Park, Botswana; 2. Leopard on top of a tree, Chobe National Park, Botswana; 3. Wildebeest (aka Gnu), Etosha National Park, Namibia. Bottom: 4. Elephant staring at a white rhino, Etosha National Park, Namibia; 5. Cape Seals, Skeleton Coast, Namibia; 6. Greater flamingos, Walvis Bay, Namibia.

Books

As in previous years, I’ve been spending more time reading history books, but I’ve also tried to spend some time reading fiction, especially poetry. I read most of the books I received as gifts.

This year I started a new page where I plan to centralize books I’ve read and also have more extensive review for some of the books.

History and Memoirs

Imperial China, 900–1800 by Frederick W. Mote. This book covers the history of China from about the end of the Tang dynasty to about halfway through the Qing dynasty.

It provides many facts and details about the lives of the Imperial family and also about the people from the steppe of Central Asia (not just the Mongols) which I learned from this book had a very intertwined relationship with China.

I had brought this book for the trip to Beijing last year, but only finished reading in 2024.

Rating: 4/5 (Extended review).
book cover for the entry on the left column
Moorish Spain by Richard A. Fletcher. This book covers the history of Southern Spain and Portugal from around 700, the conquest by the Umayyad Caliphate to about 1,500 when the last Muslim kingdom (Nasrid dynasty) of Granada fell.

I bought this book for my trip to Andalucia in Spain and the Algarve in Portugal and found it a really good source for historical context. It's particularly relevant for Cordoba, Seville and Granada.

Rating: 5/5 (Extended review)
book cover for the entry on the left column
The Anglo Saxons by Marc Morris. This book covers the history of the Anglo-Saxons, from their arrival to the British Isles in the 4th century with the fall of the Roman empire to 1066, when William the Conqueror of Normandy invaded.

Many of the chapters focuses on one individual (mostly kings or powerful religious leaders) and tells the history of the time from that vantage point. Topics include: the Sutton Hoo treasure, the Canterbury Cathedral, the Viking invasion, Offa’s Dyke, the events leading to the Norman conquest. It also provides interesting the etymology of some English words.

I bought this book during a work trip to London. It’s well organized and engaging.

Rating: 5/5 (Extended review)
book cover for the entry on the left column
Long Walk to Freedom by Nelson Mandela. Audiobook. This is an auto-biography recounting Mandela's life including his childhood in the Transkei (today's Eastern Cape), his days as lawyer in Johannesburg, his anti-Apartheid activism, membership in the ANC (African National Congress) and eventual imprisionment at Robben Island in Cape Town.

Overall interesting insights into the life of a private citizen of a culture I knew nothing about, and during Apartheid. However, I found it contained too much personal details and he's often enumerating names of his political sphere, which I found tedious.

I was expecting to get more insights into the Apartheid, in particular why it ended and how much individual contribution leaders like Mandela and de Klerk had, but I don't feel like I got this from this book. I'd like to read a more focused and neutral book on it.

The one thing I didn't know is that Mandela was willing to use violence to fight against the government, and was involved in large acts of infrastructure sabotage through an arm of the ANC called uMkhonto weSizwe.

I bought this audiobook to listen during the long roadtrip across Southern Africa.

Rating: 4/5.
book cover for the entry on the left column
An Arid Eden, a memoir by Garth Owen-Smith. Garth was a South African of English descent who spent considerable time in Namibia, in particular the Kaokoveld, working as a conservationist.

The main theme of the memoir is Garth’s conservationism efforts, using a radical strategy to involve the local community in helping preserve the wildlife by stopping poaching and illegal hunting. Helped by his efforts, Northwest Namibia went from almost being devoid of wildlife in the 70-80s to a thriving tourist destination.

As with Mandela's auto-biography, Long Walk to Freedom: there are just too many people mentioned in the book and lots of tedious minute details.

I bought this book to read during the roadtrip in Namibia.

Rating: 4/5. (Extended review)
book cover for the entry on the left column
The Code Breaker, by Walter Isaacson. This is part a biography of Jennifer Doudna, part the history of CRISPR, for which Doudna together with Emmanuelle Charpentier received a Nobel prize.

It covers the trajectory of Doudna's life up to the moment she received the Nobel prize. In parallel, it recounts some key scientific breakthroughts that led to CRISPR. It also touches on the moral and ethics of gene editing.

Isaacson is a master storyteller. He adds color to the people mentioned in the book and builds a cohesive narrative linking them and the relevant events on the history of CRISPR.

I got this book as a gift.

Rating: 5/5.
book cover for the entry on the left column
Peoples and Cultures of Africa - Southern Africa, edited by Peter Mitchell. Technically not a history book, this coffe table book was useful to get a glimpse of the different cultures in Southern Africa, including countries I visited like Botswana, South Africa, Namibia and Zimbabwe.

The division of Africa into subregions is a bit arbitrary, especially near the borders. This book includes Madagascar, Mozambique and Zimbabwe which are not included in the United Nations scheme.

Some cultures were particularly relevant for my trip and books I read. South Africa trip: Afrikaners (Dutch settlers in South Africa and Namibia), Cape Malays (Indonesian and Malaysian brough in by the Dutch to Cape Town). Namibia trip: Herero, Himba, San. Long Walk to Freedom book: Indian South Africans, Xhosa (Nelson Mandela). An Arid Eden book: Ndebele and Shona (Zimbabwe), Tswana (Botswana).

Rating: 4/5.
book cover for the entry on the left column

Psychology

The Highly Sensitive Person by Elaine N. Aron. According to Aron, "highly senstivity" is distinct from introversion, but there's a high correlation. The key trait of sensitive people are that they notice things others don't.

The premise is similar to the book Quite by Susan Cain, to find unique advantages of a trait that is often considered a negative (introversion in Cain's case, sensitivity in Aron's).

The book has several questionnaires to help decided whether you're a highly sensitive person. My score says I am, no surprises, though some of the questions feel like horoscope: "I have a rich inner life (Y/N)" - this is so vague and prone to self-bias, who would answer no to this?

Other chapters of the book cover how to deal with relationships, at work and how to deal with trauma.

I got this book as a gift.

Rating: 3/5.
book cover for the entry on the left column
The Art of Thinking Clearly by Rolf Dobelli. This book lists 99 psychological traps that humans tend to fall into and aims to make the reader aware of such these traps in hopes to avoid them and hence the "Thinking Clearly" from the title.

If you ever read Nassim Nicholas Taleb Incerto book series, such as Fooled by Randomness, The Black Swan, Skin in the Game, Antifragile or The Bed of Procrustes, you’ll find that he talks about the same topics. Thius is no coincidence. Taleb is actually mentioned in the introduction as an inspiration.

Taleb's books however are very digressive, so these psychological traps are discussed at random places. Dobelli’s on the other hand focus on these only, and have a dedicated chapter for each, so it’s a lot more organized.

Rating: 5/5. (Extended review)
book cover for the entry on the left column

Science

Immune by Philipp Dettmer. Philipp Dettmer is the head of the youtube channel Kurzgesagt that I used to watch often.

In this book he explains how the immune system works. In short, it's a very complex system, but Dettmer is able to simplify it and through analogy, anthropomorphization and pictures, is able to make it more digestable, much like Kurzgesagt does on youtube. I didn't feel like the pictures were as useful in book format.

I learned about many interesting things such as:
  • Proteins move in Brownian motion inside the cells.
  • Our skin has an acid layer (acid mantle).
  • T-cells are named after the Thymus, where they mature after being produced in the bone marrow. As we get older, the Thymus stops working, so that's why our immune systems weakens.
  • B-cells are named after the bursa of Fabricius, an organ in birds that produce B-cells. Mammals do not have this organ, and we produce B-cells in the bone marrow.
  • There's this hygiene hypothesis that claims that parasites downregulate our immune system and our body adapted to keep up. In the modern world sanitation got rid of the parasites, so our immune system is in overdrive, which leads to allergies (overreaction) to inoffensive things like peanuts.
  • Viruses bind to specific receptors, which often is associated to specific cells in our body. For example, the Hepatitis virus targets liver cells, the HIV virus targets T-cells.
  • COVID in particular targets the ACE2 receptors, which unfortunately exists in many types of cells (respiratory, cardiovascular, gastrointestinal, kidneys, etc), that's why COVID symptoms can be so varied.
It's fascinating how our immune system operates in a military-way, with cells being born in the bone marrow, trained in the Thymus and garrisoned in lymph nodes. There must be a convergent evolution in warfare practices.

I got this book as a gift.

Rating: 5/5.
book cover for the entry on the left column

Fiction and Poetry

O Guarani by José de Alencar. In Portuguese. This is a fiction involving a Native from Brazil (from the tribe Guarani) named Peri and his platonic love for a white woman named Cecília. The plot is interesting enough, but very implausible. It uses a very florid language which I like. Examples:

"He looked up to the sky as if to make him the confidant of his happiness" ("Olhou para o céu como para fazê-lo confidente de sua felicidade").

"Reclining like the delicate flower cup that the night had filled with dew, she burst into tears" ("Reclinando-se como o cálice delicado de uma flor que a noite enchera de orvalho, desfez-se em lágrimas").

"There is no truly happy man except the one who has already known misfortune" (Não há homem verdadeiramente feliz senão aquele que já conheceu a desgraça).

I found this book in my parents place back in Brazil and realized I had never read it.

Rating: 4/5.
book cover for the entry on the left column
Macunaíma by Mário de Andrade. In Portuguese. If had to suggest a book corresponding to modern art this would be it. It uses weird punctuation and spelling (lots of typos) and the story doesn’t make much sense (it feels like it came from a dream) but it's pretty funny.

The plot is centered around a semi-god indigenous hero, Macunaíma, and his adventures across Brazil. It vaguely reminds me of Homer's Odyssey, covering mythological creature from Brazilian folklore. The hero also often makes up myths around the creation of modern things, such as the automobile.

I also found this book in my parents place back in Brazil. I had read this before and remembered liking it, so decided to re-read.

Rating: 4/5.
book cover for the entry on the left column
Poemas by Alberto Caeiro. In Portuguese. Alberto Caeiro is a heteronym of Fernando Pessoa. According to Wikipedia: "Heteronyms differ from pen names in that the latter are just false names, while the former are characters that have their own supposed physiques, biographies, and writing styles.

Caeiro is a simple man that avoids thinking about or analyzing things or philosophying. He's not a hedonistic either. Ironically or contradictorily, behind all this "non-thinking" is a thoughtful philosophy which he employes as a response to thinking.

Poemas is a collection of several of his poems that are consistent on his "philosophy". Example:

Only nature is divine, and it is not divine…
If I speak of it as an entity
It is because to speak of it I need to use the language of men.
Which gives personality to things
(…)
But things have no name or personality:
They exist, and the sky is big and the earth wide
(…)

Original:

Só a natureza é divina, e ela não é divina…
Se falo dela como de um ente
É que para falar dela preciso usar a linguagem dos homens.
Que dá personalidade às coisas
(...)
Mas as coisas não tem nome nem personalidade:
Existem, e o céu é grande e a terra larga
(...)


I bought this book during a stay in Lisboa. Pessoa is a celebrated poet in Portugal.

Rating: 5/5.
book cover for the entry on the left column
A Educação do Estoico by Barão de Teive. In Portuguese. Barão de Teive is another heteronym of Fernando Pessoa (see Poemas).

Teive is rational, perfectionist and pessimist. These traits are constants in his poems. Example:

"I put an end to a life that seemed to me to contain all greatness, and I saw that it contained nothing but the incapacity to want it. If I had certainties, I always remember that all madmen had greater ones. The scruple of precision, the intensity of the effort to be perfect — far from being incentives to act, are intimate capacities for giving up. It is better to dream than to be. It is so easy to see everything achieved in a dream!"

Original:

"Ponho fim a uma vida que me pareceu poder conter todas as grandezas, e não vi conter senão a incapacidade de as querer. Se tive certezas, lembro-me sempre que todos os loucos as tiveram maiores. O escrúpulo da precisão, a intensidade do esforço de ser perfeito — longe de serem estímulos para agir, são faculdades íntimas para o abandono. Mais vale sonhar que ser. É tão fácil ver tudo conseguido no sonho!"

I also bought this book during a stay in Lisboa.

Rating: 5/5.
book cover for the entry on the left column

Misc

(Extended review).
Staff Engineer: Leadership Beyong the Management Track by Will Larson.

This book is meant primarily for people wanting to be promoted to staff engineer level and beyond. The motivation for this book is that the path to get there is not well defined and varies from company to company.

Larson provides many concrete suggestions for aspirants (I plan to write a post with a summary, which I'll link here later). Half of the book are Q&A with staff engineers from diverse backgrounds and companies.

I got this book during the early days of Covid, when Meta offered a generous budget (now gone) for home office and I decided to buy books that could help my career. Finally took the time to read it.

Rating: 4/5.
book cover for the entry on the left column
The Innovator's Dilemma by Clayton M. Christensen. This book presents the theory of the Innovator's Dilemma, which aims to explain why established companies are sometimes unable to innovate and are overtaken by entrant start ups.

In short: big companies fail to invest in technology that is only useful to niche/low-end markets because it's not profitable. Such technology might eventually improve to a point it surpasses the established one and the entrant startup then captures a large slice of the market. By then it's too late for the incumbent to catch up.

Even well managed companies suffer from this. It is not about complacent companies that fail to invest on R&D or are afraid to disrupt its own products. There are large forces that prevent anyone manager from avoiding this: existing user base, shareholders, cost centers / organizational structures.

Rating: 4/5.
book cover for the entry on the left column