Weekly Head Voices #155: Lush.

Happy place: Running on a gravel road somewhere, this time in Wilderness.

HELLO FRIENDS!

Due to being outside so often, I have not been able to make the time to sit down and write to you more regularly over the past weeks.

I did miss you!

Fortunately, I am here now (that was Tuesday, it’s now Friday…) to babble a little bit about my subjective experience of the period of time from Monday September 17 to Sunday October 7. I did bring pictures!

GOUs go camping for their first time ever ✅

BFS decided to have his birthday party at a camp site called Beaverlac, close to Porterville. Beaverlac is beautiful and offers the additional amazing perk of No Cellular Reception.

The environment looks something like this:

One of the many Beaverlac pools. That water is COLD.

To my pleasant surprise, all three GOUs had a roaring time just being outside. Disconnection from the outside world was simply accepted as a given, which contributed significantly to their experience.

Before we move on to the next bit, a word to the wise: Your front wheel drive car will probably not be able to pull a trailer of any significant mass up the mountain when you leave Beaverlac. (There is only that one torturous way out, filled with thousands upon thousands of loose little stones…)

We learned this the hard way. Fortunately, the vehicle BFS had arranged for the weekend was an all-wheel drive, and so, after half an hour of hitching-unhitching-and-hitching again various trailers, we all managed to get back up to the top of the mountain.

Spring break in Wilderness.

The week after that, we left to spend a few days of the school spring break in Wilderness.

Having grown up in the Winelands, Wilderness is a whole different kind of pretty.

Wilderness has it all (say in Stefon voice for maximum effect):

Verdant, all enveloping forests, rivers snaking everywhere, mountains and a beautiful coastline.

If they had called the place “LUSH” instead of “WILDERNESS”, that would also have been quite apt.

The top of Big Tree of the Knysna Forests. Also known as the Outeniqua Yellowood, this specific one is about 800 years old.

Productivity pro-tip: Fool yourself into doing a good daily review.

Many productivity systems, including GTD, recommend or sometimes even require that one performs a regular review of one’s task system. This always looks quite good on paper, but this activity somehow falls often and easily to the wayside.

In the latest evolution of my orgmode task management evolution, the checklist I mentioned in a WHV #126 has become much more useful.

I now have a standard day planner template which I activate in the mornings by pressing a specific Emacs keyboard shortcut (C-c c p if you must know, it’s just an orgmode capture template).

This is a long(ish) checklist that ensures I review all of the important elements of my planning:

  • Longer term goals and reminders which I update every month. This includes which books I want to finish reading, which longer term projects I need to think about, and so on.
  • My calendar for the day. Yes, I need to be reminded to double-check my calendar for any unexpected meetings.
  • The “00 ToDo” folder in my email. I sometimes move emails in there from my telephone. These need to be processed and turned into real todos.
  • The main list of orgmode tasks. These are extracted on-demand from my monthly journal and the various project files I maintain in orgmode.
  • macOS / iOS reminders. Don’t judge me. Sometimes I voice-command one of my iDevices that I should do this or that on this or that day, at which point they get added to the synchronised list of reminders. This review step ensures that I take care of those.

The check list has an additional section with a list of habits that I try to build and maintain. This includes check list items for my sleep hours the previous night, the number of pomodori I complete (and whether I’m happy with that specific number) and whether I’ve read and thought enough for the day.

As with all of these systems, this one is far from perfect, but there are two things I specifically like about it:

  1. It takes a single keypress in the morning to create and configure the checklist.
  2. Checklists are amazing. In this case, the checklist is helping me to pull reminders of various kinds from a range of different sources, which enables me to exert a just a little more control over my daily evolution.

Slippery slippery focus.

Sometimes it feels like I have to spend the majority of my time just ensuring that I focus on the important stuff.

For an example, see the previous section.

A normal part of mindfulness meditation, is recognising when your attention wanders, and then just bringing your attention back to the breath.

In spite of the fact that this is an extremely well-known aspect of mindfulness, it has taken me until fairly recently to make peace with the fact that my normal daily focus (although sometimes it somehow finds itself in flow, which is amazing when it happens) will in many cases follow the same pattern.

Like many of you, I have the feeling that there’s an extremely complicated equation describing the relationship between sleep, diet, mood, time of day, environment, and so on, on the one hand and sustained focus on the other. I have an extremely rough idea how many of these affect focus, but on many days, experience breaks all of the rules.

Long story short, until we figure out how exactly to manipulate focus, I accept that the best way to handle the slippery focus problem, is, just like in mindfulness, to accept that it will never really stop wavering, and rather to work on recognising this wavering, and then simply bringing that focus back.

Flat white at La Belle Alliance in Swellendam.

Weekly Head Voices #154: It’s full of flowers!

A view from the West Coast National Park on Langebaan with Schaapen Island visible. No, we were never a Dutch colony.

This was the week from Monday september 10 to Sunday september 16.

Nerd stuff

I fought with VTK renderer window reparenting on three different platforms. Suffice to say that the 2018 is probably also not going to be the year of the Linux desktop.

Serendipitously (seems to be a theme) I came across UMAP, a great new technique for dimensionality reduction which functions in the same space (weak math pun, sorry) as t-SNE.

My first impressions are great because UMAP is fast, it can be trained, and I really enjoyed this recording of its introduction at SciPy 2018:

Outdoorsy stuff

The highlight of my week was undoubtedly the weekend visit to the West Coast National Park to go greet the brand new flowers of spring.

During my morning run I was greeted by a herd of Eland antelope.

Although enormous, they are wary of humans, especially ones running across the savannah in their general direction.

In stark contrast, the ostrich male and female I then ran into were quite vicious, running fairly aggressively to and fro across the the hiking path before me, huffing and puffing. They probably thought that I was a threat to their young.

These birds are not to be trifled with (see for example this section on wikipedia), but I had to push on, so we played the waiting and shuffling game for a few minutes before I could continue.

At least I knew for sure that I would have the privilege of taking an entirely different route home.

Sometimes one’s arrival on the west coast is perfectly timed, and other times not at all, just like life. This time, the flowers were out in full.

There were brilliant fields of yellow, orange and purple, up and down the mountain-sides.

As if the flowers were not sufficient, we were treated with stunning views of the Grecian-blue sea, and with sunsets like these:

Weekly Head Voices #153: pH < 7 dreams.

Looking back at the week from Monday September 3 to Sunday September 9, I present to you the following memories and after-effects.

Aphex Twin never left us

I serendipitously ran into T69 Collapse, the brand new track and video by Aphex Twin.

In the grand tradition of WHV intro art, I have embedded the video above.

Whether you’re a fan or not, I think it’s worth sitting through this one, preferably with the headphones and the video in full screen.

Pro-tip: This is not one of those tracks where the whole thing can be more or less predicted by viewing the first minute. There’s a thing at 1:55 and a second thing at 3:14.

I had to wonder whether the 3:14 was intentional. We’re not much into our biblical references over here as you might know, but you have to recall that Aphex Twin is the guy who, already back in 1999, hid his face in the spectrogram of a music track called:


\[\Delta M_i^{-1} = -\alpha \sum\limits_{n=1}^N D_i [n] \left[\sum\limits_{j \in C[i]} F_{ji} [n-1] + Fext_i [n^{-1}]\right]\]

That’s the actual name of the track (#2 on the famous Windowlicker EP), although most people (plebs!) refer  to it as just Function or Equation. I got sucked down that rabbit hole last night, but no-one on the internet seems to know the true meaning of the equation. Please ask RDJ if you ever run into him.

Anyways, I have embedded \(\Delta M_i^{-1} = -\alpha \sum\limits_{n=1}^N D_i [n] \left[\sum\limits_{j \in C[i]} F_{ji} [n-1] + Fext_i [n^{-1}]\right]\) below for your listening and viewing pleasure. Aphex Twin’s face appears at 5:30.

APFS encryption vs Samsung hardware encryption effective SSD speed

I ran benchmarks on my external Samsung T3 SSD comparing the speed of encrypted APFS to unencrypted APFS with Samsung’s hardware-based full disk encryption.

I used AmorphousDiskMark, BlackMagic Disk Speed Test and plain old iostat whilst copying 30GB of files to and from the disk.

There will probably soon be a detailed blog post over on vxlabs.com about this, but I’ll give you the skinny here:

  • It’s hard to get benchmarks right. BlackMagic gave wildly varying results depending on how many times I let it run its benchmark for example.
  • APFS’s software encryption looks like it causes a performance hit ranging from 5 to about 10%, with outliers in both directions.
  • Emacs can calculate over columns of data, for example from iostat’s standard out, using a simple M-x calc-grab-from-rectangle and M-x calc-vector-mean.

Brave browser and the Basic Attention Token (BAT): This could be big. Or not. It’s at least interesting.

Brave is a new(ish) browser also based on the Chrome engine.

I knew they were doing something with cryptocurrency, and paying or getting paid for the consumption of content and/or advertising, but I was, as you can see, quite vague on the details.

What I learned last week taking it for a quick spin is the following:

Brave out of the box is massively privacy-focused. Without installing any plugins, it blocks every single advertisement and tracking cookie known to humankind. It also automatically switches to secure SSL wherever that’s possible.

More interestingly, in Brave you can opt in to “Brave Payments“, which looks like it might soon be renamed to Brave Rewards, but don’t quote me on that.

One part of this system, is that you as a user contribute a set amount of BAT tokens (these are tokens on the ethereum chain) per month. At the end of each month, Brave will pay out your tokens to the websites that you visited, based on the amount of time you spend on each site.

In this way, publishers can get recompensed for their content in hard cash, without having to resort to advertising. (It does look like Brave also supports the model where advertisers can pay, in BAT tokens of course, for your eyeball time.)

Brave already has 4 million monthly active users (MAU).

If they’re able to grow this user base, and get a significant portion to participate in the payment system, this could be a game changer. Imagine being able to pay your favourite content creators in this seamless way, and being able to switch off ads in  the process!

RunAlyze where have you been all my life?

I publish my runs to Strava, as I have a bunch of friends there, and I like the idea of a social network where you have pay with a bucket of sweat before you’re allowed to say anything.

However, I was also relying on Strava to keep track of my shoe mileage. Recently, it started losing the miles I put on my Xero Genesis sandals (the most unforgiving shoes in the universe), and I was not able to coax the system into correctly tracking those terrible, terrible kilometres.

Because I use HealthFit to push my data to Strava, I took a look at some of its other endpoints and then, again extremely serendipitously, ran into:

RUNALYZE

It’s a site made by two running nerds (and it really shows) from Germany.

It keeps track of my shoes (the goal of this… exercise, bad pun, sorry) but the authors have also implemented a bunch of metrics from academic papers, some metrics of their own, and they show tables of your data sliced and diced in many different ways ON ALL FOUR WALLS of their website.

<Dr Evil voice>It’s breathtaking.</Dr Evil voice>

Anyways, if you’re a running nerd too, you should probably take a peek.

Fin

See you soon brothers and sisters. I am grateful for our time together.

 

Weekly Head Voices #152: A small but highly trained team of 11 year olds.

GOU#2, age 8, made this for the blog, super special.

This edition of the Weekly Head Voices covers the period from Monday August 6 to Sunday September 2.

Somewhere during this period, I experienced my 44th birthday.

More than once since then, my partner has had to endure my brand-new joke / half-truth that I’m now as clever as a team of four smart 11-year olds. (Hey, it took a team of four smart 11-year olds to come up with that joke!)

On the big (for me) day, I cooked for a super tiny group of friends. I experienced the ritual of preparing dinner for friends to be an honest one, and filled with human warmth. 12/10 – Would do again.

The next morning, ever-so-slightly in recovery mode, I was surprised by my little brother and my little sister (in-law). MY FAMILY HAD CONSPIRED AGAINST ME WITH SUCH SUCCESS!

Somewhere during this period, I also had the fantastic privilege of going back to my other home (the one with the cheese, and the clogs, and the social democracy FTW) and spending time with my family there.

So much celebration. So much warmth.

(There is also some bitter-sweetness, but that’s the price one has to pay for having roots in different hemispheres.)

I would have liked to say more, but this is one of those WHAMPSAMP* situations.

(As part of a deal I made at AfrikaBurn with a brother, I went fully vegetarian from the Friday to the Monday. It was actually really good!)

(* WHAMPSAMP = What Happens At Mysterious Place Stays At Mysterious Place.)

Music (nerd) and/or plain nerd section.

Somewhere during that period, Evil Charl went ahead and implemented that Spotify2AppleMusic chrome plugin that Responsible Charl mentioned in a previous edition of the WHV with the explicit purpose of getting it out of our system.

It’s out there now, and it’s free, so you might as well try it the next time that you need to convert any public (or private in your account) Spotify playlist to the corresponding Apple Music playlist.

I wrote this one in TypeScript where the type interfaces were a fantastic help in writing correct code for the parsing of the various APIs that this plugin has to inter-operate with.

Nerd section: BitBar with Lua, Hammerspoon, nerd motivations.

Also somewhere during that period, but in a slightly more surprising twist, I added lua support to the open-source macOS utility called bitbar, purely because I wanted to write a network bandwidth plugin that consumed less memory and was faster than the built in shell + awk versions.

That means I’m now also an official bitbar plugin author, which I find strangely satisfying.

Well, maybe it’s not so strange. I do have a thing with producing artifacts that other people (might) use in some way. There’s even more vagueness on this topic at the bottom of this post.

(BTW, the Python version of the same plugin consumed 8 times as much memory as the lua version, which itself consumed about 30% less memory than the shell+awk version.)

(BTW, if you’re on a Mac, and you know a little bit of lua, Hammerspoon is an amazing tool for automating your desktop via its lua bindings to the mac desktop API. In a few lines of code, I was able to throw out Spectacle, which itself is a great app, but Hammerspoon, the successor of Mjolnir, scores highly on the nerd street-cred scale and has MOAR FUNCTION.)

Au revoir

I am grateful that you are here reading this, thank you!

I have recently acquired a new side-project (Evil Charl: “HELL YEAH!” BRRRAAAAAAAAMMMM <— crashes straight through office wall to the great outdoors on big motorbike. Responsible Charl: “sigh.”) which is currently sucking up a great deal of my creative output.

We all know what usually happens to side-projects. I guess the high probability of failure may even add to their attractiveness.

In either case, high or low probability outcome, I’ll eventually spill the beans over here. Suffice to say that I do seem to have a thing for setting things up and then calling them universities, and in this case it’s even allowing me to produce reasonably sized packets of usefulness that might just magically add up to a valuable whole.

I am ever-so-slightly excited.

You’ll know if your iPhone is listening. Vice should consider toning down the sensationalism.

A Vice article titled Your Phone Is Listening and it’s Not Paranoia has been doing the rounds. In it, the author explains how they did an “experiment” demonstrating that topics they discussed verbally were later reflected in Facebook ads.

Whilst it’s prudent to be careful with modern technology around one’s privacy, Vice is being a tad sensationalist. This blog post, which will optimistically be read by three to four people, tries to fill some of the holes they left.

We already know that we can’t trust Facebook in any way, so we are dependent on the telephone’s operating system to take our privacy seriously: That’s usually Android or iOS.

Android does in theory enable background recording up to and including Android O, but starting from Android P it will disable this. Unfortunately, it shouldn’t be more than about 10 years before all phones are on Android P or later.

(I have previously indicated that I’m not the biggest fan of Android’s security story. I am happy to see that they are making such progress, but the tardiness or even worse refusal of OEMs in upgrading their devices diminishes most of that.)

In iOS on the other hand, there are at least three mechanisms that protect users against this background recording abuse:

  1. The app has to ask the user explicitly for microphone permission, which the user can easily revoke at any time (Settings | App’s name | Microphone; see screenshot below for an example).
  2. The developer has to indicate explicitly and statically in their app that they intend to use background audio. Apple’s review process is quite strict and will reject outright an app that does not have a legitimate reason to make use of this function.
  3. Even when an app has been able to convince Apple’s review process that it should be allowed to record audio in the background, there are two more privacy mechanisms in place:
    1. An app can only record in the background, if it started to record audio whilst on the foreground. When the recording stops, the app will be suspended.
    2. When any app is recording, the system will display a big red bar at the top of the iOS display, much like the blue bar which displays when a location-based app such as Google Maps or Waze is active in the background. This red bar can’t be hidden.

To see this in action (another “experiment” !!), download an app like Awesome Voice Recorder which advertises background recording, start a recording, and then switch anywhere else. The red bar looks like this (I’ve switched the app permissions screen in iOS settings, so you can also see where to disable the microphone permissions):

AVR is recording in the background, so iOS shows this red bar at the top. If you tap on the red bar, it will switch to the app which is recording. This is related to the blue bar for location, and the green bar for ongoing phone calls.

With the above measures in place, it would be fairly tricky for an iOS app to perform background recording without your knowledge.

For some extra peace of mind, you can disable the app’s (a totally random example being Facebook) microphone permissions. If the app ever really needs to record, iOS will have to ask your permission again.

P.S. In iOS, under Settings | Privacy | Microphone you can find a handy list of all apps that have successfully requested microphone permissions. From here, you can also easily remove any of these permissions.

Updates