Lister Dependency Graph

UPDATE: Lister – Open Source Task List Library


I have completed a huge clean up of the Lister - Open Source Task List Library. The implementation was a little sloppy. Dependencies are not all over the place and everything is encapsulated nicely.

Lister Dependency Graph

Lister Dependency Graph – Much neater!


You can take a look at the updates on

Uber Tips #1: Why am I getting “The Property ‘VisualTree’’ is set more than once” build error in the XAML for my Windows App?


This is the first of my Uber Tips posts. These will be small posts which give handy little tips about programming, technology in general and even lifehacks!

On to Uber Tip #1: Why am I getting “The Property ‘VisualTree’’ is set more than once” build error in the XAML for my Windows App?

This occurs when you define more than one child in a DataTemplate. For example:


What is happening here, is that two child elements are being set. The and the . To fix this you will need to wrap the 2 elements in a container. If it suits, move the text block into the grid with the other text block like this:


Or, what you can do is wrap them in a stack panel. Like this:


So that should be it! If this was helpful, please let me know in the comments!

Lister Source Code

Open Source Task List Class Library


I have been working on a few projects and 2 of them need a really simple to use task list manager. The requirements are mostly the same on these projects

  • Title
  • Description
  • Priority
  • Due Date
  • Completion Date

The only other requirement was that the library needed to support the ability to have multiple lists with unique names.

I thought this would be a perfect time to go ahead and create a neat little class library – with tests to go along with it!

Lister Source Code

Some source from the Lister class library

Once you create an instance of the TaskListManager you can do the following functions:

  • Create new list with specified name
  • Remove a list by name
  • Reset a list by name
  • Get a list of the managed lists
  • Add items to specified list
  • Remove items from specified list
  • Get items in a specified list

Any return type here are returned as simple string arrays – this will allow you to do what you want with the data without having to worry about the implementation or having to worry about the types used by the library.

If you would like to go ahead and use this library you are more than welcome to. I have open this up using the MIT license. If you do use though, please let me know! I would love to see what you can do with it.

I have also included this code on my portfolio page over at

One thing to note here is that the full implementation is not complete. At this stage you can add task items with the values supplied by the constructor but I have not yet exposed the manipulation of task items via the TaskListManager yet. This will be completed in the next day or so.

Really Simple C# (C Sharp) Class to Convert Word 2013 Doc to PDF


I needed to convert a few word documents to PDF this morning and decided to really quickly throw something together.

This is pretty simple, you instantiate it by providing the full path and filename of the source and the full path and filename of the output. e.g.:

var converter = new WordToPdf.Converter(@"c:\source.docx", @"c:\output.pdf");

Then all you have to do is call the Convert method. e.g.:


You should then have your new pdf!


You will need to have office 2013 installed on your computer.


This will create a document with print quality, it will turn missing fonts into bitmaps and maintain the heading structure of the word document and convert them to bookmarks in the PDF.

Get the most up to date code over at GitHub:

Here is the code as at 12:08pm (GMT+10) on the 23rd January, 2014.

using System;
using Microsoft.Office.Interop.Word;

namespace WordToPdf
    public class Converter

        private readonly string _outputFile;
        private object _inputFile;

        public Converter(string inputFile, string outputFile)
            _inputFile = inputFile;
            _outputFile = outputFile;

        public bool Convert()
            // create the document and the word application objects 
            var wordApp = new Application();

                // create missing type for unused values
                var missing = Type.Missing;

                // ensure no changes occur to source
                object readOnly = true;

                // do not hide the file
                object isVisible = true;

                // open the document
                var document = wordApp.Documents.Open(
                    ref _inputFile,
                    ref missing,
                    ref readOnly,
                    ref missing,
                    ref missing,
                    ref missing,
                    ref missing,
                    ref missing,
                    ref missing,
                    ref missing,
                    ref missing,
                    ref isVisible,
                    ref missing,
                    ref missing,
                    ref missing,
                    ref missing);

                // now export the document
                if (document != null)
                    document.ExportAsFixedFormat(_outputFile, WdExportFormat.wdExportFormatPDF, false,
                                                 WdExportRange.wdExportAllDocument, 0, 0,
                                                 WdExportItem.wdExportDocumentContent, true, true,
                                                 WdExportCreateBookmarks.wdExportCreateHeadingBookmarks, true, true, false,
                                                 ref missing);

                return true;
            catch (Exception ex)
                return false;

Getting out and meeting people


I’ve realised something lately. That is that I don’t really know any other programmers. I have existed in my own little bubble with my only “contact” with other programmers has been through forums, StackOverflow and various other blogs and article websites.

No direct human to human contact with other programmers. This is not good. To move forward in both my career and my skills I need to get out and meet new people. Opportunities rarely happen for people who sit in the dark… I needed to get out and meet some new people.

I started out by doing a search for developers in the Brisbane area and a few interesting links popped up. The most prevalent was for the website. I found several groups including the Brisbane .NET User Group and the DevExpress Users Group. I promptly signed up for both.

The first meetup for either of these groups was Last night. So I made sure to RSVP and organised to head in. The meeting was held at the Microsoft Innovation centre in Brisbane. The topic: Getting started with ASP.NET MVC. Nice!

I showed up just after 5:00pm for the 5:30 start. Already a few people were there. I was greeted by Paul Usher from a Technical Evangelist for DevExpress who introduced me to Daryn Kitchener from i4soltions.

Shortly after I arrived so did the pizza! What programmer doesn’t like pizza. The organisers sure know the demographic.

After everyone had full bellies we headed into the room and the session began. There was a slight change in proceedings. Instead of Daryn giving us the rundown on ASP.NET MVC we had Brendan Richards from SSW.

Brendan went through the basics of ASP.NET MVC and gave us a peek at some of the more advanced concepts. As I tweeted earlier, it gave us enough to get us going, but not too much to overwhelm.

I also got to meet a few people. A few people I am sure I will be able to build some great professional relationships with. I look forward to the next session in six weeks time.

You know the other great thing about this group… The organisers asked us what we wanted to see. So based on feedback last night, we might be seeing start to finish product development and deployment using DevExtreme!

I am somebody that has been hacking around with code since about 12. I have a real passion for programming. I am always thinking about it. Learning about new technologies. However, I have never made the step and turned it into something that I do publicly. My enthusiasm has dwindled lately but last night has lit a fire under me. LET’S DO IT!

Dog with glasses studying

Study Tips for your MS Certification


I mentioned before that at the moment I am studying for my MCSA. This is a massive task!

Dog with glasses studying

You need to study hard to get it done!
Photo Credit: betta design via Compfight cc

All up there is 3 exams. The 70-410 (Installing and Configuring Windows Server 2012) , 70-411 (Administering Windows Server 2012) and the 70-412 (Configuring Advanced Windows Server 2012).

Each of these exams cover a big range of topics and this can get a little overwhelming at times.

It is important to understand that you need to focus on one exam at a time. I would also recommend studying for the exams sequentially. That it, the 70-410, the 70-411 and then the 70-412. This may seem obvious. However, many I have spoken to think you can study for all 3 at the same time. in most circumstances this WILL NOT WORK.

When will it work? If you are a Wintel based Systems Administrator and have several years experience in that role, then you might be able to do it. It will still be tough, though.

For those that have had only part-time or no hands on experience, it will be an uphill battle. There is a lot to learn. The 70-410 exam alone covers:

  • Install and configure servers
  • Configure server roles and features
  • Configure Hyper-V
  • Deploy and configure core network services
  • Install and administer Active Directory
  • Create and manage Group Policy

This is a lot of ground to cover!

Here is a few tips that I have found that has helped me out.

  • Get a good book – something from Microsoft Press. I am using the MCSA server 2012 study guide from Sybex – it covers all the content for all 3 exams
  • Don’t underestimate the value of the Technet forums. It is a treasure trove of knowledge. If you get with something, jump on and ask. There is sure to be someone that can help you out
  • Talk to people in sys admin roles, imagine how the tech is being used in a corporate setting. Take this knowledge and run through the following:
    • Create a domain
    • Configure DNS on the server
    • Setup some file and print services
    • Create some dummy users
    • Setup OU’s that you can deploy different group policies to
    • Create group policies to manage computers and users
    • Deploy software
    • Create and deploy Hyper-V servers
    • Setup a second domain server as a redundant failover, and another as a read-only domain controller (RODC)
    • Write some PowerShell script to automatically do all the above – even a script that makes a bunch of dummy users and throws them into random OU’s
  • Make a study plan and stick to it. These exams are serious business without plenty of both theory and practical learning

I will be adding to this list as I find some new stuff. Also I will be adding a few posts about each topic. OK, maybe not each topic, but if I find something interesting or helpful, I will be sure to post it.

Do you have any tips? I would love to hear them.

Until next time… Have fun!

– Glenn

Microsoft Website showing the available Streams for certification

MCSA, MCSE, MCSWhat? A look at Microsoft certifications


I have noticed something. In the ICT industry it is important that you can not only demonstrate experience and achievements, but also back them up with official certifications. This is especially true when seeking a new position or switching work streams.

I am sure you have all gone on to a job finder website such as or at some stage. I know I have been on there many times, even if just to daydream of those juicy executive roles! You will see certifications listed as a highly regarded or even required for these sorts of roles:

  • desktop support analyst or deskside support
  • system administration
  • service desk analyst
  • helpdesk
  • most level 2 or 3 support roles
  • .Net developer
  • many, many more IT support roles

This stands to highlight the importance of having a certification. It not only helps you stand out from the crowd but also gives you the power to create more of a name for yourself amongst your peers and wider local industry.

I have just started on the journey to certification. At this stage I am aiming for the Microsoft Certified Solutions Associate, or MSCA. In particular I am heading towards the Microsoft Server 2012 certification path.

The available options for MSCA, and all of Microsoft’s certifications is huge. The have recently started consolidating their catalogue to clean it up, but it can still get a little bit confusing.

As a broad overview for the available Microsoft certifications you have the following main streams:

  • Server
  • Desktop
  • Applications
  • Database
  • Developer
Microsoft Website showing the available Streams for certification

Microsoft Website showing the available Streams for certification

Let’s take a quick look at the available certifications in each stream and what products they cover.


The server stream covers Windows Server, Lync, Exchange Server and SharePoint server. Within this stream you have a few different levels of certification which include Microsoft Technology Associate (MTA), Microsoft Certified Solutions Associate (MCSA), Microsoft Certified Solutions Expert (MCSE) and Microsoft Certified Solutions Master (MCSM).


The desktop stream covers Windows 7 and Windows 8. Within this stream you have two different levels of certification. This includes: Microsoft Technology Associate (MTA) and Microsoft Certified Solutions Associate (MCSA).


The applications stream covers Microsoft Office, Office 365 and Microsoft Dynamics. Within this stream you have a few different levels of certification. This includes: Microsoft Office Specialist (MOS), Microsoft Office Specialist (MOS) Expert, Microsoft Office Specialist (MOS) Master, Microsoft Certified Technology Specialist (MCTS for Office 365) and Microsoft Certified Information Technology Professional (MCITP for Office 365). As far as the certifications for Microsoft Dynamics is concerned, that is a whole other kettle of fish which will take a look at later on.


The Database stream covers SQL Server 2012. Within this stream you have a few different levels of certification. This includes: Microsoft Technology Associate (MTA), Microsoft Certified Solutions Associate (MCSA), Microsoft Certified Solutions Expert (MCSE) and Microsoft Certified Solutions Master (MCSM).


The Developer stream covers Visual Studio, Windows Phone and SharePoint applications. Within this stream you have a few different levels of certification. This includes: Microsoft Technology Associate (MTA) and Microsoft Certified Solutions Developer (MCSD).

Having one or more of these certifications will NOT guarantee you a new job or even a promotion but it will certainly help you. They are not easy to obtain and the exams are expensive but in the end, in my situation at least, having a certification such as MCSA when seeking new roles in the System Administration industry segment will be a great benefit.

For now, this the end of this brief look into the certifications and particularly Microsoft certifications. In the next few days I will post a more in depth look at the MCSA server 2012 stream. This is what I am currently studying for! I would love to share with you all the great resources and online learning tools that I have found. Some of them I would not be able to do this without. Also I will point you in the direction of some great Microsoft Learning resources.

– Glenn

I Found The Australian Acer Support Phone Number!


What is the Australian Acer support phone number?

You can’t find it on their website. You can find it in Yellowpages or Whitepages. You can find it on their forums!

Well, here it is…

Acer Support:

1300 139 211


*This was true at the time I originally published this about 4 years ago… I have just transferred this post over from the old site.

Obligatory “welcome to my blog” post.


Hi all, as the title suggests this is the welcome to my blog post. We had a few false starts with this one but we are finally up and running.

I would like to encourage you to take a look at the about page for a little bit of information about me.

Here is a little teaser of what is coming up:

  • a discussion and story about learning to program – how I am helping some who has never programmed before get started
  • some helpful advice and links to help you get started with achieving your MCSA
  • some neat product reviews
  • my journey to learn ruby!

So keep an eye out as you should start seeing these in the next few days.

– Glenn

Go to Top