Use Zune Pass on Windows 8 Release Preview

Windows 8 is the next iteration of Windows. For those not as familiar, Windows 8 is a radical change as Microsoft is introducing the Metro design for Windows. You can find out more about Metro at http://en.wikipedia.org/wiki/Metro_(design_language)

With Windows 8, Microsoft is integrating a lot of its services to take advantage of its several platforms. Windows Phone, Xbox, Hotmail, Skydrive and other consumer services already uses one authentication via Live ID and it makes sense that the new OS will take advantage of this. If you’ve tried the pre-release versions of Windows 8, you can easily see the influence of this even from the login screen.

With this integration, news of rebranding of some services like the Zune are abound and I wouldn’t be surprised if that happens.

Anyways, if you’re using a Zune Pass, don’t fret as you can still access music just like before using the built in music app in Windows 8.

As I wanted to maximize the integration of the services with my new Windows 8. I loggedin using my hotmail account synced with Zune and lo and behold it actually works.

The music app works just like the Zune app but some features are missing like the mixed view. Some of the navigation features are still missing and adding songs to the current playlist doesn’t exist.

not really sure how to add songs to “now playing” and don’t tell me i haven’t tried “add to my music”

I know this is still an app preview so no surprises that these features are missing and I’m guessing that they are focusing on the main features so far.

There’s a bit of getting used to in the Music App. For one, there’s a lot of scrolling and clicking going on. Just to know the individual songs in the album, I have to do twice the clicks compared to the Zune app. Because of the design of Metro apps that has to cater for different form factors like tablets, this limits power users like me to navigate the app like everybody else. Whenever I use an app extensively, I learn as much shortcuts as I can as I want to get to the action as fast as I can. Browsers, email clients, OSes and such allow you to do this, but once an app is designed for multiple purposes it loses this advantage. I know Windows 8 has several shortcuts for you to get to the settings, the app bar, etc, but if you are navigating on the content of the application yourself, the developer has to create shortcuts of their own.

Overall, I’m very happy that the Zune will be continued (either as the Music app or something else) but I hope they empower the Music app just like the Zune. A nicely designed app that shows me what I want to see when searching and exploring new music. Come to think of it, the Zune app was one of the first applications to use the Metro language way back. A nice, cleanly made application that made great use of white space all through out.

If you are using Windows 8 Release Preview and notice any gems like these, please comment on. Would love to know what you think of the apps and how you’ll be using it.

PS. Super happy that Skitch is on Windows 8. Skitch is a photo annotating app on the Mac OS.


LINQ to XML on Windows Phone 7

I was dabbling with Windows Phone 7 and I hit a bit of a snag with LINQ to XML as I need to access a web service that returns XML. I’m using http://isbndb.com/ API to access book information.

It’s a pretty standard task and most applications nowadays access some form of web services to add functionality to their apps. Just so you know, there are tons of resources online but I had to do a bit more debugging thus my guide (which I usually do for myself just in case I forget:) )

Make sure to check out Scott Gu’s excellent Twitter App tutorial that uses LINQ to XML. If you’re having a bit of difficulty grasping the concept, head over to MSDN as they have a very good overview/explanation of LINQ to XML.

On to my code.

I needed to download the XML based on my query string (easy enough) and I’ll get an output like this

- <ISBNdb server_time="2012-01-07T07:03:57Z">
- <BookList total_results="47" page_size="10" page_number="1" shown_results="10">
- <BookData book_id="akrasia_thief_of_time" isbn="1891153048" isbn13="9781891153044">
  <Title>Akrasia, Thief of Time</Title> 
  <TitleLong>Akrasia, Thief of Time (Eden Odyssey D20)</TitleLong> 
  <AuthorsText>David Chart,</AuthorsText> 
  <PublisherText publisher_id="eden_studios">Eden Studios</PublisherText> 
  </BookData>
- <BookData book_id="a_thief_on_morgans_plantation" isbn="1881889629" isbn13="9781881889625">
  <Title>A Thief on Morgan's Plantation</Title> 
  <TitleLong>A Thief on Morgan's Plantation (Mysteries in Time)</TitleLong> 
  <AuthorsText>Lisa Banim, Tatyana Yuditskaya (Illustrator)</AuthorsText> 
  <PublisherText publisher_id="silver_moon_press">Silver Moon Press</PublisherText> 
  </BookData>
  </BookList>
  </ISBNdb>
     

So it’s your job to make sense out of that output.

When using LINQ to XML make sure you include references to System.Xml.linq.

Downloading and querying the Web Service is straight forward.


private void search_book(object sender, RoutedEventArgs e)
        {
             Uri serviceUri = new Uri(("http://isbndb.com/api/books.xml?access_key=XXXXXXXX&index1=title&value1=" + Title_textbox.Text ));

            WebClient client = new WebClient();

            client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(downloader_Completed);
            client.DownloadStringAsync(serviceUri);

        }

search_book is just an event handler for a button or “enter”.
The Uri is where you put the web service then I parse with my search item.
WebClient handles all the webby stuff.
There’s a bunch of ways you can do the next step but all it does is proceed to downloader_Completed once the download is complete. That’s where all the LINQ stuff comes in as you already have the XML. Now it’s time to make sense of it.
You need the DownloadStringAsync with the URI that we defined awhile ago.

void downloader_Completed(object sender, DownloadStringCompletedEventArgs e)
        {

            if (e.Error != null)
                return;

            XElement booksDL = XElement.Parse(e.Result);

            var list = (from c in booksDL.Descendants("BookData")
                        select
                            new book_class
                            {
                                Book_title = c.Element("Title").Value
                            }).ToList();

            ObservableCollection books = new ObservableCollection(list);
            listBox1.ItemsSource = books;

        }

Line 4 – First off, if there’s an error just exit out of the function.
Line 7 – MSDN has a good article on the different classes that you can use when using LINQ to XML. Depends on your needs, but XElement usually is good enough for basic stuff.
Line 9 – This is where all my pain arised. Not being used to how XML are traversed along with the multitude of methods in XElement, I seeked help from my awesome friends and Bok showed me how to debug it.
Line 11 – Of course you need a class to be able to receive the data so I created a book_class with the appropriate properties. (I simplified the example to only handle book_title)

namespace librarian
{
    public class book_class
    {
        public string Book_title { get; set; }
    }
}

Make sure that you are getting something back.
You would need a good idea of what the structure of the XML is so that you know what method to use. The ISBNdb XML return is about 3 nodes deep but the concept is pretty much the same for any XML return.

In this example I was trying to figure out if I’m getting anything back based on my query and it looks like I got the correct entries.

Lastly, line 16 & 17 just passes the list to listbox that I have defined in the XAML. Bok suggested to use ObservableCollection as it updates the variable in case your data has changed as it always “observes the collection”.
Once you pass it to the listbox, you can have more event handlers there like when they click an entry.

That’s it for my simple tutorial of LINQ to XML. Of course, there are a lot more resources out there but I wanted to focus on the simplicity of my example to get to you to access web services easily.

If you have any questions, please feel free to comment and if you think there are better ways to do my example, please do suggest.


Zune 4.0 Review

I’ve been an avid user of the Zune since I got my first Zune pass and I’ve been downloading tons of music and getting to know amazing artists all through out via the marketplace. With the release of the Zune HD, the Zune team also updated the software that comes with it and I have nothing but praises so far. (read my zune pass post here for some context)

Well this ain’t a review on Zune HD just because I don’t have one and I don’t think I’ll have one anytime soon. (Darn restrictions! I bet I’m not alone) This is about the Zune 4.0!

The Zune team made a great job of updating the player in so many aspects. I’m always a firm believer that small changes have great impacts and this update just screams it right into my face. There was no major UI change but rather small functional updates that just makes the experience overly enjoyable. From viewing the mix art to the smart DJ, the Zune just has this easy feel to it that it’s actually a joy to fiddle around and get lost.

The first screen introduces a number of new things that you can do. Focusing on the common things that one does on a music player it gives you easy access to the things that you would most likely do. Rather than wasting your time looking for that album, Zune arranges things for you and gives you place holders for your favorite music.

Smart DJ is something new as well. They have this magic algorithm that lines up related music based on the artist that you feed it. Not just that, but it also connects to the Zune Marketplace for you to discover related artists (this I love).

Mixart was changed to be more viewable. I don’t know if the bigger albums have any significance but I do enjoy looking at this more than before.

Hovering over an album now gives you options on what you want to do with it. Unlike before where you only had one option: PLAY

More pics below and most of it speaks for itself. Conclusion afterwards. 😉

Picks for ye

Music for ye

Music for ye

You get the point

something new though

Apps for ye!

Apps for ye!

Now this is a Zune HD only thing but the best part is YOU, yes YOU can develop your own apps for it. XNA based, I’m still unclear how you can “sell” your app though or how they’re going to distribute an app you submitted. We’ll see in time.

Overall the whole software was vastly improved. Already great on its own, the Zune team revised it with the launch of the Zune HD.

Try it out by going to http://zune.net/en-US/ Just tell them you’re from US and all’s well 🙂

Any Zune users out there? Give me feedback!

PS. My iTunes updated the same day as the Zune. dundundundun. Although I still hate it coz it looks like a board full of ads. 🙂

Hit me! comments below

~eugene


pptPlex PowerPoint 2007 add in from Live Labs

Are you a frustrated PowerPoint user? Do you wish there’s a better alternative aside from Keynote? Want to make your presentation better even if you suck at presenting? Well say no more! pptPlex is for you!

Developed by Microsoft Office Labs, pptPlex is a play on how you can extend PowerPoint and how a different way of presenting your slides can affect your whole presentation. This is achieved by deviating from the normal linear way of showing your slides. Whenever you are presenting in PowerPoint it assumes that whatever content you have is just linear, meaning you go from slide one to slide ten just like you are counting. PptPlex deviates from this by giving you the flexibility to jump from one slide to another while still maintaining an overall flow. Check out my short video below

httpv://www.youtube.com/watch?v=-q4h3K7FS-0

I’m using the slides made by my friend Sile covering Windows Azure (http://innovativesingapore.com/blogs/mic/archive/2009/07/28/getting-on-windows-azure-in-3-days-day-1.aspx learn it here). Notice that you make your slides in the normal way, you then go to the pptPlex tab to use its features. From here you can then arrange your slides in sections. Using pptPlex’s slideshow, easily navigate between disconnected slides without having a disconnected experience when presenting.

I found this very useful especially for slides that has a lot of sections. If you need to skip one section you don’t need to move forward a lot. Just unzoom and double click on that section then proceed with your slides. PptPlex shows offs its capabilities with the different backgrounds that it has built-in. From timelines to flowcharts this is where pptPlex really shines.

This can be really helpful for those drill-in slides. Students out there would love this as it provides another dimension to your presentation.

Some cons though as some PowerPoint objects disappear when you use pptPlex. (Inking for one) None the less, if you want to spice up your boring slides, this can just be the thing you are looking for. But always remember not to overuse it. Use it to complement your slides rather than be the center of it. If your presentation is simple enough, then a linear presentation might be the best rather than making a complex zooming in and out type of slides.

So stop reading and give it a shot. Never hurts to try out something new especially on things you present in and out. You might even get a better reception using this one.

Download it here:  http://officelabs.com/#pptplex

Give me a shout out if you like it or hate it

~Eugene


IIS 7 SEO Toolkit

Launched early June ’09, the IIS 7 SEO toolkit is designed for web developers and administrators maintaining huge websites. A module that easily installs to you IIS 7 this toolkit gives you the ability to check your website for inconsistencies regarding SEO.

The toolkit has three main components:

  1. Site Analysis
  2. Sitemaps and Sitemap Indexes
  3. Robots Exclusion

Of the three, I have only used Site Analysis so far. Even though being a third of the toolkit, the Site Analysis alone will give you enough insight into your website with considerable action on your part. If you don’t know anything about SEO, this toolkit will definitely overwhelm you. The Site Analysis will be going through every link in your site and evaluate it based on a number of SEO criteria. A quick analysis of my site would show you how many SEO standards I have already broken. Strange considering my site is small and I try my best to fill up every detail that I can with my Platinum SEO toolkit plugin for WordPress.

Let’s see how a standard Site Analysis would look like.

Running the analysis on my site would give you the initial Site Analysis Report Summary

These are basic SEO knowledge that everybody with a website should know. By the looks of it I’ve been skipping a lot of details when I’m putting up new posts.

You can then drill down to a specific entry to see how many of times you violated it.

The best part is when you don’t know that specific error, you can drill down and it will give you a description so that you won’t make the same mistake again.

And it will even show you where in the code your error is. From here you can then base your next steps to resolve this “problem”. I found this really helpful especially since I assumed everything would work out fine since I’m using WordPress and a number of its plugins. Apparently you still have to check some of the code within. So far I haven’t dissected it and I still rely on the plug-ins as I found this enough for my blogging needs. Obviously, the toolkit is designed for more than just blogs.

More screenshots of the SiteMap and Robots Exclusion

Sitemap

I’m satisfied with WordPress sitemap plug-ins and thus I don’t really care about this one.

Robots exclusion allows you to tell where the crawler should go to. WP has the same feature and I don’t know much about site crawlers yet to care.

Well that’s a quick intro to IIS 7 SEO Toolkit. Given more time I would definitely like to explore how they define the SEO criteria. There’s probably a document for this but as of now I can’t find any within the MS sites.

Again, this tool is not for everybody as not all has access to their IIS but for sure website admins would definitely benefit from this.

Links you need to read if you want to know more:

http://www.iis.net/extensions/SEOToolkit

http://learn.iis.net/page.aspx/639/using-iis-search-engine-optimization-toolkit/

http://learn.iis.net/page.aspx/643/iis-site-analysis—video-walkthrough/

Give me a shout out if you discover something interesting with the toolkit or if you found the docu. 🙂

~Eugene


Windows 7 Boot from VHD

For all Windows junkies out there. (and for those loving Mac fans) this is one feature that I’m really excited about. Working with tons of PCs and a lab environment, having one base image for you VHD is quite powerful. This saves time and energy from doing things over and over again. Yea yea, there are existing tools you can use to do this but this one is just better. There’s VMWare, VPC, and other virtualization technologies that you can use but booting from VHD!? Hell yea! (I’m not sure if VMware has something like it though)

This topic has been discussed in several blogs and I’ll be adding to those and linking the ones I found very useful.

Two main steps to get your VHD a bootin:

  1. Prep your image via ImageX
  2. BCDedit to make it show up upon boot.

This is not really a daunting task, the only problem is it would take quite some time. Installing Win 7 via copying the .wim file, Disk Management, getting it prepped via Image X. These steps are quite time consuming but! after you have set it up, you basically have a VHD that you can boot on and install all the stuff you want in it. This is really helpful for me as rather than having to install the common dev tools (Visual Studio, SQL) you would just have to copy your VHD to the host OS and bcdedit (just four lines) your VHD. The amount of time you’ll save is just amazing.

Two blogs that gets it done

http://blogs.technet.com/aviraj/archive/2009/01/17/windows-7-boot-from-vhd-first-impression-part-1.aspx

http://blogs.technet.com/aviraj/archive/2009/01/18/windows-7-boot-from-vhd-first-impression-part-2.aspx

http://thelazyadmin.com/blogs/thelazyadmin/archive/2009/01/12/windows-7-boot-from-vhd.aspx

Follow the two blogs and you shouldn’t encounter any major problems. I’m looking at automating the BCDedit but the guid every VHD produces is unique. My simple workaround is just a batch file that has a variable for the guid. Quick and easy.

Much fun this is! 😉

~Eugene