skysight-inc/HackerNews huggingface dataset:
Congrats Jen! I remember when you showed me this in it's early stages at Heavybit. It's really come a long ways with features and polish!
He is refuting a version of "premature optimization is the root of all evil" that I have never heard in practice:

"Mostly this quip is used defend sloppy decision-making, or to justify the indefinite deferral of decision-making."

I have never heard it used in this context. Sometimes I've heard it used as a gentle way to suggest to someone that they are going off in the weeds and need to refocus on what they should be focused on, but usually I've just heard it used as it was originally intended by Knuth.

Optimization often involves making code less clear, more brittle, or with a more pasta-like organization. Frequently optimization requires writing code that if looked at out of context, doesn't make sense or might even look wrong.

When these sorts of optimizations need to be made, they should be made only as needed (and documented). It shouldn't be done without knowing whether or not a particular code path is even a bottleneck in the first place, and it shouldn't be done if speeding up that particular bottleneck wouldn't make the software better in any tangible way. That's all the phrase means.
You're right; it isn't foolproof. What it does tell you though is who is selling your personal information.
Yeah, my bad. Updated the details. Thanks. 'Mitsuhiko' is a hard name to remember.
Thanks for taking time to give pointers to a noob Rustacean - this made my day.
My thoughts exactly. There's even too much of meta-knowledge here :) Without some solid background, it's not something you can casually pick up as a hobby. But yes, as a programmer (not dealing with anything AI-related - right now it's middle-of-the-road mobile apps) I am very impressed by what deep learning proves to be capable of
To me, it seems like the incentives to own a car may not be so great once self-driving taxis are available, especially in the city. No need to worry about parking, insurance, maintainence, or gas.
Kdenlive, the Linux video editor I want to use (2015)
Interesting. Yes, in some cases decompilation can return a higher level code than the original, which is quite an interesting an yet very much unexplored area. I only scratched that while I was working on a static code analysis.
Sure, but many [crazy] people are already doing 4 hour commutes, so they can keep they job they want, in the office, and have an affordable house. If they can do that and make commute time entertainment time, that's actually a significant improvement in their life.
Once cars are autonomous, it makes it drastically simpler to carpool/rideshare or even pick up and drop off riders that may share the same or partial route as you.

Also if your car is able to drop you off, it can be a shared resource when you don't need it.
The master's thesis that led to the Karma Test Runner for JavaScript
Came across this as I was going through Karma's documentation. It's Vojta's thesis that led to the development of Karma.

https://github.com/karma-runner/karma/raw/master/thesis.pdf

It's an interesting way to learn more about testing and the ideas/technology behind a tool that many of us use everyday.

You can read more about Karma here:

https://karma-runner.github.io/0.13/index.html
To be honest, that response is less than comforting. But I understand how that'd be your answer given your position in the organization. Hopefully someone else at Dropbox feels like sharing more at some point and being more forthright about your company's practices in protecting data others entrust to them.

Feel free to refer others to this thread if you think it'd be helpful.
Yup, sometimes something that goes bump in the night is dangerous and sometimes it is not. And sometimes we can guess that we heard something that went bump in the night but nothing did.

There are some bad things out there. We need to try to detect them. That sometimes we guess wrong doesn't mean we shouldn't try. But before we draw big conclusions and take important action, we need to be very careful -- measure at least twice and saw just once and because we may not get to saw twice.
I don't see why people blame companies for this. Don't hate the player, hate the game. If you give the government the power to provide people with monopolies of ideas companies will fight for that power. If they don't, someone else will.
> No, ...

Immediate deal-killer.

If your workflow involves a) more than one computer and b) usage of the terminal (surely describing most developers), then tmux attach/detach is easily one of the most awesome things since vim itself.
We're excited about the wrong things when it comes to virtual reality
That's not exactly what I meant. At my current age my social tipping point for delving into new games is very high. The last game I embraced was Battlefield, and that became an insane timesuck. That makes BF the only game I've accepted into my life in the last 8 years, besides a good Tetris sesh every once in a while.

Besides, my point is more a contemplation about what references, ideas, and concepts I'll because I might not ever dive deep into Minecraft. I didn't mean it in a snobby way at all.
A shell and a terminal are two quite different things. Try running a ncurses application with :sh
Emissions would be a problem (until Tesla takes over the world.) The energy required to sustain 90-100mph is mostly a factor of aerodynamics.

If the distance between the cars could be kept sufficiently short like perhaps a few inches only then maybe.

High-speed trains have flush coupling between the streamlines cars to deal with that. The incremental resistance from length is almost negligible and so they can maintain 200 mph speeds.

I wish north america would embrace high-speed rail like in Europe.
This article is "praywalled"
Good to hear! Let me know if you have any questions, we're happy to help.
Here are clickable links since I couldn't get them to work in the text post.

Download to the thesis as a PDF:
https://github.com/karma-runner/karma/raw/master/thesis.pdf

The Karma site:
https://karma-runner.github.io/0.13/index.html
Thanks for signing up! We definitely have some work to do with the on boarding flow and documentation, especially around Tickets. Glad to hear you were able to figure it out! :)

A Ticket is a place where you can link together multiple GitHub Issues that doesn't sync with GitHub itself. The Ticket tracks the status of those issues and updates it's status as the issues are worked on. This works great for bug reports that need multiple tasks completed in order to be resolved, for example.
When Bernie met Hillary
If you want to give it up, and are a coder, find a few days when you don't need to code. I tried a few times, and always went back to it because my code sucked for a few days. I finally kicked the habit only about a month ago, when I decided to do it during a week-long testing effort with minimal new coding to worry about.

And the same as many others have said... I sleep better, feel better, etc, etc.
That assumes that you have a car to human handoff, and that it would be useful. Honestly that's a pretty strong assumption because of the reasons that you mention and related issues.

The technological solution may be that there is no (or vanishingly small numbers) situation where emergency transfer is likely to improve outcomes. So you just don't do it. Non-emergency (i.e. I'm going to park now and hand off control to you) are a separate case.

This may plausibly be the best technical solution - how marketable it is, that's another story.
> or sudden situation that it cannot contend with.

The idea that humans are any better at handling situations they've not previously encountered is dubious.
Ethereum Blockchain Project Launches First Production Release
I think that's Juju's role. They have a beta LXD driver for Juju.

https://jujucharms.com/docs/master/config-LXD
I think you might be referring to Mobileye. They're actually doing really well, because their technology is what drives most of these first-party systems.
Uber competitor to offer drivers shares
It does require some up-front work, but I've generally moved over to Kafka for most of my stuff. Rabbit has some nice aspects, but as noted its HA options start at "dire" and escalate smoothly to "oh dear god no". Throughput with Kafka is very, very good and,in my experience, it's remarkably difficult to kill. If you want fully ephemeral topics, you can write the broker data to a tmpfs. But I really like keeping data around, because I can replay my topics later both for DR and for debugging.
It has been standard practice in the latin-rite (i.e. western) Roman Catholic church at least since Vatican II. There are also specific dietary restrictions (fasting on Ash Wednesday and Good Friday, abstaining from the flesh of land-animals on every Friday during lent).

I know a lot of this changed with Vatican II; in particular the no-meat on Friday rule was previously year-round, and it is now purely during lent, though one is supposed to do some form of abstinence on Fridays year-round.

I had thought that giving up things for Lent was peculiar to the Roman Catholic and Orthodox religions until I chatted with friends in High School (1990s) and found that some Lutheran and Presbyterian denominations also encouraged the practice.

[edit]

I also forgot to mention that a large fraction of Protestant congregations are either not part of any particular denomination, or are part of a denomination that is fairly silent about appropriate ways of daily worship; individuals in those denominations often eclectically adopt forms of worship from other denominations.
The Gandalara books by Randall Garrett as well.
In the public mind EV = futuristic car. Self driving vehicle = futuristic car. The article author is either making the conflation to appeal to the audience or is similarly myopic.
Would this library be better off utilizing NATS instead of RabbitMQ baring any requirements a person might have for the persistence and other features you mentioned?
Thanks for the kind words Stephen! We've come a long way since that rickety demo :)
Oh this is fun. I tried it in Lua:

primes = {}
function inPrimes(n)
for _, v in ipairs(primes) do
if n%v == 0 then return false end
if v > math.ceil(math.sqrt(n)) then break end
end
return true
end
for i = 3, 1.6e7, 2 do
if inPrimes(i) then table.insert(primes, i) end
end
last = '7'
totalDigits = {}
for i = 4, #primes do
c = last..tostring(primes[i]):sub(-1)
totalDigits[c] = totalDigits[c] and totalDigits[c] + 1 or 1
last = c:sub(-1)
end
for k, v in pairs(totalDigits) do print(k, v) end

Gets just as many primes and runs in 7 seconds in LuaJIT.
The longer Knuth quote is “We should forget about small efficiencies, say about 97% of the time; premature optimization is the root of all evil”

In the inevitable meme transfer in the telephone game[1] and shortening of memes to smaller soundbites, the "small efficiencies" part is left out.

To me, "small efficiencies" was trying to "optimize" your old C code from...

x = x + 1;

to...

x++;

to...

++x;

... because you read/saw that a C compiler created tiny differences of assembly code based on post- vs pre- -increment operators which results in a 0.00001% runtime difference.

Knuth isn't talking about being ignorant or careless with choosing bubble sort O(n^2) vs quicksort O(log(n)). Or not placing an index on a lookup key of a 1 terabyte table (that's a 1-hour full table scan vs millisecond b-tree lookup). Those are not "small efficiencies".

If one leaves out the "small efficiencies" as a conditional, regurgitating the "premature optimization" is a cop out for not thinking.

[1]https://en.wikipedia.org/wiki/Chinese_whispers
You mean the one just recently bought by one of the big car companies for north of $1B? http://fortune.com/2016/03/11/gm-buying-self-driving-tech-st...
https://news.ycombinator.com/item?id=11272473
If it goes down the Rabbit hole, you've engineered it wrong.
Square acquires Framed Data
The only way that's a good idea is if you could work in your car and have it part of your work day.

If it's just commute, no, that's still a disgustingly long commute that is taking 4 hours of your day away from you.
There's also a gene that determines if you're a fast or slow metabolizer, I think it affects half life by around a factor of two. 23AndMe checks the associated SNP.
Yes: http://www.reuters.com/article/us-alphabet-autos-selfdriving...
I would guess you are correct about how they make sure your hands are on the wheel. I've done some car hacking and one of the things that surprised me was how sensitive some cars steering wheels are to pressure. It was impossible to keep it in the same position according to the car's internal electronic systems with my hands on it. This is car is 4 years old, so it's probably only gotten more sensitive.
Let me explain:

1) the company is building a software; in short, it's a way to streamline enterprise IT, optimize, etc.

2) the company wants to open source the core component, and then build services and support around it. Perhaps it will also build additional proprietary products around the core.

3) from an external perspective, what matters is that the core is open source. There will be a chance for the creation of an (hopefully thriving) ecosystem around it.

4) the company needs to understand how to make this model work financially, while at the same time respecting the fact that other people will contribute, and count on, the open source part.

Let me know if this is more clear. Thanks.
Exactly. I mean, I can't speak for anyone else, but I'll be asleep in the back.
Indeed, LXD would seem to be a faster, more efficient way of doing what you would do with traditional VMs. I don't see a lot of overlap with docker, despite the superficial similarity.
> Remember, nobody is forcing you to use this wizardry in Scala.

We heard the same thing with C++ 20 years ago and see where it went...
Do you want a flame war? Because that's how you get a flame war.

That being said, I like C and Python; none of that hipster startup bullshit like Java, Ruby, Node.js, Swift, or Rust.
I am still in Brazil...

And I've been hearing about the ADHD overdiagnosis problem for a while, and I've been staunch that I didn't had ADHD until my life was the shithole that it is now (I am 28, unemployed, don't own any property, have negative net worth, no friends, no romantic partners...)

Then what I found was the opposite, as an adult, seeking for ADHD diagnosis (or diagnosis of whatever I had), led to most doctors spin around in circles trying to find everything that I could have that is NOT ADHD, because they assumed I was just some kind of junkie or someone wanting to cheat tests in university, because here in Brazil all ADHD meds are of highly controlled nature (ie: they are classed the same as Morphine for example).

Eventually I found my current medic... that still is going VEEEERY slow in the dosage, the highest dosage she ever gave me was 1/5 of the maximum, and about 1/3 of what people get on average.

Still, even this low dosage helped, before I had the meds, I reached a point where I was spending more on caffeine than food every day (and this is in a country that exports coffee and erva mate, thus caffeine in general here is really cheap)
Initially when developing Alchemy we had a look at NSQ http://nsq.io and found it a little difficult (that was a year or so ago, so might be better now). Then we started looking at RabbitMQ and thought it fit our requirements better. I have not heard of NATS but will definitely have a look see. At the moment Alchemy is tied to RabbitMQ pretty tightly, but abstracting and supporting many queue solutions would be good.

I don't like pushing the retry into the client side. Since microservice by necessity have lots of communication between them that can be quite a bit of code across all the services. I would rather the architecture deal with it and just ensure that endpoints are idempotent so calls can be retried without adding client complexity. This is a personal preference, and in some cases clients do need to deal with retires, but I just like it not to be the default.

In the services folder there is this https://github.com/LoyaltyNZ/alchemy-framework/blob/master/s... pretty good RabbitMQ HA setup, with:

1. cluster_partition_handling set to autoheal so that it will do its best to recover (a few lost messages is infinitely better than a broken system)
2. queue_master_locator is min-master, so queues are mastered on nodes where the least amount of other queues are mastered. This will balance the queues across the clusters meaning if a node goes down then there will be minimal amount of queues to recreate
3. A mirror policy to mirror every queue (this will only mirror service queues because response queues are exclusive) , this will make the system a bit slower, but makes it much more robust.

This is enough to handle split brain (although this is difficult to test) and nodes going down and coming back (much easier to test).

Cheers for the comment :)
This looks like the same functionality the Tesla Model S has. One of the big draws for the new Model S cars. So much so that people are getting rid of their older Teslas because they did not have the autopilot.

I thought it's only a matter of time before autopilot becomes common place but it looks like its happening sooner than I thought. The good thing is this has nothing to do with the car being electric or not. But the main thing is, if Tesla thought its going to be a differentiator in terms of calling their cars "luxury" its going to be a problem for them. Given that the internals of the Model S itself are not particularly luxorious they need to think about it.
If you have a non-disclosure agreement with your clients, you cannot outsource any data processing / search. So in many cases a SaaS solution is a no-go, unfortunately.
You can do this with buses today.
I like languages that help me solve the problem I'm trying to solve. So the question becomes: What do you want to do? What kind of language will do the most to help you get there?

Java is nice because of the huge library. That's code you don't have to write (though it's code you do have to find). Other JVM languages can use that library, too, IIUC.

Python is close to Java in having a library for everything. I think Python may be better for numerical analysis. It may also be easier to use.

C++ gives you more precise control over resources. If that's the battle you have to fight, C++ has some advantages. Rust may give more, but I'm not sure how well Rust does for resources other than memory. (C++'s RAII approach, plus destructors, can solve many resource leaks.) But if you don't have to tightly control resources, something with garbage collection may get you further.

Go is designed to help with the problems that come up when you have multiple-million-line codebases that live for multiple decades. (It may be another decade before we know whether Go succeeded.) If that's the problem you're facing, Go may be worth a look. It also may be worthwhile if easy communication between processes/threads is what you need.

If your problem can be helped by strict typing, Haskell may have the best story, but any statically-typed language will help with that more than any non-statically-typed language.

That was presuming that you wanted to solve a particular problem. If what you want is to learn, try Haskell and/or Lisp. If what you want is a paycheck, try Javascript, Java, C#, or C++.

Pick the tool for the job, not because you really like the tool...
Sounds good! Yes, I agree that the board should really only be for issues.
Measure Your Core-Hours Costs to Gain Another Level of Cloud Cost Optimization
I get the parent poster's point, but to me it's like quibbling over people using "comprised of" instead of "comprises": some people will care, but in the grand scheme of things it's not a meaningful disagreement because everybody got what you were trying to say the first time, and there are only a few rare contexts where the distinction matters.
I posted this article less for the negative "countering the myth" that the comments here seem to be responding to, and more for the positive description of how exactly you write code in a thoughtful manner while not overdoing it into "performance uber alles".

I tend to think of it more as not painting myself into a corner than necessarily getting it perfect the first time. It's amazing what some thought, maybe a day in the profiler per couple of months of dev work to catch out the big mistakes (and as near as I can see, nobody ever gets quite good enough to be able to never make such mistakes), and some basic double-checking (like "are any of my queries are doing table scans?") can do for performance, long before you pull out the "big guns".
See above comment, in the file https://github.com/LoyaltyNZ/alchemy-framework/blob/master/s... is a description of creating a cluster of RabbitMQ nodes that can auto heal if an individual node goes down. We are running CoreOS which will occasionally shutdown a node and update. When this happens we see zero downtime and no error messages.
I think his example using LINQ vs loops is not realistic - if you're using arrays like he is who's going to use LINQ with that ? The only reason I would specify a concrete type like that is if I cared about performance - otherwise you'd just specify IEnumerable/IList/IReadOnlyList or whatever and then use LINQ because it's cleaner. Use abstract interface when you don't care about performance at all - and IMO over 80% of the code is like that - initialization code, edge cases, stuff that gets touched less than a 0.01% of execution time and spending the time to optimize is simply not worth it.

He starts the article by judging laziness - after spending a lot of time on stuff that ends up being irrelevant in retrospective I wish I was more lazy about this stuff.
Humans are very, very good at handling unknown complex situations.

In order for any AI to handle any situation, it must first be programmed to do so. If that situation was an unknown, you get undefined behavior. Undefined behavior in a car traveling down the road is not a good thing to place a bet on... especially your life.

This is why majority of sane driverless vehicle talk has concluded a human driver must always be in the driver seat, ready to take control. There's an impossible volume of failure modes a driverless car must contend with, everything from someone pointing an infrared laser at the distance sensors, to complete power failure, to a sudden rockslide, a bird darting in front of the car, lines missing from a windy and hilly road, etc.

In normal, daily mundane driving - driverless cars are expected to excel. Sitting in traffic is mind numbing, and mistakes happen when driver's minds wonder. In "active" driving situations, a human brain will almost always excel.
I do ranger.py
There can be some odd glitches with that if your -actual- email address has a random dot in it.
Everything will be fine as long as we all agree that any language which indexes arrays at 1 is objectively wrong and bad.
This could create a whole new class of car as well. Would be cool to see a more modern VW Westfalia.
Sadly there is no such thing as an electric Civic.
I wish my 30K Nissan Leaf had it.
Maybe if he was willing to work an office not exclusively remote we could find out...all talk no walk...weak.
It's the opposite with me. I can have coffee in the late afternoon, in some cases even in the evening, without problems--but if I have a tea after 3 pm or so, I'm sure to have trouble.

Might have something to do with the strength of the tea, though.
I'd be especially interested in a crawl results API if it could distinguish "news" sites from other content. Some of our work involves analyzing content, extracting keywords and then looking for relevant news (and other context) around those keywords. Of course the crawl would need to be relatively fresh to be useful for that.

Worst case we may build our own specialized crawler just for this purpose, but it would be nice if there was a useful search engine API we could leverage. And, of course, we'd be happy to pay for access to such an API.