The Orange Juice Test (1985) - <AUTHOR> https://www.intercom.com/blog/the-orange-juice-test/ <comment><USER2> I'm stunned that no one is mentioning that this story came from Gerald Weinberg ( [https://en.wikipedia.org/wiki/Gerald_Weinberg](https://en.wikipedia.org/wiki/Gerald_Weinberg) ) - who passed away a few days ago. He was the OS dev manager for Project Mercury. He wrote 40 books on topics in software development, quality, organizational change and team psychology. He was very influential.

It's even more stunning that the author of the post didn't mention him either.

<comment><USER3> First I'm hearing that he died. What a bummer. I got to meet him once, briefly. Such a sincere guy.

<comment><USER2> Yes, he was wonderful.

</comment></comment></comment><comment><USER4> Commenters here seem to read too much into the actual orange juice story and don't seem to get the actual point. I've worked in consultancy for a couple of years now and I've worked with sales people that say: "sure, we can do this", without having a clue and even asking an engineer. These projects, more often than not, run out of time and budget.

If I were the one on the hiring side, I'd be happy to be told that there might be a challenge in feature X and that they'd need to get more information to get a definitive answer. To me, that's what the article is about, not instantly wanting to give a definitive answer, but acknowledging that there may be some difficulties along the way.

<comment><USER5> >I've worked in consultancy for a couple of years now and I've worked with sales people that say: "sure, we can do this", without having a clue and even asking an engineer. These projects, more often than not, run out of time and budget.

A lot of people here say this, and no doubt it is indeed a real problem. Yet none of the books I've read on negotiation ever suggested something as inane as the orange juice test. They all have sections or a chapter on "OK, now that you've got the deal, how are you going to ensure the counterpart follows through?"

The solution will depend on the situation. Some of it is your responsibility for monitoring. Some of it (probably a lot, actually) is putting penalties in the contract. Some of it is being proactive and exploring what constraints the other person may be under (Is he under-resourced? Are there other decision makers than him who can screw it up? Can he outline a plan so you can see potential flaws?).

But nowhere do they suggest playing opaque games.

<comment><USER4> > But nowhere do they suggest playing opaque games

My point was that it doesn't have to be an opaque game, the story just makes it seem that way. That's why I mentioned people reading too much into the story and not getting the point.

> They all have sections or a chapter on "OK, now that you've got the deal, > how are you going to ensure the counterpart follows through?"

Sure, that's a valid way to approach this type of thing. It just means that in stead of spending most time on the actual project, you might be spending your time on managing the your supplier. If you can get around this by picking a supplier that makes a realistic bid, including a mention of possible issues, that might save a lot of headaches.

This is a choice in management strategy and I've experienced both types. I've also experienced that customers that do something like 'the orange juice test' are often better to work with and end up happier with the end result.

There's actually a huge issue in the Netherlands currently, where major consultancy firms make bids on projects the can't deliver. Multiple 8-9 figure government projects have ended that way and are now in litigation stages. This problem is both caused by the customer not knowing what they want and the supplier abusing that to get more hours in. Gotta make that sales target somehow!

</comment></comment></comment><comment><USER6> Sorry, I would have told the client no. Sure, it's technically possible to have the freshly squeezed orange juice ready at 7am. But it's not just a matter of cost. It's also more likely something will go wrong. And your business may not be able to afford having something go wrong.

Plus, a client asking for something like this - that's a huge red flag that the person asking is going to be very demanding, very clueless, or both. The kind of client that won't be happy with anything you do, and won't be easy to work with.

Our business culture is always teaching us to say yes. But there are some real assholes out there. For your own wellbeing, say no more often. Stand up for yourself. This guy can squeeze his own oranges.

Edit: I should add - it's even more of a red flag when your client does things to "test" you. Sounds like the kind of person who doesn't respect your professional ability, and won't trust you to do your job.

<comment><USER7> To be honest, if I asked a supplier that question and they said they could do it for the right price I'd be concerned about how they treat their staff, and likely wouldn't buy from them. Asking people to come in at 5am so you can make a buck is not a good way to run a business.

<comment><USER8> Pay people fair for the overtime and I see no big problem with this? All depends on how you define fair though.

<comment><USER9> Convention hotels typically have staff 24 hours a day. They pay shift differentials. They can arrange for extra staff for big events.

The correct thing to do is for the hotel convention manager to say "I will get you a price for that by tomorrow," and go talk to the banquet manager, who will check:

\- current price of oranges, and estimated yield and wastage

\- number of juicing machines needed

\- number of extra staff needed

and come back with a price that reflects the costs, the hotel's desire to make a profit, and their desire to land this particular meeting.

Quick estimate:

2 oz of juice per orange, 14 oz glasses, so seven oranges per glass, 700 glasses, that's 4900 oranges. Three oranges to the pound, 1617 pounds. Allow for 10% wastage, 1800 pounds. $1.32 a pound, $2400 for the oranges. A person with a juicer and a knife can process two oranges a minute, that's 2450 person-minutes, we have 120 minutes to do it, so we need 21 extra people. We pay for a full shift minimum, so $15/hour for 8 hours for 21 people is $2520. We have pitchers and glassware already.

At no profit the cost is $4920 for your 700 glasses of no-more-than-two-hours old hand-squeezed orange juice, and now the convention manager will look at the total price for your meeting and decide what to price it at -- but $10/glass is entirely plausible.

<comment><USER10> I wonder what the orange juice test response to "No, I can't scrounge up enough staff to fill that order" is. Are logistical impediments acceptable, or should they just increase the price to something astronomical (top pay for onboarding and training new staff) to compensate?

<comment><USER11> It's a catering company, they are going to drive down to 7/11 and pick up enough random people milling around out front. If they're lucky they will get minimum wage, but at least it will all be cash.

<comment><USER10> Yeah, I know in this scenario there are ways around - though I'm pretty sure hiring random people on the street is how Project Mayhem succeeded. I was trying to use that as an example for the logistics - if you come to me and ask me "I want a AAA video game" I'm not going go to be able to do that for you as I don't have the resources available.

<comment><USER12> With an astronomical- _enough_ price, you can afford to hire 10,000 random people, put them all through a college game-development program, and then train the 1% of them that turn out to be good at that particular job into competent game developers. Or maybe use the money as capital to acquire a game studio.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> I found this article hard to follow. I feel like there's a deliberate coyness and "buildup" but it's way too playful for what it is and all but guarantees the "payoff" ends up falling short of expectations, which it does. The playfulness is distracting.

The supposed payoff is semantical nonsense, where the manager who agrees to deliver on the request doesn't explicitly specify that the cost would go up. But that's only because it's related as a summary, and in a real conversation, costs would be discussed.

<comment><USER14> It's a really bizarre bit of writing in general. I'm oddly bothered by how much this guy hates breakfast, without actually explaining why.

> "A sales breakfast for seven hundred people?" I grimaced. "That's downright > disgusting!"

What.

<comment><USER15> This is something called 'banter.' It was common in speech and writing in the 19th to 20th century. Find dramas or comedies from the middle 1980s and watch them. It's good for cultural literacy, especially if you're going to encounter writing from that period.

<comment><USER16> Thanks for explaining why I hated _The Goal_, 2 pages of business advice ("Try kaizen and supply chain optimization") wrapped in a Twilight-esque padding of alcoholism, loveless marriage, and parenting.

</comment></comment></comment></comment><comment><USER17> Hey folks, Author of that post (but _not_ the story contained in it) here.

Jerry Weinberg published that story in a book titled The Secrets of Consulting. It's a very good book though, going by the comments here, many of you won't like it (or have never consulted).

I published this piece ~7 years ago I'd say, it popped up today as Jerry died sadly a couple of days ago (a real loss, if this style of article isn't for you, you might enjoy The Psychology of Computer Programming[1]).

Anyways, just wanted to give context here amongst the criticisms.

[1] [https://www.amazon.com/Psychology-Computer-Programming- Silve...](https://www.amazon.com/Psychology-Computer-Programming-Silver- Anniversary/dp/0932633420)

</comment><comment><USER18> Consulting is all about having difficult conversations. Good consultants should be interviewing the client as much as the client is interviewing them. The OJ test sounds like a pretty good test conversation to have.

As a consultant, you're entering a world where really smart people have already taken a run at the problem and failed. They probably know all the angles. Too much optimism or too much negativity is not going to help -- in fact, it can lead to a lot of wasted money. I usually say something like "That's looks impossible. Let's figure it out." Some phrase that both acknowledges the difficulty and offers some optimism.

As trite as it sounds, what they say is true: It's a journey. The really wild thing is that even when the client describes something that's dead easy? It's still a journey. That's because it's not easy _to them_. It's just easy _to you_. Most times the conversations around problems that are easily solved are the most difficult to have. The client has already thrown away the answer (mostly in my experience because they didn't understand the answer in the first place even though they thought they did) and your job is to get them to reconsider it.

Also, hand out oranges at the door at put juicers on each table. Then each person can have as much OJ as they want as recently-squeezed as they'd like. (Solving the problem, of course, is not the point of the essay)

</comment><comment><USER19> I am not keen on the analogy with orange juice, but the gist of it works: the company I work at got a large contract by knowing the business inside and out. A client came to us an asked us if we could build a certain system. We said 'yes, we could, but we actually think you're trying to build the wrong solution to your problem. Your actual problem as we understand it is this, and we think such-and-so is a solution to that'. They were very impressed.

It is a bold move to pull something off like that, and you can only do that if the people at the table are not clueless salesmen, but knowledgeable people about what you are going to be consulting on.

I think this is the real case for the orange juice test: understanding the implications of squizing so much oranges before 7am, being able to recognize the logistical problems around that, and being able to make an informed recommendation: 'Yes, we can do that, but at this price point because x'. Perhaps it would be even better to suggest a solution that achieves the same end-goal (whatever that might be in this case) through different means.

</comment><comment><USER20> I see many negative comments here, and this article feels like a tale more than a real story.

My mother is great in business and that is one of the main things I've ever learned. Never say a straight no, it always boils down to pricing. With enough budget, all projects are possible. There is no BS in that.

Want some Big Data or ML for simple analytics? Sure, I'll find someone to do it or learn enough myself, but you're gonna pay for it. Blockchain? Same thing.

</comment><comment><USER21> The biggest logical flaw here is the assumption that estimation is the most important skill here which isn't the case. Worse yet is it also assumes you already know an approximate answer which bypasses any innovators. The smug juicer here could be asking for several million dollars of load balancing servers in the old way when other techniques could solve it and he has already dismissed them as frauds because he hasn't heard of sticky sessions.

<comment><USER22> The take away is that the two parties need to be able to work together to solve the problem at hand.

In your example, that sounds like a client that the business might not want to deal with. That's a good thing to know.

</comment></comment><comment><USER23> This reads like those stories you'll hear delivered by a certain kind of priest / pastor / etc. It feels contrived, and buries a decent piece of advice in a boring and phony-sounding parable.

</comment><comment><USER24> Some seem to be appalled by the idea that this thing is a test or trick. But in the end, the essence is to find people who understand the problem space and that they should not eliminate options because they think they are unreasonable. Instead, they should present all available options to you and add context (like recommendations). In the end, you should be able to see a clear picture of the situation, all available options, and related consequences before deciding which way to go.

Often you can conduct such 'tests' without some hypothetical situation and just present them one of your harder problems you are currently trying to solve and look how they react.

</comment><comment><USER25> Too long a story for too weak a farfetched made up challenge... if a client ever asked me to have 700 tall glasses of fresh OJ, it would be a 2 second answer "Yes, I'll order from the local organic market, each gallon of fresh OJ costs X, and you'd need x gallons", not some big imaginary struggle...

a more effective or gripping version should be like... "The Apollo 13 Test"...

<comment><USER26> ... and you'd fail this particular test unless you could find an organic market that had just squeezed x gallons of fresh OJ within 5-7AM.

</comment></comment><comment><USER27> I have also been doing this for a long time and I was surprised when this article took some attention six - seven years ago when it first published. ( Gosh it was that long since I read it? Seems like yesteryear to me ) It isn't a trick, nor is it a test. Just truth to be told.

With the abundant of information, expertise and tech, there isn't really anything that is impossible unless it is pure sci-fi. The problem comes with how much you are willing to spend / pay. Even if the price cant be agreed at first, then we look at how often are they going to do it. Once every week? months? or one off?

The biggest biggest problem of most ( if not all ), these people are unwilling to paid the price of such event even if it was hosted at lunch time or dinner time ( normal working hours ) and have frozen concentrated orange juice ( Minimal Preparation ). These kind of customer are more common in non tech industry.

<comment><USER28> >impossible unless it is pure sci-fi.

It also depends on the timeframe. If someone comes to me and needs some complicated job (doesn't really matter what it--just assume it's something that normally takes weeks to months) done overnight, the money doesn't really matter. There just isn't enough runway.

Of course, as the timeframe gets longer, things start to become possible for a premium cost, phased delivery, etc.

</comment></comment><comment><USER29> Has anyone actually been involved in fulfilling this orange juice request? I'm not convinced the author understands the problem well enough to judge what the appropriate response is. It may very well be less difficult than he expects, at least for a hotel with the right staff and equipment on hand.

<comment> compiler-guy "at least for a hotel with the right staff and equipment on hand."

That is exactly what he is seeking to determine: If the hotel has the right staff and equipment.

But it is very rare that a hotel has enough staff to freshly squeeze orange juice for 700 people in two hours.

</comment></comment><comment><USER30> _That's a real problem. I can help you with it, … and this is how much it will cost._

I must be missing something. How is this a better answer than the other "flunking" responses?

All the consultant has done is slap a price tag on what must be an ill- informed opinion given the lack of follow-up questions.

</comment><comment><USER31> In LeanPub you can all of Weinberg books: [https://leanpub.com/u/jerryweinberg](https://leanpub.com/u/jerryweinberg)

They are full of hard earned knowledge that will make you a better professional. Take a look at the bundles.

</comment><comment><USER32> I just learned of this yesterday. Did you post this because you read ohjeez's comment [https://news.ycombinator.com/reply?id=17721389](https://news.ycombinator.com/reply?id=17721389), or is this purely a coincidence ;)?

<comment><AUTHOR> yes, not a coincidence

[edit: I thought it might yield an interesting discussion and imho it did]

<comment><USER32> I agree, I mentioned that because I found it serendipitous.

</comment></comment></comment><comment><USER33> I actually have a different take on this. There's a difference between filling the role of a service provider vs. a consultant.

I get the point that it's important to meet a brief, but I think the role of a consultant needs to go further.

A consultant asks 'why' to fully understand the problem. There needs to be an element of research and inquiry to provide consultancy, even if that is just a brief conversation before breakfast.

Why? Because, if you're solving a problem, it's important to understand what the end goal is. I'd start by finding out why orange juice, in particular, is important.

After meeting a brief, there's always a chance a situation or process can be improved. Why pay money for a consultant if this isn't what you're looking for?

</comment><comment><USER34> A similar idea that I like is Van Halen's brown M&M's clause. Worth a read

[https://www.snopes.com/fact-check/brown-out/](https://www.snopes.com/fact- check/brown-out/)

<comment><USER35> Similar, but doesn't really seem to be the same thing.

In the Van Halen case, they're trying to see if the service provider even _finds out_ about the clause; to pass the test is to weed out the brown candies. In the orange juice case, the orange juice is clearly requested; to pass the test is apparently to be able to work through all the potential prerequisites.

<comment> compiler-guy Yeah, the M&Ms clause is entirely about, "How carefully did they read the contract, and how detailed are they in carrying it out."

</comment></comment></comment><comment><USER36> what if the sales/banquet manager says Yes to the outrageous proposal, and can/will actually deliver on it because they really want your business?

e.g. they go out of their way to call their friends and family to come in 7 a.m. to help squeeze orange juice for you

then your stupid "test" just "eliminated" an outstanding provider

you are the client, can afford to play games. To you, it's just a test, just screwing around. But to the manager/provider, it's actual business, income, livelihood, food on the table for kids at home

maybe act like an Adult and not play stupid test games? It's business

<comment><USER37> More likely, the guy just gets an orange squeezing machine. Every supermarket has one, he can just have 3000 oranges delivered the day before, load them in the machine at 6 and have his staff pour them out at 7. I don't see the logistical problem here.

Edit: a quick google shows that renting such a machine costs ~ USD 100.

<comment><USER38> Have you tried the automatic squeezer from the supermarket? It's so slow and it doesn't work well with more than 2 oranges at a time. It's probably gonna break apart before it finishes the first hundred.

<comment><USER39> Two or three high-speed industrial juicers would be more than enough to handle the task. I mean, really, this isn't _that_ bad of a job for a competent banquet service. You're looking at a lot of oranges (4000 or so, about two tons) and a lot of work, but banquet catering is always a lot of work, especially for 700 people. The instance on large glasses and fresh squeezed OJ is gonna make it expensive, but if they've said it's an established tradition then it's fair to assume that they've done this before and are aware of the cost. We'd be clear about the fact it's gonna be expensive just to be sure, but would definitely say that we can get it done.

</comment></comment></comment></comment><comment><USER40> My usual routine of accepting tasks is: wruza, see this endless field of grass with no civilization in sight? Soon hundreds of people will be waiting here every morning for their orange juice. No pressure, you have a week.

I bet that looking for someone who doesn't rage hiss at that would take much more time than is usually required to accomplish everything to at least 80%.

Salesmen are always high with their "so many people to choose from, let's choose". Nope, you have no choice actually, if you really need your "orange juice" thing. No matter how many smart stories you spit out.

</comment><comment><USER41> Ah man that's a shame I love Des's work but this article wasn't good.

It's simple - just be open about what you want to achieve and assess the potential partners feedback through a series of Q & A.

Build a relationship based on trust and communication. There's no need to pass any test, let alone one based on fruit.

I will agree with the sentiment around business breakfasts though. The most important meal of the day shouldn't be some bullshit breakfast meeting.

<comment><USER17> Hey SimonsWords82 - Des here. Just wanted to say, I love this article, but it's _not by me_.

It's a story from Gerry Weinberg's "The Secrets of Consulting". Gerry is an exceptional writer, who sadly passed away 2 days ago.

<comment><USER41> Hi Des - thanks for the reply and insight I did not know that. I'll have a read of The Secrets of Consulting as it's the core of what I do and despite not enjoying this anecdote I'm sure there's some good stuff in there.

Meanwhile, keep up the great work you and your team do, I'm a big fan.

Edit: P.S. It's Simon Swords - an Irish name, we've got a castle just north of Dublin apparently that I've yet to claim!

<comment><USER17> Ah! I know the castle well. Totally worth claiming: [http://www.fingaldublin.ie/interior-pages/activities- attract...](http://www.fingaldublin.ie/interior-pages/activities-attractions- amp-conference/castles-churches-and-towers/swords-castle/)

</comment></comment></comment></comment><comment><USER42> Reminds me of Van Halen's Brown M&M clause. A test they put in their riders to check if it would be safe to play a gig.

[https://www.npr.org/sections/therecord/2012/02/14/146880432/...](https://www.npr.org/sections/therecord/2012/02/14/146880432/the- truth-about-van-halen-and-those-brown-m-ms)

</comment><comment><USER43> on the other hand, it's much more beneficial to eat a whole orange with all the fiber

</comment><comment><USER44> This just sounds like basic expectation management, fluffed up a little to make it sound like more than it really is (which is funny because the 'test' itself sets up an identical situation). It reads like a fantasy of a conversation rather than one that actually happened.

Of course you're going to work with someone who is up-front with you when other people are just saying yes and no. "I hired you because you were engaged with my proposal and were clear about expectations" doesn't have the same ring to it because it doesn't beat around the bush.

</comment><comment><USER45> I would have severe reservations about working for an employer that resorted to his sort of dishonest tactic at an interview.

</comment><comment><USER46> Sounds extremely similar to the M&M test.

</comment><comment><USER47> Counterpoint: [https://xkcd.com/1425/](https://xkcd.com/1425/)

Sometimes, in software, things are hard because they're still research problems. Solving those problems means paying Ph.D.s to _try_ to make progress on them, with no guarantee of results. If you had guarantees of results, it wouldn't be research, would it? Of course not.

Since most businesses aren't going to allocate money for grants, and since firing someone for negative results _still_ doesn't get you your money back _or_ a return on your investment, trying to negotiate with a client whose problem involves a fundamental breakthrough in computer vision, or speech recognition, or attempting to do what Theranos promised isn't going to be fruitful, because success in that field isn't a matter of money. It's a matter of, more than anything else, luck, in getting the right minds in the right context to make the right advances, assuming the advances are even possible.

</comment><comment><USER48> "we want you to do this really complicated project"

"that sounds challenging, I think I can help!"

"jkjk there's no project, just wanted to see if you pass the Orange Juice Test ™. The project is just a WordPress site!"

"oh."

the end.

I'm glad I don't deal with people like this.

Edit: I'm unreasonably irritated with this article... this part really drives home how asinine the whole thing is:

"But surely you considered more than that? No doubt I could get workers to squeeze oranges at 5 a.m. if I paid them a thousand dollars apiece. But would you be willing to pay that much?"

"I might, or I might not, but it's not for the banquet managers to decide that for me. That's my job, not theirs. If your price had been too high, we would have eliminated you, too. But that's a different test. There's no sense in getting a low price if they can't do the job, or if they're going to con you and give you canned orange juice in small glasses"

so you ask for all this stupid stuff (just a prank, bro!) and then when it comes to saying, "sure, but it will be more expensive" then that's ANOTHER test?? So as a consultant I should drop everything to listen to your tall tale about things to don't actually exist just to show you that my porridge is not too hot or not too cold and MAYBE gain the distinct honor and privilege to work with you? GTFO.

<comment><USER49> I'm not keen on the orange juice analogy either but I do agree with the gist of it.

You ask if a certain task or project can be accomplished and the people who say yes without any hint of a problem are almost certain to be the people who let you down.

The guy who asks for more information and, maybe, presents you with reasons why your project isn't so simple as you thought is much more likely to deliver.

<comment><USER50> > the people who say yes without any hint of a problem are almost certain to > be the people who let you down.

Idk, people ask, "CAN YOU MAKE THIS APP?", I always answer, "I can".

If someone asked me if I can build some robotic thing, I'd answer "I can".

If they asked me "Can you build X in Y Weeks?" then I need to know the project.

I have been able to do pretty much everything thrown at me. The biggest question is how long we have and specifying what we actually want.

<comment><USER51> But then they ask "Can you put 45 cases of cans onto a grocery store shelf per hour, for 6 hours straight, every weeknight between the hours of 10pm and 4am?"

<comment><USER50> "Possibly, can I see the details of this task?

I can work the hours, but I'm not sure the logistics and ergonomics of transporting that quantity of material."

</comment></comment></comment></comment></comment><comment><USER52> Reminds me of Van Halen and the brown M&Ms.

</comment><comment><USER53> TL;DR: Avoid hiring people/companies that seem delusional ("no problem at all!") or defeatist ("that's impossible") when asked to bid on a challenging (impossible?) task.

<comment> compiler-guy The key is that it is "challenging, but possible". For the specific test: "Can you provide a very large amount of very freshly squeezed Orange Juice at an annoying time", the answer for a good provider is, "Yes, but I'll need a large staff and some logistical coordination. That is expensive, but if you are prepared to pay, I can do it."

If you say, "Not possible", you have failed because it is obviously possible, it just takes time and money.

If you say, "No problem", you have failed, because you don't understand what makes it difficult.

Possible but expensive.

</comment></comment><comment><USER54> The premise of this article that you assess people's honesty and reliability by ambushing them with a trick (heuristic which is opaque to them) expecting only certain responses to be "correct", is intrinsically dishonest and low integrity. Although I would like to think that I would often "pass the test" here, I would be extremely reluctant to work with anyone who had pulled any bush league BS like this.

In my mind this is very similar to interviewing someone with a trick question/riddle/conundrum and failing them if they don't answer one of a specific set of "right answers" that only you know. It's a great way to feel smart by rejecting people but not a great way to discriminate between good and poor candidates.

<comment><USER55> > failing them if they don't answer one of a specific set of "right answers"

A few years ago I did a round of interviews at Google. Despite what they say about not doing those kinds of questions anymore, they gave me a whole slew of them, in programming form. Not "how much would it cost to wash all the windows in NYC", but questions like "given a grid of land, each block having a price, pick the largest rectangle under $X".

If I'd heard of it before and knew the solution already, I did great. If I hadn't, I did poorly- but generally figured out the algorithm they wanted within a day- just not in the 45 minutes given. Alas, I guess I'm not "Googly" enough.

<comment><USER56> I don't know, the two questions are nothing alike:

One is asking for a guesstimate, while the other is a proper optimisation problem. To me it's a valid interview question, albeit a bit difficult for a short session.

<comment><USER55> There's a specific best solution involving dynamic programming. If you've heard the answer, like say if you spent a month reading a bunch of common programming interview questions, then you can 'solve' it in 15 minutes. If you haven't, then you need to be ready to invent the same solution in 45 minutes (less the 5 minutes spent explaining the problem).

Maybe Google (and the other big tech companies using the same style of interview) is looking for the types who can brilliantly solve problems like that in 40 minutes, but they're instead going to hire a lot of guys who read the book of problems ahead of time.

<comment><USER5> I've solved this very problem without reading the answer. If you understand dynamic programming, this is simply testing your skills in it (although I'd agree it may be too much for a short session).

<comment><USER55> Sure, but usually the problem is decorated in a few layers of bullshit to hide what the true problem is. I remember the core, actual problem, but that wasn't what got presented. So take off another 5 to 10 minutes cutting through that.

</comment></comment></comment></comment></comment></comment><comment><USER57> The article reminds me of Van Halen's M&M contract rider, though the Orange Juice Test in somewhat more fickle and hostile.

From Wikipedia:

> The band's demands were not limited to technical issues; their now-infamous > rider specified that a bowl of M&M's, with all of the brown M&M's removed, > was to be placed in their dressing room. According to David Lee Roth, this > was listed in the technical portion of the contract not because the band > wanted to make capricious demands of the venue, but rather as a test of > whether or not the contract had actually been thoroughly read and honored, > as it contained other requirements involving legitimate safety concerns. If > the bowl was present, then the band members could safely assume the other, > legitimate, items in the technical rider were being fulfilled to their > satisfaction. Conversely, if the bowl was missing, or brown M&M's were > present, then the band members would be within their rights to have the > venue inspect the work, ask that it be redone, etc. Their concern for safety > was real: during their earlier tours, not only had equipment been damaged, > but several members of their road crew were nearly electrocuted, both due to > inadequate safety measures and preparation on the part of the local venue. > [1]

The big difference here is that the band were using the rider as a canary-in- a-coal-mine for real safety concerns and to see if the venue staff had read the fine print. The Orange Juice test serves a similar purpose, but it is more like many of the obnoxious 'gotcha' tech interview questions in which the interviewer has a you've-heard-this-one-before-or-you-haven't trick answer (that the interviewer almost definitely read somewhere and didn't figure out).

Different people (and especially different cultures, even within a country) do business in different ways. Expecting the contractor to act in a way you personally expect a good contractor would act isn't a reliable way to identify good contractors. It might be a good way to avoid false positives... But it probably creates lots of false negatives, which is wasteful and expensive in its own way over time.

I don't know if there's a better metric or test, but there's got to be a better one than early morning orange juice....

[1]: [https://en.wikipedia.org/wiki/Van_Halen#Contract_riders](https://en.wikipedia.org/wiki/Van_Halen#Contract_riders)

<comment><USER25> This is a much better story, if only because it's real, and involves contracts instead of hypothetical fake cult rituals.

<comment><USER58> The OJ story is just an analogy for any difficult but achievable ask used to test a service provider.

</comment></comment></comment><comment><USER59> That was the most painfully smug and contrived dialogue I've read since _Atlas Shrugged_. Would have been more effective if the whole thing was replaced by the two-sentence summary at the end.

<comment><USER60> What were your issues with Atlas Shrugged if you don't mind me asking?

<comment><USER23> The 100 page essay at the end that basically repeats the themes of the previous 800 pages, but with even less subtlety.

I like Rand btw, but that essay in a book of that length is pretty much inexcusable. Just write a collection of essays or something.

<comment><USER61> Long speeches tho were really once more common. I don't have a lot of 'feel' for this tho because I don't even listen to contemporary speeches (because I much prefer being able to read a transcript much more quickly).

<comment><USER23> I'm not really sure what you're arguing here.

The speech at the end is really just a disguised essay that summarizes everything you already have figured out, but does it really slowly, in a book that's already taken its sweet time. From the point of view of structuring a story, it's a waste of the reader's time. Furthermore, it's a violation of the long standing convention that when an author writes a book about something they don't just come out and say what it's about. They paint it into the characters and setting, and let the ideas blossom over the course of the story.

I don't think you can defend it by making some sort of argument towards verisimilitude and historical speech lengths. Assuming that's what you're driving at.

<comment><USER61> I'll (mostly) grant you that the speech is "really just a disguised essay that summarizes everything you already have figured out", but I don't think there's anything wrong with that. Good rhetoric is redundant.

I also don't think it's a problem that it "does it really slowly" or that the book itself, overall, has "taken its sweet time".

Because of all of the above, I disagree that "it's a waste of the reader's time".

Unfortunately (or maybe not), it's a common enough violation of 'convention' that authors write an [Author Filibuster]([https://tvtropes.org/pmwiki/pmwiki.php/Main/AuthorFilibuster](https://tvtropes.org/pmwiki/pmwiki.php/Main/AuthorFilibuster)) or [Author Tract]([https://tvtropes.org/pmwiki/pmwiki.php/Main/AuthorTract](https://tvtropes.org/pmwiki/pmwiki.php/Main/AuthorTract)).

But of course I can defend it by arguing that it's realistic in its length or tone. Real people really do give long-winded political speeches! And the story supports it too! And look, there I went, defending that part of the book.

<comment><USER23> >Good rhetoric is redundant.

I'm not sure you can state that as an absolute. And certainly we can agree there's degrees of redundancy, a threshold that once crossed, is belaboring the point rather than expanding on it.

>I also don't think it's a problem that it "does it really slowly" or that the book itself, overall, has "taken its sweet time".

I've got no problem with the length of the book. I found it moved at a pretty good pace for me after the first 100 pages or so.

As for the length of the speech, how long would it take to deliver those hundred or so pages as a speech? Hours probably? Can you point to an example of a political speech that has gone on that long? It's news to me, but I'm no historian.

>I disagree that "it's a waste of the reader's time".

You're welcome to obviously. Everyone is welcome to their opinion.

>And look, there I went, defending that part of the book.

Honestly, I don't find your arguments compelling though. You made a questionable claim about rhetoric, and showed that other authors have exhibited the same pathology. Coming to defend that part of the book doesn't actually prove that it's defensible, just that you felt compelled to try (as much as any of this is possibly provable).

I think the essay could have been kept to, say, 10 pages and it would have felt like the climax to the book it was intended to be. Rather than some waffling blowhard thinking anyone in the country is going to sit and listen to his 4 hour pirate broadcast.

</comment></comment></comment></comment></comment></comment></comment><comment><USER62> That is an incredibly stupid test. Why would you even want to work with them? They failed my test of being a bad person to work with. It's outright pathetic and should end with "fuck off"</comment>


Ask HN: Word tips? - <AUTHOR>

I use Word a lot from time to time to write big reports and it is quite frustrating. I know Latex is superior and I have started using it for my PhD work. But I still don't know enough to use it in my workplace where I don't always have the time to tinker around.
So, if you use Word to write big documents, do you have any good tips to share? I find that as soon as documents grow beyond a few pages and have lots of tables and figures, Word becomes really slow. Often, the document structure is screwed and I have to re-reference and re-format things a million times.
I'd be really grateful if you could help.
Thanks. <comment><USER2> Keeping the original document in RTF seems to help Word play nice. Unfortunately not all of Word's features are part of RTF so YMMV.

<comment><AUTHOR> I might try that. Thanks.</comment></comment>


Stackoverflow Makes Hackers Lazy - <AUTHOR> http://nerdr.com/stackoverflow-makes-hackers-lazy/ <comment><USER3> Uh, no. If your problem is so trivial that it can easily be answered by SO and then you're done, you're not building anything complicated and in fact it should be easy to build and you shouldn't get any hacker cred. Similarly with how "Googleable" your answer is. This post is on the verge of being in the same category as those lamenting the niceness of Google or an online dictionary because in the old days with physical books they'd frequently stumble on something neat on the way to whatever it was they were looking for in the first place.

I suppose (for a contrived example) back in the day making a POST request from a browser and handling it with PHP/Perl/etc. was a task worthy of hacker cred because there wasn't any documentation on how to do it, whereas now it's example 1.4 on any decent PHP introduction, and it's something that can be easily answered by SO users. Whereas if you're trying to build an FFP Machine, there isn't even a wiki page.

Lastly, you can always force yourself not to use SO. I use SO as if launching a background process--it helps me clarify what my problem is (sometimes I don't even post after that), and after I post I can keep searching/trying instead of "sipping tea" and SO will notify me of any new answers.

</comment><comment><USER4> In my first year of college, learning games development, I was told repeatedly that a lazy programmer is a good programmer. Why do work when someone else has done it already? (It was meant in terms of code re-use, but that transfers nicely to this. After all, I'm only re-using someone else's code)

In my opinion, it's similar to the difference between depth-first and breadth- first. You can spend a few weeks learning the ins and outs of something and become and expert at it, or you can do several things in the same time (using the jigsaw method - just find the pieces and put them together) and learn small parts of each.

There're merits to both sides. [Shameless plugging going on now] For example, for a html5 game engine I've been working on[0], we spent several weeks just learning the underlying frameworks, then looking into other game engines and how they're architected, etc. It's still not finished - we ran into college time and put it on hold. However, I've since gotten a job because of the skills I picked up through working on the engine.

However, for a geolocation alarm app [1] that I decided to work up, I used the jigsaw method. I finished it in a few days. I learned a couple of things, but nothing major. A very small addition to my skillset. On the other hand, it was enjoyable to do, and it flled a hole that I had come across.

So, I suppose, deciding on which method to use is just a matter of context. Two-day deadline? Stackoverflow. Six weeks and lots of free time? Actually learn it and add it to your CV.

[0] <http://flax.ie> [1] <http://flax.ie/an-app-in-under-five-hours/>

</comment><comment><USER5> This guy is suffering from the "I work on easy stuff" problem. I used to be like him, thought there was nothing new to learn, if something feels a bit strange, just ask someone.

But what I've actually come to realize is this: StackOverflow simply does _not_ answer any of my questions. I probably suck at asking questions, but by the time I find even a half decent solution to my problem on stackoverflow, I've already gotten through it using the old school way.

I'm probably using stackoverflow all wrong ... then again, I find it an invaluable when I'm learning a new language and have a bunch of low-level questions. In fact, I don't even have to answer them, they're already answered and I just have to find them.

</comment><comment><USER6> "Copy/paste code from answer."

Copy/pasting is one of the most obvious code smells. I don't do it, you should never do it, and anyone who does should rightly be considered at best irresponsible and at worst incompetent.

The first reason is obvious - you need to understand every line of code you check in. I won't beat a dead horse here.

There is a more subtle point, however. Every programmer writes in their own style and it's important that your code has a consistent style (yours). This doesn't just include the cosmetic aspects (e.g. indentation), but also design tendencies, word choice, etc. I've never seen a piece of code someone else has written and thought "Wow, that's _exactly_ how I would've done it." If you're willing to tolerate a completely different style in your source, then I question the degree to which you care about your craft, and consequently all of your work the way I would an author's if I found 5 pages written by someone else in their book.

So, please, read the code, understand why it works, figure out how you would do it, then code _that_ up.

</comment><comment><USER7> I strongly disagree with this. I think the author is projecting his worldview onto Stack. Just like virtually everything else in education, you only get out what you put in. If you use it in a lazy way, then it makes you lazy but if you code until you're stuck, post a question, code more - sometimes getting the answer yourself, other times accepting an answer then you can learn plenty.

</comment><comment><USER8> My stats - 2 questions in 1.5 years.

I only resort to question sites when I am at the end of my tether with a project. I enjoy knowing what the correct procedure is.

It's like 3rd party plug-ins or pre written code, I would simply not put it in my project unless I knew exactly what it does.

I think this post is generalising their own experiences, it sounds to me like no progress has been made in their programming skills since they used to do it "the old way". I used to use experts exchange all the time when I was learning to code, I occasionally come across posts now when I am trying to sort a problem.

It sounds like the authors lack of understanding of how the language works means they continue to post the most trivial questions to question sites.

</comment><comment><USER9> No, Stackoverflow makes hackers more efficient.

Besides, if you want the "old" way, don't post your question; instead, just search through SO until you find where somebody else has already asked almost the same thing.

</comment><comment><USER10> In the past, they said the same thing about Google/Wikipedia/The internet in general, that it make us dumbs, etc. But it is not quite true, as we are now able to use our newly free resources (time, mind, etc) for other useful things thanks to the assistance we get from those services.

Hacking in particular, you now have more time to write more tests of your code, as you got things done earlier. you are now have time to add more features, and you are now have more time to learn new technology, language etc.

Same as the human memory is not weaker than it was 15 years ago, although, 15 years ago, every human being was able to dial out tens of numbers without looking in the phone book, while today, we simply type the name or speed dial it from the mobile device. We do remember less phone numbers, yet, those "cells" in the brain are used for other things.

</comment><comment><USER11> I've been on Stack Overflow for 2.5 years, and my current stats are: Questions asked: 4, answers posted: 1,909 (including to one of my own questions).

So, I guess that makes me still a hacker, then? Awesome! :)

My point is: not everyone uses Stack Overflow in the same way. I find it much much harder to come up with decent questions, than answering stuff. I'm quite the karma-junkie (the design works) too, and I think I'm not alone in that.

I think the projects "killed" by SO in the fashion described here were maybe not very relevant to start with. There's nothing preventing you from learning on your own, and a single answer on SO is rarely wide or deep enough to remove the need to study and learn for yourself.

</comment><comment><USER12> It's easy enough to replace "Make tea" with "Answer someone else's question." That counteracts the effect quite nicely. [edit: my stats, for what they're worth: 8 questions, 54 answers]

</comment><comment><USER13> There's apparently a balance between questions and answers, seeing that most answers on SO get answered. If that wasn't the case, I would feel like I _need_ to answer questions if I ask them, to give something back to the community, but right now it's apparently not neccesary.

Also, the answers on SO are usually of such a high quality, that you learn a lot in the process. Often an answer will push me in another direction than I was going, because someone gave a better way to do something.

</comment><comment><USER14> If anything, it reduces the amount of time spent by someone to find a solution to their problems/issues/quirks and enables them to move on faster and work more efficiently.

I rarely comment on such opinion pieces precisely because of them being someone else's opinion and nothing else. It might be their pet peeve or it might be their path to salvation. That need not be the case for me. To each to their own.

</comment><comment><USER15> When I have a programming problem, often the answer comes to me _while_ writing the question on Stack Overflow.

Trying to explain your code to others forces you to simplify it by removing anything that is not relevant to the problem itself. The problem often becomes head-smacking clear once you remove all the cruft.

<comment><USER16> Yep, this is my experience too. Forming a question that can be approached by others is pretty hard and makes you think.

</comment></comment><comment><USER17> Nonsense! Do you refuse to use books? Not avail yourself of libraries? Don't wander through (pick your favorite department) the halls of your academic situation? Of course not, that would be majorly stupid. This is no different— in fact what is needed (possible weekend idea coming up here) is something to automate the process… Information is like butterflies— go net yourself some.

</comment><comment><USER18> I agree with everyone who said "you're working on stuff that's too easy" but got me thinking that it would be interesting to put together a project made up entirely of cut and pasted fragments from SO. Probably not really possible since there's always some glue or editing needed so there's always at least some thinking involved.

</comment><comment><USER19> You always need a foundation of knowledge. It's not lazy at all to search for, find, and implement the answer. A lot of the more helpful Stack answers are really just pointers anyway.

Also, eventually with any complex problem you're going to (quickly) get to the point where some quick research is not going to work.

</comment><comment><USER20> This is the same argument as "the Internet is bad because it makes us lazy."

That aside, any blogger that _tries_ to convey their opinion by starting with "Don't get me wrong," should be dragged online and shot. But not before asking about the appropriate type of buckshot on the Guns SE.

</comment><comment><USER21> Hackers -should- be lazy. They should never want to do work that's already been done. They should be working on new problems that haven't already been solved, or improving existing solutions.

</comment><comment><USER22> before i ask a question, i try to find out if someone else already answered a similar question. the first few posts that come up rarely produce insta-fixes to my problem, but deal with different problems. hence: learning effect - <USER2> skimming over it, i learn (something) about a problem that i don't have right now.

</comment><comment><USER23> Hackers should be lazy, so I guess it's all right?

<comment><USER3> As Larry Wall says, the three programming virtues are laziness, impatience, and hubris.</comment></comment>


Linux Driver Management 1.0 Released - <AUTHOR> https://solus-project.com/2018/01/26/linux-driver-management-1-0-released/ <comment><USER2> Link to the github project which gives more information about LDM:

[https://github.com/solus-project/linux-driver- management](https://github.com/solus-project/linux-driver-management)

</comment><comment><USER3> I've always wanted to try Solus. The budgie desktop looks intriguing, and I've always wanted to try one that was an O/S of it's own and not a Debian or RHEL derivative. My main hang-up is concerning software availability. Since it's not your typical Debian-based OS the normal (huge) package repositories are out, so do you have to compile everything from source specifically for Solus, or do they have their own pre-compiled archive of stuff?

<comment><AUTHOR> There is a (growing) repository of software packages and the developers are open to sensible package requests[1]. So far I've found that almost everything I needed was already in the Solus repository.

[1][https://solus-project.com/articles/packaging/request-a- packa...](https://solus-project.com/articles/packaging/request-a-package/en/)

<comment><USER4> I have wondered, and certainly not exclusively to Solus, if there's any reason why some "package capture" couldn't be built in to people compiling from source for distros where a package isn't available.

Certainly there would have to be a bunch of checks and balances, not blind acceptance, capturing source code URLs, checksums and the like, potentially reproducible builds, but could be a way to 'crowd source' packages. Or is this a solution in search of a problem?

<comment><USER5> Thats Arch and its AUR basically.

<comment><USER6> ... If aur uploaded the binary from the first person building it, saving others the need to recompile.

<comment><USER5> Except for very large applications, most software you would find on the AUR can be compiled in a few minutes or less.

And it's not about "saving the time to recompile", it's about using the source code so that you can keep using the AUR as long as the compilation process does not break.

</comment></comment></comment></comment></comment></comment><comment><USER7> This looks fantastic! Hardware enumeration on linux is so painful. What I would give for a copy of Windows' Device Manager on Mint...

<comment><USER8> You can see when hardware gets plugged in by running "dmesg" on the command line.

<comment><USER9> That does not _always_ help, though.

A while back, I tried to connect my Bluetooth headset to my low-end notebook. As far as dmesg could tell me, the Bluetooth chip was detected and worked just fine. But it did not detect any devices that were around. After the headphones failed, I tried again with my phone and a tablet (I have too many gadgets, I know) - the result was consistent throughout: The notebook did not discovery any pair-able devices.

After about ten minutes of this, I decided I am too old for this crap and got my _good_ notebook. This time, the notebook discovered the headphones, like it should, and it happily paired with the headphones, like it should, but every now and again, the Bluetooth connection just dropped, and the notebook could not re-discover the headphones until I rebooted it. dmesg was ominously silent about this, it merely pointed out that it had killed the Bluetooth daemon (but I suspect that was a result of the driver or the BT chip misbehaving).

To be fair, otherwise both notebooks work perfectly fine, and I also have no idea if a "Driver Manager" would have helped me with either of these issues. And it is not a deal breaker for me either, because do not normally use my notebooks for anything that requires headphones. But I did run into problems that I suspect were caused either by the hardware or the driver, and dmesg did not help me at all.

In case it matters, though, both notebooks run openSuse Tumbleweed, but I have a hunch neither of these problems is distro-specific.

EDIT: OK, so this was not about enumeration. But still.

<comment><USER10> This is a problem with bluetooth, full-stop. The protocol is insane, and this sort of thing happens frequently on every platform.

<comment><USER11> BT itself is NOT the problem. Some of the profiles are a bit odd, and others are downright eloquent and wonderful. The LE stuff is actually quite nice in places!

BT chipsets on the other hand, are complete crap. And every single BT stack has its own mess of bugs and is 90% of an implementation of what the spec says, and each stack implements a slightly different 90%, and the remaining 10% is just random bugs.

<comment><USER10> Strongly disagree. Every time I look into building anything with bluetooth I come to the same conclusion that the protocol is irredeemably awful.

The fact that the massive pile of profiles essentially all need to be supported inside the chipset is what makes their firmware so buggy and unreliable. Software written by semiconductor manufacturers is famously bad, and the approach that bluetooth has taken basically asks them to do more of the firmware work, keep track of more application state, and never get their wires crossed. And because the chipset firmware is almost always a binary blob, system designers have no way to fix anything. Of course it's going to be a massive failure.

What they should have done was built a dumb, encrypted pipe, and let downstream driver and application developers deal with the application-layer logic. Then the semiconductor manufacturers would only be responsible for a basic bulk transfer interface that's a lot harder to screw up. This is why wifi and ethernet and usb drivers tend to work reasonably well, and bluetooth drivers are an unreliable mess.

I get why they did it... in the early days, prices for bluetooth chipsets varied depending on which profiles they supported. This was supposed to be a way for semiconductor companies to differentiate themselves in a world where they were increasingly viewed as commodity suppliers. But because they never bothered to invest in their firmware development (these companies have like 20 people working on chip design and verification and like 3 on firmware), they ended up making everything worse rather than adding value.

<comment><USER11> AVRCP is quite eloquent. I get the feeling that whoever designed it is upset that it never got properly implemented or used.

BTLE in its entirety is just simple. It is possible to read over the BTLE spec in a couple hours and understand it. (AVRCP can be read in half an hour tops, 15 minutes if you skim the same-y diagrams)

BT SPP is, well, a glorified serial port, with all the advantages and disadvantages that entails.

If you want a glorified pipe, BT SPP is where you go. You can actually use BT LE to do the same thing, at a much slower transfer rate.

> wifi and ethernet and usb drivers tend to work reasonably well

WiFi and USB drivers are also flaming piles of trash. Since 90% of USB use cases consist of either USB-HID or Mass Storage, there is less to get wrong.

Do anything beyond that and you can easily find yourself SOL.

And Wi-Fi drivers are complete crap. Power management sucks, Wi-Fi chips hard lock and _somehow_ a watch dog timer never kicks in (how?), and they rarely give the speeds that they are supposed to. Intel had some Wi-Fi chip a few years back that, for a good 2 years after its release, it would randomly stop deciding to finding networks to connect to, until it was power cycled. After a couple of years on the market they finally released a firmware update.

Don't get me wrong, Chipset BT Firmware is horrible. I've worked with vendors who obviously weren't using version control, subsequent patches would have regressions that made it apparent they had built today's patch off of old source code that predated the last patch they had sent us. Hilarity like that.

But the OS side BT stacks also tend to suck. Then there is the driver for the BT chip, which can also suck.

The actual BT standard itself, I would argue, isn't the largest part of what is wrong.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> does it relate in any way to Isenkram? [http://people.skolelinux.org/pere/blog/Isenkram__Appstream_a...](http://people.skolelinux.org/pere/blog/Isenkram__Appstream_and_udev_make_life_as_a_LEGO_builder_easier.html)

<comment><AUTHOR> Interesting, hadn't heard about Isenkram. I have no idea if there is any relation. I would have to ask Ikey Doherty (the main Solus developer) directly. The only similar projects he mentioned on Reddit were Jockey and (I think) Gnome Software.

</comment></comment><comment><USER13> When a distribution is centred around a custom desktop environment, I know to avoid that distribution.</comment>


Cheapshot – A map-based multiplayer shooter game for iPhone - <AUTHOR> http://cheapshot.co/

<comment><USER2> I've seen the landing page and "watch in action" video. I still have no idea what are this game's rules. I only saw some flashing images of in-game screens, which didn't really explain anything

<comment><USER3> needs more jump cuts and video glitches, you can still barely see lackluster "gameplay"

</comment></comment><comment><USER4> Um, does one of the demo avatars have to be Ian Brady?

<comment><USER5> +1, unbelievable.

Using child rapists in your marketing is not good, even for a company called Cheapshot.

<comment><USER6> Living in Russia I wasn't aware of him being a child rapist. That's definitely not a part of our promotion plan. Will remove him.

<comment><USER4> Thanks, would be grimly fascinated to hear how that ended up being in there though.

</comment></comment></comment></comment><comment><USER7> Played the game for a little bit. Kind of weird to see someone approach you on the GPS and have to kill them.

Impressive design and intro of the app. I really liked the video you guys made at the beginning of the app. I never seen anything like that. Would you mind sharing with us how you did that?

<comment><USER6> Thank you! Basically it is a series of 2 seconds square videos with a small interaction: you tilt your iPhone to explore the videos. Just like photos in Paper by Facebook.

The videos and transitions were filtered with a combination of destructive After Effects filters. Some of the effects were achieved by using a nice little iPhone app called Glitché.

We intentionally lowered the quality when we exported the videos so that they look 'authentic'.

</comment></comment><comment><USER8> I mean, I get it, but it just looks like it would get really boring fast. Also, this should be submitted as a 'Show HN'.

[https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

<comment><USER6> I'm one of the game creators and this submission is not mine. I couldn't resist to upvote it though. As for the game getting boring I really hope you're wrong: most of the players find it very addictive and it will get better if more people will find adversaries online.

</comment></comment><comment><USER9> The whole phone number thing is broken, at least for danes. Danish numbers are 8 digits, this app believes they are 9.

<comment><USER6> This is embarrassing. We will fix it. Thank you.

<comment><USER10> Just like crypto, you really shouldn't roll your own phone number validation libraries. Just use Google's libphonenumber[0]. There's an iOS port of it [1].

[0] [https://github.com/googlei18n/libphonenumber](https://github.com/googlei18n/libphonenumber)

[1] [https://github.com/iziz/libPhoneNumber- iOS](https://github.com/iziz/libPhoneNumber-iOS)

</comment></comment></comment><comment><USER11> Gamer's arguments have always been that shooters are artificial environments with no personality involved. In Counterstrike you're fighting against stereotypical terrorists that are in no way related to your personal life.

Here, you "kill" real people with a face. Objective? Motivation? Kill him before he kills me?

I'm deeply concerned about this and find it disgusting.

<comment><USER12> I always thought the argument was "it's just a game".

If you can't separate fiction from reality, you have deeper issues than violent video games.

<comment><USER11> I can, but other people might not.

<comment><USER13> Hang on: why are you special?</comment></comment></comment></comment>


Qwili.com: search for wine, tea or coffee - <AUTHOR> http://www.qwili.com/search/index.aspx?q=White%20Wine

<comment><AUTHOR> We built qwili.com as an easy way to search and get educated about wine, tea or coffee. We found out a lot of wine lovers knew very little about wine; how to get a bottle that best matches what you want to eat is not always easy. We appreciate any feedback.</comment>


Let's Fix OpenGL [pdf] - <AUTHOR> http://www.cs.cornell.edu/~asampson/media/papers/opengl-snapl2017-preprint.pdf <comment><USER2> I'm not an OpenGL expert or anything, but I get the impression the author doesn't really know what he's talking about and sounds a bit amateurish (I'm a bit hesitant to say that given it's a professor at Cornell..)

He seems to just hand-wave and says "well just use C you idiots". He criticizes Metal for using a version of C++14 that doesn't allow recursion, but offers no alternate solutions

The reason GLSL isn't C is because you can't do everything C does on a low end cellphone GPU - so obviously you have to restrict the language. The "cognitive load" of knowing the restrictions is overblown but also unavoidable.

SPIRV isn't even mentioned. DSL's are dismissed.

I didn't really follow what he didn't like about the preset input/output variables that are predefined in the different shaders. It's a bit ugly.. but that's also pretty much a non issue.

<comment><USER3> > The reason GLSL isn't C is because you can't do everything C does on a low > end cellphone GPU - so obviously you have to restrict the language.

GLSL limitations has nothing to do with lowend devices and performance (which now is becoming irrelevant compared to desktops).

But rather GLSL is executed on the GPU— typically across many stream processors— this type of parallelization makes using a general purpose language like C difficult.

I think you need to familiar yourself with some shader programming at least, before you critique the author's domain.

<comment><USER4> I think he is familiar. The "you can't do" comment really means "you can't do with good performance." Typical C code would not run fast on a GPU. Indirect data (pointer chasing) has /extreme/ latency penalty!

</comment></comment></comment><comment><USER5> This author seems pretty clueless about how things actually work and a lot of the assumptions are just plain wrong. For example, ubershaders are preferred instead of many small shaders because the overhead of switching shaders and recompiling them is expensive. It is not something that people build because it is convenient (rather it is quite the opposite!) and then specialize with fixed parameters.

</comment><comment><USER6> As someone who's a fan of PL languages(and spends a fair amount of time in the GPU space) I'm not sure I buy many of the arguments.

The reason that GPU drivers/APIs have few safety checks is that in graphics code, performance is valued above all else. Even simple calls can introduce overhead that's undesirable when you're making thousands of the same type of calls.

His example of baked shaders doesn't really seem to hold much value since interactive shader builders(ShaderToy, UE3/4, etc) are all content driven anyway so the extra code generation isn't a limiting constraint.

Nice effort but I don't see it solving actual pain points in production.

<comment><USER7> If performance was valued above all else in a narrow sense, OpenGL would not be used and people would program GPUs natively.

In a wide sense that includes programmer productivity and end product robustness in the equation, well, safety checks sell themselves.

Bounds checking is very cheap on CPUs, but even more so on GPUs because GPUs are more rarely bottlenecked on simple local arithmetic.

<comment><USER8> >If performance was valued above all else in a narrow sense, OpenGL would not be used and people would program GPUs natively.

People do program GPU natively on game consoles. However, with so many GPUs in use (at least three major manufacturers each with multiple architectures just for desktop) it's impractical to write native graphics code. It's exactly the same concern as people have for CPU programming - it would be the best to write ISA code but given the variety of available CPUs the C/C++ is the best compromise between performance and usability. All attempts to push "better" language with forced run-time costs have failed to displace it.

>Bounds checking is very cheap on CPUs, but even more so on GPUs because GPUs are more rarely bottlenecked on simple local arithmetic.

Good news. GPUs do bounds checking in hardware already. The errors people want OpenGL to find are not about out-of-bounds but mostly of "I want to draw this but instead it's drawing that, what to do?" kind, caused by the complex state and its dynamic nature.

</comment></comment></comment><comment><USER9> John Carmack weighed in on Twitter:

> ...some interesting thoughts, but the shading language is the least broken > part of OpenGL.

> Lots of people consider automating the computation rate determination > between fragment and vertex shaders, but it is a terrible idea.

[https://twitter.com/ID_AA_Carmack/status/851258064909070336](https://twitter.com/ID_AA_Carmack/status/851258064909070336)

</comment><comment><USER10> A concrete problem that the author misses is the need for a better understanding of SPMD semantics. GLSL has the notion of "dynamically uniform" values, i.e. values that are the same across all shader threads that arise from one draw call, but this notion isn't really properly defined anywhere. It involves an unholy mixture of data flow and control flow that doesn't seem to appear anywhere else in PL theory.

Stuff kind of just works because GLSL doesn't have unstructured control-flow (i.e., there's no goto), and people have a mental model of what the hardware actually does and use that for the semantics.

But a proper study of those semantics, and how to carry it over to unstructured control-flow, or to what extent it is possible, would be awesome.

</comment><comment><USER11> > Potential solutions. Shader languages' needs are not distinct enough from > ordinary imperative programming languages to warrant ground-up domain- > specific designs. They should should instead be implemented as extensions to > general-purpose programming languages. There is a rich literature on > language extensibility [27, 36, 39] that could let implementations add > shader-specific functionality, such as vector operations, to ordinary > languages.

I like this part.

<comment><USER12> Apple's Metal shader language is C++14 with some restrictions, and extensions (such as native matrix and vector types), implemented with LLVM:

[https://developer.apple.com/metal/metal-shading-language- spe...](https://developer.apple.com/metal/metal-shading-language- specification.pdf)

Microsoft's HLSL is now also based on LLVM:

[https://blogs.msdn.microsoft.com/directx/2017/01/23/new- dire...](https://blogs.msdn.microsoft.com/directx/2017/01/23/new-directx- shader-compiler-based-on-clangllvm-now-available-as-open-source/)

Khronos has an LLVM-based translator between LLVM bitcode and SPIR-V:

[https://github.com/KhronosGroup/SPIRV- LLVM](https://github.com/KhronosGroup/SPIRV-LLVM)

So things are converging, may be one day GPU extensions will end up in the C++ standard ;)

<comment><USER13> Sadly Khronos' LLVM only supports OpenCL i.e. compute SPIRV code generation, is rather old (3.6.1) and is nowhere near in shape enough to be upstreamed, and MS's in only slightly newer at 3.7, the the repo also contains a custom clang and so would require some git surgery to get it upstream once stable. Apple's metal I don't think is even open source.

However I have a an up to date fork of LLVM 5 ([https://github.com/thewilsonator/llvm](https://github.com/thewilsonator/llvm)) that has Khronos' changes cleaned up a bit, i.e. the spirv triples are actually targets, but once I make the SPIRV OpenCL extension operations proper LLVM intrinsics instead of mangled C++ (and delete all the associated mangling code) then there is no reason that can't go upstream.

I don't think SPIRV graphics support will be all that difficult to add once the intrinsics nonsense is fixed.

> So things are converging, may be one day GPU extensions will end up in the > C++ standard ;)

Not before D gets them ;) (Shameless plug: I will be speaking at DConf about this.)

</comment></comment></comment><comment><USER14> As someone who recently start learning to program GPUs, I enjoyed this read. I particularly find the concept of a linear algebra-aware type system compelling. I love the idea of the type system statically checking that I'm performing operation in and between correct vector spaces. Is the fact that Vulkan uses SPIR-V sufficient to support creation of languages to allow this to be implemented?

<comment><USER15> If all you want is more static checking, it doesn't much matter if the graphics API consumes GLSL or SPIR-V. SPIR-V is mostly about factoring out part of the optimization phase from the driver to the compilation process. This speeds up the process of loading a shader, and more importantly lets developers control aspects of optimization they couldn't before.

</comment></comment><comment><USER16> Flicking through the article made me wonder - would it be possible to have something like ACID tests for OpenGL?

<comment><USER17> [https://people.freedesktop.org/~nh/piglit/](https://people.freedesktop.org/~nh/piglit/) is an extensive open conformance test suite for opengl. Khronos has their own ([https://github.com/KhronosGroup/VK-GL- CTS](https://github.com/KhronosGroup/VK-GL-CTS), used to be proprietary), but judging by the amount of bugs and piglit failures in drivers which supposedly pass it, I think it's probably not very useful.

<comment><USER10> Be aware that the open-source GL tests in vk-gl-cts still contain quite a lot of bugs from porting from the old framework that was used in proprietary test suite releases.

Piglit isn't really a _conformance_ test suite. It is a test suite, is usually extended when people add new features to Mesa, and collects regression tests over time. However, it actually started out in part as a way to modify glean tests that drivers _couldn 't_ pass because the hardware was lacking, for example, hardware didn't have enough precision in the blender... those were the days. The p in piglit stands for your choice of pragmatic or practical. I'm not sure if that's actually documented anywhere, but as the original author, I should know ;-)

I'm sure piglit has bugs, but it's also well known that certain closed source drivers have less than conformant GLSL compilers, for example - so the fact that drivers passing the Khronos conformance tests fail piglit tests in itself doesn't mean anything other than shit needs investigating, and occasionally needs spec clarifications.

<comment><USER17> Fair enough, and good to hear from you :) piglit made my life better when I was doing mesa work.

</comment></comment></comment></comment><comment><USER18> I don't think I fully understand the point about metaprogramming facilities. Sure, it would be nice to have compile-time ifs that get eliminated from the generated code if the condition isn't met. But I don't think this necessarily solves the problem of "combinatoric explosion" of different shader variants - you still have to generate a separate chunk of code for each possible combination of compile-time conditions. Unless a corresponding change is proposed at the level of shader bytecode (SPIR-V), which probably leads to opening a can of worms.

<comment><USER19> Im fairly certain shaders can and do eliminate compile time if statements, you can observer this by seeing which uniforms are defined (for example in WebGL).

<comment><USER18> You mean if we write

if (some_constant_expression) { //...code... }

and some_constant_expression evaluates to false, the entire code block will be stripped from the result?

That may be true, but it's not standardized behavior, is it?

<comment><USER20> True for many compilers for many years. Its a way to integrate 'conditional compilation' into the normal program flow. It can make the code easier (or harder) to read. Use judiciously.

</comment></comment></comment></comment><comment><USER18> While I agree with the points about type safety with uniforms/attributes, I've found that this class of bugs didn't happen to me all that often in practice. The bug that happens way more often is calculations in the wrong coordinate system (or using two values in different coordinate systems in the same calculation), which the author also points out.

</comment><comment><USER21> I find it hard to test opengl. That would be my first approach to fix it: provide a good way to debug and test the compiled programs.

<comment><USER22> Eh, you can already debug kernels on a line-stepping level. What exactly do you need more?

<comment><USER23> That sounds pretty awesome to me. What tool should I be using to do that for Intel Haswell on Linux?

<comment><USER22> CodeXL can do that (at least on Windows)

I think VTune can do OpenCL analyses, I don't know whether it has any graphics debugging capability (quite a lot of features are Windows-only or annoying to set up on Linux [because who needs a kernel with a stable ABI?], including managed analyses [1] :(

The simple truth here is that most development happens on Windows and thus most development tools are developed for Windows. This is almost universally true, with some notable exceptions (e.g. Valgrind can be a killer app; nodejs is so unportable that it requires a new Windows subsystem to run).

[1] That is, VTune detects whether and which invasive runtime you are using and is able to descend into and analyse what the runtime is doing. E.g. with a Python managed analysis VTune replaces all these recursive gibberish calls like PyEval_EvalFrameEx with the Python traces that it's executing. When I first used that mind=blown. Sadly, Windows only. But even then VTune is, without consciously trying to make this comment an advert, one of the best (if not the best) performance analysis tools I've ever used.</comment></comment></comment></comment>


You Can Make a Difference - <AUTHOR> https://www.alexkras.com/you-can-make-a-difference/ <comment><USER2> Oh, was not aware that Google has addressed this. Thanks for bringing it up!</comment>


Boosting the Real Time Performance of Gnome Shell 3.34 in Ubuntu 19.10 - <AUTHOR> https://discourse.ubuntu.com/t/boosting-the-real-time-performance-of-gnome-shell-3-34-in-ubuntu-19-10/13095/7 <comment><AUTHOR> Surprisingly insightful post IMNHO.

From the mistakes section:

> Dragging windows and assuming that's related to performance of the rest of > the shell. It's not always. We found that dragging windows had its own > unique reason (78) for being slow on top of everything else.

And from that bug/mr: [https://gitlab.gnome.org/GNOME/mutter/merge_requests/568](https://gitlab.gnome.org/GNOME/mutter/merge_requests/568)

> compositor: Don't emit size-changed when only position changes

> Waking up gnome-shell and triggering JavaScript listeners of size-changed > every time a window was only moved was wasting a lot of CPU.

> This cuts the CPU requirement for dragging windows by around 22%.</comment>


Why Going All-In on Your Startup Might Not Be the Best Idea - <AUTHOR> http://blogs.hbr.org/2014/08/why-going-all-in-on-your-start-up-might-not-be-the-best-idea/

<comment><USER2> If you have to sacrifice your ideals for money, because you have to pay your rent from your start-up, it can kill the passion that could make your start-up become what you want it to be.</comment>


Show HN: Unlimited message search and conference call for slack FREE plan - <AUTHOR> https://slack.antbuddy.com <comment><AUTHOR> Search and jump to slack message is enhanced.

</comment><comment><AUTHOR> Voice is good for South East Asia region.</comment>


If you invest into ICOs without a private discount, you make other people rich - <AUTHOR> https://www.reddit.com/r/ethtrader/comments/77de08/psa_if_you_ever_invest_in_an_ico_without_a/ <comment><USER2> Thank you for sharing this, I was looking for a group doing investments like this!</comment>


Show HN: New drag and drop search engine - <AUTHOR> https://www.dropicon.com <comment><USER2> Interesting concept, really clean execution - although I wonder: Where do you see the use-case?

Something domain-specific, like maybe cooking recipes where you combine icons representing the ingredients?

A search where you could mix and match all kinds of game genres?

It would have to be something where the icons are understandable at a glance, and where you can just throw them into the 'pot' without much further thought.

As it is right here, I don't see why I would use this over a traditional text- based search engine, but I could imagine this working rather well in a more confined setting, maybe embedded in another website :)

<comment><AUTHOR> Thanks for the feedback, much appreciated.

</comment></comment><comment><USER3> Looks pretty cool and I generally like the concept, but most combinations come up with 0 results.

<comment><USER3> For example, if I put in Flights and Funny, I'd expect to get funny flight stories. If I type the query into google as "flights" "funny" I'm getting exactly the type of results I'd expect from your search engine as well. Just some constructive criticism. I really like the idea.

<comment><AUTHOR> Thanks, constructive criticism very welcome. Yes you are absolutely right. There isn't enough search data yet but it will improve over the coming weeks as more sites are trawled.

</comment></comment></comment><comment><USER4> Super interesting! Wondering if this can potentially have a practical use case over google?

<comment><AUTHOR> Thank you. Yes hopefully it can and it works really well on desktop or mobile.

</comment></comment><comment><USER5> Well that's refreshing.

<comment><AUTHOR> Thanks for taking the time to take a look.</comment></comment>


Fractal San Francisco - <AUTHOR> http://www.aresluna.org/stories/fractal-san-francisco/

<comment><USER2> A great guide to unexpected San Francisco. Thanks.</comment>


Geometrical Optics - <AUTHOR> https://en.wikipedia.org/wiki/Geometrical_optics <comment><AUTHOR> >"Underlying mathematics

As a mathematical study,

 _geometrical optics_

emerges as a short-wavelength limit for solutions to hyperbolic

 _partial differential equations_."

PDS: Here's a weird question:

Can we get computation via light wavefronts and specifically shaped lenses?

Now, I know about optical computers and how they can implement AND/OR/NOT/etc. gates via light.

For the purpose of this question, I'm not talking about anything like traditional logic gates or anything that's boolean in nature...

I've seen mechanical analog computers from a long time ago that used specific- to-computation 3D shaped objects to either perform calculating derivatives or differentials (forget which), so I'm wondering if the same effect is possible using lenses specifically curved for specific calculations, and what those wavefronts or wave patterns and lenses would look like, if they existed...

In other words, what is computable given any light wave pattern (analog), and the ability to create any lens design pattern, no matter how strange-looking or complex?

?</comment>


Volkswagen detects when your tests are being run, and makes them pass - <AUTHOR> https://github.com/auchenberg/volkswagen/blob/master/README.md <comment> tefo-mohapi Yup, we actually discussed this last week in our podcast [http://www.africantechroundup.com/volkswagen-up-in-smoke- as-...](http://www.africantechroundup.com/volkswagen-up-in-smoke-as-the-south- african-government-is-set-to-investigate/)

</comment><comment><USER2> how often does this "witty" project gets posted?

</comment><comment><USER3> slowpoke.jpg</comment>


Paul Manafort Indicted - <AUTHOR> https://www.nytimes.com/2017/10/30/us/politics/paul-manafort-indicted.html <comment><USER2> Not a good person. He essentially worked for Russian interests in Ukraine in ways that got Ukrainians killed, never mind being directly opposed to US interests. He has also worked against the Magnitsky sanctions, which takes some extraordinary moral flexibility. He took blood money. Then he evaded taxes on blood money. Manafort's client, Yaunukovich fled for his life from the people he betrayed. After Mueller is done with him, the Ukrainians probably want a piece of Manafort.

This isn't just acting on behalf of foreign commercial interests in the "we'd like you to buy our steel or grain or whatever" way. This is working for an adversary of the US, to subvert US interests with the highest stakes for the future of Europe.</comment>


Is the lady turning clockwise or anti-clockwise? - <AUTHOR> http://brainup-app.com/facts/what-way-is-the-lady-turning.html

<comment><AUTHOR> \- If you see this lady turning clockwise you are using your right brain.

\- If you see her turning anti-clockwise, you are using your left brain.

<comment><USER2> And what if your reaction is that there's something wrong?

I can't tell what it is, but my eyes say that that's neither a real clockwise nor a real counterclockwise rotation.</comment></comment>


Bitcoin Bucket Shop Kicks Bucket - <AUTHOR> http://www.bloombergview.com/articles/2015-06-19/bitcoin-bucket-shop-kicks-bucket <comment><USER2> The Bitcoin world has replicated most of the known financial scams. This has worked because it preys on a population that doesn't know the known financial scams.

There is a long, long history of financial scams. That's why the handling of other people's money is regulated. FINRA fines about one broker a day, year in and year out. Even with regulation, there are problems, but today in the US you can often get your money back. Bank failures occur, stock brokerages fail, and the SIPC and the FDIC pay off the losses up to $250K per person. Madoff's victims already have about half their money back, after years of litigation and clawbacks. Madoff himself, of course, is in the federal pen at Butner, North Carolina.

The Bitcoin world thinks it doesn't need regulation. About half of Bitcoin brokers, and most of the Bitcoin online wallet companies, have gone bust, most of them taking customer assets with them. Any questions?

<comment><USER3> It's not that these people don't know the known financial scams. These people think they're too smart to fall for them, and think that regulations are "for the weak."

<comment><USER4> Neither of these are true. 'These people' don't want to let any particular party regulate their use of money, for better or worse. By using bitcoin, you implicitly accept the risks of a decentralized currency. Until there exists some good way of decentralized regulation, if its even possible[1], these sort of risks become a simple fact of life, a cost of doing business.

Bitcoin users and proponents dont "think they don't need regulation", they reject it. They don't "think they won't fall for scams", they accept the risk and possibility. They don't think "regulations are for the weak", they think regulations are for people who accept their government knowing everything about their finances and need transactional legal accountability. Your comment, and the parent one, are nothing more than really weak strawmen.

[1] :: I'm kinda sorta working on something that might help solve this problem, hyphaelia ([https://github.com/kurotetsuka/hyphaelia](https://github.com/kurotetsuka/hyphaelia)), which could theoretically be used to create a trustable darknet marketplace. I'm nowhere near that point yet though.

<comment><USER5> Cash seems to be rather more anonymous than Bitcoin. There's no permanent ledger for every cash transaction that's ever taken place.

<comment><USER4> True enough - but carrying and exchanging large amounts of cash is rather unsafe. Not so with Bitcoin :).

</comment></comment></comment></comment></comment><comment><USER6> This article was not only educational, but entertaining. Some of my faves:

> _As I put it at the time, "Haha what? Just because you mumble the word > 'blockchain' doesn't make otherwise illegal things legal."_

> _But the basic illegality of Sand Hill was covered in thick doughy layers of > other, stranger illegality. For instance: The blockchain stuff was fake!_

> _overdetermined illegality_

It's an interesting spin to see their situation described by multiple layers of compound illegal activity.

<comment><USER7> > It's an interesting spin to see their situation described by multiple layers > of compound illegal activity.

Can you describe how this was NOT illegal? They were illegally selling derivative contracts and illegally creating fake trade history.

<comment><USER6> Oh, I wholeheartedly agree. It delights me to see this situation described not only as very illegal, but in layers of illegality, like an ogre.

<comment><USER7> Ah, I was thrown off by the word spin. I assumed it had a negative connotation towards the writing in the Bloomberg article.

</comment></comment></comment></comment><comment><USER8> Here's our video response to the allegations. Many thanks to all of our users for your continued support and trust!

[http://blog.sandhill.exchange/post/121768113883/sand-hill- ex...](http://blog.sandhill.exchange/post/121768113883/sand-hill-exchange- response-to-sec-enforcement)

<comment><USER9> When you say you employed "aggressive marketing techniques", you're really saying "you employed bots to create fake wash trades to create the illusion of liquidity on the market", right? You launched a prediction market and then traded manipulatively on that market.

Also: they stopped being "allegations" recently, right?

<comment><USER8> My friend, I unfortunately cannot comment publicly outside our video due to legal sensitivities.

Of course, I always have an open door policy, provided any discussion is private and off the record.

</comment></comment></comment><comment><USER10> IMO, the main problem is the success of Uber and AirBNB in flaunting the laws has led some entrepreneurs to believe that they can ignore the laws. They just don't realize that ignoring and fighting laws at municipal and state level is much easier to manage than ignoring and fighting the federal laws.

<comment><USER9> I don't think it has anything to do with local vs. federal. The real factors are:

* Civil vs. criminal: Airbnb and Uber are violating regulations with civil penalties attached to them. SHX violated statutes with criminal penalties, though it appears they were charged civilly as a "slap on the wrist". The "1099 vs. FTE" issue Uber is running up against not only doesn't have criminal penalties attached (so long as they don't deliberately try to keep payroll taxes for themselves), but is also extremely common: 1099s are routinely reclassified.

* Ordinance/regulation vs. statute: The laws Airbnb and Uber are running afoul of are regulations set by regulatory bodies. The SEC is a regulatory body but it's also a prime mover in criminal enforcement actions, unlike, say, a taxicab commission.

* Principal vs. facilitator: The regulations Airbnb challenges are challenged by Airbnb's users, who are letting out houses and apartments in violation of local hotel/short-term-renter regulations. The law as it stands does not directly recognize culpability for sites that facilitate unlawful rentals. The law _directly_ contemplates third parties marketing and creating venues for unauthorized securities transactions.

<comment><USER10> Both Uber and Airbnb violated the laws set forth by the cities and states. The advantage for both startups was that the laws only extended to a city or state. So both still had 100s of other cities and dozens of other states, that were slow to react, to target and gain traction and turn this into "Principal vs facilitator" and "consumer-benefit" issues. When you are running afoul with a federal law, you are losing the whole country with very little recourse unless you have a war chest.

BTW, SHX would have been fine if they stayed under the radar for a while until they had a war chest to hire lawyers to argue and work with SEC to come up with a suitable compromise. See the example of Lending Club and Prosper that were shutdown by SEC in 2008/2009\. Both emerged from it because they already had traction and enough of war chest to hire securities lawyers to work with SEC. Now Lending Club is a $5+ billion public company.

</comment></comment></comment><comment><USER11> Here is the archived Sand Hill blog post he talks about: [https://archive.is/L97V5#selection-607.1-607.101](https://archive.is/L97V5#selection-607.1-607.101)

Hilarious in the lack of self-awareness

</comment><comment><USER12> One interesting question the author obliquely brings up is this: _Should_ all the financial regulation exist? My general sense is ... "not for things more complicated than savings accounts, checking accounts, and basic mortgages".

I really don't see the harm in prediction markets, even if they are putting together strange derivatives.

<comment><USER13> > Should all the financial regulation exist?

Almost certainly not. The regulatory burden of operating in the finance industry is overwhelming - innovation is not so much stifled as killed. The big boys thrive because the little guy doesn't stand a chance from the get-go. The whole industry is estimated to be worth ~17% of _global GDP_ and that money, which is almost equivalent to the output of Europe (or every country in the world except the top ~17 richest nations), goes to a list of companies so small you could probably write their names on a single page. It's a joke.

<comment><USER9> It's far from obvious that the industry would be more diverse and less consolidated if regulations were relaxed. The overwhelming majority of that gigantic flow of money is not main-street retail activity; it's financial engineering serving the operational needs of giant corporations, none of whom are interested in e.g. working with a YC startup for their commercial paper needs.

<comment><USER13> I profoundly disagree. You may very well be right about the majority of that money servicing large corporations, but bear in mind that we're talking about a pot of money the size of Jupiter here. Payment processing alone is worth somewhere in the region of 1trillion USD annually. And that's just for _moving_ money i.e. shuffling rows around databases. Bitcoin, while definitely imperfect, offers the hope of innovating this whole industry into oblivion and replacing it with something entirely autonomous.

The insurance industry is worth another ~5trillion USD annually. The name of the game here, of course, is predictive analysis and I'd bet that my Netflix recommendations are more accurate than any assessment any insurance company has ever made of me.

I think you'd have diversification up the wazoo in extremely short order.

Edit: accuracy

<comment><USER9> _Payment processing alone is worth somewhere in the region of 6trillion USD annually_

This seems unlikely. Is this a top-line number? Why aren't existing VISA/MC processors the largest companies in the economy? The number you just gave is orders of magnitude higher than Apple's profits.

A couple minutes Google searching suggests that being a card issuer puts you in a relatively low-margin business with absolutely enormous network effects.

<comment><USER13> It's a number I found some time ago that on further investigation appears to be quite wrong as you say. It seems it's closer to 1tn USD annually, which would rank around number 16 in world GDP tables.

Edit because HN isn't allowing a reply: these numbers are industry revenue, not profit.

        https://www.bcgperspectives.com/content/articles/financial_institutions_pricing_global_payments_2014_capturing_next_level_value/
        http://data.worldbank.org/indicator/NY.GDP.MKTP.CD?order=wbapi_data_value_2013+wbapi_data_value+wbapi_data_value-last&sort=desc

<comment><USER9> That huge number also does not square with the 2014 profits of the largest issuers. Look at Amex and Discover, both of which have relatively pure issuer/payment processing businesses.

<comment><USER13> Now it decides I can reply.

It's revenue, not profit, because I'm coming at this from the perspective of money (potentially) wasted. It's all in the first link.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> The same folks were on HN a while back attempting to justify their poor decisions: [https://news.ycombinator.com/item?id=9642186](https://news.ycombinator.com/item?id=9642186)

</comment><comment><USER15> Matt actually thinks that allowing the short selling of hot web 2.0/app companies could actually make prices go lower, but in actually it tends to be the opposite as short sellers have to scramble to buy back the shares in panic as prices keep going up. Oh, you think snapchat is a bubble at $4 billion..now it's worth $40 billion. Enjoy your 900% loss. Remember the Porsche/Volkswagen short squeeze fiasco?

<comment><USER5> That doesn't mean it's not a bubble though; it just means it hasn't burst yet.

</comment></comment><comment><USER16> Given that they had virtually 0 real users, I'm not convinced the strict fintech laws are a necessity. It seems like the free market on its own is alreardy pretty good at avoiding dodgy companies.

One might think of Mt.Gox as a counterexample. However, I see that debacle more as an unintended consequence of too much regulation: making it too hard to setup legit exchanges reduces consumer choice and forces users onto alternatives like Mt.Gox even though they don't really trust them.

<comment><USER17> >One might think of Mt.Gox as a counterexample. However, I see that debacle more as an unintended consequence of too much regulation

I don't agree. A fairly simple asset control system would have detected that someone was embezzling money from the exchange. That's been standard at companies I've worked at, even though they weren't in the financial sector.

<comment><USER18> No one would have been using Mt Gox if there were better options back then (the coinbases, krakens and bitstamps didnt exist then or were just starting off)

I used bitcoin since 2011, MtGox was fairly much unavoidable at the time, tho I do remember #bitcoin-otc :)

Everyone knew mtgox was dodgy, and in the end the people who did get burned are those who forgot about their bitcoins there and those who were willing to gamble despite months of warning signs of impending doom.

Hell I think i have like 100$ worth of bitcoin there at todays rate but for the life of me can not remember the password I used.</comment></comment></comment>