The Legend of Zelda: Breath of the Wild Review - <AUTHOR> http://www.theverge.com/2017/3/2/14787082/the-legend-of-zelda-breath-of-the-wild-review <comment><USER2> I'm really hoping that Zelda/Switch are successful enough to push game aesthetics in a better direction. This headlong plunge into the uncanny valley is just gonna lead us to the same dead end that art found itself at the end of the 19th century. No one cares about the bad aesthetics of Orientalist painting any more, and this era of hyperreal titilation is gonna meet the same fate in retrospect.

<comment><USER3> As I have grown up with all kinds of animated cartoons on the TV, I always wanted a computer game which sported that level of graphics. It turns out, that from the raw hardware capability, computers long ago exceeded this ability, yet there is a big scarcity of real animated games. Windwaker (HD) is a really nice exception from that. It looks like an animate comic movie. From this point of view, I am actually happy that Nintendo did not try to make the next best rendering machine, and I hope that the games do benefit from that in an aesthetically sense. Of course I would not mind if Zelda ran at 60FPS, but the visuals look just great.

<comment><USER2> I think all kids growing up in this period had fantasies about games matching up with their imaginations of them through some technical revolution.

What modern game dev misses is that it's the space to imagine things within a more abstract visual framework that creates that sense of wonder and possibility. Game aesthetics have to have "space" for their players' imaginations to fill in order to have the same impact as those from earlier eras.

<comment><USER4> I still have fond memories of Jet Set Radio on Dreamcast because it captured that cell rendered feel so beautifully.

<comment><USER5> Lots of cell shaded games. Attack on Titan is pretty awesome for looking like the actual show while playing. Japanese games are huge with this. There's a big push for non photo realistic rendering 3D now in Blender, we're going to see more of this direction in big budget and indie games. The world is still waiting on the release of cuphead, although a little different than NPR 3D.

</comment></comment></comment></comment></comment><comment><USER6> One thing that is really interesting to me is that they are going back to the roots of the original Zelda: with exploration and discovery being a key part of the game. So much so that they made prototypes in the original Zelda style: [http://www.polygon.com/2017/3/1/14780954/the-legend-of- zelda...](http://www.polygon.com/2017/3/1/14780954/the-legend-of-zelda-breath- of-the-wild-2d-prototype-gdc-2017). This to me seems like a great strategy of helping communicate the 'soul' of something to team members by imitating the original before building the spiritual successor.

<comment><USER7> Yep. I remember back in the day you could go into the dungeons out of order, even with a wooden sword (which made the game magnitudes of order more difficult). Looking forward to tomorrow.

<comment><USER8>
       you could go into the dungeons out of order, even with a wooden sword

Or without one if you want. You can play almost the whole game without a sword (You just need it to beat Gannon): [https://www.youtube.com/watch?v=6n2_gJjrKio](https://www.youtube.com/watch?v=6n2_gJjrKio)

</comment></comment></comment><comment><USER9> > Link gets more health and stamina as you progress, and you can acquire > stronger weapons and armor, but he never gets stronger himself. He doesn't > learn to swing a sword or shoot a bow any better. But you do.

If this is true, that's wonderful, and if more games became more like that again, I'd be interested in them again. Even just the fact that the reviewer mentioned this as a good thing made me smile.

<comment><USER10> Isn't this true of all games in the Zelda series?

<comment><USER11> In Zelda II you learn the down-thrust and up-thrust techniques as the game progresses; Link _does_ become better at swordplay over time.

<comment><USER12> That game would have only been improved had down-thrust been available from the beginning.

</comment></comment></comment></comment><comment><USER13> Breath of the Wild is getting fantastic reviews from critics right now. It currently has a 98/100 on Metacritic [1], an aggregator for video game reviews. This makes is the #4 highest rated game of all time on their site [2]

[1] [http://www.metacritic.com/game/switch/the-legend-of-zelda- br...](http://www.metacritic.com/game/switch/the-legend-of-zelda-breath-of- the-wild/critic-reviews)

[2] [http://www.metacritic.com/browse/games/score/metascore/all/a...](http://www.metacritic.com/browse/games/score/metascore/all/all/filtered?sort=desc)

<comment><USER14> I wonder if those reviews are more Ocarina of Time or Twilight Princess. In fear of upsetting die-hard Nintendo fans I won't specify what I mean by that :)

But time will tell.

Either way, I look forward to it, will give me an excuse to dust off my old WiiU.

<comment><USER15> Do people not like Twilight Princess? I really enjoyed the feel of the game, my only complaint was that the pacing felt a tad slow and the combat was spammy

<comment><USER14> I believe a lot of people really like it, but it was more an issue that game reviewers got A LOT of flak if they didn't give the game a 9+/10 (at a time when point reviews were more of a thing than now).

I don't think many people thought it was bad, only that it wasn't THAT good, and that seemed to upset some hardcore Zelda fans at the time, and in various parts of the internet, possibly still.

You can google for "Twilight Princess Jeff Gerstmann review" for example. He gave the game "only" an 8.8.

<comment><USER16> I was thinking about this when I read about the perfect scores from GameSpot and Giant Bomb today. That review basically created Giant Bomb...or at least helped him leave GameSpot later on.

<comment><USER14> Yeah, and at least to a small extent I think it opened up for more against the grain reviews. Grading games on aggregate scores of graphics, sound, story, etc was kind of pointless (pun intended).

On the topic of that new review, it was written by Dan Ryckert. Even if he has integrity, that guy even loves Yoshi Island and thinks Taco Bell is the greatest restaurant in the world, so clearly there's something wrong with him. :) He's basically wrong about everything other than movies.

But that's kind of the point with reviews IMO. Scores (even if looking at metacritic which is better) only works when you know who graded it, since it obviously ultimately is a subjective thing.

</comment></comment></comment></comment></comment></comment><comment><USER17> There's a reviews megathread on Reddit here:

[https://www.reddit.com/r/Games/comments/5x2lph/the_legend_of...](https://www.reddit.com/r/Games/comments/5x2lph/the_legend_of_zelda_breath_of_the_wild_review/)

Many, many perfect scores. Even acounting for hype, it's doing surprisingly well. Having watched about 6 hours of gameplay so far, I'm on the fence about how deserved that is. It seems like such a huge game that it won't be possible to judge it fairly without playing at least 40 hours, probably more. It's clearly an exceptionally good game, but whether it is truly a masterpiece remains to be seen.

<comment><USER18> >It seems like such a huge game that it won't be possible to judge it fairly without playing at least 40 hours

this is a rather absurd statement

<comment><USER19> >this is a rather absurd statement

For something like a buy/skip recommendation, sure. But open-world systems- based games take a lot of time to dig into.

Like if you asked me if Skyrim was an above average game in the first few hours, I'd say 'sure' but as time went on the broken systems kept becoming more and more obvious and painful. My opinion turned to 'just average' after 30 hours or so.

</comment></comment></comment><comment><USER20> It's unfortunate that Zelda was released against Horizon: Zero Dawn (which is _beyond amazing_ on a PS4 Pro), as there is now a lot of competition over the past couple months for good games out now (and such limited time to play!); something which hasn't happened to this degree this generation of consoles.

<comment><USER21> My understanding is neither the switch nor Zelda are available to the public yet. Am I confused about your comment maybe?

<comment><USER20> Horizon was released on Tuesday and, like Zelda, is a 30+ hour game.

<comment><USER21> I don't understand then, from my perspective the release dates are far enough apart to not be a Titanfall situation.

<comment><USER20> The Titanfall situation was a different case, as that was a competition between multiplayer player basesizes being split, and as a result the game hit a death spiral prematurely. Both Horizon and Zelda are single-player games.

</comment></comment></comment></comment></comment><comment><USER22> I can see myself buying a Switch just for this, once the bugs (such as left controller disconnect issue) with the console are fixed.

<comment><USER23> The rumor circulating is that the new patch that was released to the console fixes that disconnect issue.

<comment><USER22> thank you, I hadn't read that anywhere.

<comment><USER24> It apparently hasn't fixed anything:

[http://www.eurogamer.net/articles/digitalfoundry-2017-switch...](http://www.eurogamer.net/articles/digitalfoundry-2017-switch- joy-cons-tested-are-there-really-de-sync-issues)

<comment><USER25> Actually it has. The Joy-Con have to connected when rebooting to resolve the issue.

<comment><USER26> Actually it has not.

> UPDATE 2/3/17 4:00pm: The Nintendo Switch's day one system update has > launched, and there are reports online that installing the patch with the > Joy-Cons attached updates the firmware on the controllers, resolving the de- > sync issues. Is this really the case? __Unfortunately not. __We 've updated > our console with controllers attached and re-run the battery of tests > detailed below. In all cases, the range and consistency of the connection of > each Joy-Con remains the same, and the left controller still has > demonstrably weaker range than the right. Eurogamer has contacted Nintendo > several times now concerning this issue, and we still await a reply.

</comment></comment></comment></comment></comment></comment><comment><USER27> > This lack of direction can be disorienting at first... But it very quickly > turned into a liberating sensation.

Tevis Thompson needs more credit for identifying with astute precision the ills inherent in the direction Zeldas were going

would we have breath of the wild without this essay: [http://tevisthompson.com/saving-zelda/](http://tevisthompson.com/saving- zelda/) ; I honestly wonder

<comment><USER28> It's amazing how his suggestions are pretty much exactly what they changed with Breath of the Wild!

</comment></comment><comment><USER29> Anecdotally I picked up my switch / Zelda combo around 7.5 hours ago at the midnight launch for my region, I only got an hour of play in before sleep butso far it is both reminiscent of early Zelda games with an elder scrolls feeling open world (very limited gameplay time) - big fan of combat so far also! Can take on some pretty strong enemies with a series of branches and dodges =)

</comment><comment><USER30> I don't think one game is enough to save the Switch, but maybe this will get enough systems out there to get the ball rolling. I'm sure some people will pick up the Wii U version if they already have one, but I can't imagine buying a console that has been basically declared dead for one game now.

EDIT: I'm saying the Wii U is dead, not the switch. IIRC production has stopped, and there are few games still coming to it.

EDIT: I should be more clear. "Save the switch" isn't the right way to say it since, as other are pointing at, it hasn't launched yet. It's difficult to make a successful console, it's sort of a chicken and egg problem, you need to have successful games to attract more successful games. The Wii U had some hits, but they were too few and too late. Coming out of the gate with this is great for Nintendo.

<comment><USER31> "Declared dead"? Maybe we've just seen different bubbles, but I've seen nothing but excitement for the switch. They have something like 100 titles from 75 different dev studios lined up for the first year. Obviously the Wii U died on the vine, but that was due to some terrible limitations and lack of 3rd party support, or so I am lead to believe. What makes you think the switch needs saving? It isn't even out yet...

<comment><USER32> It sounds like they're referring to the Wii U; they're suggesting (correctly, arguably) that the Wii U is essentially dead now, and that no one will buy the Wii U just for Zelda. If anything, people will instead buy the Switch, hence their point about Zelda "saving the Switch" (although from what, I'm not sure, since it does have over a hundred games confirmed).

<comment><USER33> >> no one will buy the Wii U just for Zelda.

If people are willing to buy a Switch just for Zelda, I'm sure people who don't have enough money for a Switch would be willing to buy a used or refurb Wii U on the cheap to be able to play Zelda.

<comment><USER34> New console release is a great opportunity to pick up the old one plus a ton of games on the über-cheap. I've been waiting for the Switch release for that reason, and now I get to play Zelda now instead of when the Switch 2 comes out. ;)

</comment></comment></comment></comment></comment><comment><USER35> If only it was available for more platforms. #want

<comment><USER14> You can probably get a used Wii U for cheap. It doesn't have a lot of interesting games, but for a low price, it's likely worth it for the Mario games and Zelda, and a few more.

<comment><USER36> can be hard to find though...I mean Nintendo effectively discontinued it so it isn't on any retailer shelves now.

<comment><USER24> Don't know where you live, but here in UK both Game and CEX(sort of like Gamestop in US) are full of second hand WiiUs, I guess a lot of people traded them in before the switch launch.

</comment></comment></comment></comment><comment><USER37> This seems more organic and will better the gaming industry as a whole. I'm very excited.

</comment><comment><USER38> I'm surprised to see a video game review on Hackernews...

</comment><comment><USER39> What is with this website? You can't select text?

<comment><USER40> They are using CSS to make the background colour of your selection invisible. You can still select the text; it just looks like you can't.

        ::selection {
            background: auto
        }
        ::-moz-selection {
            background: auto
        }

See [https://css-tricks.com/almanac/selectors/s/selection/](https://css- tricks.com/almanac/selectors/s/selection/)

<comment><USER39> Oh weird. You're right.

</comment></comment></comment><comment><USER41> Why are we constantly pushing for larger and larger open worlds? When I was a kid, the idea of such a gigantic open world where I could spend endless hours exploring would have been amazing. However, now, as an adult with responsibilities, when I usually play video games its for 30 or 45 minutes once or twice a week when I have just a bit of down time. Gigantic open worlds have become a hinderance to me rather than a feature, because it means I will never fully be able to explore all of it.

I know that my experience doesn't reflect every gamer's experience, and many people do have the time and energy for them, but I also know quite a few people in this "prime", aging game demographic that are turned off by these large games and tend to focus on smaller, more compact experiences. I wouldn't be so upset if it weren't for the fact that the games that seem to get the most attention and development effort are these giant ones, with small experience games generally an afterthought or published as indie.

<comment><USER42> Honestly, I feel like you do a lot of the time about a lot of things: not just games. But I'm trying more to enjoy the act/process of doing something rather than the end goal that I may or may not ever achieve. This is taking that philosophy to the extreme, but when I reach old age I want to be able to say something like "I _really_ saw a lot of the world (real or digital) -- not just superficially -- and I learned and experienced a lot so my time was well- spent", rather than "I didn't see _everything_ so I spent all of that time in vain exploring something I never completed".

I guess what I'm trying to say is that I think it's healthier to just enjoy as you go, rather than having to reach some state of completeness before you allow yourself joy. I don't inherently think like that and I think my mood has suffered a lot for it over the years. But I'm definitely trying to move in that direction.</comment></comment>


Absurdity Of Copyright Policy Leaves Dutch Supreme Court Confused - <AUTHOR> http://www.techdirt.com/articles/20120924/03124520499/absuridty-copyright-policy-leaves-dutch-supreme-court-confused.shtml

<comment><USER2> typo: absurdity (present in the original article)

Trend Micro AV is flagging this article because of storage.aunticles.com</comment>


45 Privacy Changes Facebook Will Make To Comply With Data Protection Law - <AUTHOR> http://techcrunch.com/2011/12/21/privacy-changes-audit/ <comment><USER2> Most of this is common sense data privacy. The problem for Facebook is that users aren't the customers, they're the product, so all these actions essentially increase their supplier cost with no appreciable gain for FB.

</comment><comment><USER3> What about making them delete user profile data after they unregister and not just hide it?

<comment><USER4> One of the listed changes is "Work with the DPC to identify an acceptable retention period of data from inactive or deactivated accounts". Another is "Continue devoting engineering resources towards improving the system that irrevocably deletes user accounts and data within 40 days of receipt of a deletion request".

Both of these have due dates of July 2012.</comment></comment>


'The Dumbest Generation' - <AUTHOR> http://www.latimes.com/features/books/la-et-book5-2008jul05,0,3980465.story <comment><USER2> I'm getting tired of these "The Internet Makes Us Dumb" and "People can't read on the internet"... These articles are usually so poorly read that I give up trying to make sense of them. I have no problem reading large, thick books, and will often work through a well written 400 page novel in maybe a day or so. I'll also sit and read through an interesting article on line, when it deals with relevant issues.

Maybe people stop reading your articles half way through because they're dull, meaningless luddite whines, and not because they've gotten stupider?

Can we stop posting these "damn kids get off my lawn" sort of posts? there are enough real problems with society these days that we don't need to make up crap about how reading online makes us dumb.

<comment><AUTHOR> I think the author is talking about the average person, not about you. The Internet makes it very, very easy to tune into something trashy.

I'm not sure it's productive to claim that a culture of ignorance is less important than other problems. If you don't fix that, everything else gets worse. If people start to believe that it's important to do an actual job well, not to vote in a giant election or a TV show or a social news site, many problems will disappear.

<comment><USER2> As I said, there are enough real problems with society that we don't need to make up hogwash about how the internet is us stupider.

Real problems, like a broken education system where the intelligent children with a desire to learn are bored to tears, and just stop trying in school, all in the name of bringing up people who can't -- or don't want to -- learn well enough to keep up.

Real problems like a culture of unquestioning consumption of both material and nonmaterial items.

Real problems like people's apathy towards their environment -- the communities that they are part of, the health of the planet they're living on, et al.

I could go on.

If anything, tuning into interactive trash is a step or two above what generations have been doing since the 1960s -- tuning into TV, and turning off their minds.

I see the current inanity of many parts of the internet as a product of this culture of ignorance that you're speaking of, and not the cause.

</comment></comment></comment><comment><USER3> This article makes the fatal assumption that people's reading and internet usage habits don't mature along with the rest of their personalities. Sure teens might spend all day gossiping on MySpace, and college students trolling Facebook for hookups, but that's not that much different than what both groups have done offline since time immemorial. And just like previous generations they'll grow up, get jobs, have families, and change their habits.

</comment><comment><USER4> Before we write the book on the "dumbest" generation, we need to write the one about the "worst generation". That would be the boomers. Nobody has collectively fubared things up as much as they have.

<comment><USER5> Yes, that's exactly the kind of trite understanding of history that the author is worried about. Well done.

... and no, I'm not a boomer.

<comment><USER4> How often something is repeated bears little to no relation to how true it may or may not be.

Several of the reasons I feel it is correct to nominate boomers for that degrading title are perfectly valid. But feel free to continue ad-hominem if you wish.

<comment><USER6> Please provide some of those reasons then. I'm curious. There's a lot of them and they're wealthier than most of us will ever be, but the worst generation?

</comment></comment></comment></comment><comment><USER7> I reviewed the book and had a different take on it: [http://blogs.jobdig.com/wwds/2008/06/24/the-dumbest- generati...](http://blogs.jobdig.com/wwds/2008/06/24/the-dumbest-generation/)</comment>


Ask HN: Who's using Blockchain in production? - <AUTHOR> I was just wondering who is using blockchain in their production as a part of their product/service ? <comment><USER2> Willing to bet not many people.

Society at this time seems thoroughly content to trust big names/people instead of code, which can be vulnerable and manipulated maliciously.</comment>


Ask HN: Moving to Austin, anybody up for some coffee this weekend? - <AUTHOR> I am 35, planning to move to Austin, I run a small (below 20 people) saas. I am visiting Austin this weekend, I would love to connect with other entrepreneurs and start building my network. I could not find any interested meetups in the city, I am hoping I can find here somebody from tech industry who would like to meet for some coffee this weekend? <comment><AUTHOR> I forgotten HN does not really have PM functionality :/. What time works for you? maybe Saturday or Sunday morning coffee in Mozart's Coffee Roasters ? I posted it also or reddit, you can PM me there, [https://www.reddit.com/r/Austin/comments/bujix8/moving_to_au...](https://www.reddit.com/r/Austin/comments/bujix8/moving_to_austin_anybody_from_tech_industry_up/). Maybe it will turn into some small meetup :D.

btw, I use throwaway account, but I am on HN for years.

</comment><comment><USER2> Happy to join you for coffee!

I am a HN luddite and have no idea how to PM you through this platform, but feel free to PM me if you know how :)

</comment><comment><USER3> I'm down to meet up on another weekend after you move here! Contact info in bio

</comment><comment><USER4> I'm no longer in the industry but I'm still into tech. I'll join and reminisce.

</comment><comment><USER5> I moved here last year -- down to meet up! Email in bio.

</comment><comment><USER6> less do it pm me - i'm SWE at a company in town.</comment>


In video, Uber CEO speaks openly about impact of competitors on pricing - <AUTHOR> https://techcrunch.com/2017/02/28/in-video-uber-ceo-speaks-openly-about-impact-of-competitors-on-pricing/ <comment><AUTHOR> strict competition on price only benefits the end consumer, but not the ecosystem! In the end it's just a matter of ethics & values which concerns our society as a whole!</comment>


Astonishing Twitter Thread with Tim Gowers - <AUTHOR> https://www.solipsys.co.uk/Chitter/LongTimGowersThread.svg <comment><AUTHOR> It started with someone claiming they had proved that Euler's constant, gamma, is irrational.

Here's a graphic outlining the thread: [http://www.solipsys.co.uk/Chitter/LongTimGowersThread.png](http://www.solipsys.co.uk/Chitter/LongTimGowersThread.png)

The link submitted contains the content, and the nodes are clickable to go to the actual tweet.</comment>


Ask HN: How to learn Rust without learning to program? - <AUTHOR> Ok, so...
Almost all the books written with the intention to teach you some X programming language, actually do the same journey over and over. What variables are, if-else, classes, etc.
I wan to learn Rust, but without reading all the same material. I mean, I already know what an if construct does, etc. I'm not saying I'm expert programmer, but a lazy person. Lol
What would be your advice for me?
Thank you. <comment><AUTHOR> Wow, this community is fast. Thank you for your responses and those valuable resources. Having that Rust summaries and cheat-sheets. How can I learn about the way of putting an entire application together, the rustacean way? That is not too large to digest, like Servo. Thank you again

</comment><comment> T-A "The Rust Programming Language" [1] seems to be written for somebody who already knows programming concepts.

[1] [https://doc.rust-lang.org/book/](https://doc.rust-lang.org/book/)

</comment><comment><USER2> I'm confused--are you just looking for a summary of syntax similar to this?[1]

[1] [http://learnxinyminutes.com/docs/rust/](http://learnxinyminutes.com/docs/rust/)

</comment><comment><USER3> So a syntax cheat sheet? Like this [0] but for Rust?

[0] [http://www.cheat-sheets.org/saved-copy/RubyCheat1.png](http://www.cheat- sheets.org/saved-copy/RubyCheat1.png)

</comment><comment><USER4> Usually for most languages there are more advanced texts that skip the basics. I know I've seen them, though I don't have concrete examples at the moment.</comment>


Open Source Could Be a Casualty of the Trade War - <AUTHOR> https://www.bunniestudios.com/blog/?p=5590 <comment><USER2> If this comes to pass, it will just serve to push cross-border collaboration underground into alternative, less public channels.

The worst impact of this could be on current open source hardware efforts, but on the other hand RISC-V may gain even more traction as Bunnie has pointed out here. We may end up with a real cyberpunk future where systems cobbled together out of grey and black market imports are the only way to get truly free/open hardware.</comment>


Ask HN: How to use your hacker skills for good? - <AUTHOR> TLDR: Where to find organizations/companies that recruit hackers (as volunteers or payed employees), to develop products (hardware/software) to help others around the world or the local community where it is based?
I became a nomad last Christmas, in order to be able to explore more. Such that there is a better balance between my time where I discover new, while working and studying. This turned out to be great, and after 6 months I'm very happy how it all turned out and has evolved so far.
So enough about that. My educational background is a cross between electrical engineering, artistic education, game development and general computer science. Most of it is learned on my own, and I continue to learn alone or within an (online) community.
I always wanted to help other people, but never really have done so, beyond some local stuff. In the last months I did start doing volunteering, but I never could use my hacker skills (Hardware + (mostly) Software) while doing so.
This website/community often gives me great ideas because of articles shared or questions asked by other people. Therefore I would like to ask a question of my own:
Are there any specific websites/communities where I can find more information about organizations and companies that recruit "hackers" to help them, help others. Could be both on a volunteering, freelance or permanent basis. I'm also location independent, so it could be pretty much anywhere on this planet. <comment><USER2> Three sites dedicated to this are VolunteerMatch, Idealist, and Catchafire.

For freelancing, there's Upwork (formerly elance/Odesk), which expects you to be remote. Good luck!

</comment><comment><USER3> Do you mean hacker or cracker? :-)

<comment><USER4> for the second option there are limitless use cases :)</comment></comment>


Anarchist hacker Amir Taaki says Bitcoin's boom means it's on verge of collapse - <AUTHOR> https://qz.com/1192640/anarchist-cryptocurrency-hacker-amir-taaki-says-bitcoin-is-in-a-speculative-bubble/ <comment><USER2> I might be off on this one, so please bear with me if that is the case; as I understand it Taaki says that for a crypto-currency to be functional it has to be anchored in the local language and infrastructure - currencies such as bitcoin are not stable or accessible enough to suffice outside speculative trading and stockmarket-like settings for more than short periods of time. If that's the case, that these currencies are good only for local trading, what good are they and how are we to approach it if we wish to build a stable trading system, that in the end, is truly free from third parties like banks or transaction managers? Or is that even a reasonable or worthwhile goal? Cheers //saul_pako</comment>


Cap'n Proto beta release 0.1 is ready for Real Work - <AUTHOR> http://kentonv.github.io/capnproto/news/2013-06-27-capn-proto-beta-release.html

<comment><USER2> Link to the previous discussion on HN in April:

[https://news.ycombinator.com/item?id=5482081](https://news.ycombinator.com/item?id=5482081)

Great to see this project is moving forward, can you comment on whether (and which of) the criticisms and suggestions from the original HN discussion have been integrated or have influenced development for this release?

<comment><AUTHOR> Oh boy, there were so many suggestions, I'd have to read through them all to remember which ones I ended up incorporating. There's so much text, though...

Off the top of my head, I remember that multiple people suggested that text should be allowed to contain NUL characters (not just at the end), which I agreed to. That's not terribly significant, though.

People involved on the mailing list have helped me with several design decisions. One contributor convinced me that my original syntax for unions was pretty stupid and helped me come up with something much better.

At another point, I implemented "inline" structs and lists (which are embedded into their parent without a pointer). This turned out to be overcomplicated for not all that much benefit and I was encouraged to ditch it. A week of work lost, but it was the right decision.

Contributors hacking on implementations in other languages made clear that they weren't interested in writing their code generators in Haskell, so the compiler now has a plugin system allowing code generators in any language.

This is a very incomplete list, obviously... I'd love to have more people telling me what I'm doing wrong. :)

<comment><USER3> Using colons to denote types is still ugly and feels unnecessary.

Your last annotation example confuses the @field and $annotation syntax-- string $0 :Text $qux;

<comment><AUTHOR> > Using colons to denote types is still ugly and feels > unnecessary.

Yeah, I hear you. My personal experience is that when I look at Go code, I find it hard to parse variable definitions since the type has no separator. But I'm sure if I wrote more Go, it would get easier. I worry that there is a bit more need for Cap'n Proto schemas to be easily readable to newcomers compared to Go code. On the other hand, in Cap'n Proto there is usually an ordinal number separating the name and type anyway (though not always).

So far not many people have complained, but I could definitely be convinced to drop the colon if that's what people want.

> Your last annotation example confuses the @field and > $annotation syntax-- > string $0 :Text $qux;

Eek, fix pushed. Thanks!

</comment></comment></comment></comment><comment><USER4> With respect to how imports and the dynamic API: When/If you do get around to implementing the parser in C++, Could you consider making the import statement relative to the path of the file that is currently being dynamically imported? In the Protocol Buffer runtime, it's relative to the path of the top level file being imported which makes sub-files have to know about the path they're located at in order to import anything else.

<comment><AUTHOR> Actually, that's already how it works. :) Imports are relative to the importing file unless they start with a '/', in which case the import path is searched.

The protobuf approach was somewhat necessitated by the fact that various parts of the protobuf implementation expected file names to be canonical, e.g. so that it could tell if two descriptors were for the same file by comparing the names. This mean it was necessary for the compiler to know where the top of the source tree was and dealing with relative paths would have been pretty ugly. This worked fine for Google-internal usage, but was problematic for a lot of open source users.

Cap'n Proto does not use file names as canonical identifiers. Instead, it requires every file to assign itself a unique ID (a random 64-bit number). This introduces some other problems, but on the whole I think it comes out a lot nicer.

<comment><USER4> Woo! Awesome!

</comment></comment></comment><comment><USER5> Can anybody explain how/why this type of data transfer is secure? By the sound of it, the main benefit is that we can just read a large file by using mmap on it. Are there not a lot of security considerations to doing that...? Especially when feeding this through into dynamic languages like Python.

<comment><AUTHOR> Cap'n Proto doesn't allow you to transmit arbitrary native structs. It still has a defined message format, with pointers that can be (and are) validated by the receiver. It's just that the format is one that happens to be very convenient for typical CPUs to access, in particular without the need for any copying or decoding.

In practice, the current implementation hasn't undergone security review yet, so I wouldn't recommend using it on data you don't trust. But it's intended to be secure, and will be by version 1.0.

</comment></comment><comment><USER6> Now I'm just eagerly waiting a Haskell and Perl library. Suppose that means I should get off my lazy ass and start contributing!

<comment><USER7> Have a look at alphaheavy's protobuf implementation as a starting point.

<comment><USER8> Or just send some pull requests!

I think the core of our protobuf library should support many different encoding formats. There is often no need to define and redfine types to support multiple wire formats: Protobuf, Thrift, Cap'n Proto, etc. One definition is enough for most.

[https://github.com/alphaHeavy/protobuf](https://github.com/alphaHeavy/protobuf)

</comment></comment></comment><comment><USER9> Allowing to write additional code generators as plugins in a language agnostic way is really nice.

</comment><comment><USER10> Nice!</comment>


A Pythonista's Review of Haskell - <AUTHOR> https://bytes.yingw787.com/posts/2020/01/30/a_review_of_haskell/ <comment><USER2> Making it to the end of an almost 2000 page Haskell book in only 3 months is quite the feat.

While quite confusing to many, myself included, I would've loved to hear more about the types vs terms distinction, and overall about what's possible with type level programming. That's something fairly unique among programming languages after all.

I'd certainly be interested in reading more of the author's thoughts if he continues down the path of using Haskell to solve problems.

<comment><USER3> I would highly suggest [https://thinkingwithtypes.com/](https://thinkingwithtypes.com/) \- it's not a 2000 page monster, and specifically addresses what you are interested in.

<comment><USER2> I've been reading that book occasionally for months but honestly, many parts are somewhat too advanced for me for now. I've sort of backed off from type level programming for now to maintain productivity with building actual things. Still, I'd like to read about it from someone coming from imperative languages.

</comment></comment></comment><comment><USER4> > IMHO, the solution to high cognitive load, given a high enough reward, is > just persistent, methodical execution towards learning.

It will never converge towards being easy to handle. The load doesn't come from being inexperienced, it comes from keeping the big picture in your head (all your types and their interactions) instead of iterative thinking.

<comment><USER5> this isn't true - at least not in my years of professional experience

I barely keep anything in my head most of the time when programming in haskell. It's kind of related to the "emphasis on structure" point from the article. All of a type's "interactions" are just functions. There aren't any second-order things to consider due to referential transparency.

<comment><USER2> I agree, type signatures & inference and referential transparency offload the cognitive load from your head to the compiler/IDE.

Functions that actually work on the data structures are generally guaranteed to be able to work on the said data. This way you don't need to constantly be mindful of what the data looks like, the compiler does that for you.

<comment><USER6> This exactly. Although the effect is much greater if you turn on some complier warnings (like -fwarn-incomplete-patterns). The emphasis on coming up with types that contain the guarantees you need makes it so once it compiles, you don't have to remember what guarantees you need to have. Although doing that is not nearly as convenient in Haskell as it could be (types often don't compose well, and you need to add strictness annotations here and there to prevent `undefined`), it is actually possible which is a big step up from languages where you can't even try like C or Python.

</comment></comment></comment></comment><comment><USER7> In Python

type(type) is type

evaluates to True. And that is not permitted in mathematical type theory that the Curry-Howard correspondence applies to.

<comment><USER8> Although it itself is deprecated, the TypeInType extension does exist.

[https://www.seas.upenn.edu/~sweirich/papers/fckinds.pdf](https://www.seas.upenn.edu/~sweirich/papers/fckinds.pdf)

[https://www.reddit.com/r/haskell/comments/4180k3/what_is_typ...](https://www.reddit.com/r/haskell/comments/4180k3/what_is_typeintype/)

[https://www.reddit.com/r/haskell/comments/4180k3/what_is_typ...](https://www.reddit.com/r/haskell/comments/4180k3/what_is_typeintype/cz0onpy/)

<comment> matt-noonan And the only reason the language pragma is deprecated is because TypeInType is now just how things are, by default, with no opt-out.

</comment></comment></comment><comment><USER9> >Haskell has no null definition of type Char, at least according to this Stack Overflow answer. Python doesn't distinguish between Char and String types with single and double quotes, so empty char is empty string is an empty list. It seems weird to me that for all the typing wealth Haskell provides, this base case doesn't exist, though I personally don't know what it is.

An empty string is equivalent to an empty list []

If you want a null use the maybe monad.

<comment><USER10> As anyone who has used C will recall, a char is just a small integer. And just the same in Haskell, a char is exactly one character. Once you understand that, this confusion makes about as much sense as expecting an integer to be "empty".

I suspect this kind of question would be better asked on the Haskell IRC channel or similar rather than trawling stack overflow for insights. If someone has the relevant missing insight they can quickly point it out and save a lot of confusion.

<comment><USER9> it does make sense. 1/0 = undefined aka null. The thing with haskell is that the concept of null is typed as part of a sum type meaning it will be handled with no runtime errors.

<comment><USER8>
        *** Exception: Prelude.head: empty list

<comment><USER11> Yeah, I don't know why Prelude.head doesn't return a Maybe. Anyway, the point stands.

• In Java forgetting to check for null will crash your program.

• In C, forgetting to check for NULL will lead to undefined behavior.

• In Haskell, you either have to (a) check for Nothing, or (b) explicitly say "crash the program if this is Nothing" by using a function like fromJust or head, which internally does (a). This is always an improvement over C, and often an improvement over Java.

Side note: I like Rust's convention of consistently naming these might-crash- your-program methods "unwrap" and "expect".

<comment><USER8> Yeah I think rust has better defaults here.

<comment><USER9> I get the choice. It's unintuitive for basic types to be wrapped in a maybe mondad. People expect addition, subtraction and division to return numbers. To have division be the only operation to return an optional is a bit off.

I get the choice of why it wasn't done with haskell even though I disagree with it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> FYI OP: I posted your review on r/haskell where it got several comments: [https://www.reddit.com/r/haskell/comments/ewjnf4/a_pythonist...](https://www.reddit.com/r/haskell/comments/ewjnf4/a_pythonistas_review_of_haskell/)

<comment><AUTHOR> Thank you very much for sharing it there! The more the merrier :)

</comment></comment><comment><USER13> Quote: "I don't think you can do anything like this with Python or any other practitioner's language that I'm familiar with"

So, then you're not familiar with C/C++, Java, C#, Pascal/Delphi, Ada - to say the least.

<comment><USER11> Yes, of course you can encode it in any language you want, but the point is that ML-ish languages make it extremely natural to think like this, and Java makes it impossibly painful. Haskell makes traditional imperative algorithms painful, though, which is arguably a greater loss.

<comment><USER14> > ML-ish languages make it extremely natural to think like this

You say that, but actually fmap doesn't exist in OCaml (or I assume any other common MLs). Of course you can embed a language and type system within it that does have it ([https://blog.janestreet.com/generic-mapping-and-folding- in-o...](https://blog.janestreet.com/generic-mapping-and-folding-in-ocaml/)) but that's different.

<comment><USER11> Using List.map and Option.map is more verbose and less general, but it's still most of the way there.

OCaml still has currying, algebraic data types, "implicit" returns, tail call optimization, etc., and it encourages recursion instead of loops wherever applicable.

</comment></comment></comment></comment><comment><USER15> They mention indentation, but you don't have to use their indentation and can use braces and semicolons instead if you prefer, which is what I prefer, too. So, I think the indentation isn't so much of the problem.

</comment><comment><USER16> "A functor instance lifts a function over some structure to affect only the values within. An applicative (a monoidal functor) leverages a structure and function together while lifting the function over structure. A monad (an applicative functor) creates new structure whilst in the process of lifting a function over existing structure."

I think [https://xkcd.com/483/](https://xkcd.com/483/) should apply to programming languages too. ;-)

But seriously, can someone put this in English? Is it really more complicated than "apply a function to every object in a list"?

<comment><USER17> But "apply a function to every object in a list" _isn 't_ the definition that the author is getting at!

Most programmers probably know "map" as being an operation takes a function and a list and returns a list of the results of the function applied to each element of the input list. However, the "map" operation can be generalized to generic types other than lists, where it has different behavior but shares certain properties. In functional programming, the idea of a functor gives a name to this pattern.

The idea is that if you have some generic type `T a` covariant in `a`, there is a function `map : (a -> b) -> T a -> T b` that can "lift" every function `f : a -> b` into a function `map f : T a -> T b`. The lifting operation respects function composition and identity.

However, what if the function has multiple arguments, e.g. `f : a -> (b -> c)`? Then, `map f : T a -> T (b -> c)` An applicative functor lets you convert that `T (b -> c)` into a `T b -> T c`. So, with applicative functors, you can individually map each parameter of a multi-parameter function.

A monad is a functor that can be "flattened." It has an operation `join : T (T a) -> T a`, as well as an operation `return : a -> T a`. A monad can be seen as generalizing the idea of flattening a list, or generalizing async/await.

<comment><USER18> I really like your description. One thing i don't understand though, is why generalising these operations is considered a good thing?

In my day to day I spend a bit of time writing functional code, and a lot of time reviewing it, and when you generalise in this manner it hides a lot of the details of the algorithmic complexity. Is this operation happening in a future? or is on a list? You could argue that the type signature will let you know, but quite often it's inferred.

Suddenly I find myself needing an IDE just to do code reviews. People make arguments about naming variables and suddenly we're back to using hungarian notation.

I also find it's easy to make mistakes - you do a flatmap instead of a map and the Nones just vanish. Or you're composing so many generic functions that the intent of the code just disappears.

I guess i just wanted to see if it's just me.

<comment><USER19> > is why generalising these operations is considered a good thing?

> Is this operation happening in a future? or is on a list? You could argue > that the type signature will let you know, but quite often it's inferred.

1) You are generalizing the input of a function to multiple types. Many of the functions you'd write wouldn't care whether you're using a List or a Future, they would accept either. It's just like declaring your Java method to take a Collection instead of an ArrayList.

2) You are getting more specific in the output of the function. If you write `filter`, it would be nice to get a `LinkedList` back if you pass in a `LinkedList`. With more common type systems, the best you'll be able to do writing the function once is a return type of `Collection` or `Iterable`.

Your method may perform horribly if a LinkedList is passed in instead of an ArrayList. If your operation really depends on a specific behavior the Functor doesn't specify, you should be using a different type than Functor.

<comment><USER14> > Many of the functions you'd write wouldn't care whether you're using a List > or a Future, they would accept either.

I can't imagine a situation where that would be true, except if you're writing a monad library. You could say that you might want to interchange a list of futures for a future of lists, but that's two interdependent things being swapped not one.

<comment><USER20> You've made at least two comments now mentioning this idea of interchange, but there's more to all of this than just that. The Haskell standard libraries are full of generic functions that can be applied to many practically useful types as long as those types provide certain basic guarantees.

For example, there is a useful little function

        replicate :: Int -> a -> Seq a

that allows us to build a sequence of _n_ of some value. But what if we don't have a raw value, but instead some Applicative wrapper around it, and instead of just getting a sequence of individually wrapped values, we want that Applicative structure around the sequence? That is, we want some function f that will give us

        f 3 (Just 1) == Just (fromList [1, 1, 1])

but

        f 3 Nothing == Nothing

with a Maybe, and

        f 3 (Right 'x') == Right (fromList "xxx")

but

        f 3 (Left "error message") == Left "error message"

with an Either, and similarly for any other Applicative.

Well, such a function also exists in Data.Sequence:

        replicateA :: Applicative f => Int -> f a -> f (Seq a)

Because it works with any Applicative, it can just as well work out all of the possible outcomes when we roll three dice:

        replicateA 3 [1, 2, 3, 4, 5, 6]

or repeat the action of any Monad three times:

        replicateA 3 $ putStrLn "Hello, world!"

or repeat whatever behaviour some Applicative you haven't even written yet will have next week.

The rabbit hole gets as deep as you like. For example, we can easily compose a variety of other standard functions to count how many ways there are to reach each possible total in that dice example:

        map (head &&& length) $ group $ sort $ fmap sum $ replicateA 3 [1, 2, 3, 4, 5, 6]
        -- [(3,1),(4,3),(5,6),(6,10), ...]

Many of these functions have quite general types, for example sum working on any Foldable and fmap working on any Functor. Because a list is an Applicative and any Applicative is also a Functor, and since the individual results of the replicateA will be Seqs and any Seq is also a Foldable, everything works fine, and the list structure we started with is preserved all the way through.

</comment></comment></comment></comment></comment></comment><comment><USER21> Any js-er review?

<comment><AUTHOR> If you mean Javascript to Erlang, probably not for the foreseeable future. I want to learn to ship product for a bit, and hopefully I can talk about that :)

<comment><USER2> What kind of products are you building?

<comment><AUTHOR> It's under wraps right now (mostly because I can't look people who believed in me in the eye if I fail) but it's a tiny CRM for software engineers. Feel free to subscribe to my mailing list on the blog for more information, or email me at firstname.lastname@example.com :)

</comment></comment></comment></comment><comment><USER22> This page made me permanently write off Haskell:

[https://wiki.haskell.org/Prime_numbers](https://wiki.haskell.org/Prime_numbers)

It is so much work, so much effort to develop some very mediocre, very slow, and incomprehensible implementations of an undergraduate level algorithm. I ended up picking CL for the project I was working on (Project Euler) and never looked back.

<comment><AUTHOR> You are of course entitled to your own opinion, but I would say that's unfairly harsh towards Haskell. GHC Haskell not only compiles down to a binary, it can also transpile to C—-, both of which can run performantly.

I started off FP with lodash, then moved to Python and built in functions, and I've tasted the benefits of applying functional programming in production, and so that's what makes learning Haskell interesting and worthwhile to me. I'm looking forward to bringing what I've learned from Haskell towards the rest of the code I write, even if it's not in Haskell.

<comment><USER22> I write Python for a living, and it is an astoundingly productive language. What it gets right is the compromise between functional, object-oriented, and imperative styles. I too have been fascinated by the "pure functional" type languages, but they always fall short when it comes to "real world" projects.

<comment><AUTHOR> I think it's definitely hard for practitioners to adjust to FP, especially when under the pressure to ship. I think a great opportunity to look for ways to apply FP would be in small utilities or libraries. I'm planning my next project in Python but if I'm fortunate to ship that I'll see if I can circle back to Haskell and go from beginner to intermediate by building a small library.

<comment><USER22> If you're interested in FP, I highly recommend checking out Let Over Lambda. It made me realize that there is actually lot in common between OO and FP.

[https://letoverlambda.com/](https://letoverlambda.com/)</comment></comment></comment></comment></comment>


Some notes on winter blues - <AUTHOR> http://frank.geekheim.de/?p=1985

<comment><USER2> I also recommend installing f.lux (<http://stereopsis.com/flux/>) or redshift (<http://jonls.dk/redshift/>). These applications gradually shift the color temperature of your monitor to match the time of the day - the default bluish glow of a computer monitor can really mess up the melatonin production in the evenings.

</comment><comment><USER3> For this winter, I've made 99400 lumen lighting powered by 1kW of metal halide lamps with full, close-to-sun spectrum. This is about 50-100 times brighter than usual room lighting (100-200W of incandescent lamps or 15-35W of luminescent lamps).

It feels great! It's even lighter than in the daytime on the street (at winter of course). I tried really hard to sleep with light on, and it's just impossible :-D I might write an article, if there are guys interested.

<comment><USER4> +1: Write an article about it.

I would like to see a picture if your CCD survives that ;-)

<comment><USER3> Hehe, yes it does survive :-)

</comment></comment></comment><comment><USER5> According to google trends this is a peak period for seasonal affective disorder: <http://www.google.com/trends?q=seasonal+affective+disorder>.

Anecdotally, running a few miles a couple times a week improves my mood as well.

</comment><comment><USER6> Great stuff. For me, I always feel much cheerier after getting some exercise and it doesn't even need to be long or high intensity. Just 15 mins of walking, or a few sets of 30 pushups does the trick.

I also think people naturally feel sad after the holidays because there's nothing to look forward to. So maybe it's best to start a startup during the winter months.

</comment><comment><USER7> "I strongly encourage you to do your own searching and reading, which is why I don´t add a long list of references here as I don´t want to bias you. "

What?!

</comment><comment><USER8> What a bunch of hooey. I love winter, the more snow the better. Get out, and blow the stink off. Go sledding with the kids, snow shoeing with your friends, downhill skiing for yourself (downhill skiing is just like golf - you only have to make yourself better). Too many people stay inside and talk themselves into being sad. You are what you do - so get out and do something fun.

<comment><USER9> Fuck you. SAD is an actual psychiatric condition people can't ski their way out of.

<comment><USER10> On one hand, you are correct.

But note that GP has a point about exercise. Though, as the article noted, it's just hard to do when you're chronically tired. And even snow helps, since it increases the amount of reflected light.

Some personal experience, ymmv:

A year ago I started working on the 7th floor in a more southern country than my native Scandinavia, with the roofs below covered with snow. It was wonderful, like being hit in the eyes with a baseball bat of light...

<comment><USER9> Yeah, there's nothing brighter than a clear winter day with snow on the ground. OTOH, some places (Seattle...) just get rainy and damp and dark in the winter.

<comment><USER10> It doesn't help that much in December dark Scandinavia if there is snow.

I'm outsourced to Cluj, Transylvania and love it here. Nice people, good food, cool nature, etc. The company is hiring Python devs. :-)

That said, I'm personally interviewing in this city, since Python bores me (and there are some growth problems in the company right now). I hope to avoid London.

</comment></comment></comment></comment></comment><comment><USER11> "Don´t use sunglasses" that seems like terrible advice.

</comment><comment><USER12> I went to Lowes and bought a single bulb fluorescent fixture like what you might see in a garage or workbench, along with a 'daylight' bulb. I put it above the window nearest my desk, and it seems to really help with the murky Pacific Northwest winter. I'd guess I paid less than $30, though I did have to wire up a plug myself (should be no hard task for an HNer).

As long as I remember to turn it off by about 9pm, I have no problem getting sleepy by about 11 or midnight.

<comment><USER3> How much watts?

<comment><USER12> Not sure, unfortunately, and I'm away on vacation. Brighter should be better, since you can always diffuse/reflect it if it's too much.</comment></comment></comment>


HN - charts of an URL by users posting it, or of a user and the URLs they post - <AUTHOR>

I wanted to try Bountify (https://bountify.co/) so I asked for a little thing to create charts.  You give it a username, it pulls the last 100 submissions for that user, and charts what urls those subs are.  Or you give it an url, and it pulls the last hundred subs of that url and creates a chart of the users posting it.
I put a $25 bounty on it.  I decided before I posted it that I'd accept the first working answer.  (My post was lousy.  I could have included much better detail.)
This is what I got - pretty quickly.
(https://bountify.co/1x)
I've put some examples on Imgur.  Please note that these are just some examples picked pretty much at random.  I'm not trying to make any point with this; they're just examples.
(http://imgur.com/a/GBzhJ) <comment><USER2> $25 seems too cheap... but it's very specifically limited in scope, and so for someone with just the right skillset (e.g. getting a thrill out of playing around with matplotlib), maybe it is reasonable...?

Perhaps, with another $25, you could get a web API that accepts parameters, and hosted somewhere free (e.g. Google AppEngine)

Another $25, and a nicely designed (super simple) front-end webpage using that API, also hosted somewhere free.

Different skillsets, modules with limited scope, trivial for the right person, dynamically combined.

 _EDIT_ Ah, if you don't get/like solutions, you still lose your money. It goes to charity (a nice way to discourage abuse by askers, and keep the tone cooperative) but needs to be factored into the price. Also, the cynic in me notes that if the founders aren't submitting early-reddit style faux- bounties/answers to build community, they probably should be...

<comment><AUTHOR> I think it's a great way to get a pointer in the right direction.

Rather than using Bountify to get completed projects it's probably best to ask for help with specific algorithms or approaches.

People answering could be those wanting to learn about something (eg, someone wanting to learn a bit about matplotlib) or an expert who wants to encourage best practice. Or someone wanting to build up a reputation for a resumé.

I agree that when compared to actual wages it's very cheap. The bounty is more a way of saying "thanks!", of buying someone a coffee for their help, rather than paying them for their work.

<comment><USER3> "The bounty is more a way of saying "thanks!", of buying someone a coffee for their help, rather than paying them for their work."

This usually works when the guy giving the bounty is not just another random guy on the internet.

</comment></comment></comment><comment><AUTHOR> Clickable links:

(<https://bountify.co/>)

(<https://bountify.co/1x>)

(<http://imgur.com/a/GBzhJ>)</comment>


The ridiculous, Cachemonet-esque Bloomberg 404 page - <AUTHOR> https://www.bloomberg.com/404 <comment><USER2> [https://theoutline.com/404](https://theoutline.com/404)

</comment><comment><USER3> Steph Davidson: [http://paralleluniver.se/](http://paralleluniver.se/)

<comment><AUTHOR> Ah, provenance! So cool, thanks :)

</comment></comment><comment><USER4> I recall this being at the top of /r/webdev 3 or 4 years ago. It turns out that a lot of the subsections have their own themed 404s as well.

My personal favorite: [https://www.bloomberg.com/politics/404](https://www.bloomberg.com/politics/404)

<comment><AUTHOR> OMG. That is really hilarious.

</comment></comment><comment><USER5> Bloomberg are normally described as a reliably joyless organisation, so it's nice that employees are allowed to have SOME fun.

</comment><comment><USER6> In a similar spirit, the Bloomberg Businessweek magazine used to have zany cover designs (my favorite featured a sweaty Steve Ballmer in a Clippers jersey dribbling a basketball captioned " _BASKET BALLMER_ ") but they've since switched to plain, solid colors.

<comment><USER7> Yeah, my favorite was the animated GIF of a flying Jeff Bezos inside a cardboard box.</comment></comment>


I won't use your product just because I'm your friend - <AUTHOR> http://valleywag.com/tech/modern-and-awkward/i-wont-use-your-product-just-because-im-your-friend-252784.php <comment><USER2> deity!

If you read this comment before you read the article, do yourself a favor and skip the article.

nothing against you brlewis, but that thing was horribly written.

<comment><AUTHOR> No offense taken. I just found it funny.

<comment><USER2> touche, and second time on news.yc. third time, award me a plaque for being officially humorless.</comment></comment></comment>


The cpu_features library - <AUTHOR> https://opensource.googleblog.com/2018/02/cpu-features-library.html <comment><USER2> GCC has the __builtin_cpu_supports() function on some architectures, so you may want to use that instead.

It's supported:

* on x86 since GCC 4.8

* on PowerPC since GCC 6 (you will also need glibc ≥ 2.23)

Documentation:

[https://gcc.gnu.org/onlinedocs/gcc/x86-Built-in- Functions.ht...](https://gcc.gnu.org/onlinedocs/gcc/x86-Built-in- Functions.html)

[https://gcc.gnu.org/onlinedocs/gcc/PowerPC-Built-in- Function...](https://gcc.gnu.org/onlinedocs/gcc/PowerPC-Built-in- Functions.html)

<comment><USER3> Does clang have anything similar?

<comment><USER2> Since Clang 3.8 at least, it has __builtin_cpu_supports() too.

</comment></comment></comment><comment><USER4> an alternative library [cpuinfo]([https://github.com/Maratyszcza/cpuinfo](https://github.com/Maratyszcza/cpuinfo)) is a similar offering but also additionally exposes more information such as cache sizes, topology information (number of sockets, etc.) and information on attached integrated GPU.

</comment><comment><USER5> I guess this is helpful for new projects, but most high performance programmers are already parsing cpuid output.

I was hoping for a more convenient hwloc replacement for discovering NUMA topology and logical/physical cores.

I guess what I mean is that if you're already at the level of caring what avx you have, then parsing cpuid isn't too difficult.

</comment><comment><USER6> They already had a cpu features library on the Android NDK.

[https://android.googlesource.com/platform/ndk.git/+/master/s...](https://android.googlesource.com/platform/ndk.git/+/master/sources/android/cpufeatures/)

<comment><USER7> FYI I'm the author of the library. I designed it with the help of the person who wrote the code for the Android NDK. We agreed that the end goal is to replace Android NDK specific code with this library - the NDK will expose the exact same API but using this library under the hood.

</comment></comment><comment><USER8> > features are retrieved by using the cpuid instruction. *Unfortunately this > instruction is privileged for some architectures, in which case we fall back > to Linux.

What's the rationale for making this instruction privileged for the other procs? I can kinda understand making system registers privileged reads but if you have your own encoding there's "no reason" not to give this to everyone, right?

<comment><USER9> several

1\. Malware can infer details from CPUID to guess if it's in a VM or not. Useful to avoid detection/analysis.

2\. When processes execute in a legacy mode you may trap on CPUID to hide details the library won't understand, or doesn't expect to exist. To avoid backwards compatibility issues... better safe then sorry.

3\. When developing SIMD related libraries which need to be portable across multiple CPU versions you may set up a CPUID mask (so trap, then hide features) to ensure compatibility on legacy computers.

Overall having the ability to trap, and rewrite the CPUID instruction is incredibly useful. The difference between denying, and rewriting just boils down to if a callback is provided or not. Both features require disabling native CPUID execution.

<comment><USER10> _> 3\. When developing SIMD related libraries which need to be portable across multiple CPU versions you may set up a CPUID mask (so trap, then hide features) to ensure compatibility on legacy computers._

Huh? My impression was CPUID was exactly the opposite: using it properly allows ensuring compatibility on older computers while still getting maximum performance, since one can dynamically dispatch to an implementation that uses only what is supported. (E.g. switch between an SSE2 version and an AVX version.)

<comment><USER11> I think GP is saying that unit tests for such dynamically-dispatching code will want to be able to inject older CPUIDs, so the compatibility fallbacks have test coverage. If CPUID is a native instruction, it's harder to inject a fake value.

I'm not sure I find this compelling though. It's easy to make your own CPUID function that doesn't actually call "CPUID" in a test build.

</comment></comment></comment></comment><comment><USER12> AMD's Family 12h processors (Llano) are unknown to this library.

VIA also apparently does not exist.

<comment><USER7> Can you please file an issue on github?

</comment></comment><comment><USER13> Intel has really made a mess out of CPUID. It's supposed to be an easy way to query CPU features, and for some things it is, but they keep changing the way it works especially for newer features line AVX2. It's like they cannot even follow their own APIs.

</comment><comment><USER14> Wonder if dmidecode could be updated to include more cpu details, the cache features and other flags are limited.

            Version: Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
            Voltage: 0.8 V
            External Clock: 100 MHz
            Max Speed: 2900 MHz
            Current Speed: 2300 MHz
            Status: Populated, Enabled
            Upgrade: Other
            L1 Cache Handle: 0x004C
            L2 Cache Handle: 0x004D
            L3 Cache Handle: 0x004E
            Serial Number: To Be Filled By O.E.M.
            Asset Tag: To Be Filled By O.E.M.
            Part Number: To Be Filled By O.E.M.
            Core Count: 4
            Core Enabled: 4
            Thread Count: 8

<comment><USER15> dmidecode decodes the dmi. lshw lists the hardware. lscpu lists the cpus.

</comment></comment><comment><USER16> The std.parallelism library in D lets you get some basic CPU info:

[https://dlang.org/phobos/std_parallelism.html#.totalCPUs](https://dlang.org/phobos/std_parallelism.html#.totalCPUs)

num_cores: find number of cores in your PC's processor

[https://jugad2.blogspot.in/2016/09/numcores-find-number- of-c...](https://jugad2.blogspot.in/2016/09/numcores-find-number-of-cores-in- your.html)

You can also use the library for some simple parallel processing, as the name indicates:

Simple parallel processing in D with std.parallelism

[https://jugad2.blogspot.in/2016/12/simple-parallel- processin...](https://jugad2.blogspot.in/2016/12/simple-parallel-processing- in-d-with.html)

</comment><comment><USER17> Is this something that can be done at compile time? Would the compiler not have access to this information?

<comment> EKLM-ZK88 The CPU you compile on will probably not be the CPU your program runs on. If you know what CPU you're running on I guess you can just make assumptions about what features that chip supports, but it's much safer to use something like this to verify at runtime that you support avx or whatever features you need.

<comment><USER17> I was getting at cross-compilation, where you _do_ know the CPU you're running on, but I see that this breaks down because the binaries can run on CPUs that support different features.</comment></comment></comment>


A Fifth of Android Apps Nose Into Private Data, Study Says - <AUTHOR> http://www.linuxinsider.com/story/products/70278.html?wlc=1277988285 <comment><USER2> This has already been debunked. Note this update at the bottom of the article. There are also several articles floating around completely debunking the hyperbole.

"*ECT News Network editor's note - June 24, 2010: After the original publication of this article, Google spokesperson Jay Nancarrow provided ECT News Network with the following statement: "This report falsely suggests that Android users don't have control over which apps access their data. Not only must each Android app gets users' permission to access sensitive information, but developers must also go through billing background checks to confirm their real identities, and we will disable any apps that are found to be m alicious." "</comment>


CEOs of Amazon, Apple, Facebook, and Google prepare their antitrust defense - <AUTHOR> https://www.techspot.com/news/86160-ceos-amazon-apple-facebook-google-preparing-their-defense.html <comment><USER2> > Ultimately, the hearing won't reveal any surprising facts about these > companies and will likely feature some theatrics, as is often the case with > antitrust hearings.

The article says it best at the very end.

Wherever you lie on the spectrum of blaming these tech companies for doing obvious things to continue to drive the bottom line to their investors, the problem here is that this is just a show. And everyone involved knows it.

There are no mechanisms in place for making competent adjustments at this scale, ESPECIALLY in the United States government. If you've ever tried to watch any of these, it's clear the legislatures either aren't competent enough in the field to challenge these prepared talking points.

There's more of a chance of legitimate, competent discussion in a forum like Joe Rogans podcast where he gets people like [1] Jack Dorsey and Tim Pool in a room (albeit with the babysitter counsel) to have a back and forth.

I think the key to moving forward as a decision making body of any kind is to merge the two. Clearly, nothing can come of the Joe Rogan show of note, but imagine: what if it could? What if there could be more transparency and accountability for these huge companies and we could objectively examine what they actually do rather than just hear their talking points and move on?

I guess I'll end my rant here. It's just very discouraging that, despite the fact that this hearing is occurring, there's a next to nothing chance that anything useful for the advancement of our country's liberties will come.

1 [https://youtu.be/DZCBRHOg3PQ](https://youtu.be/DZCBRHOg3PQ)

<comment><USER3> > There are no mechanisms in place for making competent adjustments at this > scale, ESPECIALLY in the United States government. If you've ever tried to > watch any of these, it's clear the legislatures either aren't competent > enough in the field to challenge these prepared talking points.

IMO this is the root cause. If our legislatures can't even login to said website then how could they possibly understand the depth of the power these companies wield? If there is a lack of understanding then there is no way a real solution can be derived from these hearings.

</comment></comment><comment><USER4> IMHO, I'm glad Microsoft is not part of this. It's not about profits, it's about data monopoly.

Writing a modern OS is almost impossible from scratch, but there's nothing preventing you from hiring enough people and making Windows or Azure.

But the problem with Facebook and Google is that they started by scraping stuff for free and without limitations, but if you try to do the same thing with them they bite you with Terms of service, paid data graphs and API quotas. How do you build a index of businesses/venues and people? No matter how many people you hire you cannot achieve the same snowball / network effect.

Instead of breaking them up, make them release open data.

<comment><USER5> Facebook did not "scrape stuff for free". People willingly gave FB their information.

<comment><USER6> People gave Facebook my stuff for free.

RMS explains this much more eloquently than I do. He doesn't have a Facebook account, but he's all over Facebook, without any control, desire, or influence.

Many people set up Facebook accounts to have some control over this. Without an account, I can have nasty things about me on Facebook. To have controls over that, I need to agree to a contract with Facebook which gives away other stuff.

<comment><USER7> I've seen his explanation, but I don't follow the concept of data ownership being expressed. I can be in my friends' conversations, my company's management discussions, even the newspaper without consenting to it - why is Facebook different?

<comment><USER8> Because it's for-profit?

<comment><USER9> The newspaper is also for profit and while commerical speech may have more restrictions (truth in advertising) they aren't barred from those areas. Not a fan of Facebook but the objection appears to be pure novelty bias because it hasn't been as normalized as the old ways.

</comment></comment></comment></comment></comment></comment><comment><USER10> Seeing that chart of the 5 largest companies in 2010 vs 2020 blew my mind a bit.

The idea that Facebook is bigger than Exxon was back in 2010 (even with the rate of inflation), when electric cars were still a wet dream, crazy. Even more, the amount of "usefulness" as well. I'm not arguing that we should keep oil as a fuel source, but you have to admit, right now, if a big player (like Exxon) in the field just vanished, it would have a painful impact. At least fuel supply would be a bit crazy for a while until the competitors can ramp up to meet demand depending on reserve supplies being used. If Facebook just suddenly disappeared... meh. I mean, second and third order consequences... meh. Small business ads would need a new place, but that's not crazy bad. More inconvenience. Advertising companies would need a new supplier, but no really likes them anyways. Well, a lot of job openings, that's a problem. But I'm thinking beyond that, because no matter what the industry, a large player just folding suddenly causes a significant job shortage. That's a common denominator. But a hampering access to fuel supply vs. a social media wall for the general publish... one is more important than the other. At the very least, the other Faang companies have... useful significance?

Edit: I'm aware of the limits to market cap. There's no perfect way of figuring out the size of a company. My point, there's a large level of monetary value in these companies and a difference in how they are significant in daily livelihood for the everyday person. It's just interesting how large Facebook is by a metric but how incredibly useless it is compared to another company using the same metric. It's the same how theres an interesting difference between the market cap of Tesla and Ford. Tesla is larger but they make a fraction of the amount of sellable goods. It's one thing to know this, but to see significant numbers, that makes it more interesting.

<comment><USER11> Market cap is a weird metric to measure company size or influence.

For example, by revenue, it's Walmart with 500B, Amazon at 280B, Exxon 264B, Apple 260B, CVS 256B, ... Alphabet 161B at 11th, Microsoft at 21st with 125B, ...

By employees it's Walmart at 2.2M, Amazon at 800K, ...., Microsoft in 21st place with 144K, ....

By profits, it's Berkshire Hathaway at 81B (massive growth), Apple at 55B (shrinking), MS 39B, Chase 36B, Alphabet 34B, BoA, Intel, Wells Fargo, Citigroup, .... FB 11th at 18B, .... Amazon 22nd at 11B....

[https://en.wikipedia.org/wiki/List_of_largest_companies_in_t...](https://en.wikipedia.org/wiki/List_of_largest_companies_in_the_United_States_by_revenue)

[https://fortune.com/fortune500/2020/search/?f500_profits=des...](https://fortune.com/fortune500/2020/search/?f500_profits=desc)

<comment><USER12> I would argue that revenue is a weird metric to measure company size too.

Doubly so when comparing companies like Exxon and Facebook, which have very different operating costs.

<comment><USER13> Revenue tells you roughly how much value you are creating for other actors in the economy.

<comment><USER12> It does that in a one-sided way though. Do car dealers create value for car makers, or the other way around? The way revenue is measured seems to imply that retailers are the ones who create value for manufacturers, but not vice versa.

In that sense, revenue is more of a measure of "how long and costly is your supply chain, and how close are you to the customer facing side of it?"

<comment><USER11> >Do car dealers create value for car makers

Both - read about consumer and producer surplus in econ.

> The way revenue is measured seems to imply ....

Revenue estimates how much buyers were willing to pay for the product, but each buyer retains their surplus, so revenue undercounts the value to the buyers. But it's a decent representation of value added.

</comment></comment></comment></comment></comment></comment><comment><USER14> Has there been evidence given why these 4 and not Microsoft are at these hearings? I understand each case is subtly different but it seems conspicuous in it's absence. In terms of Big Tech companies potentially violating anti- trust feels odd to include companies 1,3,4,5 but not 2? (Not actually sure what the current comparative values are)

<comment><USER15> Presumably Microsoft, having been convicted once already, is not going to be given such benefit of the doubt as to be invited to a hearing; instead, folks may well decide to bring suit against them without bothering to drag them before Congress as a pretext.

Moreover, Microsoft doesn't have a flagship product which they're using to abuse their monopoly position. The other four do: Apple has its app store, Google has its search+ads vertical _and_ its app store, Amazon has its delivery service, and Facebook has its social+ads vertical.

<comment><USER5> And only if you redefine "monopoly" as "only one company gets to sell its own products". Why not drag the console makers in too?

<comment><USER16> Neither console game developers nor console game players are complaining. I think it's really that simple.

EDIT: And I think I know the reason why. Imagine your kid has a birthday party and invites Alice, Bob and Charlie from school. All is fine. Imagine now that he invites everyone from his grade. Everyone except David. That is bound to piss David off a lot.

Oh and I think game deals are cleared in advance, while app removals happen after you've already done the work.

<comment><USER17> It's mostly understandable because, historically, video game exclusives were either developed or published by the console manufacturer. Some people might get annoyed that this cool game isn't coming to their platform of choice, but as soon as they saw "published by Sony", they understood.

They've also helped pay for the console with hardware sold at a loss (near- loss nowadays after the PS3 loss mess). So it was seen as a necessary "evil" by most.

The one being seen nowadays as bad -- which answers your "everyone except David" metaphor -- is Epic Games buying "everyone except Steam" exclusivity deals. But that topic is too deep to go into here.

</comment></comment></comment></comment></comment><comment><USER18> How many people at a company are typically involved in writing those CEO prepared statements to the House? If anybody has done it before, I'm very curious to learn the process.

<comment><USER19> I have helped support such statements in an unrelated field. My role was as a SME in specific data arenas. The general process was that our Marketing department would try and coordinate all the best available talking points. Anything we'd put out to the press over the last couple years that they felt would be compelling. Once that particular menu was constructed, they reached out to the relevant SMEs across the business to drop what they were doing and pull together any data possible to reinforce the selected talking points. Our results were handed back up the chain for marketing to integrate and polish. In my case the executive actually speaking to Congress then met with us to dive into the provided data and make sure they were able to speak to it reasonably well if pressed.

</comment></comment><comment><USER20> In case anyone hasn't read Warren's policy recommendations, it's worth the read to get a sense of possible steps beyond questions on CSPAN:

[https://medium.com/@teamwarren/heres-how-we-can-break-up- big...](https://medium.com/@teamwarren/heres-how-we-can-break-up-big- tech-9ad9e0da324c)

</comment><comment><USER21> Google, FB and Amazon I understand and absolutely agree that they're monopolies and need to be regulated.

But why Apple? Android has a very substantial market share and provides a good hedge against Apple iOS, same for the MacOS/Windows market.

<comment><USER9> The closest thing is calling their app-store practices anti-competitive but it is essentially an industry standard for better or worse regardless of how they choose to curate.

The real answer to why is that it is a grandstanding joker jury and all of their reasons are stupid and dishonest.

</comment></comment><comment><USER22> None of these companies have monopolies

</comment><comment><USER23> Is there a way to watch this online today? cspan wants a tv provider account and I don't have one.

<comment><USER24> Link here [https://judiciary.house.gov/news/documentsingle.aspx?Documen...](https://judiciary.house.gov/news/documentsingle.aspx?DocumentID=3114)

... or directly on YouTube [https://www.youtube.com/channel/UCVvv3JRCVQAl6ovogDum4hA](https://www.youtube.com/channel/UCVvv3JRCVQAl6ovogDum4hA)

<comment><USER23> Thanks!</comment></comment></comment>


Ineffective Entrepreneurship: Post-Mortem of Hippo - <AUTHOR> http://effective-altruism.com/ea/1oq/ineffective_entrepreneurship_postmortem_of_hippo/ <comment><USER2> > The work I was doing for Hippo – designing the product and talking to users > – I was able to do much quicker than David was able to build the product (he > had a normal developer job).

> I think my particular mistake was probably being too optimistic about how > much development work David and A would and could do. I should have been > more critical of our development productivity and not given them so much of > the benefit of the doubt.

Developers: Don't work for these people. This is why it is so important to donate your time to people who are serious. Do not give your time to backstop someone's else fantasies of doing something "important" or getting rich.

<comment><USER3> I think all the model of modern startup culture is suboptimal but widely spread and so considered the only possible scheme by literally everyone. Couldn't we imagine the case when not enterpreneur dictates 'what to build' to developer, but exact opposite of that? Developer knows what he is going to build, and just hires marketing-minded guy for legwork wrt funding, marketing, and other extrovertial stuff - for the same little wage and stock options as it's done usually.

<comment><USER4> This happens, and you could argue is how Google and Microsoft got started.

In practice though, knowing WHAT to build is at least as important a skill as HOW to build it. Things an engineer wants to build are not necessarily things a customer will buy. So starting with someone with understanding of the market is probably more likely to bring success.

<comment><USER3> The question is who is the boss. And almost always it's the marketing guy, we usually call him enterpreneur. I don't think this model is good or bad per se, I'm just talking about maybe, just maybe, it's not supposed to be like that everywhere every time.

</comment></comment></comment></comment><comment><USER5> This is full of classic early stage business mistakes.

\- Married to the "how": app, app, app, app. It didn't have to be an app. You wanted to use technology to make people happier. There's a lot more technology than apps.

\+ talking to users: well done!

\+ reaching out to potential customers!: really, well done!

\- not following up with customers: face palm. But that's ok, talk to another one and keep in touch!

\- not using customer agreements to raise money for product dev: you should have used the banks agreement to a trial to help fund developement. The bank could have sponsored the initial build! You could have raised a little money from people based on that. Gone to an accelerator, it didn't have to YC.

\- started a PhD: focus!!!! Argh. Now you're just going to half ass both.

\- couldn't develop product faster enough: perhaps you needed a more experienced developer? Maybe you needed different tech. Because you were basically building a business off the back of a favour, you were pretty stuck though. You can't fire a favour.

\- 9 months to launch an Alpha: this is too long to wait to get a simple mood tracking app into alpha. It didn't need to be anything more than that at this point. The fancy can come later.

\- let's use ML!: NO! You do not have time for the distraction. Unless you're going to use the Hype train to raise funds.

\- not useful, technical issues: fix them?

\+ apply to YC: good, seeking mentorship is probably a good idea :).

\- only apply to YC: all your eggs in one basket is not a good strategy.

\- still struggling to articulate the idea: what did you tell the bank? That seemed to work. Mayhaps you're a little dissolusioned? Take a break tbh.

Generally great approaches, I think if you were to try again a few times you'd make it. It's evident that you have some of the right mind set to make it work.

I think you gained a fair amount of CV worthy skills and experience tbh.

</comment><comment><USER6> This is like me who knows nothing about making music, convincing a bunch of actual musicians to create a band, not pay them, come up with a vague idea for an album and then send them e-mails every other week asking about progress, and then calling myself a failed band leader when they go off and get actual jobs.

</comment><comment><USER7> One thing that really struck me was this comment:

> Stardom and riches beckoned! I could practically see my face on Wired > magazine.

Many years ago I worked with a sports psychologist and one of the things he impressed strongly upon me was that you don't want to get caught up in dreams of the end success. The reason being that your mind can't always clearly tell the difference between the real endpoint where you can kick back and relax and the daydreams of that end point. As a result if you spend too much time dreaming about what it will be like at the end you risk getting disengaged because you've created a situation where your mind might think you have already made it more than you really have.

(Hopefully this paraphrasing gets the idea across)

</comment><comment><USER8> I have deep respect for this entrepreneur because it is so damn easy to theorize impact/success in one's brain and masturbate over pure thoughtstuff. It's a whole different story when the rubber hits the road and so I really appreciate the author sharing their story. The parables to one's personal life are impeccable.

The "Hippo" irony comes from a story from the incredible Ernesto Sirolli:

"SIROLLI: It was a project where we Italians decided to teach Zambian people how to grow food. So we arrived there with Italian seeds in southern Zambia in this absolutely magnificent valley going down to the Zambezi River. And we taught the local people how to grow Italian tomatoes and zucchini. And of course, the local people had absolutely no interest in doing that so we paid them to come and work, and sometimes they would show up. And we were amazed that the local people in such fertile valley, would not have any agriculture. But instead of asking them how come they were not growing anything, we simply said, thank God we're here. Just in the nick of time to save the Zambian people from starvation.

And of course, everything in Africa grew beautifully and we had these magnificent tomatoes. In Italy, a tomato would grow to this size. In Zambia, to this size. And we were telling the Zambians, look how easy agriculture is. When the tomatoes were nice and ripe and red, overnight, some 200 hippos came up from the river and they ate everything. And we said to the Zambians, my God, the hippos. And the Zambians said, yes, that's why we have no agriculture here. Why didn't you tell us? You never asked. I thought it was only us Italian's blundering around Africa, but then I saw what the Americans were doing, what the English were doing, what the French were doing. And after seeing what they were doing, I became quite proud of our project in Zambia because, you see, at least we fed the hippos."

</comment><comment><USER9> There's an intersting nugget :

>>> Failing unremarkably can happen and is something you should consider as a possibility. If I were to claim I had built career capital as a result of my 2.5 (mis)adventure, I would be deceiving myself. As it is I walk away with no cool story, no CV points. At least if I'd blown some money (mine

That's real failure.

</comment><comment><USER10> While it is pretty easy to think of things to criticize with this article and the author's strategy, I admire the willingness to share stories of failure. It's an interesting contrast with several stories I've read recently about Elizabeth Holmes and Theranos, the startup that had an idea that didn't work out, that wouldn't quit, kept getting money, kept doing whatever it took to keep trying, and ended up resorting to deception. There is something to be said for the honest admission, "this isn't working, it's time to stop and try something else." Getting lots of money invested in your idea may make it harder to admit when you need to try something else.

</comment><comment><USER11> I loved his 'the Mom test' link to Rob Fitzpatrick's 'how to get feedback when your customers are lying' video [0]. It reminds me of an old Jakob Nielsen post about user testing. You need to watch users actually using the product without your help, but you can probably get away with only 5 users [1].

[0]: [https://www.youtube.com/watch?v=O_xjb7LB7VY](https://www.youtube.com/watch?v=O_xjb7LB7VY)

[1]: [https://www.nngroup.com/articles/why-you-only-need-to- test-w...](https://www.nngroup.com/articles/why-you-only-need-to-test- with-5-users/)

</comment><comment><USER12> I am extremely curious what they were actually trying to build, because as described it sounds like the sort of thing I'd expect to take at most a few months as a side project.

</comment><comment><USER13> Though this was concerning the company who handle our home insurance, also a startup named Hippo, who are great. Thankfully not!

</comment><comment><USER14> As a developer it's pretty easy to laugh a little condescendingly at the naivete and the missteps outlined here. However I think it's worth pointing out even skilled developers have their own version of this where they spend months or years churning on code that never produces any value because they are scared to ship and face real user feedback.

</comment><comment><USER15> Oddly enough, my friend and I were looking for almost exactly what Hippo is offering. I guess the market is too small and not flush with cash for something like this to exist? See requirements here: [https://softwarerecs.stackexchange.com/q/45070/2134](https://softwarerecs.stackexchange.com/q/45070/2134)

</comment><comment><USER16> Seems like maybe the lack of random nudges during the day was the biggest missing piece here? Maybe the founder could have hired someone for minimum wage to just manually send these notifications on a schedule and send the recommendations. Scale with more cheap labour as necessary until you finally have the fancy ml automated solution

</comment><comment><USER17> If you like this article, you might also enjoy this one by the same author: [http://effective- altruism.com/ea/yv/is_effective_altruism_ov...](http://effective- altruism.com/ea/yv/is_effective_altruism_overlooking_human_happiness/)

"TL;DR version: Mental illness is probably much worse than poverty or physical illness. Interventions which change how people think - i.e. reduce mental health and increase happiness - may be more cost-effective ways of increasing happiness than AMF or Give Directly. I outline some new opportunities EA should look into."

<comment><USER18> Reduce mental health?

<comment><USER19> He couldn't have meant that, that would be crazy.

</comment></comment></comment><comment><USER20> <rant>

Why do millennials think that working on a side project for a short while constitutes a start up or being an entrepreneur? You had a vague idea, worked on it for a while and it turned out to go nowhere. There is nothing wrong with that. But it was just a side project and not a start up. It certainly does not make you an entrepreneur.

By that definition I have had a dozen start ups and almost every programmer I know must be an entrepreneur. When did the bar get so low? Is no action too small for self-aggrandizement?

If I write a blog post I am not suddenly a published author. If I give $20 to a homeless person I am not suddenly a philanthropist. Helping a friend with some code does not suddenly make me a professional teacher.

Millennials, get over yourself.

</Rant>

<comment><USER5> No real Scottsman!

What is a real entrepreneur then? Someone who quits their job and risks everything to fail?

You don't have to do that anymore for businesses with basically 0 startup capital requirements, > 90% margins and minimal time commitments ala software.

Are you calling for the classic starving artist entrepreneur who struggles through hell to build their business?

People don't always need to dance like that sort of monkey anymore, please stop demanding the weird masochistic performance porn. Working your self to a lonely death is no longer cool and shouldn't be again.

I'm sure you have other criteria that we must meet to be true entrepreneurs though. I'd love to hear them!

<comment><USER21> > businesses with basically 0 startup capital requirements [...] and minimal > time commitments ala software

I don't know what world you live in, but in mine, new software takes a lot of time to write, or a lot of money to pay someone to write it.

<comment><USER5> I live in world where I can write the MVP to prove a business case in a week after / before work, sometimes with no code!

Edit: My MVPs may not meet your requirements for new software. They will not be all singing, all dancing. They will do some tiny slice of core functionality that allows me to prove the value of technologies application to the problem. Often with serious manual intevention.

<comment><USER21> An MVP is not a business.

<comment><USER5> I struggled to answer this without derogatory sarcasm.

I agree, an MVP is not a business. I would not expect that a business would be built in a few weeks or even months. My personal experience with businesses is that they take years.

But we're not talking about building a business. You do not launch an MVP and call it a business.

I was specifically talking about proving a business case for a solution that could turn into a business. This is precisely what the things we call 'MVPs' are mean't to be for.

<comment><USER21> > But we're not talking about building a business. You do not launch an MVP > and call it a business.

Then what exactly _were_ you talking about when you wrote this:

> businesses with basically 0 startup capital requirements, > 90% margins and > minimal time commitments ala software.

?

> I was specifically talking about proving a business case for a solution that > could turn into a business.

At that point, however, you do not have a business. And you're not an entrepreneur.

<comment><USER5> It's evident that you have no wish to change your mind and honestly, I have no wish to change mine.</comment></comment></comment></comment></comment></comment></comment></comment>


When It's OK to Recline on a Crowded Flight... - <AUTHOR> http://blog.redfin.com/blog/2010/11/jim_flatley_wasnt_a_recliner.html <comment><USER2> why is this interesting?</comment>