My programming story... so far

Early days When I was 12, I was given a Raspberry Pi. For the first couple of days, it was really fun. After I had browsed the web for a while and played a bit of Minecraft, it sat in it's box for a few months. I really had no idea what to do with it. That was until I discovered that I could build a website with it. Wow, that was cool. I installed Apache and spent some time finding out where I needed to put the code. I started off getting to grips with HTML in nano (using inline styling, of course) until I realised I could write CSS in separate files and load them in. That was continue...

Git directory server vulnerability

Do you use git to manage your site and or server files? In my opinion, this is undoubtably a good way to run things but you need to make sure it's secure. Just try going to yoursite.com/.git/config. If you haven't secured your server properly, you will see the configuration file for your git repository. Not good, huh? Not only could an attacker reveal lots of information about your code base including where the upstream server is, I believe they could possibly get the entire source. This would allow the attacker to see exactly how the site works and be able to exploit it very easily. Now, the good news. It's an easy fix! Here are the two continue...

Cyber Centurion competition at Bletchley Park

Today, the guys at SubjectRefresh and I competed in the Cyber Centurion Security Challenge at The National Museum of Computing at Bletchley Park. The day started with an introduction by the organisers and a brief explanation of how the day was going to work. Then it was off to the marquee to get started securing the machines we were provided with. There were two Windows VMs (server 2008 and 8.1) and one Ubuntu 14.04 image. The team delegated four people to work on the machines in the first part of the day and swapped out two at lunch time. By the end, we'd managed to get 66% of the vulnerabilities on Ubuntu and about 80% on each of continue...

Post-Birthday Hack: Arduino GPS

For my birthday, Ben James gave me some geeky goodies including a uBlox NEO-6M GPS module. As soon as I had a moment, I rigged it up to my Arduino and uploaded this sketch from ArduinoTronics. The pin connection layout is this: GPS RX -> Arduino digital 4 (D4) GPS TX -> Arduino digital 3 (D3) GPS GND -> Arduino GND GPS VCC -> Arduino 5V It took a while to get a fix (find a satellite) but after it had, I received this over the serial port!: EDIT 15/04/15: Just took the module and Arduino out for a drive in the car and then plotted all the points (about 500 of them) on continue...

The Pi-Powered Hamster Hunter Part 4: Reflections

Reflections At the end of our project our initial objectives had now been added to and matured through the development process. Objectives at the start The objective of this project was to build an all terrain vehicle which could be used for various applications and controlled from anywhere in the world. We wanted it to be operational in all circumstances, which meant being able to operate in low light/pitch dark conditions and being able to traverse all terrain. It was essential for the user to be able to see from the ReCoRVVA’s point of view in real time. We also wanted the ReCoRVVA to be able to sense when it was about to crash and automatically stop to continue...

The Pi-Powered Hamster Hunter Part 3: Putting it all together

Assembling the components The first prototypes we put together used an Arduino, and it was with these first prototypes that we had many problems with the motors. The first thing we tried was to run each motor from one of the Arduino’s digital pins. They were 5v motors, and the digital pins on the Arduino supplied 5v each, so we assumed the motors would run. We wrote then uploaded a simple drive script to the Arduino. However, the motors didn’t turn. We debugged the code and found no errors, we checked the pins were supplying voltage and yet the motors still didn’t turn. Eventually, we realised that there was a limit on the amount of current able continue...

The Pi-Powered Hamster Hunter Part 2: Tech development

Technical development Hardware Core controller This was to be the brains of the ReCoRVVA. Its task was to control all the peripherals on the ReCoRVVA, to manage all communications with the client and, by extension, the user. It needed to be capable of handling multiple tasks at once and be able to use multiple electrical inputs/outputs to control the physical aspects of the ReCoRVVA. It also needed to be customisable, so that we could quickly and easily change things, e.g. software or, if we had a accident, interchangeable controllers. It needed to be able to support the data inflows/outflows shown in figures 4 and 5. Arduino The first option we explored was to use an Arduino (a continue...

The Pi-Powered Hamster Hunter Part 1: The Beginning

Last year, I and two of my friends, Ben James and Angus Ledesma, decided to create a Raspberry Pi powered robot for a Silver CREST project. I posted an overview of the project last July and have finally got around to converting the CREST report to a blog-friendly write-up! Background The ReCoRVVA will help and assist people in many different ways; as the name suggests, it is designed to be used for many purposes. At its simplest it is a vehicle designed to be controlled remotely by an operator with the aid of a live video stream from the robot. It could be used as a security patrol vehicle for surveillance, or to regularly check on an elderly relative remotely. continue...

RAM Card Fun

My ageing hand-me-down MacBook (late 2007 - 1GB RAM) has been serving me well - it ended it's OS X life in the Autumn of last year and has been running Linux Mint 17 ever since - we call it the MintBook. Linux has been a saviour. Making the shift was easy enough (having used GNU/Linux before - mainly in Raspberry Pis and web servers), the ease of software development has been greatly improved (bar Xcode of course!) and it has basically resurrected an almost dead laptop. However, 1GB of RAM really isn't good enough to run as a multi-purpose development/recreational machine. I could put Ubuntu on a Pi 2 model B and have practically the same results. continue...

Heating Control

For my ongoing heating project I needed to be able to communicate with different nodes around the house. Wirelessly. To accomplish this objective, I decided to use some NRF24LO1+ modules. These are great because they have an onboard chip so that you don't have to encode/decode the data yourself. The range on them is pretty good - 'proper' testing this w/e! - I got two without antennae and one with one - this is going to be the hub on a RPi so the range needed to be further (apparently someone got the to work over a distance of 1km!). First, the Raspberry Pi side. I hooked up the RF module and wrote this script: https://github.com/ continue...