Twitter Bootstrap documentation quote of the day

From Bootstraps button documentation:

IE9 doesn’t crop background gradients on rounded corners, so we remove it. Related, IE9 jankifies disabled button elements, rendering text gray with a nasty text-shadow that we cannot fix.

It is my educated opinion that everybody should strive to write documentation like this.

Derek Allard, “Master” of Education

I’ve been pursuing my Master’s of Education part-time since 2003.  I took a year and a bit off in the middle of there somewhere, but other then that, I’ve been pretty steadily marching towards it for 5 years.  In April I finally finished off the last of my course requirements, and last week I got the official paperwork; I’ve finally finished off the degree.  Huzzah! I’m now legally allowed to call myself a “Master”, um… not that I ever would.  Oh no wait, I would.

I’ve considered sharing my final thesis with the world but I’ve decided against it.  Frankly, its been under enough scrutiny and the truth is that I just don’t want to think about it anymore.  It’s basically a theory on how to teach highly technical concepts to a largely untechnical audience.  Sort of a theoretical backdrop to the teaching I do.  It may undergo a few changes and get resurrected yet.  We’ll see.

So would I recommend the process to anyone else? In a word, “maybe”.

Simon Collison knows how to be a teacher

Fellow web-nerd, instructor, and ExpressionEngine aficionado Simon Collison has written what has to be the most inspirational blog entry written in Education for 2008, entitled Dear Students.

Its short and to the point, and while I usually don’t like quoting large chunks of other people’s writing (preferring you just go read it yourself) its hard to express the greatness of this post without getting both of its paragraphs.  Go read it first-hand anyhow.

Dear Students

On 12th March at 9am, I’ll be presenting the snappily-titled The Business of Web Design: Latest Trends in Web Design and Web-based Applications lecture at the University of Nottingham. This forms part of a great season of presentations for the Development of Digital Business module that also includes lectures from the likes of Microsoft, IBM and a plethora of others.

If you’re on that course, make sure you don’t get pissed the night before and oversleep in a pool of vomit and cigarette butts. I know what you students are like.

Now that is poetry.  Well done Simon…

Judging the work quality of other developers

You ever inherited a site done by someone else, and looked and the site and thought “what the hell where they smoking when they did that, and who gave it to the client making it seem like a good idea”?  C’mon you web-snobs, I know you have.  We’ve all done it.  Heck, I’ve done it recently.

There are two sides to every story

Well, I’m going to stop making any judgments about the quality of other people’s work unless I know the circumstances around how it got developed.  A day of reflecting on my own work has made me rethink things.  Yesterday I was working on a project, plugging away and I thought “hey, I’ve solved this problem before, let me go see what I did”.  So I pull out some old code, and next thing I know, I’m looking over some work I did some time ago.  I wasn’t super impressed. I found a series of nested if statements at one point, when really it could have been written in one line.  Is that the end of the world?  No, but it shows inelegance, and a lack of careful planning.  If this was someone elses work I would have thought “phfft, they’re lazy”.  Anyhow, I was disappointed, so I thought I’d fix it up and upload it for my (former) client….

And then it all came flooding back. 

So as you can see… in a lot of the cases the slightly less elegant code was a result of a changing landscape. I don’t think I could possibly build to quality, when the idea of “quality” is a moving target.  In that case, a nested if just worked for me.  When you’re bound by the triple constraints of cost, quality and speed, then something has to bend.  If the client isn’t willing to sacrifice cost or speed, then quality is going to suffer.

So I’m no longer going to look at

$some_dudes_name 'some name';
"The name of that guy was " $some_dudes_name

and think “why did they even bother”?  Maybe the developer was dumb (that’s always a possibility), or maybe that variable used to hold other information, or maybe they were directed that way, or maybe the dev inherited other code that the client wasn’t willing to let them alter it.  Who knows?

Until I know the history and politics around why something was coded the way it was coded… I’m reserving judgment on anyone else’s work.

Oh yeah, and that inelegant client code I found?  I never did fix it up.

Quick Link: Building a Bulletproof Contact Form with PHP

Matthew Pennel (of The Watchmaker Project) just wrote a short and very clear article on Digital-Web Magazine on handling contact forms with PHP entitled “Building a Bulletproof Contact Form with PHP”.  If you are new to the topic, or are just looking to get that contact form set up and working, then for sure, give it a read.

Great work Matthew!

Review: Codeigniter for Rapid PHP Application Development

One of the signs of an application’s popularity is when a community and books start to spring up around it.  The CodeIgniter community has never been questioned, and now it also has a book to accompany it.  CodeIgniter for Rapid PHP Application Development.  The book is written by David Upton, who has a clean, friendly style.  His writing is clear, and examples are plentiful.

I’ve got a copy, and in fact, during the early stages of the books development, I had an opportunity to do some reviewing (with Rick Ellis).  So let’s get this out of the way now shall we.  Should you buy this book?

how I started my business and career

I got an email from a community member from CodeIgniter.  I won’t use his name here (feel free to comment below in case anyone thinks I’m lying ;) ), but with his permission I’m reposting this.  He asked about how I got started, and the realities of running a business.  This is the second time in a week I was asked, and thought I’d post a bit here.  What you see below is a mostly unedited response that I wanted to share.

I’ve blogged a little bit about this before.  Especially when I wrote hear me now and believe me later

And don’t believe the fortune cookie...

Quick Link: What a designer has to do when looking for a job

First of all, Veerle is flippin’ brilliant to begin with, but then writes a blog post entitled “What a designer has to do when looking for a job” that is chalk chock full of great advice, and then recommends you use ExpressionEngine to set up your portfolio.  What’s not to love!

Next, I would design myself a website using web standards of course. How far you take this is based on personal knowledge. If it was me, I would use ExpressionEngine to power my portfolio and blog. Why? Because it’s a great way to get your name out and to show your work to the world.

Thanks Veerle!

It doesn’t work

If you’re asking for help, please don’t use those words…

There are 2 types of information you should be conveying; specific details and general attitude.  The latter is so much more important then the former.

What kind of specifics should you give?  Anything relevant really.  In essence, be detailed and specific.  No need to write an novelette.  No need to explain why you are doing what you are doing.  I look for:

The general attitude though is more important.  First of all, please be polite, and please speak in full sentences (yes, even if u r email plz, kthxbye).  Take a few moments to explain how you’ve already tried to help yourself.  Is there documentation you could read first?  Explain what you read.  Have you searched for answers yet?  Time to start.  Basically, just show that you are trying, and you aren’t just wasting the time of the person whom you are asking.

After you’ve given help, do 2 things.  First, I polite “thanks” is always appreciated.  Next, if you are part of a community, take a few moments to help out others around you as well.  Answering other people’s questions is a fantastic way to learn - and to become more skilled yourself.

Ah yes, and I’d be remiss if I didn’t like link to Eric Raymond’s “How To Ask Questions The Smart Way”.


Learning PHP with CodeIgniter

Every now and then, the question comes up of if its a good idea to learn PHP before one learns CodeIgniter, or after one learns CodeIgniter.

I teach technical training for 2 universities, a college, and do a lot of corporate training, so I often find people who are just starting out and wanting to pursue a tool.  For a long time my knee-jerk advice was “learn the skill first, then come back to the tool.”  That said… the longer I think about it, the more I can see how learning PHP through a framework like CodeIgniter could be really useful. So here is my current position on the topic.

If you don’t know PHP and want to learn, then learn it at the same time as you learn CodeIgniter