Robert A. Caro and Lyndon Johnson's Story

This fascinating story of a life-long journey to explore the story of President Lyndon Johnson’s life was amazing read. I don’t have any real interest in American politics, but I do love great writers, and Robert A. Caro is definitely one of them.

He didn’t look up. After a while, I said tentatively, “Mr. Hathway.” I couldn’t get the “Alan” out. He motioned for me to sit down, and went on reading. Finally, he raised his head. “I didn’t know someone from Princeton could do digging like this,” he said. “From now on, you do investigative work.”

[Read More]

Bug-O Notation

This article by Dan Abramov about Bug-O Notation is a great one.

The Big-O describes how much an algorithm slows down as the inputs grow. The Bug-O describes how much an API slows you down as your codebase grows.

Without explicitly calling it out, he describes using simple Finite State Machine concepts that allow for explicit, identifiable state positions rather than nested calls and race conditions. It’s a great way of thinking about things - if you know where you are, you can explicitly reset the UI and rebuild it with much less effort.

[Read More]

M5Stack Flow flashing on Linux

This post has been updated - I found some errors which don’t brick devices, but cause issues with wifi. Don’t use old versions of esptool!

This is a pretty sparse example but it got me working on my Ubuntu machine.

  1. Install esptool from pip - don’t use the one from apt, as of this writing it’s v2.1, where pip has v2.6. The command is pip install esptool
  2. Download the M5Flow MacOS version from http://flow.m5stack.com/- M5Burner_MacOS.zip in my example.
  3. Grab the firmware directory from the zip file and move it to Documents (for example):
  • cd $(mktemp -d)
  • unzip ~/Downloads/M5Burner_MacOS.zip 'M5Burner_MacOS.app/Contents/Resources/firmware/M5Flow/*
  • mv M5Burner_MacOS.app/Contents/Resources/firmware/M5Flow/ ~/Documents
  1. This’ll give you the firmware folder with a bunch of version in it, eg M5Flow/v1.1.1-en
  2. cd ~/Documents/M5Flow/v1.1.1-en
  3. Plug the M5Stack in, and then run ./flash.sh
  4. This’ll reboot the device a few times until it’s in bootloader/flashing mode, then upload the firmware.
  5. Once it’s done, tap the power button to reboot into the new firmware.

Below is the output when it can’t identify the device and is going to do it wrong. The important part is the “unknown” in Chip is ESP32D0WDQ6 (revision (unknown 0xa)).

[Read More]

Citrix SSL Trust Error 61 on Linux

Trying to log into the Citrix Xenapp Storefront at work today, it looks like they’ve got a new certificate.

Citrix trust error 61

This is a pretty easy fix, search for the certificate name and download it, then put it in the right place.

For me, on my Debian machine, it’s /opt/Citrix/ICAClient/keystore/cacerts.

I didn’t have to do anything else, it just worked at that point - start the client again and back to work.

[Read More]

VMware Horizon/View on Ubuntu and Firefox

I’ve been running Linux on my main laptop for a while now, first Debian (Kali) and now Ubuntu 18.04.1. Since Firefox updated to their “Quantum” rebuild, I haven’t been able to use my work’s VMWare View environment, which is a bit annoying. There was an issue I reported here on the VMWare forums with handling the vmware-view:// URI for some reason.

Since a workmate had recently replaced his Mac with a Ubuntu laptop, I offered him lunch to try his hand at working it out. Thankfully, food is a good motivator for some ;)

[Read More]

Leadership Mode Activate

A great article from Allen Pike on newly becoming a leader and considering your ability to be “on the tools”

Okay wait, you may say. That’s cool, but I like Doing the Thing. I’m pretty good at it, and if I’m leading a team, will I still get to do it? Will I still get to perform the work that got me to where I am today?

The short answer is: Yes, you can! If it’s important to you to keep doing some “individual contributor” work as a manager, you can make that happen.

[Read More]

Opsec, Who Needs It?

This article from Sophos’ Naked Security shows some incredible failures of opsec “because it just kept getting used.”

Unfortunately for the US and its agents, it didn’t take long to find the moles. That’s due in large part to what one former official called an “elementary system” of internet-based communications – one that was never meant to stand up to sophisticated counterintelligence efforts such as those of China or Iran, let alone one that should have been entrusted with the extremely sensitive communications between the CIA and its sources.

[Read More]

Speeding Up BeautifulSoup With Large XML Files

A while back I built a small web app to parse one of our system configuration files because the application’s interface doesn’t have a search function (yeah, it’s that bad…). It worked OK, but over time slowed down as the XML file grew to 2.5MB and ~10k lines. The slow part was definitely BeautifulSoup’s parsing step, but it took a little poking to work out why. At this stage it was taking over 20 seconds to handle the file.

[Read More]

Iceland, Day 3

The first planned stop for the day was Seljalandsfoss. It was fun to scramble over the rocks and we only got a little wet.

Seljalandsfoss approach

It was annoying to get a shot of these steps without some soggy tourist ass in the way, but here’s me doing my best. They were surprisingly grippy, given they were worn smooth and not flat in the slightest.

seljalandsfoss steps

Standing behind the falls was truly spectacular. The amount of water coming over them even at this time of year when there’s no snow melt is incredible, and it was impossibly fresh tasting out of the air.

[Read More]