Entries in Public Announcement (20)

Tuesday
Apr162013

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 :-)
Wednesday
Mar062013

SharePoint Saturday Perth - Building SharePoint solutions with TypeScript: how and why.

 

I'll be presenting a new topic for SharePoint Saturday Perth this year, on SharePoint and TypeScript.

While I had begin planning to work with TypeScript since the beginning of the year, I really owe it to Charlie Holland's blog post that really got me started.

Anyway, if you see the good parts in my demo, that'd be to his credit.  And if you see the lousy parts?  I'll claim those.

 

Building SharePoint Solutions with TypeScript

TypeScript is a new language designed as a superset of JavaScript. Released by Microsoft and designed by the father of C# Anders Hejlsberg. It is designed to ease building large scale applications using JavaScript, and addresses JavaScript shortfalls such as lacking a module system as well as type and compile-time type checking for better error detection and tooling.

SharePoint itself has become increasingly open over the recent versions with numerous new APIs available to client-side scripting, thus allowing more and more complex JavaScript applications. The time seems right that TypeScript will be a great addition to help us envision and attempt even more complex SharePoint solutions.

In this session, we want to tackle the two problems at hand: how do we set up our environment and get started with writing TypeScript with our solutions. And perhaps more importantly, what benefits do we get for choosing to go down this route with TypeScript.

 

A sneak preview

image

 

We'll build this Sandbox Webpart with TypeScript.  I'll see (some) of you this Saturday at Perth.

Ticket for SPSPER are very low, you'll need to register right away.

:-)

Wednesday
Nov282012

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
Tuesday
Aug212012

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.

Monday
Jun042012

SharePoint Saturday Brisbane update

 

Thank you for attending my session on Building Custom REST services and consuming them with jQuery AJAX. 

I hope you enjoyed the session and survived (or even find it interesting) my 1hr rant.

But more importantly, I hope I've given you plenty of ideas on how you can integrate the set of techniques presented in your SharePoint development.

 

A summary link of all my related talks on REST, services and JavaScript technologies like jQuery and Knockout are on http://johnliu.net/rest/

 

A direct link to the solution that I used for the demo is at: http://johnliu.net/storage/SPGSvcWp.zip

The PowerPoint presentation is at: http://johnliu.net/storage/SharePoint%20REST%20and%20jQuery5.pptx

 

Drop me a question if you want to ask me anything specific related to these topics and I'm more than willing to geek out!  Hope to see you guys again soon.

Tuesday
May292012

SharePoint Saturday Brisbane 02-June-2012

In little more than 3 more days, we'll be meeting up again in SharePoint Saturday Brisbane! 

I'll be presenting again on the Developer track on how to build custom webservices within SharePoint, and consuming them using JavaScript AJAX. 

On the side, I've been having a lot of fun with KnockoutJS, Client Object Model, REST and even building a Single Page Application for SharePoint on codeplex. 

There's a bunch of InfoPath people and solutions that I'd love to meet and see again.

Overall, I'm looking forward to meeting all the SharePoint people up in Brisvegas and geeking out for a whole day!

There are some talks of having a dedicated time where we can answer lots of questions from the attendees - so if you have any curly problems within your SharePoint, bring your question along and we'll try to help out.

One final reminder:

02 June 2012.  Register http://sharepointsaturday.org/brisbane/default.aspx

Saturday
Apr212012

SPSPerth 2012 Update

This is my first time in Perth!  Hello Perthites!

I even took a train to Cottesloe beach - a very nice beach, I watched the sunset and did what any geek would do, I checked in the Indian Ocean.

I will update this post with links after the sessions. In the mean time, you can reference my current collection of articles on these topics regarding REST, custom service, and Knockout

http://johnliu.net/rest/

Downloads

Reference

Make sure you follow Matt Menezes
http://spmatt.wordpress.com/

He's a regular at Perth user group circles and knows a lot about Knockout.  I think he is slotted in for a future session in the upcoming months - don't miss it!

Friday
Mar232012

Re: Sorry dad, you'll understand, someday

This is a quick blog post, in response to Zac Gorman's excellent Magical Game Time comic.

http://magicalgametime.com/post/19718347285/ill-stop-when-ive-saved-the-world-and-fallen-in

As you play through the game Earthbound as the kid protagonist Ness, your phone would ring every few hours, and your dad would ask you if you'd like to take a break.  If you say Yes, it'd save the game and switch it off.

The comic cleverly replies as Ness: I'll stop when I've saved the world and fallen in love.  (Sorry dad, you'll understand someday).

 

My boy is still three, he doesn't understand about saving the world, or falling in love, yet.  I'm sure he will soon.  And here'd be my response to him:

  • All dads were boys once.
    We already understood.
  • So off you go, save the world.
    Go and fall in love with your girl.
  • You do what you have to do.
    This is your time, we don't expect you to hold back, or stay at home.
  • When you are tired from saving the world, stop by and have some hot chocolate and ice cream.
    We will always be your biggest fan.

 

We will return to our regular SharePoint updates soon. 

Tuesday
Mar202012

AUSPC 2012 quick update

I'm in the strange and calm interlude between day 1 and day 2 of awesomeness in the annual Australian SharePoint Conference (AUSPC) 2012.

Day 1 has been a lot of fun.  Manned the user group booth in the morning with Dan Brown.  Met many of the SharePoint guys in the community that I haven't seen for the last 6 month to a year.  Talked to a number of vendors, and attended a number of awesome sessions on the developer track.

I also got to sit on the panel answering developer questions amongst the legends like Nick Hadlee, Ishai Sagi, Brian Farnhill and Jeremy Thake

The oddest part is probably with MCA SharePoint Wayne Ewington sitting in the audience.  Every time we said something silly he'd start shaking his head and we'd all stop.  Hilarious.

 

Tomorrow morning, my session on Building your own custom REST Service and consuming them with jQuery AJAX is running in the developer track at 10:30am.  Hope to see everyone there.

All my related resources and presentations on this topic are summarized on http://johnliu.net/rest

Thursday
Mar012012

Dummy guide to install Win 8 on VHD for Boot to VHD

 

Summarized from:

You'll need:

 

Set up boot to VHD!

  1. Create a VHD

clip_image001

clip_image002

Note: I make this a dynamic disk, although I allocated up to 60GB, it only uses what it needs which was about 10 GB.

 

clip_image003

clip_image004

clip_image005

clip_image006

clip_image007

clip_image008

clip_image009

Created, and attached the VHD to Y:

 

Load the ISO into a virtual CD drive, mine is G:

I use virtualclonedrive to load ISO - this is a free utility.

clip_image001[5]

 

Next install the windows image into the VHD

Easiest way that worked for me is this wonderful powershell script.

 

clip_image001[7]

Remember to unblock this script

 

If you see:

File C:\Install-WindowsImage.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.

You will need to allow remote script

PS C:\>set-executionpolicy remotesigned

 

PS C:\> .\Install-WindowsImage.ps1 -WIM G:\sources\install.wim

Index   Image Name

[1]     Windows Consumer Preview

Done.

PS C:\> .\Install-WindowsImage.ps1 -WIM G:\sources\install.wim -Apply -Index 1 -Destination Y:

PS C:\> .\Install-WindowsImage.ps1 -WIM G:\sources\install.wim -Apply -Index 1 -Destination Y:
Applying "Windows 8 Consumer Preview" to Y:...
WARNING: This may take up to 15 minutes...

Elapsed Time: 00:08:40.4870618

PS C:\>

 

Lastly, make the VM a boot record.

 

PS C:\> bcdboot Y:\Windows\
Boot files successfully created.

 

You can check it with bcdedit

PS C:\>bcdedit

Windows Boot Loader
-------------------
identifier              {default}
device                  partition=Y:
path                    \Windows\system32\winload.exe
description             Windows 8 Consumer Preview
locale                  en-us
inherit                 {bootloadersettings}
custom:17000077         352321653
osdevice                partition=Y:
systemroot              \Windows
resumeobject            {1abc7489-8e4b-11e0-877a-af036ca44d2f}
nx                      OptIn
custom:250000c2         1
detecthal               Yes

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {1abc7482-8e4b-11e0-877a-af036ca44d2f}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {1abc7480-8e4b-11e0-877a-af036ca44d2f}
nx                      OptIn

 

Restart and you are off to go

 

Your PC will boot into Windows 8, which has a new happy looking boot loader.  If you feel the 30 second delay is too long, you can change the delay to 5 seconds from the boot loader options.