skysight-inc/HackerNews huggingface dataset:
Programming has been an important part of the world over the last 40 years, creating value in almost all aspects of life. But is programming losing a seat the table?

I will look at 3 apps that were programmed by programmers, and have failed. This should be enough to prove to anyone that programming is on the way out, and the future is bleak for us all.

This paragraph contains some more waffle that has nothing to do with anything. Thx for listening.
For a JIT I'm working on, I've been trying to call into libc from the emitted code, and I'm running into this.
Isn't nokia owned by Microsoft? So, shouldn't this be Microsoft buys Alcatel-Lucent?
Firefox added Python support in the past and there was no uptake. Brendan Eich has a hnews comment on it.

I think 2x-3x perf improvement /is/ possible. I mean we have the example of javascript that went from terrible perf to almost native parity. Of course Mozilla & Google each dedicated an entire team to get there.

We already have the example of PyPy too which /today/ averages a >5x (http://speed.pypy.org/) speed up with CPython!
I wasn't implying anything, I was directly stating that the folks who are most beneficial to learn from aren't making elaborate posts on HN, and you shouldn't demand that they do.

You're just being lazy by demanding someone to do your research or write an article for you. Think of it from their perspective: why would they? Any reason someone might post on HN with a comment containing original or well-thought content can be better accomplished by putting that effort elsewhere, in a blog post or website article, and then posting that article as a submission to HN.

Only a small fraction of HN users even visit the comments page, not to mention the additional exposure one might achieve by getting their message out to folks who don't go to HN.

So yes, there are things to be learned from HN comments. Just not the way you're suggesting.

In other words, stop asking folks for citations on HN (or any other comments section, for that matter). You're wasting everyone's time.
So what's the story on 64-bit x64 or other processors?
That's excellent data - didn't realize those stats. Thanks for providing them.
If it takes you a few weeks to get started with the basics (in either Emacs or vim), you're doing it wrong. Following their respective tutorials you can get up and running (for basic open/navigate/edit/save/search/replace) functionality in a few hours. You won't be proficient, but you should be able to get stuff done. The rest comes with usage; you can't learn either editor properly by reading the whole book and then not using them. Proficiency comes from constant use, and you never stop learning. I'm an Emacs user of 13 years, and using Evil for the last 3 or so, so I'm comfortable in vim as well, and I still learn new stuff about them all the time.
There was a time when shared libraries were a necessity. Not to mention supporting myriad architectures. That was a different era. Conditions have changed.

Of course, the designs and implementations have not. They are still in heavy use, 20 years later. What "just works" is never questioned. I am glad to see some people questioning the old assumptions.

Unrelated question: Why does Linux pass arguments in registers instead of using the stack?
MSFT acquired only mobile phones from Nokia. This is the network, HERE and other tech units that are left within Nokia.
How a Malaysian Playboy Controlled the U.S. Seventh Fleet
I'll agree that Boolean positional arguments are bad. But nothing wrong with keyword args like myFunc(async=true).
Kyle is one of the most humble, coolest, down-to-earth individuals I've met - his personality and ambition is what entrepreneurial communities need.
This gets especially horrible with multiple arguments, each of which is a bool.

foo.frob(true, false, true);

and now try to figure out what each of them means. It can get better with explicitly stating argument names, but that's only a temporary stopgap.

The »two methods, distinguished in name« works fine, as long as you only have a single boolean argument and API growth won't ever happen around that point. Other options that often scale better would be enums, or a parameter object encompassing options, if there are many.
I wonder how much of the Python 2.x stickiness is due to OSX still having 2.x as the default version. I mean, even Yosemite still defaults to 2.7!
Nope - this is the Nokia that contains other business and technology units. Only that NMP (Nokia Mobile Phones) were sold to Microsoft.
OK... so from a _practical_ perspective, can someone tell me why I should move to python 3? None of the arguments presented to switch are strong enough :-/
> I live in North Mexico, Durango State to be explicit. But this are general laws for all the country, labor laws support workers a lot (...)

Thank you. I was mostly curious wrt the housing market :-)
Also nice to see some details from the labour market of course!

> As a simple fact, if an employee earns 1000 pesos with me (the money he sees), i pay aroung 700 pesos in taxes, from infonavit (housing plan), imss (healthcare), afore (retirement fund), isn (impuesto sobre nomina), and all the benefits.

Hm, you mean the employee doesn't pay any taxes on that 1000? In other words the total tax rate is ~41%? Or is the corporate tax on salaries ~41%? For comparison, here in Norway, for a given monthly salary X, the employer pays an additional 12% towards holiday pay, and 7.9% in taxes from that total. The employee pays tax on X, usually ~36%. And then there's an additional VAT on goods and services of 25% (12.5% on food).

So given your example of 1000 in take-home pay, X would be 1000/0.64 = 1562, of which 1000+1562 * 0.12 (as vacation pay "tax free" or rather "pre-taxed") = 1188 go to the employee (or rather a pay out of 1000 10 months, "half-tax" for December, and 11000 * 0.12=1320 for the vacation month (give or take, with 5 weeks vacation, the pay for the month with 3 work weeks is subtracted... it's a little complicated).

The employer would pay taxes on 1188 * 0.079~94. So the total taxes on the monthly take home pay of 1000 would be 94+562=656 -- before considering money spent on VAT out of the 1000. But do not that Norway has a progressive income tax, variable tax on other income etc -- so this isn't the entire picture.

So it sounds rather comparable, if I understood you correctly. We also have free health care, school system (primary through college).

[ed: To add: the employer would also have some expenses for insuring the employee in case of job related injury etc, but I can't imagine that is very high on top of the 7.9% -- I'm not actually an employer, so I'm not sure.]
I watched this a long time ago. I actually remember thinking that you handled the situation well, and seemed quite comfortable. It's a stressful situation, plus you were alone, without a co-founder to help answer some questions. Also, there was added distraction with the microphones etc. You were brave to go up there, many people wouldn't.
Sadly no option for a 16GB RAM version.
Blue Jeans solves this at scale, with higher quality than WebRTC alone, while also supporting video conferencing equipment joining the same meetings.

Transcoding is tough with unique views per client, but audio processing is tougher. :)
Mercurial is a canary - if they see so much pain involved in moving from Py2 to Py3, and little reward, then that's representative of the overall ecosystem.

Having people on older versions of the interpreter is a problem, because it divides the community in half when it comes to knowledge, skillset, capability, etc.. It also confuses outsiders who are looking at the situation, and don't understand which version they should move forward with, because it's not clear which one will by supported by the people they want to hire.

There is a real cost to having the community split - which is why so much effort is put into trying to pull it back together.
I'm somewhat curious how these things enable very unexpected political change, a la the air conditioner and Reagan - http://www.pri.org/stories/2014-10-04/how-air-conditioning-g...
Alternate title: "Unnamed parameters considered harmful"

Alternate (better) solution to the author's problem: Use enums
Nothing in that article matters to me and I use Python every single day. I guess if you know too much about a thing it's easy to lose sight of what "normal" users care about. So here's my list:

1. Speed

2. Language warts (e.g. del, __init__, import *, while: else:)

3. Lack of a modern UI toolkit

4. No native support in Android, iOS, or Browsers worth mentioning.

Right now Python is the perfect prototyping, glue, and modest workload language.

You can make it better for heavy loads by fixing 1. You can make it even more
attractive to novice programmers by fixing 2.

But you really have to get to 3 or 4 before it becomes truly attractive and
you get a mass adoption.
> Reminds me of this statement by Brian W. Kernighan, "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."

A corollary is that if you are writing code with minimum repetition, you are effectively a compression algorithm, not a programmer.
I find it somewhat unfortunate that a LWN subscriber link is being abused like that. I don't think such a link should be shared on a widely accessible platform like Hacker News. I find LWN articles to always be of great quality, and the subscription cost is definitely worth it if you can afford it. Also, "subscriber-only" content becomes publicly available after only a week. There is consequently no reason to share a subscriber link like this on Hacker News. The discussion could have waited a week.
The Isaacson book:

(a) contains some amount of content that seems to be ripped straight from Hertzfeld's Folklore site.
(b) reads in many places like a reporter's notebook - a bunch of notes to follow up on, but no actual followup, no contextualization, and no help to the reader.
(c) contains very little factual content new to me, and thus probably to any person well-versed in Apple's history.

Based on that, I assumed at the time that it was rushed into production, without any significant editing, to capitalize on the death of the subject. Capitalism! It's simply not a very well-written book. The defense of it in some quarters is puzzling.

Andy Hertzfeld's Folklore site, on the other hand, is a treasure. Someone should put it out in book form again (and do it right this time -- O'Reilly gave it an inappropriate and bad mid-90's cover design, saddled it with a generic name, and made the images -- screenshots of early designs of the first significant mass-market graphical interface -- so small as to be nearly illegible).
Integrate a great anti-virus SDK may be the most efficient way. If you want any recommendation, here is one: OpenAVL SDK. The technology of it was awarded by AV-TEST and it is for free. http://sdk.avlyun.com/
Hi, thanks for the reply! Yes, software development. Seattle office. My mail is spin.stabilized in the public google mail service.
Schröder–Bernstein theorem
There are a lot of Windows users who are happy with XP too. I remember trying to explain to people 20 years ago why HDTV was better than what they had. Most people were happy with 480 lines of resolution, or thought they were. It's human nature. By being accommodating, you've made the problem harder.

Apple is the only company that says screw legacy. Of course users complain but they just grumble and know to accept it. Apple and their users, as a whole, benefit greatly by "getting all the wood behind one arrow" strategy.

There's lots of grumbling about Swift but I bet we get a very large developer adoption rate within 24 months.
What do you mean MySQL was not aquired by Sun? I was among ~400 MySQL employees in Orlando when the deal was announced. Yes, Sun was later bought by Oracle.
Position independent code on x64 is quite trivial, it has a new instruction addressing mode called RIP-relative addressing so that the program can access everything relative to where it is currently executing.
mm... they were shared by Guido himself on Twitter, so I am wondering how "private" those links are.
Tesla plans to pay $25 an hour at Gigafactory
Wow that's kind of cool. :)
What makes you say conditions have changed? Why should I have to wait for everything that consumes OpenSSL downstream to be updated/recompiled to fully patch my system?
Let me rephrase it like this... How do you face death then? It seems really hard for me now
It's not immediately obvious, but this isn't actually a problem with the idea of passing references to child threads. As background, `scoped` returns an RAII token and safety (references remaining valid while the child thread runs) is enforced via a destructor on that token. The issue is that reference counted types can have cycles, which are never destroyed, so placing the token in a reference counted cycle will stop the destructor running and hence risks unsafety.

It's fairly non-trivial to achieve this unsafety, but even the slightest risk is not acceptable for safe functions in the standard library, so we aren't going to ship it as is.

Fortunately, there are a few ways we can adjust things so that the interaction between reference counting and scoped threads doesn't cause problems, e.g. modify the reference counted types so that they cannot store types that require that the destructor be run like the `scoped` token, or guarantee safety in a way that doesn't hinge on the destructor of an object the user has ownership of.
Antenna towers get hit all the time, and the transmitters and receivers survive if installed properly. First, there's a spark gap between the antenna and ground, with big metal contacts, copper or silver, a short distance apart. That diverts most of the lightning bolt to ground. Then the feed line for the antenna has a big inductor, a coil made of heavy busbar, usually in a grounded can. This is often placed through the wall of a grounded metal equipment enclosure.

The inductance blocks a fast risetime lightning bolt, forcing the energy to the spark gap. A few hundred volts will still get through that. So following that there's a gas tube protector, which is essentially a neon tube which will ionize and short to ground. (Phone lines also have those at the central office end.) Following that is a MOV, as in a surge suppressor, to dump the remaining surge into ground. What's left after than can be tolerated by most RF electronics intended for such applications.

If this didn't work, radio wouldn't work in Florida. It's not that this stuff is expensive compared to the equipment it protects. It's that the front end stuff is big; #4 copper cables, big spark gap units, heavy ground rods, and solid metal equipment enclosures with welded seams.

Somewhere right now, a cellular tower is taking a lightning hit and restarting itself without damage.
Thanks for the insights - Digging into it, my first install was standalone and failed for no proper reason (trying to run guacamelee from the humblebundle - no meaningful error message was given).

Steam games seem to fail whenever something needs to be admin, most likely installing directX on first - run. I'm going to try running them once first before packaging the appstream and then see how it goes.
Linux had a similar mechanism, "prelink", which also completely broke with ASLR.
PyQt I think satisfies "3"? Though it's not builtin.
I like how "Avocado" is a category. My kind of sandwich.
I find the AWS IAM documentation[1][2] easy to follow. One thing I didn't like are the demo videos; I prefer step by step descriptions with screenshot images.

[1]: http://aws.amazon.com/iam/

[2]: http://aws.amazon.com/iam/details/manage-permissions/
The inspection paradox
To be clear, the basic concept of scoped threads is fine, and this unsoundness was a result of explicitly `unsafe` code.

The specific API chosen, however, used RAII guards to "guarantee" that the parent thread joined on the child thread within a certain scope. Unfortunately, it's possible to subvert the RAII guard by placing it within a ref-counted cycle, which results in its destructor never being run.

For the moment, the API is being moved back to "unstable" status.

We are considering a variety of ways to address the problem, including:

* Avoiding RAII guards in the API, instead using explicit closures to guarantee that the threads join.

* Introducing a way of marking types as "unsafe to leak", thereby allowing us to continue using the RAII-style API, but preventing use of the guard within reference counted pointers (which can leak).
hall of api shame: the boolean trap, by Ariya (of Esprima and PhantomJS) covers the same topic but is probably a more fun read.
http://ariya.ofilabs.com/2011/08/hall-of-api-shame-boolean-t...
Tiny 4K Displays Will Be Awesome–Just Not for Smartphones – Abomus News
I am a bit surprised it isn't V8, considering its high performance and relative success in Node and IO.js
I always found it weird that python functions quite happily tell you that you're missing a colon, but can't 'just run' without it.

Excluding one-liner syntax, why does Python actually need a colon to define a function, given it's goal of being free of unnecessary syntactic elements? I'm only an intermediate pythonista, but I'd be interested to know if there was a particular point to the colon.
NumPy/SciPy have been the blessing and the curse of Python.
Uber now 5th largest "employer" in Bay Area with 20,000 jobs
"I know on darwin, we kinda hate those sorts of relocations because they are a performance sap. This type of performance sap is nasty as it is pervasive and invisible and hard to ever get back." -- Mike Stump (gcc-patches ML, 2012)

I think the Solaris linker took some interesting approach with shared libraries at runtime as well.
Jonathon Corbet, the editor, encourages occasional subscriber links posted to Hacker News: https://news.ycombinator.com/item?id=5688938
registers are much faster than stack, assuming you immediately make use of them; to use them from the stack you have to load them into registers anyway in most cases
In C++, we have Boost.Spirit, and for C there is Bison/Flex. Surely those are better and more safe alternatives than hand-rolling your own parser?
Boolean parameters aren't the problem. It's that people use booleans when they mean "something that has two choices", they're too lazy to enumerate what those choices are, and most crucially, it cannot be easily inferred from context what the boolean argument means.

It's perfectly fine if your function takes a boolean argument where the parameter either means "TRUE" or "FALSE": EnableThing(bool) is self-descriptive (as long as passing TRUE enables the thing... too many APIs fall victim to this total failure as well).

The real problem is when you start using booleans where you lose the meaning. Mapping boolean to things that take on similar meanings { 0, 1 }, { NO, YES }, { OFF, ON }, and maybe stretching it a bit, { BLACK, WHITE } is probably okay as long as it is clearly spelled out what the flag is doing, and likely it should be the only parameter to the function (and definitely not when there are multiple flags, and especially definitely not when those flags have some interaction). Mapping boolean to { PURPLE, YELLOW }, { LEFT TO RIGHT, RIGHT TO LEFT }, or { SYNCHRONOUS, ASYNCHRONOUS } is asking for people to misuse your API, and worse - painting yourself into the corner when it comes time to handle BLUE, TOP TO BOTTOM, or ISOSYNCHRONOUS. In many of these cases, you're far better off just throwing in the ten second enum. ("Functions are cheap" is true for applications, but it's categorically false for libraries, especially those that must stand up to the test of time, so I would definitely stick to the enum - types really are cheap.)

His given example is definitely an example of doing it wrong, but I have a better one that I come across every day at my job:

gtk_box_pack_start (Box, Widget, bool expand, bool fill, int padding);

#1. Two boolean flags, so you must remember the ordering, or look it up every time.

#2. One boolean changes the behavior of the other. We don't have a complete mapping; only three of the four states are meaningful.

#3. The API is not expressive enough to tell you what expand/fill mean without looking at the documentation, so you have to "do the matrix" and start seeing blonde, brunette, redhead by memorizing the order of the flags.

An enumeration would tell you immediately, and be roughly as character efficient as "FALSE, FALSE", "TRUE, FALSE" or "TRUE, TRUE":

enum GtkBoxPackingOptions
{
PACK_SHRINK,
PACK_EXPAND_PADDING,
PACK_EXPAND_WIDGET
};

(And the latter enumeration is exactly what the gtkmm C++ bindings do.)
And when you update all your clients with static linked OpenSSL, did you also remember to restart every single one of them? These seem like equivalent problems to me.
https://lwn.net/op/FAQ.lwn#slinks

"Where is it appropriate to post a subscriber link?

Almost anywhere. Private mail, messages to project mailing lists, and blog entries are all appropriate. As long as people do not use subscriber links as a way to defeat our attempts to gain subscribers, we are happy to see them shared."
what is deep linking?
>Why does Linux pass arguments in registers instead of using the stack?

It's a convention. Depending on your architecture, compiler and API, it uses the stack in a lot of cases (cdecl/stdcall on i386). Linux on AMD64 always uses the SYSV ABI which uses registers as much as possible (i'm assuming for performance reasons, since 'fastcall' does the same on i386).
Reasons I am excited about Python 3:

* "yield from"

* Unicode support (I'm German and the clear distinction between bytes and unicode really makes my life easier)

* function annotations (PyCharm interprets them and uses them for static type checking)

* cleaned up stdlib (not only names, but also features)

* asyncio

Library support is very good nowadays, pretty much all of the important libraries are either ported to Python 3 or have an active fork. Even OpenStack is working on Py3 support.
Airport Utility 5.6.1 was the last version that supported some of the older airports. Unfortunately Airport Utility 5.6.1 doesn't work (officially) on anything newer than Snow Leopard, but there's some modified versions floating around that work on 10.9
Why are superhero shows on television so lousy?
It goes for all primitive parameters. I can't tell you how many days I've burnt on this kind of bug. But I can tell you it stole 3 hours of my time yesterday. https://twitter.com/badgerhunt/status/587787102684758016
Error messages and error recovery are to some extent red herrings. You really do not want a production system to accept wrong inputs (and especially not try to 'recover' them into a usable parse tree). This will definitely make your parser ambiguous and can have very real security implications (say, microsofts anti-xss transformations introducing XSS).
As to LL1 - many real world protocols can't be parsed efficiently as LL1.
Having KSP stock aero in real life would be so amazing. For one, it would solve air transportation - just put a bunch of control surfaces in a circle and you get free lift!
ORTC is just an API.

The WebRTC protocol itself is defined in RTCWEB at the IETF and based on the existing RTP and RTCP transports, and SCTP transport layer. I don't think you'll be able to do better.
Many of the horribly vulnerable parsers are generated with Bison / Flex, so it's not exactly a robust solution. Plus, especially for binary formats (images, videos, etc), it's hand-written or bust.