You want more good jobs, spawn more Steve Jobs - <AUTHOR> http://www.nytimes.com/2010/01/24/opinion/24friedman.html

<comment><USER2> Answer: Destroy the industrial base of most of the rest of the world, import 1600 top Nazi scientists, find a nuclear-armed expansionist global-superpower enemy with a fundamentally incompatible political ideology, and raise the top marginal tax rate to 91%.

Worked last time.

<comment><USER3> What are you referring to?

<comment><USER2> The industrial base of Japan and most of continental Europe was destroyed in strategic bombing campaigns or captured by the Soviets after WWII.

Nazi scientists: <http://en.wikipedia.org/wiki/Operation_paperclip>

Global superpower is the USSR

Income tax: <http://en.wikipedia.org/wiki/File:MarginalIncomeTax.svg>

</comment></comment></comment><comment><USER4> What I'd LOVE to see is a federal grant program to fund work on popular or promising open source projects. Think how many jobs the LAMP stack has created? We need to find the next-gen of open source tools and make them more robust, better documented and more accessible to others. (Hint: Mochiweb could use some documentation love! :)

</comment><comment><USER5> It's a nice idea but it's not compatible with our political landscape. It doesn't help anyone right this second. The laid off auto worker or construction worker probably aren't top candidates for a tech startup staff. Voters want easy answers and instant gratification. In their minds we should have been able to create 10 million jobs last year and fix all of our problems while cutting taxes and reducing the deficit. Why? Because they've been sold on decades of political non-sense from both parties. Easy answers, quick fixes, idealogical extremes. Politically the Republicans claim to support small business but they aren't too keen on giving _anyone_ assistance in the form of government handouts. If the Democrats try it they'll be called communists and the American people, predictably enough, will be scared and oppose it. Maybe the Democrats would do it but it will be so watered down it doesn't actually work as intended so it looks like a gigantic, expensive, failure. I think this country has become so crippled by political fear and hatred that we just don't have the capacity to govern ourselves anymore via a democratic system.

<comment><USER6> The Democrats problem isn't the Republicans. They had a huge polling advantage and large wins against Republicans in the 2008 elections. The problem is that the administration hasn't focused on the problem of the economy. Instead of focusing they have been on this massive social engineering kick. It could be argued that health care is a part of the recovery, but given the timelines in the current bill, this just isn't true.

The sad part is that this is a repeat of the 1970's. Look at the articles from that era about the "failed experiment" or how the office of the president should be replaced. Some of that is from Nixon's behavior, but quite a lot of it is economics problems suffered by all the presidents (Nixon, Ford, and Carter).

</comment></comment><comment><USER7> Despite the title, this article has nothing to do with Steve Jobs.

<comment><USER8> The point of the article really is about creating more inventors/innovators and the author tries to use Jobs as the personification of innovator.

Even though the article makes some good points and I agree with the spirit of Friedman's suggestions, the actual results of any of his suggestions would not come about for 8-12 years.

Instead, by focusing more on the green energy economy that is clearly showing a rising demand, the US can be well positioned to take advantage of a bigger wave.

Going deeper into the specific policies, decisions and attention focus of Obama would likely take the discussion here in a clearly political & polarizing direction so I'll end right here.

<comment><USER9> What's wrong with investing for 8 years into the future?

<comment><USER10> Nothing, other than the fact that it's the typical length of a US presidency. Which makes it politically untenable.

<comment><USER8> Exactly. Without concrete results showing up in the next year or two, Obama would have to face the "He Did Nothing!" challenge when it comes time for re- election.

</comment></comment></comment></comment></comment><comment><USER11> Q: "What legislation, what tax incentives, do we need right now to replicate you all a million times over?"

A: Instead of taxing productivity, why not tax consumption instead? <http://www.fairtax.org/>

<comment><USER12> Per Annenberg, the 'FairTax' reduces taxes for the poor and the rich, squeezing the middle class:

<http://www.factcheck.org/taxes/unspinning_the_fairtax.html>

<comment><USER13> Don't worry, we'll have both soon enough. Hello VAT.

</comment></comment></comment><comment><USER14> The idea that you could somehow "round up" the country's leading innovators in order to ask them questions, is itself the problem.

Innovators seem to appear out of nowhere; by the time they are well-known enough to find them, they have already done the bulk of their innovating.

</comment><comment><USER15> The title reminded me of the sound clip from Starcraft when you play as the Zerg: "Spawn more Steve Jobs!" I mean, "Spawn more overloads!"

<comment><USER16> "We need more minerals" is the obvious next step.

</comment></comment><comment><USER17> ...and fewer Thomas Friedmans.

</comment><comment><USER18> <starcraft> SPAWN MORE OVERLORDS </starcraft></comment>


[followup] Quantified Self: Vitamin D in the Morning & Sleep - <AUTHOR> http://www.gwern.net/Zeo#vitamin-d-at-morn-helps

<comment><USER2> I guess this makes sense: if your skin makes Vitamin D from sunlight exposure, your body being flooded with Vitamin D at night is going to confuse it—the body must be thinking "Why am I getting so much sun right now? I must not be sleepy."

Taking it in the morning is going to be like getting a shot of morning sunshine whether or not you're actually getting sunlight.

<comment><AUTHOR> Yes, it makes intuitive sense - but we all know how little intuition is worth...

</comment></comment><comment><USER3> 5000 IU, isn't that a bit overkill? I'm staying on the safe side and taking 1500 IU every day.

<comment><AUTHOR> No, I think it's about right; the various studies on cancer and whatnot tend to use a few thousand IU, and my personal circumstances are such that I get very little vitamin D normally. It's possible 10k IU is better, but in any event even very high doses aren't apparently dangerous (look at the acute doses listed in <http://www.gwern.net/Nootropics#fn32> ).</comment></comment>


Curl author asks Microsoft to remove 'curl' and 'wget' aliases from PowerShell - <AUTHOR> https://github.com/PowerShell/PowerShell/pull/1901 <comment><USER2> I kind of feel sorry for the MS chaps here. They admit it's wrong, say they will try to fix it but it'll take time because of bureaucracy. But then they get attacked in the thread because they are Microsoft. It's sad to see when they are generally trying.

<comment><USER3> Why do people call structured governance a bureaucracy? About a month ago there was a well received post on GTK's rotten foundations that boils down to several core points, one of them being: if you keep breaking stuff all the time, there's no point in investing in your API.

And here we are with initial OSS release of PS for *nixes. It's broken from the (valid) POV of its target audience and authors want to fix in an orderly fashion. But that's not enough. People at MS are "stupid or malicious", as some commenters put it, and it should be changed ASAP the way community wants, or else.

Or else what? How many of the people arguing for immediate change are an actual and/or potential consumers of PS? How many of people thinking it's a simple change (just do it) have actually maintained large piece of software deployed by thousands of users? I bet that with the exception of Daniel who opened the bug - none.

I don't envy folks maintaining PS. I used to share an apartment with dude who can't get over the US v MS to this day and anything even tangentially related to MS (or Gates) is definitely, without any doubt evil, devious and is some sort of extortion or at the very least embrace extend extinguish strategy. No matter that US v MS was 15 years ago when he was 10. This attitude is pervasive and turbo-counterproductive in cases like this one.

<comment><USER4> Microsoft is a convicted monopolist in the EU. That's black and white criminal (and immoral) behavior.

The PS team seems like it's doing its best, but you lose some degree of presumption of goodwill when you work for a criminal entity.

Ultimately, I don't think either side is right, but I also don't think either side is wrong.

MS made a choice not to cultivate goodwill in the OS community for years, and they profited from it. It's reasonable for that community to make them earn it back, and this is what it looks like (unfortunately for the individuals on the PS group).

<comment><USER5> > Microsoft is a convicted monopolist in the EU.

As an aside, what was their punishment?

<comment><USER4> the main sanction was having to un-bundle IE from Windows.

</comment></comment></comment></comment></comment><comment><USER6> All the comments make me incredible sad. Established projects need a valid backwards compatibility policy, this is particular true for shells and programming language to not break existing scripts.

People make mistakes and it's been agreed that introducing these aliases years ago was a mistake, albeit I think back then an understandable mistakes, given the idea to bring a shell to windows that has the power of a traditional unix shell.

Now people are loudly complaining, laughing, etc but without any constructive feedback that takes the backwards compatibility needs of a tool that is literally shipped to hundreds of million of people into account and stomping RFC approaches that are pretty similar to those in other projects (see PHP RFCs, Python PIPs, etc).

Since when did people became so hostile towards open source projects that try to do the right thing?

<comment> UK-AL It's because it Microsoft, it doesn't matter what the issue is. People just want an excuse to bash them.

<comment><USER7> To be fair one of the first comments on the issue is some guy from Microsoft saying:

"We can't make this change without an RFC. Oh, by the way, the community cannot create an RFC."

If I was actually interested in using powershell on Linux I too would be a little upset they Microsoft is so unwilling to work with the community.

<comment><USER8> You are not giving the whole context:

> We can't make this change without an RFC. Oh, by the way, the community > cannot create an RFC, WE INTEND TO OPEN THIS UP.

</comment></comment></comment></comment><comment><USER9> And in what is starting to seem like a pattern, Microsoft makes a public move to do the Right Thing.

>jpsnover commented ... @bagder You bring up a great point. We added a number of aliases for Unix commands but if someone has installed those commands on WIndows, those aliases screw them up. ... We need to fix this.

> Snover is a Technical Fellow at Microsoft & the inventor of Windows > PowerShell ...

The thread goes on at length about bureaucratic requirements for the change. I guess this is what happens when you hold a bazaar inside the cathedral.

<comment><USER10> I find this comment most important in all discussion:

>To be honest, I don't see how this dscussion about how many people might depend on these aliases is relevant. The story as I see it is that a few years ago you decided to usurp the names of some well known tools, in the full knowledge that doing so would break those tools. You have then ignored bug reports about this for years. You really can't deny that you knew a long time ago that what you did amounted to hostile behaviour towards other people.

<comment><USER11> How is that comment useful? No-one is denying anything. It's obvious that the decision to implement those aliases was incorrect. It's not like Microsoft is saying that it was correct.

It's not a question of who was right or who to blame. It's a question of how to make the changes because there _are_ users that depend on those aliases.

<comment><USER12> They are also honestly pretty useful as a new user. `ls` and `dir` are more obvious things to try than `Get-ChildItem`.

<comment><USER13> Then maybe design new ones?

"download" aka "dl" instead of curl/wget?

"list" instead of ls/dir?

Would also make them easier googleable

<comment><USER14> That's not the problem MS was trying to fix with the Linux aliases -- the problem they were trying to fix was ergonomics. A lot of us are used to Linux commands and are turned off by Windows shells when we have to learn a new set of commands and can't use `ls`.

In fact, being able to do `ls` rather than `dir` on PowerShell was one big reason I gave it a chance. My other Windows shell experiences have been supremely intolerable because of that.

With curl and wget, Microsoft admits they were overeager.

<comment><USER15> I think the correct ergonomics would be if you saw:

      $ curl http://example.com/foo
      Fetching http://example.com/foo by emulating curl
      This command is an alias for "...".
      If you've installed a real curl command, disable this by typing...

so that you could still use muscle memory to type the commands you know, could see what the actual underlying command is so you could adapt to it, and would know how to use the Real Thing if you have it.

<comment><USER12> Kind of noisy, isn't it?

<comment><USER15> It is, but the noise is telling you how it differs from what you'd normally expect and how to address it. I think that's an acceptable tradeoff.

<comment><USER12> I think it is immediately obvious from the output that it's not the same program, without the message.

<comment><USER15> Really? What's the normal output? The content of the URL being fetched. If that message was to STDERR so that curl > foo worked without alteration but the help text still showed up on the console, I think fewer people would be surprised.

The number of bugs about this indicates that people _are_ still being surprised.

<comment><USER12> That is not the output of the PoSh command. Like most of them it outputs a list of object properties and values: [https://mcpmag.com/articles/2013/01/22/~/media/ECG/mcpmag/Im...](https://mcpmag.com/articles/2013/01/22/~/media/ECG/mcpmag/Images/2013/01/130121mcp_hicks01.ashx)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> It's nice to see the Microsoft people being open to the dialogue but they're in a hard place here. These aliases have been in PowerShell for years, they can't be removed without breaking existing scripts.

Anyone who's used PowerShell knows that a lot of commands work differently, even `ls` and `rm`. They have different options, different text format (colors!), different output and different ways to interact with other commands. That's the very definition of PowerShell: structured interchange between commands with real objects instead of fragile strings.

wget and curl are no different. They have the names of well known UNIX commands but within PowerShell, they have their own syntax and behavior. It's not unexpected and anyone who uses bash and PowerShell regularly (I kinda do) is used to the differences between these two shells.

<comment><USER17> I'm not too familiar with PowerShell, but I wonder if they could introduce new syntax to fix this. Add a new statement, like import, include, use, or using; if your script includes that statement, you don't get the aliases unless you ask for them (e.g., using LegacyAliases).

<comment><USER18> The problem with that is that it breaks existing scripts. If you have to update old scripts, why try to maintain the legacy stuff in the first place.

<comment><USER17> No, it doesn't, because existing scripts don't include this new statement. You only have to make your aliases explicit if you edit a script to use this new namespace/module feature.

</comment></comment></comment></comment><comment><AUTHOR> Additional info in his blog post: [https://daniel.haxx.se/blog/2016/08/19/removing-the- powershe...](https://daniel.haxx.se/blog/2016/08/19/removing-the-powershell- curl-alias/)

<comment><USER19> This seems far less dramatic than the thread is making it out to be.

</comment></comment><comment><USER20> I think MSFT needs to try harder at their customer service. Their first response from a human was hard rejection response.

lzybkr wrote "We are rejecting this PR as it introduces "Unacceptable Changes", see our breaking change contract."

It is not, "let's investigate it where what the problem is and get back to you some feedback.".

<comment><USER12> They don't even have an obligation to consider outside PRs, let alone provide a reason. It's rather a stretch to say people who want to change the behavior of PowerShell are their main customers.

<comment><USER21> Depends what main customers you are thinking off. For this product in particular, it seems these users might be potential customers of powershell. Each product has it's own main customers.

<comment><USER22> The customers who pay money.

<comment><USER23> FYI - we don't charge for PowerShell.

Jeffrey Snover [MSFT]

<comment><USER22> That was exactly part of my point: "main customers" are people who pay to Microsoft, e.g. for Windows licenses.

</comment></comment></comment></comment></comment></comment><comment><USER24> Devil's advocate: If you're using PowerShell on Linux you probably mean to remain compatible with a Windows workflow. PS uses other unix aliases such as ls and cat. But these all have different semantics than their namesakes. So if PS on Linux deferred to the native tools it would break compatibility with PS on Windows where those tools aren't typically available. If PS wants to remain true to its own goal of being a unified toolchain for cross-platform development, it should stick to its own implementations even if it perturbs some people who are primarily *nix developers. Because developers not working with Windows are not the primary audience of PS.

Consider that PS also aliases DOS commands such as DIR but is not compatible with the COMMAND.COM commands.

</comment><comment><USER25> This seems like a similar issue to how `sed` is implemented slightly differently on OSX/Darwin systems and Linux systems.

How have those communities dealt with the problem? Or is this a totally off base comparison?

<comment><USER26> Totally off base. BSD versus GNU conventions.

<comment><USER27> If you think that that does not, _similarly_ , generate long "But it breaks my scripts!" "Your scripts were wrong." "You should have named the right shell interpreter." "BSD commands are insane." "GNU commands are non-standard." "Are you going to fix all of the scripts that currently rely upon this?" "But this is the de facto standard!" "Have you forgotten about this large userbase over there?" "I don't care what you say, as far as I am concerned this is bash." "I don't care what you say, it's Terminal because I use a terminal to type." "It should be tar." "It should be cpio." "Now it's pax." "What exactly _are_ the options to the 'ps' command?" "Why did you think that you had a command named 'll'?" "No, the superuser's login shell is intentionally the same as it has been for 30 years." "Why does _the user manual_ have a (sometimes little more than a placeholder) note telling me to read _something else_ for the user manual?" "We're settling on info documentation." "No, we're not." "Hey people, I've had a bright idea of documenting everything in HTML and I'm calling it [http://cr.yp.to/slashdoc.html](http://cr.yp.to/slashdoc.html) ." "The _compatibility mechanism_ is _of course_ to put /usr/xpg4/bin in your PATH." "No, that's gmake." "No, that's gawk." "Ah, actually it's mawk." "No, I think it's nawk." "I'm the real ksh!" " _I_ am the real ksh!" "That's because it's the -I option, not the -i option." "We've actually had a non-interactively- usable general-purpose in-place text editor since Bill Joy wrote ex." "But ed is the Unix standard." discussions ...

... then you have not read enough of Usenet, WWW discussion fora, mailing lists, and others. (-:

</comment></comment></comment><comment><USER28> What was the thought process to add those aliases? "Yes let's implement broken aliases that supersedes _actual working windows version_ of those utilities" ?

<comment><USER29> To help bridge the gap for UNIX users who are switching over - but that being said, it's dumb since I think having the same commands that don't function the same way as the UNIX tools would confuse me more than not having them at all and having to learn a new web request command.

<comment><USER30> They could have just bundled cURL with PowerShell/Windows like macOS does. But NIH, I guess?

<comment><USER31> Powershell is an object world, cURL is a string utility. You wouldn't want to bundle it, you want people to use Invoke-WebRequest (current cURL alias).

The alis just needs to be removed. They should replace it with a manpage that suggests cmdlets for popular UNIX commands if those commands aren't found (e.g. if curl returns "not found" it tacks on, "You could try XYZ cmdlet instead").

<comment><USER32> _Powershell is an object world, cURL is a string utility. You wouldn 't want to bundle it, you want people to use Invoke-WebRequest (current cURL alias)._

Specifically, for non PS users reading, Invoke-WebRequest returns n object with the page content parsed and a live DOM to work with, as well as the request headers and the raw data. It's very convenient.

Including curl.exe would not do that.

</comment></comment></comment></comment></comment><comment><USER33> Has anyone looked at the big list o' Powershell aliases? This is from the section containing wget and curl:

...

// Porting note: #if !UNIX is used to disable alises for cmdlets which conflict with Linux / OS X

#if !UNIX

                        // ac is a native command on OS X

                        new SessionStateAliasEntry("ac",
                            "Add-Content",     "", ScopedItemOptions.ReadOnly | ScopedItemOptions.AllScope),

...

                        new SessionStateAliasEntry("cpp",
                            "Copy-ItemProperty",   "", ScopedItemOptions.ReadOnly | ScopedItemOptions.AllScope),

                        new SessionStateAliasEntry("diff",
                            "Compare-Object",  "", ScopedItemOptions.ReadOnly | ScopedItemOptions.AllScope),

...

</comment><comment><USER34> ...And I'd say that this displays a problem with the PowerShell design more than anything else. No, not that the curl and wget aliases exist: it made sense at the time, and no longer does, that's fine. The problem is that PS, unlike every other shell out there, handles structured data, which means it necessarily has to live in its own little world, with its own commandset, because even if it uses external commands, they're not going to be expecting structured data, because that's not how external commands work. So, by necessity, PowerShell is semi-monolithic, and doesn't integrate well with the rest of the system on UNIX, and integrates poorly with regular CLI apps on Windows.

This is an unavoidable problem with what PowerShell is trying to do. It doesn't make PS bad, but it causes problems.

<comment><USER35> Your comment ignores the major integration that PowerShell does provide: .NET. PowerShell can invoke any .NET code and work with the objects returned therefrom. Yes, it has terrible integration with text-based tools, because it's not a text-based shell. It has great integration with the .NET object- based environment, because it's a .NET object-based shell.

(This is also completely ignoring the fact that you can still call any executable; you'll just receive a bunch of strings back. The only failing here is that PowerShell doesn't have the developed string-manipulation tools like sed, awk, etc. because working with text is typically unnecessary.)

<comment><USER32> _The only failing here is that PowerShell doesn 't have the developed string- manipulation tools like sed, awk, etc. because working with text is typically unnecessary.)_

What kind of tools does it not have? It has all the .Net style string methods (split, trim, and so on), all the .Net regex methods, built in arrays and hashtables, looping over lines of text shortcuts.

It's pretty trivial to do small scale ad-hoc text parsing, cut lines by a character, take element 4, cast to 'datetime' and add +4 days to it, handwave a counter into existance and +1 it, match a regex and do some replacement or group some fields.

It doesn't go as far as sed "in-place text replace" or awk records, but saying it "doesn't have developed string-manipulation like sed" is like saying that of Python. And if you were writing Python you wouldn't need to call out to awk because you'd just use Python string processing and basic data structures for what you were doing, right?

<comment><USER35> I meant exactly that "it doesn't go as far as sed... or awk...". PowerShell has what I would term the primitives of string manipulation, inherited from .NET -- substring, trim, regex replace, etc. But it does not have the advanced methodologies that sed and awk provide. Especially in regards to editing, since PowerShell also inherits .NET's immutable strings.

<comment><USER34> This. AWK is the best tool for record DSV record manipulation I've ever used. Some would say that it has since been surpassed by other scripting languages, but I disagree. It's fast to learn, and is incredibly good at what it does, with a very simple and elegant design. Simple AWK scripts can read like descriptions of what you want done. Like this script that prints all users in /etc/passwd that have home directories in /home:

      BEGIN{$FS=':'}
      $6~/^\/home.*/{print}

</comment></comment></comment></comment></comment><comment><USER36> This is funny.

I work on linux or mac os and a couple months ago I was trying to show an intern on windows how to use curl to make HTTP requests from the command line. Having no PS experience, I opened up PS and tried curl, saw that it was a known command but couldn't get it to work as expected since it didn't behave like curl usually does.

Was very confusing. This should definitely get fixed.

</comment><comment><USER37> I wonder if the creators of open source software should claim trademark rights in the names of that software. "curl", "wget", "git", and "nginx", for just four examples, are probably distinctive enough in their areas of use to qualify. If the creators had trademark rights, they could then write "cease- and-desist" letters to ask others to stop using the names in confusing ways.

This wouldn't necessarily open up a trademark-troll sinkhole, because the creators of widely used software could, in their licenses, grant the use of the name to implementers of their packages.

The best way to claim trademark rights is to register the trademarks. But that's not necessary.

(Unrelated: Jeff Snover isn't a creepy guy; he's just trying to do the right thing.)

</comment><comment><USER38> To be honest powershell has always struck me as over engineered, brimming with technological smugness, a solution in search of a problem.

Powershell fans get so excited about how their rich CLR object pipeline is so much better than a textual representation that they forget that their shell is basically an unusable theoretical exercise and still blown out of the water by "the real thing".

The fact that the designers of this platform would over-extend and try to clone "Unix utilities" (which have had windows ports for multiple decades) but completely oversimplify the purpose of these tools and fail to replicate them accurately - it's no shock to me at all.

<comment><USER39> Perfectly said, can't agree more.

</comment></comment><comment><USER40> Some of the unthinking, reflex accusations of conspiracy by Microsoft that I'm reading here are saddening and a bit disturbing.

Somebody decided to add some aliases for convenience. It turns out to have unforeseen consequences. It'll get fixed using a formal process intended to ensure that more unforeseen consequences don't follow from a breaking change.

This sort of thing happens all the time in this industry. Its _not_ a conspiracy.

<comment><USER41> If you're referring to my post, I don't think "conspiracy" is the right word. The "extend" part of "embrace, extend, extinguish" is just due to them having a somewhat insular culture that doesn't make use of upstream.

You can be an entirely good person and do "embrace, extend". You're probably not the one making the decisions to extinguish.

<comment><USER40> I only see one post by you on this topic, and thats the one I'm replying to. So no, I wasn't referring to you.

</comment></comment></comment><comment><USER42> There is a way to address these things that I'm surprised they don't know about as language designers.

For these situations, making a change that breaks people's code, you have a run-time compatibility mechanism. A command line switch or environment variable can tell the language implementation "please behave like version N".

Then all changes since N which are backwards incompatible are suppressed. For instance, troublesome commands that were removed make a re-appearance.

You can then boldly fix something that is obviously wrong, while still giving any negatively affected users a way to fight any fires.

It's not a perfect solution but it placates most of the concern of the form "this is a good all-round fix, but it will break things for some unknown numbers of users".

(Users who have to be absolutely sure that their code will work the same way regardless of language interpreter and run-time updates simply have to package their work together with a specific version of those components, and have their code refer to them instead of the standard installation.)

<comment><USER43> > _A command line switch or environment variable can tell the language > implementation "please behave like version N"._

That's not a fix. If you tell people running existing code that they need to pass a new parameter to maintain the existing behavior, you've broken them. This is no better than just telling them to update their scripts to call "Invoke-WebRequest" instead of "curl". For the record, powershell already supports this. You can request a specific version of powershell. Most of the time people don't use this functionality, though.

> _It 's not a perfect solution but it placates most of the concern of the > form "this is a good all-round fix, but it will break things for some > unknown numbers of users"._

It's actually not a good all-around fix. It might be the best fix for this situation, but breaking an unknown number of users' scripts of unknown importance is still a pretty bad fix. Some guy's payroll processing will break because of this. Some startup's web scraping logic will break. Lots of stuff will break if they fix this.

> _Users who have to be absolutely sure that their code will work the same way > regardless of language interpreter and run-time updates simply have to > package their work together with a specific version of those components, and > have their code refer to them instead of the standard installation._

So basically no expectation of backwards compatibility? That's why Chrome ships with its own copy of Windows, right?

<comment><USER42> > _If you tell people running existing code that they need to pass a new > parameter_

So, make it an old parameter by having this from the beginning in your language.

Once the parameter is several years old, it's no longer a new parameter.

Users can use it proactively, before something breaks. It can be a recommended practice for deploying code.

> _This is no better than just telling them to update their scripts to call > "Invoke-WebRequest" instead of "curl". _

It is substantially better than asking people to change source code.

Users can still change their scripts to call Invoke-WebRequests (and should!); just in the short term, they just adjust some version mechanism.

> _That 's why Chrome ships with its own copy of Windows, right?_

Windows has versioning mechanisms in some of its API's, by which it can tell that a program is calling it that was compiled for an old version.

Speaking of browsers, web pages declare what version of HTML they are in with <!DOCTYPE ...>. If your page begins with <html>, you can't expect it to render the same way everywhere.

Deploying applications in containers with copies of operating systems is not unheard of these days.

> _So basically no expectation of backwards compatibility?_

Backward compatibility is the normal _modus operandi_. This type of mechanism is just for "oh shit" situations: there is no way we can fix this thing while remaining backward compatible. Any newly introduced use of the version emulation is treated with great regret.

<comment><USER43> > _So, make it an old parameter by having this from the beginning in your > language._

It's already part of PowerShell. You can request a specific version when you run PowerShell.

[https://msdn.microsoft.com/en- us/powershell/scripting/core-p...](https://msdn.microsoft.com/en- us/powershell/scripting/core-powershell/console/powershell.exe-command-line- help#version-windows-powershell-version)

> _Users can use it proactively, before something breaks. It can be a > recommended practice for deploying code._

I'm sure it is recommended practice. That's irrelevant if people aren't following that best practice. And they generally aren't, because it adds friction to development.

The "go back in time and do it right from the beginning" fix isn't feasible due to the lack of reliable time machines.

> _It is substantially better than asking people to change source code._

It's really not. If the workaround avoided compilation, this would be lower cost. But the cost to make a small change to a script and the cost to change the way the script is invoked are pretty much the same.

> _Windows has versioning mechanisms in some of its API 's, by which it can > tell that a program is calling it that was compiled for an old version._

No. Windows is just super-serious about backwards compatibility. Some APIs are versioned. Most are not. Microsoft just bends over backwards to keep stuff running (to the point of emulating bugs that programs relied on).

> _Speaking of browsers, web pages declare what version of HTML they are in > with <!DOCTYPE ...>. If your page begins with <html>, you can't expect it to > render the same way everywhere._

Also no. HTML5 did away with the versioned doctype crap because it wasn't actually useful. It's just "<!DOCTYPE html>" now, because that's what you need to get browsers to render your site in a standards-compliant way.

> _Backward compatibility is the normal modus operandi. This type of mechanism > is just for "oh shit" situations: there is no way we can fix this thing > while remaining backward compatible. Any newly introduced use of the version > emulation is treated with great regret._

This type of mechanism 1) already exists for powershell, and 2) doesn't really help much here. I'm sure if they take this breaking change, they'll advise impacted people to use this workaround if they cannot for some reason fix their scripts. But this is not a "fix".

Disclosure: MSFT employee, but not on PowerShell or Windows

<comment><USER42> I never called this a "fix". I used "fix" in reference to whatever backward incompatible change was being made to make this workaround necessary. (For whatever reasons, it is considered a fix that is desirable; and so the question is then now to mitigate the impact.)

Of course the fix for any behavioral regression is to make it go away without the user having to do anything (other than apply the fix).

The versioning request mechanism has to be supported via an environment variable also, because if a user has a tree of scripts calling each other, it may not be feasible to insert this extra argument into all those calls.

> _But the cost to make a small change to a script and the cost to change the > way the script is invoked are pretty much the same._

That is true, but the cost to make hundreds of changes to a script versus one command line parameter isn't the same. A change which breaks backward compatibility could affect some programs in many places.

There is also the cost of finding _that_ there is a problem, and _what_ that problem is: where is it breaking and what changes need to be made. All while ensuring that those changes work for the older versions of the interpreter too, not just in the upgraded environment.

Say I have some big, 10000 line script. I update to a new interpreter, and the script doesn't work. First thing I will try is the compat option to emulate the previous version. If it works, then there is my workaround; for the time being, I don't have to _care_ why, or whether forty places in the script are affected or only three. The thing has a way of continuing to work (for a good, long time) so I have plenty of time to investigate it. I can treat it as a low-priority issue and give it as a background task to a co-op student instead of as an urgent blocking issue.

> _HTML5 did away with the versioned doctype crap because it wasn 't actually > useful. It's just "<!DOCTYPE html>" now,_

I.e. HTML5 just shortened the spelling of the utterance that you need to indicate that "this page is HTML5". If your page is HTML4, you need the older, more verbose utterance.

<comment><USER43> > _I never called this a "fix"._

You called it a solution. You called it a way to address the issue. Nitpicking use of the specific word "fix" is pointless, when you were clearly proposing this as a fix.

> _That is true, but the cost to make hundreds of changes to a script versus > one command line parameter isn 't the same. A change which breaks backward > compatibility could affect some programs in many places._

You're right. The cost to hack it with a specific version is _higher_. You either have to set a system-wide environment variable (which someone will forget about and ship a break because locally they were using a newer version) or you have to inject it at each point a relevant script could run. Or you could do a find/replace for the problematic alias and be done.

> _There is also the cost of finding that there is a problem, and what that > problem is: where is it breaking and what changes need to be made. All while > ensuring that those changes work for the older versions of the interpreter > too, not just in the upgraded environment._

It's literally a grep/findstr. I don't know why you're acting like it's hard to find uses of the tokens "curl" and "wget" in ps1 files.

> _Say I have some big, 10000 line script. I update to a new interpreter, and > the script doesn 't work. First thing I will try is the compat option to > emulate the previous version. If it works, then there is my workaround; for > the time being, I don't have to care why, or whether forty places in the > script are affected or only three. The thing has a way of continuing to work > (for a good, long time) so I have plenty of time to investigate it. I can > treat it as a low-priority issue and give it as a background task to a co-op > student instead of as an urgent blocking issue._

What are you talking about? The whole reason to maintain backwards compatibility is so you don't end up in this situation. You can use the version switch if you need to, but in general if you need to in production it means someone screwed up.

In the scenario you described, there's a 95% change you'll never take the version switch off once it's in place (because it's "low priority"), so you'll have this hanging over your head until something breaks and it becomes critical to upgrade, at which point you'll be frantically trying to fix the problem and cursing Microsoft for not maintaining backwards compatibility.

> _I.e. HTML5 just shortened the spelling of the utterance that you need to > indicate that "this page is HTML5". If your page is HTML4, you need the > older, more verbose utterance._

Not exactly. If you slap the "HTML5 doctype" on an HTML4 page, it's expected to work. Because again, that abbreviated doctype is all you actually need to get a browser to use standards-compliant mode. But also, this is the doctype going forward. So far as I understand, there is no plan for HTML6/7/whatever to change this. Because backwards compatibility is greatly preferred over trying to force a specific version.

<comment><USER42> If I have a problem with Firefox and switch to Chrome, that addresses my problem and is a solution; yet it isn't a fix! When I use words like "address", I'm specifically being weasely, avoiding the word "fix". :)

> _The whole reason to maintain backwards compatibility is so you don 't end > up in this situation._

That's the ideal, which ignores the negative aspects of absolute backward compatibility. Very good backward compatibility most of the time is all round better than perfect, absolute backward compatibility.

If you want perfect backward compatibility _and_ an excellent design everywhere, then you have to make only perfect design decisions in everything right from the start.

Dennis Ritchie regretted not fixing the precedence of the & operator in C. It's strangely low because at one time there had been no logical && operator and & was used in its place. He wanted to fix it, but, alas, the story goes, they already had several hundred kilobytes of C code written across three machine installations. The result: a piece of technical debt spread to immeasurable numbers of lines of C written since, world over.

> _I don 't know why you're acting like it's hard to find uses of the tokens > "curl" and "wget" in ps1 files._

Simply because I'm thinking of the whole class of possible backward- incompatible changes in a language or library, not all of which can be necessarily found this way. For the ones which can be found by looking for specific identifiers, you need reliable release notes to tell you what they are.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> I have to wonder how many people are really trying to run curl and wget from Windows PowerShell and running into a problem. I feel like if you're the kind of person who would do that you are also the kind who could easily configure your environment to get it the way you want. Breaking existing behavior seems like a bigger problem.

<comment><USER31> You can bypass this problem by appending ".exe" to the end of your command anyway, as in, "curl.exe" instead of "curl" fixes the alias problem and allows native curl to run.

Alternatively you can use a fully qualified path (c:/utils/curl.exe).

Technologically it is trivial to bypass the alias. But that doesn't mean the curl/wget people don't have a legit point about trademark usage and or incompatible args between the cmdlet (actually Invoke-WebRequest) and original UNIX utilities.

<comment><USER12> Yeah, but the aliases are mostly meant for an interactive scenario where it has real value to be able to just try typing in a command you know and then you can actually look at the docs to understand the details, rather than having to Google "PowerShell equivalent to wget" or whatever.

</comment></comment></comment><comment><USER33> I think I may quote this when the periodic "text input/output is stupid" threads come up.

" _The output of curl.exe (and every other exe or other command external to PowerShell) is System.String._

" _So changing curl to run curl.exe instead ofInvoke-WebRequest` would break this script because the output type would change._ "

<comment><USER12> What that actually means is that if you change a command so that it runs a totally different program the script would break, which is equally true in a stringly-typed world.

<comment><USER44> Though in the stringly-typed world, it's when the format changes from:

      A B C

to:

      A B D C

Or some other such thing. Your string processing code (perl, sed, sort, uniq, etc.) expects certain things that have now changed because <reasons> (which may be totally reasonable or unreasonable).

<comment><USER12> Yes, but if it's a totally different program there's no real reason to expect the output to be even slightly similar.

</comment></comment></comment></comment><comment><USER45> The aliases in PowerShell are a pain even for normal operations, because they don't behave like their DOS or Linux counterparts. I mean, the Get-ChildItem is aliased to dir and ls, which makes it discoverable... but it's parameters behave completely differently which just makes it confusing.

<comment><USER46> Maybe `cd` is a shell builtin, so I expect its behavior to change when I change shells. So it's not a problem to have `cd` behave slightly differently in bash, zsh, fish, PowerShell.

</comment></comment><comment><USER47> It's great that Microsoft has made PowerShell available to anyone who wants to do as they like with it and even took the trouble of packing it up for Linux and macOS, but for release, they have to care about their paying customers first, which includes some Windows admins who ignored 10 years of advice to never use aliases in a script. I'm a Skype for Business/Exchange admin who has generally followed that advice, but even I tend to use "select" instead of "Select-Object" in scripts.

This sort of thing is part of why open sourcing stuff that was developed closed and commercial isn't just a matter of tossing it up on GitHub and dropping a note here.

</comment><comment><USER48> Is there a list of all the commands they alias?

What is the filename of the profile jpsnover is referring to with the work around of adding:

      Remove-Item Alias:Curl
      Remove-Item Alias:WGet

<comment><USER49> get-alias will list all the aliases on your system.

The profile is here (at least in Windows 10, it might be in a different location in other versions): C:\Users\username\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

<comment><USER50> $profile already points to it.

</comment></comment></comment><comment><USER51> I'll leave the MS politics out of my comment, and just summarize my suggestion [0] to handle this sort of thing. A module that has exported module members allowing you to opt-in to future breaking changes _now_ could be added to PowerShell, similar to how Python has _from future import [whatever]_. So you could remove curl and wget aliases by adding _Import-Module Future.RemoveAliases.Net.Http_ to your profile, or even opt-in to all future breaking changes by adding _Import-Module Future_ to your profile. I wonder what Daniel would think of that idea.

[0]: [https://github.com/PowerShell/PowerShell/pull/1901#issuecomm...](https://github.com/PowerShell/PowerShell/pull/1901#issuecomment-241100571)

</comment><comment><USER52> One of the arguments I saw from the Microsoft guys was that it's consistent with other "aliases" PowerShell has (like ps and ls).

Reminds me of a demotivational poster we have at the office:

[https://www.google.ro/search?q=demotivational+poster+consist...](https://www.google.ro/search?q=demotivational+poster+consistency&biw=1920&bih=995&tbm=isch&imgil=wlsu- mX1EFKYBM%253A%253BODUUUUR5Vh0_AM%253Bhttp%25253A%25252F%25252Fdespair.com%25252Fproducts%25252Fconsistency&source=iu&pf=m&fir=wlsu- mX1EFKYBM%253A%252CODUUUUR5Vh0_AM%252C_&usg=__L3-zFKPTsX5ICIEwWgnAO83bh2g%3D&ved=0ahUKEwjohNvL_s3OAhWKvBoKHZ6cAwcQyjcIJw&ei=0D-3V-jcDIr5ap65jjg#imgrc=wlsu- mX1EFKYBM%3A)

It reads: "Consistency: Only a virtue if you're not a screwup".

</comment><comment><USER53> I think that *nix commands can be split into roughly two groups: ones that feel like generic "actions" and have multiple implementations (ls, cd, cat), and ones that refer to specific pieces of software (curl, emacs). The first category should be aliased to the PS equivalents, while the second should be left as-is.

With commands like ls, I'd prefer to have my muscle memory get me the first- class Powershell experience (which means a structured list of files, not a string containing ls's output) instead of attempting to act exactly like ls acts in bash. If I didn't want to use Powershell's features (which /bin/ls does not support) I wouldn't use Powershell.

</comment><comment><USER54> PowerShell is really cool but its not a traditional shell at all. Totally different model. Also, Windows is not Linux. Stating the obvious but people seem to be doing a mashup without quite noticing the level of difference.

Its not an open source organization. If it was, they would have the discussion there rather than just closing it and talking about an RFC.

I think they should add an install option rather than nust defaulting to those aliases.

MS does need to continue making money. No matter how much people pretend otherwise, that means they have a conflict of interest with open source and Linux. And the web platform (still). And with so many billions at stake, yes their actions reflect this conflict.

</comment><comment><USER55> There is so much weight of history for Microsoft to overcome if they want to now be accepted and trusted by the open source community. I'm willing to believe that at least parts of the company are sincere and serious about achieving that, but they need to have a thick skin and be understanding when people don't immediately trust them right off the bat.

Many long years of name calling and Embrace and Extend (which this particular issue feels a lot like) are going to take some time, patience, and long suffering on their part to counteract.

</comment><comment><USER56> For the curious here is the authors blog post about it: [https://daniel.haxx.se/blog/2016/08/19/removing-the- powershe...](https://daniel.haxx.se/blog/2016/08/19/removing-the-powershell- curl-alias/)

</comment><comment><USER57> Dear Microsoft bundle curl and wget in the next patch / major release. Your Historical blunder can be forgiven and you can make new friends in open source

</comment><comment><USER58> You think that's bad. They alias ls as well...

<comment> UK-AL ls is a standard on many different shells, with different implementations.

<comment><USER46> Are there shells where `ls` is a built-in?

I just replied to another comment where I wanted to say that I don't mind that the PowerShell version is different because `ls` is a built-in. But then I discovered it's not. So I just used `cd` in that comment...

<comment><USER27> Read about the C shell's "ls-F" built-in command.

<comment><USER58> Don't get me started on the awfulness of csh...

</comment></comment></comment></comment></comment><comment><USER59> Isn't there a third way? make the PS versions of curl and wget adhere exactly to the original interface/specs?

<comment><USER23> Yes but I think the better solution is to fix the alias problem and then work with Daniel to make it super simple for people on Windows to get his latest/greatest bits. I've reached out to him to start that conversation.

Jeffrey Snover [MSFT]

</comment></comment><comment><USER60> I wonder how many venomous comments in the PR were authored by people even remotely affected by the issue. I wager the answer is 0.

</comment><comment><USER61> To me this looks like a twisted version of step two of the "Embrace, extend and extinguish" strategy – creating interoperability problems: [https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish](https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish)

To recap:

1\. Embrace: Development of software substantially compatible with a competing product, or implementing a public standard.

2\. Extend: Addition and promotion of features not supported by the competing product or part of the standard, creating interoperability problems for customers who try to use the 'simple' standard.

3\. Extinguish: When extensions become a de facto standard because of their dominant market share, they marginalize competitors that do not or cannot support the new extensions.

<comment><USER9> I think Hanlon's razor applies better here than embrace-extend-extinguish.

<comment><USER62> Hanlon's razor applies when there is no evidence pointing towards malevolence. There is ample evidence pointing to EEE in the case of Microsoft.

<comment><USER63> >There is ample evidence pointing to EEE in the case of Microsoft.

Forever?

<comment><USER62> Let's flip this around. Are you sure you want to argue that past behavior can't inform us (to some degree) on future behavior?

</comment></comment></comment></comment></comment><comment><USER64> I guess Powershell is going to have to take out all of it's useful aliases...

Bye ls, rm, cp, etc

<comment><USER50> They should put a flag that's something like $clobber_posix with default state of off.

</comment></comment><comment><USER65> 429 points by laurent123456 4 hours ago | 289 comments

And already pushed off the frontpage, yet stories with 16 votes are now on the frontpage.

</comment><comment><USER61> Offtopic: What I find interesting about this discussion is that comments regarding "Embrace, Extend, Extinguish" and Microsoft's past misbehaviour got upvotes first, then suddenly many downvotes at once. I have seen this earlier on HN with other controversial topics and I do not know what it implies.

Is this voting brigading / shilling or just normal behaviour of groups trying to suppress dissenting voices?

Also, is this part of why semi-noobs think that HN is turning into reddit?

<comment><USER66> We detached this subthread from [https://news.ycombinator.com/item?id=12319735](https://news.ycombinator.com/item?id=12319735) and marked it off-topic.

<comment><USER61> I think I understand what detaching means, but what effect does marking a thread off-topic have?

</comment></comment></comment><comment><USER67> IANAL but this seems like a pretty clear cut case of copyright infringement, I.e. a situation where an ordinary person might be confused into thinking that PowerShell curl/wget provides the real thing, but does not.

Although I suppose that PowerShell could fall under "parody."

EDIT: this was sarcasm.

<comment><USER68> Are curl and wget copyrighted? I thought they were free software under a copyleft-style license.

<comment><USER69> That doesn't mean that they aren't copyrighted. It just means that you can freely use them under the terms of their copyright license. If the code for them were not copyrighted (usually referred to as Public Domain), then you could do whatever you wanted with them-- things like making derivative works and using a commercial license.

<comment><USER70> Let's be very clear here.

This is not true:

No copyright notice == Public Domain.

Everything You make gets Your copyright by default. This means the default is: nobody can use what You make.

You can put other copyright terms on your works by adding a copyright notice.

You can put something in the Public Domain by adding a notice to your work.

Things can also become Public Domain automatically after a certain amount of time. But that time has been extended several times in the US to something unreasonable: like 75 years after the death of the author. You can thank Disney/Mickey Mouse for that.

</comment></comment></comment></comment><comment><USER71> Create a list of tests. Report how many of the tests pass/fail.

<comment><USER12> I don't think you understand the problem.

</comment></comment><comment><USER72> This is kinda awesome. This repo has been public for less than 24 hours and Daniel Stenberg (@bagder) already put in a PR to remove wget and curl? That's amazing. What a Swede.

</comment><comment><USER73> One is always left with the impression Microsoft thinks their users are ignorant, for lack of a better word.

Of course, along with all those users who Microsoft treats as ignorant, again for lack of a better word, there are some very sharp people who use Windows -- who will perhaps take offense at any criticism of Microsoft -- no offence intended! (I am just not smart enough to feel confident with Windows myself -- too complicated.)

What is amusing to me about this incident is that I imagine Microsoft would argue that "Monad/Powershell" is aimed at its so-called "power users". Apparently these "power users" would not notice or would need something like this?

Intentionally or not, Microsoft is targeting beginners, not "power users" \-- tactics like this leverage the popularity of the curl and wget programs and at the same time prevent beginners from learning how to use those programs, not to mention the long history behind them.

Disclaimer: I prefer nc, socat and tnftp myself; I have no bias in favor of curl or wget.

<comment><USER74> > One is always left with the impression Microsoft thinks their users are > ignorant, for lack of a better word.

My impression is that these aliases were added so people wouldn't need to install cURL and wget on multiple machines.

> What is amusing to me about this incident is that I imagine Microsoft would > argue that "Monad/Powershell" is aimed at its so-called "power users". > Apparently these "power users" would not notice or would need something like > this?

PowerShell was initially aimed at providing sysadmins a better tool for scripting tasks within Windows. They added aliases to help reduce the mental shift when changing technologies.

> Even if this can be explained away as a purely innocent "mistake", it still > says something about the level of attention to detail.

At the time, it was intentional. The reality is when PowerShell was designed, there were no plans to free it and put it online, it was a pure Windows tool. The decision to add aliases made sense.

<comment><USER73> Yes or no question: Is it deemed too difficult for a user to create their own aliases, based on their own needs?

Why should anyone have to make a "mental shift"? The answer is not because UNIX is incompatible with other systems. The answer is more likely because Microsoft Windows is a proprietary commercial product; its sales and marketing staff have traditonally sought to discredit UNIX. Having followed Windows from 3.11 onwards I would argue that it is "different" and incompatible by design. The "mental shift" is intentional and strategic, but not at all necessary.

Why were there no plans to make PowerShell free and open source and publicly available initially? That's a rhetorical question of sorts.

UNIX as the OS that generally "runs the internet" has become better known and more popular in recent years as a result of several factors. That's why MS has to make the moves they're making. keywords: "has to"

<comment><USER74> >Yes or no question: Is it deemed too difficult for a user to create their own aliases, based on their own needs?

Are you intentionally trying to be difficult? The answer is of course not, considering there is the New-CmdLet alias. These aliases exist purely as convenience factor.

> Why should anyone have to make that "mental shift"? The answer is not > because UNIX is incompatible with other systems. The answer is because > Microsoft Windows is a proprietary commercial product and its sales and > marketing staff have always sought to discredit UNIX. Having followed > Windows from its inception I would argue that it is "different" by design. > The "mental shift" is intentional, but not at all necessary.

You followed Window's inception, and this is the best argument you can come up with? A not to subtle attempt to discredit the company? Your answer ignores the fact that Windows was built on top of a DOS derivative and the scripting language for Windows for many years was batch. It was different because it wasn't based on UNIX at the time because Linux was still in development.

>Why were there no plans to make it free and open source and publicly available initially? That's a rhetorical question of sorts.

I'd imagine because it was aimed at people who were managing Windows servers. Considering Linux has a robust set of tools to do that, there would have been no reason to do that.

>As I see it, UNIX as the OS that generally "runs the internet" has become better known and more popular in recent years as a result of several factors. That's why MS has to make the moves they're making. keywords: "has to"

I don't think anyone on this thread would deny that. The question is how is that remotely relevant? Companies have to change strategies in order to respond to the markets they operate in. Companies survive on profits and revenue. It makes sense their actions would be guided by those. Why is this a difficult concept for people to understand?

<comment><USER73> OK, if you meant going from DOS batch to UNIX sh scripts, i.e., from one scripting language to another, as the "mental shift", then that's fair.

But using an alias for a program that may be called by a script is not going to address that.

A user can just as easily call curl.exe using BAT, WSH, etc., or PS.

As for DOS, keep in mind MS did not even write the software that became MS- DOS; they bought it.

Many believe it was a copy of the work of Gary Kildall whose CP/M was undisputedly more original and superior in quality to anything else for the "PC".

Using their usual tactics (remember "vaporware"?), MS extinguished Kildall's DR-DOS, and put his company out of business.

Later they paid a $150 million settlement for this move.

What is difficult to understand is why MS cannot make money without copying and interfering with other companies.

What's wrong with their "original" work? Can't they sell that?

Will they use the same tactics against open source projects that write software for UNIX? Maybe that is what concerns people here.

Also difficult to understand why they must _force_ users to "upgrade" and OS that already works? Profits and revenues. Right. Rah rah Redmond.

If this behavior is what they must do in order to derive "profits and revenues" then why would you be confounded by people who would question it?

I'm all for winning in business, profits and revenues, but truthfully I am here because I like using, reading and trying to write software that is better than average.

Microsoft offers nothing in this regard.

</comment></comment></comment></comment></comment><comment><USER75> Am I crazy or is Microsoft announcing new open source or dev friendly stuff everytime there's a PR bomb here on HN?

18/08/2016 [https://news.ycombinator.com/item?id=12305598](https://news.ycombinator.com/item?id=12305598) With Windows 10, Microsoft Disregards User Choice and Privacy (eff.org)

A day later they announce Power Shell is open source.

I remember a few months ago they blasted HN's frontpage with news after a few discussions about telemetry and EEE (first wave of Windows 10/UWP showing its true colors).

I don't care enough to do a reddit-esque investigation on HN stories. I just find it funny, that's all.

<comment><USER65> You are definitely not crazy nor alone with watching these PR tactics. I dislike that so many MSFT employees/puppets/bots/fanboys frequent HN since Build conference 2015. I would prefer the HN of pre-Spring-2015 with news about venture capitalists, startups and software that matters to startups - and not corporate PR about software that doesn't make sense for startups. See how MySpace lost, look what software stack they used and how it burned through cash because of very expensive license fees, compare it to Facebook. Everyone who got burned by the Seattle guys once usually learn and avoid getting burned again.</comment></comment>


The real answer to the problem of texting while driving - <AUTHOR> http://timharford.com/2017/03/the-real-answer-to-the-problem-of-texting-while-driving/ <comment><USER2> Oh frack I hate drivers: the inertia of their vehicles range from a NATO bullet (30km/h with partial shock) to a 75 canon and they want to blame technology for they lack of concern to the others' well being.

When you handle the same potential destructive power as a BF gun, you have the same duty as an operator of a gun:

\- not being distracted (be it by a phone, a blowjob or a conversation);

\- taking it as a matter of life or death;

\- being responsible for your actions.

\- follow security rules.

There is no excuse. If ISIS is now using vehicles instead of guns, it is simply a logic of potential damage. Our society is basically considering owning guns is bad, but cars/truck that can be more destructive are less regulated to not bother economical interests thus it is good.

Stap it, anything that can endanger others' life should be regulated. Else, let me pilot without a license the next plane you are gonna take to travel.

</comment><comment><USER3> I don't know about IOS, but for Android, there is Android Auto by Google. It makes the UI larger and easier to use, and minimizes what you can do in the car. It will even read texts to you.

[https://www.android.com/auto/](https://www.android.com/auto/)

</comment><comment><USER4> Some (many?) apps do that, preventing you from typing while it detects that you are moving, unless you declare that you are a passenger. I can easily think of some app that won't let you receive notifications while driving.

</comment><comment><USER5> But your honor! I was not texting while driving! I was using FaceTwit instead.</comment>


Danish researchers finally solve the obesity riddle - <AUTHOR> http://www.physorg.com/news/2010-11-danish-obesity-riddle.html <comment><USER2> Holy cow. It's a small world! One of the main guys behind this is actually a great friend of mine. I've known him since kindergarten and he's now amongst the top researchers in the world. I wish I had something to do with it! He recently moved back to Canada from Copenhagen.

He has no clue what Hacker News is, but I'll email him this thread, perhaps he'll chime in if any of you have questions.

<comment><USER3> Please ask him to do a IamA-AMAA

</comment></comment><comment><USER4> "randomly assigned to one of five different low-fat diet types" \- so most combinations weren't tested at all?

<comment><USER5> Why in the world is this being downvoted? _All_ of the five combinations they tested were low-fat. This is actually the point I wanted to make, too.

<comment><USER6> Very true, the fist thing I wanted to look for - "how did my favourite high- fat, low-carb diet rate in this study? Oops, how are the results of any use then ..."

</comment></comment></comment><comment><USER7> Bodybuilders have been saying this for a while. There are always arguments about thermodynamics and what not, and there is good reason behind those, but everyone in a gym who builds up a lean body (sans steroids or not) follow a similar dietary pattern: lean meats, veggies, no flour/sugar/starchy veggies, etc for cutting and then eating more protein and some complex carbs (like from potatoes) to build lean mass.

</comment><comment><USER8> Prof. Arne Astrup, a colleague of mine, was the principal investigator of this study when I was in Denmark. Interestingly, I will see him this weekend in Quebec City for the PhD defense of my wife. I agree with you guys that the title is too strong and we have to be careful when interpreting studies. Only few people fully realize that the obesity problem is complex and multifaceted. Nobody is immune. The causes and paths to weight gain are manifold and a narrow focus on the Big Two factors (unhealthy diet and physical inactivity) is not enough. For some people, factors such as short sleep duration, mental stress, socioeconomic status, drugs, etc. can cause weight gain and thereby should be included in the big picture. The main problem lies in the current 'obesogenic' environment that encourages overeating and sedentariness, and people are not able to swim upstream against those strong pressures. A change in the environment is more than needed at this point, because telling people to eat less and exercise more does not really work.

</comment><comment><USER9> I've thought the argument in "Sugar: The Bitter Truth" is very insightful. Viewable at <http://www.youtube.com/watch?v=dBnniua6-oM>. Pointing out that the Atkins diet (no carbs, fat okay) and the Japanese diet (mostly carbs, low fat intake) have in common that they eliminate sugar, the major cause of obesity.

</comment><comment><USER10> These studies are nutty. You can't separate diet from activity; you can't treat wide categories of food so indiscriminately; you can't use BMI or weight instead of body composition, and get definitive results.

Just for example, raw foodists tend to have low-protein diets that may be low OR high-glycemic index, and tend to be very thin.

Without a comprehensive listing of specific meals, I would guess that people in certain groups in this study would be much more likely to cheat on their diets. The selection of low-protein, low-GI foods for most people used to typical Western diets would lead to very disappointing meals and thus more cheating over a 6-month period.

Further, gaining a pound of fat over a period of 6 months works out to less than 20 extra calories _per day_. This is essentially noise. Cheating with 150 extra calories once per week (e.g. a single sugary treat) could account for this.

Keeping your blood sugar in check is a major factor in preventing binge eating and fat storage. There are various ways to do this, including low-GI foods, exercise, and eating small meals frequently. The recent standard for Hollywood stars and starlets is working with a personal trainer and eating every 2 hours. This helps keep blood sugar steady.

On the flip side, people engaged in sustained cardiovascular exercise _must_ eat high-GI foods or their performance drops. Riders in the Tour de France chow down on every sugary snack and drink known to man (not just "performance formulas" of energy bars and drinks), and Michael Phelps eats 12,000 calories a day while training.

You don't need that level of Herculean effort before this becomes important. Even if you are completely sedentary, if you are engaged in a mentally taxing task, your brain is burning through a lot of glucose. Eating sucrose means half glucose and half fructose, and only the glucose can be metabolized immediately. Fructose can be stored by the liver and converted, but if the liver reserves are full (e.g. late in the day, as opposed to waking up from fasting during sleep), fructose will end up as fat. Fructose has a low glycemic index, so guess which sugar is more likely to be included in a low-GI diet. (Glucose is of course used by diabetics in order to raise their blood sugar quickly. It is also called Dextrose.)

Finally, without body composition analysis, they haven't shown anything about fat loss. High protein diets require more water to process, and a difference of a pound or two on a human body can _easily_ be down to differences in fluid retention. High protein diets can lead to slightly more dehydration.

<comment><USER3> Here's the original article. <http://www.nejm.org/doi/full/10.1056/NEJMoa1007137>.

The study is impressively well done, as are most articles in the New England Journal. Other researchers will be studying their methods as much as their results.

> Without a comprehensive listing of specific meals

Actually, they did better and developed local indexes for all foods for each center and had the patients keep food diaries.

> Further, gaining a pound of fat over a period of 6 months works out to less > than 20 extra calories per day. This is essentially noise.

First, this is why we enroll more than one patient. The noise averages out. Two: the unit of measure was kilograms, the average arm gained _more_ than 1 kg. Three, see figure 2B in the article: they quite nicely demonstrate sufficient granularity to appreciate signal.

> Keeping your blood sugar in check is a major factor in preventing binge > eating and fat storage

> people engaged in sustained cardiovascular exercise must eat high-GI foods > or their performance drops

Your liver has glycogen stores on board that will keep your blood sugar rock steady for the first 20 miles of a marathon. Unless you are exercising at a heart rate of 160-180 for 2.5 or more hours, this is useless trivia.

> Riders in the Tour de France chow down on every sugary snack and drink known

> Michael Phelps eats 12,000 calories a day while training.

Some of the most over-cited factoids on the Internet. I swam competitively for 7 years and raced bikes competitively for four, and still ride. I'm also a doctor who spent a fair amount of a surgical internship with the bariatrics unit. These facts about elite athletes do not bear on anyone who has a BMI of 34 (Patients are generally ineligible for bariatric surgery below a BMI of 35)), the average human, or, almost certainly, you. A far more useful factoid is that your glycogen stores are depleted overnight, so a 2-3 hour cardio session in the morning will force you to burn fat. The body has no other choice. (No, it won't burn muscle).

> if you are completely sedentary, if you are engaged in a mentally taxing > task, your brain is burning through a lot of glucose

Normal adult human brain uses, 120 g to, maybe, 220 g of glucose per day. At the outside, that's 750 Calories.

> sucrose means half glucose and half fructose, and only the glucose can be > metabolized immediately. Fructose can be stored by the liver and converted, > but if the liver reserves are full (e.g. late in the day, as opposed to > waking up from fasting during sleep), fructose will end up as fat. Fructose > has a low glycemic index,

True. Unfortunately, your implicit conclusion . . .

> guess which sugar is more likely to be included in a low-GI diet

Is what? Are you saying they loaded these cats with fructose? If they did, then these results are even more impressive, because we would expect a high fructose diet to promote fat gain. Are you saying they loaded them with glucose? That would make no sense, because glycemic index measures "blood glucose".

> Finally, without body composition analysis, they haven't shown anything > about fat loss.

See Table 2 of the study.

<comment><USER10> > _Here's the original > article.<http://www.nejm.org/doi/full/10.1056/NEJMoa1007137> _

Not available without subscription.

Even so, the media described in the abstract makes no mention of body composition; without that, there is no way this study can be considered adequate, let alone "impressively well done".

> _Your liver has glycogen stores on board that will keep your blood sugar > rock steady_

Your reply is confused. There are two different points that you are conflating.

One is in regard to keeping blood sugar steady to prevent binging by AVOIDING high GI foods; the other is performance-related, and the NECESSITY of using high GI foods in specific instances.

> _for the first 20 miles of a marathon_

All you're saying is that if you carb load in advance, you will have glycogen until you run out of glycogen.

You're incorrect about "rock steady". Typically, blood sugar will actually spike at first, as the liver releases glycogen / glucose at the onset of exercise. And guess what happens following a spike...

> _Unless you are exercising at a heart rate of 160-180 for 2.5 or more hours, > this is useless trivia._

I specifically mentioned _sustained cardiovascular exercise_ AND the Tour de France in regard to this. I give specific examples, and you scoff and say it wouldn't matter -- _unless someone were doing something I specifically mentioned as an example_. Are you objecting just for the sake of objecting?

By the way, heart rates are generally lower (in the 140 range, not counting time trials and climbs) and eating is fairly continuous in the TdF.

> _Normal adult human brain uses, 120 g to, maybe, 220 g of glucose per day. > At the outside, that's 750 Calories._

Is this supposed to be an objection? Also, your math is wrong, unless you're using some kind of magic low-calorie glucose (220 x 3.81 = 838).

If you're eating sucrose to get glucose, double the calories. That's a lot of sugar.

Also, things like playing chess or programming all day are a lot more mentally taxing than "normal" activities.

If you know of studies with either group, I'd love to see them.

> _These facts about elite athletes do not bear on_

You apparently missed where I specifically cited Phelps's _herculean effort_.

The only difference is the scale; I used Phelps as an illustration of what I stated at the top: _You can't separate diet from activity_. I'm not sure how you managed to miss every point and misconstrue every example.

> _A far more useful factoid is that your glycogen stores are depleted > overnight,_

I mentioned this already in passing.

> _so a 2-3 hour cardio session in the morning will force you to burn fat._

Anything increasing metabolic demands will result in increased oxidation of fatty acids even if you aren't fasted.

> _(No, it won't burn muscle)._

That's sheer nonsense. The body is _already_ in a catabolic state after fasting, and adding 2-3 hours of cardio will _absolutely_ burn muscle.

> _Are you saying they loaded these cats with fructose?_

Low-protein, low-GI diets can well be high in fructose. Do you have the food diaries?

> _If they did, then these results are even more impressive, because we would > expect a high fructose diet to promote fat gain._

They gained weight.

> _First, this is why we enroll more than one patient. The noise averages > out._

Once again, you missed the point. If a certain diet makes it very likely that people will cheat, you can end up getting a lot of dropouts (as they did) and the ones who stay in will be shifted toward the higher end. This makes the entire result set suspect.

> _Two: the unit of measure was kilograms_

Do you get points now for stating the obvious?

From the article: "The average weight regain among all participants was 0.5 kg". I took the liberty of translating that into about a pound.

> _they quite nicely demonstrate sufficient granularity to appreciate signal_

I already proposed the factor of water retention which would quite plausibly account for a kilo of difference.

> _See Table 2 of the study._

I can't see it, but I can read the description, if you mean Figure 2:

"Panel B shows the change in weight for each of the dietary groups during the weight-maintenance intervention, adjusted for body-mass index at randomization, weight loss during the low-calorie-diet phase, sex, family type (single-parent family, two-parent family with one parent as participant, or two-parent family with both parents as participants)"

Absolutely nothing about body composition. It's just weight and BMI. They don't determine body fat percentage, lean mass, water weight gain.

It's also amusing how all the points got sucked out of my post and went into yours. I assume people saw _"I'm also a doctor"_ and assumed that an argument from authority was valid. And you're not even an authority when it comes to sports medicine, which is the bulk of what I was referring to.

That's pretty disappointing, but I suppose the average reader of HN has even less knowledge about these things than you. Even so, your reply was obviously objecting spuriously and the rest was either repeating my points or stating the obvious. Very weak.

Being a bariatric _intern_ has no bearing on sports medicine; it's practically the opposite end of the scale. You're concerned with gross measures like BMI. Do you even care about a _kilo_ of difference on an obese subject? Yet for this study, with figures that small, body composition is the only way to figure out if it's relevant. A couple pounds of "weight" is meaningless.

</comment></comment></comment><comment><USER11> Calories in - Calories out = calories remaining How is that a riddle?

<comment><USER12> It is also completely irrelevant to the study at hand, as one of the conclusoins was that the right diet helps without counting calories.

</comment></comment><comment><USER13> I have trouble taking such studies seriously. I have a life-threatening medical condition which typically causes people to be underweight and I was quite thin as a child but put on a lot of weight as an adult (probably in part due to being prescribed steroids for my health issues). After finally getting an appropriate diagnosis late in life, I did some research and changed my diet to address my health issues. I have lost several dress sizes, even though that was not my goal. I was getting plenty of positive male attention when I was a size 24-26 and my doctor was telling me to work on my health issues and not worry about my weight (because people like me are typically underweight, which is more immediately life-threatening than being overweight), so I had no goal of losing weight. I was just trying to get healthier because I was so sick, on a lot of medication and miserable.

My experience tends to fly in the face of the pronouncements such studies make, so I just have a really hard time taking it seriously that you can come up with a generic suggestion for diet that will work equally well for 6 billion people.

<comment><USER3> I applaud you for staying strong throughout your struggle. However, your exception proves the rule: people who don't have a reason shouldn't be overweight. Or underweight.

Fight the good fight.

<comment><USER13> I don't see how it proves that at all. Presumably everyone who is overweight (or underweight) is so for a reason. Given how many people wish they weighed less and can't seem to make it happen, often in spite of dieting, exercising, etc, I think something more complicated is going on than these studies assume.

</comment></comment></comment><comment><USER14> Is this site full of fatties? Why does every diet article shoot to the top?

Gotta be careful if that's the case. Wouldn't want to catch the fat virus here or anything.

</comment><comment><USER15> Congratulations to these guys for finding out something people have known for decades.</comment>


Bruno Latour Tracks Down Gaia - <AUTHOR> https://lareviewofbooks.org/article/bruno-latour-tracks-down-gaia/#! <comment><USER3> Off topic, but I just learned about Actor-network theory, and his work, earlier tonight. I love frameworks or models that put their attention on the edges instead of the nodes. Interesting stuff to check out if you're interesting in graphs/networks.

[https://en.wikipedia.org/wiki/Actor%E2%80%93network_theory](https://en.wikipedia.org/wiki/Actor%E2%80%93network_theory)

<comment><USER4> Man, I had a lecture series on this (Cambridge undergrad geography). It seemed like complete bunk. The lecturer seemed to be arguing that inanimate objects were alive. The other students seemed convinced, though.

<comment><USER5> I also think it's bunk, but I think the alive-inanimate-objects thing is really just a symptom. It's not his idea - rather Spinoza's, and in Spinoza's hands, is fairly sensible. Lautour's work is a lot of stuff like that - <USER2> commonplace* philosophy ideas, said in the most controversial way possible, rebranded as his own.

*Commonplace philosophy ideas occupy a similar kind of remove to common-sense realism as set theory, so they tend to be the sort of things that sound kinda crazy until you dig in.

</comment></comment></comment><comment><USER6> While Lovelock himself distances himself from any interpretations of Gaia as either creationist (as in the Earth was "created" to be perfectly balanced) or that the Earth is literally alive (like the planet in the book/movie "Solaris"), it is clear that both interpretations are easy misconceptions for people to make, and are in part responsible for the popularity of the "Gaia Hypothesis" in popular culture.

The actual case it is just turns out that a set of lots of independently evolving organisms just happen to have emergent properties of stability as a system. That's interesting to a degree, but using a hypothesis of the Earth as a single organism is not the most helpful way to get that idea across.

</comment><comment><USER7> I have to recommend "Aramis, or the Love of Technology" by Bruno Latour. It's an account of the development of a failed personal mass transit system that's both brilliant and very beautiful.</comment>


Keep Google Reader - <AUTHOR> https://www.change.org/petitions/keep-google-reader-don-t-shutdown-google-reader

<comment><USER2> Don't remove one of the best RSS readers out there! Apps and ecosystems are built around this tool.

<comment><USER3> Exactly this. I don't want to lose the best part of Flipboard. Then I won't even open Flipboard probably and will consume news way less.

</comment></comment><comment><USER2> Don't remove it!</comment>


Haskell number system in one picture - <AUTHOR> http://www-bucephalus-org.blogspot.com/2009/09/haskell-number-system-in-one-picture.html <comment><USER2> This is not exactly chaotic, it seems pretty straightforward to me. Yes, there are a variety of numeric types, but the point of the "chaos" is that you can program with each with the same API. (A "sort" function works on any type that does "Ord".)

<comment><USER3> While the number setup never seemed too bad to me, I understand the math-types weren't too happy with the '98 Prelude, hence the numeric-prelude:

\- <http://www.haskell.org/haskellwiki/Numeric_Prelude> \- <http://hackage.haskell.org/package/numeric-prelude>

<comment><USER2> I don't think anyone is happy with the current Prelude :)

<comment><USER3> I am happy - out of ignorance!</comment></comment></comment></comment>


Finding the World's Economic Center of Gravity - <AUTHOR> http://nbviewer.ipython.org/github/djv/world_economic_center/blob/master/map.ipynb <comment><USER2> I wonder how the center of economic activity would compare to other measures. For instance:

\- Center of all landmass

\- Center of all arable land

\- Center of population

\- Center of population weighted by income

Especially if viewed over time, this would give a better sense of the meaning of this data.

</comment><comment><USER3> This is interesting because I was thinking about a somewhat related sort of statistical measure (trying to determine average times over repeated measurements of a wall clock) and happened upon this: [https://en.wikipedia.org/wiki/Mean_of_circular_quantities](https://en.wikipedia.org/wiki/Mean_of_circular_quantities)

I think this particular trend could benefit from some insights therein, they would help avoid the issue of hovering around the center of the 2d coordinate plane. If you use 3d coordinates on the sphere, your center of gravity will appear on the unit sphere and the radius can be used to determine how strongly it favors that particular area.

As an example of where this could add confusion, if you have a huge economy in the US and a huge economy in China, you basically are canceling out the values with the current axes, if you shifted them, it may change the plots dramatically with the purely 2d representation.

<comment><USER4> Interesting, do you have any ideas how to apply this to finding the average of multiple points on a sphere?

<comment><USER3> Maybe project the x/y coordinates onto a unit sphere, then find the center of mass in spherical coordinates, then convert those spherical coordinates to the relevant 2d coordinate system you're using, discarding the radius (but keeping it for the information it provides).

See also: [https://en.wikipedia.org/wiki/Directional_statistics](https://en.wikipedia.org/wiki/Directional_statistics)

<comment><USER5> That's exactly how it's done, for what it worth (though you use 3D cartesian coordinates instead of spherical coordinates).

Treat each point on the sphere as a 3D unit vector, weight as appropriate, and the center of mass is the sum of all of the vectors.

</comment></comment></comment></comment><comment><USER6> A lot of discussion about the "right" way to calculate a result, without discussing why.

My guess is something along the lines of an assumption that income is roughly equal to spending so you want "the" place on earth thats ideally suited to building your food processing plant or refrigerated warehouse to minimize total air shipping costs assuming everything will ship by air.

I'm not really sure what meaning this "center" has beyond that unless strange assumptions are made, like income is perfectly proportional to capital market size, or income is perfectly proportional to military power or something.

There is very fast alternative discrete rather than continuous method to calculate "a center" that scales very poorly as resolution increases (which doesn't matter because the input data is junk wrt sig figs and truth) which is just to make a giant mesh network of clusters of a discrete billion bucks at a certain lat/lon or whatever, then add an imaginary center that can move that optimizes itself to a minimum distance from all other existing points. You'll get into huge arguments about high enough res and metastability and rounding errors and local maxima/minima but you can ignore all that, given that as an engineering estimate the input data is junk, you just figure the total distance for each points at all whole degree intersections (88 W 43 N aka Chicago-ish, next 89 W 43 N, then 90 W 43 N ... ) so you figure 360*180 (actually more like 178 than 180, and a +2 for polar reasons) and then sort the 64000 or so results and pick the lowest.

Using the discrete method, if you figure there's 64K (16 bits) degree intersections on the globe and maybe 1024 (10 bits) or so clusters of a billion bucks, that is maybe 26 bits worth of distance calcs and additions, figure 3 bits per decimal digit for "less than 10 digits of operation" and we have multicore processors that run about that many ops per second (if you have the memory and IO bandwidth LOL, which you won't), that followed by a very modest sort, so this is quite tractable and has a resolution probably higher than the sig figs in the input data you're feeding it. No, it doesn't scale well to a higher resolution, and thats OK because the input data doesn't warrant it.

The whole topic smells of a really bad dotcom "brain twister" interview question for a CRUD app designer or CSS jockey. Back when that was how it was decided who was a good or bad one based on solving riddles and stuff.

</comment><comment><USER7> I guess this is somehow related, world population by latitude and longitude, which you can use to of course derive center.

[http://blog.andersen.im/2013/05/interactive-map-of-world- pop...](http://blog.andersen.im/2013/05/interactive-map-of-world-population- by-point-latitude-and-longitude/)

</comment><comment><USER8> It seems surprising that by the outbreak of WW1, the economic centre of gravity was hovering to the west of Greece. In other words, all of the European imperial powers scrambling over Africa and the New World still produced less combined output than Asia, Oceania, the Middle East and eastern parts of Europe and Africa.

<comment><USER9> Yeah I found that curious too

</comment></comment><comment><USER10> The problem with this chart is that it's heavily biasing the "center of economic activity" towards the center of the Map. The reason it's constantly above Europe is that Europe is pictured between Asia and America.

If you center the Map over America you'll see the center of economic activity being America. If you center it over Asia, it'll be Asia.

Therefore this map does not contain much more information than "Greenwich lies in the middle".

<comment><USER11> I'd try to resolve this by displaying the center of gravity in 3 dimensions. Then I could project each point to the surface if I wanted.

<comment><USER12> This was the Economist's original method.

From the article:

"There was one thing which bothered me, and I hope it bothers you too, the points from the 20th century are all positioned in or above Scandinavia which seems unlikely to be the center of anything in the world. You can find the reason for that in the caption on the McKinsey webpage. Their report looks at the Earth as a sphere and finds the economic center of gravity which falls somewhere inside the sphere. To plot it on the map, they take a radius through the center of gravity and intersect it with the surface."

<comment><USER11> That's fair, but looking at the earth as anything but a sphere is unlikely to produce more useful results. One possibility is that a center-of-gravity of wealth just isn't all that useful a measure of economic history: A major historical shift could end up being represented by a dot budging a few hundred miles in the middle of nowhere.</comment></comment></comment></comment>


Opaline – NextJS for CLI Tools - <AUTHOR> https://github.com/d4rkr00t/opaline <comment><USER2> The punchline seems very ambiguous, at least for me. NextJS is most widely known for serverside rendering and prerendering React sites. How that maps over to CLI tools, I'm not sure.

<comment><USER3> Looks like the primary similarity is that to get started with Opaline you simply put some (specifically organized) files into /commands like you would do for NextJS with /pages

</comment></comment><comment><USER3> Looks like a fabulous idea to abstract away the boilerplate parts of building a cli tool. Looking forward to use it in a side project soon.

</comment><comment><USER4> What's that terminal status bar you've got at the bottom of the screenshots?

<comment><USER5> I think it's provided by iTerm: [https://www.iterm2.com/documentation-status- bar.html](https://www.iterm2.com/documentation-status-bar.html)</comment></comment>


Tumblr is invisible to the news, as these charts show. Why?  - <AUTHOR> http://danlewis.tumblr.com/post/21343217346/the-news-is-behind-the-times-look-at-the-bottom

<comment><USER2> Twitter and Pinterest are new forms. Tumblr (what with reblogging and such) could be something new or it could just be yet another blogging service.</comment>


Usefulness of Ivermectin in Covid-19 Illness - <AUTHOR> https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3580524 <comment><USER2> I wish this got upvoted, it is very interesting.</comment>


Easy-To-use, FPGA-Accelerated Hardware Simulation of RISC-V Systems in the Cloud - <AUTHOR> https://fires.im/ <comment><USER2> that sentence means something to those who would want to use this service.

ELI5 what would one accomplish with this.

<comment><USER3> Cycle-accurate simulation as a software development vehicle while you wait for the real hardware to become available. Get your software debugged now and you will be good to go when the real chips land.

<comment><USER4> I think cycle-accurate simulation is critical for developing a RISC-V chip and/or toolchain -- being able to get real feedback from benchmarks, etc.

For functionality testing (to port your software to RISC-V) you probably don't care quite as much about the cycle accurate simulation. An inaccurate simulator would probably just behave the way that a target with a much faster or slower clock speed would behave.

<comment><USER3> Sure. First step is "make it work". A functional simulator is sufficient for that. If you are working on a compiler back-end, then the ability to see actual pipeline stalls, to run benchmarks, to investigate the impact of various text and data section layouts on cache performance, then a more accurate simulator is useful. Or if you are working on time critical features of the OS, like a context swap, then you definitely benefit from the ability to do a cycle-accurate instruction trace.

What the cycle-accurate simulator buys in end is schedule acceleration for when a mature RISC-V software stack lands. So from an overall RISC-V program- management perspective, this is smart thing. Granted, the audience is small, but the resulting leverage is huge.

Imagine being the PR person having to respond to press that says: "I tried this basic thing on your new chip and it is slow." and having to say: "Just wait until we turn on the optimizer in the C compiler! It will be 35% faster!". Reporter: "Yeah, whatevs." This simulator is all about product launch readiness.

</comment></comment></comment></comment><comment><USER5> "Easy-to-use" and "Cloud" sounds like a salespitch to me. Not interested.

<comment> Ar-Curunir Maybe you aren't the intended audience? Did you even read the article? It's clearly pitched towards researchers and people testing their software on RISC-V

</comment></comment><comment><USER6> If it can't run locally, I don't want it.

<comment><USER7> Perhaps QEMU will suffice for you in that case? Just a suggestion :) [https://wiki.qemu.org/Documentation/Platforms/RISCV](https://wiki.qemu.org/Documentation/Platforms/RISCV)</comment></comment>


Show HN: Lottery – Can you beat the odds? - <AUTHOR> http://pizzascripters.com/lottery/game/ <comment><USER2> 290,000,000 possible combinations at $2 a combination. That's $580,000,000 total. You make $650,000,000 after tax if you win. You're positive of about 70k. You have to be the only winner though :)

</comment><comment><AUTHOR> My 13 YO son made this. The current Powerball jackpot got his attention and he wanted to simulate just how hard it is to hit 1 in 290,000,000.

<comment><USER3> It's pretty funny. So if I understand correctly, in the first stage 7 out of 8 squares are red? Edit: I played it a bit more and I think I understand the first stage, but I haven't made it past it yet. If all 7 stages were identical, then you'd need a 1/16 chance of winning each stage to make the odds come out correctly. So I'm guessing the stages get progressively harder.

<comment><AUTHOR> The stages do get progressively harder. Stage 2 is 1 in 10 and I think stage 7 is 1 in 36.

<comment><USER4> Yes ... stages variable : [8, 10, 12, 15, 20, 28, 36]

</comment></comment></comment></comment><comment><USER5> Needs to be faster to keep my attention</comment>