skysight-inc/HackerNews huggingface dataset:
I'm sorry, but that war was lost the moment it was waged, and that wasn't a mystery even then.

"You people of the South don't know what you are doing. This country will be drenched in blood, and God only knows how it will end. It is all folly, madness, a crime against civilization! You people speak so lightly of war; you don't know what you're talking about. War is a terrible thing! You mistake, too, the people of the North. They are a peaceable people but an earnest people, and they will fight, too. They are not going to let this country be destroyed without a mighty effort to save it… Besides, where are your men and appliances of war to contend against them? The North can make a steam engine, locomotive, or railway car; hardly a yard of cloth or pair of shoes can you make. You are rushing into war with one of the most powerful, ingeniously mechanical, and determined people on Earth — right at your doors. You are bound to fail. Only in your spirit and determination are you prepared for war. In all else you are totally unprepared, with a bad cause to start with. At first you will make headway, but as your limited resources begin to fail, shut out from the markets of Europe as you will be, your cause will begin to wane. If your people will but stop and think, they must see in the end that you will surely fail."(Gen. Sherman)

Which is precisely what happened.
Was it Atwood who said, modifying someone else's quote: "The two hardest problems in programming are cache invalidation, naming things, and off-by-one errors?"

Aside from separation of concerns when you make many, many functions, you have to come up with So Many Names.
Still, why not wait to add it?
Thank you for that! I am actually putting that up on the site today. Any more feedback or suggestions let me know!
Ask HN: Best practices for software development?
I've been writing software professionally now for about a decade, but I feel like I've never learned how to do it 'properly'.
For example, I've never experienced agile methodology, never used unit testing on my code, and only just recently started using source control tools.

What are the current best practices I should consider following? And conversely, what worst practices and non-best practices should I avoid?

My projects have delivered just fine and my clients and employers have been happy with the work I've done, but I feel like I'm missing important techniques. I've mostly worked solo rather than on a team of developers so that might be a contributing factor.
You are rebutting an argument the New York Times piece is not making.
> We're not close, but like I said, we're headed that way. Maybe in another 20 years, say.

I don't think we're even headed that way. Not faster than petrol is going to become uneconomical due to renewables or at least government incentives/tariffs.

> But the architecture of even current electric cars goes far beyond this: electric cars don't monitor the analogue components with digital sensors, they simply have ADCs connected right to the sensors, and take the now-digital signal from the sensor and feed it to the car's CPU, where that signal—that data, now—can produce many separate outputs.

This is a statement without meaning. Nothing about petrol engines prevents ADCs connected to sensors.

> Surprisingly ... while the electric architecture can centralize data-flow.

This also seems kind of meaningless.

> You don't have to worry about the driver attempting to move the car with the parking brake enabled; the information of "gas pedal depressed" goes through the "brain" of the device, where it also knows that the "parking brake engaged" line is high, so its desired-torque output should just stay at zero.

This is just drive-by-wire. Again, nothing about drive-by-wire is exclusive to electronic-drive vehicles. For example, all aircraft are powered by kerosene and yet modern aircraft are all fly-by-wire.

There's basically very little about the drivetrain that actually matters to any of this technology. The key advantaged of an electronic drive train that I would highlight, in roughly most to least important, are:

* Reduced maintenance and mess
* Emissions, and access to renewable energy as it increasingly powers the grid
* Regenerative braking (but note that even some analogue vehicles have this in
the form of flywheel energy storage), and
* High torque

But this paragraph of the original article is bunk.
If you hit the 'stop loading' button early enough, the stuff you're talking about doesn't have a chance to load.

It's slow enough to do this because web pages load enough crap to run a Quake game.
Changing Python versions is hardly a "culture change". Changing to Go or Rust might be.

The main problem is library support, not the language changes. A large company like Facebook can afford to put someone on library compatibility to make this happen.
"Crashes (null pointers, bounds errors), largely mitigated by valgrind/massive testing"

Once upon a time I had lunch with a friend-of-a-friend whose entire job, as a contractor for NASA, was running one program, a launch vehicle simulation. People would contact her, give her the parameters (payload, etc.) and she would provide the results, including launch parameters for how to get the launch to work. Now, you may be thinking, that seems a little suboptimal. Why couldn't they run the program themselves; they're rocket scientists, after all?

Unfortunately, running the program was a dark art. The knowledge of initial parameter settings to get reasonable results out of the back end had to be learned before it would provide, well, reasonable results. One example: she had to tell the simulation to "turn off" the atmosphere above a certain altitude or the simulation would simply crash. She had one funny story about a group at Georga Tech who wanted to use the program, so they dutifully packed off a copy to them. They came back wondering why they couldn't match the results she was getting. It turns out that they had sent the grad students a later version of the program than she was using.

Anyway, who's up for a trip to Mars?
I used to lament the loss of access to journals when our company moved out of its offices in the University, where we were on the UK academic network JANET. However, I then discovered that as a graduate of the University of Edinburgh I had alumnus access to many publishers. There include Springer (where I can download papers, journal articles, chapters and even eBooks as epub or PDF) and also JSTOR, Sage, T&F and many others. I have a library account as an alumnus that gives me access through the UK access management federation Shibboleth system, which you can usually find as a login option on the paywall page trying to get you to purchase the full text for thirty dollars. I recommend that University graduates check to see if their libraries order a similar system?

Of course, not all publishers offer this access, the University library only had deals with some of them, so I do find myself using sci-hub as well; but I try and access things legally first, so that the University and the publisher can see that there is demand for the alumnus access option, and it is being actively used...
I think a lot of this could be covered by two principles that are often quoted but over looked. The first is, KISS, keep it simple stupid. The second is single responsibility.

When I design software, I apply both of these to every facet of the system (though I admit sometimes not as well as I should). The end result is I might not have a ton of interfaces and hierarchies. It might not handle curve balls as well as an abstract MachineFactoryFactory could. It does handle everything that we've thrown at it however.
The meat is in the footnote, as always.

> (In fact, when the job is far from trivial technically and/or socially, programmers' horrible training shifts their focus away from their immediate duty – is the goddamn thing actually working, nice to use, efficient/cheap, etc.? – and instead they declare themselves as responsible for nothing but the sacred APIs which they proceed to complexify beyond belief. Meanwhile, functionally the thing barely works.)

It seems the author has been plagued with programmers who avoid taking responsibility. One strategy for creating job security is to build a system too complex for anyone else to maintain it. Perhaps the author's colleagues are using this strategy.

It's hard to take complaints about "best practices" seriously when the practices described are not best.
Not sure how this articles brings constructive critique... Comparing the hardly avoidable issues brought by specific scope and priorities of scientific work vs dumb "bad practices" has little value to me...
Agriculture encourages settlement, people can gather together for safety. Before that, they were moving around all the time, getting killed by a tiger was a realistic fear. Hunter gatherers had a tough life, even if successful on average.

If you've ever seen a brown bear...there isn't much you can do if you aren't armed with a gun, and even then....

Of course, the main benefit of agriculture was food security and surplus, allowing a whole bunch of activities not possible before.
So is something like Haskell a potentially better fit? When you use terms like "immutable" and "unchanging", makes me think of functional programming.
As a witness of protests at Maidan square in Kiev, I was staggered by the depiction of the events in Russian medias: it was a heavily engineered and coherently orchestrated image full of humongous distortions to the point of creating a parallel reality. Their usual tool is taking an insignificant trend/event that fits their needs and blowing it out of proportions ("nazi" at Maidan, "repressed Russian-speaking population" in mostly Russian-speaking Kiev), producing emotional news about fake events ("a little boy in Slavyansk crucified by Ukrainian punishers"), carefully planned wording and dictionary ("Ukrainian junta/punishers"), flooding websites with paid trolls [1].

Having seen it myself, I will not believe a single word from Russian medias until the Russian regime and its centralized control over media is gone.

[1] https://en.wikipedia.org/wiki/Trolls_from_Olgino
I didn't say I agreed with it, just that the first part of the comment appears to be from one commenter, and the second part from another.
Rebass/Recomposed – Reusable UI by composing functional components
A History of Palm, Part 2: Palm PDAs and Phones, 1996 to 2003
The danger of "intuitive" names and analogies is that they often don't capture the generality of the abstraction and can limit ones thinking. The mathematical terms are useful and communicate precisely and unambiguously (e.g. if someone says X is a Functor then I assume the Functor laws are satisfied). Ignoring established terminology creates insular communities and creates confusion (e.g. a C++ Functor versus a mathematical Functor, C void versus type theory void). I agree that better books and learning resources are needed, but changing names is anti-intellectualism, IMHO.
Apparently that wasn't even necessary. The big change for library compatibility was simply changing the settings of the build system. According to the speaker.

In my own experience, most libraries are 3-compatible.
We had bibliographies and reviews even before the internet. Back then you filled in your interlibrary loan request, the library would sent it out to its correspondence libraries, and only within a few days the postcard would come, telling you that your book was available for pickup.

That said, bibliographic databases have been around since computers. They were just restricted to librarians, mostly because of infrastructure issues.
It's interesting but it's also already being done, and there is (presumably) also a long list of other upcoming projects being developed by folks with big-money (e.g. NASA, ESA). The question, then, is what might small-money folks do with a satellite like these?
Venture investing vs. everything else
It's not just a matter of the moral equivalence of propaganda, but of credibility. When a major media outlet is pushing a narrative that supports a government agenda, skepticism is warranted.
"Theft" carries the right meaning in this case. Ironically, your attempt to disqualify it from the discussion is exactly the sort of self-serving wordplay that you are complaining about.
Working in this area (and coming from a math background), the biggest issues that I have with most scientific and engineering code are:

1) lack of version control

2) lack of testing

Everything else (including the occasional bad language fit) is usually a distant 3rd.
I'm drinking 1-2 cups a day. The question for me is what do I get for quitting caffeine?

For me it's just a ritual in the morning.

I have to admit the coffee I make at home with the Bialetti is so bad compared to the one I can get in town, that I wonder why I bother sometimes. I just can't make that thing work. Even with the freshly ground coffee I buy at the market. It tastes nice on the day I bought it, it tastes like crap already the next day.

But if I can drink just one good cup of coffee like the one I can get in town, and I get that nice little kick I'm happy and I don't really need any more the rest of the day. If only I could get that nice little kick just with my morning coffee! Sometimes I wonder if I also have built a tolerance, but I think the coffee I make with the Bialetti is just crap. I barely feel it.

But even though my morning coffee is usually not very good... I'm still wondering what's in there for me quitting just 1-2 cups a day? The people commenting on the article are abusing the substance, 5-10 cups a day? 2 liters of soda? For years on end?
Yep, we suffered through it.

To be fair, they all have some downtimes from time to time.
You see the effect every year, with students attempting the transition from teaching labs to actual research. In research you have to step back and use your knowledge in unfamiliar context. It is a big jump.
The 90's and 00's fetishization of OO as magic incantation that makes your code better did generate a lot of anti-patterns, some built into the languages. Multiple/deeply-multilevel inheritance, singletons, constructors with side effects, IO objects, and all the more trivial code-bloating boilerplate like "put everything in a class" and getters and setters.
>> Further, do you really "own" your land here in the US? Nobody I know does. You either pay rent (taxes) to the government on the land or the land is taken from you.

Don't get legal theories from fringe websites. That line of thinking is a stone's throw from "US citizens don't have to pay taxes" and "Driver's licences are unconstitutional". Such websites are what got Wesley Snipes in so much trouble. Read some actual legal texts at your local law library

Property ownership is a thing in the US (and canada, france, the UK and the rest of the western world). The government cannot take your land without full value compensation, even if you don't pay your taxes. They can condemn your land and sell it to pay your debt, giving you all that is left, but that is a long legal process where the rights of the landowner are given much consideration and ample opportunity. They are not a landlord reclaiming property.
The last ones in Europe that made a habit to invade countries and appropriate area were Hitler and Stalin. So whom else could I compare with?

Are you willing to condemn Putin for doing similar invasions and annexations..?
Is your JavaScript function actually pure
http://www.robotshop.com/blog/en/arduino-5-minute-tutorials-...

also, check out ultra sonic sensors
How should you follow up with an investor?
The polyfill won't benefit from browser based JIT compilation. If you're concerned with performance, even for browsers that don't support wasm, you'll want to switch to asm.js.
Just out of curiosity, why did you downvote this? You don't think the Web is a good platform for UI or you don't like that I linked to our library built on top of it that we open sourced for UI?
The big metaphor for life, mind, the universe, god, keeps changing. It was animals/spirits, then it was clockwork/machines, then it was information/data, and this article is a reflection of that. We keep thinking we are on the cusp of ultimate understanding, until our metaphor maxes out and we realize we're not.

I believe the next metaphor will be ecology. The notion that an information processing agent can be understood in isolation from the ecology in which it operates (both in terms of energy/mechanics and information) is getting harder and harder to sustain. And the ecologies we humans rely on are dying quickly. We'll need to turn that around sooner or later, by insight or by force.
The topic is American homelessness, not American poverty. While the two may be related in most cases, one does not necessitate the other.

Unless you're talking about the causes as a starting point I don't think you're talking about much at all.

Next, the limited suggestions are essentially some form of moral policing.

If you really want to impact homelessness I think you are talking about some form of managed care for individuals that both want it and need it. If that's your starting point then your biggest obstacle is capital.
http://ebiketips.co.uk/

Yes I will be getting different vendors and styles. The one I have is the first one, so I'm working with the editor on the style of my review next week.

Should be similar to the "Justin says" "Dave says" sections of this article http://ebiketips.co.uk/content/reviews/electric-bikes/ebco-u...
Fair enough! There is also performance penalty and annoyingly complicated setups in certain cloud environments.
The US want their companies to have to adhere to less regulation not more. So essentially there are things in CETA that require Canadian companies to meet more a higher criteria with regard to food safety when trading with the EU. The US doesn't want to meet these higher criteria, a US firm selling to the EU through a Canadian branch would have to meet these higher criteria, which means that the US company would either have to forego selling to the EU or increase food safety standards across the board (they could just do it for export goods but that seems a bit silly) either way the companies costs increase.

Evidently you thought that TTIP was some kind of reasonable deal for all parties however it is mainly beneficial to some large US corporations at the expense of the citizens everywhere.
>the best best code, produced by the most experienced people, tends to look like novice code that happens to work

Could it be that best practices are designed to make sure mediocre programmers working together produce decent code?

After all, actual novice programmers write code similar to the best programmers except that it doesn't work.
Depending on the size of the syn flood or HTTP flood, there is no way you can handle it locally.

Some syn floods can generate millions of packets per second, which is way more than a dedicated linux server can handle.

Good video on the topic:

https://www.youtube.com/watch?v=pCVTEx1ouyk
Would love to hear thought from people who use it in production?
> Each version of the CLI is incompatible with the last version of the CLI.

Sure, but I don't think this is a show stopper. You can and should only carefully upgrade between versions of Docker (and other mission-critical software). The process is functionally identical to the process you'd use to perform a zero-downtime migration between versions of the Linux kernel -- bring up a new server with the version of Docker you want to use, start your services on that new server, stop them on the old server, shut down the old server, done.

I don't mean to suggest this is trivial, only to suggest that it is no more complicated than tasks that you/we are already expected to perform.
I have used deploybot for over a year, great engineering. My favourite deploy tool
I "quit" every year for about a month;I use l-tyrosine to avoid withdrawal symptoms for a few days then I'm fine. I ha e data that indicates for me that it might reduce my heart disease chance, so thats why I dont quit forever...
To quote Mike Brown (who has the best Twitter handle ever), "Weekly PSA: no, in fact the earth is NOT going to be destroyed by [fill in crazy thing seen on internet here] next week. Thanks for asking."
https://twitter.com/plutokiller
Show HN: ReactJS, React Native, Angular2 Starter Kits for GraphQL Development
My experience was a bit different. The local university had open-access dial-in numbers, from which you could telenet anywhere, use FTP, Gopher, IRC, Usenet, Archie, Veronica, WAIS, MUDs, email lists, dialout to BBSes, etc. We had lots of informational (and opinion) content, search, newsfeeds with comments, games, chat, and socialization. The main things we didn't have much of were e-commerce, ads, and images/audio/video. My career, many of my hobbies, and lifelong relationships came from that early internet. So it was a life-changer for me.

Mobile phones, on the other hand, didn't change much. Before them, we used the ubiquitous payphones when needed. Beepers briefly became a fad, but that faded out even before mobile phones became common; most people just didn't need constant telephone availability.
This looks like a great alternative. Thanks!
I will def keep this one in my back pocket in case 1password does indeed start to deprecate or mess with the standalone offerings.
It takes barely more time to check that then it does your oil or coolant levels (which should also be looked at about as often).

For inflating, one of these is small, really simple and works just fine:

https://www.amazon.com/Ryobi-P737-18-Volt-Inflator-Included/...
If the arbitrators had any democratic oversight, it would be less bad - protecting investments in a fair manner is important - yet the tribunal looks like a private get together - where they can shit on an entire country and no one really has any power to stop it.
Those are problems the CDN solves for you.
It's not there yet, but you can chime in and contribute (I'd appreciate code reviews, pull requests and so on...)

Have a look at https://github.com/ecausarano/heron and let me know :)
Brown bears don't generally like human, as I have found repeatedly when seeing them in the wild. Your fear is ungrounded and irrational. Step one: don't interact with bear. Step two: don't smell like dead animal. Neither of these are hugely difficult and are easy to grasp lessons.

At no point was predation a major problem for humans. Again, nutrition and infection would most likely dominate hunter gatherer mortality.

How many remains have we found of mauled humans?
Here's the thing that grinds my gears. Let's see scientists apply that same attitude toward papers. Let them label a bunch of equations poorly, and not label a few, have them explain concepts out of turn in different places in the document, have them produce shitty, unreadable figures, let's see how that turns out.

The issue is that code which eventually leads to their results isn't public, they don't have their reputation lying on it, and so they can pretend they understand what they talk about when they come to publishing, but one or two looks at their code let's you know they hardly bullshit. But when if comes to a paper, well, they will be judged on that, so they can't be messy there.

It's okay if it's a one off code for one group, that's fine. But when a code is vital for so many people, for it to be that terrible and inaccessible?

Simple solution: if you are funded by the tax payer, what you produce should be accessible by the tax payer (absent defense restrictions). Demanding accessibility for gov't funded papers is good but I feel the same restriction should apply to code.