The Personal Website of Ricky Bosch

What Can I Do?

I love the challenge that a new client brings when discussing a new website, always I look for ways to learn from the experience and the project the client throws at me. Take a look at this website:

The Mudcastle

The Mudcastle is a wedding and confference venue with accomodation and an interesting problem.

The Mudcastle offers users of its website the opportunity to apply for an event online and add details that they would like to see at their particular event, such as particular bits of furniture or music they would like to hear.

So what was the problem? Well they had a humongous database of music on their old website which allowed the client to pick and choose which albums they'd like to hear which was full of legacy code and not optimised to work in a Joomla environment.

Having used Joomla For nearly 3 years at this point I resolved to make it work!

STAGE 1: Investigate and replace legacy code

A large part of the problem stemmed from the fact that the site contained legacy code that could be traced as far back as 2004 which was either really old or in some cases no longer worked. At this point I mostly catalogued and replaced where neccesary old bits of php or javascript that would not work with a Joomla installation to prepare for the migration.

STAGE 2: Migration

With the second stage came the hardest part, actually getting it to work with Joomla 3!

Because of the nature of the project, it had to interface with a database. And because we were using Joomla! It was best practise to interface between the database, joomla and the web. Not only did I have to brush up on my MySQL skills but I also had to learn how MySQL interacted with Joomla so I could get the best user experience out of it because I never had the need to create an application using MySQL.

Better late than never to learn!

STAGE 3: Implementation

Finnally it was time to integrate the application with the site. With the application brought up to date, legacy code removed and optimised for Joomla 3, everything was ready. The only thing left to do was create a simple php mail contact form which could accept the data from the checkboxes (only what was checked) and send them off to the owner of the site to let them know what music the client had in mind.

The Mudcastle Jukebox

Final Thoughts

I loved every minute of this project, even the seemingly tedious parts. From deciphering the challenge to learning new techniques to overcome it and finally the satisfaction of seeing something you worked hard on working and being used.


Self Scanning Debian Server

This problem came about from a need to scan the servers where all our websites were hosted regularly, as some of our older sites were beginning to come under attack from hackers and malware before we had the chance to upgrade them to their latest versions.

What was the problem

Older websites were getting hacked, clients would found out about it days later and find they had potentially lost thousands of dollars in the downtime of their websites.

What could we do to fix it?

Usually the first thing we would do is restore a backup of the website while we worked on upgrading it to its later versions. But sometimes a client could not afford to spend time and money on us so we could upgrade their site and so instead turned to damage control. What could we do to catch signs of malicious tampering on a website as soon as possible?

I knew that our servers were running on Debian 7, and I knew a little about cron jobs. 

How did we fix it?

As I knew a little about cron jobs and at this point I was comfortable mucking around in the command line, I knew I could set up an automatic cron job to run daily scans of the entire server. Setting it up was simple enough, I simply found a script online that would start a scan when run and then send an email to the address specified in the script. Next I set up a cron job to automatically run the script at midnight every day. But it just wouldn't work. I was perplexed. I'd done everything right, or so I thought. It took me days until I realised I hadn't made the script an executable, or made the line endings in the file save to linux.

I felt so dumb but oh well, learning experience right?