skysight-inc/HackerNews huggingface dataset:
[Be kind, damnit](http://hypertexthero.com/logbook/2015/05/be-kind-damnit/)! :)
except for the small part you're missing where Britain wouldn't exist at all because it'd be called Germany?
The irony being people then have to shove them in massive cases, often with built-in extra batteries, because the thin phones are vulnerable and have crap battery life.
Can't edit old comment. Made it work as a bookmarklet with following code:

javascript:(function(){document.getElementById("hnmain").width="50%"})();
GopherFest 2015 will livestream on YouTube tonight
Meetup page is at: http://www.meetup.com/golangsf/events/220935959/
Close, but that's an elitist attitude. More like I help things along by sharing lessons learned from thousands of academic papers, industrial case studies, and so on that I've read. Our industry has a problem where it continuously forgets past accomplishments and solutions. An example is the "can an OS be written in a managed language?" question that keeps popping up despite it being done a half-dozen times. Or endless tactics to avoid stack-smashing while MULTICS's reverse stack solved the root problem in early 70's. Can we scale linearly to thousands of nodes with strong consistency? NonStop and some MPP's did that in the 80's while publishing how.

So, it's not that people are stupid or inferior to me. They've just put more of their time in other things (eg work, coding) rather than digging out gems stored behind paywalls or published in obscure places. I've been digging for years along with R&D on much of it. I share that stuff where it might help and it's helped many people/companies in the past. So, I keep doing it.

People are free to ignore any suggestions. About 99.999% do.
I've never tried to write a game before, but that seemed to me to be a surprisingly small amount of code.
Watch Out: The Consumer Credit Tsunami from India
A DIY guide to startup marketing
I think of it like this: traffic lanes are like slinkies side-by-side with each other. Each slinky expands and contracts roughly equally, but not at the same time. If you can hop from lane-to-lane such that you're maximizing your time in the "expansion zone" before it contracts to a standstill then you'll absolutely beat someone who never changes a lane.

More practically: don't change lanes from a "stuck" into a "moving" lane if the moving lane has been moving at a steady rate for more than 30 seconds, because it's probably about to contract and be stuck. If you're in a moving lane, jump ship as soon as it seems like it's beginning to get stuck. This is 1/3 art, 1/3 science, 1/3 likely placebo.
Sony Music's contract with Spotify
Note that Noether's theorem does not apply to the universe as a whole. Expanding universe is not invariant under shifts in time. Energy is not conserved in expanding universe.

https://www.reddit.com/r/askscience/comments/1m43o0/if_noeth...

http://www.preposterousuniverse.com/blog/2010/02/22/energy-i...
We're on Rails 4 now for the general "Chorus" codebase (but you're right, we include a number of varied apps under the same umbrella when talking about our platform)
No the logical conclusion of my argument is that we as a society have to start accepting that a large number of people will live a large part of their lives without being "productive" and find ways to deal with that.

Also we have to accept that what is long term best for "The Economy" isn't necessarily short term best for all the people in the economy.

I'm not against growth, I'm just against ignoring and refusing to pay the very real human costs of growth.
I dealt with this recently. We wrote a system that had a hard-coded data size in it. Later, that data size had to change to a flexible value chosen on the fly, and I was the one that had to go through all the code to make all the changes so we could handle that. It took a long time. Partly because we had no unit tests (a whole 'nother discussion), partly because I wasn't familiar with the area (all the areas) of the code that needed to change, and partly because we had said, "YAGNI" and not made our code configurable enough from the get go.

I started to curse YAGNI in the middle of that chore, but then I paused and thought about the many months of productive use of this code that we had been enjoying before this point. And even though it took me significant time to make that change, the production code was still running along just fine during all that time, still bringing us value. I decided that I was glad we had said, "YAGNI" at the start.
The only thing I design to extend is the data. That is, I get suspicious now when I take an existing method and try to parametrize it, because what I'm doing if I do that is building up a richer all-purpose code edifice - and that is a Bad Idea when we know that code is disposable and data isn't. By default, all programmers start by planning and testing code towards one use-case, and then they add the other cases one by one. Code that is arbitrarily made "generic" or "extensible" imposes a testing regime that programmers do not arrive at within the natural edit-test-debug cycle, but instead have to consider separately.

With data this isn't really the case. Achieving both YAGNI and DRY at the same time is _easy_ with data. Data tends to become more generic and more fungible as it becomes more crude and simplistic, and less so as a defined schema builds up - for example, a Point class with "x" and "y" fields, vs. a numeric array of 2 or more entries. With the former, you can end up with your Point not being the same type as someone else's completely equivalent Point. With the latter, agreement mostly rests on which kind of numeric type you're using(which can be enforced by the language), and the ability to operate on many points as well as just one point is straightforward to support yet not strictly required. And so if the goal is reuse, you design downwards; if it's type safety, you design upwards. Achievement of both imposes an enormous code burden as you try to enumerate all the types and provide various translation layers and fallbacks - in turn creating more code paths, more situations where you can throw an exception or return a null value, etc. That can add up to a lot of lines of code, and a performance tax, and more failure modes, in exchange for sometimes eliminating some runtime errors.

I think we naturally tend towards overdefining our data, though, because it looks more "correct" to tightly define each block of code so that it says "point.x" instead of something like "x = point[index * 2]".
For those looking for a high performance inter-thread library, I've found LMAX's disruptor library has worked quite well: https://lmax-exchange.github.io/disruptor/
You can look at it from the other side too, maybe Americans are putting too much weight on the SSN. I could practically post my Spanish ID number next to my name online and nothing would probably happen. As a matter of fact, a stupid regional government agency posted it next to my name in 2011 and it's been up ever since.
> [F]or any study that requires sampling ... making sure we have enough data to ensure confidence in results is absolutely critical.

Is this necessarily true if you can sample from the population in a fair and unbiased way?
So in your magical Islam free world, what would these kids be doing instead?
What a crazy story. Good to hear that you were able to secure some office space fairly quickly and get your stuff back. I love WeWork, when I was contracting in Seattle a few months ago the startup I was contracting for had a space at WeWork Seattle. What a great environment, tonnes of networking events, free beer on each level (all different types) that is filled daily, various games like foosball and ping pon you can play against other companies, they have definitely nailed great co-working spaces.
Meat the New Tinder
That makes sense. The combinator approach might be verified using a form of design by contract or VCG's if it's simple functions. I'll look into them when I take the deep dive into functional programming.
Defaulting to Thread-Safety: Closures and Concurrency
I'd still much rather invent a pronoun like "xe" than succumb to the increasingly-popular yet cringeworthy mangling of English grammar required to mash "they" into the role of a singular pronoun. I'm indeed losing ground - and sanity - with this view. It's even worse than double-negatives or saying that something is "so wizard" or the recent Icebreakers commercial about mints that are "fruit on one side, cool on the other". It's those little things that make my brain twitch when processing them.

Incidentally, I'm also confused about why so many folks seem to take offense to "it". Is it because it's impersonal? Or perhaps because it represents implicit objectification (which I also don't understand, seeing how everything representable by a concrete noun - and even by most abstract nouns - is inherently an object)? Or perhaps because it's slightly cacophonous? Or because it implies a lack of gender rather than a non-binary gender? Would using "it" as a personal pronoun for someone who lacks any gender identity be appropriate?

Basically, not only is "they" wrong grammatically, but it also fails at it's job and makes little sense semantically. If both genders of a traditionally-binary gender system are expressed, then a new pronoun (like "xe") seems appropriate. If neither gender is expressed, then a neuter pronoun like "it" seems appropriate. If some third gender is expressed, then - like with dual-gender pronouning - creating a new pronoun to represent this seems to be necessary (how about "ve" or "fe" or "te" or something else that looks like "he" or "she" or "xe"?).

In other words, extending the English language to account for a more modern representation of gender needs to be consistent with the rest of the language. "They" breaks language parsing too significantly to be a worthwhile long-term solution.
Well I'm not an expert in compiling Lisp and I guess you're not an expert in compiling Ruby, so we're probably not going to come to an agreement on this.
Thanks for your thoughts! I really appreciate your time to write the post out.
"May very well speed up the rest of the implementation".

Experience tells us that the rare cases where it does are vastly outweighed by the cases where they do not.

"But again, there is a large continuum of possible approaches here, and insisting on reducing it all down to either "do everything" or "YAGNI" is really kind of bewildering."

This is the "I'm being more reasonable" logical fallacy.

There is a large continuum of possible approaches to the standard prisoners dilemma, but it turns out that there is an optimal solution. In my experience, YAGNI is an optimal solution to software engineering. Sure, there are plenty of times where it doesn't work out. But in any given solution, without a time machine, YAGNI is the sanest strategy.

If this is bewildering to you then you don't have enough data.
Great news for Gigaom that it will be back August 2015, but will the existing staff be offered their jobs back or will it be run as an entirely new site? I wonder if Gigaom can or ever will be the same as it was? I guess we'll have to wait and see. I have my doubts that the great Gigaom will be the same as it once was.

Also, did anyone else find this "press release" read more like a praise piece on Byron Reese and less about their plans for Gigaom?
Don't Write Off Paper Just Yet
I think one of the most corrosive lessons learnt from schooling is that accomplishment & success is based on following certain rigidly established guidelines created by some shadowy cabal of forces for essentially arbitrary reasons. You are judged by how well you conform to those standards and anything that does or does not happen as a result of your actions is out of your hands.

It's an incredibly efficient way to scale your education system to the masses but it's producing broken people at the end of it who end up believing math is just about following the correct steps, history is about memorizing facts and english is about putting enough words on the page to hit a word count.

Instead, we should be training students to take an outcome focused approach. Define what is the ultimate goal they want to accomplish, establish how to measure their impact towards the goal and suggest previously established strategies that have historically helped but then only evaluate them on whether they successfully achieved their outcome.

Sports is actually a great example of this system working in practice. Your goal is extremely clear, there's clear feedback on your performance and tactics are widely available to learn. Nobody will penalize you in sports if you choose to kick with your left foot when "everyone knows" only right footed kickers succeed in life.

More education should be structured around such a philosophy.
Are your Apple products making you poor?
The Air Force Has Certified SpaceX's Falcon 9
If It Bleeds It Leads
I disagree. Here's why.

If you're good at web development... that means you understand HTML, CSS, and JavaScript and you understand them at the level you should if you want to call yourself a web developer, then learning whatever framework a hiring manager wants you to know this week is trivial because you understand how the web works.

The problem is a lot of people just learn Angular for a gig. Then they leave 12-18 months later and go learn something else. It's never enough time to actually get good at anything.

And let me tell you... the hiring managers are taking instructions from development teams looking for talent. Those teams often inform management what is the hot new tech that needs to be used. But none of these things that people think they need to know have been so battle-tested yet that they are for sure the "next big thing."

I think experimenting is great. I don't think developers should worry themselves to death over having to keep up with whatever's new this week. I think devs would be better off investing that time in getting really great at the web. Really learn what semantic markup is. Really understand floats, clears, various display types. Really understand the fact that the web, without any JS or CSS, works great on mobile, because when it started, screens were 640px wide, and as a gang of developers, we've layered on boatloads of code to make it not responsive, only to make it responsive again. :)

And then, I believe everyone will be in a much better position to make informed decisions on whether or not "hot new thing this week" is really worth learning.

But what do I know?

Trust me -
>making sure we have enough data to ensure confidence in results is absolutely critical.

Yes, it's necessarily true. If your sample is small you are necessarily subject to large sampling error.

In essence: the individuals you happened to pick (even fairly) are overrepresented, and the rest are underrepresented.
Let's see the drug war, DHS, military, NSA, no child left behind--just to name a few. The gov increased under Reagan despite what conservatives will tell you. The GOP has been part of massive increases in gov. Why would someone in political power ever be for downsizing gov, save a few outliers? It's just pandering to the base.

A short-term sabotage is not out of the question.

Actually, I have a graph showing how gov actually increases more under GOP control than democrats. Hold on.
Companies in the US still prefer hire remote workers in the states over europeans, I guess mostly due to the timezone, and because of the legal issues, it's always easier for them. You need to be an exceptional developer to overcome this disadvantage and make them they to consider to hire you.

Besides that, most of the positions posted in job boards are for Full-Stack or Front-End developers, not many Back-End or Data Science, which is what I am looking for.

If companies in Europe were more open to telecommuting, we would have much more chances to get a remote job and companies would have more chances to hire better developers. I guess this will change in the next years.
"If this bubble pops it's over for me, right? For all of us?"

It might be harder to find work, you might not get 15K a month, but computers aren't going anywhere. This is still a good field to be in even if there is a "bubble".
>* If you can learn this while implementing the pricing in the first place, then you haven't lost any time reimplementing.*

But, isn't this the same kind of thinking that necessitated a precept like Yagni?

I wonder if the very notion that we are "architecting" vs. simply building software to solve a clear and present problem is at the heart of the tendency to overengineer.
That does sound difficult. Maybe do it bare-metal on a simple, non-MMAP architecture* with basic routines coded in assembler. Both main interpreter and JIT'd code might reference those core functions. I know it's not directly solving the problem but I sneak around the impossible parts wherever possible.

* Come to think of it, one of those microcontrollers or Java processors might come in handy here as they supply basic libs or RTOS's with primitive I/O functionality.
SQL Server 2014 Columnstore Index
I am not a fan of the language myself, but Java is definitely still worth learning. It might not be the flavour of the week like Javascript or Go, but a lot of companies still use it (popular in the enterprise) and if you want to build an Android application, you'll need to develop using Java. Once you learn Java, you will find learning other languages like C# or C++ will be a lot easier, it's a great exercise in patience and a gateway to other languages.
Hmmm... Very uninformed of you.

Just walk into an alley at night in Manhattan or Chicago or Boston or Los Angeles or (surprise!) San Franciso and you'll know... Seriously, read the newspapers of any more or less poor third world country and you will find many notes about people mugged and killed, stabbed or shot to death, to steal them some US$75 chinese MediaTek shitphone you can find in Amazon.

I'll give you some newspapers in Latin American cities that range from 6 to 25 million inhabitans:

http://www.eluniversal.com.mx/

http://www.eluniversal.com/

http://www.clarin.com/

http://www.eltiempo.com/

http://oblobo.globo.com/

http://www.folha.com/

As always, Google Translate is your friend.
>All this pseudo-hipster "the web became a worse place when designers got involved" stuff really annoys me.

The web became a worse place when marketers got involved. Marketers ruin everything. [0]

[0] https://www.youtube.com/watch?v=Y7FVOSA9jIE
No. Fads happen too quickly; culture doesn't change significantly on the scale of weeks or months.
Here's my dilemma: My startup (https://fpvracing.tv) users are literally 98% male so it would seem obvious to target this demographic with images of sexy female models, but I'm concerned about the ethics of doing so. I don't want to perpetuate the gender disparity.
Getting started with the Web
Saying "with a liberal bias" is certainly putting it mildly.
source: https://twitter.com/glenmaddern/status/603346675931938817
"Increasingly popular" - they as a singular pronpun has been pretty common for very many years. It dates back to the 16th century and has been waxing and waning. Prescriptivists might not like it but descriptivists see it being used for hundreds of years.
Silk Road moderator Peter Nash released from prison. Now he tells his story
So now the analogy is to growth and dying off rather than selection, and the analog of the meme is the bacterial population, rather than a gene?

Why are we trying to make these ham-fisted analogies at all? Ideas do not behave anything like genes; they have almost no properties in common with genes.
> For this purpose, fetch-and-add would be more efficient. Multiple writer contention is much worse with CAS.

Why, out of interest?
Or actually, it's really kind of amazing.
Previously on Hacker News:

https://news.ycombinator.com/item?id=3830867

https://news.ycombinator.com/item?id=9038505
It's in the second paragraph of the article. They used a Get Transcript web form to get your prior year tax form from the info they had from the Anthem breach.
> This is the "I'm being more reasonable" logical fallacy.

No it's not. It's me outright rejecting the claim that "YAGNI is an optimal solution to software engineering". You can certainly say YAGNI in specific situations, but as a general approach of never building anything that's not immediately needed this very moment, I strongly disagree.

At this point, I'm starting to suspect this comes down to the difference between "programming" and "software engineering" (which is to say, the difference between solving specific problems vs making core architectural decisions).
> Take specific note of the big differences, the first link mostly consisting of calls to violence whereas the second link is mostly reports of violence.

I disagree with that characterization, and will note further, that of those things that are "reports of violence", they are largely:

(1) reports of violence by God, or
(2) reports of violence by people acting out calls to violence from God, or
(3) reports of violence that are explicitly condoned as good

None of which are substantially different from a call to violence, especially when they are reports of future violence that meet #2 and/or #3 (as many of those from Revelation are.)
> Partly because we had no unit tests (a whole 'nother discussion)

I think that the is the primary point. If you have good test coverage at each level, it's actually really easy to make large sweeping changes to a codebase. If you don't have those tests, it's hell. This is a big part of why I think unit tests are ok, but not nearly as important as good E2E and perf tests, as painful as they can be to write and wait for to run some times. Good high level tests let you tear the heart out of the codebase, replace it and still be confident it works.
Just how Kafkaesque is the court that oversees NSA spying?
Yeah, but leaving out "quote" is like leaving "if" out of C.
I think the difference between the pro-YAGNI crowd and the sceptics here is one of absolutism.

You have immediately translated my position, which was about risk and confidence and making a cost/benefit judgement based on the best information at any given time, into an absolute one, where we know the full requirements for a project a year in advance. But that isn't what I said, or what several of the other sceptics here are saying either.

To put it in your terms, we're not saying you should build 11 spare basements because you've got the concrete guys on-site today. We're saying if you're building a concrete basement then you can reasonably assume this house will also soon have external walls that will roughly match the signed-off, legally-binding planning consent, so if you don't put the rebar in before the concrete sets you're going to have a much harder time finishing the house later or may even find it is no longer cost-effective to do so because the cost of doing that preparatory work only when you're certain you need it will be very much higher.
The company I joined makes packaging machines. So there is some "software" development for PLCs and robots but it's nothing like the modern software industry. Plus feature creep costs the customer millions, so it is a pretty fixed deliverable.
Stripe Discussion Papers (via http://blog.alexmaccaw.com/stripes-culture)
In the short term, not much
I would have been happy about this a year ago, but the Verge has really been going downhill recently - clickbait, poor articles, less of the awesome long form features they used to do etc. Probably part of the reason Topolsky left if it is due to pressure from Vox. Hopefully ReCode doesn't go the same way.
This Door Is the Epitome of User Experience Design
It sounds like most of your pain came from the code not being DRY. That is, this data size constant was duplicated in many places, rather than defined in one central place.

Unless I'm misreading you, that's not an appropriate YAGNI case, as Fowler writes:

"Yagni only applies to capabilities built into the software to support a presumptive feature, it does not apply to effort to make the software easier to modify"
https://mises.org/library/republicans-and-big-government