Other Other Programming

Epiphany of Development

I’ve been doing web development for a long time.  I made my first (crappy) web page in 6th grade using the then awesome Geocities.  After that, I graduated to Front Page express.  Throughout my development career, I’ve had a series of epiphanies that have brought my skills to the next level.  Bold entries are where they happened.

  • 1998 – First web page – I knew that the internet existed, but it never dawned on me to actually create content.  I didn’t realize it at the time, but this simple act has been the anchor for the rest of my life.
  • 1999 – Discover Front Page (Express) – With my new found web skills, I started to use more advanced WYSIWYG editors.  Frontpage is hardly advanced, but it allowed me to separate my menus from my content using frames.  It opened up numerous paths for me to take.
  • 1999 (late) – Dreamweaver – Not super important, but discovering Macromedia Dreamweaver really changed how I did web pages.  I stopped using frames to make menus and started using layers.  Little did I know that layers were actually “<div>” tags that were positioned by CSS.
  • 2000 – Flash – Flash was still rather immature at this point, however it showed me what could truely be accomplished on the web.  No longer did menus have to be boring images and text links.  We could have tweening!  It was around this time that I build my first web page with heavy flash components.
  • 2001 – Discover PHP, HTMl, and CSS – This was a big year for me.  I discovered PHP, HTML, and CSS all at the same time.  I had no idea how any of these worked though.  At the time, PHP was well beyond my grasp.  CSS and HTML seemed do-able though.
  • 2003 – HTML + CSS  Zen – I was a junior in high school at this point, and had been appointed to wor on the school’s web site.  Actually, it was the entire district’s domain.  My brain had matured enough for me to make a web site BY HAND using nothing more than HTML and CSS.  I still didn’t understand programming, but using markup languages like HTML and CSS because second nature to me.
  • 2004 – Servers – Around this time I discovered that I could make servers on my own!  Not really code them persay, but rather run server software.  I’m pretty sure my first server was an FTP server so that I could share files with my friends.  It was tedious though, since I was still using 56k dial-up at the time.
  • 2005 (Early) – First Computer Science Course – The biggest eye opener ever.  I never realized how deep the rabbit hole went.  I was only learning assignmen, logic, loops and a few other things, but it made my thirst for knowledge inquentiable.  I started to learn C++ here.
  • 2005 (Late) – Assembly Language & C – Taking a course in SPARC assembly and a bit of C is an eye opener for every Computer Science student.  You’re pretty much at the bottom of the rabbit hole, and you spend the rest of your career climbing back out.  Coding in low level languages made me a much better programmer though, because it forced me to think.
  • 2006-2007 – School & Languages – These years were spent diving into new languages, learning new programming styles and domains, and generally having a good time.  I didn’t spend a lot of time doing web development, but I did teach myself how to make a web server in Python.  Not especially helpful, but still fun.
  • 2008 – PHP, MySQL, LAMP – I had already learned Linux in 2006-2007, however I never really dove into Linux as a server.  That was at least, until I found out (again) about PHP.  Turns out PHP needed Apache to run.  And all the fun PHP stuff also needed a database server  (MySQL).  I set up a PHP + Apache + MySQL server and went from there.  It was at this time that I started development on the first edition of Wrestling Addix.  I made my own CMS for it (bad idea) and in general the site worked fine, however it was a bear to maintain.  I decided that the next version would use a pre-built CMS so that my life would be easier.
  • 2009 – Ajax, WordPress, OOP, CMS – This year I’ve learned lots of stuff.  Most of it revolved around web development though.  I’ve learned to bend WordPress to my will (it runs this site).  I’ve learned how to use Ajax to make my web apps for responsive.  I’ve learned how to use Object Oriented Programming in my web sites, and how using a CMS WILL make your life easier.
Wordpress Development

WordPress as a CMS

It was about last year that I realised most of the projects that I do required a content management system (CMS). This both a relief and frightening prospect all at the same time. How do I use modern CMS’s? Are they easy to modify, hack, template, etc? Will this actually make my life easier?

With these questions in mind, I began my hunt for a CMS to use for a re-design of one of my larger projects (Wrestling Addix).  I had dabbled with Drupal before, but I found it to be a little complicated.  I also was having a hard time with the Drupal terminology (nodes?  You mean pages right?).  I also explored the Joomla route, but it seemed like a little more than what I needed.  Eventually, I came to rest on WordPress.  I had been keeping a WordPress blog for years (Re-Cycled Air was formerly a blog about my [mis]adventures during my undergrad) so it seemed like the natural choice.

Once I had settled on WordPress, it was time to figure out how to make it a usable CMS.  First off, I needed a static front page.  That was easily handled by going to the settings and having my blog posts go into a different page.  After that, creating a theme was next.  No problem, WordPress is easily themed, or you can choose from a large assortment at the WordPress site.  From there, I need a few extra plugins to make things work.  Here’s what I use regularly.

  • Advertising Manager – Used to rotate ads on some of my clients sites.  Allows for extreme customisation and weighted ads.
  • Akismet – Blocking spam comments has never been easier.
  • All-in-One SEO Pack – Using this Search Engine Optimisation package allows site contributors to fill out the meta information without ever having to touch a piece of code.
  • BM Custom Login – This plugin allows you to skin the WordPress Login/Registration/Password Recovery page.  It’s a nice touch that clients just love.
  • Configure SMTP – For clients without an SMTP server, this works great because it allows you to easily use a GMail account for SMTP.
  • Disable WordPress Core Update – Nothing is worse then having a client constantly bug you about updating WordPress.  Luckily, with this plugin you can disable the update notification.
  • Event Calendar – A lot of sites like to have calendars.  This plugin makes it easy to place either a larger full page calendar or a calenar widget on your site.  Managing events is easy as well.
  • Exec-PHP – This plugin allows you to execute PHP scripts in your pages, posts, or widgets.  It’s really handy if you don’t want to make a plugin for something.
  • Favicon Manager – Every site needs a favicon.  This plugin allows you to easily change your favicon so it shows up in browsers and RSS feeds.
  • Google Analytics for WordPress – This will add google analytics functionality to your WordPress site.  It accomplishes the same thing as putting analytics code directly in the header, except you don’t have to edit the template by hand.
  • Maintenance Mode – In the event that you need to do some serious site maintenance, this plugin allows you to easily throw up a maintenance splash page.  Admins are still allowed to view the site and the backend.
  • Member Access – You can easily restrict parts of your site to registered users only.  I used it to lock out authorised users from an upload area.
  • Page Links To – This allows you to make pages links go to external or internal sources.
  • PageMash – With this you can visually reorder your menu.  Much easier that the cumbersome ‘enter a number’ system that’s included by default.
  • Simple Press Forum – An easy to use integrated forum for WordPress.  Why use PHPbb or Vbulletin when you can have this with single sign on with the click of a button?

If you have any other suggestions for good CMS plugins, please leave them in the comments for all to see.


Chrome OS

The Internet is a buzz today with news of the Google’s new Chrome OS.  Even the major news outlets have picked up the story, touting it as a “direct challenge” to Microsoft.  First of all, nothing Google can do in the OS realm will come anywhere near challenging Microsoft.  Google’s experience lies in maninpulating Linux to work for their backend operations.  Even if they hire some developers with practical end user OS exeperience, it’s still just going to be another flavor of Linux.  The general public doesn’t like Linux.  Not because Linux is bad in any way, but because it is different.  Chrome OS promises to be VERY different.  People don’t want extreme change, they want gradual change so that they barely notice anything has happened.

Nice try Google.  I’m sure it’ll be a hit in the enthusiast / Google fan boy crowd, but as for me, I’ll stick with Ubuntu.


Programmer Humor

I was walking by a Post cereal factory in Niagara Falls this weekend, and I immediately thought of this.

Post Cereal


Student Loan Debt

Most people in my field have attended a 4 year university to learn their skills.  While it’s not entirely necissary to do so, it does help expedite and flush out the the things you could have learned on your own.  The only problem is money.  If you are anything like me your parents didn’t have a lot of money growing up, so you always knew that shouldering the debt of a college education would be your responsibility.  It’s only now that I’ve realised how expensive college really is.

Currently, my student loan debt is at $50,000 is government loans and $20,000 in private loans.  By the time I’ve completed grad school, I’ll have an additional $21,000 in government loans.  All in all, I’ve got $91,000 in student loans to pay off when I graduate.  With any sort of luck, I’ll get a job that starts me at $60,000 a year.

That’s great for me.  I can easily afford to make a student loan payment of $1000 a month.  Maybe less.  However, I now have to consider my fiance’s debt.  She’ll have roughly $70,000 in student loans when she’s done.  So together, we’ll need to pay $160,000 in student loans.

Sometimes I wonder if the education was worth it.


Virtual Box on Ubuntu 9.04 Host

Ever since I got my new laptop back in April, I’ve been running the latest version of Ubuntu on it.  Sometimes though, I do have the need for Windows (when I need to use Visual Studio, for example).  In those cases I have a virtual machine with Windows XP installed on it, and any of the often needed Windows utilities available.  This worked great for me in previous versions of Ubuntu, but with the new laptop came a weird problem:  The VM was transparent.  Not completely transparent, but maybe 40% transparent.

Luckily there is a quick fix for this.  With your mouse pointer inside of the guest operating system, make sure the “host key” is disabled, and then hit windows key + c.  That should remove the transparency and you’ll be good to go.



As much as I despise waking up at 6:15am every morning, there are a few things I do enjoy.  I enjoy spending an hour reading articles and catching up with the day’s news.  I enjoy the fresh feeling that the world has at that hour.  The morning dew is still clinging to everything, and the sun being low on the horizon.  Above all else, it’s quiet.  Everyone is still sleeping at that hour.  That’s probably my favorite part.  No phone calls, no talking, just the sound of the wind at my back and the birds singing.

Next time I visit the ocean, I’m making it a point to get up early and watch the sunrise.  I haven’t seen a sunrise in ages.

Other Programming

The “Project You Don’t Want to Do” Life Cycle

  • Day 1: Okay, quick and easy project.  I should at least try to have fun with it.
  • Day 2: What!? I have to do this in Visual Basic?  I don’t even have visual studio, let alone any VB knowledge.
  • Day 3: Visual Studio is installed, created a gui for this project.  Hey, this gui designer is pretty nice.
  • Day 4: Beginning to realize why I love PHP so much.  I’ve never had so much trouble connecting to a database in my life.
  • Day 5: Screw this, I could make this program in 10 minutes in Python!
  • Day 6: Crap, my Python is rusty.  Oh well, I’ve made some good progress.
  • Day 7: Man, gui programming in python is weird.  I guess making a gui in any language kind of sucks.
  • Day 8: Bleh, back to Visual Studio.
  • Day 9: Suck it up and do is VB.  Learn something new!