VM Ware Fusion - Cleanup Deleted Snapshot Fails - How to get it working again
I *love* developing in a VMWare virtual machine. I can tweak and break things in the OS as badly as I want then simply revert back to a snapshot or another backup to get back to a good state. But my VM for Vista is huge and when it gets bloated it takes up even more space.
Starting with VMWare Fusion 2.0 you can now have multiple snapshots. I haven't found a need for this so when I create a new snapshot I delete my old one. When you delete an old snapshot, VMWare will cleanup old files that it no longer needs thus keeping the size of the virtual machine as small as it can be.
Recently I had an error occur when VMWare was cleaning up the deleted files. Ever since then whenever I deleted older snapshots I would get an error saying I didn't have enough disk space to delete older files and my virtual machine continued to take up more and more disk space.
Here's how you get things working again:
1. Copy your virtual machine off to a drive that has plenty of disk space - the recommendation I saw was at least enough free space as the size of your virtual machine. I used one of the external hard drives I keep my virtual machine backups on.
2. Start the copied virtual machine up so that its running from the bigger disk.
3. Take a snapshot.
4. Delete the snapshot you just took - this will cause VMWare to start its cleanup and since its now on a disk with plenty of room it will be able to complete. Cleanup can take a while so be patient.
5. Copy the cleaned up virtual machine back.
For me this shrunk my virtual machine fro 56 Gigs back to 39 - big difference!
Posted by Nick Harris on November 14, 2008 at 12:21 PM | Permalink | Comments (1)
My New Role
Just as I was gearing up to start work on Inbox 3.1, something happened. One of our great platform developers took a new job, creating a new opportunity for me at NewsGator which I've decided to take on. I'm now the lead developer of the NewsGator API!
For those who don't know my history here, I started just as the API was beginning to take shape. Inbox 2.5 was the first client to use our synchronization system via the new API so I've been intimately involved in its testing and design aspects for years.
I've also built a number of NewsGator client applications that all use the API - Toolbar, ScreenSaver, Desktop, Ticker (not public but very cool). At one point I even took on a brief project manager role that helped synchronized the API's we use at services.newsgator.com with the API's used on the NewsGator Enterprise side of the house.
Our API is very powerful, has both REST and SOAP versions, and is also used by some of the biggest media and news companies in the world, along with being the sync engine for NetNewsWire, FeedDemon, Inbox and NewsGator Go. This is a great opportunity for me to expand my programming experience back on the server side, get involved with SQL again (and our massive database) and - as Greg put it - "scratch that computer sciencey part of my brain that Outlook development does not".
For now I am still the lead developer for my other client products as well, but they'll take a lower priority to API work. I can't say for certain when anything new will come out of those but my intention is to continue working on them since its work I really do enjoy... but if you have concerns that something you love won't be fixed/enhanced please let us know!
Posted by Nick Harris on November 11, 2008 at 09:11 AM | Permalink | Comments (7)
Signed. Sealed. Delivered.
The girl in the white t-shirt towards the beginning (bottom right) is Anne Hathaway! Really!
Posted by Nick Harris on November 4, 2008 at 10:46 PM | Permalink | Comments (0)
Congratulations President Elect Obama
Posted by Nick Harris on November 4, 2008 at 10:12 PM | Permalink | Comments (0)
SQLite and .Net
One part of Inbox that I detest is the back-end storage model it uses to keep track of posts and their states (read state, flag state, current folder). It basically keeps this information in memory then serializes it out into XML files when you shutdown Outlook. It wasn't my decision to write Inbox this way, but I have kept this code and added to it considerably over the years.
One reason I kept it is that I didn't want to deal with installing a database along with an Outlook add-in. Seemed like overkill really. But that was before I played around with SQLite.
SQLite along with System.Data.SQLite make it ridiculously easy to install a back end database with full SQL support. How easy? Include the System.Data.SQLite, then create a connection:
SQLiteConnection sqliteConn =
new SQLiteConnection("Data Source=MyDb.db3;Pooling=true;FailIfMissing=false");
That's it. Database created, ADO object ready, now just populate it. I used SQLite Administrator to create my database schema, then just exported the SQL script to execute in my actual program.
So far so good. Hopefully this works out. Even though users won't *see* a difference they should notice an improvement in performance. And my code will be drastically simpler which is always good... that is if everything works out and I can get everything ported!
Posted by Nick Harris on November 3, 2008 at 03:41 PM | Permalink | Comments (2)
What do you want in Inbox 3.1?
I'm starting to think about what features should be included in Inbox 3.1. Its only a minor release so there won't be a whole lot new, but here's what I'm thinking...
NewsPage Redesign
Redesign to the NewsPage to make it both easier to use and more visually appealing. This includes giving users the option to change the order/grouping of posts along with the ability to share, flag and tag posts.
Tagging
Tagging is now part of the NewsGator API which means NewsGator users have the ability to tag posts and have those tag synchronized. This means that tags you add in NewsGator Online also get added in NewsGator Inbox. This feature is in the works for FeedDemon as well.
What else? What features would you like to see in a new version of Inbox? Let me know either in the comments of in the forum.
Posted by Nick Harris on November 3, 2008 at 10:41 AM | Permalink | Comments (0)
