The Weekly Head Voices number 151 are trying to tell you something about the week from Monday July 30 to Sunday August 5.
Prepare yourself for a slightly stranger than usual post. I have: two short programming ideas, a bad review of an outdoor security passive infrared sensor, using Jupyter Notebook for (GPU-accelerated) numerical computation when you only have a browser, computing device input latency, and an utterly unexpected bit of backyard philosophy from the gut.
Two random micro side-project ideas
I would like to start with two hobby / maker ideas that popped up in my head this week. There’s a high probability I will not get around to them, but perhaps they help you to spawn a new set of hopefully more worthwhile ideas.
Chrome or Firefox plugin to convert Spotify playlists to Apple Music using the new MusicKit JS API
I seem to see many more Spotify playlists shared than Apple Music playlists. For example, at this moment I’m listening to the official Lowlands 2018 playlist.
This is not ideal, as I am an Apple Music subscriber, but not a Spotify subscriber.
It turns out there are paid apps to convert Spotify playlists to Apple music playlists.
However, it also turns out that Apple has a new thing (still in beta) called MusicKit JS.
I briefly dissected the Spotify Playlist website.
It would be straight-forward for a Chrome or Firefox plugin (WebExtension, so same code. I’ve done this before) to go through this playlist, search for each track using the MusicKit JS API, and then recreate the playlist in the user’s Apple Music account.
This solution would be much cleaner and simpler than the current app-based ones.
An Emacs package for displaying your RescueTime productivity metric right on the mode line
I scanned the RescueTime API documentation.
I was just about to start working on it, when I came up with the bright idea to name the package ironic.el, and so I stopped.
On that topic: The struggle for practically sustainable focus is real, and it never seems to stop.
The Head Voices REVIEW™ the Optex HX-80 outdoor passive infrared security detector: AVOID AT ALL COSTS
From the Optex HX-80 outdoor passive infrared security detector’s web-page we have the following:
The most important element in reliable outdoor detector is accuracy to distinguish a human from a small animal. … In addition, the HX-80N’s dual PIR’s and 20 detection zones utilize the ‘AND’ detection pattern technology … This technology helps to prevent false alarms caused by a pet or small animal.
Well, I had two of these installed by trained professionals.
(There are of course interesting discussions to be had about the necessity of devices such as the HX-80, or its mythical actually working counterpart, down here.)
I can confirm that they excel at one fairly specific function: Triggering the alarm, and thus automatically calling my security company, at the most ungodly hours of the night, whenever a certain small grey cat, looking exceptionally unlike a human, decides to take a stroll outside of our house.
Oh yes, the cat is not even ours, but belongs to our neighbour.
The installation and subsequent repeated fine-tuning of our Optex HX-80 have only had the result of me having to punch in an additional key-sequence every evening to bypass the two ‘AND’-detection-pattern-technology-equipped HX-80 devices.
You will understand that the only reasonable Head Voices REVIEW™ of the Optex HX-80 is:
- 100% NON-FUNCTIONING THROUGH INFERIOR DESIGN.
- AVOID AT ALL COSTS.
- DON’T TRUST THE MARKETING.
- THE TRUTH IS OUT THERE.
- JUST DON’T.
Some more odd but perhaps useful bits
Google Colaboratory for Numerical Computation when all you have is a browser.
I’m late to the party (again), but Google Colab is really great if you need a Jupyter Notebook with some GPU power behind it.
It comes with tensorflow pre-installed (being Google and all), but getting the GPU-accelerated PyTorch 0.4.1 (latest version of the most amazing deep learning tool at the time of writing) going was a cinch.
To repeat this experiment, create new notebook with File | New Python 3 Notebook, then change Edit | Notebook Settings | Hardware accelerator to GPU.
You can then install the correct version of PyTorch by executing
!pip install http://download.pytorch.org/whl/cu80/torch-0.4.1-cp36-cp36m-linux_x86_64.whl
in a notebook cell.
What a time to be alive!
P.S. Remember, under normal (non-Colab) circumstances we keep our Notebooks as empty as possible. Prefer as much as possible of your code in Python modules. The notebooks are only there to act as glue, for visualization and sometimes for long-running jobs.
Dan Luu’s computer and mobile device input latency research
In it, Dan Luu measured the input latency of various devices, using the 240fps camera on his iPhone SE, or with the 1000 fps Sony RX100 V camera if the device was too fast.
For the computers in his study, input latency was defined as the time between keypress and character appearing on the display. For the mobile devices, it was defined as the time between finger movement and display scrolling starting.
If you have any interest in this sort of technology and also in-depth technology journalism, the full article is definitely worth your time.
I wanted to mention two interesting points:
- The 1983 Apple 2e, with a CPU running at 1MHz, had significantly lower input latency (30ms between button press and character display) than any modern multi-GHz system. The comparison is of course not completely fair, but it’s still nice to see.
- Amongst the mobile devices, Apple dominates the fast / low latency end of the spectrum. Their devices, in terms of input lag, are ALL faster than all of the Android devices tested, including for example the 2017 Google Pixel 2XL.
- Yes, this is me eating my hat, and some more of that yummy humble pie.
- Android 9, code-name Pie, has just been (will soon be… err) released and has an amazing list of features. I still hope they manage they also manage to catch up with regards to some of the basics like input latency.
Yet another reason to eat more fibre
There are an estimated 100 trillion (10 to the power of 14; 100 with 12 zeroes) bacterial cells housed in each of our bodies.
Each adult human consists of on average only 37 trillion human cells, meaning there are on average almost 3 alien cells for every 1 of your own cells.
I find this a beautiful realisation: All aspects of our lives depend on this multitude of foreign visitors.
They help us digest our food, and, as it has been turning out more recently, they play a crucial role in our mood, our behaviour and our thinking.
We (or at least the clever people) now talk about the microbiome-gut-brain axis, further underlining the importance that our bacterial visitors play in our lives.
Taking a few more steps back, thinking about the relationship between the 37 trillion human cells, and the 100 trillion visiting cells, I ask the question:
Who am I really? Who exactly is thinking this?
I, or perhaps rather “we”, find this truly fascinating.
What I was initially planning to mention before going off on this tangent, was a recent paper accepted for publication in the Journal of Physiology, with the title Short-Chain Fatty Acids: Microbial Metabolites That Alleviate Stress-induced Brain-Gut Axis Alterations (click for PDF fulltext).
The Physiological Society press release is more digestibly (I had to) titled “Eat high fibre foods to reduce effects of stress on gut and behaviour“.
In short, fibre stimulates gut bacteria to produce short-chain fatty acids (SCFA), which, besides being the main source of nutrition for cells in this region of the body, also decrease levels of stress and anxiety, at the very least in mice.
Thank you for sticking around friends!
I hope that you found something of value, even if not directly from this post.
I’ll see you next time! Until then, remember to eat your vegetables.