It struck me that keeping track of that stuff on Google Calendar would be a reasonably good way to centralize it and make it accessibly from any of the computers that I work on (Windows, Linux, Mac, etc.) without depending on software. So, I took a quick look at the PHP API for using GCal's information.
It requires the Zend Framework, so this was an opportunity to install that as well. The instructions on installing the Zend Framework were a bit vague. What it boils down to is this. The "Zend" directory inside the "library" needs to be on your "include_path" for PHP. On my Ubuntu development boxes, that means putting that Zend directory as "/usr/share/php/Zend" and the existing configuration picked it up.
I then grabbed the Calendar.php sample file. There's lots of stuff in there I'll (and you'll) want to change in it for ongoing use (like lots of the defaults). However, it works well to get up and running. I stripped all of the stuff at the end of the file (the stuff that wasn't inside a function), thus turning the Calendar.php file into more of a library to be included.
After including that file in my "createaccomplishment.php", I set up a really basic form for creating an entry.
Add Accomplishments Code: (View Highlighted Code)
I made a couple of changes to what would be a normal calendar entry.
- I hard-coded the times. After I dig through the library and API a bit more, I'll probably switch these to all day events.
- I added "ACC--" to the title of the appointments (ACC for accomplishment). This way, they'll be easy to search for specifically.
- I used the "where" part of an appointment as my entry for which project the accomplishment was for.
Now, at first blush, I can't see how to specify a given calendar (and neither can lots of other people looking for it online). That would be better than a specific subject. Then, you could just search through your "Accomplishments" calendar, which would have nothing else on it. But, this will do to serve as a starting point.
Then, just to give a quick example, you can search for all appointments that contain our marker in them anywhere. It's crude, but it gets the job done.
Show Accomplishments Code:
Aside from the couple of things I'm looking for in the API, it looks like Zend's implementation of the API is relatively easy to work with and would make other kinds of tracking easy as well.
Once integrated into browser bookmarks or desktop widgets, commandline scripts or other places, it could make quickly noting down accomplishments really easy. Once they're stored, they can be retrieved by the variety of criteria that make sense:
- All accomplishments for a given week, month, year.
- All accomplishments for a given project (which is stored in the location, like I said)
- With additional microformatted data in the content, you could store and retrieve all sorts of other useful bits
Of course, what I *really* want is a system that lets me keep track of projects according to who I was employed by while working on it, what technologies were used, duration, who the client was, who the managers were, etc. That would make the various forms of resume's, skills inventories, chronologies, etc. that recruiters and other consulting firms are constantly looking for. Then, the fact that they all seem to ask for slightly different formats won't be a problem.
I could just export it by project, listed chronologically according to employer for one and by employer, listed chronologically by project for another, while turning "Target Corporation" into "retailer" and "Wells Fargo" into "financial institution" for still another. Similarly, I could query such a system for the actual number of months using XSLT, C#, Reporting Services or whatever else I've worked on instead of trying to do those calculations and adjust them constantly.
Being in the effective business of "wholesale" consulting, I tend to make more use of resumes and such project details than more "retail" consulting/freelancing consultants.
Does that exist out there somewhere?