I’m writing this over a week after the fact as I am back home visiting the sunny UK at the moment. Sleep pattern hasn’t quite adjusted yet so I find myself up at 5am every morning and out searching for Breakfast by 6am!
I digress …
We held our 3rd PowerShell Saturday in Singapore on Saturday 15th February – PowerShell Saturday 008! Unfortunately with it still being Valentines day in the US, Ed Wilson was not able to present for us … We are hoping to get him back for the next session in May. I hope “third time’s a charm” holds true! So after some adjustment the schedule was as follows:
Session 1: Using PowerShell to enhance the efficiency of YOUR Operation Team (Milton Goh) – Available via Lync
Abstract: In this session, I will be detailing out what’s the advantage of using PowerShell for existing Wintel Operations Team supporting a farm of servers running Microsoft Technologies. Explaining on how Operation/IT Managers should encourage the Engineers to adopt PowerShell to help them in the day-to-day operational tasks
Session 2: Tips for PowerShell Solution Design (Matt Hitchcock)
Abstract: When you start writing scripts with PowerShell, it’s easy to just open the editor and start writing code. While it might get the job done, it sometimes leaves you with something thats harder to support than it should be. We’ll take some time here to state the obvious and not so obvious, outlining some general good practices that you can adopt to make your code more re-useable and easier to support. This should be of use to you later in the day!
Session 3 (for most of the day): Hands On PowerShell! (led by JD Platek, Benjamin Hodges, Milton Goh and Matt Hitchcock)
Abstract: For the rest of the day we will be focusing on the Practical. We have put together some challenges to work through inspired by the Scripting Games. We believe the best way to learn new things about PowerShell is to get your hands dirty and get into discussions when you run into trouble. The experts in the room will be on hand to answer your questions, help you through where you get stuck and generally explain how you can tackle different problems. It’ll be fun, informal and more useful to you than listening to someone drone through PowerPoint! Learning by doing and Chalk ‘n Talks’ will be the order of the day.
It seems we are cursed to have technical issues at every session. Again we spent time fighting with the projectors and had to change rooms in the end, but this actually helped us in a way which I will explain later. The issue I suspected we would have; sharing the sessions via Lync, turned out to be a completely non-issue. Having not been given WiFi logins for the day I was concerned about having to use someone’s 3G connection but MS have just implemented a new Open Access Network which made it extremely easy 😀
Milton Goh started us off with a session that while not so much technical, I really enjoyed. So often we focus on the technical with PowerShell and we do technical hands on at our sessions it often falls into the trap of remaining just theory when not pitched with an incentive to do this in the real world. I thought Milton’s presentation was exactly that and it was great to hear about the success stories that teams and colleagues that he works with are having by leveraging PowerShell. It’s too easy to go on doing things the way we always have unless there is proven incentive to change, take a look at Milton’s deck (see the session content link at the bottom) and see if it doesn’t give you some inspiration.
For the second session I ran through some tips for PowerShell Solution Design. These were based on what I have seen, read and experienced myself while working with PowerShell these last couple of years. This is perhaps my most favourite presentation I ever gave because it turned out not to be just me talking through a deck! Due to the room change we were sat in a more circular arrangement, rather than the traditional Podium-Projector-Classroom format. This turned out to be great for Group discussion. My co-lead Benjamin Hodge (KEMP Technologies), JD Platek (Microsoft Consultant) and Peter Eg (Consultant at Avanade) had a lot of experience to share on each of the points I chose and the presentation turned into a great experience-sharing session. I loved this because I think this is what community is all about and that everyone got more from it than just listening to me talk through some slides, we all shared real world experience which put each point into perspective. Also, because I was presenting with a cold and sore throat, it lightened the speaking load from me quite a bit!
After breaking for lunch we moved onto the third session for the afternoon – some practical challenges with PowerShell. JD, Ben and I had designed a scenario for the group to choose from. The winner was working with ZIP Files with PowerShell. We wanted to split the room into two teams and address the problems as teams, encouraging team work to build a solution rather than a sole effort on the part of everybody. Having people of mixed abilities working together is a great learning experience for everyone. The less advanced can learn from the more advanced and the more advanced folks get a perspective for what its like for beginners once again. The teams approached the problem in separate rooms because as we know, there is always more than one way to solve a problem and we wanted to contrast the differences. Sure enough, both teams took a different approach.
- Team 1: After heeding advice from my session and chose not to reinvent the wheel. Instead, they found a script from an online repository that already solved the problem of working with Zip files using COM Objects. They identified some issues with the script that was not optimal for what they required and set about turning it into a parameterized Function. The script was also kinda-selected-on-purpose by JD (as this was his scenario) to also bring home the point that you need to be careful about re-using code from the internet. While you should, you should also be able to understand good quality from sub-optimal code. Modifying the script we had chosen turned out to be probably more work than writing from scratch. The ideal approach would have been to use the section that dealt with COM Objects and work on the rest ourselves.
- Team 2: These guys took the approach of leveraging the .NET framework. This was a good experience also because it highlighted the limitations you can run into with this. When using the .NET Framework you need to be sure that the computers on which the script will be used have that version of the .NET framework and this is another important design question to address before you start. Some members of the group were using machines without the .NET Framework 4.0 so were not able to see this solution through to the end on their own unfortunately. The stand-out team member was Sitaram Pamarthi and you can find his blog and write up from the day if you want to read further.
That brought us to the end of the day and it was time for giveaways. They were:
- 1 x Copy of Microsoft Office 2013 Home Premium (courtesy of TechEd Australia)
- 1 x Copy of the Phoenix Project and TrainSignal Pen (courtesy of Steven Murawski and Pluralsight)
- 3 x Copy of Azure t-shirt and TrainSignal Pen (courtesy of the Azure Team at MVP Summit and PluralSight)
At the end of the day there seemed to be a number of folks keen for the next session, which is great because it is what this is about after all. The general consensus at the end of the day was that we will keep running the Saturday sessions and try to get some monthly shorter sessions in between. Hopefully we can have one in March and April, I am trying to get some presenters lined up and locked in. I thought this was a great PowerShell Saturday for the User Group, we had Milton presenting for the first time, the second session turned into a great discussion, there was eagerness to participate in the afternoon and enthusiasm for the next session at the end. All good!
We will publish the dates for the next sessions as soon as possible. Everyone who registered is added to the mailing list so all will hear about it as soon as possible.
In the meantime the following resources are available:
- Content from the day
- PowerShell 3.0 JumpStart
- PowerShell Scripting and Toolmaking Jump Start
- Download Windows Server 2012 R2 trial
NOTE: The pictures below were taken at the end of the day after attendance had dwindled a little bit, we had a few more in the morning!