We’re already planning for the 2014 Summit… you have to get way out in front of these things to secure space, plan a budget, and more. Here’s what we know:
We’ll definitely still be in the Seattle metro area. That’s the best way to ensure participation from the PowerShell team, since it doesn’t require them to leave town for days at a time.
We’ll be in April 2014. We’re going to try for April 14-16 to avoid Easter, or April 28-30.
We’ll be in a bigger venue. We hope to support a crowd of up to 300, although we’re still aiming for a smaller group. That’ll give us more flexibility in session planning, along with the possibility of on-site evening events.
We will open up early bird ticketing for 2013 alumni the week of April 29-May 3. 50 tickets will be available. If there are any of those tickets left after May 3, they’ll be offered to the public May 6 through 10. Any remaining early bird tickets will be converted to full-price tickets after May 10, when general sales will begin. Early bird pricing will be in the $650 range. Full pricing will be around $850. This is more than 2013, but will help us (a) fully reimburse speaker travel expenses, which we couldn’t do in 2013, (b) pay for the larger conference venue, (c) offer a full hot breakfast every day and beverages throughout the day, and (d) allow for bussing to the event venue (see below). Early Bird tickets will be fully refundable until the end of 2013.
We are going to try and hold a percentage of our full-price tickets for release in January 2014. That way, people who can’t get budget until the year-of will still have a shot at tickets. This will be a small block of tickets, though - probably less than 30 - so if you can get budget to buy your tickets in 2013, do it.
We will offer bussing from one hotel complex to the event venue in the mornings, with return busses at night. It will be crucial that you book your hotel as soon as possible once we announce, so that you can lock in a room. This can help eliminate the need for a rental car, and lower your trip expenses. At least one hotel option at around $100-$110 a night will be offered, although it may be a limited room block. For folks in the US, you should be able to attend for about $2,000 including air, hotel, and registration. Add in dinners (which we don’t provide) and you should be able to attend for under $2500 including expenses. Not bad!
As you can see, we’re still trying to keep things as affordable and accessible as possible, in keeping with the nature of a community-owned event. We’re also trying to build this event into one that can support itself and continue to grow. I know a lot of folks who wanted to come in 2013 missed out… so that’s why I’m giving you as much heads-up as possible. Start getting the boss on board. Get purchasing on board. Start planning to have the credit card ready in April 2013. We’ll get as many folks as we can into the 2014 Summit!
Today"™s question involves using the Context parameter:
*It’s probably just me, but I’ve never gotten the switch ‘-context 5 *or -context 2, 7′ to work predictably – where 5 lines before and after or 2
before and 7 after will come out – have you?
Let"™s start by looking at the default behaviour of select-string using the search pattern you"™ve seen previously:
When I wrote Microsoft course 10325A, their original 5-day Windows PowerShell course, I saved variables until Module 11. My thought at the time was to focus on teaching just what students needed for what they were about to do - and no more. “Just in time learning” can be effective, because it lets you immediately experiment with whatever you’ve just learned, and helps minimize the need to store up concepts for later use. I’d also had a lot of class experiences where bringing up variables too soon engaged a defensive mechanism in some students: “I’m not a programmer, variables are programming, and I’m shutting down right now.” The biggest piece of MCT feedback from 10325A was, “don’t do that.” Trainers told me they were often teaching module 11 much sooner. Jeff Hicks had what I think is the best explanation for why: Without variables, you’re locked into the one-liner approach in PowerShell. While one-liners are neat, and effective, they aren’t always easy to read or to mentally de-construct. Using variables earlier in the course, Jeff argued, let you break things down into smaller logical chunks. Now, one thing I’ve had to accept in writing 10961A is that I can’t please everyone. The feedback on 10325A is incredibly contradictory. Some MCTs want more programming, others want none at all. Some want classes to run 9am-4pm; others want 8am-6pm. Some want less content on the slides (actually, most wanted that). So what I decided to do is try and provide the material to accommodate what it felt like everyone was asking for, and rely on MCT’s ability to mix things up as needed for their classes. (As an aside, I do think some MCTs jump into the “programming” aspect of PowerShell too quickly. It’s fine if you’ve got a room of people with programming experience, but it keeps students from learning some valuable fundamentals and turns the class into a “scripting” class awfully quickly. I’m not sure every MCT has done a really thorough cognitive analysis of their class results to determine if the programming-first approach is best; my experience with Month of Lunches readers suggest it isn’t.) But I still didn’t want to do the full deep-dive on variables super-early in the course. So here’s what I think I’m doing: early in the course, you’ll be exposed to variables, in a very simplistic sense. They’re described as a named place to store objects, and used to de-construct a complex one-liner into a multi-line series of logical steps. Early in the course, I don’t go into naming rules, the double quotes tricks, or anything else. You learn exactly enough about variables for the task at hand - and no more. In module 7, which is right before the module where you turn a command-line into a parameterized script, I cover variables more formally. I cover their rules, usage, double quotes, all that stuff. So you learn a wee bit about variables early, and then learn the full details later - just before you need to use variables more seriously in a script. So, keeping with the just-in-time learning. The variables material is broken out into its own lesson in module 7, so an MCT hell-bent on teaching everything about variables right up-front can do so.While the feedback from 10325A suggests that MCTs think every course should be designed for the way they teach, I’m not sure they all realize how differently they all teach. The best I can do is provide the material in standalone chunks that MCTs can rearrange as needed. After all, the whole point of having a live instructor, as opposed to a recording, is the instructor’s ability to teach to your specific needs. So MCTs will have to be happy rearranging the material a bit as-needed; my outline is the recommnded approach that will work best across the broadest array of students, but it isn’t perfect for everyone. Nothing could be. As a point of reference, 10961A doesn’t dive into scripting as deeply as 10325A did. PowerShell 3.0 has enough new, extra stuff that a 5-day course doesn’t allow for deep programming topics. You do take a command and walk it through to being a script module, so you see the range of scripting options, but you don’t practice them in depth. It’s inch-deep, mile-wide coverage of scripting, as opposed to something deeper and more focused. I’m hoping Microsoft can find budget for a full-on “scripting/toolmaking” class in the future, but 10961A ain’t it. So… what do you think of this approach?
Today’s question concerns finding the first and last matches in a file
Sometimes, I need to make two passes at seeking content in this file, once for the first occurrence; and a second grep for obtaining the last occurrence of a phrase. After the second pass, I figure placing the values into an array is the best way, then need to combine first and last values onto one output line {somewhere else}.
Following on from yesterday"™s post this is the second question:
Since I’m recursively searching thru files to find matching phrases, how can I obtain other directory service information about the matching files file(s) – this is more of a methodology technique question because I realize there are multiple ways of achieving this?
I’ve been working to update my three free PowerShell ebooks for this month:
Secrets of PowerShell Remoting
Creating HTML Reports in PowerShell
Making Historical and Trend Reports in PowerShell
The updated versions will be made available to subscribers of the PowerShell.org TechLetter on January 15th. If you’re not already signed up to receive this, you can [sign up right now][1]. The January issue will also feature a walkthrough article of how I started creating a new, better ConvertTo-HTML command, which gets used in the ebook on HTML reporting. Going forward, I’ll be making updated ebooks available primarily through the TechLetter. If you’re not a subscriber and don’t want to be, well fine. I’ll just take my ball and go play in someone else’s sandbox. Kidding . I’ll post the updates at the end of January. However, right now access to the books still requires a subscription to the newsletter, although you can immediately unsubscribe if you want to. I had to put that “hurdle” in the way because we were losing a ton of bandwidth to people direct-linking the download files. Mostly from China, for some reason. You’re welcome to host the files on your own server, if you want to (they’re licensed for that), but bandwidth costs me money, so I’m trying to conserve a bit. Anyway, keep an eye out for the TechLetter in your inbox on Jan 15th. Check those spam filters, and make sure newsletter@powershell.org is in your address book, so that your mail server will know it’s a legitimate sender.
I had some questions come in after mu recent post regarding select-string. I"™ll answer them as a series of posts. First off:
I’m recursively searching thru many files, and want to pull out specific data in ‘fixed column’ positions from the line(s) that match the phrase I’m seeking, i.e. position 10 thru 15 of the line or position 6 thru the end of the line (which might be unknown). What is your preferred method for handling this situation?
User group member Greg Martin gave a presentation on Active Directory and PowerShell. A copy of his presentation can be found here and included the following topics:
Building a copy of your production AD domain
Notifying users of expiring passwords
Dealing with expired computer accounts
User group member Sunny Chakraborty gave a presentation on how to use the techniques of Prof George Poyla and Chess Grandmasters in order to improve your scripting skills. A copy of his presentation materials can be found here.
Various other information worth mentioning
User group member Sunny Chakraborty submitted a list of PowerShell commands to retrieve Dell specific WMI objects. A copy of that list can be found here.
Another group member (Name forthcoming!) submitted a list of PowerShell commands to retrieve HP Insight manager WMI Objects. A copy of that list can be found here.