Ask HN: Will you support XP when developing new software? - <AUTHOR>

Now that XP has end of life, is it worth considering building software which will run on Windows XP if there's extra development overhead? Anybody care to share their web stats on XP visitors based on regions around the world? <comment><USER2> All stats for last 6 months:

BCC (very non-technical, international audience with strong Anglosphere focus): XP has 18% of Windows' 65% share. They index lower for actual purchases, but by quick eyeball it is 10% or so of revenue.

AR ("less technical" audience, overwhelmingly US/Canada): XP has 11% of Windows' 60% share. I am unable to quickly calculate their percentage of revenue, but know off the top of my head that my two largest accounts have hard requirements for XP.

This means that I'll probably continue supporting XP for those products, although given that 10% of BCC revenue isn't all that much I won't exactly tie myself in knots to do so.

By comparison, my blog (highly technical audience): XP has 6.5% of Windows' 40% share. That's below the noise floor to me. I don't track conversions on the blog (if I did, they'd be to email signups) but my sense of things is that if I 500ed everybody in that segment I'd be unable to detect any change in my business as a result.

<comment><USER3> Patrick, I think you mentioned once, but could you please share an updated info regrading BCC Web app vs desktop version share percentages?

<comment><USER2> If you believe Google Analytics, we've had 14 trial downloads and 152 people use the in-app check for updates functionality in the last 6 months. (You can likely assume that the majority of those 152 people are customers who have been using the downloadable version for years.) These numbers are low for many reasons, most prominently the fact that we attempt to hide the trial download and get people into the web app, partly because it is almost universally a superior experience and partly because on a per user basis it generates far less than 10% as many support issues as the downloadable version.

By comparison, the web app has added 25k users over the same interval.

So, percentage-wise, more than 99% of new users use the web app exclusively.

</comment></comment></comment><comment><USER4> Wow, that's such a foreign idea to me that XP has died. I still remember my days of developing Windows applications, writing hacks for video games.

I don't develop for Windows anymore, but if I had to wager a guess, I'd predict that it'll be like the older IE versions: officially dead, but persistently popular, and grudgingly supported.

</comment><comment><USER5> Yes, a significant number of our users still use Windows XP and building things to XP compatibility increases the chances of running under Wine for the 0.5% or so of our users who want to run linux.

</comment><comment><USER6> I'm inclined not to, but it depends on the market. Point of sales? Medical equipment? ATM banking? You'd damn well support XP.</comment>


Synopsys bought security scanner Brakeman and removed its open source license - <AUTHOR> https://github.com/presidentbeef/brakeman/pull/1238#issuecomment-401448976 <comment><AUTHOR> It was formerly under an MIT license and Synopsys bought them and changed it to CC-NC-BY, meaning only allowed for non-commercial usage, and so explicitly not an open source license. Also note that Creative Commons recommends against using their licenses for code: [https://creativecommons.org/faq/#can-i-apply- a-creative-comm...](https://creativecommons.org/faq/#can-i-apply-a-creative- commons-license-to-software)

Brakeman is an extremely capable and important security scanner for Ruby on Rails.

</comment><comment><USER2> I was surprised by this license change. I'm thinking about establishing a fork that's open source software (OSS). It would almost certainly need to change its name, since I imagine Synopsys has trademarks on the original name.</comment>


Universal Basic Income Is Silicon Valley's Latest Scam - <AUTHOR> https://medium.com/s/powertrip/universal-basic-income-is-silicon-valleys-latest-scam-fd3e130b69a0 <comment><USER3> Paranoid, cynical garbage. Silicon Valley also produces affordable, reliable, high resolution ultrasound diagnostic devices that save many lives with noninvasive procedures, but it is more gripping to talk about taxis.

The biggest problem with inequality is the floor and that is a problem UBI robustly addresses. Once people are off the floor they have many options and are not forced into the gig economy or any other specific option.

<comment><USER4> Care to compare market caps of those ultrasound manufacturers with that of Uber?

<comment><USER5> Care to compare the global market size of transportation versus specialized medical devices?

Yours is a bad faith comparison unless you do this.

</comment></comment></comment><comment><USER6> In the article:

\</comment><comment></comment><comment></comment><comment>-

Had Andrew Jackson not overturned the original reconstruction proposal for freed slaves to be given 40 acres and a mule as reparation, instead of simply allowing them to earn wage labor on former slaveowners' lands, we might be looking at a vastly less divided America today.

\</comment><comment></comment><comment></comment><comment>----

Andrew Jackson was long dead. It was Andrew Johnson who rejected 40 acres and a mule. I guess those Tennessee presidents all sound alike.

<comment> murph-almighty That may have been edited, as I read "Johnson".

</comment></comment><comment><USER7> This article seems to make the argument:

Premise 1: There's this big problem of inequality

Premise 2: UBI is not a perfect solution for solving this inequality

 _Therefore, probably,_

Conclusion: We should reject this solution

This is called Nirvana fallacy [0], also known as the perfect solution fallacy. For example: "Seat belts are a bad idea. People are still going to die in car crashes."

[0]: [https://www.wikiwand.com/en/Nirvana_fallacy](https://www.wikiwand.com/en/Nirvana_fallacy)

</comment><comment><USER8> He's not wrong.

But UBI isn't a SV invention, far from it. Applied to SV, it does serve to continue concentrating the wealth. There was an interesting author on KQED forum a day or 2 ago who wrote a book about our betters keeping us down in just this way. I found that guy a bit ridiculous but again, not wrong.

<comment><USER9> I think the core lesson of this article isn't whether the author's right or I'm right (below), but rather that a lack of rigor and specificity should set off alarm bells in our head and evoke the questions "how does he know that?" and "what does that really mean?"

About the subject matter:

My understanding is that, in general, software's winner-take-all economics has joined forces with globalization, robotics, and machine learning to usher in a historically unprecedented era of extremely high competitive pressure. As a result, a growing population of tens of millions of Americans aren't that competitive in the economy, which is Really Bad.

The author says UBI "showers the cash down on the people so they can continue to spend. As a result, more and more capital accumulates at the top. And with that capital comes more power to dictate the terms governing human existence. Meanwhile, UBI also obviates the need for people to consider true alternatives to living lives as passive consumers."

To me, this is not a rigorous or convincing argument that UBI will exacerbate the challenges of our modern economy. Or that UBI will have the effects he claims. Or that those effects are well-defined and make sense at all.

</comment></comment><comment><USER10>
      When people eventually become too poor to
      continue working as drivers or paying for
      rides, UBI supplies the required cash infusion
      for the business to keep operating.

So, that's the big problem? It's just some calculated ploy to subsidize small time freelancers within a side hustle economy?

The rest of the article is simply philosophical grandstanding about how UBI is really a figurative IV drip in the ICU being a secret plot by hospitals in order to keep people as patients forever.

I don't implicitly trust governments or corporations. The concept of an aggressive company like Uber, an organization that analyzed greyballing their data to subvert lawful behavior, is certainly one to operate their users exploitatively.

But, a supplemental pay check that means the difference between not eating plus getting evicted, contrasted against just hanging out and safely waiting for business to pick up again, in between seasonal dry spells, available to anyone, especially those who normally operate odd jobs as a career, this isn't some sinister trojan horse to lock people into a no-options future of scooter charging.

When people are facing eviction and starvation, and the very cold reality of getting locked into living on the streets, homeless, there are bigger problems at large, and worth fixing.

Universal Basic Income can change the world, but it's not a siren song assuredly leading to total powerlessness. It can't protect people from their own bad decisions. It is probable that both sides might employ behaviors that take advantage and game the system. But that doesn't mean this won't do a lot of good, and solve real problems for a lot of people who need the help.

</comment><comment><USER11> Given that the author is directing their outrage at public companies (Uber, FB, Amazon), what's to stop UBI recipients from buying shares of those companies to effect the same thing? Employees (though not contractors) already get equity as well. If control is the issue, then something akin to Elizabeth Warren's plan of an employee-representative board member is an equally useful tool, and a much less heavy-handed one.

<comment><USER12> > what's to stop UBI recipients from buying shares of those companies to > effect the same thing?

I guess they could, but even at best that would still only slightly mitigate the effects of the increasing inequality. Since stocks are a way of making money with money [1], what you could buy with UBI (or, more realistically, the much much smaller slice that's left after living expenses [2]) is obviously much less than what someone with either more to invest or directly benefiting from the company is getting.

[1] That is, for the purposes of this argument. Sure they're also a way of funding new endeavors etc.

[2] And that slice of dispensable income is also, generally speaking, much smaller for those with low income than those with high income, both absolutely and relatively.

</comment></comment><comment><USER13> > their loyal vassals, the software developers

And there it is - the fashionable people striking back against the geeks who were supposed to grow up and lead lonely, miserable, solitary existences but who have inexplicably found themselves in positions of relative importance. And the popular "in crowd" will do whatever they can to keep that from continuing.

</comment><comment><USER14> > Think of it: The government prints more money or perhaps — god forbid — it > taxes some corporate profits, then it showers the cash down on the people so > they can continue to spend. As a result, more and more capital accumulates > at the top.

This sounds like a non sequitur. How does UBI lead to capital accumulating at the top? Couldn't it reasonably accumulate to whichever company creates the most value efficiently? Isn't that one of the features of capitalism?

If the issue is monopolistic behaviors of companies, this is what the author should be attacking.

<comment><USER15> > How does UBI lead to capital accumulating at the top?

It all depends on how you _fund_ the UBI from different households (and their holding-companies, trusts, offshore bank accounts, etc.) versus how well each of those groups can recapture it from the economic engine.

There are probably scenarios where the UBI could be used to cause a net- benefit to the top 1%, based on net-losses among the 90-99th percentiles. That the bottom 90% see a minor benefit would just a side-effect.

<comment><USER16> The current debt-based economy is already encouraging concentration of dollars at the top already.

</comment></comment></comment><comment><USER17> UBI : Corporations sign up middle class to pay the poor?

</comment><comment><USER18> UBI sounds great, I even caught myself thinking how good it'd be, I'd only need a small amount saved and I can take a year out and focus on personal projects, which would be amazing, and then I thought I'm not special, lots of other people probably have the same idea, and if enough people act on it in UBI will fail horribly, which is why I don't think it'll work, but I guess we'll see.

</comment><comment><USER19> We don't need UBI, out of all the basic needs, we need affordable housing. Clothes and Food are easy to come by.

</comment><comment><USER20> People waiting for UBI can get in the same line as the people waiting for the singularity.

<comment><USER21> Except UBI is something we can actually implement if we want to do so.

<comment><USER22> Could you please be more specific? So far I haven't seen a proposal that solves price inflation and reliable money source is very unclear as well - it'd be great if you could clarify.

<comment><USER23> There is no reason why you can't implement UBI today, using the exact same money you're spending right now in direct money transfers from social security.

I did the math using ocde and national statistics institute data for my country (portugal), this was a couple of years ago, so I used 2014 data. I calculated that using only the existing expenses in Pensions, unemployment benefits, social insertion benefits, etc... you could sustain a UBI between 300 and 380 euros per month, enough to survive in a small town while sharing a flat. This might seem bad, but the only people who would receive less money compared to the existing distribution would be the 20% of the population with highest income, every one else would benefit from the change in distribution, even if you were to have no other benefit from less bureaucracy, etc...

<comment><USER22> What about people that need more from the social system due to their illnesses, disabilities, being veterans, etc? What about families - <USER2> pay (that is per child on top of other benefits)? And yeah, Portugal... what about the United States, a place with the most homeless people? What about Africa? South-east Asia?

How do you motivate people to contribute to the social system when they know they will get a flat, low rate they're getting anyways? What motivates a high income individual (the group that pays it all) to not move away?

There are a few places where it might be possible. _Very few rich places._ Saying that we could have UBI today implies it'd work around the world, at least in first world countries - especially in a thread about USA. This is like saying that the whole world can speak Czech because 10 million czechs do.

How do you solve the problem that if someone gets free money monthly, their work has to be worth enough so it is worthwhile to work, even if it is part time, and thus their products are more expensive, including basic necessities, and negating almost all effect of UBI? Are you aware that this would push prices of food and housing way above what it costs today, relatively speaking? This problem would be solved with automation but we're not even near there and yet you're saying that we could do it today, how?

How do you solve immigration that would necessarily happen and increase costs? Would you quit the EU?

Also consider that there might be much better (more cost effective and easier done) solutions to the problem of homelessness that do not demotivate anyone.

<comment><USER23> Ok this is a lot to go through so let me take it step by step.

In regards to whether or not it works in the US, or other countries that is something i didnt calculate and quite frankly don't really care about. My goal when checking the data was simply to see if it was both feasible and beneficial in my own country (portugal), so I didn't bother to check the data for other countries.

That being said the primary reason why it is so readily and clearly a better system than the existent is that there is a very large discrepancy between the high income and low and medium income in terms of how many cash benefits they get. For reference, in Portugal around 46% of all cash benefits expenses go to the 20% of the population with the highest income, the next quintile (the 20% poorest) receives only 18%. This, if I recall correctly, is not the case in the US, there the distribution is not so eschewed and so the social benefits to simply changing the distribution is not nearly as convincing.

Now in regards to special cases that you mentioned, then indeed, there will definitely be some amount of people who will be harmed by the change, however we do have universal healthcare and it is quite good, so those people will always be a small minority. There is definitely something to research there, and we should definitely quantify just how many people will be affected, however we cannot justify harming 80% of the population just because we might harm a handful of outliers, that is in my view socially irresponsible.

As for the motivation issue you mentioned, the fact of the matter is that the existing system already has those same issues, the only difference is a matter of intensity, which can be measured and the tax rates and expenditures adjusted accordingly.

In regards to the matters of inflation, I don't see how any meaningful inflation can occur, for the simple fact that all my calculations assumed the exact same amount of spending as it currently exists. Yes, some specific parts of the economy (particularly in low cost housing/food) might see some inflation, due to the fact that people now have a roof over their head/food to eat, but the amount of homeless in portugal as is, is quite low, and there is no famine, so I cannot imagine that there will be significant changes in total consumption.

As for motivation, it seems to me that not having a welfare cliff would go a long way to reducing unemployment (around 8% today, and around 16% at around the time I researched )

</comment></comment></comment></comment></comment></comment><comment><USER24> Means change, but the ends remain the same.

</comment><comment><USER25> The big thing UBI can do is help people whom want and desire to get out of suffering and miserable circumstances to higher level of productivity, lifestyle and tax generation. It's a no-brainer. Otherwise, pitchforks will be coming for the 1%. [https://youtu.be/q2gO4DKVpa8](https://youtu.be/q2gO4DKVpa8)

</comment><comment><USER26> Wealth redistribution never works. Universal Basic Income is just another idealistic idea that will never work in the real world.

The actual solution is wealth creation. And you can only get wealth creation through de-regulations, lowering the taxes, bringing jobs back and companies back into the United States, better education, and skill training programs, etc.</comment>


3 Steps To Get What You Want - <AUTHOR> http://www.lifehack.org/articles/productivity/three-basic-steps-to-get-your-desire-with-the-least-effort.html

<comment><USER2> I like the way this guys describes the technique of visualization. Some people have taken the idea of "visualizing" a goal and have forwarded the claim that the visualization will CAUSE the world to bend to your will.

The author displays the missing piece of the puzzle when he says that visualization will make you more AWARE so as to take advantage of opportunities that will lead to your goal.

good article.

</comment><comment><USER3> For the impatient, here are the steps:

1\. Know exactly what you want.

2\. Always follow a straight line.

3\. Sharpen your saw

<comment><USER4> Ironically, this also sounds like three steps to become a serial killer...

<comment><USER5> Ack! Now I have the infomercial playing in my mind!

"Dr. Hannibal Lecter Presents: Getting Things Dead"</comment></comment></comment>


Experiences of Using PHP in Large Websites - <AUTHOR> http://www.ukuug.org/events/linux2002/papers/html/php/index.html

<comment><AUTHOR> Oldie but goodie. Excellent non-biased paper on using PHP for large sites. Please share your thoughts and experiences.</comment>


Show HN: Research Questionnaire – Human Perception of Information Security - <AUTHOR> https://hugomartins.io/human-perception-infosec/ <comment><AUTHOR> Hello,

I'm not sure if this is the correct way of doing a Show HN but I'm going to give it a try.

I'm running a questionnaire for my Msc Thesis titled "Human Perception of Information Security for Educational Certificates" and I think folks over HN would be a good crowd to try it out, if they have time on their hands.

I've tried to make the questionnaire to take less than 10 minutes but I've heard feedback that it has been taking between 15-20 minutes.

The more results I can gather the best the data analysis would be so any help would be truly appreciated.

Thank you.</comment>


Posiship – positive relationships – tracing API as a service - <AUTHOR> https://devpost.com/software/posiship-positive-relationships <comment><AUTHOR> The goal of this is to spark discussion about everyone creating their own app at the moment. I want to explore the idea of existing applications enabling such a feature (opt in of course).

</comment><comment><USER2> Thanks Dude!

<comment><AUTHOR> The project started out a bit more ambitious (creating yet another tracing app), I guess it was good that from the 20 people who wanted to contribute only 2 were left actually doing work, so we had to make it as simple as possible. I hope others will create SDK's so other devs can easily integrate it into their apps.</comment></comment>


Show HN: Run crons with lambda for longer than 5 minutes - <AUTHOR> https://github.com/turnerlabs/terraform-scheduled-batch-job <comment><USER2> Wow.

May I put this into my Terrible Ideas in Lambda talk as a non-terrible idea?

<comment><AUTHOR> @QuinnyPig just to clarify. You think most lambda ideas are bad, but not this one?

<comment><USER2> Sorry-- context matters.

I think this is a fun workaround for some of Lambda's limitations. The Terrible Ideas themselves are far more blatant than that.

<comment><AUTHOR> sure yeah please go ahead and use it and thanks for the feedback.</comment></comment></comment></comment>


A major iOS/OS X vulnerability comparable to Android Stagefright - <AUTHOR> http://www.forbes.com/sites/thomasbrewster/2016/07/19/apple-iphone-ios-9-vulnerabilities-like-stagefright/#6695b1f33947 <comment><USER2> If you're allergic to Forbes, I wrote a short summary on my company blog: [https://thisdata.com/blog/bug-in-apple-products-allows- passw...](https://thisdata.com/blog/bug-in-apple-products-allows-password- stealing-update-now/)

Tyler Bohan's original disclosure writeup (with some technial details) is here: [http://www.talosintelligence.com/reports/TALOS-2016-0171/](http://www.talosintelligence.com/reports/TALOS-2016-0171/)

<comment><USER3> Thanks, yes an invalid certificate then a paywall / adwall tends to put me off.

<comment> w-ll Cert wasn't invalid for me, just adbolock-blockers.

</comment></comment></comment><comment><USER4> Just for context: almost every update fixes multiple code execution vulnerabilities in WebKit, and browsers are usually much easier and more reliable to exploit than most things due to the JavaScript VM. This bug is arguably more scary than those because it only requires the ability to send someone an image, not an HTML page, but then again, it's not generally hard to get someone to click on your link (think fake URL shortener), and while perhaps this bug is powerful enough to be exploited reliably (100% success/non-crash rate across all unpatched Apple OSes that might receive the message), if it isn't, that would make it considerably less stealthy in practice. (On a webpage you can see the target device and version before even starting the attack.) I don't think it's really worth freaking out much over, unless you're new to the realization that most modern Internet-connected devices are hellishly insecure. :) Though of course you should patch as soon as possible; critically, unlike with Stagefright, all modern iOS devices can, and will be prompted to, install the update.

<comment><USER5> > This bug is arguably more scary than those because it only requires the > ability to send someone an image...

I remember one of the jailbreaks was loading a PNG way back when. This happened before.

<comment><USER6> FYI, the guy you're replying to jailbroke iOS in 2007 by exploiting a flaw in Safari's TIFF parser: [https://en.wikipedia.org/wiki/JailbreakMe](https://en.wikipedia.org/wiki/JailbreakMe)

<comment><USER7> Don't you just love HN?

</comment></comment></comment></comment><comment><USER3> FYI, the major part of this is actually a vulnerability in the upstream libxml2 library which is an XML C parser maintained by the GNOME project.

The library itself is widely used across various operating systems and software so this is a reminder to please make sure you keep both your OS and your applications up to date. [http://xmlsoft.org](http://xmlsoft.org)

<comment><USER8> Honestly not surprising that the problem came from the gnome project.

<comment><USER9> Why?

</comment></comment></comment><comment><USER10> Getting so annoyed by forbes.com welcome message. I don't understand why they stick to it.

<comment><USER11> This.

Plus "prise" not "prize". I see an increasing number of articles where the writers appear to just use what they think is right. Just yesterday, "tow the line". _facepalm_

<comment><USER12> OED lists "prize" as common US spelling. [0]

[0] [http://www.oed.com/view/Entry/151652?rskey=W7yb3q&result=6#e...](http://www.oed.com/view/Entry/151652?rskey=W7yb3q&result=6#eid)

<comment><USER13> Maybe it's just me, but I think "pry" is much more common to Americans.

<comment><USER14> You are correct. Prize is a word in American English, but not one that makes sense in context.

</comment></comment></comment></comment></comment><comment><USER15> From the article:

> The bugs uncovered by Bohan work across all widely-used Apple operating > systems, however, including Mac OS X, tvOS and watchOS. Indeed, Bohan noted > that Mac OS X doesn't have sandboxing, giving an attacker remote access to > the PC with the victim's passwords. That potentially makes it a more severe > threat to owners of Apple's PCs, as a simple email could prize Macs open.

Sounds like it could be pretty bad.

<comment><USER16> Doesn't _have_ sandboxing? It may not be used much, but there is [https://developer.apple.com/library/mac/documentation/Securi...](https://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/AboutAppSandbox/AboutAppSandbox.html), and Safari uses it, for example to Mail.app, FaceTime, quicklook plug-ins, sandbox its PDF parser and (if still present) Flash player ([http://www.apple.com/osx/what-is/security/](http://www.apple.com/osx/what- is/security/))

<comment><USER15> Yep. The main reason I thought this was worth mentioning though was the original title of the article singled out iOS :)

</comment></comment></comment><comment><USER17> Why is iOS storing wifi passwords in the iMessage process? (Somebody please translate the article from Forbes to reality for me.)

<comment><USER18> If you go down to the bottom of the article they actually provide the link to the Apple Update page[1]. The actual vulnerability report page [2]. They also have a zeroday report for LibTiff so I guess they found something similar in the library.

[1]: [https://support.apple.com/en-us/HT206902](https://support.apple.com/en- us/HT206902) [2]: [http://www.talosintelligence.com/reports/TALOS-2016-0171/](http://www.talosintelligence.com/reports/TALOS-2016-0171/)

<comment><USER17> There's the links I was looking for. "Investigating further we see RAX is pointing to the very end of a heap block yet there is still a lot of data to be written as RDX (counter) is still 0xFE." Why can't Forbes write in such plain English?

</comment></comment></comment><comment><USER19> Anyone know if the patch has been applied to iOS 10 developer previews?

<comment><USER20> The latest iOS 9 and 10 builds appear to be patched.

<comment><USER19> Thanks!</comment></comment></comment>


Performance comparison of Go, C++ and Java for biological sequencing tool [pdf] - <AUTHOR> https://www.biorxiv.org/content/biorxiv/early/2019/02/22/558056.full.pdf <comment><USER2> I can't judge the science behind what's going on.

I'm surprised to see the run-time performance (gc aside) between the three languages as being so similar. I expected faster from C++, though that might just be because my experience with C++ vs. Java is out of date.

I would like to have seen mention of profiling to show where the hotspot(s) are, if there are such, in the different implementations.

Nevertheless, the substitution of different allocation methods (Table 1 shows 17 minutes run-time for the default C++ allocator and 10.4 minutes for jemalloc) shows that memory allocation is an important issue.

I do have a peeve to raise:

> Go needs on average 7 mins 56.152 secs with a standard deviation of 8.571 > secs ...

A standard deviation of 8.6 seconds means the precision of "7 mins 56.152 secs" is meaningless.

<comment><USER3> See reddit discussion

[https://www.reddit.com/r/programming/comments/avsfc6/perform...](https://www.reddit.com/r/programming/comments/avsfc6/performance_comparison_of_go_c_and_java_for/ehhrwrz/)

</comment></comment><comment><USER3> Previously on HN

[https://news.ycombinator.com/item?id=19272011](https://news.ycombinator.com/item?id=19272011)</comment>


The elements of journalism - <AUTHOR> https://www.americanpressinstitute.org/journalism-essentials/what-is-journalism/elements-journalism/ <comment><USER2> Nice list. Is any mainstream outlet actually following this any more? I guess maybe the economist.</comment>


We Need a New YouTube - <AUTHOR> https://www.youtube.com/watch?v=fDqBeXJ8Zx8 <comment> 1-6 I'm browsing on a Kindle. Can anyone summarize for this non-video reader? I'll try reading the auto-generated speech-to-text.</comment>


LXD 2.0: Introduction to LXD - <AUTHOR> https://www.stgraber.org/2016/03/11/lxd-2-0-introduction-to-lxd-112/ <comment><USER2> > That is, a LXD container runs a full Linux system, exactly as it would be > when run on metal or in a VM.

This is what makes LXD so nice. It's the power and flexibility of a VM with the speed, api, and runability of containers.

I always hated that docker forced you to treat a container as a single process and spoke about it as if it's a virtue. Let me decide how many or little processes I want running in a container. Even google runs ssh server alongside their applications.

With LXD you can easily port entire services over to containers without completely rewriting the way they behave.

<comment><USER3> > I always hated that docker forced you to treat a container as a single > process and spoke about it as if it's a virtue. Let me decide how many or > little processes I want running in a container.

You can have as many processes as you like running inside a Docker container, you just a need a single process to "boot" them, even if it's a simple shell script.

<comment><USER4> The big difference is that LXD can run, in an unprivileged fashion, a systemd based distro without issue, and with a sensible view of /proc.

Docker can't currently do that, largely because running a distro in a container isn't an important goal for them.

<comment><USER5> Docker can run systemd in unprivileged container: [https://github.com/vlisivka/docker-centos7-systemd- unpriv](https://github.com/vlisivka/docker-centos7-systemd-unpriv)

PS.

Try it:

        docker run -dt --stop-signal=$(kill -l RTMIN+3) -v /sys/fs/cgroup:/sys/fs/cgroup:ro --name centos7_systemd vlisivka/docker-centos7-systemd-unpriv

<comment><USER4> My impression is that someone created a specific dockerfile to get around the issues. I'm noting that LXD can run, for example, stock debian.

<comment><USER6> This appears to be a fairly complex subject. See [https://news.ycombinator.com/item?id=11216950](https://news.ycombinator.com/item?id=11216950) and the original LWN article that it depends from.

</comment></comment></comment></comment></comment></comment><comment> nevi-me Congratulations on 2.0! I tried out LXD a few months ago after hitting a few walls with Vagrant, and I've been happy since.

Mark Shuttleworth's normally responsive on Google+, and he helped point me in the right direction with initial issues that I encountered. Stéphane and the team have also been helpful on Github with issues.

The first thing I struggled with in this containers business was "what's the difference between LXC/LXD and Docker et. al.?", and I am glad that he addressed it first in the post.

I've got north of 20 containers on our machines, and LXD allows me to create a container, play around with software config on it, and when I get it right; I just leave that container and update it regularly like the host it's on.

<comment><USER7> You can also use LXC as Vagrant backend to get away from the crashy and buggy VirtualBox kernel driver. Though ~all the Vagrant images you find online are tied to VirtualBox.

<comment><USER8> Yeah, it can be a pain to get images.

That said, my workflow for testing anything these days is inside a vagrant lxc box. it is well worth the lack of images for the improved workflow.

</comment></comment></comment><comment><USER9> This looks really nice.

I build out major productions systems on top of LXC at Heroku, and to this day it is still working incredibly well.

So I am really looking forward to further iterations of the tools by Stéphane Graber and co at Canonical.

The main thing that jumps out at me is a REST API for this layer. A REST API with Golang bindings to run containers feels so much better than old-school systems programming with exec.

I'm currently all in on Docker in production for this very reason. Coordinating stuff with a golang client over HTTP is really really productive.

</comment><comment><USER10> If I need to run Linux software, I can use an lx-branded zone inside of SmartOS, and run at the speed of bare metal while having ZFS, mdb, kdb, dbx and DTrace, CPU-bursting, and change kernel schedulers on the fly.

But then, as I am about to run Linux software inside of an lx-branded zone on SmartOS, I realize that SmartOS has 15,000 packages, with most the of the software I would have run on Linux, available natively on SmartOS:

[http://www.perkin.org.uk/posts/building-packages-at- scale.ht...](http://www.perkin.org.uk/posts/building-packages-at-scale.html)

...so then, which operational advantages would LX containers on Linux offer me, that I already do not have on SmartOS with zones?

<comment><USER11> You can think of it as competition. Other people can think of it as something that they can make people who are already familiar with systems that use the Linux kernel.

<comment><USER10> SmartOS is paranoid about correctness of operation and data integrity; Linux and LXC containers are a poor competition in that area, when the OS comes with memory overcommit turned on by default, and default filesystems do not include data write guarantees nor block checksums...

</comment></comment></comment><comment><USER12>
      What's LXD?

      At its simplest, LXD is a daemon which provides a REST API
      to drive LXC >containers.

Thanks, that clears it right up.

<comment><USER13> Not sure if you're being sarcastic or not?

<comment><USER9> No sarcasm. This is a simple explanation of where LXD fits into the stack.

If you don't know what LXC is maybe this isn't clear. But LXC stands for LinuX Containers, and is extremely fundamental technology in the containerization space.

<comment><USER13> (You should possibly have replied to the post above me)

> LXC stands for LinuX Containers, and is extremely fundamental technology in > the containerization space.

Not exactly.

LXC was amoung the first pieces of software to take advantage of namespaces when they were added to the kernel; but LXC is _not_ often used. Most of the various containerisation software now available does not use LXC, and it not based on the same codebase.

</comment></comment></comment></comment><comment><USER14> I like almost everything about LXD, except the attitude towards networking. The project has rejected simple solutions such as port forwarding, saying that managing the network shouldn't be LXD's job. Instead, they'd like the user to manually configure their own bridges or routes or iptables chains.

I can kinda understand their point of view, there's no simple solution that will please everyone. But most developers or IT folks aren't networking experts, and LXD won't be an intuitive tool for them without a simpler mode of operation.

<comment><USER15> > [...] most developers or IT folks aren't networking experts, and LXD won't > be an intuitive tool for them without a simpler mode of operation.

Really, no _expertise_ is required. Just basic understanding how the heck the network works. If somebody can't grasp what bridge interface is or how NAT operates, he apparently doesn't have the qualifications for writing software.

<comment><USER16> Then I guess most of the developers I've worked with should brush up their sandwich-making skills and quit their jobs.

<comment><USER15> You do realize that this is not to their credit, right?

</comment></comment></comment></comment><comment><USER17> It simultaneously irks me and pleases me that the first result on DuckDuckGo for "lxd" is the Legion of Extraordinary Dancers.

(Google gets it right, presumably because of all my code searches.)

"[...] a 2010–2011 web series about two groups of rival dancers: The Alliance of the Dark who are the villains and The Legion of Extraordinary Dancers, the heroes, who discover they have superpowers referred to as 'the Ra' through their dance abilities."

</comment><comment><USER18> I'm moving my home NAS back to Debian after a couple of painful months [1] [2] with FreeNAS 9. Would this give me jail-like functionality under Linux? The one thing I enjoyed about FreeNAS/FreeBSD was how easy it was to create and tear down jails for all kinds of uses.

[1]: [https://blog.voltagex.org/2016/01/08/freenas-9-3-on-the- supe...](https://blog.voltagex.org/2016/01/08/freenas-9-3-on-the- supermicro-5028a-tn4-a1sri-2758f/)

[2]: [https://lists.freebsd.org/pipermail/freebsd- net/2016-Februar...](https://lists.freebsd.org/pipermail/freebsd- net/2016-February/044619.html)

<comment><USER19> Plain LXC, rut, or docker are probably closer.

<comment><USER18> I like docker, but I prefer something closer to a VM. Why would you say go for LXC over LXD?

Also, Googling "linux rut" doesn't bring up anything useful, I'm assuming you mean _rkt_

<comment><USER20> LXC is very nice. It's very VM-like and why I prefer it for almost everything I deploy instead of using Docker.

I know how to manage machines. I don't have the same confidence for Docker- images.

LXD seems to be a construction on top of LXC to make managing it easier "at scale", so if all you want is to manually be able to construct "container VMs" on demand, I think LXC is closer to what you actually want: It let's you manage the containers directly, near the iron, without anything getting in your way.

Don't get me wrong: LXD seems to have a genuine value-proposal, but for this use-case it seems to be a slight step of indirection, and my guess is that this will cause you more troubles than it's worth.

</comment></comment></comment></comment><comment><USER21> Very Nice.

I want to understand how Linux Container works, started to study the cgroup code in Linux kernel and LXD. Here are couple of notes on Tracing the code of CGroup in Linux kernel and LXD I took.

[http://www.srcmap.org/sd_share/7/0cc46512/LXD_Code_Trace.htm...](http://www.srcmap.org/sd_share/7/0cc46512/LXD_Code_Trace.html)

[http://www.srcmap.org/sd_share/7/060b8d61/Linux_Kernel_CGrou...](http://www.srcmap.org/sd_share/7/060b8d61/Linux_Kernel_CGroup_Control_Group_Code_Trace.html)

</comment><comment><USER22> This looks really nice. A REST API with Golang bindings to run containers feels so much better than old-school systems programming with exec.

</comment><comment><USER23> Does LXD provide any type of cluster management behavior? As in if I have two host machines and a dozen containers and host A goes down, is it possible to configure a live migration of the latest known state from host A to host B using LXD alone? Or do I need something built on top of it to do that?

<comment><USER24> I think that's Juju's role. They have a beta LXD driver for Juju.

[https://jujucharms.com/docs/master/config- LXD](https://jujucharms.com/docs/master/config-LXD)

</comment></comment><comment><USER25> LXD looks similar to OpenVZ or rather Proxmox(with LXC or OpenVZ)

</comment><comment><USER26> With so many contenders stirring up the pot, this is an exciting time in the world of Linux Containers!

I would love to see an LXD container driver for Mesos.

Do any of you know if LXD is APPC-spec compliant?

<comment><USER27> It's not as the appc spec stands for "app container" and LXD doesn't run application containers but instead full system containers.

</comment></comment><comment><USER28> Is anybody making an effort to put the LXD environment on Centos 7? I'd really like to try it but all I have provisioned right now is Centos 7 (and below).

</comment><comment><USER29> Wonder if I'll be able to use LXC/LXD on "plain" Debian, and be able to avoid Ubuntu.

<comment><USER30> Ubuntu, yes, I'd think so. Canonical, however, not. What makes you want to avoid Ubuntu?

<comment><USER29> I use "plain" Debian on my servers when possible. Personal preference, mostly. Not really a fan of Ubuntu Server.

</comment></comment></comment><comment><USER31> if someone can create a boot2docker clone for this, i'm in.

<comment><USER11> Why not just use regular TinyCore? Or any other distribution?

LXC containers aren't app containers. It is intended to be used with regular installs, not with single applications.</comment></comment>


Javascript: A Language in Search of a Standard Library and Module System - <AUTHOR> http://zef.me/2856/javascript-a-language-in-search-of-a-standard-library-and-module-system?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+zefme+%28I+am+Zef%29 <comment><USER2> He seems to be arguing that the existence of multiple javascript frameworks is caused by it lacking a standard library, but I don't think you can conclude one based on the other; as a counter example the Java language has an extensive standard library, yet it has many, many 3rd party frameworks as well.

The other thing most of these frameworks provide is cross browser compatibility. If there were a large standard library built into javascript, I fear it would just be more things for different browser makers (especially Microsoft) to implement with different quirks, and you'd still need a 3rd party compatibility framework layered on top of it to be cross browser compatible, only now it would have to cover a large framework instead of just 16 objects.

<comment><USER3> It's not that many js frameworks imply the need for a standard library. It's that many js frameworks, _all providing the same functionality that many people want_ imply the need for a standard library. You mention cross-browser compatibility, he mentions web widgets. I don't see how anyone could oppose standardizing OS stuff like threads and IO on the server.

 _If there were a large standard library built into javascript, I fear it would just be more things for different browser makers (especially Microsoft) to implement with different quirks..._

It's a lot easier to release your own incompatible (possibly "extended") version of a standard than it is to break existing software. MS can't even phase out IE6, even though they _and the companies stuck using it_ acknowledge that IE6 needs to die. If MS released a browser version that broke many previously-working pages, it would probably trigger antitrust action by the government.

<comment><USER4> There are many approaches to concurrency ("stuff like threads and IO"). It's not at all clear to me that a one-size-fits-all approach is appropriate, and so while few might opposed the _idea_ of having a standard, I posit that whatever standard you actually proposed would be vehemently opposed by those who prefer a different approach.

</comment></comment></comment><comment><USER5> _The growing body of Javascript code also means Javascript needs more than just those 16 objects._

I don't know, I don't disagree with the sentiment that the standard lib is pretty bare, but I also think that's the beauty of JS. Also, there are any number of other libs (as the author points out) that add much of the desired missing functionality.

To the author's point of having many libs (jquery, etc) and no chosen standard, I don't see that as a bad thing. To me that just shows that the language succeeds in allowing authors to use it according to their own style and liking.

<comment><USER6> Standard library = socialism

Many open libraries = capitalism

Since capitalism elucidates turrets in some people, I'll add that what I'm driving at is competition breeds innovation and quality. If one library adds functionality another doesn't have, then it will add it, and in the process, improve on it. Awesome!

<comment><USER7> A standard library does not preclude third-party libraries. In fact, a good standard library can make it more likely for third-party libraries to _meaningfully_ compete. Reducing the amount of incidental (utility) code that needs to be written can:

1\. Allow established entrants to focus on more beneficial areas.

2\. Lower the barrier to entry for new offerings.

3\. Reduce the number of defects by shifting resources away from maintenance of incidental functionality.

<comment><USER8> Three cheers for the mixed economy!

</comment></comment></comment></comment><comment><USER9> I don't care about the lack of a standard library. I care about the lack of an equivalent to CPAN.

For instance a couple of years ago I ported Statistics::Distributions from Perl to JavaScript. I looked for a place to put it. Nobody could suggest any place for a random piece of code like that. Eventually I stuck it on <http://code.google.com/p/statistics-distributions-js/>. I doubt that anyone has ever looked for it there or found it. And the need is so specialized that it doesn't make sense to try to get a user base.

I doubt anyone has ever found it there. If they did it is probably because Ohloh picked it up.

<comment><USER10> Isn't that putting the cart before the house. JavaScript has no standard way of importing/using libraries -- that seems like a prerequisite for something like CPAN. Otherwise instead of an organized repository of libraries, you just have a bunch of code.

<comment><USER9> JavaScript has no standard way for one library to include another. But it is very easy to insert a library into a web page.

The code I ported is a standalone library that can be imported into a web page and then its functions can be called. There is a lot of useful code that looks like that. It is a shame that there is no standard bit bucket that you can put it in.

<comment><USER11> Yes, but here's the problem. I am using JavaScript outside of the browser on a project at the moment. I want to use your library, but your library directly loads a dependency, by trying to load a webpage. My JavaScript motor doesn't know how to load webpages, so now I can't use your library. On the other hand, if we had a standard call for loading libraries, each implementation could do as it needs - web browsers could try to load the code from a known repository on the current page's server. Embedded JavaScript and server-side JavaScript could load from a known repository, or from a repository specified at the launch of the JavaScript session. And we could all specify our dependencies in a clean manner that would be transportable.

<comment><USER9> I feel like you are not responding to what I wrote.

My statement is that having a widely known repository is still useful for random libraries which are simple enough to not have dependencies. I completely agree that having a standard way of loading dependencies would make such a thing much more useful still, but it still has utility without that.

Seriously, if you need to be able to calculate several standard probability distributions to 5 digits of precision in JavaScript, you can do it today with the library that I ported. Either embedded or server side. Doesn't matter. Go ahead and use it. (If GPL/Artistic doesn't work for you then I'm sorry. I can't grant a more generous license than the Perl version I started with.)

</comment></comment></comment></comment></comment><comment><USER12>
      >> JSON parsing and serialization
      Yes, it has this
      >> Testing
      console? alert? what do you want :/
      >> Cryptography
      For why?
      >> Date handling
      Date object works pretty well for that,
      >> DOM querying
      There's extensive functions to get at the DOM.

>> It would be oh-so-nice to have a de-facto standard library for this stuff.

I don't see what extra you need. Sure, if you want ready made widgets/UI effects, then go use one of those funky js libraries the kool kids use. I think one of the best things about javascript is that you can do things a ton of different ways, there is no right or wrong way to do OO, do it whichever way makes most sense.

On the question of modularization/imports, I don't see an issue really, it's simple enough to include using script tags, and set your build/deploy script to remove those and combine/minify to a single js.

Seems like a rant about how flexible and diverse javascript is, and how that's somehow a bad thing.

</comment><comment><USER13> "Objects are typically also used as maps (although the keys can only be strings, and not even all strings)"

What do you mean keys can only be strings? And not even all strings? Wait, you mean the following will not work:

      arr = [1,2,3]
      regex = /a/g
      x={}
      x[arr] = 'array, ha!'
      x[regex] = 'regex, ha!'
      x['function'] = 'function, ha!'
      alert(x[[1,2,3]])
      alert(x[/a/g])
      alert(x.function)

In javascript, you can use objects as keys and ANY string including reserved words, so long as they are wrapped in quotes.

[edit] I guess technically the keys are the result of the toString function of the object used as a key so:

      x = {}
      x[[1,2,3]] = 'wtf'
      x.toSource() === "({'1,2,3':'wtf'})"

<comment><USER14> Alright. So now I want to iterate over all original keys, how do I do that (i.e. their original values, not the stringified version)?

Plus, a random object (that doesn't have a meaningful toString method) will probably result in something like "[object]" as a key, which would break when you use more objects like that as keys.

<comment><USER15> > So now I want to iterate over all original keys, how do I do that

for(var key in obj) { if(obj.hasOwnProperty(key)) val = obj[key]; }

Or did I misunderstand the question?

<comment><USER13> The key is now effectively '1,2,3' in the case [1,2,3] . You can iterate using that string and even pass in the array using bracket notation. But when you iterate using for..in the key will be a string not the original array, and you lose that data. The string is now indistinguishable from the subset of strings with comma delimkted data. May that is inconsequential in your app but for some apps it dampens the effectiveness of the construct.

Ain't JavaScript a riot? [I just found an excuse to use snowclone in an HN comment. Pats self on back]

Functions on the other hand work very well because the key is the function definition (call toString on a function). There is no reason for two functions to have the exact same definition in JavaScript.

</comment></comment></comment></comment><comment><USER16> I was pretty much turned off by "At the very least it needs a de-facto standard way of doing object-oriented programming, having the choice between classical, prototypal, or, sure, why not lazy inheritance is not doing it for me." Javascript has one way of doing oop. It's prototypal. You can fake classical if you want but that doesn't negate the fact that the language itself is still prototypal.

</comment><comment><USER17> I find the fact that so many people decided to create their own "standard libraries", even after so many others were available a strong statement for the fact that one standard would be bad. Obviously, all these people had reasons strong enough not to use the existing tools, wanted something so different, that building it themselves, with all the effort involved, was a better solution.

</comment><comment><USER18> Wishful thinking. We're always going to have older versions of Internet Explorer that won't support any new JavaScript features.

<comment><USER19> This is the problem you have people that think they need to fully support these older browsers and cripple their systems in the process. I really hope the movement of upgrading browsers and furthering the web standards starts happening more.

The real problem is that the internet has such a low barrier to entry because of the way everything is setup, this is why when you call tech support for a broken modem you have to go through thirty useless steps like is plugged in to the wall is it plugged in to the computer, people are becoming helpless towards new technology because we are letting them be helpless.

People have a very large ability to learn even when they are older, my grandfather for example has learned how to use the computer to buy movie tickets, buy plane tickets and check into flights, and keep in touch with the family without any help from me or any other person in my family. Of course I help him if he has an issue but the thing is he tries to solve the problem himself and maybe once in 3 years I have had to help him with troubleshooting.

Contrast that with the facebook login debacle, people so frustrated and helpless that they are posting on a blog post about how they don't understand why they would change the login page that they don't realize they are on the wrong site. This could be solved if they went to a class on how to use the web or even a child or friend giving them a step by step paper guide on what to do when you are looking for a site.

People learn by experience and the older generation of people that are just now gaining access to the web, many still learning how to use a computer properly, are finding difficulties with simplest of tasks for the rest of us because they are pushed into shark infested waters with no direction or guidance.

I think one of the main problems with the web is trying to appeal to every market; this is why we have people fighting to support internet explorer 6 for every website or app they create because they have to support that market to be competitive and if nothing changes soon we will be stuck in a very slow moving bubble.

</comment></comment><comment><USER13> I would argue that Javascript has a standard way to build an object hierarchy. It's just that people find it bitter and can't help but add some syntactic sugar.

bitter:

myClass.prototype = new parentClass;

myClass.constructor = function(){...}

\</comment><comment></comment><comment></comment><comment></comment><comment>---

sweet (relatively speaking):

myClass = Class({

        Extends: parentClass,

        initialize: function(){...}

})

<comment><USER14> That's what I use. But Douglas Crockford suggests using a different way of building object hierarchies which he uses. I could ignore this, but Crockford kinda is one of _the_ Javascript guys, who, supposedly knows what he's talking about: <http://javascript.crockford.com/prototypal.html>

<comment><USER13> Eh, I give Crockford all the respect in the world as one of thee js guys, but I've always found that object function downright disgusting. I am still trying to understand what advantages his prototypal toolbox has over his classical one.

</comment></comment></comment><comment><USER14> Maybe I wasn't clear enough in my post, but I said this:

> and the good thing is that it does not require any changes in the Javascript > language itself, nor its browser support.

As far as I'm concerned it would be fine with a standard library in a file (std.js, or base.js), that I would just include on every page, it does not have to be implemented in the browser at all. Maybe on the long term, for efficiency, but necessarily. Indeed, the nice thing about Javascript is that it is flexible enough to do this "ourselves". So I would say the "but what about IE" discussion is kind of irrelevant, unless there's some core Javascript features it doesn't support that we absolutely need.

Let me briefly tell you where I'm coming from. A month or two ago I started working on an O/R mapper for Javascript, built on top of the HTML5 SQL store (<http://github.com/zefhemel/persistencejs>). I wanted this library to be useable from any Javascript framework and supply an as "native" a Javascript API as possible. There were two problems that I came across:

1) What is the proper way to do OO? I read "JS: The Good Parts", but it discusses like 3 or 4 ways of implementing OO and variations on inheritance, each having different advantages and disadvantages, either using the new keyword or not etc. Personally I'm open to any OO style, just tell me which on to use. There was no obvious answer. There's a bunch of frameworks that offer utility objects to do inheritance "properly", do mixins etc., but I didn't want to buy into any framework in particular. So eventually I went with the constructor function (function MyObj() { }, new MyObj()) approach, manually solving inheritance problems as I went along.

If there would be a style, possibly with some utilities of doing OOP in Javascript that "everybody" would agree on, I wouldn't have had this problem. I'd just say "ok, let's rely on this std.js/base.js and it's obvious how to do it". Everybody would understand my code, because they'd use the same style as well. Sure, it's a very powerful thing that we can do inheritance in 4 different ways, but it doesn't simplify communicating the fact that we're trying to implement inheritance, or how to use a particular constructor function (should I call new Bla() or just Bla()?).

2) I needed to implement the observable pattern, I need to respond to changes in objects. Some JS frameworks contain an implementation of the observable pattern, but I don't want to rely on any framework in particular, so what should I do? I ended up implementing a lightweight one myself, which is included in the library. A bit of a waste of effort, plus of code size when somebody uses persistence.js together with another framework that also contains an observable pattern implementation.

The observable pattern is another example of a construct that's common enough to be in such a standard library. If we decide on a particular implementation, we can all utilize it without being too dependent on larger frameworks. We only have a dependency on the small standard library.

I'm currently working on a larger HTML/Javascript problem and there the modularization problem popped up. I want to declare module dependency and have them automatically be loaded. Again, Google Closure, Dojo and YUI provide ways to implement this, but I have been using jQuery so far, should I switch or add Dojo/Closure/YUI to my project, just to get the modularization features? That seems a bit excessive.

If we would have agreed upon modularization features in a standard library that all the frameworks used, I wouldn't have this problem.

</comment><comment><USER20> Won't this just bloat the browser and cause 1) compatibility issues, and 2) a new level of update hell?

</comment><comment><USER21> Just had this SAME conversation with co-workers yesterday. Funny eh.

The fact is, while you chose Rhino to get access to Java libs and frameworks for SSJS development, there is still NO WAY for me to write an open source JS framework that will work in any environment. Not to mention anything I run will probably have tons of different implementation of the same few bits of code, not referring to common libraries for inclusion or whatever. Even how files are included is different depending on your environment. We seriously need a standard. Even if half of it is implemented in javascript like Java Standard Libs are implemented in java (ok lots use java native interfacing).

</comment><comment><USER22> Just use Dojo, problem solved</comment>


Consumerized Enterprise Software Improves Business Agility by 70% - <AUTHOR> https://www.shopify.com/enterprise/84435398-the-consumerization-of-enterprise-software <comment><USER2> Excellent article title. It reads like "frobnicated bulbulation increases business intelligence agility from learning the known unknown through shared stakeholder values".</comment>


Negotiator: Golang library for HTTP content negotiation - <AUTHOR> https://github.com/freerware/negotiator <comment><AUTHOR> A compact Golang library I have been working on for handling proactive, reactive, and transparent HTTP content negotiation. Let me know what you think!</comment>


Average Face of Women across the World - <AUTHOR> http://i.imgur.com/lO9OV.jpg <comment><USER2> Is this a composite of women from that region? It looks very clear for being made up from a group of images.

I always thought that it would be interesting to see how people change over geography. I'd assume that you would see a gentle change of this feature and that feature over geography.

</comment><comment><USER3> Whilst it's an interesting image, I find it hard to believe the "average South African" woman is white.

<comment><USER4> Maybe it's sampling bias, as in that's the average South African woman whose picture was identifiable on the web? I'd like to know more how this was done.</comment></comment>


Think you're a ruby guru? Help solve this non-trivial RSpec bug - <AUTHOR> https://github.com/rspec/rspec-core/pull/410 We're stuck. Ruby at_exit + RSpec + Capybara <comment><USER2> Not sure if this may help, but I remember reading about some changes wrt ordering in nested calls to at_exit in recent MRI code. Before attempting to change rspec I'd take a look if the bug happens in jruby which has the "right" behaviour, otherwise the resolution would be "use 1.9.3".

<comment><USER3> There are lots of people using rspec with MRI-1.8.x. How would this be a reasonable resolution?

</comment></comment><comment><USER4> I have a script on a port installed ruby 1.9.2p290 (2011-07-09 revision 32553) OSX 10.7.1 that hangs in an at_exit and must be kill -9'ed.

Is this maybe a ruby-core bug?

<comment><USER5> You may want to post this question with additional detail to stackoverflow. Just a thought.</comment></comment>


The Three Best Debugging Tools - <AUTHOR> http://www.mikeperham.com/2013/09/12/the-three-best-debugging-tools/ <comment><USER2> If there's no coworker handy, you can try explaining your problem to a rubber duck:

[https://en.wikipedia.org/wiki/Rubber_duck_debugging](https://en.wikipedia.org/wiki/Rubber_duck_debugging)</comment>


Man told he's going to die by doctor on video-link robot - <AUTHOR> https://www.bbc.co.uk/news/world-us-canada-47510038 <comment><USER2> [https://news.ycombinator.com/item?id=19338830](https://news.ycombinator.com/item?id=19338830)

</comment><comment><USER3> Happens more often than you might think.</comment>


Basic quantum physics tabletop sim Kickstarter review - <AUTHOR> http://www.giantfreakinrobot.com/sci/geeks-launch-kickstarter-campaign-fund-quantum-physics-board-game.html

<comment><AUTHOR> "Elbowfish, a game studio in Portland Oregon whose projects feature renderings from local artists, want to create a whole series of "meaningful games," or "fun games that make you think." Elbowfish is working with PandaGM, who manufactured Pandemic, among others. This is a huge vote in their favor.

The premise of Antimatter Matters seems simple: players try to build an atom by amassing the correct elementary particles. I've always wanted to do that! As expected, there are challenges, including antimatter collisions, cosmic radiation, solar flares, and the one I most look forward to, "quantum entanglement."

The game takes place in the near(ish) future, in a space laboratory orbiting Earth. Players race to become the first human to successfully construct matter from particles, including quarks. Elbowfish describes Antimatter Matters as "set-collection and pattern-building" game that "balances deliberate strategic choices, surprising interactions with other players and the unpredictable nature of the universe." This game sounds better and better!

Unlike Risk, an average game takes about 45 minutes to play, and in one of its most exciting features, the game can be played competitively or cooperatively. Antimatter Matters, then, would be suitable not just for vacations, but also for classrooms.

Donors to the Kickstarter campaign get a variety of awards (including the game itself) depending on their pledge amounts. The campaign ends in a few days and is still about $10,000 short of its $33,000 goal. If the goal is met, rewards will be delivered by the end of this year, and you know what that means — Antimatter Matters for Christmas! Nothing like a little quantum physics to spread yule-time cheer and to make those quarrels between relatives even more entertaining."</comment>


Track visitors who block cookies and JavaScript across sites - mike-cardwell http://elie.im/blog/security/tracking-users-that-block-cookies-with-a-http-redirect/

<comment><AUTHOR> Nice. You can use ETags for a more transparent (albeit lower-level) method—instead of redirecting to a different URL, give the user the resource but with a specific ETag, and track when they request it again.</comment>


The pandemic was just a 'scamdemic' – until truth hit home hard - <AUTHOR> https://dallasvoice.com/a-harsh-lesson-in-the-reality-of-covid-19/ <comment><USER2> _And so, believing the pandemic to be a hoax, my partner and I hosted family members on Saturday, June 13. On Sunday, June 14, I woke up sick._

Is this satire? The Biogen outbreak was in late February, the disastrous White House briefing that caused the stock market to lose 30 % of its valuation on March 17. What more confirmation did they need that the plague was on the move?

 _A GoFundMe page has been created to help his in-laws pay medical bills resulting from their illness._

Personal responsibility is for the plebs, we happily fall back on charity when it suits us. And no word in the whole damned article about responsibility for healthcare personnel, just for friends and family.

<comment><USER3> I thought COVID-19 had a weeks-long incubation period before the appearance of symptoms?

<comment><USER4> Generally around five days, but yeah, they probably didn't get it at that family party. They may well have given it to their family members, of course (you're infectious before symptoms show).

</comment></comment></comment><comment><USER5> what can be said to people like the author?

"i told you so" is too bitter an admonishment for someone who has shown contrition and suffered greatly for their sizeable sins. "sorry for your loss" is too gentle. "why didn't you listen?" will simply devolve into partisan bickering, and nobody will be convinced.

more importantly, what might we say to someone to prevent them from killing other people through their ignorance and intransigence, like the author did? rational discussion of evidence hasn't worked. legal mandates haven't worked. social shaming hasn't worked. mass death hasn't worked.

and more importantly still: how can we hope to build or repair a society when people like the author are so keen to drag us down, at least until they fall victim to the very problem we are trying to protect them from?

we can't simply let them all get infected if they are nearby -- they'll drag us to hell with them, as they already arguably have. at what point do we refuse to entertain their backwardness? at what point do we withdraw from them or exile them and leave them to their fate?

<comment><USER6> "Go and sin no more" is the traditional dismissal, but it's too often interpreted poorly.

I am not interested in punishment or wailing and gnashing of teeth, or public wearing of hair shirts or sackcloth and ashes. I want to see positive, healing, restorative acts. We'll call that a good penance.

<comment><USER2> I'm not interested in Truth and Reconciliation committees when this is all over (not before mid-2021), the question is what can be done to improve public health _now_ when you have people like the overpoliticized idiots in Jefferson, GA: [https://www.nytimes.com/2020/07/27/us/covid-georgia- schools-...](https://www.nytimes.com/2020/07/27/us/covid-georgia-schools- masks.html)

At Dartmouth they got to deal with coronavirus early on, someone who felt they didn't have to quarantine brought it from the Biogen outbreak. They have experience and the Dean of Students stated that Dartmouth is going to come down savagely on frat parties, the punishment being expulsion.

Expulsion from society sounds about right.

<comment><USER6> problem is, expulsion from society sure sounds like "make a natural reservoir" to me...

</comment></comment></comment></comment><comment><USER7> I'm past the point of caring when pandemic denialists come regret their mistakes, but I am intensely curious about why people come to be a denialist in the first place.

People were in denial during the Wuhan lockdown because China so different from West to start with. But once it hit Italy, there was no logical reason to deny the existence of the pandemic. Understanding how so many people came to believe something so obviously wrong could have some major implications.

<comment><USER8> I don't even get why people were denying it during Wuhan lockdown.

Did the fact that they're building not one, but two field hospitals with gear within weeks not give them some clue that shit actually hit the fan, and the only good news is there isn't a lot of direct flights from Wuhan to North America?

<comment><USER7> I was hearing a mix of higher population density, worse hygiene, expectations of containment, different culture/government, skepticism of Chinese media honesty, and (perhaps most importantly) downplaying by WHO and other experts.

Italy was the nail in the coffin for those... optimistic expectations. Except among the lunatic fringe.

</comment></comment></comment><comment><USER9> The Reality Market always clears. If people don't mark their beliefs to the Reality Market on a timely basis, it clears with blood and fire.

</comment><comment><USER10> I think it's both. It was a pandemic for many places, peoples, and nations, but because of rampant media over-hype, speculation, and just plain bad reporting, it gave the impression of being far worse than it might actually have been. There is also the justification that the media's hype made it into more of a "scare-demic" as seems to be the case for the media during election years.

2004: Sars 2008: Bird flu 2010: Swine flu 2012: mers 2014: Ebola 2016: Zika 2018: Ebola again 2020: COVID-19

Yes, you will find SNOPES[0] and all sorts of sources that will say these existed prior to the elections. My point is: These outbreaks/pandemics/etc. may have never risen to the level of such mass hysteria had it not been for the media's sophistic instigation.[1.]

[0.][https://www.snopes.com/fact-check/coronavirus- meme/](https://www.snopes.com/fact-check/coronavirus-meme/)

<comment><USER11> More than 650,000 people have died so far around the world, more than 150,000 people have died in the United States. This is despite a massive economy- rocking effort to "flatten the curve" and an unprecedented-in-100-years effort to mask up and isolate and avoid interacting with other people.

Blaming "media" for any part of this, or for exaggerating its horrors, seems so wrong-headed it's unclear where to begin.

You tout a conspiracy theory even while linking to Snopes demonstrating that said theory is nonsense.

I hope that neither you nor anyone you love ends up fighting for their life again COVID-19. Wear a mask, and stay home.

<comment><USER12> > This is despite a massive economy-rocking effort to "flatten the curve"

In the US, that was largely a complete failure because everywhere started reopening because New York's case numbers were going down while the rest of the country was going up, and everyone declared "mission accomplished".</comment></comment></comment>


Enhancing the Python Experience on App Engine - <AUTHOR> https://cloudplatform.googleblog.com/2017/06/enhancing-the-Python-experience-on-App-Engine.html <comment><USER2> It's really cool that starting today, App Engine flexible environment users can deploy to the latest version of Python, 3.6.</comment>


Airport police demanded activist's passwords. He refused. Now faces prison in UK - <AUTHOR> https://theintercept.com/2017/09/23/police-schedule-7-uk-rabbani-gchq-passwords/ <comment><USER2> Dupe [https://news.ycombinator.com/item?id=15324237](https://news.ycombinator.com/item?id=15324237) (21 points, 8 hours ago, 2 comments)

</comment><comment><USER3> Makes me want to change my password to f*ckyou...</comment>


Real-Time Noise Suppression Using Deep Learning - <AUTHOR> https://devblogs.nvidia.com/nvidia-real-time-noise-suppression-deep-learning/ <comment><USER2> I am really impressed with what Nvidia is doing here.

I think there is a huge market for improving sound quality in video calls.

For me, roughly every second call I make is somehow harmed by some kind of "bad audio" problems. Breathing, reverb, noise, clipping, too silent, there are so many things that can go wrong.

And this really harms the productivity of video calls.

I have started collecting and building tools to detect all of these sources of bad audio and am collecting them at [https://www.tinydrop.io](https://www.tinydrop.io) Maybe these APIs can help people to improve their setup. But if software like Nvidia's comes along and just fixes the problem once and for all - that's great as well!

<comment><USER3> Disclosure: I'm the author of the blog post and co-founder at 2Hz.

This is a guest post on NVIDIA Developer Blog. The author of the technology is a startup called 2Hz (2hz.ai). Our passion is to improve voice audio quality in audio/video calls. It's a tough problem but also fun to work on.

Agree, breathing, reverb, noise are all problems and should be fixed. We started with noise and already shipped a product you can try on your Mac. The app is called Krisp (krisp.ai).

Reverb, breathing, voice cutting will come next.

<comment><USER4> Hi! As someone who seems to struggle more than most to understand people on video calls, I'd like to give you my impressions.

Something struck me about the sample video. The very first sample included background noise, but it was very easy to understand regardless of the noise, probably because it was recorded by a pro microphone rather than a phone. Every other sample was far more difficult, regardless of noise removal. Noise removal doesn't really seem to help; in fact, any imperfections in the noise removal process actually make the audio more difficult to understand because I have to guess not only the speaker's voice and the noise but also the algorithm for noise removal.

What does help me is low frequency pickup. I think the first sample is easy because there are plenty of low frequency components that are later lost through the phone.

Low frequencies are presumably difficult to pick up due to the size of the microphone in a phone, but could there be a way to restore those frequencies through audio processing? It would be interesting to analyze the response of specific microphones to specific low frequencies and find patterns that an audio processor could use to restore the low frequency components.

Anyway, kudos for doing some very interesting work. I don't know how representative my experience is.

<comment><USER5> > _I don 't know how representative my experience is._

As someone who works with speech content, this seems unusual. Typically, low frequencies are reduced because there's not much useful voice signal there—for example, NPR typically rolls off frequencies below 250 Hz.

<comment><USER4> Thanks for your viewpoint!

Here's something concrete: the first phrase in the video ends with "small demonstration", but starting with the second instance, I distinctly hear "sall" instead of "small". In the version with the noise, the "m" sounds like an aberration of the noise and is detectable. With the noise removed, the "m" is replaced with a blip that sounds like an encoding error.

</comment></comment></comment></comment></comment><comment><USER6> What's wrong with using multiple microphones?

A mic element costs about thirty cents, and the processing power required for noise cancellation already exists in the CPU of the mobile device.

I think it's particularly interesting that Amazon has made microphe arrays particularly cheap, due to Alexa. MiniDSP offers a microphone array for under $100, which is an unheard of price considering what these cost ten years ago.

[https://www.minidsp.com/products/usb-audio- interface/uma-8-m...](https://www.minidsp.com/products/usb-audio- interface/uma-8-microphone-array)

<comment><USER7> How does multi microphone filtering work? I guess they localize different sound sources by cross-correlation (to get the timings) and triangulation (based on the timings and the speed of sound)?

<comment><USER8> I think the (or perhaps only one) key phrase is "beamforming". A single microphone element has a certain sensitivity pattern (e.g. it may be a very directional microphone, or be equally sensitive in all directions). With multiple pick-ups, you can emulate some different sensitivity patterns.

A related idea in radar is synthetic-aperture radar (SAR).

<comment><USER6> Great point.

A lot of the interesting things in audio were inspired by radar. Dan Wiggins at Sonos used to work on radar, and Don Keele created a loudspeaker technology called "CBT" that's based on radar technology.

Because microphones are basically the inverse of loudspeakers, what works in loudspeaker arrays can also work in microphone arrays.

</comment></comment></comment></comment><comment><USER9> This is amazing! Full props to the Nvidia team that accomplished this.

I downloaded the Mac app they provided [1] which I highly suggest everyone with a mac tests out. I ran it on my old MacBook Air 2013 using daily.co. It worked like a charm. Definitely using this in the next group chat, where there is always someone who forgets to turn off their microphone.

One cool side effect is that it actually removes the reverberations that happen when you have two computers on the same call, where the mics keep picking up on the output of the other computers and a large high-frequency noise happens (that I'm sure we all have experienced). The system simply removed it and I didn't even know it was there until I turned off the app.

Amazing work and I really hope that Skype, Apple, Google etc implement this into their voice apps, or even phone providers build this into phones. Maybe in the future, we actually can have phone conversations in windy weather and on the streets.

[1]: [https://krisp.ai/?utm_source=Nvidia%20blog&utm_medium=downlo...](https://krisp.ai/?utm_source=Nvidia%20blog&utm_medium=download)

<comment> loa-in-backup copied from another comment, NOT MINE:

COMMENT FOLLOWS

davitb 18 hours ago

Disclosure: I'm the author of the blog post and co-founder at 2Hz. This is a guest post on NVIDIA Developer Blog. The author of the technology is a startup called 2Hz (2hz.ai). Our passion is to improve voice audio quality in audio/video calls. It's a tough problem but also fun to work on.

Agree, breathing, reverb, noise are all problems and should be fixed. We started with noise and already shipped a product you can try on your Mac. The app is called Krisp (krisp.ai).

Reverb, breathing, voice cutting will come next.

</comment></comment><comment><USER10> An interesting human problem that I imagine would come up here is that the speaker could be getting distracted with all the noise (crying baby/siren/etc.) while the listener would have no idea what's going on and think the speaker is being confused/dumb/slow/etc... very curious how this would play out in real conversations!

<comment><USER11> This is really evident when a speaker hears an echo of themselves, slightly delayed, back through their speakers.

It's really hard to speak when what you say comes echoing back.

</comment></comment><comment><USER12> I downloaded the mac app, configured a virtual device to send the system output to the "Krisp Speaker" and verified that it cuts most of the music out of what I'm listening to, leaving only the voice (at a some what degraded quality). I wish I could configure it _cancel_ ambient noise, not just remove it from the input signal.

<comment><USER13> In your perception, what is the difference between "cancelling" a signal and removing it?

<comment><USER14> Phase Cancellation [1]

[1] [https://www.sageaudio.com/blog/pre-mastering-tips/phase- canc...](https://www.sageaudio.com/blog/pre-mastering-tips/phase- cancellation.php)

</comment></comment></comment><comment><USER15> Can imagine a codec, which would suppress noise, recognize the speech, send the text along with the voice information so in case of broken signal codec on the receiving end could reconstruct the speech using the text applying speaker's voice features via style transfer.

So, if my voice is distorted in a broken line, it would be reconstructed from the text and reconstruction would sound like me. I guess it will be the ultimate 1kbps codec.

</comment><comment><USER16> My friend is an airline mechanic. One thing his coworkers all had was the jawbone headset. This was back in like 2008-2009. He said he could call up a mechanic working right next to the turbine while it was running and hear him crystal clear. I wonder if any of that technology paired with software technology will make it so there is 0 noise in calls. Maybe an implanted bone mic.

<comment><USER6> IIRC, that technology originated in fighter jets, and worked it's way down to consumer goods. The company sold Bluetooth headsets for a while, but multi-mic solutions were cheaper and worked better. They tried to hang in there for a few years, diversifying into consumer electronics like the "Jawbox."

It didn't work out, and they went bankrupt.

</comment></comment><comment><USER17> Really impressive results, though I wish they had gone more into the deep learning part of it (but I guess that's probably the secret sauce).

Can't help but notice how well Nvidia is positioned for what appears to be a growing wave of demand for GPUs. Surprised this hasn't reflected in their share price (feels like they could be the next Intel, but what do it know).

<comment><USER18> Dedicated chips for machine learning (inference) are being developed by many companies. The hope is that these will be used instead of (or in addition to) GPUs for ML tasks.

Not that Nvidia is poorly positioned. In fact, I expect that if dedicated ML chips work out, Nvidia will also put one on the market.

<comment><USER19> > Nvidia will also put one on the market

Already done. Tegra Xavier includes DLA (deep learning accelerator).

</comment></comment></comment><comment><USER20> Have you tried SoliCall Pro ([http://solicall.com/solicall- pro/](http://solicall.com/solicall-pro/))? Once installed using virtual audio device technology it will improve the audio with multiple options like NR, PNR, RNR, and more.

</comment><comment><USER21> Does this deep learning noise cancelling also work for music with headphones? If so then we can ditch proprietary noise cancelling headphones and just use the phones?

<comment><USER22> Active Noise cancelling(ANC) headphones are really sensitive to latency.

Take An ANC with 0 latency, that stops cancelling noise at 8 khz, and add a 50 usec latency to it, now will stop cancelling noise at ~1.5 khz.

But This article talks about 20ms latency.

<comment><USER23> > Take An ANC with 0 latency, that stops cancelling noise at 8 khz, and add a > 50 usec latency to it, now will stop cancelling noise at ~1.5 khz.

How did you calculate this?

<comment><USER22> It's an simple explanation of figure 3 here: [https://www.edn.com/design/analog/4458544/2/A-perspective- on...](https://www.edn.com/design/analog/4458544/2/A-perspective-on-digital- ANC-solutions-in-a-low-latency-dominated-world)

<comment><USER24> If I understand that figure correctly, at 8KHz with no latency one gets 12 dB cancellation. With 50 ms latency, 0 dB. And above that frequency, the cancellation actually makes the noise worse. An analog cutoff filter would be needed.

</comment></comment></comment></comment></comment><comment><USER25> One of my favorite teams! Looking forward to the time when I won't hear any background noise on my calls anymore :)

</comment><comment><USER26> They have mac app!! Incredible! How could I get this into my car kit?

</comment><comment><USER27> That's crazy how well it handles nonstationary noise.

</comment><comment><USER28> Love it. Don't really love the idea of audio contents of conversations being routed to a cloud server for processing though — needs to stay on-device for privacy.

<comment><USER3> This technology is already integrated into Krisp app ([https://krisp.ai](https://krisp.ai)) and it runs all locally on device.

<comment><USER28> Thanks for the heads up! I really like what you're doing - not only is it great for the general public, it's a game changer for people with difficulties hearing.

</comment></comment></comment><comment><USER29> [https://](https://)

 _> devblogs.nvidia.com uses an invalid security certificate. Certificates issued by GeoTrust, RapidSSL, Symantec, Thawte, and VeriSign are no longer considered safe because these certificate authorities failed to follow security practices in the past._

<comment><USER30> > _Certificates issued by GeoTrust, RapidSSL, Symantec, Thawte, and VeriSign > are no longer considered safe because these certificate authorities failed > to follow security practices in the past._

Those are some pretty big names. Names where reasonable companies could believe that nobody would ever _dare_ enforce the rules against them, because it would break the Web.

Who says nobody ever got fired for buying IBM?

Heck. If the for-pay CAs keep screwing up, Let's Encrypt could become the sane, reasonable, conservative choice, even among the most Enterprise of Enterprise Enterprises.

<comment><USER31> They were all subsidiaries of Symantec when their various faults occurred leading to the Symantec distrust; it's all just the Symantec distrust.

</comment></comment></comment><comment><USER32> The story title is "AI powered Noise Cancellation" but the text never uses the term "AI" at all. It's deep (machine) learning. It doesn't need the useless marketing bonus term "AI" to make it better — it's already interesting enough without.

<comment><USER33> We've reverted the headline from the submitted "NVIDIA on state of art in AI powered Noise Cancellation" to that of the article.</comment></comment>


Uber managers wanted pay cuts to save jobs, CEO said no - <AUTHOR> https://www.theinformation.com/articles/uber-managers-asked-for-pay-cut-to-save-jobs-the-ceo-said-no <comment><USER2> Serious question for any Uber engineers out there. Are they still holding onto you and are you finding not enough to keep you busy? I've heard under Travis that engineers were hired to keep them away from Lyft + FAANG poaching.

</comment><comment><USER3> Loks like this plane is going to fly right into the ground at a 90 degree angle...</comment>