skip to content

Moonlighting for ExpressionEngine

January 25th, 2007

Well, its out in the open now!  I'm moonlighting at pMachine.  I'm like a real-life Bruce Willis... er... wait.  My title is Senior Technical Support Specialist, which is really just a long way of saying that I'm going to work my butt off to keep ExpressionEngine as awesome as it already is.  I join an amazing team of dedicated, smart, and hardworking people.  Its an honour to count myself among them.

ExpressionEngine is the content management system that CodeIgniter is abstracted from.  Its flat out awesome (but now I'm paid to say that ;))

Most Useless Code Igniter Helper Ever?

January 23rd, 2007

Have I written the most useless helper Code Igniter will ever see? I think so.

It takes an arbitrary image and arbitrary text and builds an image out of them.

Code Igniter logo becomes Code Igniter logo as text(full size)

Which really doesn't do it justice until you see it full size, or run the demo. Here's a zoom.
Code Igniter logo as text zoomed in

  • Completely impractical? CHECK!
  • Chew up server and browser resources? CHECK!
  • Fun to take images and overlay completely stupid slogans and sayings? BIG CHECK!

I should note that the helper handles colours just fine. Here's the rendered robot (2.7MB... be kind)

A red robotRed robot Rendered as text

I proudly present the most useless helper ever written! The (useless) helper is available for download, and I've appropriately named it "useless_fun_helper". Run it just like you'd run any other helper.

$this->load->helper('useless_fun');
$txt = 'Code Igniter is an Open Source Web Application Framework that makes writing kick-ass PHP programs simple as apple pie';
$img = 'http://yourserver/ci_logo.jpg';
echo image_to_text($img, $txt); // typically you'd pass that into a view... I know... no hate mail ok

So this is my formal entry into the most useless helper of all time. Any runner-ups?

I’ve been joe jobbed again

January 22nd, 2007

Hmm... It seems some [censored!!!] thoughtless individual has decided to send their email entitled "placid dissident" to several hundred thousand of my closest friends.  This is the second time I've been joe jobbed in a year.  Lucky me.

Anyone who knows me knows that I'd be much more creative though.  For example, the email said xvhehqjetpi yhmsc ombrnyw nypeki ijysf qwdyeq.  C'mon really?  Honestly?!?  At least steal a quote from today's headlines or a passage out of some Gutenberg text or something like most of the "cool" spammers today.  Goodness.  And also, what's with the attachment?  "traffic light.png".  There's a space in that name!  Years of linux and web development have scared all the spaces out of my filenames long ago.  And the piece de resistance?... they forged an Outlook Express sender header.

X-Mailer: Microsoft Outlook Express 6.00.2900.3028
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028

I think the funniest thing so far (even funnier then 2 dozen bounce messages) has been the 1 person who kindly took the time to write me back.

Victor, thanks. Your single sentence (take me off your list as***le) is like poetry to me.  You're good people - and I'll be sure to take you off my list right away.

Hear me now and believe me later

January 15th, 2007

This blog post is about advice I'd give to aspiring webmasters. I'm going to try to lay down my honest thoughts here. If you are an aspiring webmaster, you might find some useful nuggets. If you are in a position to give advice to others, you might also find this interesting, if only to spark of discussion or actively and violently disagree with me.

I'm sometimes asked what advice I give to aspiring webmasters as they learn how to code and design. I always try to make up a new answer on the spot so that I can look smart, but the truth is that I don't really remember what I say from one time to the next. When I lecture and/or teach, I tend to fall into a stream-of-consciousness speaking style, and I don't really have a set script I follow. But today I had a unique opportunity to really gauge myself, and listen to what I said; today I started instructing the next cohort of Toronto webmasters in the art of code-fu...

The first day is always an interesting time, because what I invariably see are 15 or 16 highly gifted people, but they're clean slate in the sense of prior experience and expectations. They don't know who the W3C is, but they also don't use the <font> tag. They don't know about the Web Accessibility Initiative, but they also don't layout their pages in a soup of <td> elements. In short, they are starting their education without the baggage of years of bad habits and mis-information.

So today I made a concerted effort to not censor myself, and keep track of what I said. I wasn't totally successful, but I made a series of notes at the end of the day, which I present here for reference, review and general interest.

  • Learn the meaning of the elements first. Don't concern yourself with specific technical implementation in the beginning, you can validate later. What you can't validate is that you're using code properly. Learn that first.
  • Some elements and attributes that don't get really useful until you've lived with HTML for awhile: the <div> element, all the headings, unordered lists, and the class attribute (for both its CSS uses, and equally for its semantic potential).
  • Some elements that seem really useful at first, but I really don't use very often: <br />, <img /> and <hr /> (although its not without its charms). Yeah I said image. I'm not saying images aren't useful, but used for decorative purposes background images are so much more flexible.
  • Keep rebuilding things. Go back and re-build your personal site. Three times. Experience builds skill and speed.
  • Communication skills and a love for learning are more important then raw talent. Note: That might be what I said - but I don't actually believe that last line. What I meant was that all other things being equal, I think a communicating learner will succeed more then someone with only raw talent.
  • Standards matter. So does knowing their limits. Learn about the movement for HTML 5, and why some very smart people don't validate their sites.
  • Learn how to learn. Your industry will change, and you'll need to change with it. I expect all skilled trades to be constantly learning. Could you imagine if your car mechanic hadn't updated their skills in 10 years? Learn to identify trends and industry leaders (blogs and RSS feeds are great for this) and learn to keep yourself up to date.

So there you have it. A few gems, straight from my stream-of-consciousness to yours. Oh yeah, one more thing... the title of this blog post? It was an homage to Hans and Franz ("We're going to PUMP - YOU UP!"). What advice would you give?

nofollow no more

January 12th, 2007

I’ve been thinking a lot about comment spam lately (I’m only getting 4 or 5 a day, and of those I only need to manually reject 1 or 2). Google, (way back in 2005) pioneered the use of the rel=“nofollow” attribute in hyperlinks; links with this attribute would not influence the link target’s ranking in the search engine’s index. Seems like a nice way to discourage people from putting comments into a blog if their only goal is to have a link to their site. Thus, one of the very first things I did when I built this blog was to make sure the nofollow rule was implemented in the links to commenters websites.

But nofollow is not without controvsery, and entire sites have sprung up with the goal of explaining why nofollow isn’t so great. But to me it boils down to one thing… if people are putting useful, interesting material on my blog (which you have been… thanks!) then why shouldn’t I share some of my meager pagerank?

So from now on, if you’re taking the time to write, then you darn well deserve a non-crippled link back to your site. Thanks for commenting!

Quick Link: Tab Effect for Firefox

January 11th, 2007

One of the more innovative things I’ve seen lately for Firefox is the Tab Effect Extension. It adds an interesting transition between tabs reminiscent of how Suse handles desktop transitions.

tab effect extension for Firefox

I’ve got to admit it does look sexy, but after living with it for 5 minutes, I’ve already removed it. The authors should be commended for creating this wonderful extension, but to me this is a clear case of eye-candy getting in the way of practicality.

Bamboo Invoice update 2007

January 08th, 2007

BambooInvoice is still alive and kicking.  I've been exploring a few professional opportunities that haven't left me with much time to devote to Bamboo, but more is coming soon.  My plans are:

  • Upgrade to the newest version of Code Igniter.
  • Models - move relevant database logic into models.  Bamboo was originally written before models were a formal part of Code Igniter.  Now that they are around, I want to move it all into that.
  • Bug squashing - a bunch of new squashed bugs
  • Cleaner code - there are a few inconsistencies I want ironed out.
  • Better login system - Yeah, the login system right now is an evolutionary nightmare.  It evolved out of another project, and then I removed features, and... blah.  The classic problem?  If you look at the database schema you'll see that Bamboo has both an email field, and a username field.  Logic would tell you that username is used to login... but that'd be wrong.  I've got to fix that.
  • Better installer - the installer has been the number 1 problem for people who find Bamboo but aren't familar with MVC style coding.  I'll fix this up.

Things that won't be making into the next release?  I have no intention of adding direct credit card withdrawals, sorry to everyone who requested it.  I won't be offering a formal, paid, commercial version with support. I don't think it would be worth it financially, and I don't see myself able to devote the kind of time towards it that it would require.  Along the same lines, I have no intention of offering a hosted version for business use.  Those are all notable goals, but that's not where Bamboo falls into things. Again, sorry.

I'm in the middle of something pretty big right now, so probably it won't happen until the end of the quarter.

Are there features or bug fixes that you'd like to see in there?  Let me know or comment below!

Comment Notification

January 02nd, 2007

Edit: With I moved this site to ExpressionEngine the information in this post is obsolete.

This blog now features notification of follow-up comments (if you want it).  I wanted to detail how it works.
notification screenshot

  1. When you make a post, your email is saved in a cookie so that you don’t need to keep re-entering it on my site (this becomes important in a minute).
  2. When the comment is sent, I check if you’ve selected follow-up notification.  If you do, it is saved in the database as “true”.  Another field is used to track the status of notification.  It starts off as “false”, meaning no notification has been sent.
  3. When a new post is made, the blog combs through all other comments in that post checking to see if anyone should be notified (it only allows 1 notification per post in the event that someone has commented twice).  If you’ve selected to be notified, it sends you an email, and changes your notification status to “true” (you’ve been notified).
  4. At this point, you’ve been notified once, and I won’t continue to annoy you.  However, if you visit the post again, it uses the cookie set above to recognize you, and sets the status back to “false”, meaning it will notify you again if another new comment is made after your visit.

It’s the best system I could think of that doesn’t require user sign-ups, but I’m sure there’s room for improvement.  I welcome any additional feedback as comments below, or feel free to contact me personally.

Happy New Year!

January 01st, 2007

Happy new year to everyone!  I’m testing out a new feature to the blog that lets me say when posts should become visible (I hadn’t bothered building that into this until now).  I hope you’re looking forward to an exciting 2007!

Derek Allard

I'm Derek Allard, a programmer, author, and award-winning instructor. I'm also Technology Architect at EllisLab, and the programmer behind BambooInvoice, a simple, Open Source, web-based invoicing application. [more about Derek]

Categories