skysight-inc/HackerNews huggingface dataset:
>if the difference between the FSF and OSI definitions of OSI don't matter...perhaps they should merge and join forces?

I don't see how merging would be possible because FSF and OSI have incompatible philosophical differences to sharing/distributing software.

E.g. OSI is compatible with permissive licenses such as MIT License and BSD License. That's totally against what FSF and Stallman is about and their GPL license reflects that philosophy.
"Probably nobody is listening to me speak, but I won't be surprised if I'm overheard by people. Not a perfect analogy but eh."

Which is fine, except the analogy in this case is someone who is always sitting next to you and has access to all your conversational history - which may be public in isolation but private in aggregate.
Not sure your comment contradicts anything I wrote.
Gee, I didn't know there were 7 broadband providers in the USA total. There's Comcast, of course, but who are the other
dwarfs after Cox and Centurylink?
Unbird is hiring a full-stack web developer in Utah
The problem with monopolies is that nobody else has a choice. If Outlook or Yahoo were to fail to adopt the proprietary Gmail standard, they would eventually end up incompatible with the now-proprietary format of email. Whilst AMP4Email can fall back to HTML, the reality, as with text-only emails after HTML, that many providers will not bother sending multiple formats.

Your team has repeatedly refused to address criticisms of AMP from users and the community at large, and continued forward with a program that nobody wants[1]. There's still no way for someone to opt out of AMP as a whole except to use a search engine that doesn't support it, and Gmail seems to lack an AMP switch in settings, so I'm guessing you currently have no plans to let Gmail users escape it either.

[1] https://twitter.com/googleampsucks - Endless retweets of people's thoughts on AMP.
You just sue the early adopters and write some articles about how the new system is used for criminal activity only and then completely ban it. You can't have technological solutions to political problems.
How long do you support the application?

I believe that if you support it long enough, it's your application now, so no one else is to blame. How long is long enough? I'd say 1k-2k of lines of code per month of supporting it should be pretty reasonable. So if you supported a project of 10k lines for a year -- it's yours now, stop blaming original authors.

Good engineer would start improving it little-by-little, or convince manager that they need to spend some time on refactoring some piece of it. That differentiates a coder from an engineer.
Surprised no one mentioned the documented reason: the VirnetX parent lawsuits, which were also why Apple had to stop using P2P in FaceTime.

https://arstechnica.com/gadgets/2013/04/after-200m-patent-se...
It's passive aggressive if the person doesn't really give a shit about the underlying cause and just wants the tardiness to stop. Putting on fake empathy is disgusting. If they actually do care that's great and hopefully it comes across as genuine.
> That startup sold for 200 million dollars and, as the 10th engineer, I made ... 15000 dollars from that exit.

Why so low?
Your statement is overly broad, open standards bodies certainly can and have shaped how Google and others implement things, and will continue to do so. Standing up an open standards body in itself does not create pressure though it has to be stood up with backing by different groups with vested interest in guiding the design. This is where the AMP open standards group failed.
Why You Should Conduct A Content Audit
Just call the next movement The Entitled Software Foundation. Freetards begging for features and not giving back in any way whatsoever.
Building Product Road Maps
It's not quite the same. It might be closer to investing part of your salary in the same penny stock each week.
FTA: "As far as I can tell, there are no surviving prints of this newsreel."
Wow I am sorry to hear that. Best of luck man.
ATT, ATT Wireless, Verizon, Verizon Wireless

WTF?
> Can you spell out what about it worries you?

Nothing worries me, really. I'm Italian and live in Poland, I care very little about France and what happens over there. I also care very little what other people do, and only comment on Macron because he's a public figure. I just think it's extremely creepy, and wonder how he managed to get elected despite that aspect of his personal life, and the fact that he's a banker. Politicians are regularly attacked (or at least judged) by what they do in their personal lives. They're public figures and represent the country, after all.

> As for Carlson: https://jezebel.com/tucker-carlson-seems-to-have-a-lot-of-fu.

Thanks for the link, and I don't know that publication, but the articles next to that are "How to Write a Condolence Note" and "How to Select the Right Therapist for You"..?
Out of curiosity, what projects do you maintain?
I don't know what to tell you. It's how they are meant to be used [0], it's not some advice I made up. It's the whole point of using optionals, otherwise you're left with a verbose way of saying "this may be null".

There are unsafe methods to extract the value in those rare occasions when you absolutely know it's there, but you seldom need them. You're supposed to map and pattern match. Neither is silent, so I don't understand what you meant.

> Crashing is better than silently ignoring logic errors.

Map and pattern matching are not silent.

----

[0] https://www.oracle.com/technetwork/articles/java/java8-optio... (search for "this is not the recommended way of using Optional", and bear in mind this was for Java 8, which doesn't have pattern matching like Scala or an ML language)
I agree. I think talking about code is a critical skill, but not everyone has a strong practice of doing it. When I was first learning to code I never had anyone to talk to about my code, so I didn't get to learn the vocabulary until later.
Hey HN! I'm here to share my second ever SaaS product - Tag. Tag allows shops, bloggers and influencers to create images with multiple product tags. Users may add each image collection as a pop-up button on their website or share a URL to them via social media.

Your first collection is completely free and then goes to a $19.99/pm tier for unlimited and additional features such as an Instagram feed to show customers related images to that product. This feature is great for clothing shops wanting to show influencers wearing that look.

There is also integrated support for Google Analytics (UTM) to generate necessary parameters for tracking individual affiliates -- again great for businesses sharing collections with influencers.

Finally, Tag is aimed to be multi-use. I have put up a few examples of bathrooms, music merch, aquariums, Amazon referral links and beauty on the landing page.

Let me know your thoughts!

-Scott
It's more that the decimal is always rounded down. So you don't want a value between 205 and 205.9999999, as it'll always be rounded down to 205. you want a value between 205.5 and 206.49999999, so when rounded down it has a (practically) even chance of landing on either 205 or 206.
Which doesn't mean they won't do both -- because prosaically their costs are going to be higher than Steam.
Not sure if it's the fibonacci sequence per se, but yes, there are inflection points around those numbers.

Up to ~15 people with experience and a common purpose, you can just all work together, little structure and roles, and stuff works OK. Teams form ad-hoc, based on problems.

From there, you need to define more well-defined roles, so people don't step all over each other. Communication starts being important, because everybody talking to everybody has broken down at that point. Hey, look, a wild manager appears.

You're a startup, you try to save on managers, so teams can easily balloon to ~20-30 under a single manager, but then it breaks down again. You realize you need a second manager.

As you approach 50, you want to add a third manager. At that point, you have, want it or not, a "leadership team". There needs to be very regular and deliberate communication. Policies start being set, because teams start drifiting apart.

You'll hit the next inflection point at 100-200 people. Because at that point, your leadership team is starting to hit communication limits at the leader-to-leader level. (Your leadership reaches the same initial inflection point your original team reached).

As that cascades up, you add layers. The problems keep repeating. The next hunk is at ~500 people. The "old hands" feel like the amount of people they don't know really outnumbers the people they know.

Those are the sizes I've personally seen happen, several times the same pattern. And based on that progression, I'd expect the next transition point at around ~1,500 people.

So it's not quite fibonacci - it seems to skip steps - but it's a good enough guide for the first few 100 people.
Indeed a cultural thing in the sense that a JVM crashing is rare and exceptions are both common and non-fatal.

In short, that's what logging is for and there are some awesome options for that in Java. We log all exceptions with stacktrace + full MDC (mapped diagnostic context) to a central logging cluster. Also, we start alerting if that happens. Most application servers will have a top level catch and a way of logging/handling exceptions (e.g. sending a 500 response for unhandled exceptions).

The JVM crashing usually means you are hitting a jvm bug; it's not supposed to do that. It's been a while since I had that going on. Even out of memory exceptions tend to happen in a somewhat orderly fashion. It will print some message probably. Setting -XX:+HeapDumpOnOutOfMemoryError does what you want here: dumping the memory. Of course the use of that on an ephemeral disk in e.g. Docker is kind of limited. These heap dumps are super detailed though and you can dig through them using special tools. A common issue with docker is not setting limits correctly and then docker killing your process instead of it exiting the normal way.

You can dump a stack trace of all threads to std out by sending kill -QUIT to the process (does not kill the process). Great for debugging deadlocks.
This is knitpicky, because OP's point may still stand, but as a founder, this is what comes to mind after reading this: When I hear "work for a startup", I don't assume that means "be the 10th engineer at a company". You might make some money at that point, but you're not going to get financial independence unless there's a billion dollar IPO.

By BigCo standards, 10 engineers is a tiny startup. By venture/founder standards, I think 10 engineers is when you've already made it past the riskiest parts. You probably already have significant revenue traction, or you're past a Series A. You should be able to pay market, and equity is about alignment not risk compensation.

I think you can still get rich at a startup, but you need to take actual risk to be compensated for it. Join a 5 person company. Be the second or third engineer, and be able to become the CTO if the two technical people ahead of you leave.
In issue #1 the author says they did it by hand.
hopefully we'll see the same thing in "Object reference not set to an instance of an object" exceptions in .NET
To that end, I find that the value of optional types depends heavily on the language they're being used in.

Might as well beat up on Java: One of the best belly laughs I had during a debugging session was tracing a `NullPointerException` to the source, and finding that the reference was to an `Optional<T>` that was being used to handle a value that might not be present. Of course, the null reference here was to the `Optional<T>` itself.

There are also also some ergonomic issues. Obvious ones like the lack of pattern matching making them a bit more verbose to work with, of course. But also deeper, more annoying problems, such as Java's standard library lacking a really well-thought-out equivalent to the various abstractions on sequences that are standard in functional languages, and, by extension, functions for operating on them. Though it does have plenty of bits and bobs that were diligently cargo culted on without really capturing the essence of what this stuff is supposed to be about. So, for example, while (at least in Java 8) `Optional<T>` does have its own method called `flatMap`, it doesn't implement `Stream<T>` or offer an easy method for producing a stream. So the idiom of flatmapping a function that returns `Optional<T>` over a sequence to yield a (possibly shorter) sequence of items for which the function returned something, which is so simple and readable in an ML-like language, becomes hopelessly verbose, awkward, and even error-prone in Java.

(Also, Java Streams are, by design, not referentially transparent, so much so that they cannot be made to behave in a referentially transparent way. Which is a total tangent from what I'm talking about here, but does at least give another angle from which to see the depths to which Java misses the point on these sorts of things, and possibly isn't even able to catch it.)

All of which kind of leaves me thinking, "When in Rome, do as the Romans do." Yeah, in hindsight, the ALGOL family of languages' standard method of dealing with cases where a value might not be available is hopelessly fraught with problems. But importing a second approach from a separate language family that split off about 40 years back and started going in a whole different semantic direction into an existing language that already has its own ways of doing things doesn't appreciably improve that situation. It just introduces two competing ways of doing things that end up interacting poorly with each other.

So, to wrap it up: I'm inclined to say that keeping null and just improving the error message when it happens unexpectedly probably is the best band-aid for this problem.
Nice to see Malta remembered for once :)
Good question. I don't know of any. I'd like to read something about the ultimate demise of Usenet. I mean, "because of spam" is the easy answer, but why didn't anyone squelch the spam? Some mention should be made of Uunet's "pink" contracts, but there had to be other providers that looked the other way for a little short-term gain.
That right is, in my opinion, quite different from other rights though. Parents dont have the right to raise their children for their own sake, they have it for the sake of their children. It also isnt primarily a right but a duty, it just doesnt make sense to have a duty to do something you have no right to.
Presumably the people in tents are not choosing "I want to camp in an urban environment", but rather "I don't want to run on the financial treadmill" [0]. As that makes them useless to the financial treadmill, it is setup so they fall off the back hard and serve as an example to everybody else to keep running.

[0] That is to say, to the extent that the houseless can actually be considered making a choice, or at least having made that choice in the past and are now stuck on that path.
See also https://www.reddit.com/r/stallmanwasright :)
It ended up flagkilled again, so we've just turned off the flags to give it a shot.
if you're from germany, then here is a prettier list showing votes associated with respective german parties:

https://pbs.twimg.com/media/D2lvR35XcAArVsz.jpg:large
> move them on

When I see these disingenuous alternative ways to say that you've fired someone I just think that person is being an asshole. Why is it so hard to say you fired someone? Why is it always some bullshit like "we transitioned them out" "we moved them on" and no bullshit, "they graduated".

Using these euphemisms makes you come across as tone deaf and dishonest. Your audience can take hearing that you fired someone. If you have a hard time using the words required to effectively describe what you're doing maybe you're in the wrong line of work and shouldn't be coaching others.
Apparently patents in this form need to be abolished ASAP. Human society can't afford anything like this standing in the way of widespread usage of such well known and well available technologies.

Please, let's all go and short that patent troll.
Hasn’t this been a solved problem for a while with STUN / TURN servers?

The centralized server just handles the negotiation, so that the p2p clients can do their thing.
Well, with a site called "lolisafe", I am anything but surprised that you incur administrative costs from dealing with child pornography. :-/
Antirez on how pg and Lisp inspired Redis
By 'wrong' I mean you have algorithm A which is logically less work than algorithm B, but algorithm B runs much faster if you are in cache, but the moment your workload doesn't fit in the cache B is running much slower than A. If you don't hit that line great otherwise you have issues.
Probably SAP's, since Hybris is an SAP product.
Lots of public APIs support this behaviour, it's convenient for users. For example numpy.fromfile will accept a file object or a string.
To piggy-back off this, the record label Silent Season is full of great ambient/downtempo/spacey music for programming. Was listening to this today: https://shop.silentseason.com/album/the-waves
All the content on YouTube is nominally licensed too. But what happens when someone submits someone else's music without permission?
The MIT and BSD licenses are also Free Software licenses, see https://www.gnu.org/licenses/license-list.en.html

> This license is sometimes called the MIT license, but that term is misleading, since MIT has used many licenses for software.
>
> This is a fine license for a small program. A larger program usually ought to be copyleft; but if you are set on a lax permissive license for one, we recommend the Apache 2.0 license since it protects users from patent treachery.

and

> This is a lax, permissive non-copyleft free software license with a serious flaw: the “obnoxious BSD advertising clause”. The flaw is not fatal; that is, it does not render the software nonfree.

Note that some software licences may qualify as being a free software license, yet be not compatible with the GPL. Those are two different things.
It probably enables nice use cases but I hope it does not spread too much.

Major features an email have:

- it does not change (except for external resources, which are blocked by default anyway),

- works offline,

- can be read in ten years just fine.

I want my mails to remain static and available and I don't think I'm okay with them running some uncontrolled code.
In the Numberphile video it is conjectured that there are infinitely many solutions for all those numbers, but that solutions are very sparse. The smallest solution for 42 might involve very high numbers.
Sure, it's just a comical predecessor to tagging
As seen in the second paragraph one of them is just a sub brand of Verizon and another is a sub brand of AT&T, meaning total of 5.
Has Hacker News ever considered a policy against undated articles?

I have no idea when this was written. It uses the word "today" four times and is written in the present tense but is it referring to events as of a day ago, a month ago, a year ago, a decade ago?

Please put dates on your articles. Otherwise they read as spam, cynically positioned as "evergreen."
Strictly speaking that’s not quite true. A user can upload playlist covers and a text description for that playlist. Both the image and text could fall under copyright.

In 2013/2014 Ministry of Sound sued Spotify over not removing playlists based on Ministry compilations, created by Spotify’s users. Ministry claimed that its compilations qualified for copyright protection due to the selection and arrangement involved. [1] [2]

[1] - https://www.theguardian.com/technology/2014/feb/27/spotify-m...
[2] - https://www.theguardian.com/technology/2013/sep/04/ministry-...
As far as my dayjob goes, I'd say an average of about 1-2 hours out of each day are "enjoyable". The rest ranges from "barely tolerable" to standing at the window, looking outside, thinking "I know what zoo animals feel like now".
They pass all these silly laws like the cookie consent nag screen, the data retention directive, GDPR and now this. Then a few years later they wonder why there are basically 0 big digital players from the EU. Oh well ¯\_(ツ)_/¯ time to sue the big US companies again.

Whatever, the faster this EU fails, the better.
You yourself stated to us that Gmail team would implement AMP4Email as they wished. Did Outlook or Yahoo or Mail.ru have a choice in just telling you not to deploy AMP4Email? Or did you tell them Gmail was doing it no matter what, and ask if they wanted to not lose compatibility with 2/3rds of all email accounts on the Internet?

Suggesting any part of AMP is open still feels very disingenuous when you recognize the monopoly position of the company spearheading it.
Exactly the tool I was looking for.
Looking forward to be able to create, test and deploy my application just with few clicks.
Yahoo is a BIG email client.

The TSC requires majority consensus. Google does not have a majority.
That is basically how the time zones were set. They were modified because it didn't work. We're still working on which modification is best.

With the invention of cheap, ubiquitous, artificial lighting, it makes sense to set the clock at 13h for solar noon. Most people, if having to choose, would rather get up with artificial light and then do outdoor leisure activities with natural light.
I'll still use only plain-text, GPG-signed email.
None, there is literally zero incentive to do so. All you will get is people complaining on your issue tracker, PR comments, etc. It’s better to write your own software and never release it to the external world.
Highlight the title and the date shows up "MARCH 26, 2019"
If anyone is interested in an IRC channel for NVC, a few friends and I run ##nvc on freenode. It's small, but we'd love to grow it and spread NVC.
The date is literally the first text in the article, though it is a very light gray. Hovering over it or the title makes it black.

This is Svbtle's decision, not mine.
Again, on z/OS, this is a solved problem. If the application runs inside an "application server", for instance CICS, you can still get the dump and the CICS can continue or even restart your app (or it can be restarted through other things). You can get the dump of the process even if just one thread will fail.

I know from experience on z/OS how useful full dump can be, and I sorely miss it in Java. You wouldn't have to read the full dump yourself - a good postmortem debugger can do that work for you - displaying stack trace, locals, etc.

Good logs can certainly save you.. if you have them, and you happen to log exactly what you need. But it's much easier to look at the memory and see what went wrong. (Personally, I think logs are great on the boundary, to describe inputs and outputs.)

I also think that the exceptions are kind of wrong approach (compared to z/OS ABEND conditions), and it's not entirely true that failing loudly is a bad practice, but that's for another discussion.
Insanely low. Strangest part of the article.

Potentially it wasn't a successful exit? Dirty term sheet or multiple down rounds and $200m wasn't a successful exit?