HELLO
I AM
JOHN

I've been breaking making websites for over 15 years.

Dingoo A320 setup on Ubuntu/Linux

For Christmas this year, I decided to buy myself a Dingoo A320, which I had been wanting for a long time now. For those of you who don’t know what it is, Wikipedia says it “[…] is a gaming hand-held that supports music and video playback and open game development.” I say its my portable little piece of classic video game emulation heaven.

By default it plays Gameboy Advance, Nintendo, Super Nintendo, Megadrive/Genesis, Neo Geo, CPS1 and CPS2 games. With a few simple downloads available on the internet thanks to an active community, the list can be expanded to include various other Atari, Commodores, Gameboys, PC Engine/TG16, playstation, a custom Linux install (dingux) and more. Read more

Embed Text in an Image with PHP

Sometimes, you just need to embed text directly into an image. The need to do so arose a few months ago for me. We had set up a jQuery carousel for our client, which displayed an image for triathlon events they were hosting. On each image, the name of the event had to be prominently displayed, and it had to cleanly rotate along with the images as they went around the carousel. The simple solution would have been to simply pop each image in photoshop/gimp and BAM. But they were not comfortable editing the images, and were going to be changing the slides frequently. The solution I came up with was to embed the event name into the image on-the-fly.
Read more

How I Turned my Linksys WRT54G Router into a Client

linksys_wrt54g

The other day I was putting together a computer for my 2.75 year old son (he loves video games, and I desperately wanted sole ownership of my computer again). I decided to put it in our bedroom, hooked up to our 42″ Sony Trinitron for all of his Super Mario extravaganzas. While putting it together, I realized that I didn’t have any extra wireless network cards lying around – but I figured it wouldn’t matter, its just for Jonas’s games and he won’t need to be surfin the web, etc. Just in case, I put in a regular old wired network card.

After the install, I decided I should figure out a way to get his computer online, for updates and such… but I still didn’t have any wireless network cards lying around… but I did have an old WRT54G Wireless Router that had been collecting dust for a few months.. surely I could use this, somehow!

Read more

Suckerfish Style Menus in Drupal 6.x

drupalI spent hours and hours hunting around for a simple solution to implementing suckerfish-style drop-down menus in Drupal 6. Lo-and-behold, I couldn’t find one. Every solution out there was overly complicated, and didn’t quite do what I wanted it to.

After a few hours of hacking around, this is the solution I came up with.

Read more

On-The-Fly Dynamic Thumbnails with PHP

jpgI hate thumbnails. There. I’ve said it. Well… I suppose hate is a strong word… but I seriously strongly dislike them. I guess it’s not the thumbnails themselves I hate… it’s the extra work involved. Open up the image, crop, resize, save, upload, not right? rinse, lather, repeat until right.

To save myself the time (and sanity), I compiled this script… Read more

PHP/Javascript File Uploader

uploadRecently one of our clients was in need of the ability to upload files to their webserver. This was easily accomplished with PHP’s built in functionality. But the draw back to this approach was that end-user had little or no indication that anything was happening.

Now we all know what happens. Typical scenario: User clicks a button. Seemingly nothing happens… *click*…. *clickety-click*… *CLICK CLICK CLICK*. Refresh, Reload. We all know how impatient some people can get. Specially when they don’t see the immediate gratification that is seeing something react when you push a button.
Read more

Validate and Escape Data to Prevent SQL Injection

sql-injectionSo we’re back on the topic of SQL Injection, and how to prevent them with PHP. This subject, while often discussed, is not taken as seriously as it should be by many a web-developer, whether it be because of laziness, or merely due to lack of knowledge. Assuming the latter is the most common cause, I felt that I should elaborate a little more on my previous article on the topic.
Read more