DerekAllard.com

All your DerekAllard.com are belong to us

They’re coming…
Conquering the worlds of web design

BambooInvoice 0.88 is out, and has 2 very popular features

I’m proud to announce that BambooInvoice 0.88 is ready and all wrapped up!  The changelog is pretty substantial, and in fact the underlying code has undergone some pretty big overhauls.  A few highlights include: enabling of email functionality when invoice is closed; invoices now detail amount paid and owing if an invoice has partial payments applied to it; a “tax code” field has been added to client information (particularly useful for countries that require printing a client’s taxcode by law); a hidden config variable has been added to allow the separator between dollars and cents to be a non ‘.’ if wanted (for example $24,67) and; the whole system is now subclassed under a new controller for login and other tasks.

Most of that stuff won’t mean much to most users.  The “big” changes for this version are the inclusion of 2 oft-requested features.

  1. The ability to duplicate invoices
  2. Multiple Admin accounts

Keep reading for more details, including how these work, and previews of each in action.

The robot invasion is progressing

robot invasion teaserWho can this invader be?

Has the spaceship been repaired?

Is it true that they’ve made it out of the fields?

Have they really fought their way into our cities?

How many of them are there?

Can anything stop them?

Can DerekAllard.com survive…

EllisLab hiring to the support team

EllisLab is hiring an ExpressionEngine Technical Support Specialist. I won’t bore you with the job specifics (you can already follow a link and are literate) but I will say that 3 out of the 4 people doing development started in the support team (the forth fourth is Rick… who apparently founded the company or something), as well as the Director of Community Services.  I’ll also tell you that its fun, the EllisLab staff are awesome, and working on the product is rewarding.  If you are a CodeIgniter user and thinking about it, drop me a line, I’d be happy to answer questions.  The truth is, aptitude and attitude are universally more important then experience (although, that goes a long way to help). Its a part-time position, so you can get your foot in the door, and still keep freelancing if you wish.

In Flanders Fields

Thank you for your brave and selfless sacrifice. It means more to me, Canada and the world then we usually say.

Poppy by graveIn Flanders Fields

In Flanders fields the poppies blow
Between the crosses, row on row,
That mark our place; and in the sky
The larks, still bravely singing, fly
Scarce heard amid the guns below.

We are the dead. Short days ago
We lived, felt dawn, saw sunset glow,
Loved, and were loved, and now we lie
In Flanders fields.

Take up our quarrel with the foe:
To you from failing hands we throw
The torch; be yours to hold it high.
If ye break faith with us who die
We shall not sleep, though poppies grow
In Flanders fields.

— Lt.-Col. John McCrae

BambooInvoice featured in December Linux Pro Magazine

Linux Pro Magazine: DecemberWhat a fun holiday surprise!  Linux Pro Magazine has a wonderful article in its December issue called Smooth Solution: BambooInvoice web-based invoicing solution, which is (not surprisingly) an article about one users experience installing and using BambooInvoice.  Its wonderfully satisfying to see the popularity of Bamboo steadily climb - makes me feel like I’m on the right track.

Thank you to the author, Dmitri Popov.  Your article really expressed what I try to make BambooInvoice;  simple, uncomplicated, uncluttered.  Also thanks to Linux Magazine, who have made the article freely available as a PDF online (but go buy an issue anyhow!).  I hope this exposes many more people to Bamboo, and the article was certainly written in a way that will facilitate new users to come aboard.  Dmitri walks through setting up a host, configuring Bamboo, and setting up your first client, as well as brief introductions to the process of invoice creation and reports (which I’m proud to hear he reports as “mostly self explanatory”).

screenshots of article in Linux Magazine about BambooInvoice

I was also very pleased to read the final words of the article:

...the lack of a proper system in place can seriously disrupt your daily work and make the process of running your own business rather frustrating.  BambooInvoice helps you avoid that by giving you simple yet effective tools for generating invoice and keeping tabs on them.

This is exactly why I developed Bamboo in the first place.  The next version will be ready to go soon.  Most of the changes are already made, and while they are mostly compatibility changes and UI adjustments, there are a few nice things in there that I think most people will welcome and enjoy.  I’m also proud to say that the number of languages Bamboo is able to support is steadily growing, and it looks like Indonesian and Danish will be added shortly.

The project itself will continue to grow, as every few weeks I find new things that I’d like to see myself in a program like Bamboo.  Additionally, as more and more coders are picking it up, it means that the number of people offering suggestions, enhancements and code is growing.  It looks like very shortly Bamboo will hit “critical mass”, and become a self-sustaining project with a vibrant community and dedicated users.  To all Bamboo users - thank you; and if you have a need to track invoices and haven’t yet checked it out, please consider giving it a shot!

Fluid, Campfire, DataMapper and useful links

In no particular order, here are some things that I’ve found interesting, useful, or funny.  Mostly useful.

Fluid

A Site Specific Browser (SSB) that you can use to run web applications in.  I use it for BambooInvoice, ExpressionEngine and Campfire.  It rocks my socks.  Find it at http://fluidapp.com/.

Growl Notifications with messages for campfire and fluid

I tried using Pyro as a client for Campfire, but it didn’t go so well.  It looks like promising software, but for now… wasn’t working.  Enter my favourite app from above, Fluid handles it like a champ, but one thing that was bugging me was the lack of Growl notifications (if you aren’t using Growl yet and are on a Mac, go install it right now).  First result in Google was Growl Notifications with messages for campfire and fluid.  :: sniff ::... its like they read my mind.

Also useful is the Fluid Icons Flickr group.  I’ve got to get one for BambooInvoice into there…

DataMapper

DataMapper is an Object Relational Mapper written in PHP for CodeIgniter. It is designed to map your Database tables into easy to work with objects, fully aware of the relationships between each other.  Well documented and with a loyal following, it looks like Simon Stenhouse has a real winner on his hands.  I’m hoping to find time to really sift through the code but so far haven’t had the chance.

[edit: And D’oh! I was a fool for not also mentioning IgnitedRecord at the same time!  Thanks for the comment m4rw3r.]

Sequel Pro

Sequel Pro  is a desktop program for managing your MySQL databases.  It runs beautifully, and I think I’ve mentioned it before, but was asked again recently about it.  The only catch I found is that with Mamp I needed to set the “socket” to “/Applications/MAMP/tmp/mysql/mysql.sock” when connecting.

ExpressionEngine Plugin: SS Friendly 404

The SS Friendly 404 plugin suggests relevant pages to users on your 404 page. It is used in your 404 template and returns suggested weblog entries based on the final segment of the 404 URL.  Well documented and cleanly implemented.  Well done!

jQuery Pumpkin

Found in the jQuery blog, the jQuery pumpkin had me smiling for 30 minutes.
jQuery pumpkin

PHP if statement explained with Robots and James Brown’s Sex Machine

George Ornbo over at ShapeShed (an EE shop, go admire the majesty) wrote a cute introduction to the PHP "if" statment. If you can't have fun with your code... well, then you just plain can't have fun.

I get a fair few requests from designers asking for help with basic PHP. So I'm going to write a series on very basic PHP. It is not hard so let's start with a robot and the if statement.

Not normally worthy of a mention, but he uses robots to explain, and everyone knows I'm a fool for robots; but also offers this masterful bit of PHP code (slightly altered, for brevity).

if ($button == "pressed"{
    
echo "I am alive and will now perform Sex Machine by James Brown";
}
else {
    
echo "Malfunction! Broken, destroyed, smashed.";

Why do I get the sense that this title is going to get me banned from Google?

CodeIgniter 1.7.0 Released

CodeIgniter 1.7.0 just released.  Get it while it’s hot!  New validation library, greatly enhanced form validation, some sexy loader enhancements and “whacks” of fixes including significant work in active record.  For a list of all changes please see the change log. My personal favourite is this bug which I was proud to squash:

Fixed an edit from 1.6.3 that made the $robots array in user_agents.php go poof.

“Poof” you see… is the technical word for what was experienced.  Now that’s good developin’ fella!  Official announcement is here… but its not nearly as colourful as this post.

Adding time to jQuery UI Datepicker

For some work I’m doing right now I needed the current time output into the input field that the (excellent) jQuery datepicker uses, but I don’t need it selectable by the user.  The default format is

mm/dd/yyyy 

but can be formatted using the formatDate parameter.  The list of formatting options is considerable, including predefined setups for ATOM, COOKIE, ISO_8601, various RFC dates, RSS, TIMESTAMP and even W3C.  Unfortunately none of the predefined formats, nor the large list of date components includes time.

Read on for my solution to this dilemna.
jQuery datepicker