Rick Hurst Full-Stack Developer in Bristol, UK

Menu

Blog

Introducing Freerange Freelance!

Those of you who have followed a link to campervanthings.com might be confused to see a different domain name and site title “Freerange Freelance”. Let me explain!

The first version of this blog was called “Rick on the Road”, which started as a travel blog years ago, when my wife and I started looking at the idea of spending the summer touring france, with our (then) young kid while I carried on working as a freelance web developer, attempting to keep an old plastic macbook with a two-hour max battery life charged from an inadequate portable solar panel, and attempting to keep in touch with clients and upload code over sketchy campsite wifi.

After that trip, the blog lost momentum until we bought a camper van and I enthusiastically relaunched it as “camper van things”, and wrote almost exclusively about camper van things.

It then lost momentum again, particularly after we sold the camper. This year having bought another van I thought I would give it a refresh and start writing again, and in doing so, I decided that the name of the blog didn’t really reflect what this blog is about.

So what is this blog about then?

I’ve worked (mostly) as a freelance web developer for over ten years now and the goal has always been flexible working. I’m lucky enough to have built a career that revolves around the internet and remote-working tools, and so most of the time I only need a charged laptop and a decent internet connection (wifi or 3G/4G)  to do my job. Moreover, I prefer flexible work hours, and not having to commute to an office “day job”. All of those aspirations can be difficult to achieve sometimes, which I will talk about on this blog.

But you’re still going on about camper vans?

Yep! As far as i’m concerned, a camper van makes the perfect mobile office, and is the best way to combine travel, adventure and freelance work. Plus I just love camper vans, so they will still feature prominently, particularly the one we own.

Freerange Freelance

Naming a blog is almost as difficult as naming a band. My wife is also freelance (TV/Video production/Copywriting) and we threw around a few ideas before coming up with this, then impulsively reserving the domain name and instagram handle. Twitter username character limit wasn’t long enough, so I left that one as @campervanthings for now. I think Freerange Freelance better covers the scope of this blog and any associated social media accounts.

Web development stuff

I’ll refrain from talking too much about web development on this blog, as I have another blog for that – if you’re interested in code, take a look at rickhurst.co.uk.

Using a cheap Quechua tarp fresh as a campervan awning

Using Quechua Tarp Fresh as campervan awning

We are using a Quechua tarp fresh as an awning/canopy. We already had the tarp, which we used for tent camping to provide some outdoor rain cover or shade. We bought a couple of spare poles to give us more height and options to set it up as standalone canopy.

Our T4 had an awning “C” rail fitted in the roof gutter, and a quick bit of research showed that you can attach a “kador” strip to these. I ordered a length of kador strip off ebay and wondered if I should sew it to the tarp, but in the end I decided to put some brass eyelets in the strip then attach to the awning using toggles and some elastic shock cord.

C channel in the roof gutter of a VW t4, fitted with kador strip

The advantage of this over sewing is that if we need to move the van, the toggles can be removed and the kador strip pulled out, without needing to unpeg the awning. Plus I can’t sew!

Awning attached to kador strip using toggles and eyelets

Our T4 is the short wheelbase version – the awning is slightly wider than the rail so I tie either end down across the windscreen and tailgate.

Awning attached to kador strip using toggles and eyelets

We have a van again!

New (To Us) VW T4 campervan

Far longer in the planning than i’d like, but we now have a campervan again! This one is a 2001 VW T4 2.5 tdi short wheelbase which is mostly converted to a camper already – rock n roll bed, side windows, sink with running tap, leisure battery, insulation etc.

We were considering getting a bare van and doing the conversion ourselves, but with the summer getting closer by the minute I thought i’d see what was around already ready to camp in and this one had just been advertised – we all decided it would be perfect.

So far we’ve added a cooker and table, the cooker is a Vango Combi IR Grill Cooker, which is now screwed to the worktop.

Vango combi IR Grill cooker in campervan
Vango combi IR Grill cooker in campervan

The table is DIY, and attaches to the side unit using a Reimo sliding table rail.

Making the table
Table attached via Reimo sliding table rail
Reimo sliding table rail

Future ambitions include a pop-top, swivel passenger seat (or both seats, but leisure battery would need to be moved), and to create, or buy, a full length side unit for extra storage.

The van came with a cab bunk, but our teenager is too tall for that now, so during an experimental overnight camping trip we worked out that they could actually sleep on a self-inflating mattress on the floor, mostly under the bed but with head and shoulders in the space at the foot of the bed. Not ideal, and they’ll more likely be in their own tent until we get the pop top, but it’s good to know we can all sleep in the van as it is if we need to e.g. at an Aire du camping or other stopover where a tent can’t be pitched.

What is a Full Stack web developer?

TL;DR It’s just a convenient term to describe a web developer who does both front and back-end, and maybe some other things .

I label myself as a Freelance Full-stack Web Developer (or Fullstack, for those who like to join two words together into non-existent ones) , but what does that actually mean?

Web developers who write HTML, CSS and (maybe) JavaScript, but don’t do any server-side code (e.g. PHP, Python, Rails etc.) might call themselves “Front-end” developers. Web developers who only do server-side code, and never do any HTML, CSS or (browser-based) JavaScript might refer to themselves as “Back-end” developers.

Therefore someone (like me) who does both Front-end and Back-end code might refer to themselves as a Full-Stack developer.

But there’s usually more to getting a website or web app built and up on the internet than just writing code.

There’s (sometimes) provisioning servers, installing web server software, installing database software and other dependencies. There’s setting up development, staging and live versions of websites, setting up domain records for websites and mail servers and installing SSL certificates. That might be the job of a sysadmin and/or DevOps specialist, but some web developers might take on that part of the job, either by choice or by necessity.

Most web apps need a database, and this database might need designing, optimising and maintaining. That’s a job for a DBA if you are lucky to have one, but i’ve only worked for one company who had a dedicated DBA, so that job usually also falls to a developer.

There’s often plenty more roles that make up the stack – testers, technical project managers, UX, Designers, and in some companies there will be dedicated individuals or teams for all of these roles, but for a small agency or freelancer, often these are taken on by a full-stack web developer.

Now just like Front-end and Back-end are made-up terms, so is Full-Stack. For me it’s just a convenient way of saying that i’m not just a front-end developer, or not just a back-end developer, I do both, and some other things.

Jack of all trades, master of none?

Hey! I resemble that remark! Actually I prefer to say “Jack of all trades, master of some“. I’d like to get better at all of the various roles that make up my workload, but people dedicated to a particular role exclusively will inevitably master skills in that area that I probably won’t.

But there’s more parts to the stack, can you do all those too?

A heated discussion on a local web dev forum had people extrapolating “the stack” to include hardware and low-level operating system code (and maybe beyond?) at one end. I neither do that stuff, or consider it as part of the web-development stack.

At the other end people were adding in any role that could possibly related to the development of a website or web app – account handlers, financial directors, accountants, HR, office manager. Although as a freelancer I have to take on some of those roles myself, I don’t consider them to be part of the web-development stack!

Minimal campervan conversion – what actually constitutes a campervan?

Minimal campervan

A year on from saying goodbye to our last campervan, we are really missing vanlife, so making plans for the next one. Our last van came to us fully converted as a 4-berth camper with pop-top roof, cooker, fridge, rock and roll bed, table wardrobe, cupboards etc., but this time we are planning a full DIY conversion ourselves, on a more modern van.

Being the master of unfinished projects, I don’t want to spend months and months converting it before we get to use it, so the idea is a phased approach, starting from the bare minimum, then adding to it over time.

So what actually constitutes a campervan? It will be a van, a short wheelbase panel van of some kind – we need to be able to park it on our crowded streets and drive it as a family car. Obviously, we want to be able to camp in it – sleep, cook and have somewhere to sit comfortably inside.

In theory, all you need then is to use it like a “tin tent” – chuck some camping gear and airbeds in the back and you have a campervan, but the basic DVLA criteria to be able to officially reclassify a panel van as a motorhome in the UK include:-

  • A fixed bed
  • Cooker
  • Side Window
  • Fixed table
  • Sink and tap

My first campervan didn’t meet these criteria, it was a very minimal conversion – a fold-down single bed made from an ikea futon frame, a freestanding gas cooker from a caravan bungeed to the rear of the passenger seat, and some rugs and stuff. At a push you could sleep 3 people – one on the bed, one on the floor and one across the engine bay diagonally, but only one of these options was remotely comfortable. That van was more of a hippy ex-student road-trip bus, not a family campervan.

I’ve also read that some campsites and festivals won’t accept a van unless it appears to be a camper van – nominally for safety regulations, but probably also to stop people just turning up in hired vans or builder’s vans with an airbed in the back and binbags taped over the windows.

So there’s some “official” criteria we need to meet eventually, if we want to reclassify it as a motorhome but there are also some minumum requirements of our own, to enjoy it as a family campervan. We want to be able to sleep three people comfortably – two adults and a taller-by-the-day teenager. This will be the biggest challenge until such a time we fit a pop-top to gain an extra double bed. I have some ideas, which may or may-not work, but there’s always awnings/ pop-up tents if we can’t all sleep comfortably inside straight away.

We need to cook, so I plan to build a unit to house our existing camping gas cooker, to keep it secure and to be able to store the gas bottle securely underneath. We can survive without a sink initally – even with the sink and tap in our last camper, we tended to wash up on a table using a washing up bowl.

We also need to be able to sit comfortably inside – many of our UK trips have been rainy and cold, so whatever bed arrangement I build needs to be able to be reconfigured during the day to allow us to sit around in a mobile living-room.

I’ll certainly want a leisure battery to keep interior lights, music and phones/ laptops running away from electric hook-up for a weekend. I have a plan for that, which i’ll cover in another blog post.

How to live in a van and travel – new book from Vandogtraveller

How to live in a van and travel book

I was lucky enough to be sent an advanced copy of Mike Hudson’s (AKA Vandogtraveller) new book How to live in a van and travel”. I’ve been a fan of the vandogtraveller blog since the early days, and bought a copy of his previous book “from van to home”.

Though I have no current plans to live in van (or indeed, currently, a van to live in), i’m very interested in ideas for nomadic/remote working – the original subject for this blog. I did actually live and travel in a van for six months in my early 20’s, with a vague plan to “travel europe” and, like Mike, started off with a few grand in savings, and no fixed timescale. Aside from busking, I had no other income stream – this was in the mid-nineties when the internet was in it’s early days, and the term “digital nomad” was (probably) yet to be invented, so I needed to live as cheaply as possible to make the savings last.

So, like many people I suspect, I initially skipped straight to the “Making money on the road” chapter to see if I could pick up any tips. I then went back and read through from the start. He covers pretty much everything, other then details on conversion (covered in “From van to home”).

Thoroughly recommended, and inspiring – Mike tells me that a hard copy version will be available after the ebook, which I will happily buy to add to my coffee table/ toilet reading library!

Deploying and maintaining a website using git

I’ve kind of used git to deploy/ manage php/ static websites for a while now, but in a very luddite way – basically sshing into the webserver, cloning a repo into my site root directory, then hiding the .git folder in the Apache config.

After recently starting a new job and inheriting some web sites and web apps and starting to take the whole “devops” thing more seriously, I was pleased to see a better technique in place than the one i’ve been using.

The basic premise is this – a repo is set up on the web server as a remote outside of the web root, but configured so that the checkout working directory is another directory. The advantage of this is that there is no need to ssh into the webserver to update the code, as a post-update hook can be used to checkout the updated files.

In addition to this, we usually use tools such as gulp to process scss and minify and js, so the post-update hook can also be used to process these on the server after checkout.

Going into more detail, here is the config of the remote git repo on the webserver, this could be somewhere like /var/sites/mysite_git

[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
worktree = /var/sites/mysite
[receive]
denycurrentbranch = ignore

and in hooks/post-update on the remote, something like:-

git checkout -f
cd /var/sites/mysite
gulp build

Taking a break

Camper Van Things is taking a break for a while. It’s been fun, but Rocky has moved onto new adventures with a new owner, and therefore our current camper van adventure has come to an end. I’m not sure whether the content from this blog will be rolled back into my personal blog, or whether it will continue down the line if/when we get another van. So long for now!

Where is Rocky?

From reading this neglected blog you’d be forgiven for thinking that Rocky has been abandoned for the last couple of years in a warehouse, but happily this isn’t the case.

While stashed away a couple of winters ago, he got a bit of TLC, including a fresh coat of paint using the roller method. This worked out really well – highly recommended if you want to spruce up an old vehicle on a budget.

VW T25 rustoleum roller paintjob

VW T25 rustoleum roller paintjob -front

Rocky hasn’t been abroad for a couple of summers but has been on numerous festival and camping adventures in the UK, and has proved to be a great mountain bike hauler over the last couple of years – there’s nothing like a mobile changing room, fridge and coffee/cooking facilities after a day mountain biking!

VW T25 at lakefest

VW T25 mtb hauler

Mechanically he is going well, since tracking down a boost leak he has been taking advantage of the legendary TDI torque. He’s been through two MOT’s – some welding and an overhaul of the front end including new spring and bushings.

VW T25 TDI vag-com

The interior got some love as well, the locker door under the rear seat had virtually disintegrated, so I made a new one from a pine shelf using the original fittings.

VW T25 devon locker door

But there’s a new kid on the block – a 2006 VW Touran. Having had Rocky as our only vehicle for over a year, we needed something a bit more modern for a runaround/ long motorway trips, and while it’s not exactly a campervan, it’s big enough to be used as a microcamper/ weekender. It’s also a great T25 parts hauler!

VW Touran parts hauler

We don’t want to be running two vehicles, especially with the very limited parking availability where we live, so a painful decision had to be made, and reluctantly Rocky will soon be up for sale. I’m sure there will be another campervan (or other portable home on wheels) in our lives, so hopefully it’s not the end of this blog – watch this space…

VW Touran parts hauler

Using Vagrant for local LAMP development

I’ve always used a local version of Apache for php dev, either the version provided with OSX, or using something like XAMPP or MAMP. On a recent freelance contract I was introduced to using Vagrant to spin up a tailored virtual machine with specific versions of php, mysql and any other relevant dependencies.

Vagrant will download a base virtual machine, and then run a provisioning script to install dependencies. Vagrant also sets up file sharing from your host machine, and port forwarding so you edit locally in your normal editor, and view locally via a web browser as if you were running a local apache instance.

The advantage of this is that once you are up and running, the Vagrant configuration can be stored in the GIT repo, so that other developers can quickly start developing using exactly the same dev environment.

A typical Vagrantfile looks like this:-

Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise32"
# Mentioning the SSH Username/Password:
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
# Begin Configuring
config.vm.define "lamp" do|lamp|
lamp.vm.hostname = "lamp" # Setting up hostname
lamp.vm.network "private_network", ip: "192.168.205.10" # Setting up machine's IP Address
lamp.vm.synced_folder "siteroot", "/var/www", owner: "root", group: "root"
#lamp.vm.provision :shell, path: "provision.sh" # Provisioning with script.sh
end
# End Configuring
config.vm.network "forwarded_port", guest: 80, host: 8080, auto_correct: true
end

Running “vagrant up” in a directory with this file would spin up an ubuntu VM, serving files from the “siteroot” directory. It would also attempt to run provision.sh on the VM, which can be used to install php/mysql etc.

The getting started guide on the Vagrant site is the best way to get up and running if your are interested.