Background
Project dashboarding - viewing the progress of a software development project from different viewpoints - has been an interest of mine ever since I started developing software. After one particularly difficult project involving issues with requirements, development and operations deployment and environmental difficulties, with no shortage of fingerpointing going on, I thought it would be good to step back and see the project from a linear timeline perspective and gain some objectivity. Additionally and especially for long running projects, viewing time linearly helps us as humans see the scope of events.
Simile Timeline + Google Calendar
I'd already had a calendar that was a great repository of significant events, which meetings I'd scheduled, etc. in Google Calendar. The data originally came from the corporate Outlook, synced up to Google Calendar with the Google Calendar Sync application.
Using the Simile Timeline Javascript widget, I wrote a quick export from Google Calendar using the Google Calendar Data API to format the calendar events into the Simile Timeline json format. Since the events were hand coded Client Requirements (grey), Impediment (red) and Success (green), viewing the events linearly helped clear up the discussion around where the issues were in deploying the application. This quick web application was very well received and project managers in both development and operations, as well as other non-project related developers and managers, were able to see the timeline of events that occurred for this particular project. I hadn't fully automated the import from Google Calendar to the Project Timeline page, and that's what led to the next step.
Dynamic Timeline Generation
The timeline view of the project was very useful and I thought it'd be a great perspective for other projects. Most of the projects at the organization use codeBeamer by Intland as an issue tracker and document repository. CodeBeamer has a much richer ability to code tasks / tracker items with statuses as well as start dates, end dates, and changed dates. Being able to dynamically pull project info via tracker lists and view them in a linear timeline looked to be a great start for a project dashboard.
The Timeline Builder was constructed with two picklists, one that displayed the lists of projects available and the second picklist that was contextual to the project's actual tracker lists. The codeBeamer repository is organized such that every project has multiple "tracker lists" such as Business Requirements, Change Requests, Production Releases, and Defects. Project administrators can also add tracker lists as needed. When a project is selected from the first picklist, an AJAX call is made to the codeBeamer services, returning the project-specific tracker lists. When a user selects a tracker list, the application issues an AJAX query and retrieves the list of tracker events and then displays them as a timeline. The timeline has three horizontally scrollable bands: a weekly view, a monthly view and a yearly view. Each of them can be dragged left or right and the display of events will be synchronized. The display is "coded" by status: tems with a status of "closed" are represented as a solid blue ribbon, individual events have a circle icon, "in progress" events are a slightly transparent blue ribbon, "open" items are represented by a slightly transparent red ribbon with a solid red circle icon. Selecting a timeline event yields a link to the original codeBeamer tracker item as well as a short description along with the open and closed/last updated information. Below the timeline is a tabular representation of all the event data.
Technology Decisions
The organization uses .NET predominantly so I decided on using WCF and the codeBeamer .NET SDK to serve up the Simile Timeline JSON and ASP.NET (without WebForms) and jQuery to make AJAX requests to the WCF codeBeamer services. Additionally, the organization is standardized on Windows 2003 and IIS6, so I passed on using ASP.NET MVC on IIS6. Each Codebeamer project can have multiple task trackers ("tracker lists"), so there were three total JSON services: GetAllProjects, GetTrackerListsForProject, and the last, GetTimelineForTrackerList, which retrieved all tracker items for a particular tracker list as Simile JSON events. Additionally, I used two jQuery plugins - jTemplates to populate portions of the page, and flexigrid to show the same events in a table below the timeline.
Findings and Stumblings
Looking at the variety of projects that we have in a linear format brought some interesting insights, the first of which is that almost no two projects use Tracker lists the same way. Not every project uses codeBeamer the same way, even though we have default tracker lists for Business Requirements, Change Requests, Production Releases, and Defects. Not every Task Lead uses the default statuses the same way - some close all tracker items only when a project has deployed, and create a separate status - "development complete" - for developers to use. Tracker items stay open throughout the iteration. For long-running, multi-year projects, cyclicality was shown quite well in a linear timeline - periods of project activity were clearly mapped to variety of business cycles.
With the differences in usage of codeBeamer trackers, the high level of ability to customize tracker item templates, and the variability in conforming to the SDLC in the organization, comparing project-to-project is difficult in general, not just with a linear timeline.
The decision to use .NET WCF and a jQuery-driven front-end separated the codeBeamer Tracker List JSON generation service from the UI application, creating two projects which may or may not have been a good idea - although service-oriented, it's two distinct codebases to maintain. Another interesting challenge was the codeBeamer API documentation for .NET - there isn't really any, for either Hessian C# or the codeBeamer Remote API. Using Reflector and referring to the codeBeamer Java SDK Javadocs did help, but a Sandcastle generated documentation set would've been useful. Thankfully, the Java and .NET API's are extremely similar, so it wasn't a problem interpreting what should've happened.
Project Next Steps / Directions
For the current iteration of this timeline builder I have a few minor technical issues I'd like to address. I'm planning on having better integration between the flexigrid table of events and the simile timeline so that when you select an item from the table, it scrolls the timeline to the relevant event. Another enhancement would be to allow stacking timelines of multiple projects for juxtaposition.
The organization also uses VersionOne's on-line agile project tracking application which has similar data to codeBeamer. A future rev to this application may include pulling from VersionOne project data dynamically in a similar manner (choose a project, see a timeline). Similar "coding" issues occur with VersionOne as with codeBeamer use, but since VersionOne is more focused on an agile project management lifecycle, I expect representing the variety of task types to be somewhat easier. A first version is pictured below (using jstree to visualize the project hierarchy, at the left). Coding (designating the display of open, closed, in progress, etc.) is a bigger issue, and relates more to the choice of software project management structure - agile, etc. - but is something that's greatly needed to get a consistent level of display. Other project tracking software, which I'm familiar with from a user standpoint, that may be usable include Redmine and Assembla/Trac.
From the technical framework, I may experiment with ASP.NET MVC next (which would remove the need for a separate WCF project) and then GWT (with the codeBeamer Java SDK) to see which one is more code-efficient.
I had all my Google Analytics accounts deleted (not all, just my personal ones, not the ones for a client or two). Very devastating. There's no direct e-mail for analytics support (just if you've forgotten your login).
Google directs you to their forums, where there're a few reports of people suddenly losing their analytics accounts without reason. From what I can tell, either they've "drunk deleted" (they deleted, but can't remember they did), or there's an actual glitch. I don't drink, so who knows.
Their recommendation is to restart and rebuild. I've sent an e-mail to their "I can't remember my login" support (via a form) and have been promised a response within "usually one business day."
I had about 22 sites and subsites being tracked so that's a lot of data (for me, at least). The bigger thing is the difficulty about support around this. It may be an edge condition (possibly the only way to have something deleted is by an actual deletion), but a few posts on the support forum doesn't leave me satisfied as a recourse.
I'm reconstructing my tracking items by looking through my sites and determining which sites were tracked. This time, I'm segmenting out my tracked sites - personal, business, clients - into separate Analytics accounts (UA-*'s) to (hopefully) minimize the impact of whatever caused this issue. (A stab in the dark, I know.)
It does make me wonder, tangentially, about mission-critical cloud data, though. Is there a backup for marketing/ad companies using Analytics? Google, oddly, doesn't back up the accounts and once an account is deleted it can't be recovered - all data is lost.
There is a Google Analytics Data Export API, so I guess that's an option. My experience with Google APIs tells me that this one'd be pretty easy to use, but I can't fathom wanting to back up the tracking data for the "unknown unknown" use case of accounts just disappearing.
To be fair, Microsoft SQL Azure doesn't offer backups, either. Their strategy is "resiliency" - with 3 copies of each database underneath their fabric. They expose almost everything in SQL Server 2008 with the addition of the Sync Framework. Backups, they claim, aren't needed but, if you desperately want backups, use the apis and make your own. (Why not also in the cloud, they suggest?) Maybe on Amazon?
On a different note, there's a new async tracking script so the code can be placed at different spots on the page rather than just the recommended bottom.
Other posts of mine referring to Analytics and tracking
In honor of my upcoming TOGAF 9 certification, I've put together a
Timeline of Enterprise Architectures - Zachman FEA, TOGAF, Gartner EA, from 1987 to today.
IIS7, right, the savior?
All I ever got, on my fresh new install, was "HTTP Error 503. The service is unavailable." I did everything (firewalls, apppools, debugging).
Turns out it was this deal:
Reserved URL : http://+:80/
User: Frak\G. Hussain Chinoy
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;S-1-5-21-563782757-1295803840-1578193986-1001)
Yeah, netsh http show urlacl showed that something was blocking 80. At this point, I don't even care who was reserving it (me, apparently), I just wanted it gone.
netsh http delete urlacl url=http://+:80/
... cleared that right up.
Next, my WCF issues. Cleared up instantaneously (compared to the 503 issues) via http://iweb.adefwebserver.com/Default.aspx?tabid=57&EntryID=34.
B&N eReader has over the Kindle for PC...
- Ability to read in a two page layout, as if it were a book
Kindle for the PC is missing...
Kindle for the PC has, over the regular Kindle
- Ability to see Notes and Marks at the same time as the text
- Color thumbnail view of book covers
- Buttons to easily sort by Most Recent, Title and Author
- Buttons to easily switch between Home and Archived Items
Add your own converted content to the Kindle for PC documents directory, "My Kindle Content"
Kindle for PC documents are located (Vista/W7): C:\Users\you\Documents\My Kindle Content
Kindle for PC syncs only the Amazon-downloaded content between PCs.
B&N eReader

Kindle for PC

The day was cold, brisk and windless. He'd just stepped outside his house, onto the unadorned concrete slab that passed for a porch in the subdivision to look out at the other houses. As he did every morning, he liked to look at the day, see what sort of hustle and bustle was going on, and use that to juxtapose the tenor of his sedentary stretch of office to come. In truth, the office was quite busy with being late to meetings, or conversing at cube thresholds with coworkers, but it wasn't looking out at an open space vista framed by a few houses in the cul-de-sac.
The neighborhood he lived in was quiet in the early am, busy around 8 or 9 as people left, unless it was the weekend when the elementary school aged kids and their parents would block off the cul-de-sac with kids-at-play flags and hover as children sped around on trikes, bikes, or just running with abandon. His cats would peer curiously out the front windows on weekends.
On the really nice weekends, he'd let the cats out in the back yard and sit on his pressed wood deck and listen to the weekend days open like a pop up book.
----
... And then I allowed myself to be distracted. Thanks to Google Doc's "Word Count" feature, 2,000 words is going to take 10x as long.
| Counts |
Selection |
Document |
| Words: |
- |
216 |
| Characters (no spaces): |
- |
932 |
| Characters (with spaces): |
- |
1146 |
| Paragraphs: |
- |
4 |
| Sentences: |
- |
8 |
| Pages (approximate): |
- |
2 |
| Readability |
Selection |
Document |
| Average sentences per paragraph: |
- |
2.00 |
| Average words per sentence: |
- |
27.00 |
| Average characters per word: |
- |
4.31 |
| Average words per page: |
- |
108.00 |
| Flesch Reading Ease: [?] |
- |
67.41 |
| Flesch-Kincaid Grade Level: [?] |
- |
11.00 |
| Automated Readability Index: [?] |
- |
13.00 |
So, yesterday, someone released a beta of what was supposedly a Google Chrome OS build. The twittersphere was all twitterpated. I downloaded this .deb file and stood up an Ubuntu 9.04 vm (VirtualBox) to see what it really was.
The Google Chrome OS, as announced in July, is a lightweight linux-based OS with the Chrome browser as its centerpiece.
Turns out, it's a Chromium build (4.0.222.6) with a compact navigation bar and a Google-icon menu on the top, left side. Clicking said icon brings up Google's Short Links.
Here're some pictures:

Starting it up

It's chromium++: note compact top bar with Google menu icon on left, clock bar on right

From ChromeOS

Compact nav bar

Clicking the google icon maximizes the browser and directs you to Short Links, but underlying OS's top bar is still visible.

Short Links info, "?" icon button
There's also this anomalous download of a SUSE vm with Chrome+OpenOffice, etc. Which is not the Chrome OS.
Google's planning on a Chrome OS announcement tonight, so hopefully there'll be an official release and more info other than just these previews.
I, for one, welcome the singularity.
Edit (10/16/2009):
I built the latest Chromium version (4.0.223.1 29191) and the leaked version is pretty different, as the latest browser does not have the compact navigation or the Google icon.
"This is actually just a small recruiting event and we won't be talking about Chrome OS at all," the spokesperson told Betanews moments ago, "just one engineer talking about UI design for Google Chrome (the browser)." The implication that Chrome OS was the subject was chocked up as a "false alarm." - betanews
All you need in this life is ignorance and confidence, and then success is sure.
- Mark Twain
Letter to Mrs Foote, Dec. 2, 1887
Feel free to apply to coworkers, consultants, management, work, politicians, etc.
10:09 AM Ed: How do you suggest I get this woman to shut up
me: Lol
Ed: She has interupted everyone for 2hrs straight
me: Where are you?
Ed: I'm gonna stab her in the neck with a pen
10:10 AM In meeting
me: Sounds like you need to write a meeting haiku involving a pen and her neck
[I couldn't help myself...]
10:11 AM
interrupting bitch
my pen would fit in your neck
let speech flow freely
I haven't announced my issues with the G1 hardware I've had, primarily because they've been due to my stupidity, but, of late, I've had to hard reset my Android phone a few times in the last year or so. It always takes me a while to figure out what I had on there and then go through the painful addition of those apps. So here's a list:

Amazon Mobile

Google Finance

CompareEverywhere

Shop savvy

Twidgit Lite

Google Sky Map

Astrid

Last.fm

Shazam

Layar

ConnectBot - ssh
Movies by Flixter
PicSay
Google Voice
Weather forecast widget v2, Francois DESLANDES
Digital Clock Widget, Maize
FBReaderJ - an epub reader

Amazon

Astrid

Compare Anywhere

Google Finance

Google Sky Map

Layar