i
Gergy.co.uk

A Brief History of my experience with PHP Development

So before I get into this, let me warn you that this is a pretty long and detailed post about how I got into PHP, and what I learned along the way. I'll show you the projects I can remember working on and all the cool little features that make them mine!

Where it all begins - the (now) kids' game that changed my life.

A long time ago, around the year 2008 I was playing an online game called Roblox. Being about 13 years old, this was fairly underground at the time. The game consists of "Places" which are individual maps created by other users that are accessible to the site public. You create whatever you like in these places - Games, buildings & structures, different cars; whatever. You can add bricks to your place to make things like you would with lego, but you can also script properties and qualities of a number of objects in the game using a scripting language called Lua.

In the context of Roblox, Lua is a basic mix of procedural and event-driven styles. Here's a small script:

debounce = false
function BrickTouched(hit)
    if hit == nil then return end
    if debounce then return end
    script.Parent.BrickColor = Color3.new(math.Random(0, 255), math.Random(0, 255), math.Random(0, 255))
    wait(1)
    debounce = false
end
script.Parent.Touched:connect(function(hit) BrickTouched(hit) end)

This script will change the brick to a random colour when a player touches it. The function is connected by an event at the bottom of the script, and the debounce function will prevent the script activating more than once a second (As the player moves over the brick the parts of the player can touch multiple times causing a disco affect without it)

With Lua, one can design a game that's anywhere from simple to highly logical and advanced. I did Lua for about 10 months before I decided to move onto other programming languages, and my target was websites. This came from the success of one of the most advanced games at the time, and of a site with less than 750,000 members (Roblox now has 15M monthly active users and almost 200 million registered accounts to date) I had 70,000 visits which made me wealthy in in-game currency. My account is now valued at around $2,000 USD in assets as the value of rare items has increased 10x in the past 6 years.

My first website

My first ever website was hosted on the domain Gergy.info late 2008/early 2009. The website initially had a number of flash games available on a webpage for other students to play, but the IT department of the school soon caught on and blocked the index page. Then around August that year, I restricted access to the website to those that created an account. This required that I learn PHP, and I had to change the name of the index page and used a 302 redirect to route around the school firewall too. I designed a MySQL database, learned to encrypt passwords, and later on; prevented SQL Injection, thanks to one of my classmates that black-hat pentested and hacked my site. 

Image of the website as seen 28th August, 2009.
Gergy.info as seen 28th August 2009; Data from Archive.org/web Wayback Machine - accessed 22/06/2017

The biggest feature of the site (to prevent blocking by IT) was to require payment for flash games. I generated codes for site currency, printed them onto photo-paper cards with the site address and distributed them for 50p each around school. This funded the domain cost and hosting for a number of months. The site was blocked a number of times, and I usually found ways around it. However, my good pal Ben from IT blocked the entire domain, causing me to buy the redirecting domain hahablockthisben.info to keep the site alive. After this point, I started getting enemy websites from other classmates but decided to join forces with them rather than stay enemies - This sparked a new site Nivso.co.uk which stuck around for a little while.

Oh yeah - I also started a business

I moved on from flash game websites. I discovered Minecraft and it caught on like wildfire around the school, extinguishing the requirement for them. I still liked making money, so I tried building a business building computers instead which was something that I'd really gotten in to but didn't have the money for. My and my classmate and friend decided to create iTech PCs - Which we registered with the Companies House and everything. It used an off-shelf CMS e-commerce platform called TomatoCart - Still available today. The project didn't last very long but it was an incredible learning experience, especially when it comes to taxes, shares, and logistics.

What running this site also taught me was that there were much more complex ways to do PHP (OOP) and that I will always have more to learn even when you think you've hit an end. I didn't know at the time what else PHP could do but from reverse-engineering tomatocart and designing add-on modules there's so much more that PHP can do.

Responsibility of the site collapsed to me and I dissolved the company as I finished my GCSEs and started college.

Right - but that's only 3 years of "PHP Experience" where's the other 4?

When I started college, I first started moving away from using XHTML4 tables to moving towards <div> and CSS layouts to improve the look of my site and prepare for the upcoming HTML5 and CSS3 standards. So for a few months I just made some odd things, like working on a CodeIgniter site. I replaced my hosting and started from scratch working with the PHP framework. At the time I was also working with jQuery and learning how AJAX and Cookies work. I added a feature to change the accent colour of the site on the fly, sending the resulting colour to be set as a cookie with PHP so the site reloads with the correct colour each time. Here's a look at that site from around late 2012, I don't like it anymore as you can imagine!

Image of the gergy.co.uk site as of 2012
Example image of an early version of Gergy.co.uk from approx Late 2012

I found an old version of the site on an old Mac TimeMachine backup, but unable to recover the CSS only. Everything else still exists which is odd.
As you can see this site actually shares lots in common with my current website, especially in the navigation area at the top, and the social sidebar.

From then to now

In college and uni I did a few different projects. In early 2013 one of my projects for my College PHP unit was a fully HTML5 compatible forum. Because I'd pretty much done simple database manipulation before my biggest issue was trying to get the avatar images to work. Users were able to upload their own avatars and converting images from all sorts of different formats, aspect ratios and sizes was difficult to get to work at the time.

Last version of "Gergy's Forum" that I created - Feb 2013

I also did another project, I created an iOS app that was basically a free version of Plex which allowed me to stream video and audio content from any computer of which had the correct web software running on it. I bought a 750GB server in the Netherlands which I offloaded all my video files, I wanted to view them on my iPad but didn't have a good way of doing that. I created a small piece of PHP software that served the content to an iOS app. The app would request all available files through a JSON file, the webapp would serve it, with full support for 1080p HD, scrubbing and remembering the location in the video file for later.

View of the iOS portion of the FileStreamer software

2014-2016 I hadn't worked on a huge lot of PHP because of University. I've been working on my other skills, including front-end web, Java, C# and my hardware and network expertise. Since then, I created the website you're reading this on, which has a partially (in progress) CMS backend - so I'm typing this on a special portion of the website, rather than an IDE or whatever.

 

The site blog - stay updated with progress

I'll be keeping my progress of the site up-to-date with the blog, showcasing many features or related projects through there. I'll also show many things that I'm working on that I'm proud of, including code and hidden functionalities.

~S Gergus