13 Sep 2012

Windows Store apps

Looking for development advice & help with Windows Store apps? Check out my development snacks series!

Prefer videos to reading? Check out my videos on Youtube!

Amazing Lock Screen

Bing has the greatest images & now you can get use them for your lock screen!
Amazing Lock Screen allows you to select from the eight most recent Bing images and quickly select which of them to set your lock screen to use.
In addition BAmazing Lock Screen allows you to automatically have your lock screen updated daily with the latest image from Bing - thus ensuring a constant supply of inspiring and interesting new content for you!



English to Afrikaans to English

30 000 words and phrases that enable you to translate between English and Afrikaans! Perfect for those living in South Africa or those wanting to travel to South Africa!



Image Grabber

This is really a simple app, find images on a website and pull them down to your machine so you can browse them, save them or share them. There is some special logic for some websites – such as Tumblr blogs where it will pull down using the API rather than raw scraping of the pages.



Lab Rat

Lab Rat takes Valve's amazing Portal 2: Lab Rat comic and puts it in your hand and on your tablet in amazing HD! Not only can you read it in English but included is the Russian language and also all images without text! Perfect for wallpapers and lockscreens!



Notepad Classic

A simple text editor for Windows 8!




A great sticky note application for Windows!!



South African Postal Codes

All the postal codes for South Africa so you can search, pin & browse them in an easy to use application!



03 Jul 2012

Where do I start to learn Windows 8?

I have been asked at the talks I do, where can I go to learn Windows 8? What material is available? There is a LOT of content available for Windows 8. For me personally I learnt initially from the Windows 8 Camp in a box and building my own test apps. However the ever amazing Bruce Nicholson provided me with a fantastic list recently (so go thank him):

19 Jun 2012

Who can see my tweets to a friend?

A while ago I wrote a post about an interesting Twitter behaviour – if you start a tweet with an @<username> only people who follow you & that person can see the tweet (if you unsure see the post which explains it). The question I had today was to find out who is in that list – or put who follows us both on Twitter?

Oddly, I could not find anything (besides some tools that cost money) to do this?! So I built my own awesome little tester you can use below:

First username
Second username

    For the developers among you who want to see how this all works? Check it out on bitbucket: https://bitbucket.org/rmaclean/twittercoalesce

    Known issues:

    • My website uses an older version of jQuery, and I use a newer one in this code. If the loading gives an error or gets stuck on the screen, try refreshing the page (seems to solve it).
    • If you have too many people shared between the two names - it will break. I am looking into how to solve this. If this happens - loading will get stuck :|
    • Twitter limits clients to 150 calls per hour. If the rate limit is exceeded the loading will get stuck.
    14 Jun 2012

    Lightswitch & the HTML Client - what does this mean?

    Lightswitch Recap

    For you to understand the rest of this post it is vital you have a high level understanding of Lightswitch and how it works. Lightswitch is a RAPID development platform from Microsoft that makes development of line of business (LOB) apps really easy. The team at Microsoft often talk about citizen developers – i.e. people who are not full time developers, but are the “IT guy” in the department or company that need to put together a great looking solution. The team also talk about no-code solutions – where you can build great systems without code.

    imageBoth statements from the team are true and false at the same time. Sure your accountant can build a CRM system with no code in Lightswitch, but Lightswitches true value is that it is a professional development tool, and in reality unless it is a really simple solution you will need a touch of code.

    What is great is that Lightswitch allows the citizen developer to write a system that can be matured by professional developers later on – it’s power is that it does not lock you into being too simple or too complex a development system.

    For me the value proposition is that you get REAL rapid development, that citizen developers can put together and extend solutions that are well architected and that when the need is there a professional developer can extend that solution and hand it back over to the citizen developer – it is the circle of Lightswitch.


    When you craft a (avoiding the development term here on purpose) Lightswitch create a multi-tier architecture, that is either two tier (client & database) or three tier (client, server & database). Two tier is really three tier but the server & client are just one package.

    The database can be any support by Lightswitch, the middle tier is OData and the front end is Silverlight. The choice of front end has recently hurt Lightswitch because Silverlight is dying. However if you step back for a second and think about it Lightswitch provides the easiest and fastest way to build a complete (and I mean complete, authentication, methods, proper designed) OData solution… you could always ignore the client portion and build on top of the OData server.

    Making a HTML Client

    The HTML client mode for Lightswitch is a recently announced new feature that allows you to build a client that runs in a browser, and not just Internet Explorer on Windows (Dynamics CRM I am looking at your shameful behaviour) but pretty much any browser, say on an iPad:

    Deployed app on ipad -1

    This is possible because of two things, the OData server which allows really any technology to connect to it, and the second piece of the Lightswitch system the LSML file.

    I hope you have never heard of the LSML file, as it is not a nice place to go to – it is a MASSIVE (even simple demo’s I build are thousands of lines) XML file that stores ALL of the Lightswitch system in a “Lightswitch domain language”. This enables the team to take that information, parse it and produce output based on it. So the concept of producing a parser that creates HTML rather than Silverlight is really simple… just build the parser.

    What do we know about this HTML client so far?

    It is early days, in fact there are no bits available yet, but we do know some things from the demo’s and screen shots that are available.

    • Multiple themes will be supported (their is a dark & a light at least) – thanks to the jQuery Mobile that powers it.
    • It is a separate client – so you will have a Silverlight experience and then also have the HTML experience added in.
    • It follows the true Lightswitch model of being easy to build with no code, but if you need that little extra, the JavaScript can be edited.

    Light theme - 2Dark theme -  2imageCustomizing UI with JavaScript

    The Important Two Issues

    To wrap this up it is a very exciting point in time for the Lightswitch world with so much happening that I think it is important to take a step back and find a few key aspects about this amazing feature that will help position it. There are two that really stand out to me from all the announcements:

    Separate Client

    This is not a Silverlight to HTML generator – it is separate. This means that awesome Silverlight chart you use today will not magically work in the HTML client. This has both advantages and disadvantages, but if you think about the dying of Silverlight I am very glad that they have a whole new growth path.

    It also allows for the real scenario of supporting a rich experience in Silverlight in a company (where we control all the machines and know we can run Silverlight for a long time still) and having a mobile or companion experience in HTML for those people on the road. Sure they do not get the great sales forecast chart but they can still capture their sales on their iPad.

    Web Developers

    A recent did an survey of app developers looked at what they are building today, what they were building and what they intend to build in the future (future = one year in this survey). Interestingly there are only TWO platforms that are getting growth in the future? HTML & Windows Phone. Android, iPhone and many others are all expected to decline.

    If you think about those numbers and add in the MASSIVE investments in HTML development that are in Windows 8, it should not surprise you that web development is a MAJOR area in the future of all developers. It also means that web developers can start to have way more opportunities in the market outside of building websites & portals, and that is very exciting as that little garage web designer company today could be a major line of business developer in a few years.

    07 Jun 2012

    Visual Studio Extension Manager Error 417

    imageWith Visual Studio 2012 there is an increase importance placed on the Extension Manager component, not only does it provide a great integrated experience to the Visual Studio gallery for downloading and updating extensions but it will also be used to delivery updates for Visual Studio itself!

    At work it would constantly fail to work with error 417 – expectation failed, so working with our facilities team we were able to identify the problem as an issue with the proxy server we use, Squid.

    Squid seems unable to handle the HTTP status code 100, and will then fail with the error 417. To solve this you simple need to add the following to your squid.conf file: ignore_expect_100 on

    17 Apr 2012

    South African Postal Codes for Windows Phone

    1I can NEVER EVER remember the postal code for where I work or where I live – that little four digit number just eludes my brain. So to solve that I thought, why can’t I have EVERY postal code with me always? So that is what I made happen with this simple Windows Phone application: Postal codes!

    It is dog simple: one input the name of what you want then hit search and boom results. It includes both street and box codes Smile

    For the developers out there, this application source code is available too at: https://bitbucket.org/rmaclean/postal-codes

    30 Mar 2012

    IntelliTrace vs. PreEmptive Analytics


    Visual Studio 2010 introduced an amazing feature: IntelliTrace which allows for deep debugging experiences inside Visual Studio by collecting an AMAZING amount of information (basically a stack trace for every call in your code + meta data) and allowing you to use it later to replay the way the application was used. With this feature you could eliminate those “No Repro” bugs! The catch in 2010 was it was NOT allowed to be used in production. In Visual Studio 11 that has changed and we can use it in production: http://msdn.microsoft.com/en-us/library/hh398365(v=vs.110).aspx & http://msdn.microsoft.com/en-us/hh440472

    PreEmptive Analytics

    This change in licensing may seem to put IntelliTrace in direct competition with another great tool, PreEmptive Analytics (PA). I have mentioned this amazing tool before and with Visual Studio 11 it is included “in the box” so there seems to be a conflict brewing – but there isn’t.

    Two sides of the same coin

    These two tools are both part of the collect information so you can react to it later and fix bugs set of tools, but they have very different use cases. IntelliTrace is specific to the scenario of replaying an application for diagnosis and debugging purposes. It is not meant to be an always on tool and it is a tool that writes to a local file that needs to be collected some how.

    PA on the other hand is a tool to always have on, it does capture error information but nothing more than the simple Exception + Stack which is not as useful, detailed or integrated into VS when compared to IntelliTrace. In addition PA allows me to do a lot of a lot of analytics on my application that are not possible in IntelliTrace:

    • what features are people using
    • where in the world are they
    • when are they using it
    • what are their machines like

    In addition the PA reports get automatically sent to a server (that they run or that you can run if you have privacy/security concerns) so there is not need to waddle around collecting files.

    I can also see scenarios that these two work hand in hand – PreEmptive getting higher level info that shows a lot of users having issue X, then the support guys contact some users and do a more detailed capture of the issue with IntelliTrace.

    29 Feb 2012

    Important changes to Express Editions of Visual Studio "11"

    manualtrafficexchangetipNote: The source of this is the Visual Studio “11” beta Product Guide (http://go.microsoft.com/fwlink/?linkid=243994) so this may change by release.

    Today we have five Express products: C++, C#, Visual Basic, Web and Phone however with the launch of Visual Studio “11” we will only have TWO!

    These two editions of Express we will have are Web & Windows. I do not believe we will only ever have two editions, as the 2010 Express editions grew during the product so I would expect a few new ones coming along post launch.

    So how does the old Express editions map to the new Express editions?

    • C++ maps to NOTHING
    • C# for WinForm/WPF/Silverlight maps to NOTHING
    • VB for WinForm/WPF/Silverlight maps to NOTHING
    • Phone maps to NOTHING
    • Web maps to Web

    Let me reiterate this, if you want to build non-Metro applications (unless they are web) there is NO Express edition anymore for this! The Windows Express edition ONLY allows the building of Metro apps (including ARM). Web dev using Express editions still continue to work as before.

    Both Express editions have a new enhancements too, which is a fantastic thing: The ability Version Control & Work Item Tracking with TFS is included out of the box.

    For the Windows express edition it has even more enhancements

    • A subset of static analysis (fxCop) for helping developers pass Win Store evaluation
    • Performance Profiling has been added: CPU Sampling for C#/VB/C++ Metro apps and Instrumentation for HTML/JS Metro Apps

    Stop/Important image from http://sitechoppers.com/why-it-is-important-to-build-your-downline/