Over the air (OTA) updates with the ESP32 are easy
Updating the firmware on an ESP32 over the air (OTA) sounds like a daunting task, but it’s actually quite straightforward. It’s particularly useful if you ha...
Updating the firmware on an ESP32 over the air (OTA) sounds like a daunting task, but it’s actually quite straightforward. It’s particularly useful if you ha...
At a glance I’m building a GPS tracker for a project, and I wanted to get familiar with this NEO module before I add it to several other components, so I d...
At a glance I bought an SD card reader module to use in another project, to track GPS data, but before adding it into that project, I wanted something simp...
I’ve been working with gRPC recently, in particular we had a bi-directional streaming API, whereby once a streaming connection is established, both the clien...
At a glance I bought a small TFT display from Temu to be used in a project, but I wanted to test it out first. The display is a 1.8” TFT with a resolution ...
A few years ago I had a shed built on my property, well perhaps a barn is a better description. Whilst I live in a good area, I’m always concious of security...
After working with Kafka for about a year, I decided to take the Confluent Certified Developer for Apache Kafka exam as a way to help fill in any gaps in the...
I may be late to the party, but I’ve just dusted off my ancient Pi 3 and Zero W, having not touched them for years, and have been pleasantly surprised at how...
During the depths of winter this year, I decided to set myself a challenge, my performance review was coming up in 1 month, could I achieve 3 Azure fundament...
I recently passed the SysOps associate exam so I’ve collected “the three” as it’s sometimes know (well, 4 if you include the cloud practitioner). Here’s a fe...
Having setup Google Analytics on my website and Android apps many moons ago, I was surprised how easy it was to setup on Jekyll, there was no messing around ...
There’s a very common gotcha with Spring annotations, it’s caught me out in the past, and is certainly one of the things that I check when reviewing pull req...
I’ve had this website going since being a university student in the mid 2000s, it started off as a static html web page that I maintained myself (hey, I was ...
In this post I’m going to show you how to setup a torrent box (transmission) on a raspberry pi, that sits on a VPN so your privacy is protected. If the VPN d...
You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different wa...
The weekend IoT warrior is back again!
There’ll be quite a lot going on in this post, I’ve had a crash course in Mongoose OS the past few weeks so this serves as a brain dump!
I’ve been playing around with AWS CloudFormation recently, which supports both JSON and YAML. I prefer to use YAML, but a lot of the examples I was looking a...
This year, my goal is to learn as much as I can about IoT and AWS, they go well together and a $10 ESP32 board and a few dollars on the AWS account is a grea...
Plugged my ancient Raspberry Pi in to my router (yeah the original, that doesn’t have on board wifi) and wanted to SSH into it, found this command to easily ...
I bought an Enphase solar powered system in early 2017, one of the major appeals of the Enphase brand was that is has developer APIs, so I could track my sys...
The problem
I’ve had some difficulties getting the BackWPup plugin to work, it seems that you can’t backup everything in one job as the script takes too long to run and ...
In the not too distant past, I was working on a BigData engagement using Apache Pig. I took CSV parsing for granted and expected it to just work, however if ...
I like Couchbase. One of the things that really appeals to me is the sync gateway. As a mobile developer I often find that the apps I’m developing are just i...
There are two ways for developing services using JAX-WS, service first, and contract first. Service first means you would typically write the implementation ...
Some time back I wrote an article describing the roosearch system I developed using grails. This is the second part, the android client, please checkout the ...
By default, the hostname on a raspberry pi installation will be “raspberrypi”, which is great if you just have the one pi.
Sometime in late 2012 I was discussing dissertation project ideas with my girlfriend, as she was coming up to her final year of a computing bachelors. The us...
Problem 4:
Problem 3 :
A little while back I wrote a post about creating a python script to control a brickpi robot, now that I actually have the brickpi components, motors and cab...
Updating Java on a Mac is easy, it’s just a case of installing a new JDK and recreating the symbolic link that is used to point to the current JDK.
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5...
As a developer, testing is very important. Some developers have the mindset of “Meh, I write code, testing is a QAs job”, which is pretty poor. It’s much bet...
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all t...
Node has been on my todo list of things to investigate for a little while now, whilst I don’t have much background in javascript, after constantly hearing ab...
Continuing on from my previous post, I’ve created an android client that I can use to send commands to my python server.
Inspired by the android controlled lego robots I saw at DroidCon UK this year, and with difficulty finding a use for my raspberry pi, I’ve decided to have a ...
By default, when you find documents on mongo it returns the entire document, similar to what SELECT * FROM TABLE; would do in a relational world.
I was recently contacted by the marketing team from Packt Publishing and asked if I could write a review for one of their new ebooks, so here it is!
Having recently revived an android project I haven’t opened in close to 6 months, I was left scratching my head as to why I couldn’t run any of my integratio...
I’ve been dabbling in a little Grails recently, and I found it quite frustrating having to re-enter some sample data everytime I restarted my application, in...
I spent much of last weekend experimenting with the grails framework, so I wanted to deploy what I had in the cloud. Theres a big tutorial on the IntelliJ ID...
If you’re finding that your domain objects are not being displayed in a readable manner, chances are its because they haven’t been told to. This is often the...
After procrastinating for many years (4 to be precise), I finally sat and passed the SCJP exam. The exam itself wasn’t particularly difficult, but theres a l...
Hi folks,
Looping constructs are very useful in any programming language, however they can be come particularly complex when you have a variety of nested loops and you...
Another bite-size SCJP blog post, this time we’ll tackle interfaces.
Polymorphism basically means that one thing can take many forms, and this is particularly useful for programmers, as it allows us to treat similar types of o...
Inheritance is a practice of one thing extending another. So you can more specific subclasses of a class. Inheritance is available in most programming langua...
Encapsulation is a fantastic OOP concept of being able to shield class state via the use of accessor methods.
There are times when developing, when you need to do similar behaviour but with differing input arguments, for example you may have a method that prints some...
If statements are great, but sometimes they are just not very practical when you have to test for more than a handful of conditions, have a look at this very...
Maven is a fantastic build tool, and a great addition to anyone developing on the android platform, however one of the first hurdles that people often stumbl...
Last week I found something quite frustrating with the tar command on Mac OS X, it likes to put hidden files into archives when you tar them up, it doesn’t g...
I’d always been under the impression that the IT scene in East Anglia was a little quiet, and more so the further you got away from London, but I was quite p...
Decided on a long name for your application when you created it, but are now fed up of seeing it display like this on the home screen?
Messing around with your subversion directories and fed up of the .svn hidden folders laying around? If you try and checkin some directories that contain a ....
Frustrated, that I recently couldn’t find my maven settings.xml file because the Mac OS X Finder doesn’t show hidden files by default, I found that the follo...
If you’re an android developer, chances are you’ve used an Async task more than once. As your apps develop, grow, and become more complex, theres a high chan...
If you’re like me, and have a fair few hobby projects on the go at any one time, you’re may want to take advantage of some of the free cloud services that ar...
Sending a tweet from your iOS application could not be any easier, Apple and Twitter really were looking out for their developers.
If you’ve found yourself using Tesseract on the iOS platform, and you’re scratching your head as to why the OCR results are so terribly incorrect, you might ...
I’ve spent the past few months working on an android application that involves an element of OCR capability, its been quite a painful journey so this is my a...
I’ve been developing an app recently that relies on being able to navigate and browse for images on the phone, which is all well and good when testing on a d...
I came across a brilliant little feature of the linux sed command today that I wasn’t aware of, and thought it was well worth posting up about.
I’ve recently put together a few proof of concept applications, and since they’re “rough and ready” applications, a lot of the functionality is actually mock...
After launching my first application onto the market back in March 2011, and amassing somewhere in the region of 15,000 downloads since it’s launch, I was ea...
Adding a splash screen to your application is a quick and easy way to make it look more well rounded, complete, and more professional, it can also serve as a...
Sometimes in android you have to deal with pixels, which can often be awkward, such as view.setPadding(int, int, int, int). Obviously this is not ideal as pi...
I’m not the type of person that gets bored easily, I’ve always got many things to keep me amused, mostly side projects at home. I’m a firm believer, that if ...
As part of an application I’m currently developing, I need to be able to interogate incoming SMS messages. Since I’ll be developing against the emulator init...
This is something that has had me tearing my hair out for a few days now, I was pretty much border-line braveheart-ing my screen….
The string concatenation operator is a bit like a hedgehog, it looks cute and sweet, but try to grab hold of it quickly and you’ll soon know about it…
The instanceof operator is a great way for checking if a reference variable is of a given type, in other words, does it pass the IS-A inheritance test. Ask y...
There are various compound assignment operators, however it is only necessary to know the 4 basic compound assignment operators for the exam, being as follow...
Statics are a rather strange beast, they belong to no instance of a class, they have no fixed abode, other than their class..
Local variables are variables that are declared locally, funny that eh? This one should be nice and easy, lets have a look at a quick example :
We’ve already touched upon various modifiers, for classes (both access and non-access), but there are also some more modifiers for members, as detailed here.
In addition to class access modifiers, classes can also be marked with non-access modifiers. These modifiers imply rules on a class, but are not necessarily ...
Class access modifiers define who can see the class, you use it on a daily basis, have a look at the following :
As of Java 5, methods are now able to accept from 0 to many arguments. Sounds confusing, but you could actually be using it already without knowing, how abou...
Coupling and cohesion are two terms that often get mixed up, however they are actually really simple concepts, and the bonus is, they don’t just apply to Jav...
If you’re like me, you’ll certainly like to hear feedback on your applications out there on the market, and what better method than via a direct email link.
Hola a todos! Its been a little while since I last posted, mostly because I’ve been busy getting my first app in a state thats good enough to be published, i...
So you’ve setup some ads using AdMob or AdWhirl for your android application, and you’re having a hard time getting the ad to appear at the bottom of your sc...
Hello readers, time for another little android post of mine. I’ve been working hard recently on some voice recognition and TTS work, so figured I’d post up s...
Howdy folks, another nice and easy android guide here. If you’re like me you’re thinking about putting your first application up on the market. It might be a...
I’ve always been a Subversion man myself, but today I took Vaders’ advice and joined the darkside. As part of a tutorial I wrote on here I wanted to host som...
Howdy folks! Time for some more android fun. I’ve been meaning to explore some of the SQLite functionality for some time, as I require it in my Cerca de mí a...
I’ve been searching for a simple tutorial on using voice recognition in Android but haven’t had much luck. The Google official documentation provide an examp...
The conditional operator, or ternary operator as it is otherwise known is a great way for assigning variables based on boolean tests. For example you may hav...
I’m seeing countless questions, literally on a daily basis on StackOverflow regarding using maps on Android. To be honest I’ve never come across these proble...
I recently need to check if a particular application is online and listening on a particular set of ports. I figured that the best way to do this was to peri...
One of the great features of any programming language is the ability to repeat blocks of code, sometimes indefinately, sometimes until a certain condition is...
The for loop is great, but is it really that nice when you want to iterate over an array or collection? You’d have to do something like the following :
As I’ve covered in a previous post regarding the while loop, the do-while, often refered to as the do loop is very similar. Lets have a look at the psuedo co...
Just another bitesize SCJP post here, looking at the while loop in Java.
The for loop is an extremely flexible and powerful way of iterating over a code block for a set number of times. Generally speaking, this type of loop is gre...
OK, so you have several buttons on your view, all linked into the same activity. Sounds simple enough, you probably have something that looks like the follow...
This is easily one of the most confusing concepts to a newbie, but to be honest its relatively simple. The most confusing part is that both start with the le...
One of the new features of Java 5 is the static import, its quite simple in nature. You have probably done something like the following many times before :
Another one of my short and sweet posts in my SCJP study guide section. This one is quite straightforward, so we’ll keep it quick, since I know you’d much ra...
So you’ve got a nicely formatted XML object, with all your indentation setup so that it is easy to read. However there may come a time when you need that lov...
I’ve listed this post under Android, but to be honest this could apply to both J2SE and J2EE, its not really specific to Android but it was part of a require...
Lets face it, the eclipse ADT plugin is great for getting an android application up and running quickly, but if you want an easier way to get libraries, and ...
OK, so you’ve been developing your “hello world” application in Eclipse for a little while, and now want to actually test it out on a device.
I’ve been searching for a viable and easy solution for integrating my wordpress posts into facebook and twitter for some time now, and have finally found an ...
Identifiers are what we use to identify parts of our code, whether this is a class, method or a variable. There are some ground rules on the names we can giv...
I’ve got some requirements where I need to call a REST web service from an Android device, so I figured I’d get back to basics, and try to call a REST servic...
After recently sitting a course and exam for ITIL v3 Foundation, I thought it would be a good idea to reflect on some of the topics covered while they are fr...
One of the more useful features of Android is the ability to obtain data from elements of Android itself, such as the phone book. Your application may requir...
As part of my MeCercana application, I needed to refresh data in some form. My application has 3 tabs, one of the tabs displays contacts from the contacts bo...
If your developing an Android application, chances are you will have multiple activities that perform various tasks. One of my first questions when I was inv...
If your developing applications on Android, and are looking at using the Maps API, chances are you are going to want to plot items on the map, and in order t...
The operators for incrementing and decrementing in Java has been irritating me for some time now, just when I think I understand whats going on, I try a mock...
I’ve recently decided to cancel my hosting package with 1and1, as I don’t really have much use for it any more what with all the freebies Google is dishing o...
This theme supports link posts, made famous by John Gruber. To use, just add link: http://url-you-want-linked to the post’s YAML front matter and you’re done.
Only one thing is impossible for God: To find any sense in any copyright law on the planet. Mark Twain
A notice displays information that explains nearby content. Often used to call attention to a particular detail.
Abbott: Strange as it may seem, they give ball players nowadays very peculiar names.
All children, except one, grow up. They soon know that they will grow up, and the way Wendy knew was this. One day when she was two years old she was playing...
This post has been updated and should show a modified date if used in a layout.
So, you’ve written a nice J2EE application and have uploaded it onto the GAE only to be upset that your nice variables are displaying as ${contact.firstName}...
So, you have a Java web application that you would like to host somewhere for free, no worries, Google to the rescue. What is Google App Engine? Well to quot...
After being introduced to Struts1, Struts2 and SpringMVC at a very early stage in my development career, I was very happy to work on a project with Stripes. ...
Slackware, which I like to refer to as “proper linux”, theres no messing around with fancy wizards, this is hardcore linux; and a good cure for insomnia (sec...
So, I’ve decided to have a go at linux from scratch, which should satisfy a good headache for the next year or so, possibly longer.