PowerShell Conference Europe was closed more than a month ago, but that time was filled with the content from that conference. For the first time you don’t need to remember where to find videos – it’s actually quite hard to forget it. Thanks to Tobias all videos from this PowerShell conference can be found under URL (surprise – surprise!) PowerShell.video What is great about these videos from my point of view (a speaker that is not as experienced as many other presenters, with pretty wide margin for potential improvements) is the fact that most of the sessions where record with picture in picture technology – you can see both the screen shared by the speaker and the presenter in person. In other words: I can learn from example (by watching the best) and from my own mistakes.
Today a very short post about a concern that I would like to share. It all started at work, when our internal module went up to something like 12 seconds to load. And you my ask yourself: what is the big deal here? Well picture this:
Boss stands behind you and asks you: hey, do we have any JIRA tickets about this change you did last week? Can you find them for me?
Not expecting any issues, you type PowerShell command that should let you perform a quick JIRA search in CLI, proud of your own creation and simplicity of it. You type in the command name, a parameter that allows you to specify J<TAB>QL and… you wait…
It’s been a while since I had an opportunity to stand in front of the audience and present about PowerShell. The last time I did was in May this year, when I took part in PowerShell Conference EU. Not long ago I did present for Polish audience, but that was a remote session. Main difference is obviously the fact, that presenting to people you see in front of you makes it more two-way communication than a one-way monologue that remote session usually end up being. And even though I got some awesome questions during this presentation, it’s also easier to interact with presenter/ audience when you still get to talk to each other after you are done presenting – some of the most interesting and involved questions are the questions asked after the session.
Last year I took part in PowerShell Community Konferenz that took place in Essen/ Ruhr and was total blast. The only issue I had with last year event was the fact that my German is… as good as my Dutch. So unless German session was full of demos and code – I was not able to follow it. Fortunately, most of the sessions were actually of the kind I could follow even if they were presented in languages I hadn’t heard in my life. I can read code, even if variables may seem obfuscated. Apart from that there was very nice line-up of people who presented in English, including super-stars of my PowerShell world like Aleksandar Nikolić or Bruce Payette.
I’m a PowerShell geek. And I fancy one-liners (a lot). When I participated in the Scripting Games in 2011 I did try to solve any advanced problem with one-liner and once that was complete, I would start investing time in making it a proper function/module. That’s why whenever I see PowerShell golf contest popping up somewhere I’m always up for the game. I usually don’t win these but sole process involved in making something as short as possible (it also becomes cryptic, but that’s just a side effect) is well worth it.
When I started my first real job in IT (almost 15 years ago) it felt a bit odd. At that time I was spending most of my time on Linux, yet my work required mainly Windows skills. My work colleague knew my background so I got task that supposed to be “gateway drug” to get me back on Windows side: updating backup script that was written in batch. Pure batch: I was not allowed to install any of the *nix tool’s ports to aid me in this project. And there were few significant requirements, and new one arrived every now and than.
Initial plan was different, but it looks like next Tuesday (well, more like Wednesday in my time zone…) I’m going to present about OMI for the third time. This time I will present for Omaha PowerShell User Group. You can find meeting details (and sign up) here. I must say I’m super-excited. This group is relatively “fresh” (this will be their 2nd meeting). It’s lead by Jacob Benson and Boe Prox. And Boe is a person that I “know” for years. We never met in person, but he was one of few people I virtually known in my early PowerShell community days. That plus the fact that I learned a ton from his blog. No surprises, blog title says it all, right?
When you hold a hammer you may end up seeing nails everywhere. I won’t pretend that I don’t have this problem. PowerShell is my hammer and “I see nails”. For example: when I have to work with a product that doesn’t allow me to perform some system-wide searches but allows me to export entire configuration to XML document I will improve my XPath skills and use my hammer for this nail. My XPath series is side effect of that.
I have more ‘nails’ around me though. Like ticketing system (lets keep it nameless) that has (for my needs) very poor search mechanism, but has SQL backend. I could probably use API that this product has (I think? Frankly, I didn’t even try to find it…) but writing something SQL-aware seemed more natural and reusable. After all – I may use the same ‘skeleton’ for anything else that has SQL backend.
Last week I managed to write few short posts for PowerShell Magazine. It was whole series about XPath. You can think of it as an extension to my earlier post about case-insensitive Select-Xml. And I can’t express enough how different (read: better) this experience was from writing anything for my own blog. Having second pair of eyes (with healthy amount of criticism) made huge difference in the final “product”.
You probably seen this a lot: new Foreach-Object and Where-Object syntax without script block is something people blogged about a lot. Some people love it, some hate it, some see it as a source of confusion for new-comers. I personally love it and I try to use it whenever possible (but only when working in interactive shell). You will see most of time new syntax works great, but it fails badly when used in more complex filters. I would like to show you how it can be used in combination with old syntax to simplify your code even in more complex situations.