skysight-inc/HackerNews huggingface dataset:
If you're taking feedback, I'd like to disagree on your examples of "accidental complexity".

To me, accidental complexities are quirks of design that everyone would agree to do over differently if history replayed itself. Examples like that would be:

-- Java calendar (and C Language ctime) months have index starting with 0 which means 0..11 for Jan..Dec but for days, it's index 1 which means 1..31

-- PHP inconsistencies such some functions being verb_obj while others are obj_verb and some have underscores and some do not

-- MS Excel has incorrect leap year calculation for 1900 which means all other spreadsheets must duplicate this "bug" to be compatible

Those are the types of "accidents" that arise out of ignorance or uncoordinated thinking. Andrei Alexandrescu (expert in C++ and D) has a similar concept he calls "unforced errors".

On the other hand, you compared a Tomcat servlet container as being "accidental complexity" and Go as "reduced complexity" because the http hosting is all built into the exe. To me this is an example of moving complexity around so you don't feel it for your particular use cases of the Go language.

In other words, if the Java community had a chance to do it again, I'm not convinced that Tomcat servlet would be baked into the standard Java distribution. If you bake it into the JVM, you've made the JVM Specification[1] more complex. If you leave it out of the JVM but include it as a standard class library, you've made the API library reference more complex[2] (Alternative universe: Why is the class library reference 3000 pages long?! Because it includes 200 pages to document a servlet container that most don't use.)

Complexity (in totality) wasn't reduced. It was only shifted around. I'm not saying moving complexity around isn't desirable because it is (hence we have "abstractions") but it's not an example of solving accidental complexity.

I think what happens is that we programmers find some language, or framework and if it matches our use cases, it's subjectively less complex. For the others who need generics to write algorithms, they write homegrown template code generators or resort to copy&paste which is more complex. So sure, Golang omits generics but it only makes it less complex from a language-specification perspective. However, it's actually more complex from a total project perspective. I think this explains all the contradictory posts about Django/Rails/etc being "simple" while other posts say it's "complex pulling teeth".

At this point, I don't buy that golang without qualifiers of use-cases is objectively less complex. I'm writing server-side web services with golang and for that use case, I think it's less complex than other alternatives such as C++ or Nodejs. For Windows GUI apps, using C++ with Qt is less complex than Golang.

[1]http://docs.oracle.com/javase/specs/jvms/se7/html/
[2]http://docs.oracle.com/javase/7/docs/api/
There are several endings and side branches. If you've only played it once, try it again. Also, hit up the kitchen right after dinner.
I think taking time to reflect on the progress you made in the last week/month can be good to keep you from burning out. That or finding someone who has a mastery of what you're learning and just talking with them about what you have been doing. Both of those helped me get through learning programming for the first time.
> ... I had to go ahead and publish what I had or it would have remained in my drafts forever. ...

It wouldn't be a loss if you have deleted it forever, you didn't need to keep it in your drafts.
How to manage multiple errors in Go
In South Africa, most consumers are poorly educated, and ignorant, and furniture retailers have been milking them in a similar way for decades. The National Credit Act, introduced in 2007, was supposed to tighten up on reckless and exploitative lending, but they figured out all the loopholes. The Marikana massacre in 2012, which was the worst example of post-apartheid unrest can be traced to ignorant mineworkers having their wages garnished by creditors.

In the last few months, African Bank, which owned a furniture company, imploded.

JD Group, the dominant furniture retailer, that was built on exploitative credit, is spinning off its financial assets.

Still, there is more pain ahead. How ironic that the U.S. is allowing its poor to be exploited the same way.
When Uber, Lyft and Airbnb Meet the Real World
>neither Wal-Mart nor Jack’s nor the nursing home cafeteria have shown interest in an applicant with psoriasis and a ninth-grade education.

People who only have ninth-grade educations aren't the greatest at basic math or delayed gratification.
> Is Result not just a specialised Either? In what way is Either inferior?

It's better named when it comes to being a value/error union: Result/Ok/Err is somewhat more obvious than Either/Right/Left, especially for people who don't make the connection between "right" and "correct".

Aside from that, Result was annotated with #[must_use], so the compiler will warn if you ignore a Result return value:

fn main() {
f1();
}

fn f1() -> Result<(), ()> {
Ok(())
}

=>

> rustc test.rs
test.rs:2:5: 2:10 warning: unused result which must be used, #[warn(unused_must_use)] on by default
test.rs:2 f1();
^~~~~

doing that with Either would be weird.

Those are not huge, but they're small tweaks specially making Result a better fit for an exception replacement.
What proportion of Buddy's customers need home internet access via a second hand iPad2 immediately (ultimate cost $1400) as opposed to internet access via second-hand Android tablet (cost <$100) after waiting a month?
I'd be surprised if it was double digits.
Samsung brings Intel powered Chromebook 2 for $250, starts video support service
It's easily refuted by pointing out the identical nature of the two major parties in the US, in practice if not in platform. It's been demonstrated over and over again that we can't "throw the bums out," because the replacement bums will soon emulate their predecessors.
There are non-predatory means for wanting to rent furniture.

From my own experience, we were selling a house that we'd moved out of, and having a hard time finding a buyer. Realtor suggested 'staging' the home, filling it with furniture, as a full home looks more lived in, and gives buyers an easier time imagining their own furniture in place of yours.

Went to rent-a-center, rented a living room and dining room set and a bed for the master, and the home sold rather quickly thereafter. Though I couldn't say whether or not the furniture had anything to do with it, the renting of furniture is, by no means, predatory on its face.

That people are renting furniture to own is the problem. There are numerous other options, including Craigslist, buying used furniture, or even layaway are all superior to rental.
Pinoccio Craft, a Minecraft companion for the Pinoccio API
TwitPic removes access to 800M photos without warning
This is a little off topic, but I am still unhappy that Apple does not have a simple Android app that would allow me to play the iTunes music I have purchased on all of my devices. I manually keep iTunes music in sync with Amazon cloud which is a nuisance. If Apple does not provide a solution soon, I am canceling my $25/year iTunes Match service and just use Amazon music cloud since they have players for all platforms.

On topic: I have been using Yosemite since the first beta, and it is a nice upgrade. I use a 3 year old MacBook Air, and on a non-retina display everything still looks good. Unlike other commenters, I like the Spotlight changes. I also like the better intro with iOS 8 devices.
> You just won't be able to rely on a search engine to gather all that information for you

Sure you will, as long as you don't use Europe's neutered version of reality.
The American educational system needs to do a better job teaching financial literacy, it seems - and they need to start that education early, before irresponsible people like this one drop out of school in ninth grade.
1. Mistake or not, allowing all pointer types to be `nil` seems like simplification from things like option types. How do you see nil as adding complexity?

2. I've never heard of `if ok` being an idiom _as opposed_ to `if !ok`.
Anonabox has been suspended by Kickstarter
Sure, but if you tell them that their life will be shit anyway, how's that helping their planning?

They don't live in isolation. They're bombarded with a consumerist culture that tells them to live outside the standard they can reasonably afford. It takes an iron will to ignore all outside influences and be content with the stable level of poverty you can afford.
after a certain point, the torproject sends you a tshirt[1]

[1]: https://www.torproject.org/getinvolved/tshirt.html
Nope, the cloud is about automation and self-service.

If the provider tells you what you're getting you can always ignore that information if you don't care. But some customers care about hardware specifics.
Why studying in Coimbra?
It's even not only about their math skill, it's also about self control. They just need to wait for a while and put small amount of money into an account each week. They could get a TV/couch/iPad within <72 weeks. Considering their financial status, why they want to buy those things right NOW?
I guess I just don't see why Newbee is so much better than existing baby trackers, that I want to invest in seeing it made. Yes the UI looks nice, but the actual features don't seem any better than the dozens of trackers that are already on app stores.

If this was an existing product on the app store, and was also just a few dollars, I may have bought Newbee because it looks prettier. But $16 for a chance to use a 1 year subscription (if it's ever made, and I have another child around the same time), of a product that doesn't seem to have any advantage other than "prettier"... I'll pass.
It's not my intent, and I find your premise questionable. Are you suggesting that newspapers and similar organs would try to make money out of people who wanted to search their archives? If so then yes, they probably would, but so what?
Docker, CoreOS, fleet, and etcd have completely changed how I build projects. It's made me much more productive.

I'm working on Strata, which is a building management & commissioning system for property owners of high-rise smart buildings. It's currently deployed in a single building in downtown Toronto, and it's pulling in data from thousands of devices, and presenting it in real-time via an API and a dashboard.

So in this building, I have a massive server. 2 CPUs, 10 cores each, 128GB of RAM, the works. It came with VMWare ESXi.

I have 10 instances of CoreOS running, each identical, but with multiple NICs provisioned for each so that they can communicate with the building subsystems.

I built every "app" in its own Docker container. That means PostgreSQL, Redis, RabbitMQ, my Django app, my websocket server, even Nginx, all run in their own containers. They advertise themselves into etcd, and any dependencies are pulled from etcd. That means that the Django app gets the addresses for the PostgreSQL and Redis servers from etcd, and connects that way. If these values change, each container restarts itself as needed.

I also have a number of workers to crawl the network and pull in data. Deployment is just a matter of running 'fleetctl start overlord@{1..9}.service', and it's deployed across every machine in my cluster.

With this setup, adding machines, or adding containers is straightforward and flexible.

Furthermore, for development, I run the same Docker containers locally via Vagrant, building and pushing as needed. And when I applied for YC, I spun up 3 CoreOS instances on DigitalOcean and ran the fleet files there.

As I said, I've been able to streamline development and make it super agile with Docker & CoreOS. Oh, and I'm the only one working on this. I figure if I can do it on my own, imagine what a team of engineers can do.

Very powerful stuff.
i never said monoprice was disreputable. i said amazon was "more reputable"

which i believe is true as they have in my experience the best return policy anywhere.
Heroku Legacy Routing EOL on October 20th
> it's your only reasonable option to actually get a couch that you don't pull directly out of the landfill.

Except that isn't even remotely true.
That's the point. The Wayland design philosophy is to give you a buffer and let you draw into it however you want. That's in marked contrast to X, which defines its own drawing API.

Wayland is not meant to be doing very much. Its main job is to give programs the buffers they need.
I think it comes from all the Political Correctness that many of us in the Western World have to adjust to or face employment termination, scrutiny, social insulation.

I will tell you just this: I'm disappointed that "poor" can't pick up a sofa from the street for free.

That's what I did when I was poor. Living in a Brooklyn basement with roaches on minimal wage, straight from the plane, barely speaking English.

These guys aren't poor. Poor don't buy new $1,500 sofas. Heck, right know with kid and wife and combined income close to $200k I don't have $1,500 sofa as there are better ways to spend (invest) money. My sofa is from Ikea, got it in 2007 for about $1,000.

They are stupid.
I have paid for my Sublime Text license. I use it everyday for work, and seriously... The $70 is less than my hourly pay, so I really want to give that to the developer, who spends hours on it, for me to earn my money every week.

Sure you can use it for free, but if you use it everyday and earn money on the code you make using it, it would be a fine gesture to support the developer.
I don't see a need to, given the way you started in.
I find it hard to empathize because I just have no experience of whatever phenomenon is making these people go out and spend thousands of dollars on tat. I don't understand it any more than I understand rich people spending millions on shinier tat when they could be investing it in the search for an ebola vaccine.

I can sympathize because clearly they're getting a shitty deal out of life, and I'm aware of various possible explanations as to why somebody with no money might want to buy expensive goods, but I can't really do empathy because the phenomenon is basically mysterious and counterintuitive to me.
For any bundle they are offering they should have a non-zero cost in acquiring the phone, in which case they'd have a very hard time to justify not letting you sign up to an unbundled agreement where at the very least the cost of the phone is removed. They'd almost certainly be breaking the law if they do (of course that doesn't necessary mean they aren't doing it though)
Anonabox Kickstarter has been suspended
> But what about the criticisms of the language that are always left unanswered?

I think the article's answer was: Go solves the real problems, not the academic/theoretical problems. But it's fair to ask, how does Go do that? Specifically?
Did you have kids at the time? I don't think you would've been as comfortable picking up a sofa potentially infested with who-knows-what and your kids sleeping on it.

I've been poor too, but I had the distinct advantage of an education, which made it clear that certain choices were better than others. Let's not forget that not everyone enjoys that advantage (whether it's available or not)
I agree 100% that it is a specialized either.

I would argue that either is inferior because programmers empirically won't be bothered remembering that Left = Err and Right = Ok. Also fixing your Left to conform to a common error type which supports chaining is directly is also pretty important. This can be accomplished in a few different ways, but it's going to be done so often that Either ends up never being used for anything other than Results base class / Result is implemented as a type-class on either, with crappy names for error and ok.

Overally though I dislike Either, because to me, it is a symptom of a language lacking a way to declare anonymous type disjunctions inline[1], just like things like std::pair indicates a language lacks tuples.

1: Something like

def parseToken : ParseError | Int | String

looking at that maybe with inline type disjunctions the need for Result itself melts away.
Systemd has been trying to drag desktop linux into a world that is as seamless as OSX and it is so sad that most people blast it as "not the linux way". And even sadder that people type this on Macbooks.

The truth is that the West has moved on from Linux - Apple has won. Linux is most relevant in Asia, where we want to run it on cheap, locally assembled desktops. SystemD is bringing so much to improve the state of desktop linux - it is enabling fundamental security like XWindows-without-root[1], service dependency management ,etc.

there is a lot of fud around binary logs (which incidentally are append only and have a grep like interface built around it) and hard dependencies on systemd for any cgroup access. The second is actually kernel mandated - all cgroups have to have a single arbitrator for external applications. Direct access to cgroups will be dropped in the future. AFAIK, as on today systemd is the ONLY arbitrator that complies with the kernel-dev requirements.

I'm keen to see where desktop Linux can go to - I believe that it is going to be transformative for India. I strongly believe desktop Linux initiatives like SystemD and Mir/Wayland is going to take us there

That said, if you have worked with Docker - I find myself wishing very frequently for SystemD as pid 1. Right now I use supervisord as PID 1 (for a multiprocess container) and it is definitely more difficult to use than SystemD. Plus the ease of imposing resource limits (using systemd.resource-control) is simply unparalleled
[1] http://fedoraproject.org/wiki/Changes/XorgWithoutRootRights
This thread is indeed alarmingly close to becoming a parody of itself: "Why don't poor people just make more money?"
Mapping Jimmy John’s Non-Compete Sandwich Zones
None of the CVE's you linked to are exploitable in the latest Firefox. "Beyond awful" security would usually require multiple unpatched exploits. Current Firefox has none.
Your Pictures Need More Picture
Assuming this is Python 2.x (doesn't seem to be specified in the benchmark results), then the use of "range" is problematic (should be "xrange").
I think a lot of people have not been in this situation or have not really experienced the level of poverty that these people live.

Managing money is not that hard. Abbot also mentions that she knows how much she's paying, she's not blind to it.

I think what people don't understand is the intense amount of stress that poverty causes and how it affects your judgement. When you're in a spot so bad that you have maybe $20 a week for food and have bills and collections wanting everything you have, simple things like a new couch or speakers look like an escape, almost therapeutic, when you have nothing. The desire to be "normal" and come across as relevant in society can be so strong. You can't look at the couch as just a couch, these people are looking at an escape from their lives.

I highly suspect that the majority of HNers haven't been subject to a level of poverty that affects the mind like this. I can't take someone, who talks about the lives of the impoverished when they can take a degree, savings account, and probably a stable family/upbringing to the argument seriously.
You're not considering that some of us may have actually been/are poor. My frustration at people throw their paycheck-to-paycheck earnings at Rent-a-centers isn't "oh, look at the stupid poors", it's "I've been there, and I know that you can get a $1500 couch for $50 cash if you are willing to get up at 5 AM on Saturday mornings and go hit garage sales."

The article's presentation of "These people have no options except to be horrifically exploited" is wrong at best, maybe even dishonest. No matter how much money you make, spending beyond your means because you have to have luxuries you really can't afford is a bad financial play.

I feel a lot of empathy for people who get caught in the RAC trap. They're digging themselves into a hole that they'll never escape from, and that's genuinely sad. But it's a fixable problem! They aren't victims of their circumstances, they're victims of their own consumerism. At the end of the day, each of us is responsible for what we choose to spend our earnings on, and if you choose to spend all your expendable income on instant gratification, that's your choice, and you get to own the consequences of that choice.
Unfortunately, the poor usually understand what they're agreeing to; they simply don't have any other choice.
I'm curious what your definition of "exploitation" is.
"Sorry to interrupt, but this page's code has got itself in a mess (Script error.)."

hm :) might want to somehow [tag] this.
opex for a house is not the same as an opex for a hotel, or the compliance requirements for similar facilities.
"do you think the people renting these AirBNB units are contributing more or less than $33 million to the local economy by consuming local goods/services when they stay here?"

You could argue that NJ visitors add revenue to the NYC economy when they ride the PATH into NYC, but that doesn't mean they get to hop the turnstile and ride in for free. Airbnb either needs to change the laws, or abide by them. Rationalizing violations citing the "greater good" won't fly in a city where travel and real estate are such valuable components of the economy.
Why the downvotes? Open up a random HTML5-JS game right now please. Then open it with Chrome.
I really enjoyed the game, but (possible minor spoilers) the game crashed in Chrome Canary right when I think I was about to see an ending. On purpose?
$10k in Two Weeks from Product Hunt, Medium and Hacker News
I've re-written the instructions a few times since I first posted it. Once it gets into conflicts and problems I can't cover everything, and I don't want to give a dozen commands for people to paste in and run for various scenarios and then screw people up more. I'll add a note to merge instead of replace, though, thanks!
> Building third-party binaries in a reproducible environment

Awesome! Not enough people talk about this use case IMO. For instance, docker itself and the docker-cli are both compiled inside of a docker container. This allows you to circumvent the "OK, install the right version of Go, all the libraries I need etc." song and dance if you're developing in a new place (or if new developers join in the contribution).

It's also a great way to circumvent the (all to familiar) problem of "OK which lib* do I need to get this to compile? It isn't documented" problem.
> The attitude of renting or getting a loan for any consumer item is financial suicide.

When we moved into our house, we bought all our furniture on a zero-interest, four year loan. It made a lot of financial sense to pay a fairly low monthly payment and have the large amount of money available for investments.
Funny thing about being broke, it seems to come with an intense even overwhelming desire to feel/signal otherwise in what are usually counterproductive ways.

Where I grew up, everybody was pretty damn poor. Still, probably half my neighborhood or more was beholden to Rent-A-Center for a dining room set or couch. Most were ashamed to shop at K-Mart or even buy generic cereal.

That said, I think IKEA could do tidy business by targeting a slimmed down catalog to the areas where rent to own thrives.
I'll add that note. People with problems tended have >100k or more files.
All add a note about the log buffer, thanks.
According to his biography Steve Jobs spend years in a house with not much more than a mattress and gramophone as furniture. People have been conditioned to buy stuff as a means of "expressing themselves" or "their personality", the were let towards those kinds of thought with the onset of mass production in the 1920s, at least that's the thesis of "The century of the Self" (http://vimeo.com/85948693)
Anonabox Kickstarter Project Suspended and Funds Returned to Backers
Fucking over Tesla = helping the big 3.