for func() sake { }

Yet another gopher...

Owning My Own Powerpal Data

If you haven’t heard of Powerpal, it’s a little Bluetooth Low-Energy (BLE) device available in Australia that attaches to your residential electricity meter to collect and display realtime and historic energy usage data via a mobile app. This alone is pretty awesome, but if you’re in the state of Victoria, you can also get one for free under the Victorian Government Energy Upgrades scheme. … and if you claim yours via my referral link, I get $5: https://www.

Reversing WiFi QuickConfig for an IP Cam

The Camera I recently came across a really good deal on a WiFi Video Doorbell being cleared out by AusPost for AU$29 a pop (specifically, the Q-See QDB03-AU). The unit comes packaged with a pair of 18650 Lithium-ion batteries that are claimed to provide up to 6 months standby and has a list of features that include 2-way talk, PIR motion sensing and local SD card recording (card not included).

DIY GSX-R Servo Eliminator

Recently the SET valve servo motor - known in the service manual as the Exhaust control valve actuator (EXCVA) - on my L2 (2012) Suzuki GSX-R750 failed. The initial symptom was a clicking sound during the startup cycle while the ECU tested the valve. The clicking is the result of one of the nylon gears inside the actuator becoming stripped, which essentially means that it’s toast! There are 3 main options available to deal with this issue:

DIY Smart Garage Door with HomeKit - Part 2

The Hardware Build This post will cover the design and build of my hardware solution for the DIY Smart Garage Door Controller, from its humble beginnings on the breadboard (pictured below) to final prototype. The initial breadboard circuit was something I threw together to work on the software. It was based on a single momentary switch (button) simulating the door sensor, with an LED simulating the relay. Not a whole lot changed in the design, other than to add a second door sensor.

DIY Smart Garage Door with HomeKit - Part 1

While looking for parts of my house that I want to bring into the Smart Home/IOT era, I started searching for DIY “smart” devices to get started on a low budget. One blog post titled $10 DIY Wifi Smart Button / Switch caught my attention with the ESP8266 Development Board - this is a very cheap and convenient board that can be powered via USB, flashed using Arduino IDE (along with several other methods) and has built-in WiFi.

When Go Slice Bounds Get Hazy

Earlier this week, I thought I stumbled across a bug in the go standard library. Earlier this week, I was wrong. While browsing the net/http sources, I spotted what appears to be an index out of range in calls to http.Request.BasicAuth(). Decoding func parseBasicAuth(): If the value string has prefix “Basic “ base64 decode the remainder of the string find the index of the first colon (:) in the decoded result return username and password as the substrings before and after the colon, respectively But wait - what if there’s nothing after the colon?

How To Trust Extra CA Certs In Your Go App

Edit: Thanks to /u/epiris for pointing out that I actually posted a server-side code example, not client side. I think I got distracted while finishing off the post… completely missing the point! Whoops. Code sample is fixed now. At work this week, I was tasked with updating a couple of older internal go applications currently serving HTTP to serve HTTPS instead. Generally, go makes this a pretty simple task and there are plenty of existing guides on the web that cover the process, so I won’t bore you with it here.

Blog Version Control

Following on from my last post… The Hugo Quickstart Guide gives instructions on setting up version control and publishing a site on GitHub Pages - but using the method of pushing to a gh-pages branch. This is the typical path for a “project site”, but a user site (with no repository in the URL) will publish to Pages only from the master branch. So adding the hugo files to version control required me to either start another project - or just be sensible about it and use a non-master branch of the user project (which must be named <username>.

package blog

Every blog needs a first post, and what better subject to record than the birth of this blog. Last weekend, I was reading a particular reddit post and noticed the OPs username forfunc. I’ve also been watching (and loving!) @francesc’s JustForFunc channel. I like the wordplay and thought myself very clever indeed when I came up with “for func sake”… It just so happened that the username was available in the places I want to use it; and I’ve been less than thrilled with my previous username choice(s)… so I spent an hour or so creating new accounts across the web.