Computers and Internet

Solid State Hard Drives

Over the years I’ve built up a few PCs by researching and buying components then stitching them all together. I always strived for the highest performing computer I could buy without breaking the bank. Recently I discovered that the single best way of increasing my computers’ performance by changing a single component is by replacing the hard drives with solid state drives (SSD).

Solid state drives are essentially some kind of random access memory packaged into a box with hard drive data and power connections that can be used anywhere a normal hard drive could be used. There are a several different types of SSD drives, but the most common are the 2.5” Flash Memory based drives. The 2.5” means that they’re designed to fit in the standard space inside a laptop. The “flash” bit means that they retain their data even when there’s no power, as per a flash USB memory stick. There are other, faster, versions based on DRAM that require an on-board battery or a constant external power supply to retain data.

I upgraded my home PC with a Samsung 256 GB drive and my work laptop with an Intel X25-M 160 GB drive. These are both 2.5”. In order to install the Samsung drive in my home PC I needed to purchase a caddy, such as this Akasa Dual 2.5” mounting kit. It just pads out the space so that you can mount the drive in a standard PC 3.5” drive bay.

The capacity of the drives at the moment isn’t comparable to that of traditional drives (with 2 TB drives currently available for £135), so at home I keep all my photos, videos and music on traditional hard drives (2 x 400 GB, using RAID 1 to offer some level of data safety) and leave the SSD ones for applications.

If you follow the links to those drives on the Overclockers site, you’ll see that they’re not that cheap. However, the speed increase I’ve achieved on both systems is excellent. Application start up time is a fraction of what it used to be on the same machines. Search performance is noticeably faster in both Outlook and Windows in general. The whole system seems somewhat snappier. I had been thinking about building another PC from scratch with a faster CPU and more memory, but having made the SSD upgrade I doubt I’ll bother for another year or so.

It’s worth noting that if you’re upgrading to an SSD you’ll probably be wanting to install your operating system on that drive too. It’s a good time to upgrade to Windows 7, which is what I did. Great OS.

Thanks to Avanade UK’s “gadget allowance” for funding these purchases!

Technorati Tags: ,

Computers and Internet


I’m trying out an application to provide multiple desktops on my PC with a 3D cube effect for navigating between them. It’s called DeskSpace and was introduced to me by Ben Taylor. Have a look at it in action.

It provides six virtual desktops, one for each side of the cube. A short cut key (for me, Windows+Alt) zooms out to see the cube view whereupon the arrow keys or mouse wheel can be used to rotate the cube. Translucency helps you work out which way to rotate to access your applications. You can also ‘throw’ applications through the edge of one desktop to move them over to another, or quickly navigate to a particular application via a system tray icon.

It’s not a new application. It’s been around for a couple of years, in fact, and possibly as a result it seems quite stable. It works with XP and Vista (plus Vista x64).

Ben and I were talking through how it works. It seems to freeze each desktop into a bitmap image at the point you switch desktops, so updates to another desktop are not visible in the cube (unlike Vista’s card deck Windows-Alt feature). There is also occasional task bar application shuffling when shifting to a new desktop, indicating that it might be selectively hiding applications rather than maintaining multiple desktops in the fashion of multi-monitor desktop extensions.

Not sure how much of a memory hog it is – 4GB of memory sort out most issues – but it is reporting a working set of 150MB (not 150K as I previously stated!)

There’s a 30 day trial and then the per-person (yet multi-machine) licence is currently $24.95 US.

Technorati Tags: ,
Computers and Internet

Google Latitude Background Updates

I’ve installed Google Latitude on my HTC Touch HD, which came packaged as a new version of Google Maps, and can now see myself labeled on the map. Hoorah. Now all I need are a view friends with it installed.

One issue I can see, though, is that it does not seem to be updating my location in the background, if the blue dot on the map is anything to go by. I have to make Google Maps the foreground application for it to re-determine my location. Maybe the Android version works better.

Technorati Tags: ,
Computers and Internet

ReSharper 4 Released

ReSharper 4 has been released by JetBrains. I blogged about it previous here so I won’t go over lots of old ground. Just as a reminder, this version supports C# 3, including LINQ. Very much recommended as a tool. If you want to try it out then there’s a 30 day free trial. Additionally they’ve started a partner scheme whereby existing licencees (including me) can introduce people to the tool by way of a 60 day trial with discounts to licence costs should those people buy a licence at the end. So get in touch if you want to give it a go.
Computers and Internet

ReSharper 4.0 Beta Released

ReSharper is a fantastic add-in to Visual Studio, and the latest revision of it is now available for download as a beta. There’s a 30 day free trial period available, and I really would encourage any C#, VB.NET or ASP.NET programmers to try it out. I could try and convince you with talk of code-time compilation warnings, super intelligent statement completion, refactoring an order of magnitude more featureful than Visual Studio, but in the end the best argument for why you’ll want to buy this product is based on how much more productive you’ll be when you use it.

This next version has the usual batch of new refactorings, but the major story is its support for C#3 and LINQ, with specific refactoring for these.

Here’s the link to the download for the beta: Link to The Most Intelligent Add-In To Visual Studio

If they’re operating the same model as for previous releases then you may well be able to download successive revisions to the tool and restart your 30 day trial each time. With version 1 of the tool I was going for a full three months without paying a thing. I did subsequently purchase it (out of Avanade’s gadget allowance) and I think it has been worth every penny. I reckon you’ll think the same.

Computers and Internet

ProClarity Analytics Server “Migrate Repository” Hangs

ProClarity Analytics Server (PAS) is a web site providing storage of OLAP ‘report’ definitions and caching of the resulting reports. The ‘reports’ are organised by a hierarchy of libraries, briefing books and views. The metadata for all of this is stored in a database.

In order to copy these libraries, books and views between servers, ProClarity/Microsoft provide a feature in a tool called PAS Administration. There is a "Migrate Repository" button that leads to a wizard where a source and target database are specified. On the last page of this wizard is a "Migrate" button to begin the work.

Typically the migration should take under a minute. However, after performing the migration many times we were finding the migration took longer and longer – up to six hours in the end!

My colleague Dan Meacham ran profiler to check what it was up to. It turns out there’s a table called SecurityTimeStamp against which it issues a "Select *…". I’m not sure what causes insertions into this table, but on the various PAS servers we checked there were between 70,000 and 1,200,000 rows in this table!

A swift "TRUNCATE TABLE SecurityTimeStamp" on the source database brings the migration time back down to a few seconds again.

We’re using version 6.2. Version 6.3 exists and may fix the issue without resorting to dodgy database hacks. Nevertheless, I hope this saves other people a bit of time.


Computers and Internet

Useless PowerPoint discovery of the day…

PowerPoint prints hidden slides by default.

Tell me, why am I preparing training material? Not quite in the job description of a developer…

Technorati Tags:
Computers and Internet

Microsoft Office Groove 2007 folder sync not supported for Vista x64

"Groove" is an offering from Microsoft to enable teams to collaborate by sharing documents and other items between colleagues within a company and customers/partners outside of the company. It provides a ‘workspace’ in which files can be shared. In a simpler mode, one can choose a folder in Windows Explorer and select to share it through Groove.

When using a workspace, there is some integration with SharePoint in that documents can be checked in and out of an accompanying document library, but SharePoint is not a requirement for Groove. Documents are available offline, unlike just using SharePoint, and synchronized when on line.

Anyway, the point of this post was just to highlight to people that if, like me, you went to the trouble of installing the 64 bit version of Vista, the folder synchronisation tool does not work. This feature, arguably the feature that gives the product a purpose in life, does not work for 64 bit OS’s. I hope this gets rectified soon.

In the mean time I am back to using "FolderShare" for, well, sharing folders. It seems to just work, no matter whether it’s Vista x64 or 32 bit Win XP. Microsoft own this tool too!

Computers and Internet

First impressions: VSTS 4 DB Pros


My notes on my first impressions of Visual Studio Team System for Database Professionals.


I installed VSTS for Database Professionals using the DVD image from MSDN. This also involved installing MSDN Library for Visual Studio; it seems the integrated help will only work with that version of the library and not the Jan 2006 one I had installed for integrating with Visual Studio 2003.


The first action I undertook was to use the wizard to create a new project. It asks for an instance of SQL Server and then creates a DB on that instance with a name of the form "<name-of-project>_DB_<some-guid>". This database instance is used by Visual Studio to perform validation of the model, and so I guess should not be tampered with!


The project creation wizard doesn’t prompt for a database to sync with, though it is possible to import schemas or sync with an existing database after the project creation wizard has completed.


When I add a table in the project in Visual Studio, it generates a CREATE TABLE script and a couple of dummy columns. Not a great design experience. I was expecting something more graphical. When I try and rename the columns, using the Schema View tab, this must be done via a ‘refactor’. When I later created foreign keys to a column, this feature (as expected) updated those foreign key scripts too. It also optionally creates a refactoring XML log under a hidden "Refactoring logs" directory in the project root. I cannot see where this is used yet.


If I want to do anything more complex than changing a column name then it means editing the SQL script for the CREATE table. This includes adding a column, changing a column’s data type, nullability, identity, etc. It doesn’t feel like you’ve got the full design capabilities of Management Studio in an offline mode. There also doesn’t seem to be any form of entity-relationship diagram capability, for those of us used to using Visio or Erwin to maintain our database schemas.


Choosing "Build" on solution explorer context menu for the project creates a script under a hidden "sql" folder in the project root. This script puts together all the individual scripts in the project to create a single deployment script. Individual scripts include tables, views, SPs, functions, post- and pre-build scripts, security scripts… the list goes on.


Choosing "Deploy" on the solution explorer context menu for the project results in a build followed by the deployment. The deployment creates a database named <name-of-project>. The end result is two databases of this name in the server.


At this point it seems easier to start using Management Studio to edit the database, at least for a lot of coarse grained tasks like creating tables from scratch and references between tables.


In order to synchronise these changes back into the project it is necessary to create a new "Schema Comparison". This compares a project with a database, or compares one database against another.


The default comparison assumes your "target", i.e. the thing you want to update to be the same as the "source", is a database. In my case I had made changes to the database named <name-of-project> and I wanted to reflect those changes in the project. There’s a handy button in the middle of the schema comparison window that switches source and destination around, though.


My changes to be compared and synchronised were trivial; added tables, renamed columns, added foreign keys. These were flagged as a list of update actions split down to the table level. A button in the toolbar allows all the changes to be applied to the target. Individual update actions can be skipped if necessary. It would be nice if the schema comparison refreshed to reflect the state of play after the updates had been applied, but it’s possible that on an enterprise level schema this would be a bit slow.


A nice feature of the schema comparison is that when an update action row is selected, "source object" and "target object" scripts are shown side by side with changes highlighted in various colours.


My investigations continue, but I though some might find these first impressions useful.

Computers and Internet

Vista: Windows Experience Index

Just a short note to let you know my PC scored a "Windows Experience Index" of 5.2 in Windows Vista. This is quite a good score, apparently. In order to determine the score, Vista gives the computer a thorough workout in all its extermities and scores each component in turn (graphics card, memory, CPU, hard disk). The final mark is some kind of combination of these scores, giving a value between 1 and 5.9 (currently).
All in all this means I can be confident that writing emails will be really, really fast.