Family

On Friendship

Ned and Jane, high school friends whom I have known for over 30 years now…

Ned and Jane, high school friends whom I have known for over 30 years now…

I was lucky enough to have spent the Australia Day long weekend just gone hanging out and playing music with old friends. Strange to think that aside from 2 people who I only met in 2017 (you know who you are Kendra and Fiona), that most of my closest friends who I would consider in my ‘inner circle’, I have known for more than three decades. Some of them, over four decades!

I guess that is the nature of my personality. I find it hard to actually make friends in the first place, but once I do make friends whom I connect with, I would gladly take a bullet for them and will be friends with them until the end (or they do something to shatter my trust in them). Those in the ‘inner circle’ are as dear to me as family.

I met friends on the weekend that I hadn’t spoken to in over 10 years, but we still took up where we left off as if it was just last week. And that made me think how lapse I have been over the past many years keeping up contact with my old friends. I have just been too caught up with work and other things going on in my life, that the nurturing of old friendships has been left to wallow in the weeds.

To that end, in 2019 I am intending to put a lot more effort into (a) tightening the bonds of friendship with old friends and (b) casting out the line to create some new friendships with like minded people. As an introvert (INFP), I usually find it difficult to reach out and form new friendships, but I am determined to overcome that and end this year with at least one more person in my ‘inner circle’.

This means:

  • Keeping up with our Sunday picnic session on the clifftops at Nightcliff Jetty (as we did all last year)

  • Attending more functions and music festivals with friends

  • Inviting people around to our house for dinner more often

  • Calling friends out of the blue to go out for a coffee or a beer at a pub

I’ll update this post in 12 months to see how I’ve gone with this initiative.

It was so nice to get a handwritten dinner invite last week!

It was so nice to get a handwritten dinner invite last week!

Note that this means less social media. In the past, I have used Facebook etc. as a bit of a crutch and a passive way to keep up with what my friends are doing, but this year, I am actually going to eschew most social media for communication and get back to some old fashioned talking to people and writing letters.

The Folly of 'Unimportant Data'

CR-BG-Computer-Backup-System-Hero-08-16.jpeg

Having been involved in computers for nearly 4 decades now, I have a healthy view towards data backups. Both my Macs are backed up to a local Time Machine drive on my network, PLUS to Amazon Glacier. I also have important development & client files copied to Google Drive and DropBox on a regular basis. Onsite and offsite backup.

I backup nearly all my critical data that I work with daily. However, I also have a ton of data which (I thought) I consider unimportant. This comprises of:

  • Old videos that I have edited and uploaded to Youtube etc.

  • Copies of photos from my wife’s phone

  • Images for all software installers I’ve used while setting up my PCs

  • Interesting videos or lessons that I have downloaded from Youtube over the years

  • Collections of interesting guitar tabs I’ve found online, etc.

Basically, stuff that I thought I could find again later if I really needed them.

Then, this week, the 3TB external drive that I had all this stuff on finally gave up the ghost and died. “No biggie” I thought to myself. “It was nice to have, but I’ll just get a new drive and start accumulating this unimportant stuff again from scratch”.

But then, in that same week:

  • My wife asked about a photo from her old phone that she couldn’t find any longer, and was it in my backup?

  • My son called to ask if I had a raw copy of a video I had edited for him some years ago as he needed another section (that I had edited out in the final render) for an audition he had to do.

  • I found out I had to reinstall an audio plugin for one of my old recordings, and the original publisher no longer had the older version of the plugin (which I needed to match my audio project) available for download on their site any longer.

How coincidental was that? All of a sudden, I needed this “unimportant” data that I thought I could throw away.

So this week, I’ve sent the external drive away to a data recovery service to see what they can do about bringing it back to life. The offer a free inspection to examine the extent of the failure, and quoted my AUD$300 to recover the data if they can. I figure $300 is worth it to me to just have all that data at my fingertips again, and if I do get it back, I will immediately be setting up a Glacier backup for all of it.

Building a 'Nosedive' rating app in a couple of hours

This month, the family and I have been watching the NetFlix series "Black Mirror", catching up older seasons and devouring Season 3.  One of our favourite episodes was 'Nosedive', and so I don't give out spoiler alerts here, I won't go into the plot line, but nevertheless, we were all fascinated by the 'Rating' app that everyone used on the show.

So much so, that my wife, the kids and I all started 'air gesturing' each other the 'swipe and flick' routine as if we were using the app to rate each other throughout the day.

This made me think - how about if we actually had a dummy app that we could use?  I noticed that NetFlix had created a demo site on the internet to promote the show, so I (ahem) "borrowed" some of the assets like the background, star graphics and the rating sounds, and mocked up a small dummy 'Nosedive' app in a couple of hours that I had spare.

Now I can really annoy the kids.  "Didn't do your homework?, ONE star for you!" (dew dew dew dew dew).  Wife brings me a nice hot cup of tea? "Five stars, my dear..." (dinga ding ding ding DING!).

I never intended to make money from this little side project - I just installed it on our phones using my developer account.  I am releasing the source code on GitHub in case any others want to take things further.

Please note that this is nothing like the actual app - there is no facial recognition (although I have been playing around with the Microsoft Face API to see if I can do something there).  There is not aggregate rating for people, and there is no central database that things are stored in (though I have thought about using Firebase to store rating data in the cloud).  It is purely a gimmick - although there is no reason that anyone can't take this starting code and build all that on.  Have at it! :)

Building the App

The app itself is built using the Ionic framework, which I have been using for over a year now, and really love.  It facilitates creating a hybrid app quickly and easily that can be used on iOS and Android devices.  No need for Swift or Objective-C, it is all done in javascript and HTML/CSS.

Nothing too tricky about this app - it is a simple one page application, which is the rating page.  As I mentioned all the assets, including the background swirling pink video, the rating star graphics and the notification sounds, were all downloaded from the NetFlix promotional site I mentioned above.  That is 90% of the work right there.

The rest was just implementing the swipe gestures to set the star level, and then the flick gesture to 'send' the rating and play the sounds.

Setting the ratings was one area that stumped me for a while.  Initially, I was playing around with the $ionicGesture event handler, and trying to trap left and right swipes including the distance swiped and the swipe velocity to try and calculate the star rating to give.  That all turned out to be extremely tricky and difficult, so in the end, I ended up using a typical programmers shortcut - in that I cheated! :)

I ended up placing an HTML range slider control on the screen, just under the stars.  I then made this slider element invisible, and used CSS to reverse offset the slider to that it lay just on top of the stars themselves.

This way, if anyone put their finger on the stars and moved left or right, it effectively moved the hidden slider left and right.  The upside is very accurate tracking of where the user lifted their finger, as the rating value would correspond with the star where they lifted their finger.

The downside is that on some devices, the slider will not move unless the user starts their finger on the current star (e.g. if you wanted to go from 2 stars to 5 stars, you would have to place your finger on the second start, then slide to the fifth star.  If you just tapped the fifth star or started on the third star to slide up, the slider would not move).  Most users I tested this on (well, my wife and kids) seemed to naturally start at the current star anyway, so I figured I could get away with this.  At least it worked with minimal (read: NO) coding required.

The last thing so do was to implement the Cordova Native Audio plugin to generate the sounds.  This was pretty trivial to do, and was only a few lines of code.  I had to capture the swipe up gesture to trigger the 'send' sound at first, then wait one second, then play the 'rating' sound depending on the rating (one to five) that the user had chosen. Check the code for details.

Yes, yes, yes, the pedants among you might say well the sending phone only plays the 'send' sound and the rating sound is played on the receiver's phone, but for our app, we aren't really 'sending' the rating anywhere, and are just using it as a too to tease or annoy others, so the rating playing on our own phone after a delay is enough to let the other person know exactly what we think of them (as long as they are in hearing range in a relatively quiet environment).

Anyhow, I will let others feel free to build upon the code base and see what they come up with.  I won't be releasing this app on the App Stores or anything, as I don't want to push things too far and be hit with a copyright violation from NetFlix!  Have fun.

 

20 years of Blaze...

The 1st of September marks a major milestone in my life.  It will mean that I have been running my company, Blaze Business Software Pty Ltd for 20 years now.  Two decades.  It seems almost unbelievable to me at times.

Back in September 1996, I had only been married for a month, I was about to turn 30, and I decided to start a software consultancy business out of my bedroom.  Thus began the rollercoaster, including getting an office in the Cullen Bay area of Darwin, growing the team to at one stage around 16 people, and then now coming full circle to just my wife and I working from a home office again in a 'lifestyle' business.

So many changes in the IT industry at that time.  When I started Blaze, the internet was just hitting mainstream here in Australia, and everything was still dial up.  We were one of the first offices to get an ISDN line into our office, and I clearly remember setting up a small Windows 98 server in the back which was running some sort of DOS mail daemon so that we could have individual email addresses for every employee.  Something that was so rare back then.

We were also one of the first companies locally to upgrade to Microsoft Exchange and implement ActiveSync.  I clearly remember proudly showing off how I could read and reply to emails on my Palm Pilot in real time to all my clients.  Nowadays that is just an expected thing, but back then I was pleased that we were pushing the envelope and being cutting edge.

Lots of nice memories, such as being the finalist in the Telstra Small Business Awards up here in 1998 I think.  Lots of other small awards and achievements.  But there were also some really tough times, and many days where I didn't know whether I wanted to close the doors forever and go raise sheep in the Italian mountains.

But through all that, I still wake up every day and look forward to doing the work I do.  I am always grateful to have met so many wonderful people through my business.  From clients (many of whom I still work with 20+ years later), to employees who have become close friends, to colleagues and competitors and everyone who has walked through the doors or called in the past 2 decades.  Thank You.

Proving that it is never too late to be a 'startup', this year I have embarked on a whole new reboot of the business, as we become a SaaS company providing subscription based business software.  Given that I will be turning 50 this year, I don't know if I will have the energy to keep on with the consulting and support role for many more years, and I am looking forward to setting up a passive income source from a modern, web based subscription platform.

Just another step in our long and interesting journey.  Hope to see you all along the way...