Well, it looks like Scott had to go and drum us Dvorak nuts out of the ground. It brought up a good question, though – how do you go about learning the Dvorak keyboard layout? The Dvorak keyboard layout, for those that do not know, was designed from the start to be maximally efficient. It places the most common letters on the home row, and arranges the letters to maximize both the balance and alternation between hands while typing.
One of my pet peeves with Internet Explorer comes as I read a site or navigate the internet with the keyboard – but then have to use the mouse to click on a single, isolated edit box. One solution is to use the ‘Tab’ key until I reach the edit box, but a page full of links can often require 50 or more presses of the ‘Tab’ key to get the edit box.
Raymond recently wrote a post titled, “A new scripting language doesn’t solve everything.” In that post (and in a previous one,) he points out that backwards compatibility is extremely important for cmd.exe (with itself,) and for PowerShell (with existing cmd.exe scripts.) More importantly, the point is that PowerShell doesn’t solve everything: Shipping a new command shell doesn’t solve everything either. For one thing, you have to decide if you are going to support classic batch files or not.
In a recent comment, David asked how to access environment variables in PowerShell. This is something that we normally just document explicitly: $env:Variable. However, that explicit documentation is actually a shortcut for a feature you may not know about. It’s a little like dividing fractions – you can do it without ever knowing why it works, just that it works. Of course, it’s nice to be able to explain why.
One of the things that people often struggle with when they try to use PowerShell scripts as targets of Scheduled Tasks, or launch PowerShell scripts from cmd.exe is the following error message: C:\Program Files\Windows PowerShell\v1.0>powershell.exe “c:\temp\has space\test.ps1” ‘c:\temp\has’ is not recognized as a cmdlet, function, operable program, or script file. At line:1 char:12 + c:\temp\has «« space\test.ps1 (By the way, you can speed this up by using the -noprofile parameter to powershell.
In the last post, I mentioned that I wanted to update all of my old Monad posts to include a reference to Windows PowerShell. That way, users who use the “PowerShell” keyword to search for a topic I’ve covered (under the Monad codename) can still find it. I provided a script to get all of the posts from a MetaWeblog-enabled host, so our next goal is to actually make the changes.
One of the most difficult aspects of our name change is that we have thousands of pages (spanning hundreds of posts) that use the keyword, “Monad” instead of “PowerShell.” For users just starting with PowerShell, that means that the content basically does not exist. If you search for a solution to “PowerShell Hosting,” you find nothing related to Windows PowerShell. [Tip: If an internet search for PowerShell help comes up fruitless, try it again using Monad as a keyword.
It’s an interesting world we live in. As I was checking my Technorati search for “PowerShell,” I noticed the first PowerShell blog imposter! The person starts off, “I’m a PM on the PowerShell team and i’m largely responsible for the PowerShell language …” We don’t have any Program Managers that blog. So I click into the blog, with a wry smile on my face – thinking how much you all will like the story.
Abhishek Agrawal, another member of the PowerShell team launched his blog today. Amongst other things, Abhishek blogged the very cool types.mshxml extension to add MSDN help links to the output of Get-Member. Enjoy!
Knowledge is power – and power is a limited resource. At least, that’s what some folks believe as they obsessively guard information from others. That’s a load of tripe. It creates a work environment so fundamentally backwards: employees direct their efforts toward breaking into the cliques, cabals, and secret societies just to get their jobs done – leaving no time for more important things (like customers.) There are plenty of examples of this inside of Microsoft.