, posted: 6-Jan-2015 18:03

For a few months now, I’ve thought about blogging what it’s like to be a cafe owner.  As Kiwis, we spend a lot of time in cafes, but don’t really know what goes on behind the scenes.

I’m hoping to post regularly to this new blog about what’s involved in running a cafe.  I’ll still keep blogging here, but will keep the cafe related stuff to my new blog.

Click to read my first post - Why do I pay more for soy? is coming to Auckland

, posted: 15-Dec-2014 23:43

logo For the first time ever, is being held in Auckland, from the 12th-16th of January 2015. is an international conference run by the community, for the community. It is one of the foremost technical Open Source conferences anywhere and is renowned as the most prestigious in the Southern Hemisphere. Early indications are that over 600 delegates and 80 speakers will be attending.

In addition to their regular 3-day programme the first 2 days are dedicated to a series of technology-specific mini conferences covering topics as diverse as cloud computing, containers, continuous integration, Open Source hardware, systems administration, documentation, astronomy and multimedia.

If you or your business wants to learn more about, or is affected by, emerging technologies then attending 2015 needs to be at the top of your to do list.

Registrations are now open (only 28 days left!) and the full conference programme can be found on their website.

Buying new vs second hand vehicles

, posted: 6-Nov-2014 17:50

The most common misconception we hear from second-hand vehicle buyers before they work with us is:

“New cars cost too much - I can’t afford a new car.”

Smart car buyers consider three criteria as a minimum:

  1. Fitness for purpose: that is, the vehicle class and specification that most closely matches the intended use of the vehicle so you only pay for what you need.
  2. Safety features: The presence of critical safety technologies like electronic stability control, anti-lock braking systems, cruise control and audible reversing sensors that reduce your risk of collision and injury.
  3. Lifecycle costs: All of the cost inputs of the vehicle over the expected term of ownership, including the purchase price, all running costs, the residual value of the vehicle at the end of the term and those tax deductible expenses, being depreciation and finance interest payments. If we compare the lifecycle costs of two of New Zealand’s most commonly purchased vehicles - new, or at five years old - it is only around $100 more per month to drive a new vehicle.

image1(click image to view full info PDF)

So why is buying a new vehicle more affordable than you think?

One of the biggest contributors to the lifecycle costs of a vehicle is the resale value you achieve at time of sale. As economic confidence increases, so does demand for new and used vehicles, which means residual values for quality New Zealand-new vehicles are strong. Naturally, the higher resale value you realise, the lower your true depreciation costs will be. Selling your vehicle in the summer months when vehicle demand is typically higher, according to vehicle disposals experts Turners Auctions, can improve your position even further.

Vehicle purchase discounts also have a large part to play in lifecycle costs. When buying used vehicles you’ll typically pay market value, but when buying new vehicles as a GST registered business, you qualify for discounted rates. These discounts will be higher based on the number of vehicles in your business or the ‘prestige’ of your brand. To achieve higher purchase discounts, and therefore lower lifecycle costs in relation to used vehicles, consider aggregating your vehicle purchases with industry peers.

Vehicle running costs are higher in used vehicles for a number of reasons. New rules introduced from July 1 2014 mean that new vehicles won’t require a WOF inspection until their third registration anniversary, while annual WOF inspections are required for vehicles three years and older. Manufacturers are investing heavily in R&D to improve fuel-efficiency and new vehicles are beginning to utilise highly pressurised fuel injection technology, reduced cc ratings with increased power through turbo chargers and super chargers, electronic valve control for fuel and exhaust, engine start/stop technology to reduce idle time, and electronic tyre pressure sensing devices (which measure wheel rotation speeds to detect flat tyres). All of these features are contributing to consistent improvements in fuel economy ratings over time and lower fuel costs as a result. Vehicles have a higher risk of failure with increasing kilometres and while extended warranties and scheduled servicing will mitigate the majority of this risk, owners of aging vehicles are at greater risk of vehicle downtime and unexpected costs. Everyone has an anecdotal example of how their ‘best friend’s cousin’ purchased a five year old vehicle, ran it for ten years and spent nothing on it, but when we analyse data across a large sample of vehicles, several hundred per model, the average running costs per annum are substantially higher for ageing vehicles – particularly when they are out of warranty.

(click image to view full info PDF)

Buying a new vehicle over a used model is the smartest choice in most cases from both a risk management and value perspective. Buying new vehicles:

  • Reduces lifecycle costs.
  • Reduces R&M cost risk.
  • Reduces your carbon footprint.
  • Reduces WOF administration costs.
  • Allows you to take advantage of safety innovations like electronic stability control, cruise control and antilock braking systems that lower your risk of collision and serious injury.
  • Assures you progressively higher standard specs which now generally include Bluetooth, navigation and improved driver interface, ergonomics and drag co-efficiency.
  • Gives your customers a better perception of your company brand.
  • Results in higher employee satisfaction.

If you’re interested to discuss this further, please contact us.


Disclaimer: I have a vested interest in Optifleet.

Geekzone timelapse

, posted: 15-Sep-2014 00:40

We hosted the latest Geekzone IRL at Tuihana Cafe, and I setup a webcam to catch the action in a timelapse:

Since I organised this all very last minute, the setup was very basic but I think it worked really well:
Video was taken from 5pm until 9:30pm, with one photo taken every 5 seconds.  Total number of photos was around 3,200.

We also had a photographer at the event, his photos are here.


Fixing strange characters printing on Epson receipt printers

, posted: 21-Aug-2014 22:56

Back in 2012, in my never-ending quest to geek up Tuihana Cafe, I threw together a Windows based app that takes SMS messages and prints them out on our kitchen receipt printer (read about it here).  It allows our customers to make an order on their way to the cafe, without having to stand around and wait for the coffee to be made.

All was right in the world… or so I thought.

Late last year I decided to learn ESC/POS and print directly to the receipt printer, rather than continue cheating by using the Epson .Net OPOS drivers.  This introduced a very annoying bug:

For some reason, the receipt printer or my program was adding in random characters (such as the speech marks before Printed, and the bracket before Sender) and dropping characters (like the O from the word One).  My staff were clever enough to decipher these messages, however this wasn’t completely bulletproof – an order came through for 1x flat white, but the system printed out 21x flat white.  It was then I new that I had to fix this once and for all.

For the last month I’ve been working on a fix, and it wasn’t until today that I stumbled across a blog post with the solution.

BinaryWriter has a method .Write() which takes a string as the input parameter.  Instead of just appending this to the internal buffer, it also (not helpfully) prepends the length of the string in the first byte.

From the blog post:

Now that I think about it, this makes perfect sense: strings in the .NET framework are typically not thought of as being null-terminated, they’ve got a length, and in order for theBinaryReader‘s Read(string) method to work, it’ll need to be able to know the length of the string to determine how many bytes to read.

In my case, I was writing data to an Epson TM-T88III receipt printer, and given the structure of the commands that the printer expects, it doesn’t need or want the length of the string in this way. Because I didn’t read the MSDN documentation closely, I was left scratching my head as to why weird characters were showing up or characters were being omitted in my output.

The solution? Replace .write(“Test”) with .write(Encoding.ASCII.GetBytes(“Test”))

The new receipts all fixed up and looking purdy:

Hopefully this helps someone out from weeks of frustration and programmer rage.

nate's profile


I'm Nate Dunn, and I work for 3Bit, own Tuihana Cafe, run the forums and a moderator here at Geekzone.

Use Autotask and Xero? Sync data between them with My Accounting Toolbox.


The views and opinions represented on this blog are personal and belong solely to the blogger and do not represent in anyway those of 3Bit Solutions Limited or any other company.

Latest posts is coming to Auc...
Buying new vs second hand vehi...
Geekzone timelapse...
Fixing strange characters prin...
Review: Livescribe 3 Smartpen...
I’m presenting at Autota...
Does anybody care about public...
The Great Monteith’s Mea...
The longest tennis court in th...