Ask HN: How to effectively learn PowerShell? - <AUTHOR> I've been looking around for a while now, but haven't really found what I'm looking for. Essentially, what I'd like to use to learn powershell effectively with is a "powershell by example" page somewhere, similar to gobyexample.com or rustbyexample.com where the tutorial encourages active tinkering.<p>What have you been using to effectively learn the ins and outs of powershell usage? <comment><USER3> I also moved from bash (after nearly 2 decades!) to powershell. Here's my powershell profile, including instructions for setting up a new box and additional aliases for Unix commands:

[https://github.com/mikemaccana/powershell- profile/blob/maste...](https://github.com/mikemaccana/powershell- profile/blob/master/Microsoft.PowerShell_profile.ps1)

Short answer for 'How do I learn powershell?' is:

* Learn 'select'

* Learn 'where'

Once you get those two, and get out of the scraping with sed/grep/awk mentality you now properly get powershell.

<comment><USER4> There seems to be a certificate request appended to line 46

I don't know if this information is sensitive, but you probably don't want it there either way.

<comment><USER3> Good spot - CSR is only a public key so not sensitive - but removed.

</comment></comment></comment><comment><USER5> Not sure how much time you have, but if you do not have much I strongly recommend "Learn PowerShell In A Month Of Lunches" [1]

Basically means that if you can spend about one hour every day on the text and exercises in the book you will be able to grasp PowerShell scripting in about a month.

[1] [https://www.manning.com/books/learn-windows-powershell- in-a-...](https://www.manning.com/books/learn-windows-powershell-in-a-month- of-lunches-third-edition)

<comment><USER6> This book is book great and after you've read it I can recommend "The Powershell Scripting and Toolmaking Book"[1]. I just started reading it and teaches you how to write good tools with practical examples and business scenarios. My next step will be learning Pester and DSC.

Also "Powershell in Action" by Manning is great to lookup things in detail.

[1] [https://leanpub.com/powershell-scripting- toolmaking](https://leanpub.com/powershell-scripting-toolmaking)

<comment><USER7> What's a practical way to learn it on a Macintosh? VM?

<comment><USER5> Windows VM, or if you are a daredevil you could try and install PowerShell 6 (which will be crossplatform) on macOS from here: [https://github.com/PowerShell/PowerShell](https://github.com/PowerShell/PowerShell) (do note its currently in alpha state)

</comment></comment></comment></comment><comment><USER8> I looked at the Microsoft Virtual academy videos [1], they cover a lot of basics but were usefeul, having the creator of powershell teach the course helped understand the philosophy behind it.

When searching for tutorials online, "the scripting guy" was useful, but more importantly I make sure to search for powershell v5, v4, or v3 tutorials. - There are lots of "old" tutorials, but I think there were major changes between Powershell v1, v2, and v3, so I try to avoid those, especially regarding modules

[1] [https://mva.microsoft.com/en-us/training-courses/getting- sta...](https://mva.microsoft.com/en-us/training-courses/getting-started-with- powershell-3-0-jump-start-8276)

<comment><USER9> I checked this thread out just to make sure someone posted this link. I have not found a better resource for learning PowerShell anywhere. It covers what makes PowerShell special, and then gives an excellent primer on the language. Start here.

</comment></comment><comment><USER10> Sorry to piggyback on this post:

I have to use Windows at work, and do not know Powershell. Several times I've debated learning it, but never put in the effort.

Now I use Xonsh ([http://xon.sh/](http://xon.sh/)). It is a Python shell - cross platform and similar semantics to bash, etc. I was never a power bash/zsh user (scripting in them is Hell). The nice thing with xonsh is that it is Python. If you want to customize your environment, have complex aliases - well, you just write Python code in your config file.

Learning PowerShell for Windows is the ideal. But xonsh is a good intermediate solution for people who don't want to invest in going all the way.

(To be honest, I'm seriously considering switching to xonsh for my Linux machine - currently I use zsh).

<comment><USER11> I was totally entusiastic when you mentioned this so I went to read the docs. While it does seem way "shellier" then pure python I don't think its comparable to Powershell.

One of the main benefits of posh is that it provides standards on arguments so that discoverability is easy. Along with that you get automatic tab completition for everything, module autoloading and nice stuff such as proxy commands, JEA and other great stuff not avaialble in alternatives. The other one is that nowdays many tools expose automation via powershell modules - <USER2> server, visual svn, chocoalatey, vmware, etc. just to name few - so all that power seems wasted with xonsh on Windows. Not to mention wmi, COM and other nastier stuff becomes way more problematic then it needs to be. Good luck driving Excel for example.

There was similar attempt with Ruby ([https://github.com/adamwiggins/rush](https://github.com/adamwiggins/rush)) - but it failed because you do really need a special language for shell. Its pitty Xiki ([http://xiki.org/](http://xiki.org/)) didn't become mainstream talking about Ruby.

Whitespace semantics also look like troublesome in the shell context and I guess in some more serious usage ambigious stuff like ls -l may become problematic and hard to detect source of bugs.

On the other hand, it rewards with better Python knowledge which is always good.

<comment><USER10> >While it does seem way "shellier" then pure python I don't think its comparable to Powershell.

Well, none of the UNIX shells are comparable to Powershell. That's why this is a nice in-between solution. A way to have a UNIX like shell on Windows, without the need to learn a new language if you already know Python.

>Whitespace semantics also look like troublesome in the shell context and I guess in some more serious usage ambigious stuff like ls -l may become problematic and hard to detect source of bugs.

Been using it for a few months. So far, not a problem. The biggest headache is that "dir" is a reserved keyword in Python. Not a problem: I just made 'ls' an alias for it.

The only real problem is that Windows has case-insensitive environment variables, but xonsh makes them case-sensitive. This is fixable, and they'll probably fix it some time soon.

<comment><USER11> > Well, none of the UNIX shells are comparable to Powershell.

Yes there is one, Powershell :)

Thx for detailed report by the way. I hope the project will get mature and adopted.

</comment></comment></comment></comment><comment><USER12> Whilst you might get some value in trying to learn in a structured way, I'd say you'll get much more out of it if you try to scratch your own itch.

In other words, think of something you want to script, then try to learn how to do that in PowerShell.

What I think you'll find if you try learning something as vast as PowerShell with a general approach is that, whilst you may pick up some decent general habits, you'll also find yourself learning a whole bunch you never use.

Learning PowerShell is different from learning a conventional programming language as each use case you'll have will make use of different commands. It's like having a DSL for each use case. You'll use different commands for Active Directory management, for Azure management, for file processing, etc... As long as you know the basics you can pick up whatever is going to be most relevant for what you do.

</comment><comment><USER13> [https://learnxinyminutes.com/docs/powershell/](https://learnxinyminutes.com/docs/powershell/)

</comment><comment><USER14> [https://smile.amazon.com/Windows-PowerShell-Cookbook- Scripti...](https://smile.amazon.com/Windows-PowerShell-Cookbook-Scripting- Microsofts/dp/1449320686/ref=sr_1_1?ie=UTF8&qid=1484500841&sr=8-1&keywords=powershell+cookbook)

</comment><comment><USER15> I've started reading this one and found it pretty good. As a beginner at least.

[https://www.manning.com/books/windows-powershell-in- action-t...](https://www.manning.com/books/windows-powershell-in-action-third- edition)

</comment><comment><USER16> Powershell is frankly fairly amazing. Recently I found myself needing to open the Windows datastore.edb file, and before I discovered some interops I learned that in fact you can grab a C# member definition, then use it as a signature and load that type as a Powershell object [1]

Hell, I even found a C# code snippet and was able to add into a Powershell string, then add this as a C# type definition, and Powershell compiled it to an assembly and then loaded it as an instance of a Powershell object.[2]

1\. [http://www.leeholmes.com/blog/2009/01/19/powershell- pinvoke-...](http://www.leeholmes.com/blog/2009/01/19/powershell-pinvoke- walkthrough/)

2\. I found how to do this here: [https://blogs.technet.microsoft.com/stefan_gossner/2010/05/0...](https://blogs.technet.microsoft.com/stefan_gossner/2010/05/07/using- csharp-c-code-in-powershell-scripts/)

<comment><USER17> To add further - I found out PInvoke over Powershell works just as well on OS X.

</comment></comment><comment><USER18> This may or may not work for you but it's now I forced myself to learn PowerShell.

First you need to understand that PowerShell (because of WMI and .net snapins) can do literally anything that can be done on a windows environment either via click, keystroke, or code.

Second you need to understand that PowerShell is an object-oriented scripting language. You can certainly use it in a procedural fashion, if you're so inclined, but you will be severely hobbling yourself in the process.

Third you need to decide to write (or locate, test, and study) scripts to do a fair percentage of the things you might normally seek small single-purpose third party software to do. Want to scan your network for devices, use PowerShell. Want to bulk, edit AD users, do it in PowerShell. Need to clone a directory structure? You get the idea...

Take this approach and look for legitimate reasons to use PowerShell every day.

<comment><USER19> Seconded. In my last job i automated all tedious tasks via powershell. Need to verify connectivity and documentation accuracy (credentials, snmp strings, vendors, versions...)? Powershell is solution for me.

Even tcl scripts was parsed, compared and exported to xls with Powershell. Verify and implement configuratiom template was another case where powershell was solution.

For me this is my strongest weapon on windows automation and system management.

And i like it beacuse you can edit in notepad++, sublime, atom, whatever...save... a run ps1 file. No insane and complex IDE needed, no compilers. If you need you can do exe files. It's dirty solution, but it works.

My last project (app for coffe shopps and restaurants) is written in powershell.

"The biggest issue" for me is support of my scripts on windows with lower version of powershell or .NET

In regards to original question. "Powershell in action" is my favorite resource about powershell.

</comment></comment><comment><USER20> Protip: You'll find two app on Windows called Powershell. One is just called Powershell and the other is called Powershell ISE. I mistakenly picked the regular one, to later find out that Powershell ISE is epic. It's like a combination of a terminal and some kind of IDE.

<comment><USER3> ISE is the best for learning but doesn't have good readline support (it's not quite a normal windows console). Once you're up to speed, grab ConEmu. It's the iTerm2 of the Windows world.

<comment><USER20> At least you have proper copy/paste in ISE :P

<comment><USER16> Not if you run RealVNC, it kills cut...

<comment><USER21> Thanks for pointing this out. I thought I was going crazy when it happened to me just yesterday.

</comment></comment></comment></comment></comment><comment><USER22> I just registered powershellbyexample.com - I'll start updating it soon!

</comment><comment><USER23> I may be an outlier in this regard. I learned PowerShell by starting to golf in it. However, while I know the language quiet well, I'm completely useless at using it for administrative tasks, simply because I've never done that with it. I use PowerShell as my go-to scripting language, calculator, interactive .NET playground and a bunch of other things, but rarely for managing Windows servers.

I can recommend the PowerShell cookbook too, though. I've been a technical reviewer of the 2nd edition and at least back then it was good :-)

</comment><comment><USER24> dkarapetyan linked a good Cookbook. That's essentially what you're asking for. In addition to that, when I had to learn Powershell I found "Learn Powershell in a Month of Lunches" quite useful. At the time it was considered the go to book for PoSh, but that may have changed.

</comment><comment><USER25> For me it was this - [https://stacktoheap.com/blog/2012/10/17/learning-by- answerin...](https://stacktoheap.com/blog/2012/10/17/learning-by-answering- questions/)

I started using Powershell and also started answering questions on SO. The latter helped a lot in quickly improving my skills.

</comment><comment><USER26> There is an excellent series of videos on PluralSight. I can't remember for sure who the instructor was, but I always recommend them to anyone learning PowerShell.

I _think_ it's this guy: [https://www.pluralsight.com/courses/powershell- intro](https://www.pluralsight.com/courses/powershell-intro)

<comment><USER27> Even though this is titled as PowerShell for Mac and Linux, one of the presenters is Jeffrey Snover who invented PowerShell. He provides some great information about how the pipeline works and compares it to the pipe system in Unix. I found it very informative.

[https://www.pluralsight.com/courses/play-by-play- microsoft-o...](https://www.pluralsight.com/courses/play-by-play-microsoft- open-source-powershell-linux-mac)

</comment></comment><comment><USER28> If you can get hold of either Bruce Payett or Lee Holm's PowerShell scripting books, those are pretty canonical guides, as both of those guys were devs on the PowerShell team for years. On day one you should get familiar with the discoverability features built in: get-member, get-help, get-command, get- member, tab completion, get-alias, etc.

</comment><comment><USER29> There is a well designed tutorial on Youtube, helped me a lot to get started.

[https://www.youtube.com/playlist?list=PL6D474E721138865A](https://www.youtube.com/playlist?list=PL6D474E721138865A)

</comment><comment><USER30> I still think Bruce Payette'a book on PowerShell is referential in explaining how PowerShell works inside-out.

As far as learning it goes, there's no better practice than porting your old work!

</comment><comment><USER31> I'd recommend: \- "Learn PowerShell in A Month Of Lunches" \- reddit.com/r/powershell \- the powershell podcast at powershell.org

</comment><comment><USER32> I tried scripting the clipboard through vbscript but got stuck, tried powershell, it's a one liner.

Seems like a pleasant platform. Thanks for this thread.

</comment><comment><USER33> Can someone link a site that was posted on HN a month ago that shows side by side comparisons between BASH commands and Powershell?

<comment><USER34> Have you tried the Search API below? You can search stories or comments.

Here's a list of likely Powershell submissions:

[https://hn.algolia.com/?query=powershell&sort=byDate&prefix=...](https://hn.algolia.com/?query=powershell&sort=byDate&prefix=false&page=0&dateRange=all&type=story)

</comment></comment><comment><USER35> powershell does have its own command for normal scripting stuff...For e.g. Test-Path, etc...but if at all you are stuck with something you can always revert to the .net framework...but I still like curl hence I stuck to git bash

</comment><comment><USER11> Effectively, forget about desktop and cmd and only live in powershell. That is what I do - Posh is my operating system, it autostarts with Windows. In a several months you will be effective user, but to master it will still take years.

In this regard, few tips:

\- Install apps via Chocolatey. If app is not there create a package and maintain it. AU framework makes it one time development event. See this report: [https://gist.github.com/majkinetor/a700c70b8847b29ebb1c918d4...](https://gist.github.com/majkinetor/a700c70b8847b29ebb1c918d47ee4eb1)

\- Your profile is very important. I use profile.d which can be reused easily on all your machines: [https://github.com/majkinetor/powershell_profile.d](https://github.com/majkinetor/powershell_profile.d)

\- Use Powershell Gallery and modules in general. Make module or reusable component for everything. See my work here:

[https://github.com/majkinetor/posh](https://github.com/majkinetor/posh)

\- Make sure you use mandatory cli tools:

cinst conemu less peco sysinternals everything copyq

\- Do not use junk GUI editors such as ISE. Visual Studio Code is way better if you have to. Sometimes is OK when debugging. I would suggest vim because speed is of great importance in shell world.

\- Follow reddit community and ask questions there rather then on SO which is full of achievement biatches. Redditors will help you for free for the joy of sharing the knowledge.

\- Use Github to store all your stuff. Also, in coorporation you can use NAS share to let anybody import stuff from there.

\- DO NOT LISTEN naysayers about aliases - use default alises all the time. They are cross-platform and well known and I can go into neurolinguistics of why is it better and easier for the brain but I don't want to do it here. People will certainly whine now but ignore them. DEFAULT (READ ONLY) ALIASES ARE THE BEST. Particularly, if you see somebody does foreach-object or where- object just kill him ASAP.

\- Do ALL windows config from Posh. If you don't know ask around. If you are devops dude, you can thank me later, especially when you learn DSC and apply all that knowledge there or with boxstarter.

\- If you happen to be locked in older posh use PSReadLine. Keep in mind that $host.Version -lt '3.0' is full of surprises and use latest version if possible.

\- Do not compromise with others in coorporation. Ask for script for everything. If sysadmin tells you that server is low on disk you ask for proof in the form of the command you can execute. Ask for invoke-sql when using databases. If you give admin a job to create a IIS site for your web app ask for a script. If you are a project manager, do not close tickets without a script.

\- If you monitor vendor excursions in your company infrastructure, ask for transcripipt of ALL operations they do. You will thank me later. Do not sign their work without it.

I can recommend "Windows Powershell In Depth" [https://www.manning.com/books/powershell-in-depth-second- edi...](https://www.manning.com/books/powershell-in-depth-second-edition)

And if you don't enjoy PS almost every single moment you are doing something wrong.

PS: I do not work for Microsoft :) I just think bash and friends are ridiculous in 2017 and honestly a little embarrassing. Do not do that - install Powershell on Linux and Mac if you have to and keep your sanity.

PS2: Somebody will certainly say that ruby/python/whatever is great on linux side. Ignore them. Those are not shell languages (while great otherwise and valuable in your skillset - cinst ruby python etc. is among my mandatory stuff but lets keep perspective here).

Good luck.

<comment><USER36> > Do not compromise with others in coorporation. Ask for script for > everything. If sysamin tells you that your server is low on disk you ask for > proof in the form of the command you can execute. If you give it a job to > create a IIS site for you ask for a script. If you are a project manager > like me, do not close tickets without a script.

That may be the worst advice I've ever seen on how to work with others. It's the PowerShell equivalent of not just preaching veganism but requiring that anyone interacting with you start an organic garden.

<comment><USER11> You must be that click next person. I prefer to think about Posh as low carb, rather then veganism :)

But more seriously, anything repeatable easily will do. The problem is, Posh is there on all Windows machines while everything else must be installed (except cmd.exe which should be forbiden IMO). I heave interactions with 100+ engineers of different domains and the only thing that links them is that they all use Windows, even 95% of Solaris/Unix/Linux admins. So Posh is the most practical thing.

If you think reproducibility is bad thing or form of veganism, you should probably find another job.

<comment><USER36> Reproducability is great.

No, my concern is that if I submit a ticket that says "when I send 65 characters in the Username field I get random spew back, I think you need to be checking inputs better" and get a response of "show this to me with a PowerShell script" then I kick things upstairs with appropriate commentary.

And if the attitude you related in these comments is accurate, I suspect those engineers all have something else in common: working to bypass you as much as possible.

<comment><USER11> I think that

start my-fancy-app.exe; Sleep; [System.Windows.Forms.SendKeys]::Send("A"*65)

makes it way more reproducible and you even quickly get test from there (would do that in AutoHotkey tho for better effect, right tool for the job).

> And if the attitude you related in these comments is accurate, I suspect > those engineers all have something else in common: working to bypass you as > much as possible.

Actually, its quite the opposite. With that attitude tho, I suspect you get bypasses all the time.

<comment><USER36> And if something else has (or grabs) focus and the scripted input doesn't go where you're hoping it will, does the bug report get marked "can't reproduce" and closed?

I'll freely confess I'm not up on the current automated testing tools for Windows apps, but I'm hoping they're more sophisticated that "point and pray" keyboard spamming.

My concern with the approach you describe is that there are many categories of application problems that are not reasonably reproducible with a PowerShell script, some that are reproducible only with a sophisticated script, and some that are trivially reproduced.

For the trivial ones that are easily reproduced my feeling is that a quick description going to the developers will probably let them reproduce it more easily in a development environment with appropriate code stops that would be adversely affected by automated keyboard injection directly to Windows. For Windows app development if I put in a code stop to inspect state after each keypress, blowing 64 extra "A"s into my dev environment after the stop is unlikely to be helpful.

For problems that require more sophisticated scripting to reproduce, I'm unconvinced that I want to be requiring that all testers be able to write sophisticated test scripts. Maybe you have a ton of VC money and feel that burn rate isn't relevant, but that doesn't describe everyone. Sure, I want some good automated test scripts and the ability to say "When we run script XYZ with input set ABC it blows up" but scripting reproduction of every scenario? (expletive) no.

Basically you're putting up a sign that says "I don't care what problems you have found, if they can't be reproduced with an automated script I will reject them." That doesn't keep those problems from existing or being found, it just ensures that you don't try to fix them and eventually (if you're still around) it means that you don't hear about them either. That may never cause real problems, or someday you may get an email from Tavis Ormandy or someone you have even less desire to hear from.

Edit: it just occurred to me - basically this is a "captcha" system for bug reporting, but one with the potential for arbitrary puzzle difficulty potentially unrelated to problem severity or reproducability.

<comment><USER11> Didn't I tell AHK is the tool for that job ? It handles stuff like focus stealing, theming etc without any problems. Seriously, if there is no test, it might just be your high sugar levels. I don't know in what kind of stuff you are, but we develop software and services that entire country uses. If you do not make a test you can regress and it will probably happen in the worst possible time.

Also, I don't have testers, only developers. Testing is the part of the job which is mandatory. Along with some other stuff. :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER37> How have i learnt powershell: 1\. Replace cmd to powershell everywhere 2\. Make you routine tasks automated by ps 3\. Connect to remote machines by powershell only .... PROFIT

<comment><USER38> So how well does number 3 really work? Is the experience similar to Linux and Bash in the way that you can do everything in the console.

<comment><USER37> Yes, ps is very advanced tool. Difficult to find information how to do certain things but when you found them you have jedi power

</comment></comment></comment><comment><USER39> I believe the best way to learn powershell is by using it as your shell, everyday, for real-world tasks, particularly in your job.

Start small, with ls, cp and cat, and don't force the pace. psh is a shell first and foremost- a shell with a very nice language, but a shell all the same. So get comfortable using it as a shell.

First thing is to create your $PROFILE. Google for an example and see if you can edit it to suit you. Then get chocolatey, PSCX (psh community extensions), posh-git and vim, and get used to doing most of your work on the command line (like you'd do with bash, on Linux). See what tasks you can automate by writing a few short scripts- very simple things at first, like copying and renaming files, setting up directory structures and so on, then progress to processing xml and setting up scheduled tasks, and sending email, setting up credentials etc. After a few months you'll find that you can wean yourself of windows GUIs for most of your everyday tasks and probably all of your not-so- everyday ones.

psh being a command-line tool, it's far easier to learn it like that, than trying to learn the language first. You can learn the basics of the syntax allright, but there's a bazillion commandlets that you will never be able to remember, unless you use them in your everyday work, and incorporate in your scripts, and those commandlets are often integral to the use of psh. Basically, you can't separate the language from the use of the shell, so you shouldn't try. Learn them both at the same time.

      %        %        %

Here's my personal example: I learned psh to avoid the long rdp queues in a past workplace.

I guess that company didn't want to shell out for more windows server licenses and so there was a limit to the number of people who could rdp to a server at the same time- just two or three people per server. So there was always a bit of a queue and I often had to wait between a half hour and a couple of hours before I could get a slot. Or someone would go for lunch and forget to log out, and you had to kick them out and it was generally a big drag.

At some point I started using psh as my windows shell, and then I found out about windows remoting [1], which sounded a lot like ssh on Linux- basically, it lets you open a shell on a remote computer. Next time I had a slot on a remote machine, I enabled remoting and suddendly I could do all the work I needed on the command line, while everyone else still had to wait in line for an RDP slot [2]. Needless to say, this made my life and my job a hell of a lot easier, not to say pleasant (I might have had a few smug smiles on my face, at times).

I'll note there was only one thing I couldn't do remotely: running a proprietery installer for the company's platform, that only had a gui and no command-line options. Everything else, including a whole bunch of SQL stuff, I could do it remotely, on psh [3].

All this naturally pushed me to do more psh scripting, as it was easier to run a script than key in a dozen commends on the command-line. So I left that job feeling very comfortable with powershell, and although I didn't quite have to use it that much in any other job since, I still use it as my primary shell at home.

____________________

[1] I think it started with this article, whose title immediately caught my attention:

[http://www.howtogeek.com/117192/how-to-run-powershell- comman...](http://www.howtogeek.com/117192/how-to-run-powershell-commands-on- remote-computers/)

[2] Noone else cared to learn powershell. I did ask. They said they didn't want to have to learn a new programming language. To be fair, I never explained my remoting setup to anyone, because they would probably tell me to stop using it (I was just a junior dev at the time). Note also that I never enabled remoting on any of our public-facing servers, just in case there was some vulnerability that could be exploited.

[3] I also used vim and netrw to edit my scripts on the remote server directly, over a UNC path, so I didn't have to re-upload them every time I needed to change them. This was a very Linux-y way to do stuff and really unusual where I worked.

<comment><USER36> Unrelated to PowerShell, that sounds like information wasn't making it to the right people if the limit - 2 administrative connections were being used like that for regular terminal services access, or like it would have made sense to split services across more systems if you had multiple people routinely doing simultaneous system changes on single servers.

RDS CALs aren't cheap, but they're a one time cost and insignificant compared to the cost of staff sitting around waiting for RDP sessions to free up.

<comment><USER39> Aye right, there was no reason for all that. But, this was far from the only case where the company could have optimised its processes. For instance, as a junior dev, my work primarily consisted of copying some stuff off a spreadsheet (as in, with Ctrl+C), pasting it into a text file and creating some xml structure around it by hand. That was an extremely time-consuming and error-prone process and it caused all sorts of delays and frustrations, to myself as well as everyone that depended on my work.

I spoke up about those inefficiencies very early on, but I was very inexperienced at the time and, to be honest, I had no idea how to properly communicate this sort of thing, so I never got anywhere. I only managed to come across as snotty and get a reputation as a trouble maker.

After that I just kept to myself and focused on getting some experience with C# and learning psh and so on, generally learning as much as possible until I felt confident enough to look for a better job- which I took as soon as I found it.

Generally, I was really unhappy in that company, but at the same time, exactly because I had to jump through hoops and learn how to automate my work, I taught myself a whole bunch of stuff that were very useful in my next job (where, btw, I had a great mentoring relation with my boss). So it all turned out alright.

</comment></comment></comment><comment><USER40> I dunno if this is the kind of advice you're looking for, but what I've found is forcing myself to do everything with an unfamiliar tool helps a great deal.

</comment><comment><USER41> I strongly recommend against learning Powershell, it has horrid syntax and is not crossplatform.

It wants to be a pseudo C# but without being C#. And anyway you can use scriptcs nowadays to write scripts in C# (or even better: .fsx scripts, with F#, which is more succint, less verbose than C#).

<comment><USER42> I strongly recommend against believing people who say PS is not cross platform when it is available for macOS and Linux and is open source too.

<comment><USER43> Interesting. Does it actually work though, or does it tend to depend on Windows-specific assemblies to do any useful work?

The main use-case I have for Powershell is remotely administering Exchange. If I could do that from OSX or Linux, then that would be useful enough for me to spend the time learning it.

<comment><USER44> > The main use-case I have for Powershell is remotely administering Exchange. > If I could do that from OSX or Linux, then that would be useful enough for > me to spend the time learning it.

I guess you can always do powershell remoting? Apparently it also works from Windows to Linux! [https://github.com/PowerShell/PowerShell/blob/866b558771a20c...](https://github.com/PowerShell/PowerShell/blob/866b558771a20cca3daa47f300e830b31a24ee95/docs/new- features/remoting-over-ssh/README.md) (got pointed there from this Reddit post: [https://www.reddit.com/r/PowerShell/comments/4ziw85/anyone_m...](https://www.reddit.com/r/PowerShell/comments/4ziw85/anyone_manage_to_get_enterpssession_or/) )</comment></comment></comment></comment>


How Google can still become the greatest company ever? - <AUTHOR> http://www.reddit.com/tb/jqric

<comment><USER2> Dupe of <http://news.ycombinator.com/item?id=2913709>. Also - why link to Reddit instead directly to the article?

<comment><USER3> Yes.. Duplicate.Reddit link here makes no sense.

<comment><USER2> To be fair, the Digg link on your submission doesn't make sense to me either.</comment></comment></comment>


Could British invention foil terror bombs? - <AUTHOR> http://www.bbc.co.uk/news/uk-36014666 <comment><USER2> I find crazy the amount of resources we deploy to fight something:

        - that causes little deaths compared to most diseases or social issues.
        - cost little compared to most economical or educational issues.
        - has little long term consequences on the country compared to internal and external policies, laws, politics and visions;
        - is a direct consequence of social, economical and educational issues and a by product of policies, laws, politics and visions.

But what's astonishing me the most is the fact that a lot of people don't see this and just freak out, despite that almost all of them have never been in direct contact with it or suffer direct consequences from it.

<comment><USER3> People don't view the impact of death merely in terms of body count. If we did, we wouldn't care about serial killers or child abductions or people shot by police. We devote major resources to fighting terrorism not because of the body count, but because we feel it deeply unjust to allow terrorists to kill innocent people to make a political point, especially when that political point is an attack on fundamental precepts of our society. Terrorism isn't just an attack on people; it's intended to be an attack on our institutions and our society.

<comment><USER4> One other difference - at least in terms of perception - is that the threats you listed are relatively static over time. Terrorism is a movement that involves recruitment and contains inherent plans to expand.

To be the first to invoke Godwin's here, the Nazis did not statistically represent a significant daily threat to health and safety in 1928, either. Looking at present body counts as a gauge for what's worth "freaking out" about seems incomplete.

<comment><USER5> Exactly, terrorism is a high-variance event and we can't extrapolate that future violence will resemble current violence. A single catastrophic attack, like a nuke in a city, makes everything that happened before irrelevant. 9/11 itself was a huge escalation, the most deadly terrorist attack in history by far. Future death tolls are limited only by the capabilities of the terrorists and our ability to stop them. They would kill millions of us if they could.

<comment><USER6> > Future death tolls are limited only by the capabilities of the terrorists > and our ability to stop them. They would kill millions of us if they could

This is rather sensationalist. There are infinite ways that anyone with a bit of intelligence could hurt or kill large numbers of people with small arms, explosives, chemicals, vehicles etc - and yet we see time and time again that terrorists usually display extreme incompetence (e.g. underpants bomber). The few terrorists that there are, just aren't very good at it.

The idea of terrorists getting hold of a nuke and actually being able to use it effectively is, frankly, ridiculous.

<comment><USER4> > The few terrorists that there are, just aren't very good at it.

Sure, but let's say we take the "stop freaking out about it" approach and it enables further mobilization. Suddenly those things change in a hurry.

> The idea of terrorists getting hold of a nuke and actually being able to use > it effectively is, frankly, ridiculous.

Unless a terrorist organization is able to morph into a pseudo-state. Which sounds a little less ridiculous than it did five years ago.

The point is primarily that chastising fear/effort/resources/counterattacks based only on the _current_ statistical threat level is short-sighted.

<comment><USER6> I'm not saying we should be entirely complacent, but the response from the western world since 9/11, and ongoing, has been insane, and has caused more civilian deaths than any terrorist attack could ever cause.

Devices like this, or indeed body scanners, just add to the security theatre that makes corporations money and allows our politicians to further continue the narrative of fear that allows them to get away with almost anything.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I don't know if this device works, but this is just wrong:

>"I'm sorry to say, but the Brussels attack, this would have instantly sorted out the terrorists before they came into the terminal, and similarly the concert in Paris," he says. "If it had been on the doors there, it would have stopped people getting in."

The terrorists who attacked the Bataclan didn't arrive as simple concert goers, they had AK-47s and shot their way in.

<comment><USER8> An effective deployment of the device would probably involve a sort of sluice gate setup, that will detect traffic through an outer perimeter and, when triggered, seals an inner perimeter. The distance between the two is designed to be greater than that which can be covered on foot in the time the device takes to make a detection.

That, of course, ignores a central lesson of the Brussels attacks: They happened _before_ security. This device might make it reasonably hard to get explosives into an airport building and concerts halls (because thousands theatres like the Bataclan are totally going to invest millions in these devices and the necessary physical reconstruction), but there are plenty of other buildings where large numbers of people congregate, including busy streets that will be impossible to protect like this.

Also, having a mechanism to seal your targets inside during an attack is totally never going to be abused by the bad guys (and if you evacuate on a trigger, you just need a few guys with AKs outside the exits).

That said, I'm sure there are good applications for an effective non-intrusive explosives detector (eg in making airport security smoother) -- these attacks just ain't it.

<comment><USER9> This is exactly the key point. You either have a queue of people inside the airport, or outside waiting to go through security. The target has just been moved and is equally as accessible (perhaps more so) as before.

<comment><USER8> The point is that you could deploy this device without having a queue, just a door to slam in the face of a positive detection. Worst case, you need to space people out a bit.

<comment><USER9> Wherever you have a funnel, you get a queue. You have people standing outside waiting for the bus, smoking a cigarette. People gather and there is nothing that you can do about it.

<comment><USER8> Then don't have a funnel, or have enough of them. I've never queued, except for maybe the briefest of moments, to enter an airport building, even though you always have to pass through a "funnel" (aka draft-preventing double doors[1]).

Even the narrow automatic one-way sluice doors[2] increasingly popular as you leave the secure area of an airport only ever seem to cause a queue when some idiot tries to go back, and security has to reset them.

When there's a queue at security/immigration it's because the checkpoint is understaffed (or otherwise under-provisioned), not because there's a checkpoint.

1: [http://cdn.kone.com/www.kone.co.uk/Images/49562_Entrance_dou...](http://cdn.kone.com/www.kone.co.uk/Images/49562_Entrance_double_sliding_door_korj_565x175_565x175.jpg?v=1)

2: [http://www.recorduk.co.uk/images/getImage?t=product&img=imag...](http://www.recorduk.co.uk/images/getImage?t=product&img=image_overview&id=5)

<comment><USER6> > I've never queued, except for maybe the briefest of moments, to enter an > airport building

Probably because most airports don't have security _before_ entering. For those that do, there are indeed large queues outside. Mumbai airport is one such example.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> "First, a microscopic amount of Semtex 1A high explosive is dabbed onto a T-shirt. To the naked eye, it is almost invisible - but from a large, red, metal box mounted on a portable steel trolley an ultra-violet laser beam flickers on to the white cotton surface of the garment. Immediately, a warning flashes up on the display monitor."

So you would be able to cause disruption AND get innocents locked up by simply covertly dabbing innocents in a crowd.

<comment><USER2> And by spraying markers on a lot of people you can either:

        - cost a lot of money by forcing events to be cancelled;
        - enforce more invasive/costly security measures;
        - diminush the value of the security mesure and pass a bomb in.

But this is what's strange with terrorists : they strike ma as utterly incompetents. There is so many easy ways to fuck things up, and they always do the ineficient and hard things. My father worked as a head of security for a national company, we used to discuss of all the way you can really hurt companies, people and society. It's not even that hard and costly. Are they lacking of imagination, or not really trying ?

<comment> alan-crowe Every-one thinks that they are the good guy. That isn't just a quirk of psychology, it is also a constraint.

People lives their lives according to different narratives. There is a fire- and-sword Muslim narrative, a quiet-life Muslim narrative, various Western narratives. Some-one living their life according to the fire-and-sword Muslim narrative is a bad guy by many other narratives. But that doesn't liberate them to be a bad guy by their own standards. They still have to be the good guy in their own head.

They have to be the hero, not the ass-hole. They cannot just be a nihilist who wrecks stuff to make things miserable for every-one. There has to be a sense that they are a warrior, fighting bad guys.

Perhaps it is as simple as attacking a cafe where they serve alcohol or a venue where the music is haram, or a business district where they charge interest on loans. I don't really get the inner logic, but I'm sure there is one and it constrains the kind of attacks they can make.

</comment></comment></comment><comment><USER11> People who work in the mining industry are going to be in for a "fun" time.

</comment><comment><USER12> 1\. How hard is to create a process to fully clean terrorists and their equipment from residue ?

2\. Is it possible to create a way to make many people catch this residue ?

</comment><comment><USER13> No.

Now to read the article.

<comment><USER13> > "If it had been on the doors there, it would have stopped people getting > in."

 _Problem?_ People blowing themselves up on airplanes. _Solution:_ Check them for bombs before they board the airplane.

 _Next Problem?_ People blowing themselves up in the lines before the bomb check in the airport. _Solution:_ Check people outside the airport.

 _Next Problem?_ People blowing themselves up in the lines outside the airport _Solution:_ Check people for bombs before they board the trains for the airport.

 _Next Problem?_ ...

s/[airplanes|airports|trains]/<crowded place>/g

 _Apparent Actual Problem?_ Crowds of people are hard to protect without making the crowds live's very uncomfortable.

 _Actual problem?_ People want to blow themselves up in crows of people.

 _Solution:_ Spend more effort making the world a place in which people do not like blowing themselves up anymore and/or in which they are too lazy to be motivated to do it.

 _Plan?_

<comment><USER14> _Plan?_

First, get news media to lift their embargo on trying to understand the motivations of people who perpetrate these awful attacks. Right now, it seems the only acceptable explanation is comic-book evil plus religious prejudice ("they hate our freedoms!"). This is basically a taboo on the application of reason, and we'll get nowhere until it goes away.

Second, reflect a little on the possible motivations of these people.

Third, I suspect, attempt to persuade Western governments to stop (or significantly scale back) blowing people up, murdering them without trial, etc, in other parts of the world. Best estimates for the body count in Iraq, for example, are in the many hundreds of thousands, and many of those cannot be combatants. I absolutely condemn terrorism, but if I were a terrorist, I'm pretty sure this would be my motivation.

<comment><USER6> The majority of those killed in Iraq were civilians[1]

And that's just Iraq - there is also Afghanistan, Pakistan, Syria[2], Somalia...

[1] [https://www.iraqbodycount.org](https://www.iraqbodycount.org)

[2] [http://www.theguardian.com/world/2015/aug/03/us-led-air- stri...](http://www.theguardian.com/world/2015/aug/03/us-led-air-strikes-on- isis-targets-killed-more-than-450-civilians-report)

</comment></comment></comment></comment><comment><USER15> If this were to be deployed, I wonder what the comparison between the number of people that would be killed, assaulted, strip searched, scared, delayed etc. by false positives vs. terrorism</comment>


Chrome: Faster and more battery-friendly - <AUTHOR> https://chrome.googleblog.com/2016/09/chrome-faster-and-more-battery-friendly.html <comment><USER2> They weren't required to run Chrome 46 on older version of Windows 10 on Surface Book as the video clearly says test was run in 2015 under video. I will object that it is a cumulative effect of Widows 10 (+ driver updates) and Chrome improvements. So Google has cheated again and took credits of others hard work.

</comment><comment><USER3> As I've said before, every time a new "eevann fasterr!!!111!!" version of Chrome [for Android] is released:

What's the point of making incremental speed improvements to the browser whilst continuing the policy of not supporting plugins [eg. a good ad blocker]? On most sites, any gains in page rendering times are more than offset by the additional burden of downloading all the additional trackers, adverts, etc.

Until Chrome for android supports plugins, I'll continue to use Firefox across all my devices, even though I prefer Chrome on the desktop.</comment>


How RimWorld's Code Defines Strict Gender Roles - <AUTHOR> https://www.rockpapershotgun.com/2016/11/02/rimworld-code-analysis/#more-410055 <comment><USER2> I get that we're supposed to be outraged by this, but it almost sounds like the algorithm was based on OkCupid or Match.com statistics, which they do release from time to time.

I don't think there _is_ a way to simulate a mechanic like that that isn't going to piss somebody off.

Anyway, looks like Prison Architect in space. I'll have to add it to the Steam wishlist.</comment>


South America's marble cathedral carved by nature - <AUTHOR> http://www.bbc.com/travel/gallery/20190326-south-americas-stunning-marble-cathedral <comment><USER2> I've been there, it's a pain in the ass to get to. Took an overnight bus from Fitz Roy to Los Antiguos, had to walk a few miles across the border, got a taxi on the Chilean side to Chile Chico, stayed overnight because there were no more buses. Found some random bus from Chile Chico to Puerto Rio Tranquilo, the bus information on the internet was not accurate.

Was it worth it? Yes, absolutely beautiful, not touristy at all, met a couple in there 70s who had driven through Africa, which included the DRC. Mount Fitz Roy, Chaletan, although beautiful are too touristy. Everyone speaks english, they accept euro/usd, doesn't feel like you're actually in Argentina.

<comment><USER3> That's because it's Chile, not Argentina.

</comment></comment><comment><USER4> People thinking about visiting Chile, don't stay for too long in Santiago, there's nothing to see there. Just go immediately to the north if you are into deserts or go south if you are into mountains and Patagonia. Don't waste your time going to places close to the central regions.

<comment><USER5> Santiago itself is not much to write home about, but there are some beautiful wine regions within driving distance from Santiago to the south and to the north. Also a day trip to the east into the Cajón del Maipo is worth it, especially if you like hiking. [https://en.wikipedia.org/wiki/Caj%C3%B3n_del_Maipo](https://en.wikipedia.org/wiki/Caj%C3%B3n_del_Maipo) (also, inside tip, best empanadas in Chile are at the Pika del Flaco in Melocoton)

As for mountains they are literally in every region. Before you hit Patagonia there is lots to see in the Los Lagos region, be sure check out the Valdivian rainforest, it's amazing! [https://en.wikipedia.org/wiki/Valdivian_temperate_rain_fores...](https://en.wikipedia.org/wiki/Valdivian_temperate_rain_forest)

Not to mention that just west of Santiago you find Valparaiso which is definitely worth another day or two of your time if you like urban environments.

If you do spend a day or two in Santiago, it's fun to go to the Bio Bio market or la Vega indoor food market. (watch your bag and your pockets)</comment></comment>


Ask HN: Android application developement resources - <AUTHOR>

I have an Android phone for some months now and was planning to plunge into its app development. I do have a couple of good ideas but haven't been able to get started on the actual dev part. I found the google dev articles too textual.
Also, I have no prior experience of Java but have development experience in C and Flex/Flashbuilder.
How do i get started? What are some good resources to follow? <comment><USER2> HackADay has been running a series of articles about getting started with Android development. Introduction here: [http://hackaday.com/2010/07/12/android- development-101-%E2%8...](http://hackaday.com/2010/07/12/android- development-101-%E2%80%93-a-tutorial-series/)</comment>


Mark Zuckerberg and Yuval Noah Harari in Conversation - <AUTHOR> https://www.youtube.com/watch?v=Boj9eD0Wug8 <comment><USER2> hmm...Mark Z stood his ground well enough. Didn't expect that. Long way to go to work all this stuff out, but there is some depth to some of the things he is saying. Not just typical corporate denial/defense I am used to seeing. Yuval Harari did a good job. Non-judgemental and just putting the dangers on the table.</comment>


Ask HN: Do you program in a language you dislike? - open-source-ux If yes, why?
Is it for practical reasons? For example, it's the language used in your company but you've never developed a liking for the language.
Is because of the employment opportunities available in your area?
Or is it because the language you dislike has the features you need (that are not easily available in other languages) e.g. speed, ease of deployment, rich libraries, frameworks etc.
I'm sure many people don't have the luxury of programming in the language they most like. How do you feel about programming in a language you dislike? <comment><AUTHOR> I made the mistake of learning flash in 2007 and developing a terrible 50,000 line monster project with it. Unfortunately I think I put in every anti- pattern you can think of in it. And I'm the only one that knows how it works. Funny thing though, it makes me some decent coin.

</comment><comment><USER2> I have programmed in a language I did not like, because it was the language used for the project I was hired to work on.

But concerning "if it has the features you need", let me rant for a bit. Most projects have their "yak shaving" aspects. If you have the choice of language for that project, it is reasonable to choose the language that handles the biggest amount of the yak shaving. (As you say, libraries are part of that.) In doing so, that means you're using a tool more suited to the task than other tools are. I (usually) find that _more_ enjoyable than using a tool that is ill-suited to the task, no matter how much I like the ill-suited tool.</comment>


Bird in Flight, B2 Bomber - <AUTHOR> http://i.imgur.com/CjXtdc4.jpg

<comment><USER2> Don't birds get picked up by radar?

<comment><USER3> they do, but i think its what the B2's are coated with that give them stealth capabilities, and not the overall shape.

<comment><USER2> "Its shape means there are very few leading edges for radar to reflect from, reducing its signature dramatically." [http://www.howitworksdaily.com/transport/b-2-stealth- bomber/](http://www.howitworksdaily.com/transport/b-2-stealth-bomber/)</comment></comment></comment>


The terrible crisis of North America's murdered and missing women - <AUTHOR> https://www.independent.co.uk/news/long_reads/native-american-women-missing-murder-mmiw-inquiry-canada-us-violence-indigenous-a8487976.html <comment><USER2> Interesting article, but a bit off-topic.</comment>


Tell Your Co-Workers How Much Money You Make - <AUTHOR> https://www.nytimes.com/2018/08/31/smarter-living/pay-secrecy-national-labor-rights-act.html <comment><USER2> I strongly agreed with this advice when I made less. Now I agree in principle, but in practice try to only discuss it with people on about my same tier. As per usual, disparities in money make for awkward relationships, with the weirdness increasing as the disparity increases.

It's so damned hard to identify the reasons for these disparities and what "fair" means, which is the best way to alleviate bad feelings. A couple years experience at the right companies, a particular project you've done, a team you've been on, the degree you have, the right people vouching for you, a lucky day of interviewing, etc. Tiny variations in those can take you from no offer to a crazy high offer. There's so much noise in the system that leads to salaries. In this imperfect information game of hiring, I can't fault companies for paying heed to those factors and paying more/less based on them, but after that information is revealed and you've been working together for a while, things usually don't equalize. The initial lucky/unlucky salaries persist.

The whole thing is weird. To too high a degree, the open salary discussion is now, "Yeah, I got pretty lucky." Doubly so with the stock comp we get in tech.

<comment><USER3> What if you are a really good negotiator and you got a salary higher than peers that are technically better than you?

</comment></comment><comment><USER4> In Norway the Government publish how much tax you paid for the year. This makes it fairly simple to know what a PAYE employee is earning.

Having come into this enviroment mid career from another country I considered whether or not I should look up colleagues. Naturally I was interested.

I decided not to. The main rationale, I was reasonably ok with the salary and very much enjoyed the job. If I discovered colleagues doing similar work and getting paid more I would find this demoralising and didn't want to bring that into a job I enjoyed.

I do understand this knowledge could be a negotiation tactic, but 1) happiness is more important than money to me and 2) my personal experience is most companies are reluctant to significantly change salary without promotion, and even at promotion they tend to bump you up under market rate. So maybe I could have gotten more money, but at the risk of reducing the enjoyability of a job I really liked. So if you are going to announce your salary, I would suggest you do it in an enviroment where you know the other people want to hear it.

For me I've found the best way to make more money is change companies.

And side point: A bit disappointed the article had this like '"Let's face it, it's 2018 and there's still serious disparities in pay based on race and gender,""

Regarding gender I believe this has been fairly comprehensive debunked with multi-varied analysis. Once accounting for careers choice, age, occupation and personality-type etc and the commonly quoted 18% gap reduces to 2% on gender, and currently under 30's men are paid less than women.

<comment><USER5> Another comment here states: "all this idea will create is animosity, jealousy and politics at work"

Based on your experience, do you think this characterizes the workplace in Norway?

(I am honestly interested in hearing the answer, although I don't think so. There are so many things you can be jealous at which are completely in the open at work - company perks, travel, type of work, team.. And nobody ever claims the same problems here. I think it's pretty much a non-issue, basically jealous people will be jealous and catch straws if they don't have the information and normal people will be normal regardless whether they have the information or not.)

<comment><USER6> Not GP. Having worked in a number of countries and having managed people from many tens of countries, I do think there is a pretty strong cultural bias around competitiveness/ambition and the degree to which it is considered good form to show it. (Of course, any individual can behave and feel vastly differently from any cultural stereotypes!)

So for example, just because this sort of thing works reasonably well for a Scandinavian country wouldn't mean it would necessarily work well in, say, California.

<comment><USER5> That's an interesting point about culture. But then it raises a question - many people here judge others, how they will be resentful and so on if they talk openly about salaries, and they do it based on the culture they are in. But shouldn't we judge people as individuals rather as members of the culture?

In other words, maybe the people who want to talk about salaries openly are sort of "scandinavian" subculture in "californian" culture.. We cannot really judge them from the "californian" vantage point.

</comment></comment></comment></comment><comment><USER7> The thing about this is that people are bad at objectively analyzing contributions, especially their own. Some aspects of value to an employer/manager include your regular work output quantity and quality, ability to learn new skills quickly (thus being dependable in unexpected situations), willingness to jump in to new challenges, mentoring other team members, etc. People often overlook these factors in others and say "I do the same work as them, or more!" and get upset about different compensation. I mean, certainly sometimes there is value in sharing this information, but there are also plenty of situations where it causes discord more than it helps the people involved, so I don't know that "discuss your salary!" is universally good advice.

</comment><comment><USER8> Its probably easiest to do this as a departing gift to colleagues you are leaving behind.

</comment><comment><USER9> I like sharing my salary just to be open about what I make and give people something to (possibly) work for. The reasons in the NYT article don't really apply to my gig directly as it is a government job with a rigid tiered payscale based on years in practice, but many of my peers just do not get how much they can make in pretty cool government legal jobs. I do not make a ton - just a smidge over that magical six-figure mark, but I have too many friends who are much smarter than I earning far, far less. That saddens me a little bit, and government legal work has an odd reputation for having poor compensation, which is just not the case.

On the other side of the coin: when I was a law clerk I accidentally was given a pay-stub for another clerk. Said clerk was notoriously incompetant, but somehow making almost double what many other clerks were making. I said something to our senior administrator, and he did not even know why she was making so much. Likely, when she was hired a judge asked for her to start at her salary and she started there. Her contract was running out and she ended up not being re-hired. I felt like a jerk, and that was not my intention, but had I not known her salary nothing would have happened. Or if I could have kept my mouth shut, but that is difficult when I see such pay disparities.

edit: grammar

</comment><comment><USER10> I do not agree at all with this article. Most people are jealous haters and it is perfectly normal to have a lower salary if you don't have the guts to ask for more.

<comment><USER5> In other words, it's OK not to be paid according how well you do your job, but according to your negotiating skills?

<comment><USER11> 1\. Negotiating skill is a skill as any other soft skill.

2\. If somebody consider that he doing the same job (have the same skill) it doesn't mean that it's true.

<comment><USER12> If negotiation is not a skill that affects your job performance it seems unfair that it has such a big influence on your pay.

</comment></comment></comment></comment><comment><USER13> A corollary point: Unionize.

</comment><comment><USER14> And don't forget to prepare your CV in advance. Just in case.

<comment><USER15> In case you get fired for discussing salary? It's generally illegal to fire you for that.

<comment><USER14> People do illegal things all the time, especially if they are sure there will be no penalty.

</comment></comment></comment><comment><USER16> I've always felt like, in situations where I earn less than the people I'm talking to, that I'm earning less than them simply because I'm not worth to earn more. This feeling occurs especially when talking to people within my own field, software development, but regardless of how much experience I have versus them. And maybe that's the truth, sure someone with 30 years of experience might be better at their job than someone with 5 years of experience, but the also might not. Just because you've been doing something all your life doesn't automatically mean you've done it right.

<comment><USER17> As a bit of an extension to the experience thing. I recently changed jobs and they hired somebody else, to the same team, for the same work as me at the same time.

I had 0 experience with this software stack/language but I am an extremely fast learner. The other guy boasted 30 years of software experience and 8/9 in this specific tech stack.

After ~2 months he was let go in his probation period and people had told me that I had already picked up, was doing more work and knew more than what he was showing in the same role.

He was on just under double my salary - my salary did not change. I believe people should be evaluated and have salary adjusted based on merit and value over time

\----

As an extension to the merit thing, I changed to this new job because my old one had the directors of the company, who didn't really have a huge understanding of individuals roles across the 150-200 person software section employees, telling us they pay on merit.

Yet I had joined and quickly become one of the more knowledgeable people on the team, so much so that people would often come to me. I did a lot of the software releases, worked (unpaid) overtime a lot, especially around said releases, worked to improve processes and in my spare time worked on tooling. No recognition other than from the team and one of the principal developers. All while someone who had half my throughput with daily work but had worked there for 30 years, had about 1.8* my salary.

What was it more, loyalty, that they meant?

\----

Overall, me knowing other peoples salaries in similar/the same position just demotivates me (partly due to my mindset at the moment) in that some people can have such well paid positions while blagging, or doing little in comparison. Why do I even bother trying? At the same time, I am always at home teaching myself something new, learning something to better myself for my career, but that is more my nature than to do with knowing salaries.

</comment></comment><comment><USER18> Most people don't understand risk and expected value. Let's say we go ahead and report each others' salaries. There's a non-1 chance you would be able to bump up some modest amount and a non-0 chance you'd be let go. The expected value of the move may put you below "doing nothing", not even considering the added stress of being out of a job.

Also, all this idea will create is animosity, jealousy and politics at work. Everyone thinks they're hot shit, the egos in the bay are out of this world.

<comment><USER19> Where I live permanent employees are protected, so the probability of being legally fired for disclosing my salary is 0, and the probability of illegally being fired should be very close to 0. However, the probability of my salary going up is also very close to 0. In fact, the probability of my salary decreasing is arguably higher than the probability of my salary increasing, since bonuses vary and are decided semi-arbitrarily. :-)

In any case I know a much more effective way to increase my salary: getting a green card and moving to the US. The flipside is that my American wife would have a hard time finding a good job in her field in the US.

<comment><USER20> Let me guess: the Netherlands?

<comment><USER19> Japan.

</comment></comment></comment></comment><comment><USER21> Might be a job for a website, along the lines of a crowd funding site? People would post their salaries, but they would only be revealed (anonymously or not?) if a certain number of fellow employees also posted theirs (by a certain date?) Surely someone has already built this? It might include an mechanism to send an anonymous invitation email to a list of fellow employees?

There are already salary survey sites, but they seem removed from the individual's situation, as the results are averaged over so many people and the underlying assumptions aren't clear. Knowing your immediate coworkers' salaries seems much more immediate.

Trust and privacy would have to be absolute, so people have complete control over the spread of any information they submit, which rules out most existing websites.

\--- Edit:

On further thought, I'm not sure that I agree with my own proposal, in that it's a complicated solution. Wouldn't it be better to establish the necessary level of trust with your coworkers in real life and talk about it? There's also less of a paper trail and information leakage that way.

</comment><comment><USER22> Definitely a tragedy of the commons or first mover disadvantage situation we have here: systemically it'd be better for everyone to discuss their salaries, but individually I'd never be the first one to start that discussion.

<comment><USER23> What are you afraid of will happen?

<comment><USER24> Speaking for myself, I'm afraid, that I'd lower morale and create division in my well-running and competent team.

<comment><USER23> Yeah it will. Often people are sad someone is leaning, and they may start to look for other jobs themselves.

But all this is actually in the interest of the people working there. They may get higher salary and better work somewhere else.

<comment><USER25> Or worse scenario: an employer, knowing about potential consequences, would be more interested in lowering salaries of high payed workers to avoid low payed ones leaving the job or losing productivity ("Why should I try harder?").

<comment><USER26> Does not compute - Why would the high earner stick around if their salary was lower?

<comment><USER25> If transparency was applied everywhere, the new employer would have the same incentive to keep it lower? They would still earn more but despite the transparency, not because of it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER27> In the 1980s I worked for CMG, an IT consultany here in London. Salaries were completely open, and openly discussed. However the culture was that you were expected to perform to that salary,not that the salary was a reward for performance.

Every year all staff were ranked, completely ignoring current salary, and then new salaries were set from that. Some would see a decrease.

I got used to it quickly and it felt very liberating.

</comment><comment><USER28> The local paper makes an information request every year and puts up on their website what everyone was paid who works for the school district. I work for that school district. It really makes me laugh from the asshats on both sides of the argument. I just don't care if people know what I make, or what I drive. Although I tend to have a rather low opinion of people who value stuff over anything else.

</comment><comment><USER29> It would be great if everyone knew what everyone was making, it would definitely help with salary negotiations, but it's horrible to ask. It introduces such awkwardness, and can invite jealousy and comparisons.

Just do what everyone else does... snoop around on the network drive and try to find unsecured documents that list compensation.

</comment><comment><USER30> Not really as they tend to get jealous and sabotage my work if I am paid more than them.

Someone hacked the password to the HR account and dumped the database for IS I was the highest paid programmer at $50k for a $150k average job. It made me unpopular and people did not want to work with me after that. I had more experience than the other programmers is why.

<comment><USER31> > It made me unpopular and people did not want to work with me after that.

What if there was some other reason people did not want to work with you? I know plenty of people who work more than I do for the same work that I do, however it does not make me hate working with them or something.

<comment><USER30> Different personalities I guess? They worked with me until my salary was leaked.

</comment></comment></comment><comment><USER32> I suggest checking out Tom Scott's "In Norway, Everyone Can Know How Much You Earn", at [https://youtu.be/1bO8zEaSuWg](https://youtu.be/1bO8zEaSuWg)

And then, have a look at the bibliography in the video description!

</comment><comment><USER33> Companies want to have a bilateral agreement with each employee and have all the information.

The best strategy is to use competitor salary information, taken from the likes of Glassdoor or similar.

</comment><comment><USER34> Yes, please. It would make the world a much fairer place.

</comment><comment><USER35> Having seen this topic from both sides of the tables, I'm not sure if I agree. Don't get me wrong, I'm generally all for transparency, and I've also seen my share of cases (including my own) where someone was treated unfairly and it would have been good to talk about it.

But there's a few important and complex psychological factors at work here:

\- Self-serving bias. There's a study that about 80% of employees think they're better than average. Obviously, that's impossible, but it already sets the stage on a path to unhappiness.

\- Group bias and Dunning-Kruger. People mostly don't know _why_ exactly someone else earns more than them. Excluding real unfairness or the points below, there are often time cases where people really don't get the importance of some roles in the company or think they can do as good or the company can do without. As a techie, I've personally ridiculed the "business side" until I've witnessed the importance myself (and how much difference a bad to a good execution in this regard matters).

\- Global and local unfairness and market development. Firstly, local markets develop for hotly contested skills, sometimes very fast. Also, it makes a heck of a difference in which company stage someone is hired. A year later, I might have to pay someone much more to get into the same team.

\- Lastly, there can even be unfairness in fairness, hidden in plain view: Does someone getting relocated into a hot market really have to suffer paying double the rent as someone living there for years? Is having a family a personal luxury or partly beared by a socially responsible employer? Does someone with a PhD who's being outperformed by a young smart college dropout earn the same? More? Less? I don't know the answer to these questions, but all possible answers have some merit. Often times, I try to factor something about this in when deciding salary. In any case, it's freakishly hard to develop such thing as a "fair" salary over a whole company as an employer.

\- In most countries including mine, it's prohibited to _lower_ someone's salary, so the only way you can ever adjust local or global unfairness is to raise wages.

What's following is this: _All of these factors work together to create a lose-lose case to talking salary with others_. The chances are enormously high you'll get demotivated. Most likely from your own salary, but even if you earn more than the others, it's awkward and hard to handle emotionally.

Although it's probably good for your brain and overall heuristics development to do so, it will be bad for your heart. Proceed with care — and if you want my personal 2 cents: Don't keep what you learned from always giving your best and optimizing for learning. Keep up your spirits, stay positive and don't get into a defensive attitude. Search for like-minded people who see your real value and you'll keep reaping your fruits later on, trust me.

<comment><USER36> > Self-serving bias. There's a study that about 80% of employees think they're > better than average. Obviously, that's impossible, but it already sets the > stage on a path to unhappiness.

It's not impossible.

If Bill Gates walks into a room, most other people in that room (99%?) will have below average wealth.

</comment></comment><comment><USER37> I accidentally got paid my Indian colleague's salary as well as mine a few months back. Rather awkwardly, I discovered that despite being more junior than him, I actually got paid more.

Obviously I'm not complaining, because I want to earn as much as possible, but it does seem a bit unfair. On one hand, I guess I'm better at negotiating a higher salary (mine's not _that_ much higher, maybe 5-10%), but at the same time, it seems unfair that he does the same work and gets paid less.

How would discussing my salary with him benefit me (in a purely capitalistic sense)?

<comment><USER38> Your colleague would be very grateful to you. If you don't know the value of grateful people, you're not much of a capitalist.

<comment><USER39> > _If you don 't know the value of grateful people, you're not much of a > capitalist._

Rule of Acquisition no. 1 says: "Once you have their money, you never give it back".

But if you did, the next best thing is suggested by Rule 111: "Treat people in your debt like family... exploit them".

<comment><USER38> Maybe you just saw a nice opportunity to make a reference.

But if you also downvoted me, maybe you missed both my pun (a capitalist should be able to assess the value of _everything_ ) and my point.

<comment><USER39> Only the former. I did not downvote you.

Hence the penultimate rule in the HN guidelines - "Please don't comment about the voting on comments. It never does any good, and it makes boring reading."

You have no way of knowing who downvoted you, or why, unless they step forward.

</comment></comment></comment></comment></comment><comment><USER40> How is this supposed to be a good idea? At best it's going to lead to jealousy and other issues. And having lived in a country where salary discussion is not so taboo, while also being privy to what those people make, a fair number of people lie about their compensation which adds even more issues and antagonism.

</comment><comment><USER41> It's OK to jump on the OSPF bandwagon though. Nobody wants to run RIP.

</comment><comment><USER42> HR professionals will tell you that many people lie about their compensation. This is probably not worth talking about without sharing your pay stubs or tax returns.

<comment><USER23> HR alis there to protect the company. They consist of smiling faces who know they are snakes. I would not take their advice on anything.

<comment><USER43> This. HR's actions make more sense when you realise the R is the operative term in that description and the H is the adjective.

</comment></comment></comment><comment><USER5> I sometimes (although not very often) do tell people unilaterally. Usually, it's a good way to tell a coward. If the other person is a coward, they won't share theirs. That's a good thing to know about a person. Although I often regret knowing that they are a coward, mostly they are good people.

I like to joke that my company is ashamed about what it pays me, therefore I shouldn't talk about it. And I am a nice guy, and don't want the company to feel the shame without a good reason.

<comment><USER44> Maybe they do not reciprocate because they earn much more for doing the same job and do not want to depress you with that knowledge. Maybe they earn much less for the same job and are embarrassed about that. There are many reasons someone would not share their salary with you and being a coward is unlikely to be the main one.

<comment><USER5> I don't mean the word "coward" in a judgemental way. Think about what you just said for a minute. These people don't want to reciprocate honesty because they are afraid of my emotional reaction.

That means, how can I trust them with other things? For example, something goes wrong and they mess up. Will they be afraid to tell me, because they will be worried that I am going to be angry or depressed?

Now, it's perfectly fine to be afraid of other person's emotional reaction (that's why it's non-judgemental). But if you are still afraid _after_ I made the first step, then it's a good thing for me to know about you.

<comment><USER45> I'm going to DM you all of my medical records. I'm also going to send you a homemade porno I made with my girlfriend. If you don't reciprocate, you're a coward. But don't worry, I'm not judging you.

<comment><USER5> Thanks, I look forward to see it! But I think you're missing the point - medical records or homemade porn are not subject to decision of external human power against which we might consider to conspire by exchanging information.

<comment><USER45> I think _you 're_ missing the point--someone can choose not to share personal information with you because they've deemed it _none of your business_ , not because they're "afraid of your reaction". The fact that you chose to share said information places absolutely no moral obligation on anyone else whatsoever.

<comment><USER5> Except it is my business. The whole free market and negotiations for better salaries thing relies on participants having enough information.

See, it's a prisoner's dilemma type of deal (actually, it's a different game). I offer cooperation - you can either decide to deny it (by keeping your salary private) or cooperate also (by stating your salary back). If you decide to reciprocate useful information, then we might cooperate more in the future for mutual benefit.

So it's useful information whether you want to get into coalition with me. I don't care the same way about your health or your porn.

<comment><USER45> > Except it is my business. The whole free market and negotiations for better > salaries thing relies on participants having enough information.

> See, it's a prisoner's dilemma type of deal (actually, it's a different > game).

All of this is your opinion. Has it ever occurred to you that others might not see salary negotiation this way, and therefore could have other reasons for not joining your "coalition" besides cowardice?

I and many others see salary negotiation differently than you do. I negotiated my salary with my employer when I started my job. That means I consider it worth my while to do the job for that amount and my employer thinks it's worth that amount to employ me. Otherwise one of us would have walked away. The fairness of my salary is independent of whether the guy next to me makes twice as much or half as much. I couldn't give two shits how much he makes.

I would not "get into a coalition" with you because I would find it irritating to know that I helped you in your entirely self-interested crusade to raise your own salary in the name of "fairness" or "mutual benefit" or "fighting the man" or however you might characterize it. I also simply don't like to associate with people who use words like "coward" to describe anyone who has more of a social filter than they do (you sound like you're seventeen). You can attribute that to spite if you want, but cowardice would be quite a leap.

<comment><USER5> "Has it ever occurred to you that others might not see salary negotiation this way"

Yes, it totally did! That's why I am not judging them. I am afraid though you don't want to understand where I am coming from, either.

I understand that people want to have their lives and don't want to fight, politically or economically. It's just good to know who they are.

Frankly, I find it curious that people do not want to openly discuss salaries. It's not like the stakes are very high (in Western societies, anyway). But maybe in the U.S. they actually are higher than, say, Norway. It's almost as if collective bargaining is a taboo topic in the U.S.

The word "coward" is probably not ideal, but I don't know of a better equivalent. You could take my example, and change "discussing salaries" into "discussing government" in a society which (relatively softly) represses freedom of speech (like for example, communist society in Eastern Europe, where I do come from).

So in these hypothetical circumstance, you can make a certain statement, which can be interpreted as being critical of the government, which is a taboo in that society. The other people can either take the bait and break a taboo slightly too, or they might not. It's useful information for you to know whether or not they are willing to break the taboo, because if the push ever comes to shove, for example you would suddenly find yourself in some uncomfortable situation, say somebody from dissent would ask you for help, and you would need help of another person, then you would naturally choose somebody who you know was willing to break the taboo before. So that's the meaning of the word "coward" in that context.

It's not being judgemental, because as I said, it would be immoral to force the people to participate (in activity that is considered bad by society and thus taboo). It's a simple test of boundaries, you want to participate or not.

"The fairness of my salary is independent of whether the guy next to me makes twice as much or half as much. I couldn't give two shits how much he makes."

I don't think it's quite true, because if it truly had been the case, then you wouldn't consider it taboo to discuss it. Just like, you know, we don't consider it taboo to talk about whether or not we have kids or cars and how many.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


The Incredible Freedom Of A Facebook Engineer - <AUTHOR> http://www.businessinsider.com/facebook-engineers-get-incredible-freedom-in-their-jobs-2011-1 <comment><AUTHOR> My next quilt/car/accounting software/home purchase will certainly not come from a manufacturer that operates this way.

It seems like this management approach would breed an utter lack of strategic product direction. Leads me to believe that there are some pretty big gaps in this article about the day-to-day routine of most fbook engineers...</comment>


Oculus Reveals Its New "Crescent Bay" Developer Kit - <AUTHOR> http://techcrunch.com/2014/09/20/oculus-connect-announcements/

<comment><USER2> This isn't a developer kit. It's a prototype and may or may not be made available to the public. The techcrunch title was also changed to reflect this.

</comment><comment><USER3> Anyone have a prediction for when the DK3 will be released?

I'm on the wait list for DK2 but it's still going to be at least another month before it arrives based on their estimated ship date.

Wondering if I should figure out how to cancel my order and wait for DK3 or just hold tight with the DK2.

<comment><USER4> If it follows the timeline of the Crystal Cove prototype, I'd guess... 8 months.

</comment></comment><comment><USER5> I hope the headphones are optional/removable. I would much rather use my nice studio headphones than the no-doubt crappy built-in Occulus ones.

<comment><USER6> They are optional. This was explicitly mentioned in the keynote.</comment></comment>


Abusing the Cache: Tracking Users without Cookies - <AUTHOR> http://joshduck.com/blog/2010/01/29/abusing-the-cache-tracking-users-without-cookies/

<comment><USER2> That's a pretty ingenius hack. More limited in use than a real cookie (real cookies are sent along with every request; even for images etc), but still pretty cool.

</comment><comment><USER3> <http://panopticlick.eff.org/>

<comment><USER4> IIRC this was on Hacker News less than a week ago. 4 points for simply repeating it? I'm startled.

<comment><USER3> It was on HN. but the title was only panopticlick, so I figured people may have skipped over it, and it's relevant to this conversation.

</comment></comment></comment><comment><USER5> Perhaps a simple fix at browser level would be to treat cached files with future etags like cookies, clearing or ignoring them with the same policy.

Its a genius trick though.

</comment><comment><USER6> It's neat, but it's not a new idea. <http://sourcefrog.net/projects/meantime/>

</comment><comment><USER7> Chrome's incognito window shields you from this attack - it starts you off with a fresh set of history/cache/cookies every time you start it up.

<comment><USER8> It's not an attack.

</comment></comment><comment><USER9> This could be defeated easily by a good, old-fashioned web proxy. Other than that, or blacklisting, there's no efficient way around it. Wow.

</comment><comment><USER10> one purpose is webtracking, especially in the affiliatemarketing niche, which "suffers" from cookie deletion because the cookiebased-tracking then does not recognize visitors and thus affiliates don't get paid... fingerprint methods are another alternative, although less precise and more difficult to implement.

</comment><comment><USER11> Wow. No javascript required, cookies turned off, just the browser cache and he will find you and hunt you down.

<comment><USER12> The only thing missing is purpose.

<comment><USER4> I guess once you can tell who is who, you can start targeted marketing.

Or collect data on people. Likely only a matter of time until you can build up a complete record, including name, address, social security number.

</comment></comment></comment><comment><USER13> And for users who disable caching?

<comment><USER14> And for users who disable cookies?

</comment></comment><comment><USER8> Very clever. Props for creativity and originality.</comment>


Ask HN: How do you improve your analytical thinking? - <AUTHOR> <comment><USER2> Writing: both learning how to write, and then practicing writing. Specifically, writing as a way of working through a problem and explaining it.

I talk about this in more detail, and suggest a book to read about writing, here: [https://codewithoutrules.com/2016/06/15/writing- book/](https://codewithoutrules.com/2016/06/15/writing-book/)

</comment><comment><USER3> Ask yourself questions about structure, purpose and functions of parts you have spotted in anything in your daily life until you find out that your partner has a hidden "mute" button, that you just never knew existed and become excited about the value of analytical thinking.

</comment><comment><USER4> Mathematics and puzzles/games. Take sudoku for example. It helps you to practice deductive reasoning. But the important step (I think) is when you start trying to solve harder problems and turn to math to formalize the collection of techniques you have accumulate during practice, resulting in concepts like 'pre-emptive sets'. When you transition from a collection of techniques to a theoretical foundation, you know have a much deeper understanding of the problem and how to reason about it.

You could call it 'deep learning'.

But you shouldn't ;)

<comment><USER5> Exactly the comment I was going to make.

After playing one puzzle game on commutes for a few weeks, I'll find myself almost subconsciously doing the same sort of pattern matching against bricks or tiles or the windows on a high rise. Switch to another game and it becomes a different sort of pattern matching.

The human brain, of course, is a trainable pattern matching engine. Puzzle games are great for giving it a workout and teaching it new classes of patterns. The more casual the game the better. Dots or 2048 or Mah Jong or whatever.

</comment></comment><comment><USER6> I find it comes naturally when I do the right activities to boost it: code, reading, discussing complex topics with friends and co-workers, etc.

</comment><comment><USER7> Read fiction. For me, science fiction broadens perspectives and increases creativity in ways that apply directly to work.</comment>


How to Forecast App Downloads - <AUTHOR> https://medium.com/p/how-to-forecast-your-app-downloads-814c09f522ac/?

<comment><USER2> Hey Carlotta, what are your assumptions when using the graphs? how do you conclude to base your forecast on a linear or a quadratic etc model?</comment>