Please tell us a little about yourself. I live in Newcastle, UK, working as an optometrist working in the refractive surgery sector. My day job involves managing patients who have had cataract or laser eye surgery. I was very studious and introverted in my youth, always having my head in books. I was pretty good at maths, science and chess - in the 1980's computing as a subject was still fairly new and I was more interested in biology at the time. I remember working in a spectacle glazing factory over the summer one year and shortly after decided to do a degree in Optometry. After working in private practice for a decade I needed a new challenge. That's when I turned to refractive surgery and have not looked back! When I'm not working, training or educating, I am currently completing a part-time degree in Computing and IT. Programming is my hobby and my “me” time!
I am very happily married with four children. My wife is a fitness instructor, so I have no excuse to keep myself in shape! Three of my children have finished education and my youngest is still in primary school.
How did you get started with computers? My first computer was the ZX Spectrum 48K. I remember playing Manic Miner on it when I was 6 years old! As we couldn't afford games I remember typing a few BASIC programmes I found in magazines, but didn't really progress from there. I still have my Spectrum though sadly the keyboard has succumbed to the passage of time and no longer works. I think this is where my passion for computing came from though as I remember wanting to learn to program - at university I was the only non-computing student who dared to enter the Unix lab (though I admit it was mainly to play MUDs!)
After much procrastination around 2009, I started dabbling with Linux, learning Bash scripting in the process. I wanted to create a Linux distribution for the visually impaired and got involved with the Vinux project which modified a vanilla Ubuntu distribution to make it more accessible for visually impaired users, which is still going today. By then, I had learned a smattering of Python, but really wanted to get to grips with C and C++. As an exercise, I decided to start by porting Passage to the GCW Zero hand-held. It was certainly and exercise in frustration! After much wasted time, I managed to get it to compile and still remember the thrill of seeing the game run on my system - I was hooked! (https://boards.dingoonity.org/gcw-releases/passage/)
Since then, I think I've ported around 30 emulators to handheld consoles, enjoying the challenges each project brings and of course learning along the way. I particularly enjoy the challenge of optimising code so it can run smoothly on slower systems. I spend way too much time improving performance by a few percent or obsessing over tiny features that nobody will notice except me, but I don't like inefficient code or using more power than is necessary. I also enjoy working on the UI so that controls are intuitive and make sense.
What attracted you to the ODROID platform? I was looking for an easy and fun introductory electronics project to make with my son Alexander over the summer holidays. It had to be easy to construct ideally without the need to solder components. After looking at a multitude of Raspberry Pi projects, I found out about the ODROID-GO. He really enjoyed constructing the kit, and his favourite games were Pac-man and Frogger. I was amazed at how much processing power was available in the ESP32 and how comfortable the controls felt. The only problem was that there was no Spectrum emulator.
How do you use your ODROIDs? Our ODROID-GO spends most of its time either in my work bag (for long train rides) or plugged into my computer when we are programming on it. We really enjoy tweaking settings and seeing how it affects the performance of the emulators. I recently made a very low power build that would run games for 19 hours.
Which ODROID is your favourite and why? I only have my ODROID-GO at the moment. I am attracted to efficient low power portable devices and love the ESP32, it has loads of power but uses so little energy! I have really enjoyed reading the Programming Guide and learning about the rich feature set available to developers.
What innovations would you like to see in future Hardkernel products? As a portable device, the ODROID-GO ideally should have a headphone socket (I'm looking at you Apple). Of course the ESP32 is capable of Bluetooth, so perhaps wireless headphones will be a possibility in future. Also currently sound volume is reduced by reducing the bit depth of sound samples, producing poor quality sound at low volume. It would be great to have a potentiometer with perhaps a scroll wheel to control volume. Similarly screen brightness control could perhaps be controlled autonomously by an LDR.
What hobbies and interests do you have apart from computers? Apart from a spot of retro gaming, I'm not really a gamer. When not spending time with my work and family I enjoy running, cycling, singing in a choir and juggling.
What advice do you have for someone wanting to learn more about programming? The reason I got into programming was because I needed to understand how computers work and I soon realised the myriad possibilities that opened up. As a beginner, I wish someone had given me "How to Think Like a Computer Scientist". It's a great introduction to computer programming. When learning, it is important to get small victories; Scratch is a great way to teach the fundamentals and retain interest, particularly with younger children. Start with fun, small projects with simple challenges to solve. Street Fighter 2 with cats? Yup, we did that with Scratch!
Vinux project website http://www.vinux.org.uk/about.html My first compiled port https://boards.dingoonity.org/gcw-releases/passage/ My Github and BitBucket sites https://github.com/DavidKnight247, https://bitbucket.org/DavidKnight247