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.
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.
I received this error on the XP and other Vista clients I have who are mounting a drive from my Vista Business x64 server:
"Not enough storage is available to process this command."
It's a patently untrue statement as there're 1.5 free Tb hanging off the Vista Business server. Additionally, the event log shows error 2011. Googling yields a two potential solutions:
1. Increase a default not-present
IRPStackSize registry setting, something that's been there since the NT days,
KB 1770782.
Disable SMB2 and use SMB1 instead.
KB937082 That seems like a fail solution, tossing an included protocol.
I opted for #1 and the problem seems solved, though I have no idea why that'd work. Not really a satisfactory solution.
Jack had such a hard time putting XP Pro on his Lenovo IdeaPad S10 via bootable USB that I was a bit concerned about trying to put W7 on my S10-2.
I followed the instructions on ditii.com using a 4 Gb Patriot USB removable stick that I'd been using on my Vista desktop as a readyboost helper. A few parts of the instructions were a bit odd - the referenced zip's .ini file had multiple lines for the %Microdrive_devdesc% part when only one was needed. I had to run through the diskpart bit to assign a drive letter to the newly recognized usb drive a few times.
I used Slyfox's VirtualClone drive to mount the W7 RTM iso and copied the files over to the G: drive (the usb drive's letter) with xcopy. When installing W7, the machine had the main hard drive partitioned into three parts, a primary for the os, a 2nd for drivers (xp home, the original os) and a recovery partition. I left the 2nd and 3rd partitions alone. The installation went smoothly and completed within 45 minutes.
Lenovo has a forum dedicated to W7 RTM and on it I came across this thread which states there're only a few drivers that the W7 dvd or Windows Update don't include.
I haven't added any other drivers just yet, but the machine is working fine. Of course, there're the Lenovo specific buttons that don't work - QuickStart for the IdeaPad and the Restore button, but the camera and the touchpad work fine.
Jack ended up borrowing a coworker's USB DVD player to install XP Pro.
I received my SQL Azure CTP1 code yesterday (which you can register for here) and finally got around to plugging it in. Upon entering your code and entering a admin username and password, MSFT creates a database server for you fixed to the USA_Northwest region with a randomly assigned name (such as "q57qq26s2c") and in the project "SDS-only CTP Project". The UI on sql.azure.com for managing the database server includes a method to reset your admin password, functions for creating and dropping databases and generation of ADO.NET, ODBC, and OLE DB connection strings. That last one's handy to get the full dns name of the database, in the form of servername.ctp.database.windows.net, which can be used later in sqlcmd or SQL Server Managment Studio. That's it, though, no other db management features. According to the welcome e-mail, this CTP will limit use to 1 SQL Azure server and 5 databases.
Full SQL Server Managment Studio (SSMS) support isn't all there - you can't view databases, but you can connect and execute queries. The "USE" statement doesn't work, so you can't flip your query to another existing database. Guidelines and Limitations (SQL Azure Database)
Microsoft has a workaround on the forums (just start a new query in SSMS, connect to your specific database via the Options and you're good, except for an 'ANSI_NULL' error message which can be ignored). SSMS does time out quite quickly, so don't leave that query window idle too long (A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An established connection was aborted by the software in your host machine.)) Also there's sqlcmd, which, not being a "database person," I didn't know existed.
Ok, but, really, is it just a SQL database out there, in the cloud? Yes, it totally is.
I created a DB via their UI and then opened an existing Windows desktop app I had which uses Castle ActiveRecord, modified the config.xml connection.connection_string property and ran one of my test methods (you use TestDriven, right?) that creates a schema and then F5'd to fire up the UI. Add, Update, Delete, like a charm. I'll probably do a few more tests where I have a db schema created from scratch over the next few days.
Creating a database is easy (especially if you have Subsonic or Castle ActiveRecord do schema management for you), but what about existing databases? Can I restore a backup to the cloud?
After looking around, SSIS seems the only way to go. Use an existing db to generate the create scripts for the schema, then use SSIS to push over the data. I've never used SSIS so this should be fun.
Summaries from the forum postings, etc:
First off, please note that "SQL Azure" used to be called "SDS" - SQL Data Services - so some of the postings may not look like they apply, but it's the "SQL Azure - Getting Started" forums - they apply. The name changed on 07/09.
"Cursors will be IN, XML data type will be IN (but no schema collection support), Local temp tables are IN (#employee), Global temp tables are OUT (##employee), CLR integration is OUT This is also our current plan for v1.
" - Stan Kitsis, Program Manager, SQL Data Services, 07/30/2009
"TSQL Support in SQL Data Services," 07/07/2009, Stan Kitsis, SQL Azure Team Blog
Forums postings
In order to buy DRM'd ebooks from ebook retailers other than Amazon and load them onto your Kindle, the first thing you need to do is obtain your Kindle's Personal ID (PID).
Mobileread.com has a great wiki about all things Kindle including a walk-through of how to use Python and Igor Skochinsky's python scripts to obtain your Kindle PID, if you know you Kindle's serial number (obtained by looking at the side of the box). Here's their walkthrough wikipage (xp, vista).
This weekend, I made a quick Windows UI that executes Igor's python scripts:
The Kindle PID app, PID tab
The Kindle PID app, Fix tab

File > Preferences
Aboot dialog, showing that Python and scripts are available.
App example (dummy serial used)
Installation is as follows:
- Install Python 2.61 msi
- Download Igor's scripts, place them somewhere you can remember (I placed them in
C:\Software\dev\igorsk)
- Download and run Kindle PID
The app is very simple (a zipped exe), no installer. Feedback is welcome! hussain at chinoy dot com
Edit:
1.0.2.1 03/09/2009
- Updated for v0.2 of igorsk's py scripts
1.0.2.0 03/09/2009
- Added PID generation for iPhone/iPod Touch
1.0.1.0 03/08/2008
- Added Kindle Fix utility
I'm back. I went to Chicago and Florida a while and came back with a 15g platinum ring.
Yesterday, I had need to download a brother-in-law's Picasa photo album. He had a sizeable number of pictures and, although I could view each picture individually and use the Picasaweb's "Download Photo" function, I wanted them all.
I looked at the Picasa application and saw in the File menu there's an "Import from Web Albums..." function - but that's just for your albums. I wanted someone elses.
I looked through Picasa and Picasaweb's help for a while until I realized it's Google, it has an API. I've always wanted to play more with the Google APIs, having used their chart API.
My winapp browser took about an hour, includes a login, album lister, picture lister, picture preview, and album download functions. The real kicker was a subclassing of the PhotoQuery to create the proper REST URI to access "unlisted" albums (as long as one knows the correct authorization key).
There are a bunch of things that could be improived, but for an hour - which is slightly more than downloading 100 pictures by hand - I've got a reusable app to pull pictures!
With Bonus: LINQ to SQL!
I deal with many Microsoft Dynamics CRM servers that are in many different states of configuration and I often want a quick view of those configuration settings. This version of CRM, 4.0, appears to be in a bit of a philosophical transition with regards many things, including as to where to store their configuration settings - in the registry or in the CRM configuration database - a quandary that provides a huge challenge to their internal code when it comes to precedence for SDK calls vs client calls, etc. It's very helpful to look at these two places at once when determining if plug-in or client javascript sdk calls are failing.
I came up with the "CRM Environment Check" app that displays both and also saves the output to XML. Nothing special - it took me about 10 minutes last night to think of it, 10 minutes to fire up the VM and get halfway done, and 10 minutes this morning to polish it to what you see here.
Works as promised, with XML output.
I like to add a few techniques to my toolbox so I figured I'd put in LINQ to SQL for the access to the MSCRM deployment properties table. I did, it was pretty easy and I was aglow.
At least, that's what I thought.
Crowing about my success - sorry blog, I couldn't wait - I told Chris who immediately and cruelly started mocking me about the death of LINQ to SQL and my poor choices in life.
I read this on my favorite tech website, InfoQ, Is LINQ to SQL Truly Dead?, dated yesterday.
Glad I didn't do much more with LINQ to SQL other than a "select" statement.
This experience has been a quick lesson in Microsoft technologies - the newest stuff looks easy to use, has lots of promise, and delivers (when I get around to using it), but inevitably, has some, shall we say, "scaling" issues.
// Define a data object class
[Table(Name="DeploymentProperties")]
public class DeploymentProperty
{
[Column(Name="NVarCharColumn")] public string Value;
[Column(Name="ColumnName")] public string Property;
}
...
using System.Data.Linq;
...
DataContext db = new DataContext(configDbConnect);
Table DeploymentProperties = db.GetTable();
var query = from p in DeploymentProperties
where p.Value!= null
select new { p.Property, p.Value };
foreach (var row in query)
deploymentPropertiesValues.Add(row.Property, row.Value);
Update: Version 1.1.0.4
Now includes ADSI to display Microsoft Dynamics CRM IIS website info and the hosts file, needed for determining the workaround for the hardcoded 'localhost' in RTM's services. (There is a hotfix for the hardcoded 'localhost' particular issue.)
That's right, I opened VisualStudio.NET and started in on an URL lister, got as far as testing a console app to list links on a webpage and then realized: wget.
That was easy.(tm)
More Vista woes. For a while now, I've been unable to launch apps from the Start menu's shortcuts. I can go into the All Programs and then nav to the app and launch it, but from the dynamic shortcuts immediately available from the start menu, no go.
After Googling a bit, I found out that some third party shell extensions can interfere with launching from the Start menu. Way annoying. After downloading ShellExView, I went, one-by-one, through the non-MS extensions and eventually came to the shell extension for Hex Editor 3. Disabling that returned Vista's start menu to functionality. Whee!
What a start to Caturday!
At work, we've been using Microsoft's VirtualPC 2007 to do CRM 4.0 development for a few months now. This entails booting what's turned into a 16 gb VHD - Windows 2003 Server R2 SP2, SQL Server 2005 SP2 (w/ patches), SRS, CRM 4.0, and dev tools - VS.NET 2005, NAnt 0.86, etc. Not only is 16 gb huge, but the 1.5gb of RAM used pushes it to monsterous levels, rendering most of our developers unable to even fire up the image unless the shut everything else off. (Note to self: Shut down Firefox with the 50 tabs, 30 of which are AJAX refeshing.)
The most common optimization tricks for Microsoft's VPC involve the following:
- Defrag your host and guest hard drives
- Place the client vhd on a seperate spindle, aka hard drive.
Even a USB external for the vhd makes a massive improvement in the VPC's i/o usage and external USB drives (Maxtor, Seagate, Western Digital) are getting cheap. The ultimate, of course, would be a VHD on a USB stick.
- Get as much RAM as you can.
If you're using Vista, don't, since Vista won't allow pegging to 4 gb of RAM (in 32-bit mode) - "upgrade" to XP.
- Shut off all services you're not using on your host system
From the obvious SQL Server, IIS, to the semi-obvious, anything in your tray - IM clients, video card helpers - to the non-obvious, like iPod helpers, Picasa helpers, etc. Write a bat script to help you "net stop" and "net start" these. Every 100kb helps.
- Turn on Hardware Virtualization in your BIOS
If your PC supports hardware virtualization, turn it on
Then there's this little goodie included in VPC 2007 (since 2004, btw) that's often overlooked (from the VPC2007 release notes):
Virtual Disk Precompactor
Virtual PC 2007 includes Virtual Disk Precompactor, a utility that is designed to "zero out"—that is, overwrite with zeros—any available blank space on a virtual hard disk.
We recommend that you use Virtual Disk Precompactor before you compact a dynamically expanding virtual hard disk. Using Virtual Disk Precompactor should result in a smaller compacted virtual hard disk. After you install Virtual PC 2007, Virtual Disk Precompactor.iso is located in the folder: \Program Files\Microsoft Virtual PC\Virtual Machine Additions\.
To use Virtual Disk Precompactor, you must first capture the image file Virtual Disk Precompactor.iso. For instructions on capturing image files, see "To capture or release a CD or DVD" in the Virtual PC Help.
After you capture Virtual Disk Precompactor.iso, you can run Virtual Disk Precompactor by starting it from the CD drive of the virtual machine. To view Help for Virtual Disk Precompactor, type precompact -help. To run Virtual Disk Precompactor, type precompact.
Once you've precompacted, turn off your VPC and compact the VHD, itself.
This can be done by going to the VPC entry in the Console, pressing Settings, and using the Virtual Disk Wizard on the VHD file. There's an option to Edit an Existing VHD and Compacting it.
With all that said, I was able to get our 16gb VHD down to a svelte 13gb image. (Just in case you're keeping score here, that's not success.)
This is a post I wish I didn't have to write, because it explains how to make a perfectly fine, fast machine into something that runs slowly while also running another machine. Seems a bit silly, doesn't it?
By now, you're probably wondering why we don't use VMWare or some other solution, like, Xen? This is a good question, since VMWare's Player (not to mention images) are a few gb smaller in size when converted using VMWare Converter (takes machines and other vms and turns them into VMWare images) and also appears to have less I/O dependency (no need for a 2nd drive) and doesn't allocate RAM (no need for 3+gb for a 1.5gb image). The answer, at this time, is that we're looking into it, although I'm starting to wonder why I'm trying to optimize a machine inside a machine and when I'm going to get back to coding.
Other good tips:
So, one of the consultants I interact with has a Dell's latest high-end laptop every time I see him, ostensibly for demonstration. I really can't see the need for a BluRay DVD drive and 2 SLI video cards, but hey, I'm not paying for him. He runs Vista Ultimate and his background is the new feature in that version of the bloated, slow, RAM hog OS called DreamScene which allows a .wmv or .mpg to be looped as your background. That's right, not a static background, but one in motion. It's actually pretty visually stunning which, might I add, is the hallmark of Vista.
Like ReadyBoost and Aero, it's technology developed to compensate and distract from the OS's underlying disappointments. Having only Vista Business, I decided to use the powers of Google to figure out whether or not I could get this exciting and productivity enhancing feature. It turns out, I can, via some hacked dll's. Yes, I know what you're thinking, putting hacked dll's over a suspect OS, what are you doing? Well, my public, I'm doing it for you. After a few tries (apparently, the guy who did the hack got a cease-and-desist from Microsoft almost immediately) I found and installed the dlls that allowed me to use a few pretty scenes in the background. Do not get me wrong, it's pretty and not at all distracting when I'm using other apps.
With that said, it constantly uses 10% - 40% of the CPU to keep the loop going. Way to go Vista, first, take my RAM, now my CPU. What's the point of this OS again?
For the last few months, I've put aside my Java ways and have dove headfirst into the ever expanding vastness of the Microsoft pool. At first, it was dark and unfathomable, overly verbose documentation and what appeared to be poorly connected components, but now, I'm starting to understand the Way. In doing so, I'm sort of still amazed Microsoft can't get it together, what with all the things they have going for them.
I've been a long time fan of Google Docs and still use Google services on a regular basis, but Microsoft now has
Office Live (hello web based SharePoint Services) and a whole slew of "live" offerings (not even mentioning CRM live):
Windows Live Messenger - a major upgraded version (8.5) of msn messenger that has aspects of Skype or GTalk (audio, video), plus shared synchronizable folders between contacts- It's configurable, via a third party tool called A-Patch, a great way to remove ads, etc.
- A beta of 9.0 has been leaked, too, which has multi-location sign in, per contact sounds, SPIM filters and more
SkyDrive Live - a beta of a storage service (Amazon S3?)
SharedView - another beta that does person-to-person shared desktops or apps, like LiveMeeting or WebEx, but personal
What's strange to me is that I hadn't heard of these things before and that to me means a few things: they either aren't pushing the integration of all these things enough (and they all seem to have hooks into each other) and there's no vision for it or the net they've cast is woven so wide, they're not catching anything.
It's exciting that not only are web-based products getting mature, but the approach to using and developing for them is maturing as well.
I'm expecting great things from both Microsoft and Google over the next year.
Omg, the day has finally come! Yay, yay, dance of joy!
Apple's iTunes 7.2 with QuickTime 7.1.6 has
finally gotten Vista support! Well played, Apple. Waiting almost 6 months to release the killer app, iTunes, that doesn't force Windows Vista to barf out of Aero - the singular reason to even look at Vista - and into Vista Basic, a user experience not worth the experience.
For you, Apple, for finally allowing Vista to be usable on a daily basis, you get
One Balki, the highest honor any company can ever expect to receive:
+
=
(Crazy Delicious!)
Dell is now offering WindowsXP as an option to purchasers of their home computers, something they'd previously stopped when Vista came out. Apparently, people figured out that Vista's kinda crap.
"We heard you loud and clear on bringing the Windows XP option back to
our Dell consumer PC offerings," Dell responded in a Web posting
Thursday.
From
PC maker Dell again offers Windows XP, Seattle PI, today.
While I figure out where (and if) to post feedback on Eclipse's latest build for Windows Presentation Framework, I'm making a note of them here, so I can remember and then forget and later look at it winsomely years later trolling through my own blog and being embarassed.
- 3.3M6 WPF leaves up an communication error dialog box artifact when the Update Manager fails to connect to a server. It remains in the way of using the app's editor window. (Indiana University was chosen as the mirror site automatically, then failed/timed out. To get it to update, I had to manually chose OSU or something else.)
- It also attempts to check all subupdate sites of an update site - eg, when I go to the Europa Discovery Site, it tries to download everything as the default option instead of letting me check the checkboxes near the entries I want. This has the consequence of stopping me from using Eclipse while it downloads, well, everything.
- The Update Manager, when it does get everything finally loaded, flickers on expanding the list as it checks plug-in/feature dependencies.
- Clicking "Filter other Features on the list" causes the UM to cycle through and enable check marks on all lists of updates. Sigh.
- "Run in Background" for the update presents the same artifact (a dialog that won't go away and isn't updated) as per the first comment.
- Spacing of text between lines on menus and trees seems a little larger than necessary
Can you tell I haven't even gotten updated yet?

Vista doesn't "crash" so much as catch itself crashing and restart Explorer. At least once a day.
Also for you, an article:
The Most Annoying Things About Windows Vista, PC World, 02/2007
The new iTunes + QuickTime (7.1.5) doesn't solve the previous issue, where any QT using app drops to Vista Basic UI. Uninstalling only QT makes iTunes unuseable. Thanks Microsoft Apple someone (probably me, for "trying out" Vista in the first place.
That brings me back to the whole wtf about Vista - If apps you want to use cause you to diddle with settings instead of using the app, it's the equivalent of a home-grown computer system, a less interesting networked uber executor, a "linux" if you will.
The Vista verdict still remains sliding slowly to Cancel. I have ordered 2 more GB of RAM (5300, not the 4200 that came with the system, and not the 11600 that in theory the motherboard can handle) and hopefully that'll allow me to have more than 5 tabs in IE and Firefox open at once without lag when switching between them. Yes, seriously. I've installed like 6 non-MS apps on this machine, Adobe Lightroom, Trillian, Mozilla Firefox, Eclipse 3.3M5, SecureCRT, and 7-zip. I haven't installed more for fear of being further disappointed.
So far, the benefits to going Vista boils down to Aero, the new UI with the pretty eye candy. If there's anything that stops Aero from working, I'm liable to make frownie fase and tell everyone I know to stay away from it. So...
Do not install QuickTime if you like Aero.
I installed QuickTime (7.1.3) because some webpage wanted it and suddenly Trilian (3.1) became the reason that Windows Vista alerted me that Windows Vista Basic was now the profile I was going to use, until I quit Trillian. If apps I use start not working, the OS becomes a non-starter.
Searching the web gives you some horsemung explanation of how QT and GDI and Trilian's av.dll and blah blah, but it boils down to having Areo diabled. That means no transparent borders on windows, no window sizing effects, no "Windows Flip 3D," and no toolbar minimized menu previews.
I ended up uninstalling QT, rebooting, reinstalling QT, making sure Trillian had no camera and no camera source. QT in web pages seem to work. When it's a random combo of things that work, that's called "fragile." The alternative, of course, is to not watch the Black Snake Moan trailer until Apple releases a QT that works with Vista.
Thing #2 is the native unzipper. I downloaded and proceeded to unzip Eclipse, the Java-based IDE (size: 120Mb), and Vista thought about it, then told me it'd take 5 hours and 36 minutes to extract. Seriously? Yes, 5+ hours. That's unacceptable, Vista. Fix that.
Third party unzip programs work great and as expected. I prefer 7-zip. But that's not the point. Out of the box, don't expect a coffee break when unzipping something (unless it's under 120Kb, aka 11 minutes), just go to bed. That's what I did.
Today's the third day of my life with Microsoft's newest Windows operating system, Vista. I purchased a new computer from Dell in order to replace an ailing development machine and decided to also throw Vista into the mix of integrating a new desktop into the network.
There are a few things that are striking:
- Aero, the new "look & feel" for Vista, is very pretty - so pretty that when I look at the old G3 with Mac OS X Panther (10.3, the latest is 10.5) on it sitting off to my left, I realize where Windows got their inspiration for their resizable icons, animated window expansions, and backgrounds. It's still impressive to look at. "Windows Flip 3D" is an overly clever implementation of a much needed way to see all the open applications. Makes me want to open lots of applications just to see them in half-profile.
- Installing applications is aggravating. Who knows when User Access Control or, as my brother puts it, the Department of Desktop Secruity, will come knocking, forcing the beautifully coifed but otherwise helpless onto the vast expanse of the internet where mostly Vista haters reside to find an answer. The much maligned Secure Desktop of the "Cancel or Allow" fame (it's "continue or cancel" really) blinks the monitor and turns everything else but the dialog box dark. That's like having someone slap you in the face randomly while having a pleasant conversation. It can be hobbled, but as people will lament, it takes away the secure desktop.
- The sounds are soft and in the background, "part of the wallpaper" as they intended. They spent a lot of time and money on it, and I can barely hear the audio alerts. When I do, I'm in a peaceful trance or attempting to be really quiet and still so I can hear the alerts. Peaceful trance or audio equivalent of a deer in headlights - I dunno, one of the two.
- Things XP just does, like finding printers, seems missing. It took me two tries and another visit into the meat-smelling wilds of the internet to find Microsoft fanbois in order to have Vista recognize the HP LaserJet 1100 attached to another networked computer.
- Unzipping folders takes hours, literally. It's either a Vista bug or the Norton anti-virus checking each bit as its extracted. I haven't been able to emperically isolate who's screwed up here. Unzipping Eclipse (120mb zip) took 6 hours. Yes, hours. I went to bed.
- The Dell Dimension 9200 is, amazingly, "out of the picture" - it's quiet and just performs. The operating system is the star here. That's refreshing to not feel like a patchwork of hardware's a hurdle. With that said, Dell peppers and customizes the OEM OS with enough tchotchkes and unnecssary and useless trial apps that, if I didn't know it was Vista, I'd swear it was a sponsored NASCAR jacket. I'm seriously considering reinstalling the OS just to get rid of Dell's preinstalled mung.
This is day three of the rest of my life: Cancel or Allow?