News for hackers. Stuff that matters.
Re:My Microsoft Experience (2013) by hyperliner on Sunday May 24, 2015 @11:05PM (#9598456)
There are a few other things people almost don't talk about because these blogs seem to always be from people in level 60 (junior people).

- There is really no 20% rule that applies to teams. The calibration process is across bands / levels across a given product area. So it is not that you are supposed to give a score of 5 (deadwood) to a member in your 5-people team. It means all people across the division who are at level X are looked at and "sorted" to do that assignment. People level 64-65 and above typically have these "cards" that they use to sort people. That is the meeting where your manager or his manager is supposed to support you. But the other managers don't really know who you are for real. In the best case, they may know of you. So it is really hard to have a conversation because only one or two people have context about every person. So just to summarize, there are these cards that people drop on a table where they do the classification, and people don't really know who they are ranking.

- the second point is that moving into new teams is in many cases a really bad idea because the new manager now inherits a new person that cannot be defended as well as the existing team for the simple reason that the new person is not known as well. Many people have been in the same division for 15 years or more. You know they are not going to be an unknown and they coast on the legacy reviews. The new guy / gal is an easy victim unless she is some sort of Bill Gates right off the bat.

- one thing that was crazy in that review is that they not only let go of people with bad scores. They also let go of people with good scores but who are deemed to have reached their plateau level. So you may still be a great director or GPM but if the system decides the director is not going to make GM or the GPM is not going to make director, then they also see you as a candidate to get rid of.

- the most important problem for the industry I believe is that the system perpetuates the need to create NEW stuff. So for example, why would somebody create Powershell instead of using a perfectly fine alternative from the Linux / Unix world? Well, because that way you are the person who created a NEW thing and not who simply PORTED a solution! Can you imagine the world today if we could use the same commands or patterns of commands in Windows as we do in Linux? Clearly the OS are too different for that to be practical but we cannot argue that the syntax and paradigm could have been more similar.

Re:My Microsoft Experience (2013) by MichaelGG on Monday May 25, 2015 @01:36AM (#9598788)
Powershell's object pipeline far outshines the Unix style "pass around strings and dick with parsing everywhere". It also handles quoting in a much more sane manner, eliminating security holes or just plain bugs you get in, say, bash. The included editor and command line completion for arguments is really slick. Painting PS as just NIH is simply incorrect.

MS bringing back Services for Unix for real is a somewhat orthogonal issue than coming up with a superior shell.

Re:My Microsoft Experience (2013) by pjmlp on Monday May 25, 2015 @01:55AM (#9598834)
Many people fail to understand how Powershell is actually closer to the workflow from Xerox PARC OSes than UNIX shells.

Specially when they take UNIX way of computing as the only way, without room for any improvement.

Re:My Microsoft Experience (2013) by melted on Monday May 25, 2015 @02:15AM (#9598862)
It doesn't matter what Powershell does and doesn't do. People aren't going to learn yet another shell scripting language just because someone at Microsoft wanted to get promoted and rolled a new one. I want Windows shell to look like UNIX, to be scriptable exactly the same, and to have a proper SSH remote login. Apple managed to do this with OS X. Microsoft is denying the reality and substituting it with their own.
Re:My Microsoft Experience (2013) by chris_wot on Monday May 25, 2015 @03:10AM (#9598969)
It doesn't matter what Powershell does and doesn't do. People aren't going to learn yet another shell scripting language just because someone at Microsoft wanted to get promoted and rolled a new one.

I'm a bit of a bash scripting nut, but I've recently had to do some Windows administration via Powershell and actually it's pretty awesome!

I want Windows shell to look like UNIX, to be scriptable exactly the same, and to have a proper SSH remote login.

So install Cygwin.

Apple managed to do this with OS X.

OS X uses a Unix shell. Most of it is based on Unix principles. It wasn't that hard!

Microsoft is denying the reality and substituting it with their own.

Really? It still uses pipes and redirection, has command history and tab completion. You can alias commands, but Powershell has functions which allow for parameters.

The thing is - Powershell is, somewhat surprisingly, more powerful in many ways than bash, especially around variable handling. I'd be pretty happy if it was ported to Linux, which I'm actually rather surprised about!

Re:My Microsoft Experience (2013) by melted on Monday May 25, 2015 @03:58AM (#9599076)
Cygwin is not a valid replacement for a shell, sorry. It's a crutch. If you want a proper scripting language, literally dozens are available on *NIX-like OSs, and some are preinstalled with most distributions. Tens of thousands of libraries to solve every conceivable task with minimal, if any, work. Package systems to make installation/removal easy. Microsoft has excluded itself from this by once again by rolling its own.
Re:My Microsoft Experience (2013) by ralish on Monday May 25, 2015 @07:14AM (#9599524)
What are you talking about? Cygwin provides packages for bash, dash, fish, tcsh, zsh, and others. It's not a crutch, these are the exact same shells you run on Unix(-like) systems. The source is the same, albeit with some Cygwin specific patches, but that's no different than any other Unix-like distribution that applies patches to upstream packages (e.g. Debian, FreeBSD, Gentoo, etc...).

Your NiH assertion doesn't even remotely make sense. PowerShell is fundamentally different from traditional Unix shells and has many interesting, unique & innovative features. Not liking them or agreeing with the philosophy is entirely valid, but suggesting they've just refused to use an existing shell because of NiH isn't born out by the facts.

Honestly, I'd suggest trying to adapt an existing Unix style shell to Windows as the "official" shell would be an inherently bad idea at worst and extremely difficult at best. Apart from the numerous issues that traditional shells have which PowerShell seeks to address (reliance on string parsing, lack of consistency in commands/parameterss, etc...), traditional Unix shells are very much built around a Unix operating system philosophy, especially wrt. exposing operating system internals, devices, etc... via the file system. That's a great thing, but it's not so much applicable to Windows.

You'd either need to radically re-design large chunks of the system to conform to the Unix philosophy of exposing much of the system via the file system, which let's face it, is unlikely to happen, much less any time soon, or augment the shell with a lot of extra support for Windows specific functionality (e.g. the Registry, WMI, etc...). Things as simple as ACLs on Unix won't even map nicely. Better to have a shell that works well for Windows and fits its administrative model than trying to shoe-horn in a shell designed with a completely different administrative philosophy in mind.

You mention OS X, and yes, they did get it to work. As other commenters have mentioned though, OS X is UNIX. As in, UNIX(R). The userland API exposed by the kernel is based off BSD, as are large chunks of the operating system (although, Apple seems to be replacing them one by one). It's pretty easy to use a nix shell when your operating system is largely based on Unix (at least, from the perspective of userland applications).

Re:My Microsoft Experience (2013) by melted on Monday May 25, 2015 @02:58PM (#9601218)
You've misunderstood. I'm not talking about bolting on a UNIX-like abomination on the side. I'm saying Microsoft needs to replace Windows userland with UNIX userland, much like Apple did well over a decade ago. That's what Microsoft would need to do for Windows to become a decent dev platform again.
Re:My Microsoft Experience (2013) by douche on Monday May 25, 2015 @08:35PM (#9602349)
It'll never happen. Backwards compatibility is too important for Windows to burn the ships like that. I don't even want to think how many millions of lines of code would need to be rewritten.
Re:My Microsoft Experience (2013) by melted on Tuesday May 26, 2015 @02:24AM (#9603211)
Backwards compatibility could easily be maintained. .bat/.cmd files could be executed by an interpreter called from this shell. It's just another userland, and compared to Windows userland, a very small one.
Re:My Microsoft Experience (2013) by rosege on Monday May 25, 2015 @02:47AM (#9598926)
Snover actually had to take a demotion and pay cut to get permission to create PowerShell but he believed it was the right thing to do for the company.
Re:My Microsoft Experience (2013) by melted on Monday May 25, 2015 @03:03AM (#9598951)
I bet plenty of PMs got a promo, though.
Re:My Microsoft Experience (2013) by tacticus on Monday May 25, 2015 @03:02AM (#9598946)
Having used powershell and winrm recently. It doesn't matter if it's a better idea. it's a piece of crap with horrible verbosity issues and so many stupid corner cases it just isn't funny.
Re:My Microsoft Experience (2013) by chris_wot on Monday May 25, 2015 @03:20AM (#9598993)
It seems ok to me, but I don't have extensive experience in it. What specifically do you find problematic? Genuinely interested.
Re:My Microsoft Experience (2013) by pjc50 on Monday May 25, 2015 @10:32AM (#9600165)
Powershell's object pipeline is a great idea. Its interface with the text world trips over at the last hurdle, because it truncates lines at terminal width even if redirected into a file.

I have in my notes:

<pre>Select-String " 23:56.00" -Path file.txt | out-string -width 10000</pre>

better (no headers):

<pre>Select-String " 23:56.00" -Path file.txt | ForEach-Object { Write-Output $_.Line } | Out-File t.txt</pre>

I eventually installed a proper grep and gave up trying to use Select-String.

The hoops you have to jump through to write and run script files are absurd as well, compared to UNIX where you just need to set the executable bit.

Re:My Microsoft Experience (2013) by chris_wot on Monday May 25, 2015 @11:53AM (#9600482)
Hang on... Are those commands working? Out-string -width 10000 should work!

I guess PowerShell has a different take on things.

Re:My Microsoft Experience (2013) by rosege on Monday May 25, 2015 @02:45AM (#9598922)
pretty sure Jeffrey Snover has said that he thought about that but believed PowerShell should be different and could be better. Personally, I find PS syntax to be pretty logical and fairly easy to work things out in.