Automating the world one-liner at a time…
One of my all time favorite books is The IBM Way by Buck Rodgers. (Actually make that "all time BUSINESS books", it's not in the same league as Discourse on Method or Thus Spake Zarathustra.) One of my favorite statements Buck made was something to the effect of, "products of true enduring quality are not those that do 1 thing 1000% better but rather those products that do 1000 things 1 % better". In other words, details matter.
We tried to cover as many details as we could with V1 but frankly we covered so much ground that some things were not a crisp and clean as we would have liked. Those things tend to be small issues and being small issues, they are often hard to get prioritized because there are so many big opportunities around. At the end of the day, you only have so many calories to spend and the game is to figure out how to get the biggest customer value for every calorie you spend. There are a bunch of things that just make me cringe when I use them in V1 but the great news is that we are addressing a bunch of them in V2. We recently had some checkins that had a number of fixes that had me dancing in the hallways (sad but true [I can't tell you how much I LOVE this stuff!]).
Here are a couple:
The output of the ENV, ALIAS, FUNCTION and VARIABLE drives are now sorted!
PS> dir env:
Name Value ---- ----- ALLUSERSPROFILE C:\ProgramData APPDATA C:\Users\jsnover\AppData\Roaming CommonProgramFiles C:\Program Files\Common Files ComSpec C:\Windows\system32\cmd.exe …
USERNAME jsnover USERPROFILE C:\Users\jsnover windir C:\Windows
When you ask for HELP on something and we can't find it, we'll search for it. PS> help remote
Name Category Synopsis ---- -------- -------- about_remote HelpFile How to run remote commands in Windows PowerShell. about_remote_FAQ HelpFile Questions and answers about running remote commands about_remote_jobs HelpFile How to run background jobs on remote computers about_remote_output HelpFile Interpreting and formatting the output of remote commands about_remote_requirements HelpFile System requirements and configuration requirements for running about_remote_troubleshooting HelpFile Troubleshooting remote operations in Windows PowerShell
DIR no longer shows the PROVIDER PATH at the top.
PS> dir c:\
Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 9/3/2008 12:28 PM doctemp d---- 9/3/2008 12:28 PM Drivers d---- 9/17/2008 8:34 PM Kits d---- 1/20/2008 6:32 PM PerfLogs d-r-- 9/18/2008 10:00 PM Program Files d-r-- 9/18/2008 9:44 PM ps d-r-- 9/10/2008 1:49 PM Users d---- 9/10/2008 7:24 PM Windows -a--- 9/18/2006 2:43 PM 24 autoexec.bat -a--- 9/18/2006 2:43 PM 10 config.sys
So that’s 3 down and 997 to go. :-)
Jeffrey Snover [MSFT] Windows Management Partner Architect Visit the Windows PowerShell Team blog at: http://blogs.msdn.com/PowerShell Visit the Windows PowerShell ScriptCenter at: http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx
Frankly, the fact that you're able to deal with this level of detail at this point speaks well of the initial job you did. You're not fighting Godzilla-sized bugs, which is the general expectation for v1 products. I mean, these are *really* evolutionary little details that many folks wouldn't have missed for years. Kudos.
Ya know, those little "fit and finish" details go a *long* way. It's one reason I think the American auto industry got smoked by the Japanese auto makers. Toyota, Honda, et al had a much better eye for the little details. One could draw a similar analogy between Microsoft and another fruity software company but I won't go there. :-)
First, let me congragulate the powershell team for the fine job they have done with version one. "posh" is a force multiplier; we moved from Linux/Apache to Windows/IIS BECAUSE we found posh to be a superior scripting environment.
Since you are on the topic of small improvements, I am wondering if anyone has thought of implementing the sh/csh style history substitution using bangs. I don't know if a bang already means something in powershell language, but if you can do it (or something similar), that will be a serious force multiplier.
This is why I love the PowerShell team! All the little things really do matter and you guys get it. Fit and finish is king and I couldn't agree more with Keith's comment.
Another thing you guys do well is focusing on the end-to-end scenario. You seem to follow this principle well: "Solve 100% of the problem for 80% of our customers. Don't solve 80% of the problem for 100% of our customers." -Myerson