skysight-inc/HackerNews huggingface dataset:
I don't get why it seems like languages are designed for convenience then later down the road billions of hours are spent trying to get better performance.

I have seen this happen over and over with PHP, Ruby, js, and now Python.

The best solution is to stop using a slow language for these types of applications. Personally I don't see a point to investing so much in these projects, since all it does is encourage developers to continue their bad behavior.

"Oh don't worry about it, they're working on a JIT if performance is ever an issue" -- lead dev deciding to write something that is expected to handle 10k transactions per second a few years later in Python.

If performance is ever going to be important just use a high performance language and be done with it. Then you don't have to spend years and millions reinventing the wheel like Facebook did with PHP.
NeoVim is really a fork though, not a separate implementation.
Any sort of advocacy for these services or against them should be followed through with empirical data showing the outcome with them existing, after a year, and potential outcomes if they did not exist at all. Using data from the real world. I think you would find that on an individual level if people did not have the option, the amount of damage done to themselves financially would be less. In any case heavy regulation and monitoring of both the services and the users of the services, as in keeping a full record of their finances for future analysis should be mandatory... so we can get the best policy implemented in regulating these services. Instead of the arm-chair intuitive understandings of the problems jaded by appeals to emotion and dogma whether capitalist or socialist.
Yep, also noticed most of the people screaming about those people are also adamantly against the one proven technology ready to tackle this problem. They'd rather watch our planet die.
The funny thing though is that tomorrow will resolve itself by itself. If the next guy finds the code too unworkable it will get replaced or the company dies out. Either event is not really a problem. Somewhere money is found to pay the replacement, people find new jobs, new companies take up space opened by other companies dying.

Everything else comes from the need to pay the bills. What does your landlord say if you don't pay your rent? What do you say if your boss doesn't pay you? It's not a management philosophy it's people trying to pay you and themselves. And even that may fail one day. You're probably doing the same, when you are like most people going to work every day despite having other quality ways to spend your time, e.g., reading a great book.
There are quite a few errors in this article that could occur in Rust and Swift as well. Did you actually read this article?
I once ran out of cash when driving across the country with my family, because the bank froze my account 2 days after supposedly clearing a check and telling me I had access to my funds. My bank told me it might take up to two weeks to get access to my funds. I would have been much better going to a check cashing place, because of their clarity and transparency.
I almost ended up having to sleep with my kids in the car, or in a park somewhere, but we managed to find a pawn shop that was open 24 hours. We paid around $60 to borrow $1000 for two weeks, which is a high rate compared to a regular bank loan if you can get one. But it was the difference between my kids sleeping in a hotel and being homeless. People who want to shut down these kind of services have good intentions, but the effect of their paternalism would be to reduce choice for poor people, and make their lives worse.
Not only that, but her mother was brought up that way, and her mother, and her mother, etc. The Civil War in the US broke that mold without a doubt, as certainly did WWII, but the people who make the rules and make the propaganda love inertia and keep trying to push women back into that traditional role, even though it is unhealthy in today's knowledge economy.
> Put a tax on carbon & market forces will solve everything.

Unless you can get India and China onboard you will solve nothing. You will just end up moving more manufacturing to those countries. Total CO2 emitted will not change.
Not really, you still have all the WordPress drawbacks (security risk, plugin incompatibilities, crashes).

Last time I tried setting up caching with a wp plugin it ended up bringing the whole site down...
As a developer who took 7 months off of pat leave, I'd recommend devs seriously thinking about it.

A remote working dev has the flexibility to earn a good keep while also letting their partner have the more rigid location and schedule.
I think you misunderstand me. I am not arguing that you should censor what you say; I'm arguing that you should take extra care in how you present your argument. (Or, more simply, it's not what you say, it's how you say it.) The HN community strongly values civility and substantive discourse. To discuss difficult, contentious topics requires extra effort to ensure that forward progress is made.

If that level of restraint doesn't interest you, HN might not be the place you want to discuss these types of topics. Regardless of your position, HN members will downvote and flag uncivil and flamewar inciting language.
The problem is that these data structures don't have behaviour. They're pure, immutable data.

The fact that I have to wrap them in an interface is also a performance concern, because an interface devolves to a pointer if it can't fit the contents into a single machine word. So in effect, every single struct becomes a pointer, which in my case seems unnecessary.

There are some concerns that cut across all uses of the data that could be methods, but even things like mapping over (transforming) the data shouldn't really need to be built into the data structures via interfaces. Not least because it's horrible to write. For example, consider this:

type Expression interface{}
type And struct {
LHS, RHS Expression
}

You want to be able to do something like this:

newExpr := Map(expr, func(e Expression) Expression {
if and, ok := e.(And); ok {
if and.LHS == True {
return and.RHS
}
if and.RHS == True {
return and.LHS
}
}
return e
})

How do you implement Map? You have several choices. You can let Expression have Map(), and then every expression needs to implement it:

type Expression interface {
Map(fn func(e Expression) Expression) Expression
}

func (e And) Map(fn func(e Expression) Expression) Expression {
e.LHS = fn(e.LHS)
e.RHS = fn(e.RHS)
return fn(e)
}

Or you could do something like:

type Expression interface {
GetChildren() []Expression
SetChildren(...Expression) Expression
}

func (e And) GetChildren() {
return []interface{e.LHS, e.RHS}
}

func (e And) SetChildren(children ...Expression) Expression {
e.LHS = children[0]
e.RHS = children[1]
return e
}

Now you can implement Map() once for all expressions:

func Map(e Expression, fn func(e Expression) Expression) Expression {
children := e.GetChildren()
newChildren := make([]interface{}, len(children))
for i, child := range children {
newChildren[i] = fn(child)
}
return e.SetChildren(newChildren...)
}

...but at the cost of being expensive, due to slices.

Less expensive idea: Since all my expressions are nonary, unary or binary, I could have a Nonary/Unary/Binary to avoid GetChildren() and SetChildren() operating on slices, and then Map() could simply do a switch.

Or you could simply skip all of that and build a switch statement:

func Map(expr Expression, fn func(e Expression) Expression) Expression {
switch e := expr.(type) {
case And:
e.LHS = fn(e.LHS)
e.RHS = fn(e.RHS)
// ...
}
return fn(expr)
}

This is why I was considering generating code, because it's terrible having to write and quality-check all that boilerplate.

(There's a lot of boilerplate: Map() is not the only function I need. I also need a top-to-bottom version (the above is depth-first) and a Find(), and multiple other things that need to recursively determine something about an expression, without knowing all the types involved.)
This is a highly biased account of history intended to glorify authoritarian socialism. There is nothing inclusive about leftist authoritarian controls. Social democracy is about throwing people in prison for not conforming to some collectivist vision. It institutionalises the violation of human rights and promotes an ideology (the white-washed narrative promoted in the article) that rationalises it.
Northern Europe began stagnating as soon as it embraced social democracy on a large scale.

For example Sweden:

"From 1870 until 1970, Sweden was a free market success story. Sweden had the highest growth rate in the industrialized world. .. [After taxes were raised in the late 60s and 70s] Sweden stagnated":

https://youtu.be/D0hnA341AWE?t=5m23s

Sweden was the 3rd wealthiest country in the world in 1968. After it created a massive welfare state in the 1970s and 80s, its growth stagnated, and by 1991, it was 17th highest income country in the world.
Other notable facts:

http://iea.org.uk/sites/default/files/publications/files/San...

• Scandinavia is often cited as having high life expectancy and good health outcomes in areas such as infant mortality. Again, this predates the expansion of the welfare state. In 1960, Norway had the highest life expectancy in the OECD, followed by Sweden, Iceland and Denmark in third, fourth and fifth positions. By 2005, the gap in life expectancy between Scandinavian countries and both the UK and the US had shrunk considerably. Iceland, with a moderately sized welfare sector, has over time outpaced the four major Scandinavian countries in terms of life expectancy and infant mortality.

• Scandinavia’s more equal societies also developed well before the welfare states expanded. Income inequality reduced dramatically during the last three decades of the 19th century and during the first half of the 20th century. Indeed, most of the shift towards greater equality happened before the introduction of a large public sector and high taxes.
How-To Debug a Running Docker Container from a Separate Container – Medium
Also makes you a target for layoff rounds. The yes men are always safe. You should have your finances sorted out if you plan to stick to your principles.
Like that, but less vodka.
I started to used VIM seriously last month. My biggest concern so far is editing new files. Too much switching between INSERT and NORMAL modes.

This is not a problem when editing existing files.

Also I think some keyboard shortcuts are not comfortable on an AZERTY keyboard layout.
IM2CAD
so according to your logic, one massive hack means all sites are insecure ?
At least the oldest cars had a cassette player, so you could use a jack cassette adapter[1] and listen to music on your phone/mp3 player. The more recent one would have mp3 CD players so you could burn discs with hundred of hours of music. But the worst are the car in-between, with no Cassette player, but only a CD player, where you could burn at most ~20 tracks on those 650MB CD-R.

[1] https://www.amazon.com/Insten-Cassette-Adapter-Compatible-Pl...
So... they just don't know it's bad?
Does something like this do the trick?

https://www.charitynavigator.org/index.cfm?bay=content.view&...

--> Like if my revenue is $R, I'd have to pay $T in taxes

That part is harder to answer, but not necessarily as important as the latter. What you can more easily find it "if I donate $100, what do I get back?"
The irony is that some of those qualities are probably more likely to get you fired rather than valued.
Perovskite Solar Cell Could Quadruple Power Efficiency – Understand Solar
Maybe the writer was going for "impacted" and either typed it on their phone or they need to go back to school. Affected would of course be a better word.
Political communication is not about transferring information or truth, but about manipulation. You and I aren't consumers of it or citizens, we're targets. Another way to think about it is the old poker advice: "If you look around and don't know who the sucker is, it's you."

Many like him (I don't know him in particular) want to appear to appeal to our principles in order to manipulate us into support or at least quiescence, so they use the words that accomplish that. Meanwhile they are enacting policies (and ideologies) they desire, including enriching big business and other wealthy constituents of his party. It's like watching a magician - don't watch where they're directing your attention, look at the other hand. Or, 'follow the money' - who benefits?

These messages are carefully crafted - literally; experts are hired to compose them, messaging is tested like marketing, and people are trained in what to say (talking points). For example, you may recall that in the debate about cutting estate taxes the GOP started calling them "death taxes" and taking about the cost to small farmers and businesses; all that messaging was composed, using the process I described, by a guy they hired in the 1990s - and sure enough, 10 years later people I know were repeating it like it was gospel.
Mh, I had always assumed it was inspired by the term from the Go board game: https://en.wikipedia.org/wiki/List_of_Go_terms#Atari
Why is eating cow brains horrifying? People all over the world regularly eat cow brains. For instance, brain tacos are a standard menu item at Mexican taco stands. They are very rich in fat though, so I recommend only eating one or two at a time.
Well, I guess that decides it
Is Configuration Management too difficult for little gain
So you're not a location independent entrepreneur/freelancer?

I was talking about this with my girlfriend recently. She's leaving the city in a year to do graduate studies. I'm a mostly location independent entrepreneur. But, leaving Canadian tax residency is complicated, and there are some big advantages to the fixed office setup I have here, because I do some video production.

I was thinking of keeping my residence here, but frequently traveling to visit her. There's some types of work I can do quite easily on the go. I'll only find out how well that works once we actually do it.

How did you arrange things?
It absolutely was. Nolan Bushnell, founder of Atari, went on to found another company called Sente [ http://senseis.xmp.net/?Sente ].
I work with a team that managed to write the code he describes in a little over three years. it's really just chaos and I only trust a few of them. So why do I keep talking myself out of looking for a new job? Hell if I know.
God forbid we don't live in some tiny area for a few hundred years. What will the planet ever do.
Science does have believers and deniers...

If you deny that science is real, that is being a science denier. If you believe that it is real, that is being a science believer.
Diesel is on its way out now too. Creates too much carbon monoxide and other stuff. Had our first day this winter where diesel cars were banned from municipal roads in Oslo, the capital. Got a lot of people scared away from buying diesel.
You might be begging the question though. I'm saying that a priori alliances are the cause. You're saying they are the effect.
ZEUS – An Electrifying Build System
before the internet, there was real capital in knowing jokes, and the same for unusual facts. you wanted to know who was in that movie? you called your friend who knew those things. now just IMDB it.

i suppose that is part of the reason for the appeal in the seemingly recent interest in bar trivia nights. i think we are still working out the kinks in the things we lost due to the internet.
> I agree. I think there's a lot of emphasis on preventing bad code from existing. But if you believe some bad code is inevitable, then it's more important to make it easy to fix when it happens.

Indeed, what matters isn't writing bad code, but doing so in a way that affects the whole codebase (whether through coupling or by volume). Accepting that bad code happens helps a lot in locking it down behind containment measures, both in space and time. I can liberally accept bad code as long as it doesn't imply bad architecture, so that it's easily removable and understandable, but I'm hell bent on refusing any form that means we can't dig ourselves out of a hole we've dug ourselves into (this includes slowly drifting yourself into a hellhole by accretion, bad code must come with an expiration date, which means immediately creating an issue in your favourite bug tracker upon commit/merge). Decoupling is key, and duplication is often needed to see the true generalisation patterns emerge, not the ones you expect to be there sometime in the future[0].

[0]: noop-noop-noop maneuver (video+slides) http://www.thedotpost.com/2016/10/katrina-owen-the-scandalou...
I've had this account for more than 3 years as you can see. I can't help if people incorrectly assume it's a burner because of the name. I considered it throwaway at first, but I don't care to bother to change it at this point. And like I said, it lets my points stand on their own merit, which I consider a positive.
1-2 years ago they where though, but for whatever reason they never managed to break into that market.
This is the other thing that people say when we talk about Swift stability. "It's a work in progress." Apple certainly isn't giving this impression anymore.

1) Apple now has most code examples in Swift.
2) Most talks at WWDC are either in Swift only, or with ObjC as the alternative examples.
3) Swift was made available almost 3 years ago. 1.0 was released in Sept 2014. The Swift team was working on it for several years before that. This is now roughly 6 years that the team has been working on it. So when should we consider it stable? 10 years? Longer?

To release a new language, call it the future of iOS development, but also call it "unstable and beta" is a really poor way to treat your developers. I am then stuck between possibly starting a project with an entire deprecated development environment (ObjC), or one that's going to be changing every year forcing me to spend significant time upgrading and possibly introducing bugs.

It seems possible to have a language change and mature in a more sensible way than this, it's just harder and takes more work by the language maintainers. The easy way is just to break everything, which is what Swift is doing.
I think you may have missed the second and third link.
Cool. Will try it out sometime. Would be great to see some kind of demo / video of it in action.
Thank you, I can respect this! I will stress once more, that specific words or phrases that are uncivil or flamewar inciting are difficult to assess beforehand, in my opinion.

one day it will be ((())), the next day, someone may be offended that someone is criticizing their company for a product failure, such as at Samsung. This stifled debate of any kind, in my opinion, because there will always be someone who stands to lose something and therefore be offended by a debate that affects their vested interests negatively
Atari is also a term from the game go. Based on the Atari logo it is obvious that this is the source of the name (the logo resembles the simplest atari configuration in go), and wikipedia confirms this:

> Before Atari's incorporation, Bushnell considered various terms from the game go, eventually choosing atari, referencing a position in the game when a group of stones is imminently in danger of being taken by one's opponent.
I can agree with this. I went from a Pentium G3258 clocked at 4.8GHz to a box-clocked i7-4790S. Battlefield 1 went from unplayable to dead smooth with a GTX750Ti.
Vinyls also still exist because some people prefer analog sound. There might not be any substantive reason for this other than random bias.
If you haven't already, you might be interested in 'The Art of the Metaobject Protocol' [1]. It takes you step by step through the design of a highly dynamic, yet still efficient design of an object system for Common Lisp and its metaobject protocol.

The key is designing the extension points and the API in a way that allows efficient implementation. In Python that never happened. It seems like they basically documented the implementation and said: 'here are the dicts containing the internals, feel free to do anything you want'. That's an approach that will never result in an efficient implementation without huge efforts.

[1] https://mitpress.mit.edu/books/art-metaobject-protocol
Then, not invaluable. :-/
You're putting a lot of beliefs and faith in my mouth there. I don't have supreme belief in anything. I just think it's extremely unlikely that any faith founded on magic is true and some kind of magic is a common thread in religion. I think it's unlikely true to the point that it's not worth my time except as an interesting cultural phenomenon. There's nothing crazy about that.

Faith and belief are not the same thing.
But that's a lot of work....Just to have sane costs for reads of your data
My god I've been bilingual my whole life and this never occurred to me (because the intonations make the words sound quite different).
Pyjion is C Extension based JIT for CPython. Pyjion only uses CoreCLR RyuJIT as a JIT compiler backend. It is NOT aware of .NET types at all.

Note that you can use pythonnet for interop between CPython and .NET for both embedding and extending.
I think it's more accurate to say it's men that feel social pressure to be more ambitious than they might be otherwise.

It's certainly a lot easier for an unambitious low-income woman to find a husband than vice versa.
Mythical man month.
How did the Civil War do that? Was it the war economy, as in WWII? That makes sense.

Edit: http://www.history.com/topics/american-civil-war/women-in-th...

Wow. I hadn't thought of it that way.
For the benefit of people who don't have "tsundere" in their daily vocabulary like Chris2048:

"Tsundere (ツンデレ?, pronounced [tsɯndeɽe]) is a Japanese term for a character development process that describes a person who is initially cold and even hostile towards another person before gradually showing a warmer side over time. The word is derived from the terms tsun tsun (ツンツン?), meaning to turn away in disgust, and dere dere (デレデレ?) meaning to become 'lovey dovey'. Originally found in Japanese bishōjo games, the word is now part of the otaku moe phenomenon, reaching into other media such as maid cafes, anime, manga, novels, and even mass media. The term was made popular in the visual novel Kimi ga Nozomu Eien."
If you were to track radioactivity released by human activity to the actual environment, a coal plant releases more than a nuclear plant.

It's actually a pretty fun argument: http://skeptics.stackexchange.com/questions/1018/do-coal-pla...
I don't think we should ban pornography. The gist of my comment was the last line, that this mode of maximizing freedom of expression actually diminishes other expressions of speech, which can result in a net loss of freedom of expression.

Put a bit differently, what we protect is the number of different topics on which an individual may express themselves. We're maximizing freedom of expression by subject matter. But what we've continually observed over the last decade or so is that there's a lot of other metrics by which we have much less freedom of expression than we might think.
Even with Verizon if you have a phone which supports their LTE bands, you can use them on Verizon. I used my iPhone 6 and iPhone SE from AT&T on Verizon.
All Windows Phones were required to have a functioning FM tuner. Microsoft had a strict list of hardware requirements.
I do not remember this comment. Most likely he appeared after the article: http://www.viva64.com/en/b/0308/
Thank you -- I'll check it out.

I'm familiar with CLOS, but I have never looked seriously into implementation strategies. I have read many research papers on compiler design, language design, (multiple)dispatch implementations, and I have concluded that the languages we use day-to-day are decades behind what we would be using if we took advantage of this research.
I really don't know what Apple gets out of keeping XCode as closed source. Why not open it up?