The joy of coding kicked in again the other night after a colleague mentioned Pivot, a tool made by MS. Part of my organisations work involves ingesting and understanding massive datasets. My colleague was interested in using Pivot to help display information to the business users. What is Pivot? Watch this TED Talk for a quick run-down:
After hearing my colleague talk about it and seeing the aforementioned TED Talk my coding juices started flowing. It was as if Pivot was my hammer. So many things at work could be displayed so efficiently via Pivot. Not having coded in a while I had to reinstall Visual Studio. (I downloaded the Express version as I suspect my MSDN licence will soon be given away to another employee…)
After playing with PhotoPivot and grabbing the source I thought I’d have a go at creating some pivot data files that let me browser my music collection in Pivot. I figured that as I’ve got the album art for most of the albums it would look pretty good. Plus I can pull out metadata like Artist, Release Year, Album Name, Genre, File Type, Bit Rate, Beats Per Minute, Track Count, Album Size, Album Duration straight from either the audio files or from their directories.
I bashed out some code late at night the last two evenings after the family had gone to bed. Very happy with the outcome so far, but the size of the collection smashed Pivot. I have not optimised the images at all – not using DeepZoom yet. Trying to view the entire collection caused Pivot to hang 4 out of 5 times.
Progress so far is good. I’ve whipped up a shoddy Visual Studio (Express) solution that creates the cxml file, based only on facets like Artist, Release Year and Album Name. So far so good. Tonight I’ll be working on implementing DeepZoom. That should free up a lot of RAM on my poor box – it only has 4GB RAM and Pivot seems to use every bit of it. That being said the memory requirements of my collection should drop by a large degree when I properly implement DeepZoom. I found a little discussion regarding how to implement DeepZoom using the pAuthor libraries so I will probably implement the same thing in my code.
I have found a few implementations of Pivot libraries online. I am using them as a reference of things I can do…