State of my toolchain 2019

What’s changed in the last year?

As you might be aware, I’ve been doing a writeup of my toolchain every year or so for the last couple of years (2016, 2018). There are a couple of reasons for this:

  • The type of work that I do has changed in that time, necessitating exploring different tools, and different equipment
  • And the technology that I work with continues to evolve – new models, new ways of working, and new mindsets – and our toolchains need to evolve to

This year, I’m studying a Master of Applied Cybernetics at the 3A Institute in Canberra – back to being a student; which I haven’t done for five years. Interestingly, my tools of choice 5 years ago have remained steady – Zotero for referencing, LibreOffice for writing essay type work, and Atom as my IDE of choice.

The key changes are;

  • A change in the main laptops I use
  • I’ve adopted Trello / Pomodone / RescueTime as a combination for personal productivity, with Passion Planner as a written diary / visual planner
  • My Fitbit Ionic died an inelegant death and has been replaced by the Mobvoi TicWatch Pro

Main laptop

My Asus N76 finally gave up the ghost and had unrecoverable hardware failure, including failure of the Bluray/DVD-rom drive that was built in – it’s not worth repairing and I think I’ll send it to disposal / recycling after taking 7 years’ worth of stickers off the front.

You were a Good Computer, N76. You were a Very Good Computer.

In my previous Toolchain tear-down, you would have read about my interest in System 76‘s Oryx Pro 3. One of my friends was selling hers (huge thanks, Pia!), and I immediately fell in love with this hard working, nerd-first beast of a laptop. I chose to flash it with Ubuntu 18.04 LTS rather than System 76’s POP OS, basically because I’m so familiar with Ubuntu and I didn’t want any additional learning curve. This machine continues to be my desk-based workhorse of choice. It’s a beautiful, solid, high-performance machine, but it’s not a good mobile choice.

Enter the ASUS Vivobook (my model is the X510UQ). I bought one of these devices for Mum, as she needed a new machine, and was so impressed with it – it has 16GB of RAM and a reasonable NVIDIA GPU (!) that I went back to the shop and got one for myself. The mobility is so-so – with a battery of about 4 hours if the screen is reasonably dim, but then I tend to run a lot of CPU- and battery-hungry apps. It’s lightweight, has HDMI out and 3 USB ports and the small bevel means plenty of screen space. I’ve set it up to dual boot Windows and Ubuntu, and if I’m honest it could use a much bigger SSD. That will be a holiday job.

Mobile phone

My Pixel died a couple of months ago after the battery life suddenly dropped to less and 30 minutes after the update to Android 9 – a problem that seems to be quite widespread. I’ve been on a Pixel 3 since; primarily because it’s what JB Hi-Fi in Geelong had in stock. The camera is amazing, and I’ve finally ditched my 3.5mm audio jack headphones for Bluetooth headphones.

Wearables

My Fitbit Ionic was a beautiful device until a release of Android in around November last year; after which I could no longer pair the Ionic with the Pixel phone. Getting support for this was incredibly problematic; it was difficult, time-consuming and very poor after-sales support from Fitbit. As a result, I ditched Fitbit and made the switch to WearOS, and have been on the Mobvoi TicWatch Pro ever since. The device is too chunky for most women, but well, I’m not most women, and it fits on my giant fat wrist just fine. The battery life isn’t great, but I’ve found that the heart rate monitor is the largest drain on battery.

One gotcha with the Mobvoi Ticwatch Pro is the charger. I bought two chargers with the device, and managed to “fry” – short circuit – them both by running higher than 1 Amp current through them (with a high current charger). This is well documented on Reddit. This was pretty poor poor IMHO for a high-end smartwatch.

WearOS has been an unexpectedly smooth experience; it doesn’t have the ecosystem or the integration that FitBit has, but that’s also a positive. I can choose the apps and watch faces that best suit me, from multiple different vendors. I’ve settled on the Venom watch face in neutral colours.

A smartwatch remains a key part of my toolchain – moreso than ever.

Quantified Self

I continue to use and be very happy with RescueTime and BeeMindr. I’ve been through a myriad of to-do tools in the past few years and seem to have settled on a combination of both Trello and Pomodone this year. Pomodone is beautiful; it’s an electron-based app that’s available for Linux (Woot!). Seriously considering upgrading to the paid version in a couple of months if it continues to prove its value.

For visual planning and diarising, I went to Passion Planner, driven by being a full time student again. I’ve been very happy with the model it uses – iterative goal setting and pattern-forming, and have already bought in my 2020 diary. As a visual person, it gives me plenty of space to visualise, to draw and to map out plans, goals and actions. I used the medium size this year, and found it marginally too small; so have upgraded to the large size for 2020.

Headphones

No change, the Plantronics Backbeat Pro bluetooth headphones are still fantastically awesome.

Streaming Media

No change, still Spotify premium.

Input devices

No change.

Voice Assistant

No change, still the awesome Mycroft.AI

Internet of Things and Home Automation

I’m on residential college this year at Burgmann College at ANU. Their Wifi network is a 5Ghz spectrum, PEAP/MSCHAPv2 authenticated beastie, and nothing much in the IoT space speaks to it, because IoT standards and security, what are they even? 🙁

It feels really weird to have to physically turn my light off now – my default behaviours have been changed by home automation.

Gaps in my toolchain and how they’ve been plugged

In the last edition of State of the Toolchain, these were my key bugbears:

  • Visual Git Editor – I’ve given up on this and learned to love the command line. In hindsight it’s been a great learning experience, and my git fluency has improved out of sight (hah!).
  • Better internet – ANU is on gig internet. *laughs in TCP/IP* I’m going to be in dire straights though if/when I have to go back to a copper-based NBN FttN service *cries in copper*.

Have I missed anything? What do you use?

linux.conf.au 2019 Christchurch – The Linux of Things

linux.conf.au 2019 this year went over the Tasman to New Zealand for the fourth time, to the Cantabrian university city of Christchurch. This was the first year that Christchurch had played host and I sincerely hope it’s not the last.

First, to the outstanding presentations.

NOTE: You can see all the presentations from linux.conf.au 2019 at this YouTube channel

Open Artificial Pancreas System (OpenAPS) by Dana Lewis

See the video of Dana’s presentation here

Dana Lewis lives with Type 1 diabetes, and her refusal to accept current standards of care with diabetes management led her to collaborate widely, developing OpenAPS. OpenAPS is a system that leverages existing medical devices, and adds a layer of monitoring using open hardware and open software solutions.

This presentation was outstanding on a number of levels.

As a self-experimenter, Dana joins the ranks of scientists the world over putting their own health on the line in the strive for progress. Her ability to collaborate with others from disparate backgrounds and varied skillsets to make something greater than the sum of its parts is a textbook case in the open source ethos; moreover the results that the OpenAPS achieved were remarkable; significant stabilization in blood sugars and better predictive analytics – providing better quality of life to those living with Type 1 diabetes.

Dana also touched on the Open Humans project, which is aiming to have people share their medical health data publicly so that collective analysis can occur – opening up this data from the vice-like grip of medical device manufacturers. Again, we’re seeing that data itself has incredible value – sometimes more so than the devices which monitor and capture the data itself.

Open Source Magnetic Resonance Imaging: From the community to the community by Ruben Pellicer Guridi

You can view the video of Ruben’s presentation here

Ruben Pellicer Guridi‘s talk centred on how the Open Source MRI community has founded to solve the problems of needing more MRI machines, particularly in low socio-economic areas and in developing countries. The project has attracted a community of health and allied health professionals, and has made available both open hardware and open software, with the first image from their Desktop MR software being acquired in December.

Although the project is in its infancy, the implications are immediately evident; providing better public healthcare, particularly for the most vulnerable in the world.

Apathy and Arsenic: A Victorian era lesson on fighting the surveillance state by Lilly Ryan

You can view the video of Lilly’s presentation here

Lilly Ryan’s entertaining and thought-provoking talk drew parallels between our current obsession with privacy-leaking apps and data platforms and the awareness campaign around the detrimental effects of arsenic in the 1800s. Her presentation was a clarion call to resist ‘peak indifference’ and increase privacy awareness and digital literacy.

Deep Learning, not Deep Creepy by Jack Moffitt

You can view the video of Jack’s presentation here

Jack Moffitt is a Principal Research Engineer with Mozilla, and in this presentation he opened by providing an overview of Deep Learning. He then dug a little bit deeper into the dangers of deep learning, specifically the biases that are inherent in current deep learning approaches, and some of the solutions that have been trialled to address them, such as making gender and noun pairs – such as “doctor” and “man” – equidistant – so that “doctor” is equally predictive for “man” and “woman”.

He then covered the key ML projects from Mozilla such as Deep Speech, Common Voice and Deep Proof.

This was a great corollary to the two talks I gave;

Computer Science Unplugged by Professor Tim Bell

You can view Tim’s presentation here

Part of the Open Education Miniconf, Tim‘s presentation covered how to teach computer science in a way that was fun, entertaining and accessible. The key problem that Computer Science Unplugged solves is that teachers are often afraid of CS concepts – and CS Unplugged makes teaching these concepts fun for both learners and teachers.

Go All In! By Bdale Garbee

You can view Bdale’s talk here

Bdale’s talk was a reinforcement of the power of open source collaboration, and the ideals that underpin it, with a call to “bet on” the power of the open source community.

Open source superhumans by Jon Oxer

You can view Jon’s talk here

Jon Oxer’s talk covered the power of open source hardware for assistive technologies, which are often inordinately expensive.

Other conversations

I had a great chat with Kate Stewart from the Linux Foundation and the work she’s doing in the programmatic audit of source code licensing space – her talk on grep-ability of licenses is worth watching – and we covered metrics for communities with CHAOSS, and the tokenisation of Git commits to understand who has committed which code, specifically for unwinding dependencies and copyright.

Christchurch as a location

Christchurch was a wonderful location for linux.conf.au – the climate was perfect – we had a storm or two but it wasn’t 45 C burnination like Perth. The airport was also much bigger than I had expected and the whole area is set up for hospitality and tourism. It won’t be the last time I head to CHC!

DDD Melbourne 2018

Several of my friends in the tech scene in Melbourne had been very positive about previous iterations of DDD Melbourne – a not-for-profit, grassroots-organised developer conference, that always sold out – so was curious to check it out and was grateful when my friend Cameron arranged tix.

My first impressions were positive – volunteers were very visible in pink capes, the code of conduct was front and centre, the name tag was DIY / free text and lanyards were colour coded for photographic consent. The schedule was voted on by delegates, meaning that the sessions most desired were scheduled in bigger rooms, which worked really well, and the schedule was also printed on the back of the lanyard – this was super helpful. Rooms were colour-coded and easy to find with big signage. The venue unfortunately was really too small for the number of delegates – the official tally was just over 600, and trying to fit this many people into the Town Hall, especially for lunch and morning tea, made it a little crowded.

The content itself was also much better than I expected at a grassroots event, however I did observe that at least three of the presentations I went to were by professional developer advocates – people who are employed by tech companies to professionally present about the company’s platform or product, and the content was very Microsoft-heavy – given they were a key sponsor I didn’t know if they automatically got speaking slots as part of their sponsorship or not – this wasn’t made clear at all. The language coverage itself was also very Microsoft heavy – lots of C#, Visual Studio, Azure – and very little Python or other open source languages like PHP.

NOTE: I currently contract in a similar role at Mycroft.AI

I did find it a little odd that the event was Microsoft-sponsored, but there wasn’t any GitHub presence at all. Interesting, there wasn’t any presence from GCP or AWS – likely because of the Microsoft sponsorship and their competing Azure product.

Overall, I found it a bit too pitched at the junior-dev end of the spectrum, and too Microsoft-heavy for my tastes – but a well run, safe event that has matured beyond its grassroots beginnings.

Keynote: A Day in the Life of a CEO – Dayle Stevens, CIO, AGL Energy

Dayle Stevens - DDD Melbourne 2018

Dayle provided a real-life insight into the daily routine of a CIO – highlight how important it is to keep up to date with mission critical information, and the constant tension between a heavily filled operational schedule of back to back meetings, and the need to be focused strategically and on longer time horizons – against a backdrop of constant context-switching.  Her experiences were authentic and realistic – and highlighted that in large organisations that the operating rhythm is set via the content of conversations –

“it’s all about talking with people”.

She is inspired by the ability to drive the direction of the company – and underscored that these days, every company is underpinned by technology, so having a technology role within a company allows you to have a stronger involvement in the overall organisational strategy. Dayle went on to explain that a key challenge for companies today is the complexity of technology – many companies are old – and some still have technology from 50 years ago – so CIOs are not just dealing with “two-speed” IT – they’re working on “three-speed” IT;

  • dealing with legacy technology
  • dealing with the digital transformation of today
  • and needing to embrace the emerging technology of tomorrow

The role of the CIO as a cross-organisational role, that touches every line of business and every function, and is integral to process improvement, was underscored using a business model canvas, covering;

  • Strategy
  • Structure
  • Systems
  • Style
  • Staff
  • Skills

all combined under the umbrella of shared values – and Dayle noted that her job wasn’t just to interface with senior leadership, but to “empower everyone in the organisation”.

In her advice for engaging with CIOs, she referred to DISC personality profiling, noting that most CIOs fall into the ‘Dominant’ quadrant – people who are action oriented and outcomes-driven, and so in dealing with CIOs you need to quickly get to the point. She did however make the comment that she feels other personality types – more analytical types – are less represented at the CIO level, and that this is itself a diversity issue.

Rian Finnegan – A Practical Introduction to Quantum Computing

Ryan Finnegan - An introduction to quantum computing

This was the standout presentation of the day, and a huge credit to Rian’s presentation ability, and skill in being able co clearly communicate complex concepts.

Rian provided a primer on Quantum Computing – starting with explaining how quantum computing simulates the the the quantum world – the world of molecules – and can be used to help solve wicked problems such as climate change and food production. Personally, quantum computing was always something that was firmly in the theoretical “maybe one day far off into the future” space – and to have such an accessible and easy to follow primer was wonderful.

Rian started with the classic Schrödinger’s cat example, highlighting how observing a system in quantum computing alters the quantum state, then provided an overview of complex numbers, Bra-Ket notation and moved on to quantum states, and then an overview of Bloch spheres, qubits, quantum gates, quantum entanglement and ended with a discussion on how to provide quantum supremacy – that is, how do we mathematically prove that quantum computers are superior to classic computers?

I cannot do Rian’s presentation justice in a summary – you really do need to see this talk, or get this talk to your own conference.

Ben Cull – Startup Life Lessons

Ben was the most engaging presenter of the day, and his delivery style was warm, humorous and entertaining.

He told the story of this journey founding several startups, and the lessons he’s learned from each of them, condensed around a sort of maturity model;

  • Minimum Viable Product
  • Market fit
  • Growth
  • Performance
  • Exit

He highlighted the need to focus on your own personal brand, and to have a clear understanding of what will drive you – particularly as founding a startup requires a lot of resilience.

“What is going to drive you at your lowest point?”

One aspect he advocated was that as a startup founder, you have to push yourself to be social – you have to have large networks – “go to the pub, you will get a job” –  opportunities come through social engagement. I’m not sure if I agree with this – firstly because it plays into the “bro culture” of hiring people like you – or who drink in the same pub as you – or who drink – an activity that you have in common – and because I think it’s the easy way out. Hiring the person you met in the pub at a meetup just screams due diligence.

One key takeaway from Ben’s presentation was ensuring that you are continually talking with your customers, and using their feedback to iterate on your product – it’s never a case of “build it and they will come” – because they won’t. Marketing and selling, getting product traction are incredibly important for a startup, and it can be helpful to find a partner or ambassador to help you with this – a recurring theme from startup advisors – you need the right mix of co-founders for a successful product.

Damien Brady – An Introduction to Machine Learning

Damien Brady - Introduction to Machine Learning

This was a great, accessible introduction to machine learning concepts

Damien is a Developer Advocate at Microsoft, and started by putting Machine Learning into context with artificial intelligence and deep learning, and underscored the need to start the machine intelligence life-cycle with a “sharp question” – a question that machine learning approaches can answer. He highlighted that one of the hardest parts of a machine learning development lifecycle is going to be getting your data in the right format – it’s often unstructured, inconsistent and requires a lot of cleaning.

He went on to provide an overview of how machine learning models work, and explained the concept of ‘overfit‘. He explained model functions, and how the decision boundary – what “is” and “isn’t” – is explained by a mathematical function. Here we got into some matrix-based calculus as he went on to explain the concept of a cluster function, an error function, and how we want to minimise this – using calculus minimisation techniques, such as gradient descent.

He went on to explain how model functions which are linear have specific limitations because they are linear – they are two-dimensional, but many applications of machine learning are multidimensional. To  make the model non-linear, an activation function – such as a sigmoid function – is applied.

The key takeaway here was that if you have a generalised typed of machine learning scenario you don’t need to start from scratch because there are several machine learning models and model training tools available in tools like TensorFlow.