Live data from Hacker News

Two Months with Powershell on a Unix

code.joejag.com

91–100 of 113 posts

Re: Two Months with Powershell on a Unix

#91
post #7

If you don't want PowerShell reporting your activities back to the mothership, don't forget to set POWERSHELL_TELEMETRY_OPTOUT=1 in your environment before launching PowerShell!

A shell with telemetry. Insane.

Reminds me of a certain package manager with telemetry. Homebrew, was it?

Re: Two Months with Powershell on a Unix

#92

I spent some time with Powershell on Windows recently, more time than I am used to. Powershell is a clear winner over CMD.EXE by a mile, but… - As an interactive shell, it suffers from an ecosystem which is much poorer than the bash/zsh ecosystem, - As a scripting language, I’m going to use Python or Go the moment anything becomes larger than a few lines, - Installing Posh Git is just a really mediocre experience (in…

For scripting, if you use Python and Go, give Nim a try.

Re: Two Months with Powershell on a Unix

#93

Earlier quoted context omitted.

VSCode has telemetry too. https://code.visualstudio.com/docs/getstarted/telemetry

Oh yeah, I know, but I expect that from a big electron app and it asked me if I wanted to opt out on first launch. This is the same way Firefox and many other respectable programs do it and I see no problem with that. But putting it in a shell with no prompt and only an unset environment variable to disable it, that's more like the Microsoft we all know.

There was a notice when I launched it first time.

Re: Two Months with Powershell on a Unix

#94
post #88

The problem with powershell on Unix/Linux is that there is an implicit assumption everywhere that there is a shell available. If you look at simple git StackOverflow questions like "how do I get the oldest common ancestor commit for two branches", you'll happily see people answer with combinations of shell commands that assumes that there is a sh (or some times even bash or zsh!). Absolute madness that git can't do b…

It's not madness, it's the price of flexibility and one that I am personally gladly to pay. I am forced to use Windows and pre-approved tooling daily at work, you can't imagine what a relief it is to use Linux at home, where you can chain together the exact programs that you want and make them work the way you want.

I don’t mind that programs provide output that can be chained and so on, but what annoys me is when portable (cross platform) apps m, like e.g git, doesn’t provide core functionality without the assumption of a specific environment. It's fine to let the user sort the outputs using an external program. But if the sorting is so commonly required that it's a "core feature" then perhaps the program itself should do it.

Since most developers use windows, most windows users use cmd as their shell and git is the most common vcs around, it wouldn’t surprise me if the most common environment for git is ... Windows cmd. Where there is no sed/grep/awk etc!

Re: Two Months with Powershell on a Unix

#95

Earlier quoted context omitted.

How often do you need to reapply this?

Set it in your environment / shell startup files (.bash_profile, for example) export POWERSHELL_TELEMETRY_OPTOUT=1 and, in theory, you should be good to go (unless/until Microsoft decides to change things up). --- After logging out and logging in again, you can verify this has been set properly by simply running echo $POWERSHELL_TELEMETRY_OPTOUT in your shell (it should simply output "1").

From the Microsoft website: “The telemetry reporting can be disabled by setting the environment variable POWERSHELL_TELEMETRY_OPTOUT to true, yes, or 1. This should not be done in your profile, as PowerShell reads this value from your system before executing your profile.”

Re: Two Months with Powershell on a Unix

#96
One of the missing ingredients in PowerShell when I tried to use it was network transparency - which I suspect will be hard to solve since it passes .net objects around.

It is not often that I pipe things into or out off ssh, a Unix domain socket or a pipe, but when I do it’s usually significantly easier and more efficient than other ways.

I also often save outputs rather than pipe, to inspect/debug, or avoid re-computation.

I last played with PowerShell on Win7 ages ago so things might have improved dramatically (e.g. if every output is guaranteed to round trip serialize with a network stream).

Re: Two Months with Powershell on a Unix

#97
post #54

I spent some time with Powershell on Windows recently, more time than I am used to. Powershell is a clear winner over CMD.EXE by a mile, but… - As an interactive shell, it suffers from an ecosystem which is much poorer than the bash/zsh ecosystem, - As a scripting language, I’m going to use Python or Go the moment anything becomes larger than a few lines, - Installing Posh Git is just a really mediocre experience (in…

My biggest issue with powershell is how undiscoverable it is. Good luck doing anything without searching for commands in a web browser. But maybe that's just a result if it being so new. 'ls' has been around for almost 50 years... What it really feels like is a complete programming language inside of notepad.exe because of the historically terrible windows command prompt.

> My biggest issue with powershell is how undiscoverable it is

This surprises me as I feel exactly the opposite.

I may not know how to manage X via PowerShell, but I know those pre-approved verbs like Get/Set/New/Test/Convert etc. Then I know commands from same module usually start with some abbreviation like Get-Net.... Then I can tab throguth commands.

Or just Get-Module (to see loaded/available modules) and then Get-Command -ModuleName x or just help tcp. And if "help Get-NetTCPSetting -Full" won't help, yeah, fallback to google.

Example. Now how would I set an IP address for an interface not having an idea? (where you see italicized, actually there are star-wildcard around the word)

1. help ip (ohh, too much results)

2. help set-ip - alright, Set-NetIPAddress

3. help Set-NetIPAddress -Examples (seems I need to specify some interface. It is probably at Get-NetIPInter - ahh, gives me Get-NetIPInterface, here you are.)

4. Get-NetIPInterface

5. Set-NetIPInterface - (autocompletes arguments and I choose which I would like to set or not)

Re: Two Months with Powershell on a Unix

#98

Earlier quoted context omitted.

Set it in your environment / shell startup files (.bash_profile, for example) export POWERSHELL_TELEMETRY_OPTOUT=1 and, in theory, you should be good to go (unless/until Microsoft decides to change things up). --- After logging out and logging in again, you can verify this has been set properly by simply running echo $POWERSHELL_TELEMETRY_OPTOUT in your shell (it should simply output "1").

From the Microsoft website: “The telemetry reporting can be disabled by setting the environment variable POWERSHELL_TELEMETRY_OPTOUT to true, yes, or 1. This should not be done in your profile, as PowerShell reads this value from your system before executing your profile.”

It's not supposed to go into the PowerShell $profile; .bash_profile which later starts pwsh should be fine.

Re: Two Months with Powershell on a Unix

#99
post #88

Earlier quoted context omitted.

It's not madness, it's the price of flexibility and one that I am personally gladly to pay. I am forced to use Windows and pre-approved tooling daily at work, you can't imagine what a relief it is to use Linux at home, where you can chain together the exact programs that you want and make them work the way you want.

I don’t mind that programs provide output that can be chained and so on, but what annoys me is when portable (cross platform) apps m, like e.g git, doesn’t provide core functionality without the assumption of a specific environment. It's fine to let the user sort the outputs using an external program. But if the sorting is so commonly required that it's a "core feature" then perhaps the program itself should do it. S…

I'd suppose most WIndows users using git either use it through a UI (e.g.Intellij's), or else in the bash shell for Windows that comes with the git package for windows. Starting that bash shell is easier than mucking with the path and the old cmd.exe is awefull in so many ways, anyway.
Post reply on HN