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.

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.
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!
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.

- 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).
- 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.
- 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).
- 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 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!
One of the very nice things about CodeIgniter (and really all the PHP frameworks I've looked at) is the built in security tools. For example, CodeIgniter automatically cleans cookies, sessions, user input and URLs in addition to coming with a host of other built in tools to make your job in securing your application as easy as possible. But, like all good things, there is a trade off. In the case of security, the trade off is convenince. The more secure, the less convenient. Since security isn't really something we can compromise on, clever developers need to find alternate ways of implementing common things.
CodeIgniter for example limits the characters that one can use in a URL to letters, numbers, and "~, %, :, _ and -". A good collection sure, but what if you need to pass other characters, such as "(, ), =" or even spaces? Here's how I did it.
After a recent request for this, I’m re-posting the code to generate table captions in Code Igniter that I originally posted in the forums. Using it is very simple:
$this->table->set_caption()
Ack, that scoundrel Matt has tagged me with the five things meme. Make me do more work will he!
- I'm an enviro-nerd. My degree is in Environmental Studies, I own a hybrid car, we compost nearly everything that will rot (ew, that didn't sound good) and secretly I get joy from only putting out a few wraps of plastic every other week. Also, it gives me an excuse to just keep re-using the same jokes over and over... I'm really just "recycling".
- I was spit on once by the singer Jewel during a yodel. Seriously, it was before she had gotten her first album out, and she was playing at a local beer pub in Toronto, "C'est What". Not typically my style of music, but she was great. One of the things she did was a song that involved her yodeling, and right in the middle of it, a big spit flys out and lands on my leg. There were only a few dozen people in the place... she stops the performance, says "I'm so sorry", then picks up her guitar and keeps going!
- I'm a cat person. You know dog-people and cat-people? I don't dislike dogs, I just like cats. C'mon, its hard not to respect any animal that arrogant.
- I'm 1 course away from finally getting my Master's of Education. I'm honestly sick of it. A good friend told me getting a post-grad degree while running a business would be a "triumph of tenacity over reason". He was right.
- I've only ever had 1 bottle of "Bud" in my life. Budweiser is among the nastiest stuff I've ever tasted. That said, I'm a self-admitted beer connoisseur snob. I'm hoping my wife gets a keg of St. Ambrose Blond for christmas as a "joint gift"... of course if she does we probably won't make it to New Years.
I'm tagging a few of the commenters on my blog! Yannick, James, John, Scott, and I'm using this opportunity to kick Ankur's butt to get a site up already.
Yeah this pushes the definition of noteworthy, but this is just a quick note. I’ve made several small but important changes to the site. Most of them will appear cosmetic (for example, the footer is shortened). I’ve also added cookies to remember the name, email and website you entered if you left a comment, so you don’t need to re-enter that every time you want to comment (thanks Jason for the suggestion). I’ve also streamlined the approval process and added some additional spam comment protection. You should generally find now that comments are approved very quickly (often instantly).
Thanks to everyone who’s been contributing. I really appreciate it.
One of the reasons I started getting active in the Code Igniter community was because of... um... well, the community. The people who are active are such interesting people, who give a lot of themselves back into the framework. You only need to look at the very active forums to see this happening. Community contributions are cropping up all over, including CIForge.com, as well as numerous independent efforts to educate and evangelize. People from all walks of life are drawn to Code Igniter, presumably for the same reason I was. It just plain rocks. It helps you build faster, it helps you build more organized, and it helps you build more securely.
In fact, CI is so sweet, that you could download the framework and never visit the site again, and be instantly more productive... but if you really want to push the bounds, then you need to spend some time in the community wiki. The wiki is a mysterious, fantastic place - and if you can sort through the disorganization and flux, there are some real treats in there. In fact, nearly every project I've built has used something from the wiki*. So in no particular order, here are my top eight, wiki resources.
If you use pretty much any browser except IE 6 (more on that later) when you visit this site, you've probably noticed that the dark-grey sidebar scrolls with you just until the banner and menu are off the page, and then locks itself into position or "sticks". When you scroll back to the top, if the menu and/or banner need to be seen again, the sidebar politely resumes its normal scrolling duties. Go ahead, try it now, I'll wait. Fun isn't it? I've had a number of people comment on that, so I thought I would outline how I accomplished it.
