skysight-inc/HackerNews huggingface dataset:
A core problem is that the current system conflates two subtly different notions of version: the low-level package manager version (is it backwards compatible? will it build?) and the high-level person version (is this the same library with some changes, or is it a new generation or significant redesign?).

The first notion is needed for keeping our code stable but keeping up with bufixes and security patches. The second one is needed to deal with design issues: will this change require a lot of reworking? Will it change the underlying model or abstraction in the library?

Both of these are important. But because Semver requires bumping for any breaking changes—even if they are semantically minor—it can only address the first, low-level notion of versioning, not the second.

A possible solution? We can have two minor version numbers:

4.1.0.2

Patches and backwards compatible changes work as always. But if you are making a breaking change, you have two options. If it's not too big, just increment the first one:

4.2.0.0

But if you're really changing things up and creating a new generation of your library, go for

5.0.0.0

Of course, the difference between the two major numbers is not well-specified. But that's fine! From the more technical, low-level perspective, it's no different from normal Semver: any change in the major version (either of the two numbers) can be breaking. It just also lets library authors send an additional signal to developers about the scope of the change.

For example, this scheme gives more information on how "stable" a library is. If the second major number is high, it means there are a lot of minor breaking changes; it would take a bit of active maintenance to keep up, but as long as the first major number is not changing, these steps won't be radical.

Personally, this approach makes a lot of sense to me. It's also more or less what Haskell packages use according to the "package versioning policy", and it seems to work pretty well. (There are some other pervasive issues with Haskell version numbers, but not related to how they treat major versions.)
I think the root problem is that SemVer works great, and was designed for, larger projects with many developers and a relatively stable API.

For smaller projects and libraries, it works very poorly, because these are usually "itch-scratching" efforts that don't necessarily have a clear endpoint or goal. For these kinds of packages, I wish people would just use a commit number. I really hate having to agonize over SemVer for a 500 LOC miniproject.

That kind of project, incidentally, is the most likely to be in "0.X.X" limbo forever. See for example the Clojure ecosystem where 80% of packages are this way.
I've been in IT since 1999 or so, when the high school I was attending recognized my skills and hired me on as a part of a student lead admin team. Myself and 4-5 friends ran the network with a single adult sysadmin. Since then I have branched out to linux admin in my spare time, but have only worked in MS shops. I'm currently working for a propane company as their windows admin and helpdesk monk.. guy.

I don't know a line of code, know a bit of security, but am always interested in how things work and what kind of WiFi is being run in my neighborhood, so I consider myself a hacker.
The halting problem is unsolvable in the general case, but there are lots of specific, practical cases where you can answer "yes, this program terminates".

Is it possible to specify the complexity of every arbitrary function? Probably not. Is it possible (and useful!) to specify the complexity of most functions you use on a daily basis? Absolutely.

A stronger critique I heard once is that 'computer generated complexity analysis has too much noise in it', where you ask what is the complexity of this fn, and rather than giving you O(n^2), it gives you back O(n^2 * m * q * log(r) * s^4), but it turns out 's' is "always" a small number, and m & q are constants. You can improve (but not completely eliminate) this by doing empirical testing, i.e. "the statistical sample of 1000 test runs varying the input does appear to fit an O(n^2) curve".
That's why all the CSS is inlined for you as well :)
For anyone in the Haskell world, it's obvious that semantic versioning[1] doesn't work. Some non-trivial amount of that is likely due to how horribly broken Cabal is, a problem the community remains in staunch denial of. But for the rest, one problem is that because Haskell more thoroughly specifies types, individual functions can remain the same in behavior but change in type because a bug-fix, say, fixes a record type used somewhere. The external interface might be largely the same, or even identical, but the binary output is non-backwards compatible. Dynamic libraries and strong, descriptive type systems aren't very compatible. The result is that a lot of bug fixes become minor version bumps.

These minor version bumps scare library developers, especially people that produce libraries that depend on libraries that depend on... and so on. So packages fail to build too often because of constraints. So the irony of this thorough process for package building is that humans have mucked it up and made it break builds. In almost every case in which semantic versions blocked some update from occurring and caused my work to stop, it was because I needed to bump the constraints on some third-party package. It's a boring process that I've only become too accustomed to:

1. try to build with updated libA 1.1.0-foobar

2. libB depended on libA < 1.1

3. download source for libB

4. update constraint and repackage libB locally

5. rebuild main application

This happens just about every time there's a new version of any major piece of Haskell software.

If we really want to move into The Future, we need to start versioning individual modules or functions, instead of whole suites of software. But the cognitive burden of doing this is very high, and the software to do it hasn't been written yet.

[1] The Haskell community doesn't technically use semver, but rather a related policy called the package versioning policy. That's a nitpick though, and doesn't affect my argument.
Is there something inherently wrong with firing "low performers" rather than laying them off?
if you can't figure out how a vast, organized dues-paying professional guild full of highly educated, intelligent, like-minded individuals can help you, i kindly suggest that you contemplate the possibilities a while before trying your hand at being a c-level executive because you'll probably be caught in the same position as the o.p.

a professional board is basically a labor union dressed up for white collar people. they'll argue until the end of the earth that they aren't, but let's be real, that's what it is.

also, if you're a vp-level or above, and not a significant owner, negotiate a severence package. ever wonder why they have severence packages? this is why. because if you don't, you're highly likely to become a bitch. in fact it's pretty much guaranteed because the cost of losing you is nothing.
I think it's partially because of how well connected the Netherlands are, and partially because of lax Ecatel policies regarding abuse.
Apple Wearable to be announced at Sept Event
Why has no one mentioned jail time for breaking the law and potentially damaging people's lives and livelihood? Why do we always think money is the solution. Jobs is burning in Hell, so no hope there, but anyone else this can be attributed to should do time, not pay their body servants salary and laugh at how the poor struggle to eat.
This really sounds like status quo bias to me. No one's going to tell you that face to face communication isn't an incredibly efficient medium, but that doesn't mean teams and companies built around remote work can't (and don't already) thrive. I would even hazard that your experience is possibly colored by the teams you've worked on and the companies you've worked for.
Yeah this is really the worst part even they were actually firings.
NASA is/was noted for releasing a large number of people after successful missions. Everything is going well overall, they just didn't need everyone around during long idle periods. Might presume SpaceX is doing the same: what do you do with >200 idle personnel? pay them to do nothing, or release them and hire as needed when the time comes again?
War in the womb
That's the nature of all crime.

Unless you're an idiot you either stop doing it, or get better at it. That's why when you commit a crime they send you to criminal school, so you can swap notes about all the other ways guys got caught.
I've been using Fortheon as well for the past few months as part of their beta program within Novation Mobile and it's been awesome so far.
Reality isn't real only if you're poor (and many of the poor in America live like kings compared to the poor in other parts of the world or in the recent past). There are a large number of fuzzy groups of people in the world whom have little concept of how it is to live in any group significantly distant from their own.
What's M5?

I had a short gig at Cognilytics in 2010, and I can't figure out what any version of it has to do with Kawasaki Robotics, but...
But you could get 2/3rds of the US population operating in just 15 states. 1/3rd in just 4 states.
Question is whether they are actually "low performers", or just culled as most of the staff became unnecessary and legalisms lead to one choice of euphemism over another.
The best benefit of Fortheon is that all your servers traffic is run through your own system that you built, load balancers, etc. but it's super easy to configure.
This is awesome. I wish this was extended to teach more advanced topics such as how to create reusable packages, big O notation, etc.
While it may be possible to statically analyze time complexity of code, I'm not sure it will ever be a good idea to go whole hog and generate version numbers from these analyses due to the fact that it's never going to be 100% accurate.
R&D? Ping pong?
In this case I think it might, I'm not a lawyer, but the relevant law seems to be this one (http://www.leginfo.ca.gov/cgi-bin/displaycode?section=lab&gr...), which defines layoff as

> "Layoff" means a separation from a position for lack of funds or lack of work.
SpaceX doesn't owe anything to you unless it signed a contract that says it has to employ you for this amount of time. I don't understand neither laws, nor the people who would foster such lawsuits. That's using government to steal someone else's money because you feel it's unfair that they laid you off.
I've helped the team out a bit - if you have any ideas with other tools they should integrate, email their support I'm sure they'd love to see how they can make it happen.
Since the row has "n" entries, and errors can accumulate in each add, something like (n+2)*eps may be more appropriate. (I wrote a similar library in Matlab.)
The question was "What's the equivalent to it nowadays?"... unless there's something else that I'm missing, I think google groups is where such discussions take place and that's where I've participated in for the last decade or so.

I don't think newsgroups are only used for piracy. Most open source products have a Google Group associated with it unless they're using the discussion on Github or Stackoverflow chat / IRC.
I'm an artist. I'm engaged in writing and drawing a graphic novel about a robot lady with reality problems.

Reading HN gives me things to mull over regarding my own hesitant steps into the world of promotion, sales, and making a business happen on the web.

Also I used to dabble in programming back in the days of the C64 and Amiga. I will probably never do any major programming projects but I like to keep up with tech news, and this is a decent source for some of that.
My work laptop has terrible battery life and a horrible rubber keyboard. But the people are great, the hours are relaxed and they let me write Scala all day.

It's worth working somewhere you enjoy, and if what your laptop looks like is what you care about then sure, weight that appropriately in your decisionmaking. But for me, while the computer hardware might be a flag that shows how much a company values its employees, if it really was just a question of different hardware in otherwise identical companies then no, that wouldn't be worth changing jobs over.
10,000 Processes in Om
Do the affected employees know they're in a bad state? Would be courtesy to let them in on their low performance so that they can make a job change before they are "terminated with cause" as that never looks good for future employment. Are they put on a performance improvement plan? It sounds pretty fucked up.
Unfortunately this was not the case. For ranking purposes Kojitsu had to crawl every unique link it found which ended up being very resource intensive. There were multiple servers dedicated to crawling, in addition to the app and db servers.

Running Kojitsu taught me a lot about building up technical infrastructure.
Earl Grey tea intoxication [pdf]
HackBack: A DIY Guide for those without the patience to wait for whistleblowers
Yep, it's poverty morality, as soon as you make 50 cents an hour more than the next guy you're rich, and have no right to complain about anything.

Even when I was making $15 an hour answering phones, I'd hear no end about how the bus drivers on strike shouldn't get paid $20 an hour. Yet no one wanted to quit their job and become a bus driver.
I didn't have the (1987) tag when I left my comment.
not sure if there is a community (at the moment?), but there is a wealth of under-the-radar type stuff which is interesting for those outside of the biz (i.e. military).

there seems to be about a 60/40 split between straight tech/programming stuff and more general/non-technical information in a pleasantly-mixed churn. i find HN to be a good motivator to look at other fields through a "hacker" lens and think in an architectural/programming/entrepreneurial/system-level manner.
No, but some of the things that have been said and done in this negotiation were objectionable, and whitewashing all of it because 'hey, capitalism' is too easy. Nobody forced either side in this negotiation to harm the authors.
If a murder weapon is found in your house, you're going to have a really hard time explaining that "I was just holding it for a friend."

Just sayin' ...
Gemalto Takes on Hacking With $890M SafeNet Deal
Just a reference, but the style is intended to emulate _why.

Quil came from clj-processing, and the relevant discussion about naming is here: https://groups.google.com/forum/?fromgroups#!topic/clj-proce...

(I wasn't involved, I just remember things)
That's a pretty great breakdown. When it comes to the actual costs of KS and crowd funding we did ok. Profit isn't the big goal with that as much as getting exposure / marketing and proving the market.

I think we were a net positive overall, but not by a big margin or anything.
Windows and Internet Explorer Vulnerability Patch Released by Microsoft
I think after 2008 it's pretty clear that executives personally don't have to fear any consequences from wrongdoing. Either someone way down the chain of command goes to jail or the shareholders pay for a settlement.
the bulk of the agreement was not in fact about poaching engineers, but rather sales and product people

Do you have a better citation for this claim? The linked Business Insider article does not claim such a thing, and the court filings the article cites do not support the claim.

The article cites Google's Special Agreement Hiring Policy that divides companies into three categories: Restricted Hiring, Do Not Call, and Sensitive. Only the protocol with respect to Restricted Hiring companies is constrained to Sales, Product, and G&A. Google's protocol for the Do Not Call companies seems to prohibit actively recruiting any employee at those companies. The article does not address whether other companies limited the scope of collusion to, "sales and product people."
> SpaceX doesn't owe anything to you unless it signed a contract that says it has to employ you for this amount of time. I don't understand neither laws, nor the people who would foster such lawsuits.

If they agreed to employ you in a state, they agreed to do so under the laws of the state. Even if you don't understand the laws, you should be able to understand that the existence of laws providing various protections is part of the context in which people agree to accept employment from a particular employer, in a particular place, and under particular payment terms.

Employers certainly consider the legal environment when they choose to employ people in a particular location, and when they decide on the terms of employment.
The Fish Matrix: this gigantic deep ocean sphere will raise 1,000 tons of tuna
Personally, I would far prefer a strong contracts system over semantic versioning. The ability to say "I rely on these N interfaces to present accept these argument types and return these types, and here are some test arguments and the values I expect returned" to be a much better way of describing what you rely on. Even better is that by defining things in terms of contracts, you should be able to replace dependencies with any module that matches the contract you require.

In general, it's always better to have a computer enforced standard over a human enforced one. Semantic versioning can just become human readable sugar over a set of contractual expectations.
National collusion against talented individuals born by chance within the boundaries of another administrative area seems more like an entrenched privilege than a worthy "battle", especially given how much of US companies' revenue comes from outside the US.
Allegedly, Cisco had this as official policy. They believed that by firing their lowest 10% after performance reviews every year, they would become a lean and mean beast. In practice, this sort of policy leads to the worst incentives for a business. Managers fight to protect friends at performance evaluation time who don't deserve it over those who are actually star workers, but less popular.

In practice, you lose people who are keeping the lights on and who hold vast organizational knowledge. Meanwhile, your entire company becomes physically-attractive subordinates.
Im a project manager in customer support. I have a science (chemistry/physics/computer science) background, but I never worked with it professionally. The only programming I do is purely casual.

I enjoy reading about new tech and business - I like the mix of that and other general interest stories. Mostly I come here for the comments - I read comments before most articles, and I tend to only read the articles if there is a good discussion around them.
My group needs to write some iOS apps so I bought my own Mac Air. I needed a new laptop anyway, and the fact is, I would rather get up to speed with iOS on my own time and get the projects, than see them hire a contractor to do it. My company Dell is an obsolete brick anyway and I'm tired of carrying it around.

It's all about investing in one's professional development. I don't expect this company to coddle me and give me toys whenever I beg for one. I just needed a great laptop, they pay me well, they let me work from home 100% of the time, so this is how I give back and keep myself relevant and valuable to the team.
Change.org Responds to Linus Torvalds Petition
Can we please make HN mobile friendly?
Reading HN on my phone is a pain in the butt. It would be really great if HN was mobile friendly so I didn't have to constantly pinch zoom in to read and click on posts.
Also an actuary. Consulted at one time but work at a company now. I started programming around the same age and also use it for work. We all do SQL but I am the only one doing general purpose coding at my company.

Also have web skills (the coincidences just keep coming). I do a few things on the side and am contemplating a bootstrapped startup soonish. For example, I did everything but the logo on this site: http://tvsift.com/
Desktop-sized laser supercomputers could be coming by 2020
Original complaint from Linus here: https://plus.google.com/102150693225130002912/posts/DPY7H4a9...

Quote:

Somebody signed a Change.Org petition in my name, and using a really old email address of mine.

So since I apparently had an "account", I reset the password, and made a petition of my own.

Change.Org - please change your dickish ways. Ok?﻿
This may be true, but in practice (as pointed out in the article), EVERYTHING can potentially be a breaking change (http://xkcd.com/1172/). Since this is the case, you either need to always bump the version number (rendering the patch number useless), or bump the patch number but then have to wait for the bug reports to come in... once you get one bug report stating your patch broke someone's code, you would bump the version number... this doesn't seem practical, however.
This isn't a PR case, it's a court case, fuck what anyone who is not the judge thinks, lawyer up and go get some money.

Do you think the execs at Google/Apple care what Joe the plumber thinks about how much money they make. No, they're going to court to beat the settlement down.

You can be broke and have the adoration of the poor, or you can be rich and hated by the poor.

(There is a 3rd option which is chuck a few thousand at a democratic politician, and write an op ed piece in the NYT every few years about how the rich should pay more taxes, and enjoy not paying taxes.)
I operate an small non-profit burlesque museum, but I used to work as a manager/lead tech of a IT consulting and training company. I left tech because the stress was making me ill, but I actually miss it.
Yes, Chrome on Android does appear to be broken in a similar way. I'm not sure about Safari on iOS, though. Regardless, two or even three of them being broken in the same way doesn't mean that they aren't broken. The state of being broken in independent of how many different systems are broken.
cash in the bank, ticking time clock with career/kids
My post is more about the hypocrisy OS peterb stating "fuck those greedy bastards" while also implying that every plaintiff should get $5 million.
I don't think the problem is with laying off unnecessary staff. I think this is a notification and backwage issue. If someone works for you for two weeks, then gets fired, you can't just not pay them for the time worked. Also, in most states, you cannot lay off employees without cause (meaning without a specific issue with a single employees behavior or performance) without sufficient notice.
Wasn't this similar to a plot on "Friends" -- I think John Favreau was the actor.
Thanks. I did the same a few years ago when I took a job that required Filemaker development and I had never used the software before (downloaded the free trial before the job). Once you start using something, and you have the knowledge to know where to look for help/answers, you can do quite a bit.
The argument in the article seems strange to me: "downstream relied on undocumented behavior, and now that behavior has changed, so downstream breaks"

So what should upstream do? After all, the premise must be that the upstream does not control or even know about all the clients! The entire point is to separate the concerns, so how could upstream know if a bug fix is a breaking change if it passes the internal regression tests?

Of course they can't know without asking downstream, and hence the use of release candidates.