This edition of the Weekly Head Voices is a retrospective of the period from Monday June 26 to Sunday July 30, where with weekly I mean regular(ish), which is still better than absent. :)
We spent the first week of July about 100km to the south of Durban.
It was an epic winter break-away with the conditions so summery that we forgot that it’s technically speaking the middle of winter. Down to the beach every day, balmy evenings spent outside, brilliant runs through the KwaZulu-Natal hills and a holiday destination that has mastered the arts of happy-children-happy-parental-units all contributed to a brilliant week.
On the way back to the airport, we squeezed in a visit to uShaka Marine World, where we visited the dolphins, the aquarium and I joined the two oldest genetic offspring units zip-lining all over the water park.
The week after it was off to The Hague for mostly work and a few maximally cromulent social sessions with my besties.
Plans were made. Philosophical discussions were had. Fortunately, no planes were missed.
During all of this, OpenServe’s elves were busy digging up my neighbourhood installing these magical green tubes everywhere. They’re magical because soon they will be filled with super thin glass fiber, and then lit up with lovely lovely internet.
I really can’t wait.
On the evening before taking chances but not missing my flight home, the conversation spent a good amount of time on the topics of happiness, contentment and life goals.
As a reader of this blog, you will know by now that we’re not big fans of happiness. See the last bit of Weekly Head Voices #44 (6+ years ago…) which has what I think is a good summary of why we are not.
On the other hand, we have always thought that contentment is perhaps a more practical state to try and work towards.
There are however those who make the logical argument that contentment has been evolved out of us a long time ago, and that we are thus doomed never to find contentment for more than a few moments.
In WHV #64, following an old tradition of hiding backyard philosophy in arb blog posts, I suggested side-stepping the issue by not focusing on life goals, which are in essence a sort of end point which will invariably lead to post-achievement ennui, but instead focusing on setting and following a certain direction.
Life directions don’t have to have endpoints, but they can have waypoints. The difference is that you know that these are waypoints, and you accept that the journey continues until it finally stops forever.
Whatever the case may be, the conversation motivated me to start a new search for more scientifically-oriented literature on the topics of human happiness, contentment, life goals and so forth.
Up to now my search has not turned up very much. In a surprising turn of events, it seems that there is no shortage of people who are willing to sell you the literature-equivalent of snake-oil, in some cases knowingly but in most cases utterly oblivious.
Somewhere else during this same evening (it was a productive night), we provisionally added a third rule to the WHV’s Two Rules for Achieving Great Success in Life, or Just Surviving, Whichever Comes First.
The rules are now: 1. Be useful. 2. Be likeable. 3. Evolve.
I have been using rules 1 and 2 of the hitherto bi-ruled WHV’s TRAGSL-JS-WCF (pronounced TRAGSL-JS-WCF) as a central component in my GOUs education.
Rule 3 should be understood as actively and continuously upgrading oneself based on continuous introspection and retrospection.
I was initially hesitant to add a third rule to the previously perfect two-rule combo, but wise friend made good arguments for reminding system users of the important of deliberate and continuous self-improvement.
In 25 years I hope to be able to report back on the efficacy of this system based on a smallish but long-term study with N=3.
In the period from Monday June 12 to Sunday June 25 we were mostly trying to get through the winter, fighting off a virus or three (the kind that invades biological organisms you nerd) and generally nerding out.
One more of my org2blog pull requests was merged in: You can now configure the thumbnail sizes your blog will automatically show of your uploaded images. Getting my own itch scratches merged merged into open source projects never fails to makes me happy, even although in this case there can’t be more than 5 other people who will ever use this particular functionality.
ASP.NET Core SURPRISE!
For a work project I was encouraged to explore Microsoft’s brand new ASP.NET Core. While on the one hand I remain wary of Microsoft (IE6 anyone?), I am an absolute sucker for new technology on the other.
You may colour me impressed.
If I had to describe it in one sentence, I would have to describe ASP.NET Core as Django done in C#. You can develop and deploy this on Windows, Mac or Linux. You model and query your data using Entity Framework Core and LINQ for example, or Dapper if you prefer performance and don’t mind the SQL (I don’t), or both. You write controller classes and view templates using the Razor templating language.
C# 7.0 looks like it could be a high development velocity language. It has modern features such as lambdas with what looks like real closures (unlike C++ variable capturing), as well as the null coalescing operator (??) and the null conditional operator (?.), the latter of which looks superbly useful. Between Visual Studio on Windows and the Mac, or the new Intellij Rider IDE (all platforms) or Visual Studio Code (all platforms), the tooling is top notch.
Time will have to tell how it compares to Python with respect to development velocity, a competition that Python traditionally fares extremely well at.
Where ASP.NET Core wins hands down is in the memory usage department: By default you deploy using the Kestrel web server, which runs your C# code using multiple libuv (yeah, of lightning fast node.js event loop fame) event loops, all in threads.
With Django I usually deploy as many processes as I can behind uwsgi, itself behind nginx. The problem is that with Python’s garbage collector, these processes end up sharing very little memory, and so one has to take into account memory limits as well as CPU count on servers when considering concurrency.
The long and the short of this is that one will probably be able to process many more requests in parallel with ASP.NET Core than with Django. With uwsgi and Django I have experimented with gevent in uwsgi and monkey patching, but this does not work as well as it does in ASP.NET Core, which has been designed with this concurrency model in mind from the get go. My first memory usage and performance experiments have shown compelling results.
Hopefully more later!
A cadence of accountability
Lately my Deep Work habits have taken a bit of a hit. At first I could not understand how to address this, until I remembered mention of a cadence of accountability in The Book.
Taking a quick look at that post, I understood what I had forgotten to integrate with my habits. Besides just doing the deep work, it’s important to “keep a compelling scoreboard” and to “create a cadence of accountability”.
Although I was tracking my deep work time using the orgmode clocking commands (when I start “deep working” on anything, I make an orgmode heading for it in my journal and clock in; when I’m done I clock out; orgmode remembers all durations) I was not regularly reviewing my performance.
With orgmode’s org-clock-report command (C-c C-x C-r), I can easily create or update a little table, embedded in my monthly journal orgfile, with all of my deep work clocked time tallied by day. This “compelling scoreboard” gives me instant insight into my weekly and monthly performance, and gives me either a mental kick in the behind or pat on the shoulder, depending on how many deep work hours I’ve been able to squeeze in that day and the days before it.
The moment I started doing this at regular intervals, “creating a cadence of accountability” in other words, I was able to swat distractions out of the way and get my zone back.
This is an interesting similarity with GTD (which I don’t do so much anymore because focus is far more important to me than taking care of sometimes arbitrary and fragmentary tasks) in that GTD has the regular review as a core principle.
Us humans being so dependent on habits to make real progress in life leads me to the conclusion that this is a clever trick to acquire behaviour that is not habitual: Work on an auxiliary behaviour that is habitual, e.g. the regular review, that encourages / reinforces behaviour that is perhaps not habitual, e.g. taking care of randomly scheduled heterogeneous tasks (GTD) or fitting in randomly scheduled focus periods (Deep Work of the journalistic variant).
As an aside, cadence in this context is just a really elegant synonym for habit. I suggest we use it more, especially at cocktail parties.
Following the rich tradition over here of year transition posts, having just rounded off a brilliant outdoorsy take-your-mind-off-of-everything vacation with friends, and also inspired by wogan.blog’s nicely personal 2016 review post, I decided that a farewell-2016 how-you-doin’-2017 post was in order.
Warning: This post is long (1800 words+), rambly and sometimes even a bit mushy. I hope you enjoy it!
2016: The Review
The bad, with a hopefully slightly positive outlook at the end
Let’s get the bad stuff out of the way as soon as we can…
For me the biggest disappointments of 2016 were the double-whammy of the Brexit followed by the Trumpocalypse.
I really did not expect either of these events to go the way they did.
This is probably because I was, ever the optimist, over-estimating the level of human development of British and US voters.
The exclusionist, nationalist, xenophobic and in many cases even white supremacist thinking associated with Trump’s support in the US and the Leave vote in the UK are truly abhorrent.
I understand that there were many other factors at play. However, these voters were either throwing out the baby with the bath water, or, much much worse, agreeing with the abhorrent sentiments mentioned above. Especially this second possibility depressed me greatly after the US election.
After such setbacks, one needs to look for solutions.
This is yet another strong indication that we should really be pouring every resource we have into the education of our people. (yes, correlation and causation, I know. hence the terms “strong indication”. discuss in the comments if you like.)
Human history has become, more and more, a race between education and catastrophe.
The way things are going now, that thought, and movements like #feesmustfall, are more important than ever. There can be absolutely no excuse for neglecting the highest quality and accessible education (basic up to tertiary) of future generations of humans whom we expect to further our civilization.
The running and the mindful
In 2016, I ran 440km.
There are a great deal of people who have run much more than that, but those are my 440 kilometers and somehow they brought me a great deal of deep satisfaction.
During the year, my per-run distance and speed have gradually increased.
Besides fitness gradually increasing, I discovered experimentally that shorter, quicker steps get me further and a higher pace. It took a biomechanical friend to explain to me that this was about muscles operating within the more efficient middle of their full extension/contraction ranges. I could probably just have read this somewhere, but doing it the hard way and then having a friend explain it on top of Table Mountain definitely added something to the experience.
With the surroundings over here being what they are, it does not take much to slip into a state of mindfulness.
No doing, no planning; just absorbing all of the surroundings, physical and mental, the music, and feeling how the meat-based machine that houses me propels us forward.
On the topic of mindfulness, for the last few months I added a repeat event to my todoist, helping me to spend five minutes every morning before work doing the breathing exercise. More recently I do this without any voice track, but previously Prof. Mark Williams at one point would say (original quote is due to Jon Kabat-Zinn, PhD):
Each breath a new beginning; each out-breath a letting go.
There’s a whole lot in there. I have spent quite some time with it and I am far from done.
The first rule of blogging: You don’t blog about blogging.
However, I hope you don’t mind me breaking that rule to mention that in 2016, this blog was viewed 133 thousand times. I already get happy when one other person reads a post. You can imagine how happy it makes me to know that there are even slightly more people who have come here to consume some of the words I have written, and even some who have taken the time to leave behind comments!
The lion’s share of those views were due to focused posts that got picked up by some of the more popular nerd sites. I have to admit that I derived the most enjoyment from the more personal posts that were only read by friends.
Whatever the case may be, this has to be my most satisfying hobby. Thank you for the crucial role that you who read play in it!
The new life
In early(ish) 2016, our third daughter, affectionately known as Genetic Offspring Unit #3 (GOU#3 for short) around these parts, was born.
This wonderful little cellular mega-cluster is currently making noises that have the primary purpose of being immensely cute, but are also slowly starting to make sense. Her ambulation capabilities have increased immensely, and she is on the verge of standing up by herself and so we will probably have to re-arrange our interior. Again.
I prefer making resolutions in secret, then carrying them out or not, and only then reporting on them. However, that would mean that I would have to wrap up this post right now, and for that I’m not quite ready yet.
Those of you who have spent more than 8 seconds in my or my blog’s vicinity know that I absolutely adore craft beer (this includes local, but also special beers of the Belgian type) and local wines, both of which are regularly consumed by me and “business partners” during “business lunches” in the not-unattractive local surroundings.
This decision was not taken lightly.
It is mid-morning of day 2 of Experiment Alcohol Zero (EAZ) as I write this. With the air full of smoke due to local vegetation fires, I have not been able to go running yet, but I am imagining that my energy lasted later last night, and I got up easier this morning. I have 29 more days to investigate.
I also remind myself to be grateful. It takes continuous practice to identify the many things one can be grateful for every day, but it is definitely worth it.
I often remind GOU#1 (#2 and #3 are not old enough yet for this lesson) that, besides the guidelines above, we have to keep on working on two more related characteristics: being useful, and being likable.
Being useful means continuously developing and refining skills that enable one to contribute value to one’s surroundings. Being likable means understanding and appreciating how we humans stick together. Kindness, see above, is an important component of this.
In 2017, I would like to write more (on this blog probably), and read more.
Rapidly morphing goalposts jumping randomly through even more randomly pulsating hyperspace, with a slightly positive outlook at the end
Yes folks, this is going to be my parting thought.
When I was much younger, I used to believe that one’s life could be “cracked”. That is, if you searched, and you worked really hard at understanding yourself, your people and your surroundings, you could come up with some kind of answer with which you would be able to attain contentment.
In the meantime I’ve come to the realisation that that Much Younger Me, although quite dashing, was of course utterly wrong.
Life is utterly dynamic. You Now are a different person from You Last Year. The same goes for people around you, and the same goes for everything around you.
The goal posts are not just moving all the time, they are an illusion flashing in and out of an hallucinogenic and especially dynamic perception.
Importantly, in this restless environment, some peace can be found by realising that a large part of the restlessness originates from within you. Fortunately, you have slightly more say in you than you have in your surroundings.
What one can do then, is nicely summarised by Prof. Mark Williams in the audio accompanying his mindfulness book:
The deep stillness we seek does not arise because the world is still or the mind is quiet. Stillness is nourished when we allow things to be just as they are for now, in this moment, moment by moment and breath by breath.
The End (for now)
Alright friends, that was it from me, for now. I hope that you have the best 2017 possible. I hope especially that your kindness and that of those around you flows deeply and freely.
As a parting gift, here is the high-resolution panoroma I made from the top of Table Mountain, after hiking up Platteklip Gorge with friends:
I thought that I had nothing for the two weeks from Monday January 18 to Sunday January 31, 2016, but my notes begged to differ. They suggested the following items for your reading, listening and viewing pleasure:
If you’re like me, you stop two to three chips short of finishing the packet so that you can explain to your conscience that you didn’t finish the whole thing. However, once or twice in my life, I’ve been faced with the terrifying conundrum of a partially finished packet of chips, but no way to seal the packet for later utilisation. Readers, agonise no more! Learn from this animated demonstration:
A musically inclined colleague recently suggested I try out In Colour, the 2015 studio album by Jamie XX. After multiple listens, I can only highly recommend that you too try this out on your favourite music source. I’m currently on Apple Music, because it is currently the best way for me and my whole family to get access to all the music we can eat. What a time to be alive! Below is one of my favourite tracks from the album:
Irrelevant miscellany, for my OCD
At Stone Three, as I have previously hinted, we have now switched to a self-hosted Mattermost. So far, this is going swimmingly, with some of the resident experts also getting the github integration going (when someone pushes to any of the linked github repos, we get a nicely formatted message on the relevant channels). If you’re curious about how exactly this compares to HipChat, Slack or Campfire (remember that?), let me know in the comments.
It turns out that millenials have introduced new forms like totes delish (most delicious), abbreviash (abbreviation), appreesh (appreciate) and many more brilliant inventions into the English language. It’s fantastic seeing a language evolve like this, especially now that the internet and the hyper-connected humans on it are acting as such a powerful catalyst, and simultaneously as an instrument of observation, or should I say observash?
Inspiring quotes that you can repost if you want
This is from Soderbergh’s Solaris, which I thought was brilliant (I did read Lem’s book when I was much younger, could be that that did the trick). The quote was brought to my attention by @ckritzinger on the twitters as follows:
There are no answers. Only choices.
Let’s broaden the quote slightly. Remember, this is the dialogue between one of the last living characters on a space station, and a flesh-and-bones version of one of the other crew members that was resurrected (you know, from being completely dead) by the utterly strange planetary intelligence that is Solaris (you can also read this fine analysis):
If you keep thinking there’s a solution, you’ll die here. There are no answers. Only choices.
That sounds like an even more apt bit of advice for most of us here on Earth, except that it’s only going to make the difference between dying, or dying with the disappointing belief that there must have been a solution or final answer somewhere that you were just unable to find.
The week of Monday June 15 to Sunday June 21 in bullets:
Ran around organizing all kinds of things for the new house. The various institutions have been cooperating very nicely.
Spent days trying first to fix an implementation of a GPU algorithm to simulate car paint, and then to implement an alternative algorithm by the clever boys and girls at NVIDIA. A team-mate finally got everything working by realising that the float16 texture coordinates (long story) we were using to sample a noise texture needed to be float32. Lesson learnt: If you’re seeing splotches when you’re supposed to be seeing snow, check your float precision!
Spent the rest of the week fighting with wkhtmltopdf, a tool that converts HTML into PDF. Unfortunately the tool is 50% webkit, and 50% black magic. Lesson learnt: wkhtmltopdf 0.12.2.1 renders internally at 74.8dpi. Accept it, calculate with it, and move on. The upshot of this is that the IP Dashboard is now 37% better at exporting charts.
For some time now, when I have to make decisions, I actively optimise for experiences and not for possessions. At some point in the past I read in the blogosphere that experiences make people happier than possessions, and since then I’ve been paying more attention to this. IT REALLY WORKS!(tm) Tonight I wanted to look up the sources of this idea for you (and for me). Here are the two academic papers causing most of that online discussion, and a summarising blog post::
Carter and Gilovich’s research (based on on a number of tests and questionnaires they did with a sample of Cornell students) demonstrated that experiences were more satisfying than possessions. Their results also support at least one explanatory mechanism: Experiences are more closely connected to the self. This makes sense: Anybody else can buy the same thing you bought, but, by definition, your experience of some event or adventure is quite unique to you. To my mind, the idea of focusing on the experience rather than the cake at the end is pleasingly complementary to the adage that Life is a journey, not a destination, which I have just learned is due to Ralph Waldo Emerson.
I’m still terrible at bullets, I know.
Dear reader(s), have a beautiful and experience-filled week!