Windows 8 - Export Google Reader OPML for Bing News

Let the hacks begin!

Windows 8's Bing News app was updated in the last few days and with this new version, an ability was added to allow us to add our own Sources.  RSS sources.

A number of my favourite news sites proceed to discuss this is a good direction to eventually be a viable Google Reader replacement.

http://winsupersite.com/windows-8/windows-8-tip-add-rss-feeds-news-app

http://www.liveside.net/2013/04/15/bing-news-app-a-google-reader-replacement-not-yet-but-its-a-start/

 

My lament is that it doesn't seem to accept OPML, a common XML-based description of my RSS feed collection.

 

Inspiration

Hmm, I wonder how does Bing News store the RSS feeds that a user has chosen.

 

Hack

Windows Apps data are stored within the user's App data.  In my case, it is right here.

C:\Users\John.Liu\AppData\Local\Packages\Microsoft.BingNews_8wekyb3d8bbwe\

Having a quick look around, the custom Source feeds are stored in

\RoamingState\state.json

JSON format is a simple javascript format.  So really, the hack is not even a hack, just converting OPML (XML) to JSON.

A powershell script, like this opml-to-bing-news-json.ps1, could do it.

 

Steps

 

  1. Download your Google Reader files from Google TakeOut.
    image
  2. Open the ZIP file and copy the subcriptions.xml file to the same folder as the Powershell script
  3. My region market is "en-au" - check your state.json file to see if you have a different market.  Change it in your powershell script ps1.

    Run it like so...

    image
  4. You should have these files now:
    image

  5. Overwrite the state.json file in AppData with mine...
    image
  6. Restart Bing News

    image
  7. Bonus.  When I launch my Surface RT, all my feeds are already synchronized there too :-)

Retrospective - Australian SharePoint Conference Sydney 2013

I had planned to post this as soon as I finish my session - but you know, conference.  Lots of friends come visit during these events and the evenings do a lot of damage to your hair, and possibly liver.  I don't often get opportunities to chat with so many SharePoint experts in such a short span of time.  Lots of catch up, lots of thoughts, A LOT of ideas.

 

As for my session, Building SharePoint Solutions with Microsoft's TypeScript: how and why.  I think it went well.  I really wanted to thank the audience for being so kind, and stayed awake through the presentation.  As promised, here is my presentation:

Presentation:

 

Downloads:

A huge thanks to the organisers, speakers, vendors and attendees for such a fantastic conference.  I hope to see you guys again soon.

How to create your Windows 8 Start Button with PowerShell

Before I go on, I have to say I find the Start Menu unnecessary.  There are already many ways to get to your Start Screen:

  • Throw mouse to lower-left corner (with the mouse)
  • Press the Windows key (on your keyboard)
  • Swipe in from the left edge (touch screen)
  • Press the Start button (any device with a hardware start button)

 

That said, Windows is still about choice.  And here's how you can add your own "Start Menu Button"

  1. Create a shortcut.
  2. Type in this:
    powershell.exe -Command "Add-Type -AssemblyName System.Windows.Forms; [Windows.Forms.SendKeys]::SendWait('^({ESC})')"

    (all in one line)
    This sends the Windows key (CTRL-ESC) via Powershell.
    image
  3. Configure the shortcut to run minimized
    image
  4. Change the Icon, I select this icon from the bootux.dll file %SystemRoot%\System32\bootux.dll) 
    image
    (All the icons are white, select them to see what they look like) 
  5. Drag the shortcut and pin it to the task bar, on the far left.
    image
  6. Now you have that familiar Start menu button back.  Click it and you'll get the Start Screen to pop up. 
    image

 

Notes

  • Does not appear to work in Windows RT, but if you have a Surface just hit that start hardware button

Windows 8

Windows 8 is coming, and I wanted to say something to set people's expectations right.  I think it'll help people align their views and appreciate this new version, if they choose to upgrade.

Don't expect Windows 8 to be Windows 7 plus more shiny new stuff.  Windows 8 was never designed in the same sense that Windows 7 was actually just Windows Vista plus more polish.  If you install Windows 8 thinking to get a minor update, you will be shocked.

Windows 8 is actually a completely different beast.  Designed with different goals altogether.  It just happens to run Windows (Windows 7) applications.

But at its core, Windows 8 is a different thing.

 

Historically, there was a suitable analogy, Microsoft build Windows NT to be the better kernel going forward, and combined the two systems streams (95, 98, ME) and (NT, 2000) finally into the same stream from XP.  Windows 2000 was vastly different beast from Windows 95, because it was fundamentally a different system, it just happened to run the old Windows 95 apps.

Test your C#: Generic overloaded constructors

I love languages.  Here's one for a language nut.

public class Response<T> {

    private T result;
    private string error;

    public Response(T result) { this.result = result; }
    public Response(string message) { this.error = message; }

}

 

You can use this generic class as a wrapper for returning data.

return new Response<int>(1000);

Or to return an abnormal result

return new Response<int>("Something has gone wrong");

 

Question 1

The fun part then, is what happens when you have this?

var result = new Response<string>("Is this a result or an error?");

What is result

 

Question 2


What about this:

public class Sample
{
    public static Response<T> GetSample<T>(T arg)
    {
        return new Response<T>(arg);
    }
}

and then:

var result = Sample.GetSample("Is this an error?");

What is result