May 14th, 2008
Still cleaning up a few things, but BambooInvoice 0.8.5 is looking pretty close to ready for release. You a Bamboo user? Nab it: BambooInvoice 0.8.5 for a look.
The biggest change is actually the installer, and several changes meant to make installing and deploying it easier. There are a few features still to add, but I’m pretty happy. Tomorrow I hope to write a bit about what I’ve learned recently in building a distributed app.
For update instructions, read on…
Continue reading “BambooInvoice 0.85 preview”. Posted in
BambooInvoice with 8 comments 
April 09th, 2008
Just like the title says, BambooInvoice 0.8.4 is “out the door”. I’ve upgraded all the application queries to take advantage of the new CodeIgniter Active Record improvements, and squashed a lot of bugs on the way. The changelog is pretty small, but a lot of work went into it.
As I wrote a few days ago about the future of BambooInvoice I think this reduces any lingering bugs down to about none. I’ve also introduced a few additional error catches, and I’ve tried to make a few error messages more helpful. The next version of Bamboo will focus on finishing off features that I want to see, and will probably be a full point update (0.9) and then the real work starts, with what will amount to a code overhaul. That stuff won’t happen until at least summer, but if you are an “end user” you probably wouldn’t ever notice it anyhow. It’ll be “under the hood” type stuff that programmers obsess with ;)
If you have any specific features you want to see, by all means please comment!
Continue reading “BambooInvoice 0.84 released”. Posted in
BambooInvoice with 8 comments 
April 07th, 2008
This weekend I gave some serious consideration to BambooInvoice. I made a few hours to fix some known bugs (including I think the dreaded no demo_flag property on line 19 bug), and add a few features. After working with the code, I know what I need to do. This post lays out my plans for the future of BambooInvoice, including a “roadmap” (if you can call it that) and my thoughts towards keeping BambooInvoice free and opensource, coding standards, and library integration. Read the full post for more details, but here’s a telling quote.
This also represents an opportunity to revisit code that is starting to show its age. Many people are referring to Bamboo as a model for how to build an application in CodeIgniter. This delights me, and is the entire reason I released Bamboo originally, but, Bamboo was released while CodeIgniter was still very immature. There were no models; fewer helpers; limited Active Record; fewer libraries. It was also a bit of a proving grounds for what could be done. In short, Bamboo blazed the trail that all my CodeIgniter programming would be based on, but as CI has advanced, there are many (many) things in BambooInvoice that I would choose to do another way if I was building it today. I want to take the opportunity to do them right. I want Bamboo to be as finely coded as CodeIgniter itself. This as you can imagine, will be a pretty big task. In essence, I’ll be writing (re-writing) the entire application. I’m tired just thinking about it, but its something I really want to do.
So if you’re a Bamboo user, get ready for a large bump in what you current can do, and take your invoicing to the next level. Is there a feature that you really want to see make it into Bamboo? Is there one little thing that bugs you? Have your say, please feel free to leave a comment.
Continue reading “The future of BambooInvoice”. Posted in
BambooInvoice with 10 comments 
December 12th, 2007
Get it while it’s hot! (BambooInvoice).
This release represents a pretty major jump in functionality. I already hit on most of the highlights in my
preview post, so I won’t rehash them here. Sufficed to say that there are many commonly requested features, a few important bug fixes, and major additions to functionality.
Thanks to everyone who helped beta test it!
While Bamboo is absolutely free and open source, if you wanted to buy me a beer, I certainly would not object ;)
We’re there! w00t!
Note: Please backup your data before you do an update. Anything comes up, feel free to leave a note in the BambooInvoice forums.
Continue reading “BambooInvoice 0.8.3 has been released”. Posted in
BambooInvoice with 4 comments 
December 12th, 2007
With the next release of BambooInvoice nearly ready to go, and probably set for release within 24 hours, I’ve needed to finally decide which license I’ll be releasing it under. If I were going to change it, this update would be a logical one since there are so many foundational changes to the underlying code. But for now, Bamboo will remain GPL.
That said, I’ve decided to continue to release BabooInvoice under the GPL, and I guess I can only ask that people not try to pass it off as their work. Thanks to everyone who wrote me both on this blog and privately. The general sentiment from people who identified themselves as Bamboo users was “hey, as long as I can keep using it, do whatever you want… its your software”, which was pretty cool I do have to admit.
I do though want to mention that any change in license would have been made on philosophical grounds, not an “enforcement” one. The argument that people would continue to “steal*” it no matter what license I used is irrelevant to me - the license is about how I want my software to relate to its users, not about “protecting” myself. Bamboo has always been about 2 things; scratching an itch, and serving as a proving and learning grounds for CodeIgniter.
So onto happier matters! The license will remain unchanged, and the next version of Bamboo is (if I can say so myself) pretty kick-ass.
Watch this space for an update! I have to get it that next version out shortly, so that I’m not too distracted and can keep up with my new duties at EllisLab. ;)
* I do not consider someone taking Bamboo and claiming it as their own “theft” per se, that’s just a convenient word here.
Continue reading “BambooInvoice will remain GPL”. Posted in
BambooInvoice with 1 comment 
November 28th, 2007
I’m happy to announce that I’ve almost finished work on the next version of BambooInvoice. I have to say, I’m very happy with the new functionality and features. Aside from the usual bug fixes and code modifications, there are some very substantial architectural changes - namely, the addition of itemized invoicing.
In order to make sure its running smoothly, I’d like to solicit some people willing to take part in beta tests. In order to participate, you’ll need to be comfortable backing up and restoring your database. I’d also love to get some non-English speakers into the mix. If you’ve been wondering how you can help out with Bamboo, this is it. Please contact me.
Itemized Invoices
This was far and away the most requested feature, and I’m happy to add it in. If you don’t have a use for itemized bills (I’ll probably never need them), then I’m hopeful that the feature will get out of your way totally, but if you do need them it should be a seamless transition. A bit of history here - if you’ve used a previous version of Bamboo, you may have noticed me slipping in a field into the invoices table called “itemized”. This is because in the old system, all invoice information was in a single table (“invoices”) that included: id, invoice_number, work description, amount, and now “itemized”. This works great for an invoicing system were every invoice corresponds to a single piece of work. But with “itemized” invoices, it sucks. So my intention was that I would serialize itemized things and store them here. I spent about a week on and off getting this running.
It was awful. I wasn’t happy with the way it worked… I found it too slow, very limiting. So I decided to change gears, and worry about the front end for a while. I started and stopped no fewer then 3 separate approaches before I finally got one I was happy with. I spent a lot of time with javascript working through DOM node cloning and other things I wouldn’t wish on any of you. When I finally got to a solution I was happy with I flipped back into backend work… oh yeah… that damn serialized array again. So I started getting depressed. I was trying to use arrays and bend my system to do something it was not built to do. If I were building it again from scratch, the invoice items would be in a separate table, but I was concerned about all the legacy data and people using Bamboo who would need to migrate. But since I wasn’t happy, I just bit the bullet and moved all that stuff into another table (“invoice_items”) and spent an afternoon writing a migration utility that runs automatically when you update Bamboo.
After it was done, I was “OMG Ponies!”, this is perfect! Sure it required a major re-architecting of the invoice functions, but now that it works I’m pretty happy. Itemized invoices are a breeze, and you can even control taxes on individual items. I’m much happier with the flexibility. All in all… its a big improvement.
Utilities and Advanced Settings
Let’s take a look at a few of the things to expect. There’s a new menu item in the “root panel”. Under it, there are 2 new options; PHP Info, and Database backup. The PHP Info is to help me with giving support (if you have read the BambooInvoice Forums, you’ve probably noticed the first thing I always ask people to do when troubleshooting it to upload a phpino() file. This just makes it easier for all involved. I shamelessly stole the code from ExpressionEngine on that one. Hope I’m not violating any copyrights there (don’t sue me Rick!). There is also a database backup utility for… um… database backups. The backup utility is currently MySQL only - and in fact, with some of the new query-acrobatics I needed to do, I suspect the whole application is nearing the point of me not being able to say it supports multiple databases any longer. I’ll need to look more into that.
Next up is the settings panel. The settings panel has undergone a major User Interface (UI) change.
The result is (I hope) a more streamlined, and easy to follow panel. It actually offers more choice then before, including an option to save your invoices to the server as you generate them, as PDF files. The image is actually a link to a quicktime movie. If you’re interested in seeing what it looks like, take a quick watch - the whole thing is only about 15 seconds or so. If you watch it, you’ll see an advanced settings tab.
Bamboo now offers the ability to save copies of your invoices online in PDF format. Personally, I’m not sure I’ll ever use this feature, but it was specially requested, and so I include it here.
There are a few other notable UI enhancements. Here you can see that invoices are now separated by month in an effort to make a quick visual scan of your accounts easier. This turns out to really help when you’re trying to scan through the list. I’ve had it in my local copy for weeks now, and when I flip back into the “old style” I wonder how I ever did without.
Community Input
Another thing that this release will mark is the first significant input from the community into the project. BambooInvoice 0.8.2 is probably feature-rich enough for me, but the enthusiasm of the users has really kept me wanting to keep building. Itemized invoices, saving local PDFs, and many of the usability enhancements where user suggestions (thanks!). Also, another language (Portuguese) has been added, proudly bringing it up to 7 languages. Thanks Matt Finazzo and ELRafael! Some of the language translations may be inaccurate, so if you use Bamboo in a non-english language, please don’t hesitate to send me corrections or enhancements. Or heck, other languages!
Private Beta
Yeah, same paragraph from above ;) In order to make sure its running smoothly, I’d like to solicit some people willing to take part in beta tests. In order to participate, you’ll need to be comfortable backing up and restoring your database. I’d also love to get some non-English speakers into the mix. If you’ve been wondering how you can help out with Bamboo, this is it. Please contact me.
Continue reading “BambooInvoice 0.8.3 Preview”. Posted in
BambooInvoice with 4 comments 
October 08th, 2007
I’m finding this post difficult to write. Not because I’m having internal conflicts, but rather because I know think that this will cause some tension among Bamboo users. Please read to the end before you jump to any conclusions. Here’s the “executive summary” if you’re just wanting to skip to it.
Punchline: I’m thinking of doing away with the GPL as the license I distribute BambooInvoice under. By way of explanation, here’s a bit of history…
Continue reading “BambooInvoice may be moving away from the GPL Open Source License”. Posted in
BambooInvoice with 24 comments 
September 18th, 2007
I just took some time to put up some forums dedicated to BambooInvoice support, feature requests and general chat. Feel free to drop by and have your say!
http://forums.bambooinvoice.org/
Continue reading “BambooInvoice forums”. Posted in
BambooInvoice with no comments 
September 14th, 2007

There’s a new release of BambooInvoice available. To update, do a full backup, then replace all files except your config directory, and then run the update script.
I really wanted to get 2 new features in there before I released this version, but as the changes started mounting, and my time started dwindling, I figured I should just get this out there. Most notable is the reduced code (mostly due to the new CodeIgniter Session Library) and the final-I-swear-its-squashed-now-and-will-never-return fix of your company logo not appearing on the PDFs.
Under the hood, there was substantial restructuring of the database (do a backup both before and after you update), some speed enhancements, some file restructuring, and most importantly, I’ve laid some foundation for the some new features that I think will be a big hit.
The 2 new features planned for the next release:
1) Itemized invoices (you know… 1 “item” at “unit cost” type thing); and
2) Sexier PDF invoices. Here’s a preview so far.

I’m not totally sold on it… but anything beats the boring invoice I’ve been using so far. I’ve been also thinking about building in some type of invoice template system, so that people could submit their designs, and they could be offered as add ons, or installation time choices perhaps… not sure about that one yet.
With respects to the itemized invoices, this database changes this time around include a new field (“itemized”) for this, and I’ll probably just store things in a serialized array. I’ve been playing with the javascript I want to use to add in the extra items, and this will be really the first feature that Bamboo will have that will only be accessible to javascript-enabled users. I don’t feel this conflicts with accessibility though, as non-js users will still be able to use the traditional form. It will simply be an enhanced experience for js users.
I’ve also been asked if I’d be willing to set up support forums for Bamboo. I’d be an idiot to burn the goodwill of people who want to help (public thanks go to Marc Arbour for his role in this regard, and for his evangelising of BambooInvoice. Thanks Marc… I appreciate it).
To that end, one of the things I’ve been thinking about lately is the installation and update procedures. BambooInvoice is at the point now where it is not longer only attracting CodeIgniter/ExpressionEngine/PHP nerds; and as people with less technical experience start using it I want the experience to be as positive as possible for them. I’d welcome (with open arms) and suggestions for improvements in this area.
Continue reading “BambooInvoice 0.8.2 released”. Posted in
BambooInvoice with 15 comments 
August 19th, 2007
Some interesting items in the past week.
Ed Finkler, the man responsible for the great CodeIgniter podcast PHP Abstract, is at it again. This time, he’s down in Atlanta offering Intro to CodeIgniter for PHP works ‘07. Go Ed! If you’re in Atlanta, find that man and buy him a beer.
I’ve also seen a rise of interest in BambooInvoice recently. Eric Davis wrote Simple and easy to use invoices - Bamboo Invoice and Customizing BambooInvoice. Great work thanks. My favourite quote?
The thing I like most about it is that it provides just what I need to invoice my customers; it does not try to provide accounting, supply chain management, or any other “total business solution”.
And that my friends, is why Bamboo is around. Thanks Eric. Nice writeup. If anyone else has written about Bamboo, please do let me know, I’m always interested in reading those posts.
In ExpressionEngine land, there are a few neat things happening also. Smashing Magazine, in a writable of the RubyOnRails content management system Mephisto, wrote that ExpressionEngine is the first-class engine for professionals; if you’d like to achieve the highest level of flexibility and have the full control over the outer appearance and structure of your weblogs, EE is the first option you should probably consider
.
Also, Les Camacho (our fearless VP, and all around cool guy) started a weekly blog entry called “last week on the forums” where he highlights interesting and notable posts from the ExpressionEngine forums. One of the ones that really stuck out at me was a plugin by silenz called trunchtml. Nice work silenz.
Continue reading “CodeIgniter, Bamboo, ExpresionEngine roundup, August 19”. Posted in
BambooInvoice, CodeIgniter, ExpressionEngine with 3 comments 
< 1 2 3 4 >