Blog

Most of my blog posts dating back to 2002. Some written here, some written elsewhere and aggregated here.
About Ship at Docker

About Ship at Docker

04/05/2017
I have been a Docker fan since almost day 1, working for a company that packaged its project to work in containers early-on, writing many blog posts on usage and related tooling, attending meetups here in Berlin and contributing to two code sprints as a mentor. Late last year I gave a talk at LinuxCon in Berlin to see Solomon Hykes (Founder) sat in the front row, a nerve-racking delight.
A Developers Guide to Better Presentations — Part 1, Stage Craft

A Developers Guide to Better Presentations — Part 1, Stage Craft

29/04/2017
I am not the best public speaker or presenter, but I give lots and enjoy giving them. I also attend many meetups and conferences and so have built a good repertoire of what works and what doesn’t. I have been planning this post for a while, but after a particularly poor presentation last week from a major technical project disappointed me, I felt motivated to get off my backside and write it. Part 1 (of an undecided number) covers stagecraft and vocal techniques.
Smarter App Notifications With OpenBack

Smarter App Notifications With OpenBack

28/04/2017
Notifications: you probably love them or hate them. I like them when they are useful to me, and this is something that the OpenBack SDK attempts to solve. It offers a framework for you to make your in-app notifications more than annoying notices, but tailoring them to users contexts and allowing them to do more with notifications.
An Introduction to Speech Synthesis Markup Language

An Introduction to Speech Synthesis Markup Language

21/04/2017
Speech synthesis is a not a new technology — computers have been attempting to speak to us for decades — but with the recent rise of voice-activated appliances, speech synthesis is undergoing a renaissance. At more than one meetup I heard Speech Synthesis Markup Language (SSML) mentioned for modeling computerized speech and thought it warranted further investigation.
Docker for Windows, Linux, and Mac

Docker for Windows, Linux, and Mac

18/04/2017
Released earlier in 2017, Docker’s new native applications for Windows and Mac replaced the older methods for running Docker on Windows and Mac and created a better experience for developers using those platforms.
Real-Time OCR for Mobile Apps With RTR SDK

Real-Time OCR for Mobile Apps With RTR SDK

17/04/2017
I remember the first time I tried the image recognition technology in the Google translate app, snapping a poster to instantly translate what it said into a language I understood. It was far from perfect, but it was cool, and it showed the potential of what more traditional optical character recognition could be used for.
JVM-Free Kotlin With Kotlin/Native

JVM-Free Kotlin With Kotlin/Native

11/04/2017
I would never call myself a real programmer, but I have a healthy obsession with studying new languages that emerge, especially those that arrive with little baggage and attempt to solve current problems and new use cases. This brought about my explorations in recent years of Swift and Kotlin, both initially aimed to fix issues with the languages traditionally used in their worlds, but rapidly became used in more widespread contexts, and generally, have enthusiastic communities.
Enterprising Israel

Enterprising Israel

04/04/2017
Much has been written already about Israel’s incredibly successful and mature tech startup scene, but I was lucky enough to be asked to speak at Codemotion in Israel, so thought I would line up interviews with local entrepreneurs, catch some sun, and enjoy the food that Tel Aviv is famous for (and I wasn’t disappointed on that front). I barely scratched the surface of what the city (and country) has to offer, but I hope you will find those I spoke to interesting and useful.
Tech Salary Trends in 2017

Tech Salary Trends in 2017

04/04/2017
Stack Overflow's 2017 developer survey crossed my desk at the same time as a report on tech wage trends from Dice.com, who I’d never heard of before, but the report echoed many of my own observations, so I read further. It’s only from US data, but again, I have seen similar trends in other countries, so thought I’d share insights with you, in case, you know, you’re looking for a change, or are inquisitive about your worth.
The Internet of Industrial Things

The Internet of Industrial Things

21/03/2017
When most people think about the Internet of Things (IoT), it likely conjures ideas of activity-monitoring wearables like Fitbit or home devices for home security (iSmart), lighting (Hue), and coffee makers (Nespresso Prodigio). It’s a mixed opinion on the success of consumer IoT devices, but IoT is making its biggest impact in the industrial realm, where it’s used to reconcile problems that have plagued workplaces for centuries. Industry can use sensor technology to increase efficiency, improve...
Berlin-the blockchain capital of the world?

Berlin-the blockchain capital of the world?

19/03/2017
With the UK exiting the European Union, Germany is jostling to become the new FinTech capital of the EU. Frankfurt has the history and established finance industry, but Berlin is more affordable, is larger, and has a more diverse population, looking at challenges from different perspectives. With at least six regular blockchain and cryptocurrency related meetups, founding members of Ethereum and Monax present in the city, and countless cryptocurrency related projects, analysts are beginning to c...
Docker Secrets Management

Docker Secrets Management

14/03/2017
I’m sure we’ve all been there. That moment when you realize that important and sensitive access details have leaked online into a public space and potentially rendered your services to unrequited access. With the ever-growing amount of services we depend on for our development stack, the number of sensitive details to remember and track has also increased. To cope with this problem, tools have emerged in the field of “secrets management.” In this post, I am going to look at Docker Secrets, the n...
Teaching Children to Code

Teaching Children to Code

09/03/2017
Two experiences in my life have shaped the way I try to talk about technology. One was over ten years ago when I taught a room full of retirees, long-term unemployed, and recent immigrants basic computer skills. I realized that I could throw many of the subjects I had studied out of the window and that the best way to teach people was to give them a reason to learn. Fast forward to last year (and a subject I wrote previously on SitePoint) when I taught programming to a group of recent Syrian ref...
Mobile World Congress 2017

Mobile World Congress 2017

02/03/2017
2016 was quite a year for technology and its impact on the world. Subconsciously or not, nestled amongst the booths of generic Chinese handsets and app marketing companies were many projects and people at MWC that sought to accomplish something more meaningful. Here are some of the themes and concepts I feel will shape 2017 and 2018.
Preventing SQL injections in Python (and other vulnerabilities)

Preventing SQL injections in Python (and other vulnerabilities)

28/02/2017
Python is a wonderful language, ideal for beginners, and easy to scale up from starter projects to complex applications for data processing and serving dynamic web pages. As you increase complexity in your applications, it can be easy to inadvertently introduce potential problems and vulnerabilities. In this article, I will highlight the easiest to miss that can cause the biggest problems, how to avoid them and tools and services that help you save time doing so.
Automating Screenshots in Documentation

Automating Screenshots in Documentation

31/01/2017
Drawing my short series to a close (we’ve talked about testing code examples in documentation and automating spelling and grammar checks in documentation), let’s cover one of the hardest elements of documentation to create and keep up to publishDate: screenshots.
Java-Free Android

Java-Free Android

17/01/2017
Android finds itself in interesting times. Google has begun creating it’s own ‘premium’ versions of the operating system (OS), Cyanogen have ceased development, and many feel that Android will change name or shape in the near future.
Build Native Apps in the Browser with Configure.IT

Build Native Apps in the Browser with Configure.IT

17/01/2017
Creating a modern and feature-rich mobile app has never been a simple task, but is now more complex than ever. There are a plethora of platforms, programming languages and strategies to consider, and knowing where to start and what path to follow involves understanding and appreciating a lot of interconnected components.
Build and program with Sam labs Curious Cars

Build and program with Sam labs Curious Cars

05/01/2017
Last year at IFA I came across a small stall lurking within a gathering of startups. The booth was full of blinking small blocks, motors and switches that aimed to help children learn to code. Fresh from my experiences and reflections teaching Syrian refugees to code, [I have been pondering the best ways to do so ever since](https://www.sitepoint.com/teaching-programming-whats-the-best-language-for-beginners/). In a series of posts that will cover a variety of projects, and a broader summary post, I intend to look at a variety of different techniques for teaching coding, especially...
2016 in review

2016 in review

29/12/2016
2016 has been an eventful year in many, many ways. I don't want to dwell on big global topics in this post, but review what I got up to. ## Writing {% assign 2016posts = site.posts | where:"date","2016" %} In 2016, I wrote approximately {{ 2016posts.size }} articles, blog posts and tutorials. The most popular on my Medium account was '[A documentation crash course](https://hackernoon.com/a-documentation-crash-course-45006a85c15c#.790b6ze0w)', closely followed by '[Making Atom even more awesome](https://hackernoon.com/making-atom-even-more-awesome-my-setup-e7a89969a876#.s2yhf3joo)' and '[Tech your privilege at the door](https://hackernoon.com/tech-your-privilege-at-the-door-5d8da0c41c6b#.eemgzrjyd)' (which was only published a week ago)....
Testing Code Examples in Documentation

Testing Code Examples in Documentation

21/12/2016
In my last post, I covered how to improve the written component of your documentation with automated spell-checking and suggestions for better writing. In this post, I’ll cover the code component of good documentation; trying an example and finding it doesn’t work is a sure-fire way to annoy a reader.