Learn about Windows PowerShell
The fifth annual Scripting Games are nigh! This year, the Games will take place April 26 through May 7. We decided to shift back to the spring/winter timeframe (or summer, if you live in Australia). Given the range of seasons in the world—it is almost always summer or winter somewhere—we could rightfully call the Games whatever we wish.
Our theme for this year's games is…drum roll please…there is no theme. In retrospect, there are only so many themes we could have: Summer Scripting Games, Winter Scripting Games, NASCAR Scripting Games, Little League Scripting Games, Girl Scout Scripting Games. There are many possibilities. We did not get any feedback from our thousands of contestants last year that the development of a theme added any significant level of enjoyment to the Games themselves. Therefore, in an age of cost consciousness, we decided it would be more cost effective to have the generic 2010 Scripting Games. Generically awesome, that is.
One piece of feedback that we received from hundreds of people (via the email@example.com e-mail alias, Twitter, Facebook, people waiting to jump Ed in dark corners of the Microsoft office) after the conclusion of the 2009 Summer Scripting Games was that contestants want to be graded. They want to know how they stack up against other scripters around the world. They want to see their moniker on a leader board. Therefore, we have brought back the element of competition to the 2010 Scripting Games.
One thing that is very important this year is that the Beginner division is for beginners. This means that people who have very little experience with scripting are welcome. In fact, they are encouraged to participate. It should be a great learning experience. In fact, the Scripting Wife will be participating in the 2010 Scripting Games Beginner Windows PowerShell division this year—and she has never written a script in her life.
What about the Games themselves? This year, just as it has been for the last two years, there are 10 events for 2 divisions. We have a VBScript division and a Windows PowerShell division. There are two levels of participation in each of the two divisions: Beginner and Advanced. You are free of course to participate in both divisions and to participate at both levels if you wish. Of course, that would entail writing forty scripts, but that is up to you. If you want to turn this into an Ironman qualifier, go for it!
The leader board this year will be updated daily and indicate your position by registration ID. Each entry gains you one point. There are also style points to be awarded. Style is, of course, a bit subjective. Needless to say, if your entry is a bare-bones entry that only meets the basic requirements, you will not be gathering very many style points. If, on the other hand, you come up with something elegant that has never before been seen, you will receive one of the highly desirable and extremely coveted style points. The leader board is simply a running tally of points awarded. These points put you in position to win the grand prize.
Speaking of prizes, yes we will be having prizes. At this point, it would be premature to reveal them. Suffice it to say there is some really cool stuff that any scripter or budding scripter would love to have. Stay tuned for our prize announcement.
The cool thing about including a frequently asked questions section—when you have not even completed the document—is that you are telling people that you are deliberately doing a slack job and therefore know they will have lots of questions. At least this is true in my case because I prefer to spend my time working on scripts than writing about Scripting Games.
We are once again partnering with the Microsoft Windows PowerShell MVP community and once again using the PoshCode script repository for the Games. You will log in using your Windows Live ID, or one of the OpenIDs that are available on the Internet. After you log in, upload your script. Easy as that. We will be notified when entries are uploaded and will grade them, and update the leader board, send e-mail messages to our managers bragging about our successes. It’s a piece of cake (or a celery stick, if you are on a diet like I am).
Entries are due one week after the event is announced. We are not worrying about time zones this year because we feel it is unfair to our good friends in the Southern Hemisphere to require them to get up at 3:00 A.M. to submit a posting for it to arrive at 6:00 P.M. Redmond time. After all, the world does not revolve around Redmond, Washington, USA.
No. We are really laid back. If you want to participate in the 2010 Scripting Games, it would be good to submit by the due date so your entry can be graded and the leader board updated. If you would like your entry to be evaluated by your peers and garner lots of stars via the voting process, it is actually good to get your entry in on time or even early. Studies have shown that during Scripting Games script evaluation, the early script gathers the stars (but the second mouse gets the cheese—not sure what that has to do with scripting, but it sounds cool).
First of all you will need to register for a contestant ID. Registration will be open soon (he typed on March 25, 2010). After you have that, you need to stay tuned to the TechNet Script Center and watch for the event announcements. You can get a leg up on the competition by following the Scripting Guys on Twitter; that is where the events will first be announced. We know there is still a bit of cutthroat competition lurking around in the subconscious mind and we feel no guilt for stoking this fire.
You earn a point for your submission. In addition, you earn a point for a correct submission and can potentially earn additional points for style genius. Points are then tallied and contestants updated on the leader board.
Did it run when you wrote it? If it did, does it solve the problem you were attempting? Then guess what? It was right. Just like in real life, the script is right if it solves the problem. Is it the best script for the job? Well, how do you define “best”? What are the criteria? Shortest, fastest, easiest to read, most complicated, most elegant, most heavily commented, most robust, or any other superlative.
When the 2010 Scripting Games are over, stay tuned because we will have guest commentaries written by experts in the field. You are free to compare your script with those submitted by the experts. During the wrap-up sessions, we will be picking cool scripts from contestants to highlight on the Hey, Scripting Guy! Blog. If your script is cool enough, you might be picked! You can also garner feedback via the evaluation process in the PoshCode.org Repository. In the end, however, your script is right if it works for you and if you understand why you wrote what you did. If you are happy, we are ecstatic!
Of course. Stay tuned for more details.
There will be 11 drawings for prizes this year: one drawing per day during the Scripting Games and a grand prize drawing at the end. To be eligible for a daily drawing you need to submit your script for the event. Everyone who enters the 2010 Scripting Games is eligible for the grand prize drawing. All prizes are granted based upon random drawing of names from the eligible pool of scripters for that day’s event. The grand prize is awarded to the contestant or contestants who gather the most points, in the event of a tie.
We have created a special Scripting Games forum for use by the participants. This forum is specific to the Scripting Games. Stay tuned for its grand opening!
If you have a question about a problem you are working, it is very possible that one of your fellow participants will also have a similar question. In the true spirit of community and sharing, you are encouraged to actively participate in this forum. You will be surprised at the ideas that may suddenly spring from a spirited conversation regarding one of the events.
Of course you can. In fact, we encourage you to do so. You can also adapt their code and submit revisions. You will learn a lot by looking at other approaches to the problem. If you are completely stuck on a question, go ahead and peak. It is what you would do at work anyway, so why not here?
The Beginner events are meant for (wait for it) beginning scripters. Are you a beginning scripter? Check out the events, and see if they make sense to you. If you feel they do not offer a sufficient challenge, check out the Advanced events. The topics are similar for both beginning and advanced scripters. In some cases, they are essentially the same event with additional requirements.
You are; of course, free to attempt all the events from both the beginning field and the advanced field. You are also free to write the scripts in VBScript and in Windows PowerShell. You can even combine both languages into a single script if you wish. For a real challenge, write a single script that solves all 20 events in both VBScript and Windows PowerShell at the same time. That would be impressive. If you want to get into shape for the Scripting Games, it would be wise to review working with the registry, event logs, environmental variables, WMI information, looping, and much much more.
The Advanced field features events for (wait for it) advanced scripters. So what makes an advanced scripter? This is something that we have struggled with for years. What is an advanced topic, and what is a beginner topic? To some extent, something is advanced to a person if he or she does not know the topic, and something is basic if one already knows it. For example, if you were a math major in college, a question about differential equations would be a basic topic; to a music major, however, such a topic might very well be considered advanced. If you want to be advanced, you should review regular expressions, arrays, handling command-line arguments, developing custom functions, and working with graphical interfaces.
See the 2010 Scripting Games Study Guide for a list of study topics and resources.
Ed Wilson and Craig Liebendorfer, Scripting Guys