Don Jones
Explore articles and content from this author
Don Jones
372 articles published
Winter Scripting Games Tentatively Scheduled
We’re tentatively scheduling the 2014 Winter Scripting Games for 4-6 weeks beginning January 6, 2014. Right now, we’re running functional tests on the platform (which will be all-new and much-improved), and soliciting scenarios from MVPs and PowerShell celebrities.
As previously announced, players will work in teams of 2-6 in this edition of the Games, and it’s never too early to start finding friends to form a team with you. Because you’ll be working in teams, and because you’ll have a full week to complete each scenario, expect more complex scenarios! You’ll have to practice breaking down tasks and assigning them to team members.
You’ll also need to think about how you want to collaborate as a team. We’ll be providing a very basic private in-Game discussion thread for each team, but you’re welcome to use Git, PoshCode, e-mail, MailChimp lists, or whatever for your collaboration. You’ll be able to submit your entries’ files whenever you like, and revise them to your heart’s content right up to the entry submission deadline.
The New Look of the Scripting Games
I’ve been busily working on a new interface for the Scripting Games - we’re still planning a Winter Games event - and wanted to share progress. You can click this thumbnail to see the full image.
The new Scripting Games features movable, resizable panes
The new layout features movable, resizable panels, allowing you to position them however works best on your screen. No, they’re not especially mobile-friendly.
As you can see (at least in implication), entries can consist of multiple files, as in a complex script module. There’s a team-level discussion as well as (as shown) discussion threads for each file. Any player on the team can add new files, delete files, or modify existing files by uploading a replacement. This view shows that I joined the team “Aliens” after the current event had started, which is why I’m unable to contribute new files.
Your team won’t be restricted to using the Scripting Games Web site. In fact, you can collaborate and communicate however you like. Use Git or PoshCode for your scripts, and e-mail or a discussion list for communications. It’s your choice.
We’ll be recruiting a team of Coaches, who will browse whatever you’ve added to the Scripting Games Web site in advance of the event deadline, offering their own comments - you can see that Coach comments are highlighted for easy recognition. It’ll pay to drop code into the Web site every day so our coaches have something to comment upon, and to check in daily for any coach comments that may have been left.
The upcoming Games events will be more complicated - you’ve got a team to work with, so we figure you can handle an extra challenge. Event scenarios will be authored by a team of community all-star volunteers, including The Scripting Guys and various MVPs and enthusiasts. That should give each scenario a slightly different flavor, exposing you to a wider variety of real-world challenges.
Judging of team entries will involve a more complex scoring rubric than our past 1-to-5-stars technique - giving you a more detailed scorecard. Keep in mind that each team will be able to submit only one combined entry, which will give our judges fewer to look at - and more time to look at each one. The new rubric will still allow judges to express some personal tastes and opinions, so you shouldn’t expect to be able to please everyone every time!
Team assembly will allow you to form your own team, or be automatically assigned to a team that needs players (teams MUST have 2 players to participate). We’ve rigged the system to ask for your time zone, and to display the average time zone offset of potential teams. That way, you can look for a team whose players are geographically close to you, helping to facilitate any real-time collaboration you might set up (via YouTube, Google+, or whatever). If you choose auto-assignment, the system looks for a team whose players are geographically close to you, relatively speaking.
Local user groups are encouraged to form their own team, and to have their own members join - that way, the Scripting Games can be the topic of a monthly meeting or two.
Things are still evolving and under development, but wanted to share this early look!
Seeking Curators for PowerShell eBooks
[UPDATE: I think I’ve finally gotten all the books under curation - but if you’ve an idea for a PowerShell-related ebook, and would like to co-author or even be a principal author (I’ll help out with logistics), still hit me up.]
As you may know, PowerShell.org hosts a number of free ebooks that have, to date, been written mainly by me. But I’ve recently been delighted to welcome some co-contributors - Forums regular Dave Wyatt has contributed new content to “Secrets of PowerShell Remoting,” for example, and Matt Penny has volunteered to organize the forthcoming “Community Book of PowerShell Practices.”
I’d like to try and sign up “curators” for some of our other free ebooks, including the forthcoming “Big Book of PowerShell Error Handling” and the “Creating Trend and Analysis Reports in PowerShell” titles, as well as - and this is one I’m really interested in getting someone for - the “Big Book of PowerShell Gotchas.”
What’s a curator do?
Mainly, incorporate community feedback (typos, etc) into future editions, as well as integrating new content. That content might be written by the curator, or contributed by someone else. We use a very simple Word template, and you’d use Calibre to produce PDF and EPUB from that. I provide cover art images and whatnot - this is mainly an “assemble, organize, and deal with the errata” process at a minimum. If you are passionate about the topic, you can of course become a co-author with me and add your own content (and I’m happy to help you do so). That’s especially true for the “Gotchas” title, which is mainly a series of short articles that cover some of the shell’s biggest speed bumps.
A copy of Word, Calibre (free) and a GitHub client (free) are needed, plus a few free hours every few months and the willingness to take on the job. You’ll truly be helping: I often can produce extra content now and again, but actually spell-checking it, putting it into the book, making the EPUB version, and so on - believe it or not, that stuff takes me more time and is one reason the ebooks don’t get updated more often. Sigh.
Hit me up if you’re interested in helping out!
Nominate Your PowerShell Hero
PowerShell.org is proud to announce a new community recognition program:Â PowerShell Heroes. We’re looking for your Hero nominations!
AÂ PowerShell Hero is someone who you feel does an outstanding job helping the community, perhaps by answering questions in forums (here or elsewhere), writing useful blog posts, offering education, and more. AÂ PowerShell Hero is someone whoÂ
has not already received formal recognition elsewhere
, meaning past and present MVPs are not eligible. _
_
We are accepting nominations until December 15th, 2013. At that point, the Board of PowerShell.org will review the nominations, and in early 2014 we will announce those we’re honoring with this recognition. In subsequent years, past honorees will decide who gets recognized in the following years.
Who can I nominate? Anyone you want, except current or past MVPs, Microsoft employees, Microsoft Regional Directors, or others who have been formally recognized for their community contributions.
**How do I nominate them? **Send us an e-mail (admin@; our domain is powershell.org). We need the person’s name or online handle, and some links to their contributions. Also describe in 100-500 words why they’re your PowerShell Hero. Please put “PowerShell Hero” in the subject line of your email.
How many people will be recognized? We don’t have a fixed number.
**What will honorees receive? **Online recognition; we’ll be publishing an online directory of Heroes. We’re looking into making plaques, but it depends a bit on the finances. There are no other benefits to the honoree.
**Must someone re-qualify every year? **This isn’t like the MVP program - it’s a recognition with no benefits. So there’s nothing to “qualify” for. In future years, the previous year’s honorees will select the next year’s honorees, so you’re prohibited from being recognized in sequential years.
**How can I think of who to nominate? **Think about who has helped you with PowerShell problems. Did someone help you solve something through a discussion forum? Did someone’s blog post give you that “aha!” moment? Did someone spend a massive amount of time putting together a PowerShell event that really helped you? Those are the heroes we want to recognize. Again, past and present MVP award recipients are not eligible - they’ve already been recognized.
We look forward to your nominations!
Winter Scripting Games: More Feedback Needed
So I’m continuing to work through some logistics regarding the Winter Scripting Games (and no, there’s no dates set).
The intent of these Games, as I’ve written before, is to offer a collaborative experience. You’ll work in teams of (proposed) 2-6. You have two ways to join a team: Pick an existing one that needs players (you’ll be shown the average time zone offset, in minutes, of the existing players, so that you can choose a team near you) or create a new team from scratch - which others can then join. You’d be welcome to “recruit” for your team using social media.
NB: Collaborate does not mean _live online collaboration. _Your team could do a Google Hangout or whatever optionally, but we’re only providing asynchronous collaboration.
You will be able to leave your team up to a point. That is, you could always LEAVE your team, but each event within the Games will have a deadline for joining - meaning if you’re not on a team when the event starts, you’ll have to wait for the next event to re-join a team.
My question right now revolves around the collaborative process. The idea is that the team has a single, shared code repository, meaning everyone on the team can see it. I want you to visualize this in your head, and then describe to me how you think it should work.
The overall idea is that your team works on the assignment together, and then forwards (by the deadline) a final team entry for judging.
Would you start by allowing one team member to upload an entry, and everyone would collaborate on it? Or would every member have the ability to upload a potential entry, and you’d all discuss which one you wanted to use as the team’s starting point? If there can be multiple parallel entries, how will the team decide, and then indicate to the system, which one is the “final” one? Remember, the team only sends ONE entry up for judging.
NB: We will provide private team discussion threads within the system. You will not necessarily be able to comment on a given script file _per se, _but we’ll provide a means to reference lines of code within the team discussion threads. That keeps the discussion in one place, but allows you to refer to specific wodges of code.
How will the code portion of the collaboration work? That is, when someone wants to provide a revision to the team entry, would they upload/paste an entirely new entry? Or would we provide a text editor so that you could edit the code that already exists? I’ll note that we’re NOT NOT NOT providing an ISE experience - so a Web-based text editor might well leave room for unintentional errors. We won’t help you with those.
If we use a paste-in text editor, we’d enable you to paste in an all-new entry, or to simply make quick changes to an existing entry, right in the Web page. That might be convenient.
The new system will recognize the concept of a given entry consisting of multiple files - e.g., a script module that includes a .psm1, .psd1, and .ps1xml file, all working as a unit.
Do we version-control this? That is, if everyone’s uploading revisions, do we just keep ’em all, and indicate which one was most recent? That way you could always access older versions? Again, if each team gets a single entry, and each member can paste in new code or edit the existing code, this seems workable. We’d keep old versions so you could “roll back” if needed.
If we did that, would you NEED a version-to-version comparison tool? If so, the complexity of that may mean we don’t run the Games this Winter. So think real hard about WANT vs. NEED. We COULD provide a way to download, in a ZIPped folder hierarchy, all versions of the entry, meaning you could then use local comparison tools on your computer to compare revisions.
Your thoughts? What do you think is the best workflow for this kind of Games?
My New PowerShell Video Series, Covering v2/v3/v4, Launches
It’s finally starting to be published - my Ultimate PowerShell Video Training Series, covering versions 2 and onward.
This series will initially consist of 90 chunks of roughly 20 minutes each, adding up to more than 30 hours total. I’m building each individual video to CLEARLY differentiate between PowerShell v2, v3, and v4; for the most part, I switch to Windows 7, Windows 8, and Windows 8.1 to demonstrate specifics in each version. That means you can clearly tell what features and techniques go with each version. It also means the series can be extended as new versions are released in the future.
This is going to cover everything - think of it as a “PowerShell In Depth” done in video. And, whatever I forget, if there is anything, can be easily added to the series. In other words, this will be my new, permanent video training for PowerShell. It’ll cover every version from v2, be extended to cover new version techniques and features, and be expanded to cover new topics as they become of interest.
It’s being built with hands-on labs, too. I describe a lab environment you can set up (super-simple), and provide written lab documents for you to work through. Each is then covered in a standalone video, so that you can see sample solutions.
Best of all, you can watch the whole thing for under $100. CBT Nuggets’ program gives you monthly access to their entire library for that price, including my entire PowerShell series, their hundreds of titles related to certification and technology, _everything. _Or pay $1000 for an entire year - which also gets you access to practice certification exams from Transcender.
I’ll be publishing 5-10 videos per week in this series, until it’s done - and we’ll then be tackling domain-specific PowerShell management, including Exchange, AD, SQL Server, System Center, all of it. It’ll take some time to build out all of that, but I’m committed to building the most comprehensive PowerShell video training offering in the universe!
If you get a chance to check out the new series, let me know what you think.
Great Debate: The Conclusion
All this Summer, we’ve been encouraging your feedback in a series of Great Debate posts. Most of the topics came from the 2013 Scripting Games, where we definitely saw people coming down on both sides of these topics. My goal was to pull everyone’s thoughts together into a kind of community consensus, and to offer a living book of community-accepted practices for PowerShell. This’ll be a neverending story, likely adapting and growing to include more topics as the years wind on.
But here’s the start: DRAFT-2013Sep_Practices is the first draft, officially a Request For Comments, based on the comments you’ve all contributed to the Great Debate posts over these past few weeks. I tried to capture consensus where I saw it, and to outline both sides of the great back-and-forth we’ve seen.
NOTE: The cover image in this draft is just a placeholder; this book is NOT dedicated to error handling. Its working title is correctly shown on the page following the cover image.
I’m going to leave this post in place until October 1st. Please drop any comments you’d like to offer to the final first edition of this ebook, and let me know if there are any topics you’d like to see debated in the future. After October 1st, I’ll publish the final edition of this Practices guide as one of PowerShell.org’s free ebooks. The final first edition will also become part of the next iteration of The Scripting Games, as its official “best practices” guide. In fact, you’ll notice in this draft that there are a couple of Games-specific comments, since the Games sometimes have different drivers than a production environment.
Thanks again to everyone who participated!
Writing Courseware: 10961 PowerShell Class
We’re in the process of working on a 10961C revision to the Microsoft PowerShell course, and I’ve been reviewing the anonymous comments submitted by MCTs and students on 10961A (the “B” rev, which is what was produced after our beta teach, is just now orderable so we don’t have comments yet).
**By the way - if you’re a student or MCT who has taken/delivered 10961A, you’re welcome to contact me directly if you want to share any info on typos you found. Would like to fix those. **Microsoft unfortunately didn’t bill 10961A as “pre-beta,” which it was, and I think that may have not properly set some expectations.
Anyway, if you’ve ever taken a course and thought anything bad about the courseware (not necessarily the instructor), take a look at these comment excerpts from this one course:
Regular Expressions are a -replace's best friend
Are you familiar with PowerShell’s -replace operator?
"John Jones" -replace "Jones","Smith" Most folks are aware of it, and rely on it for straightforward string replacements like this one. But not very many people know that -replace also does some amazing stuff using regular expressions.
"192.168.15.12,192.168.22.8" -replace "\.\d{2}\.","10" That’d change the input string to “192.168.10.12,192.168.10.8,” replacing all occurrences of two digits, between periods, to 10. The 12 would be skipped because it isn’t followed by a period, as specified in the pattern. Note that all occurrences are replaced, in keeping with the usual operation of -replace.
The operator can also do capturing expressions, and this is where it gets really neat-o.

