Coffee Shops Pull the Plug on Laptop Users - <AUTHOR> http://online.wsj.com/article/SB124950421033208823.html <comment><USER2> I don't know - my personal solution to this problem is one of reciprocity and mutuality in my business etiquette. If I'm going to spend all day working at a coffee shop, I'm going to buy a fair bit of stuff, too. Not all at once, of course, but in some sort of steady trickle. The impact this has on nutrition and caloric intake is left as an exercise to the student.

It's not that I'm rich; quite the contrary, actually. But I understand that a coffee shop needs to be able to justify the opportunity cost of giving up a table, let alone the sort of comfortable table at which I often like to work.

I think what the coffee shop owners and employees like to see isn't me paying their wages; I can't afford to buy a latte every hour either financially or biologically. But what I can do is buy a latte when I come in, and maybe a few refills of drip coffee throughout the day, maybe a bagel and whatnot for lunch (money that would otherwise be spent anyway if I'm not near home). Oh, yes, and I tip pretty generously throughout it all, which keeps the employees that might otherwise look askance content--although, of course, that is not the only reason I do it.

I frequent a variety of local coffee shops with a range of attitudes toward laptop campers, although all of them tolerate laptop users, just some more begrudgingly than others. And yet, I'm one of their favourite customers, it seems, because I at least try to make it worthwhile for the shop to have me around, too.

Of course, my story here may not be universally applicable; I spend half my time in a college town, where people who colonise to study or work on a computer all day are universal and if you locked them out you'd simply alienate 90% of your customer base.

(Here's a hint: Don't open a coffee shop in a college town, or you will constantly struggle with this problem; there's just not a lot of table turnover, but you can't really tell them to move along when the sort of customer they are is a majority constituency.)

The other half is spent in Atlanta, equidistantly from two fairly major state universities. That imparts a vaguely similar quality upon the whole thing, and the local coffee shops are also unusually, uh, 'progressive' in Midtown.

</comment><comment><USER3> It is painfully obvious that there is demand for a service here. People who bring their own tea bag and use the free wifi the entire day are never going to be profitable, but what about laptop users who aren't quite that cheap?

I did the working-from-a-cafe thing for a while, and it can be quite enjoyable. Working from home can lead to self-discipline problems. Renting an office can be expensive. Shared workspaces are more affordable, but the atmosphere isn't necessarily great. Working in coffee shops isn't for everyone, but it clearly works for some people.

So what's the business model that can make this work for everyone? There has to be one.

<comment><USER4> Hacker Dojo / coworking spaces. Charge a monthly or daily rate for a place to sit alone or with peers in a facility that has a restroom, tables, and power outlets.

</comment></comment><comment><USER5> In Canada many of our cafes have 20 min max signs. I've only ever seen it actually enforced once, when someone had stayed for nearly 5 hours without buying more than a simple coffee.

<comment><USER6> I've never been there but isn't that rather a sweeping statement? I thought Canada was pretty big, isn't like me saying in CA many of our cafes...?

Sounds like a good reason to move to SF. Any coffee shop that limits or bans internet usage will quickly loose trade to those that embrace it. Wifi is like having a bathroom, its just part of a coffee shop.

I'm sorry, but I have no sympathy, the coffee shops need to factor the price into their drinks, people are willing to pay for the things they need, just like the cost of cleaning the bathrooms is factored in. I realize every time I spend nearly $4 for a drink that probably costs under 50c to make that I'm subsidizing the experience.

<comment><USER7> _Sounds like a good reason to move to SF_

Many of the coffee shops in SF have already taken steps to limit laptop usage. Ritual removed all the power plugs. Four Barrel purposely does not have wifi. Same with the newer Blue Bottle in Mint Plaza. Certain cafes like Sugarlump and that one in Bernal which I forgot the name have very bad wifi that they do not fix, on purpose, to limit the number of laptop users. Mami Tobi's in Hayes Valley also does not have wifi, on purpose.

All the coffee shops in the Inner Richmond charge for Wifi, except for Martha Bros, which doesn't have any reasonable seating.

Reverie in Cole Valley removed the wifi years ago. Oddly enough the wifi removal was initiated by Craig Newmark.

Unfortunately in cities like SF or "college towns" the free wifi in cafes is severely abused. People will buy the cheapest cup of coffee and then sit there for 8 hours. When I lived in Cambridge, it was impossible to sit at the 1369 coffee shop at any time during the day because the seating was completely taken up by laptop lurkers. They ended up moving to paid wifi to fix the situation. Ritual in SF is crowded enough even with no power plugs. When they had the power plugs, the laptop usage there was ridiculous.

At this point in time the only draw of many of the coffee shops with wifi in SF is actually the wifi itself. For instance, Mission Creek Cafe has awful coffee, food and service. The only reason anyone goes there is because there are power outlets and wifi.

 _Any coffee shop that limits or bans internet usage will quickly loose trade to those that embrace it_

Coffee shops lose money on heavy wifi users. Laptop lurkers are usually students and freelancers - people who take up space and don't spend much money. Coffee shops make money by... selling coffee. The coffee shop that has done the best financially in San Francisco is Blue Bottle, which not only didn't have wifi, it didn't have a physical space. It was just a kiosk underneath a garage door in an alley. Yet, it consistently has 20 people lined up.

<comment><USER6> While some of what you say is true, Ritual did indeed cover their power outlets because there were servers running whole startups there, much of the rest is not.

It's pointless getting into each point, like the obvious error about Reverie. Do you really think Craig asked them to remove the WiFi? Just because he's there a lot? And besides, they do indeed have free wifi. As do many places in the Inner Richmond.

And where did you get the idea that Blue Bottle is the most financially successful coffee shop in SF? Their kiosk in Hayes Valley is definitely popular and has a line of 20 people most weekends, but that's a function of the fact that they are trendy with the cycling community and how long they take to make the coffee. If they were half as fast any other coffee shop they'd not have those lines.

<comment><USER7> I feel like you're trolling me because I called you out regarding your comments about the Lower Haight filled with beautiful women. I'm not sure what points of mine need to be addressed. However, I did respond - good show. You win.

I've thought about these issues and have decided you are right. Only Miami and Milan rival the Lower Haight when it comes to the likelihood of running into a beautiful woman. Cafe Reverie and most of the Inner Richmond are indeed WiFi "hot spots." A good walking tour of SF would include a stroll up Haight Street starting at the Fillmore. Walk slowly while immersing yourself in the rare natural beauty of your surroundings. Take your time. It's unlikely you will make it up the hill without being approached by a half dozen startlingly gorgeous people, but once you do, head over to Cole Valley to recharge your spirits and check your email in the courtyard at Reverie.

</comment></comment></comment></comment></comment><comment><USER8> It's funny that this article is on WSJ, owned by NewsCorp, which just said it is going to start charging for access to its online content.

<comment><USER9> I think the WSJ and Barrons are currently the only two papers in its portfolio that they already charge for content. The WSJ has at least been quite successful at selling online subscriptions.

</comment></comment><comment><USER10> What happens when everyone has an 8 hour netbook battery and a 5G hookup?

<comment><USER11> I think they also need to worry about the growing popularity of smaller devices like the iPhone and, like you mentioned, netbooks rather than laptops. Someone could sit in the shop for hours and use the wifi to watch a streaming movie on their iPhone/netbook and take up a seat. It is only one seat, but if they aren't buying anything it could hurt business.

It is reasonable to ban laptops and other devices from a store during lunch time because of the huge wave of customers, but they should be allowed once the big wave dies back down. Late night coffee shop studying is really popular, especially in college towns.

<comment><USER12> _"It is reasonable to ban laptops and other devices from a store during lunch time because of the huge wave of customers"_

But it's okay for someone to sit there and read the Wall St Journal that a previous customer left behind?

Plus, if we're talking about coffee shops, why lunch time? At all the coffee shops I've ever frequented (granted, not in large metros), the busiest time is between 7:30 and 10am when everyone is getting their coffee ...

Finally, I tend to think places like coffee shops do better and gain popularity when they _look busy_. If a coffee shop is full or near full, other people notice that ...

<comment><USER11> Now that you point it out I also consider a "coffee shop" to be like a starbucks or something and might not be as affected by this.

Eateries like Panera Bread and Cosi (who offer free wifi) should be more worried about non-paying users taking up seats during afternoon lunch hours. Also, good point about someone reading the paper. The problem is nonpaying customers spending hours on end, taking up seats that paying customers could use, regardless of what they are doing.

Maybe they could charge you like a coffee an hour or something.</comment></comment></comment></comment>


Open Application Model Specification - <AUTHOR> https://github.com/oam-dev/spec/blob/master/README.md <comment><USER2> > The Enterprise JavaBeans architecture defines six distinct roles in the > application development and deployment life cycle. Each EJB Role may be > performed by a different party. The EJB architecture specifies the contracts > that ensure that the product of each EJB Role is compatible with the product > of the other EJB architecture Roles. The EJB specification focuses on those > contracts that are required to support the development and deployment of > ISV-written enterprise Beans.

\-- Enterprise JavaBeans™ Specification, v1.1, 12/17/1999 [1]

[1] [http://index- of.es/Java/Enterprise%20JavaBeans%20Specificati...](http://index- of.es/Java/Enterprise%20JavaBeans%20Specification-1.1.pdf)

</comment><comment><USER3> Previous discussions:

[https://news.ycombinator.com/item?id=21272082](https://news.ycombinator.com/item?id=21272082) (focused on OAM)

[https://news.ycombinator.com/item?id=21279366](https://news.ycombinator.com/item?id=21279366) (focused on OAM + Dapr)

</comment><comment><USER4> > When it comes to application development and deployment, we think it is > important to distinguish between the parts that developers are responsible > for, and the parts that operations is responsible for. Otherwise, if these > roles get muddled, it would result in communications mishaps, bugs, or even > service outages.

Isn't this is the complete opposite of general wisdom these days?

If development and operations are split then you end up with two departments working against each other. Development are assessed on their ability to deliver features and operations are assessed on their ability to keep the service running. So development are incentivised to push for as rapid deployment as possible, and operations are incentivised to resist deployment as much as possible (because deployment can lead to downtime).</comment>


Confessions Of Patch Salesperson: "It's Been A Disaster" - <AUTHOR> http://www.businessinsider.com/confessions-of-patch-salesperson-we-sell-garbage-2011-6

<comment><AUTHOR> "Here's the real issue with Patch: They're selling a branding advertising campaign to small businesses that should never put their first dollar in that bucket. It should be on Google AdWords, where it's measurable and it's cost effective, whether it's a Groupon or AdWords type play."

This makes sense. I've been in the newspaper game for more than 10 years, and I couldn't sell a banner ad to an SMB with a straight face because it's not what they need.

What a small business needs is search-engine optimized website with social media hooks. Banner ads are a waste of cash... the ROI is not there.

<comment><USER2> I used to be in your camp, actually, and I've come around based on a number of things I've learned recently. The real problem is not that SMB's shouldn't be buying brand advertising, the real problem is that they shouldn't be buying brand advertising the way large businesses do. Shoehorning them into the same sales strategy/pipeline won't work at all.

As a matter of fact, they already buy and see value in brand advertising. Local businesses that sponsor local sports teams are simply building brand awareness. They'll pay money to slap their logo on any number of things _without_ expecting some measurable conversion, and they still see value there.

Social media makes this even more interesting. All these small brands are creating engaging content and looking for ways to get it in front of people. Rather than worrying about converting to sales, many of them are attempting to do things like pick up Twitter followers and encourage content sharing. It's very much a brand based activity.</comment></comment>


Google giving Malware Warning on all search results (now fixed) - <AUTHOR> http://i44.tinypic.com/2qbub9j.png

<comment><USER2> Well, the important part is that AdWords doesn't seem to be broken ;-). I can click through those links with no warning at all! Even when they're the same link as one of the malware links. New way to make money?

On a realistic note, do you think Google will refund their advertisers' money during this problem (since I'm guessing there will be higher click rates for things like "apple" where Apple Computer is both the first "organic" result and has purchased ads, but now the organic results are "malware")?

</comment><comment><USER3> Wow. Since clicking on any search result brings up the warning page, Google is unusable. Everywhere. I never thought I'd see this.

I wonder how much this is costing the global economy per second...

<comment><USER4> I wonder how much it's costing _Google_ per second...

<comment><USER5> I wonder how much it's costing _me_ per second. I was right in the middle of some research! Now I'm going to spend a hour surfing HN looking for fresh new Google jokes!

On the other hand, nothing brings people from around the world together like a bug in Google.

<comment><USER6> I wondering how much it's costing HN per second

<comment><USER7> 17.3 cents

</comment></comment></comment></comment></comment><comment><USER8> Honor to the first submission with a correct title, I deleted mine. It's official, Google is broken. It was so unexpected that I wondered if I hadn't a malware.

</comment><comment><USER9> Here is the official explanation from Google: [http://googleblog.blogspot.com/2009/01/this-site-may-harm- yo...](http://googleblog.blogspot.com/2009/01/this-site-may-harm-your- computer-on.html)

<comment><USER10> " _StopBadware.org to get our list of URLs_ "

" _Unfortunately (and here's the human error), the URL of '/' was mistakenly checked in as a value to the file and '/' expands to all URLs._ "

Sounds like an opportunity to add a new acceptance test on items in that list :-)

<comment><USER10> Turns out they do not get a lits of URLs from there.

cf. <http://news.ycombinator.com/item?id=460426>

</comment></comment></comment><comment><AUTHOR> Seems to be affecting everyone: [http://search.twitter.com/search?q=%22may+harm+your+computer...](http://search.twitter.com/search?q=%22may+harm+your+computer%22)

<comment><USER11> Went from 37 results to over 300 in the space of a minute.

</comment></comment><comment><USER12> Its like the Internet just stopped.

It is midnight in Japan and here I am writing emails to customers saying "No no, don't worry, I haven't infected your computer... it is _Google_ that has the problem."

<comment><USER13> _Its like the Internet just stopped._

A la _The Source of Magic_. One day, all of the magic in Xanth was turned off. For awhile, Xanth was like Mundania. <http://en.wikipedia.org/wiki/The_Source_of_Magic>

<comment><USER12> Apropos of nothing, my friends have suggested Xanth to me on and off again for over a decade now. I know nothing about it except that Amazon will deliver it to my doorstep. What three books should I be buying?

<comment><USER13> _What three [Xanth] books should I be buying?_

Perhaps not the one I mentioned, since I just spoiled it for you. :) I have found that adults don't tend to like Piers Anthony's writing (it's filled with puns and adolescent soft-porn humor), but if you want to better know where your friends - who might have read Xanth books at ages at which they could better appreciate the writing style - are coming from, I would pick the first three of the series:

      * A Spell for Chameleon
      * The Source of Magic
      * Castle Roogna

<comment><USER14> If you want some more mature books from Piers Anthony, the _Apprentice Adept_ series and _Incarnations of Immortality_ series are better than the _Xanth_ ones. Plus, they're both only 7-8 books long, so it won't take you forever to read them all (if you actually get into them).

Apprentice Adept is kind of a cool dual-world series, with sci-fi in one world and fantasy in the other, and the ability for some to move between them. You should start with the first in the series, of course: _Split Infinity._

Incarnations of Immortality also has the juxtaposition of sci-fi and fantasy, but in one world. The "hook" for this series is that the major "forces" in the world (time/death/fate/war/etc...) are actually offices which people fill (think _The Santa Clause_ , but without Tim Allen or christmas). The first book of the series is _On A Pale Horse_.

A final word of warning: I read both of these series a long time ago, so it could be that they're actually not as mature as I remember =)

</comment></comment></comment></comment></comment><comment><USER15> I was doing searches on Google and everything was OK. Then I did a search for "Bill of Rights" and I got all those nasty malware warnings. It really freaked me out until I realized Google was doing that with any search :)

</comment><comment><USER16> I bet Omar Shahine at Microsoft is smiling right now: <http://news.cnet.com/8301-17939_109-10153165-2.html>

"Cutts responded, in effect, that Google knows plenty about running big Web sites, thank you very much. 'Google runs Web services with many users and servers too and we launch changes weekly or faster,' he said."

</comment><comment><USER17> This is an _enormous_ bug - its similar to Microsoft Office not working for half an hour.

I can't fathom how much this will have cost google - in terms of $$$ and reputation -- millions of people will now be unsure to trust googles "this site may be unsafe"

It'll be fascinating to see if Yahoo/MSN get a noticeable spike in searches.

</comment><comment><USER18> Deleted mine too, here's a screenshot in case they fix it

<http://tinyurl.com/b4k25q>

Its really LOL that they mark google.com as "may harm your computer"

<comment><USER19> I know. Even when I search for google properties, everything comes up with that same error. Interesting.

</comment></comment><comment><USER4> First time I've ever used yahoo search.

<comment><USER20> I even gave msn search a go!

<comment><USER21> what, no love for cuil?

</comment></comment></comment><comment><USER22> heh we posted these at the same time, deleted mine since it would be best if there wasnt a hundred OMG google is broken on the front page

I bet whoever just deployed the upgrade is kicking themselves right now though

<comment><USER23> ... while standing in the unemploymment line, yeah.

</comment></comment><comment><USER9> Looks like it has been fixed.

<comment><USER5> I'm not sure whether to be impressed or terrified that Google can -- and, apparently, does -- roll out updates across their entire server farm in a matter of a minute or two.

<comment><USER24> "Since we push these updates in a staggered and rolling fashion, the errors began appearing between 6:27 a.m. and 6:40 a.m. and began disappearing between 7:10 and 7:25 a.m., so the duration of the problem for any particular user was approximately 40 minutes." from [http://googleblog.blogspot.com/2009/01/this- site-may-harm-yo...](http://googleblog.blogspot.com/2009/01/this-site-may- harm-your-computer-on.html)

<comment><USER5> Okay, it sounds like it actually takes 13 to 15 minutes to roll out an update across the entire farm. That feels more like what I was expecting.

<comment><USER24> Compare: "How to 0wn the Internet in Your Spare Time" <http://www.icir.org/vern/papers/cdc-usenix-sec02/cdc.pdf>

</comment></comment></comment></comment></comment><comment><USER11> My mum just called me to ask me if her computer was infected.

I wonder how many people around the world are now panicking?

</comment><comment><USER25> Wow, I can't seem to get to StopBadware.org today, I wonder why?

</comment><comment><USER26> It's not even just English: [http://www.google.de/search?hl=de&q=news&btnG=Google...](http://www.google.de/search?hl=de&q=news&btnG=Google- Suche&meta=), [http://www.google.co.jp/search?hl=ja&q=乗り換え案内&btnG=G...](http://www.google.co.jp/search?hl=ja&q=乗り換え案内&btnG=Google+検索&lr=&aq=8r&oq=n)

</comment><comment><USER27> Google doesn't quite think that everything may harm your computer. Neither wikipedia nor facebook will.

Interestingly:

[http://www.google.com/interstitial?url=http://www.google.com...](http://www.google.com/interstitial?url=http://www.google.com/)

Google thinks Google may harm your computer.

<comment><USER28> I actually had a wikipedia page give me the malware warning.

Google: Trust no one!

Me: Not even wikipedia?

(Encyclopaedia Britannica laughs maniacally in the background)

</comment></comment><comment><USER29> I was doing research this morning for a radio show I host, and Amazon came up as malware. I was like what??? Malware on Amazon? Then I went back, and noticed every website was malware. I had to laugh, but it is interesting that Google doesn't have some sort of testing process before rolling out updates live.

</comment><comment><USER30> I wonder if all the big corporations could sue Google for defamation now..? o_O

I find it amusing that Google warned me away from the Microsoft website as it might harm my computer!

Small things...

</comment><comment><USER31> First it was that Android root shell fiasco. Now this. I wonder if this whole "holier than thou" attitude towards Google will finally start to subside.

</comment><comment><USER32> I don't understand why Google is dabbling in all sorts of areas while neglecting their core business.

The Usenet search and the groups interface were truly wonderful a couple of years ago. Now the interface is a web 2.0 abomination and the search is _completely_ broken.

The web search is still o.k., but not astonishing compared to other search engines. Google is really showing signs of becoming a fat company. I would not be surprised if in a couple of years their calculator returns 77.1*850 = 100000.

</comment><comment><USER33> I just saw this - glad it's not just me.

</comment><comment><AUTHOR> Would be interesting to see stats in the aftermath on site traffic drops or if Yahoo traffic increases.

</comment><comment><USER34> I think it's the safety filter feature from Chrome that they're implementing site-wide, gone wrong.

</comment><comment><USER19> I just searched YAHOO for "Google malware problem". Oh wow, I never thought this day would come.

</comment><comment><USER35> Antivirus producers will rejoice at this. Many end-users will think they got infected.

</comment><comment><USER36> not all results gives me the malware

check out searching "hello" [http://www.google.com/search?hl=en&q=hello&btnG=Sear...](http://www.google.com/search?hl=en&q=hello&btnG=Search)

</comment><comment><USER37> Actually, I think the problem was misreported. It seemed as though google flagged its own interstitial page as malware, as all the search result links showed as [http://google.com/search?interstitial=<URL>](http://google.com/search?interstitial=<URL>), and THAT page was malware -- unless I'm overlooking something obvious, like the interstitial page is only shown when adware is detected.

Regardless, the search engine worked perfectly, it was just the links that weren't working. Simply removing the 'google' part of the URL allowed me to get to the sites just fine.

</comment><comment><USER7> I feel sorry for the poor sap who's going to get fired for this.

<comment><USER38> I'm not, if that person is the idiot that made a filter mandatory. But I fear the little technician, that reasoned against filtering in the first place, will get the boot.

</comment></comment><comment><USER39> Fixed at 10:17 AM EST

</comment><comment><USER40> It looks like it only effects you if you're logged in.

</comment><comment><USER27> looks like it's fixed. even trying to go to the old link this thread linked to gets a 403 Forbidden, and some basic searches show fixage

</comment><comment><USER41> for the first time someone did ask me about google alternatives. live search and yahoo are having the most users sinse ages today..

</comment><comment><USER21> did google also tweak their spam filter? anyone seeing more emails that would not normally go to spam being sent to spam?

</comment><comment><USER42> i sympathize with the 'human' who made that error. it might be the lowest point of his life. or his greatest!

</comment><comment><USER43> It's working again... at least for me

<comment><USER43> and the false warning is back...

edit: If I refresh I don't see the false warning every fifth time or so. This happens on the .com and .ch page. It seems they are pushing out an update that hasn't reached all servers yet.

</comment></comment><comment><USER44> It's .co.uk .de .fr and others too.

<comment><USER43> it's also google.com

If you enter google.com/ncr anywhere around the world you get to the google.com Version, which often sports more features. By adding the ncr (no country redirect) you don't get forwarded to country specific sites.

</comment></comment><comment><USER45> Seems like it is fixed now. www.google.com

</comment><comment><USER46> They've fixed it. That was quick.

</comment><comment><USER47> Oh dear, that'll hurt...

</comment><comment><USER48> YEAH WTF, I hated google for half an hour there.</comment>


Scaling Early - <AUTHOR> http://www.slideshare.net/vishnu/scaling-early <comment><USER2> Great read :-) Hooray for another Perl fan as well as for the simplicity and power of BerkeleyDB/other similar dbs. Have you look at Tokyo Cabinet / Tokyo Tyrant ( <http://tokyocabinet.sourceforge.net/index.html> )

Also, what is the URL of the project/site/start-up you're scaling. I am interested very much in seeing the seeds of this effort.

<comment><USER3> Tokyo Cabinet looks intriguing. One major limitation of Berkeley DB is that it cannot reliably store its files on a network filesystem (NFS or CIFS or what have you) because of unreliable POSIX semantics. It's a tough problem, but any idea if Tokyo Cabinet tackles it?

<comment><USER2> Using NFS doesn't seem like a good idea for this situation - from the operations perspective, NFS in production is going to be _hell_ anyway.

A better way would be (since Tokyo Cabinet is thread safe) having a separate thread/process which receives messages (using a message queuing system) that update the database files (ala MySQL replications).

(Or you can separate out the db layer as a separate network service and partition the writes/reads to go to a specific several servers based on the key. Tokyo Cabinet even includes a memcached API compatible network layer for this - the Tokyo Tyrant).

</comment></comment></comment><comment><USER4> Pretty nice.

Hate to be a nitpicker but it's one of my pet peeves:

What the slides describe isn't scaling but performance tweaking. Scalability != performance.

A lot of people get that wrong, still annoys me, silly me... :D

<comment><USER5> Well, there's two ways to look at scalability:

\- The ability to handle lots of load at all, which comes down to a stability and fault-tolerance issue.

\- The performance of the system under load.

Both are pretty valid.

<comment><USER4> No, only the first is valid. :) Some people _believe_ it's #2 but it isn't, sorry. :D "performance of the system under load" is just that, performance.

See the Wikipedia article: <http://en.wikipedia.org/wiki/Scalability>

<comment><USER5> No, the latter does matter.

If a system's performance significantly degrades under load, it doesn't scale.

Quoting the wikipedia article: 'its ability to either handle growing amounts of work in a graceful manner, or to be readily enlarged.'

The first clause is performing well under load, hence the performance requirement.</comment></comment></comment></comment>


Visualising an Asynchronous Monad - <AUTHOR> http://roscidus.com/blog/blog/2014/10/27/visualising-an-asynchronous-monad/

<comment><USER2> nice demos, these feel a bit like playing with an oscilloscope

<comment><USER3> It goes beyond just demos... we can apply this to a vast number of OCaml Mirage libraries and speed things up quite a lot.

One of the nice things about OPAM (the OCaml package manager) is that it can recompile upstream library dependencies if some new optional features gets inserted downstream. In this case, Thomas has put together a "lwt.profiling" library that adds profiling hooks, and then every upstream Mirage library gets systematically recompiled against this new functionality.

This way we can have profiling-free production code, and then just "opam install mirage-profiling" and have a coffee while everything gets instrumented. This is going to be incredible as we hook up more complex distributed unikernel-based systems.

<comment><USER4> Interesting, would it make sense to store/convert the trace in the CTF format[0]? Would the viewers from LTTng[1] be useful in analyzing this trace data?

[0] [https://www.efficios.com/babeltrace](https://www.efficios.com/babeltrace) [1] [http://lttng.org/files/lttv- doc/user_guide/c42.html#mainwind...](http://lttng.org/files/lttv- doc/user_guide/c42.html#mainwindow)

<comment><USER5> Thanks for the links. I haven't used these tools - are they useful? Which features are most helpful? Certainly we'll want to convert to or from some Linux trace format to combine traces that involve Linux and Mirage machines.

<comment><USER4> I've tried LTTng once, but it was quite complicated to set up, and required patching the kernel. It seems they improved that, it only needs a kernel module so I might give it another try.

I also used 'perf timechart'[0] in the past, or rather I tried to, but the traces on any realistic workload generated SVG files so large that it was too slow to open in firefox/inkscape etc. Your approach seems to be more scalable as it doesn't generate one huge image/SVG but rather generates that zoomable view via Javascript on-the-fly, right?

[0] [http://web.archive.org/web/20130729151516/http://blog.fenrus...](http://web.archive.org/web/20130729151516/http://blog.fenrus.org/?p=5)

<comment><USER5> I've used bootchart and had the same problem. You really need to generate the display dynamically to make the zooming work. Some other things my viewer does that don't work with static SVG:

\- Show labels at a readable size, whatever the zoom.

\- Keep labels within the screen bounds where possible rather than letting them scroll off.

\- Fade out large-scale features (e.g. arrows spanning long time frames) when you get close, so they don't blot out everything in between.

\- Project y values through tanh so you can see everything at once, but focus on the bit you're interested in.

Of course, there are other opportunities for adding interaction too.</comment></comment></comment></comment></comment></comment>


Bezos Launches Earth Fund - <AUTHOR> https://www.instagram.com/p/B8rWKFnnQ5c/ <comment><USER2> Text of the post:

> _Today, I'm thrilled to announce I am launching the Bezos Earth Fund._ >

> _Climate change is the biggest threat to our planet. I want to work > alongside others both to amplify known ways and to explore new ways of > fighting the devastating impact of climate change on this planet we all > share. This global initiative will fund scientists, activists, NGOs — any > effort that offers a real possibility to help preserve and protect the > natural world. We can save Earth. It's going to take collective action from > big companies, small companies, nation states, global organizations, and > individuals._

> _I'm committing $10 billion to start and will begin issuing grants this > summer. Earth is the one thing we all have in common — let's protect it, > together._</comment>


New Startup for DJs: RequestNow. If interested, DM me for a reg code  - <AUTHOR> http://request-now.com/

<comment><USER2> Hey guys -- designer of the site and dashboard here. This is one of my first projects. Let me know if there's something with wrong with the visuals or functionality, or if there's something that can be improved.

I'm also planning to begin testing in various scenarios soon, including making the site responsive.

<comment><USER3> Have to say, good work on the design. Looking great.</comment></comment>


Show HN: React-UFO – A simple React hook to help you with data fetching - <AUTHOR> https://github.com/marcellomontemagno/react-ufo <comment><USER2> What's the motivation behind this hook? Does it do anything better than two of the biggest data fetching hooks swr ([https://github.com/zeit/swr](https://github.com/zeit/swr)) or react-query ([https://github.com/tannerlinsley/react- query](https://github.com/tannerlinsley/react-query))?

<comment><AUTHOR> Hi and thanks for your comment,

the goal of the library is the same as the libraries you mentioned.

I wouldn't say react-ufo does anything better at the moment, it offers a slightly different API which I hope would be a bit more flexible.

My ultimate goal would be to achieve a few simple primitive hooks with a single responsibility each rather than a single very smart hook doing many things.

This release is my first step towards this goal.

<comment><USER3> I just checked the 3, your library was really really easy and friendly to understand for newcomers than the others 2. Of course, the newcomer should learn well the core, but the question is if they feel the necessity when the API is abstracted way more friendly than others ¿?.

<comment><AUTHOR> I'm very happy you found the library to be simple and friendly</comment></comment></comment></comment>


Her son died. And then anti-vaxers attacked her - <AUTHOR> https://www.cnn.com/2019/03/19/health/anti-vax-harassment-eprise/ <comment><USER2> Parents of first graders who had been murdered at Sandy Hook have had to deal with the same thing: people claiming it's all fake and they were actors. It's awful. I simply can't fathom what's wrong with these people. Maybe there's a lot more mental illness in the United States than we care to admit? I really don't know.

</comment><comment><USER3>
      those whose children died of vaccine-preventable illnesses

But to this point in the article, both deaths mentioned were from _flu_. Unless death is from a specific strain included in that year's vaccine (generally, only 3 are), those illnesses were _not_ vaccine-preventable.</comment>


Vue.js vs. React: what happened in 2017 - <AUTHOR> http://pixeljets.com/blog/vue-js-vs-react-what-to-expect-in-2018/ <comment><USER2> I'm the founder writing code (but not the only technical person) for my three person startup. In October I started migrating our MVP from server side templates to Vue, given we had direction and traction on a product line that justified the time investment. It's turned out to be a great decision (although likely one that could have been made with react as the choice as well).

My "success story" is how Vue helped me to massively improve our user experience in low bandwidth or high latency environments. Our startup is trying to reinvent the ways that companies approach their review process, and one of the things we do is run a workshop on delivering actionable feedback during the review cycle. We have users log into our app during the workshop, and this often happens in conference rooms over congested WiFi. Our MVP used turbolinks, so it felt generally "snappy" during normal use, but could feel sluggish if moderate latency was introduced (such as a congested router).

Since I completed the rewrite to Vue (which took only about two weeks because of how simple it was to pick up, even for a non frontend person like myself), we've had multiple launches that both would have likely bombed had we not done the work to move to something less dependent on a tradition client -> server -> client response cycle to render the next "page".

Either way, I've become an advocate for vue. I love single file components, love the documentation, and am very happy with the community libraries. All in all, I'm very bullish for Vue in 2018 as a happy new users.

<comment><USER3> What is a turbolink?

<comment><USER2> Yes, sorry for just tossing this one in there. Our product is build on top of rails 5.x, and rails has support for turbolinks. They make your server-side rendered application 'Feel' more SPA, by only refreshing the parts of the page that have actually changed upon server response.

It still requires a massive payload to be sent across the wire, as well as a full render on the server, so it's not the "king of efficiency", but it definitely improves the end user experience in many ways.

In my case, I wanted an even snappier experience, where a user clicking on a button would trigger an immediate transition, with the "saving" happening behind the scenes. Before, on a slow or bogged down connection, you could see page transitions take second(s), which felt like an eternity when you had to go through our 50+ screens during our workshop. Now, with heavier backgrounding, those transitions are instantaneous, and the end-user doesn't need to wait but a millisecond (draw time) for the next page.

<comment><USER4> When would you recommend using turbo links over Vue? Or, conversely, would you recommend people not even bother with turbolinks?

I'm learning Rails and haven't gotten to that stuff yet, but I'm wondering whether I should even waste my time learning them if something like Vue is just superior and just as easy to implement.

<comment><USER5> You can have both at the same time. If you want to build a SPA, go for Vue only. Build if you want to have a more traditional application and only use Vue for some views, it will work with turbolinks, you just have to use a gem to help you with the caching (turbolinks cachês the body tag to speed up the back button, and the gem clears the Vue app before the caching happens making it idempotent).

Turbolinks is amazing.

</comment></comment></comment></comment></comment><comment><USER6> Having used both React (with Typescript and Redux) and the latest Vue (with es6 and Vuex) I prefer React, and I don't even use React Native.

Vue is better for onboarding people more in tune with "classic" html + js development; and that's where the advantages end as far as I'm concerned. This might be a big win for some people.

The way I reason about it is that React is simple, Vue is easy. When you take into account Vue's templating language, React's api is small in comparison. A beginner won't know how to do some common use cases reading React's docs, when Vue might have a something built-in in its templating language (e.g. slots, or the component tag for dynamic components).

Slightly annoyed with Vuex too because of its slightly leaky abstraction. You have to remember to setup the properties you mutate so the reactivity will detect a change; and also remember not use array indexes arrays cause it can't detect changes otherwise. The array index thing will be fixed in the next version when they drop support for some older IE. Using Typescript would probably help a bit here, although Typescript being useless for checking Vue templates really feels like a huge chunk of its value is wasted.

Typescript is not currently available in the official blessed boilerplate which greatly affects its uptake in the Vue community.

Anyway, if you already know React, there is zero advantage in investing time in Vue.

<comment><USER7> I have already moved to using React for my larger projects and Mithril for my smaller ones instead of Vue because of the lack of typescript support.

That and when you add JSX to mithril, the api just feels so simple and i rarely find myself checking the docs for something.

<comment><USER8> Glad to see Mithril mentioned. I like it better than React when comparing the APIs, It just seems simpler. But React obviously has the mind share. I'd love to see Mithril gain momentum.

I especially like the fact that I can easily include it as a script, like Vue, and don't have to have a build chain. That really decreases complexity for smaller projects.

<comment><USER9> FWIW, you can absolutely use React as just a pair of script tags - see the "React Single-File Example" template [0].

It's certainly common to use React in a larger application that uses a build chain, and that's the recommended approach, but it's not required.

[0] [https://raw.githubusercontent.com/reactjs/reactjs.org/master...](https://raw.githubusercontent.com/reactjs/reactjs.org/master/static/html/single- file-example.html)

</comment></comment></comment></comment><comment><USER10> I really don't get the love around vue... I always read the glowing sentiment and go, "Ok, I'm missing something, let me go back to the vue.js docs and see what's good"

Things that are a deal breaker for me:

Template language... You can call it 'separation of concerns' all you want, but just let me generate templates using the language I already know, JSX is great

State management... I cut my teeth with Ember professionally for a few years, and really loved it up until I built a data intensive app. Having state spread across different controllers is great when you have many different routes and pages, but if one page turns in to a photoshop like app, controllers make a terrible state management tool. It doesn't seem overly complicated to me to use redux along with react-redux's connect function to connect regular functions returning JSX to your state object. Looking at Vue.js, it seems like I need to learn Ember-lite + Angular (custom directives).

<comment><USER11> "Template language... You can call it 'separation of concerns' all you want, but just let me generate templates using the language I already know, JSX is great"

Not everyone knows JSX, so while that argument applies to you, it doesn't apply in general.

<comment><USER12> They mean javascript; jsx is a very small amount of new syntax and is embedded in normal javascript. Learning a completely separate template language with all of its own constructs for conditionals, iteration, etc. is significantly more work.

<comment><USER13> There's not any more to learn vs html than jsx. It's like 5 relevant constructs that all follow the same form, and the colon. Takes 20 minutes to have it down pat.

v-if is actually a big reason I prefer Vue. Ternary operators in JSX are pretty ugly. The other is that Vuex just feels so perfectly integrated. I've never felt Redux blends in particularly cleanly, though I certainly don't judge people that do prefer it.

<comment><USER14> Ternary operators in JSX are _valid javascript expressions_. As is anything that goes into {}

All of the following is neither Javascript nor HTML:

        v-for="x in list"
        v-if="conditional"
        v-on:click="function"
        v-bind:key="something.id"

etc. etc. etc.

<comment><USER13> I'm aware of that bit, I just think they're an ugly piece of control flow inside JSX, and they're also not a particularly versatile piece of control flow.

Especially for the else-if case - you end up with repetitive conditionals to replicate that.

</comment></comment></comment></comment></comment></comment><comment> git-pull I think both of them are awesome and have great communities. Especially seeing as webpack has stabilized.

If you're a startup, it's tempting for many founders to go in headfirst with a Vue or React. In my opinion, it's rarely necessary, and in the end a lot of the stuff has to be thrown out if underlying foundations change. I see it as web development's version of premature optimization.

On the other hand, when I kept all my work in django templates, erb, blade, etc. and just script JS by hand, there's less of a penalty when the data flow changes. When I was using a JS framework, the refactoring was so painful I seriously considered throwing the whole thing out and starting from scratch. Heh, I'd have been better off not buying in so early on.

As a stop-gap, I'm using pjax. ([https://github.com/defunkt/jquery- pjax](https://github.com/defunkt/jquery-pjax))

My plan is after stuff is solid and in production and the product/service/business is moving forward, taking an incremental approach to moving to vue/react/etc.

P.S. kudos to react for removing the patent stuff in v16.

<comment><USER15> I disagree. Coming from python, my first foray into web frontend was a SPA for mobile. Both my coworkers convinced me to go right to react + redux (after some bumbling first with more "traditional" ajax). After a few weeks of utter bewilderment, I have to say I really enjoy this stack. Some say it's overkill, but the framework really helps me organize things into cognitive chunks, and makes debugging so much easier.

Ever had a class in school which you hated at the time because it felt super hard, but loved in hindsight because of how much you learned? same sort of vibe. Fight through the pain.

</comment></comment><comment><USER16> I write ClojureScript

A good indicator of if a technology is going to explode, is if emerging language users are excited about it, as good ideas tend to trickle down from the more advanced/research-y ecosystems which aren't as constrained by legacy. So for example React was built by a user of OCaml.

ClojureScript early adopted React.js through the Om project in 2013 and there is a growing number of competing React adapters, Clojure rewrites etc. I first saw virtual-dom in ClojureScript in 2012 (eight months before React came out).

Number of ClojureScript projects with traction that are based on vue? Zero, that I am aware of.

<comment><USER17> Speaking as someone who writes ClojureScript themselves, ClojureScript is definitely in the category of technologies that show no sign of explosion whatsoever.

React and Vue are both great technologies, but with Teact the template syntax is optional, and no lisp user wants another syntax...

<comment><USER18> I picked up ClojureScript at the end of 2013. I was a C++ developer then in a small firm and was tasked to write a web frontend. Outsourcing that project had failed before (2 times iirc), so my boss bet on me to do it. I knew HTML and had written probably < 1000 lines of Javascript code in my life before. Anyway, I needed to write an interactive single page app (basically it was a visualization of simulation results), so I needed Javascript. But it was so frustrating to write Javascript (also, tooling was mediocre back then or I didn't know it). So at the same time, I stumbled over ClojureScript and had a try (I new Scheme before and was especially outraged by JS syntax quirks, so I hoped S-expressions would rescue me). With ClojureScript in 2013 I had a module system that handled dependencies, an emerging library ecosystem that had what I needed for that specific case, I was pretty happy. This was more advanced than what I got with JS (I might not have found the viable options for such stuff with JS, but at least information on them wasn't widely found then).

Last year I had another look at ClojureScript and it felt like a ghost town. This saddens me. There are a few inspiring talks now and then, but nothing I found worth using in a project.

<comment><USER19> I'm really surprised by this assessment. I've been working with ClojureScript for the past three years, and I find the ecosystem is very vibrant. ClojureScript itself has been evolving rapidly. Lately there's been a lot of focus on Js ecosystem integration allowing you to do things such as consuming NPM modules directly. The compiler itself is very efficient doing things like dead code elimination and minification out of the box.

In terms of libraries, I haven't found anything that comes close to reagent/re-frame for building complex UIs.

Meanwhile, hot code reloading with Figwheel works beautifully, and you have a REPL for running code in the browser straight from the editor.

My team is very happy with the results of building ClojureScript based applications. I'd be curious to hear why you feel that there's nothing that's worth putting in a project.

</comment></comment></comment></comment><comment><USER20> What I find most interesting in these results is the satisfaction percentage i.e. (Used it before and would use again) / (Used it before and would use again + Used before and would not use again).

\- In 2016:

React - 91% satisfaction

Vue - 91% satisfaction

Angular 2 - 65% satisfaction

No framework - 65% satisfaction

Ember - 50% satisfaction

Angular - 40% satisfaction

Backbone - 31% satisfaction

\- In 2017:

React - 93% satisfaction

Vue - 91% satisfaction

Angular 2 - 66% satisfaction

No framework - 65% satisfaction

Aurelia - 56% satisfaction

Polymer - 53% satisfaction

Ember - 41% satisfaction

Angular - 33% satisfaction

Backbone - 23% satisfaction

It's especially interesting that many of the frameworks have a lower satisfaction percentage than using "no framework". Of course this could be largely attributed to who is using no framework. I have encountered a minority of developers (usually backend devs) who think front-end frameworks are nonsense and prefer to just write a bunch of jQuery. Also, if you are working on Wordpress sites, then frameworks are often not necessary.

I've written production code in some of these frameworks (Backbone, Angular 1, Ember, and React) and I would have to say these results are more or less consistent with my experience. I love React and don't feel the need to try anything else.

<comment><USER21> Angular 2 I would like to never use again. It's caused far more problems than it's solved. It requires deep knowledge to build large applications or else it will suffer performance problems.

</comment></comment><comment><USER3> OP predicts with absolute certainty vue "will become dominant" next year many times.

Also OP has skin in the game to justify to his team that vue was the correct choice.

Nice as an opinion piece but too many red flags to be considered fair and unbiased.

<comment><USER22> Huh? OP said the power of the React ecosystem and change in license will keep it on top in 2018 and that if they were starting from scratch they probably would have used React for their website.

<comment><USER3> > next year would be the year of Vue.js success

> Vue.js will be dominating only in the web

OP did not say they would've used React given the choice, they said it would have made _some_ things simpler

Your reading and subtle re-wording of OPs comments misrepresent what OP actually says.

> our stack would be simpler if we chose React.js for the web. We definitely > do not regret choosing Vue.js for web, read more in my previous post why we > did that, my expectations on Vue.js web domination are becoming the reality

<comment><USER22> > Synergy, my friends, is the key to React upcoming monopoly.

</comment></comment></comment></comment><comment><USER14> The simple answer is in reading the chart. Look at "I've USED it before, and WOULD use it again".

React isn't just popular. It also consistently provides good developer experience. You have to compete not only against React's popularity, but also against _that_.

React:

\- Used it, would use again: 14k

\- Used it, would _not_ use it again: 1k (7%)

Vue:

\- Used it, would use again: 4.6k

\- Used it, would _not_ use it again: 454 (9.8%)

That ~3% difference in people who tried it, and didn't like it could be the difference between make it and break it when coming up against React. "I've heard about it, and I'm _not_ interested" is another important metric.

\---

Personal take:

Things I personally don't like in Vue:

\- String-based programming so prevalent these days.

JSX is a thin layer on top of regular Javascript/Typescript. Where as Vue is often this:

Really?

\- It breaks Javascript and how it works:

        var app5 = new Vue({
          el: '#app-5',
          data: {
            message: 'Hello Vue.js!'
          },
          methods: {
            reverseMessage: function () {
              this.message = this.message.split('').reverse().join('')
            }
          }
        })

There's no chance in hell that `this.message` exists on app5. And yet, there it is. And then data becomes $data and a lot of other weird stuff such as computed properties being also hoisted up to the top-level object etc. etc. etc.

<comment><USER23> It's not really fair to make a comparison between react with JSX and vue without webpack. In practice you use webpack for making components with separated js/html/css, so Vue ends up looking a lot better than the above. That's actually the big draw for me, organization into single file components which can be parsed as simple html. The js component structure is just another piece of that. You're passing vue a template for creating components in an organized/standard way. You can define your own render function if you want the freedom, but you start out with something clean and well organized.

Vue is definitely doing things behind the scenes, but it's nothing all that complicated.

I wouldn't say it's hoisting. It uses the data function to create component instance objects which it then adds the template's computed props/methods/watchers etc on to, and links with the life cycle hooks.

If you created the component object yourself instead of a definition for it, there would be less magic going on for sure, but things would be much less organized.

(Minor: I don't use vue without webpack, but I assume data should be a function which returns a data instance, so what you've written won't work in Vue unless it's different for the top level component?)

<comment><USER23> Follow up, I was on my phone before, this is what working with Vue typically looks like:

        <template>

            <button v-on:click="reverseMessage">
            </button>
        </template>

The thing to note is that there are other objects which can be added to the component definition which add a lot of utility and keeps things standardized: created, mounted, computed, watch, etc. There's a bit of magic behind the scenes to make it work, but it's worth it for the standardization/organization in my opinion.

</comment></comment></comment><comment><USER24> React IMHO is good enough that I don't want to change framework/basic frontend technology again.

<comment><USER25> Agreed, it'll take another paradigm shift to switch to something else.

<comment><USER26> Not necessarily.. I wonder had react not been backed by FB, it certainly would have had a beating in its popularity given lighter and arguably faster alternatives like vue. Remember, performance was one of the main argument React had when compare to Angular. Now since performance is no more a differentiating factor, developers might look into other aspects like better ROI in short and long term..

<comment><USER27> Just as one anecdotal data point, we didn't choose React for its performance when evaluating tools for our recent projects. (React can still be orders of magnitude slower than localised direct DOM updates on demand, after all, and in cases where performance really matters that might still be what you have to fall back on.)

The game-changer with React is that it presents a declarative way to specify your DOM content, which in turn can significantly reduce the number of cases you have to consider in your rendering and state management code, and it's _fast enough_ to make that work in a lot of real world situations.

<comment><USER26> Could be for you, but have you wondered if React was say way slower than Angular and heavier, the adoption would have been much much lower?. Agreed, the model that React brought is superior but the catalyst was performance. They even highlighted performance as the main selling point with introducing the virtual dom, where the computation (dom querying) happens not in the dom but in the javascript, which is arguably faster and only differential updates are applied to the actual dom.

In my friend circle everyone wanted/were using Angular.js but it was too heavy for actual production use while react showed much better performance in the benchmarks (almost closer to Dom).

<comment><USER27> React and Angular are solutions to different problems. I don't think React would have succeeded without adequate performance, but I also don't think it is why React has been successful or the main reason it has displaced some of Angular's "market share"; being fast enough is necessary but not sufficient to do its job.

</comment></comment></comment></comment></comment></comment><comment><USER28> Do Vue templates play nicely with Typescript? That's something I love about JSX -- "it's just JavaScript" is an incredibly sublime feature. I know you can use JSX with Vue but I'm skeptical since it's a first-order feature with React.

<comment><USER29> Since October (I think) vue single file components work flawlessly with typescript. Can't speak for jsx though.

<comment><USER30> It works in the


Minimum Times Tend to Mislead When Benchmarking - <AUTHOR> https://tratt.net/laurie/blog/entries/minimum_times_tend_to_mislead_when_benchmarking.html <comment> radford-neal The author seems to have two statistical misconceptions (which don't, however, detract from his main points).

He says, "it's absolutely vital to report something about the distribution as a whole. In general, confidence intervals are a good technique for doing this".

But confidence intervals are a way of exhibiting uncertainty in a the estimate of a parameter (such as the mean), _not_ a way of describing a distribution. Hopefully, what he actually meant is that giving the 5% and 95% (for example) _quantiles_ of the distribution would be useful. The 90% confidence interval for the mean would be much smaller than the range from 5% to 95% quantiles, and would collapse to a point in the limit as you did more repetitions - <USER2> at all the desired behaviour.

Also, I disagree that it's always useful to report something about the whole distribution rather than just the mean. If the benchmark is for a small part of the program, the time will be combined with many other parts (perhaps repetitions of this part), with variation in a single part averaged out.

In this regard, he makes another mistake in footnote [4]: "I've sometimes heard it said that the central limit theorem saves us when benchmarking. In my experience, this hope is based on an over simplification of the theorem, which is that if you run a program enough times any randomness (including noise) will converge towards a normal distribution. That is only true if the various random variables are close to being independent and identically distributed."

This again seems to confuse the distribution data with the distribution of an estimate for the mean. Only the latter is subject to the central limit theorem. The distribution of the run times will not approach a normal distribution regardless of how many times you run the program (unless it's normal to start with, of course), even if the run times are independent and identically distributed. This should be obvious to anyone who hasn't heard of the central limit theorem. It should also be obvious to those who have heard it and understood it.

<comment><USER3> I think you missed his point.

If 0.5% of requests take 100x the average time you want that to be as obvious as possible. With quintiles those extreme outliers are easy to miss. With confidence interval error bars the outliers become more obvious.

Further, running the test 1 Billion times would not reduce those error bars because that unusual event would occur ~5 million times.

<comment> radford-neal If you want to know about the 99.5% quantile, then of course you have to look at that, not the 95% quantile. (Note that "quintiles" refers to the 20%, 40%, 60%, and 80% quantiles,but you can look at whatever quantile you like.)

Your comment about "confidence interval error bars" revealing outliers makes no sense. I think you still don't understand that a confidence interval (for some parameter estimate, maybe the mean) is not a description of the distribution of the data, but rather is about the distribution of an estimate obtained from the data - _not at all_ the same thing.

Running a test 1 billion times certainly _would_ reduce the confidence interval for the mean, even if 5 million of those are 100x outliers.

<comment><USER3> I think I figured out the confusion. Benchmarking is a comparison and each test is a fixed sample size. A test might collect 100 or 100,000 samples by running the task repeatedly, but the data is not aggregated across multiple tests as the data is generally not saved.

So, running the benchmark test again keep's n the same when calculating the confidence interval. This means error bars are showing the calculated mean and standard * arbitrary scaling factor all lined up on an easy to read graph.

PS: A lot of statistical tools are poor fits as the data is rarely a normal distribution. But, rigger is not the goal here.

<comment> radford-neal You're still not getting it. Confidence intervals are _not_ what you want to look at. Neither are error bars. They would be relevant if you wanted to know the mean performance, and wondered how accurately you had estimated this mean. But as far as I can tell, that's what you want to know.

<comment><USER3> It's not _how accurately you had estimated this mean_ , but how representative the mean is for what's going on.

If you have a better idea feel free to suggest it. Bonus points if it's easy to calculate and display.

<comment> radford-neal I'm not sure I understand what you're suggesting, but maybe you're thinking that you will run the benchmark for some number of repetitions, and then at some later time run it again, for that number of repetitions, and so forth for some number of times?

If nothing changes from one time to another, you might as well combine all the results, and display the overall mean, or a histogram, or whatever. If you think that something may have changed from one time to another (eg, ambient temperature, which affects what clock frequency the processor may have been throttled down to), then you've got a complicated problem, if you're really trying to get to the bottom of the situation.

But once again, if you're looking at how the sets of runs at different times differ, confidence intervals _do not_ indicate the spread of the data. Perhaps you're computing quantiles instead, which would be sensible, but then incorrectly referring to them as "confidence intervals", when they're not?

<comment><USER3> > If nothing changes

Something changes, but not necessarily something important for every code path.

Test could be to run optimization A x 1,000 then optimization B x 1,000.

So now I Run the test, edit optimization B, and just run the full test again. Running A again might seem wasteful, but what if something else where to affect A and B, if I just test B then it's not obvious something other than my code changed. Perhaps as you say the heat sink is failing and my CPU is now down clocking.

The goal is to have a simple test that shows if I am improving things while also isolating that I am measuring what I think I am measuring. That's not to say I will actually run several long tests repeatedly, but I may re run a test expecting similar results.

Anyway, all of the above has nothing to do with why as want a confidence interval. It's useful for getting a ballpark feeling of the underlying data.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> I'm pretty sure I was part of the "resurgence in people advocating for the use of the minimum time recently," and I'll tell you right now that I did not have a "benchmark" that varied by 7x from run to run in mind.

"Benchmarks with random performance tend to mislead"

Both of these "benchmarks" have exactly the wrong amount of randomness. A little more, and you could get a useful mean out of the results.

When I advocate for the use of minimum time in benchmarking, the scenario in mind is running periodic regression testing on a set of known good benchmarks that don't have intrinsic randomness (or it is averaged out) and yet vary by 0-10% as a result of actual noise. In these cases, it is very useful to have a single number (and if that single number surprises you, then by all means take a look at the distribution).

Neither of the examples here show the impact of actual system or measurement noise, only random performance.

<comment><USER4> I went ahead and modified the author's second benchmark (used to compare linear vs binary search) to iterate over various choices over words, rather than just searching for one word 10000 times (which may be the first on one run and the last on another).

Linear search: 0.92 +- less than 0.0001 s

Binary search: 0.15 s (also small variance, but didn't compute it)

We can talk as long as we want about mean vs minimum vs histogram vs etc, but let's go back to the beginning: you get what you measure.

</comment></comment><comment><USER5> I kinda think this article proves too much; similar arguments could be made against any statistical simplification of performance. It's not that it's "wrong", it's that it's "too right".

I mostly advocate for the min in the specific context of benchmarking to improve the performance of a specific piece of code, on the theory that it's the best measure to cut away all the random bits you can't control with changes to the algorithm under test. If you've got a 5x variance in performance, and you make a 10% improvement in your algorithm, min seems like one of the better ways to figure that out, but you've still got a fundamental problem that that amount of non-determinism is just too much noise to see through via any mechanism very reliably, without a _lot_ of runs.

In terms of measuring "real" performance, yeah, min isn't a very good choice, being equivalent to just measuring the 0%th percentile, which anyone doing real measuring knows isn't _all_ that useful in the "real world". But when I'm _optimizing_ , I use "min". I also, as others have said, try to just eliminate any variance as high as what is discussed in the article because that's difficult-to-impossible to work with no matter how you slice it. (You can in principle always do "enough runs" to get through any random variance, but that doesn't mean you're willing to wait for a 1000 runs of your minute-long computation just to see if this particular improvement was statistically- significant, and then do it another fifty times.)

</comment><comment><USER6> I don't know. When I see that my benchmark has nondeterministic performance, I consider that as a bug and just remove the nondeterminism. For example, if Rust's hashmaps have a random seed, I'd find a way to initialize the hashmap with the same seed every time I run my benchmark. But I guess you can model the performance as a random variable instead, in which case you'll be benchmarking the Hashmap and not your code.

<comment><USER7> Ah but that wouldn't be representative benchmarking. Consider the later example about finding a random word on the large list -- if you fix the random seed and that turns out to search for 'aardvark' then the linear search will perform well, but it won't be a good measure of how fast the program is in more general conditions.

Your idea works for comparing machines though.</comment></comment>


The History of Smallpox - <AUTHOR> https://rootsofprogress.org/smallpox-and-vaccines <comment><USER2> Not mentioned in the article: _In the 20th century alone, experts estimate, it took up to a half billion lives, more than all the wars and epidemics put together._ [1]

Think about that: it killed more than WWI and WWII and all other 20th century wars _combined_.

[1] [https://www.nytimes.com/1999/06/15/science/smallpox-the- once...](https://www.nytimes.com/1999/06/15/science/smallpox-the-once-and- future-scourge.html)

<comment><USER3> Literally the first paragraph of the article:

> Smallpox was one of the worst diseases in human history. It killed an > estimated 300 million people or more in the 20th century alone; only > tuberculosis and malaria have been more deadly. Its victims were often > children, even infants.

<comment><USER2> It's the contrast to wars, which is not mentioned, that I find most interesting.

<comment><USER3> I see. That makes sense then.</comment></comment></comment></comment>


Bender for president - hackers rigged a voting system - <AUTHOR> http://ccinsider.comedycentral.com/2012/03/02/futuramas-bender-elected-to-dc-schoolboard/

<comment><USER2> Better to link to the original news article - [http://gizmodo.com/5889838/hacked-dc-school- board-e+voting-e...](http://gizmodo.com/5889838/hacked-dc-school- board-e+voting-elects-bender-president) \- or even the actual paper (from Feb. 2012) at <https://jhalderm.com/pub/papers/dcvoting-fc12.pdf> .</comment>


CAN Hacking: The In-vehicle Network - <AUTHOR> http://hackaday.com/2013/10/22/can-hacking-the-in-vehicle-network/

<comment><USER2> Two words one number. "Quantified 89 FJ"</comment>


Show HN: Assist – Instant terminal sharing from anywhere - <AUTHOR> https://assist.app/hn <comment><USER2> Is it possible to prevent the assister from actually executing the commands on your system?

I could use this in a lot more places if the assister could see my screen/output and propose commands for me to run, but I was still in control of what commands are executed. (i.e. if I could safely use this as part of the customer support process for my customers, I would be extremely willing to pay for it).

<comment><AUTHOR> Great idea! "assist -r" should trigger a read-only mode.

We will add this feature soon - please send us an email (email@example.com) if you'd like to be notified when it's ready. Thanks!

<comment><USER3> You may also want to consider allowing the user to specify whether the default is read-only mode or read/write. In similar applications such as [http://join.me](http://join.me), the default behavior is similar to a read- only mode.

</comment></comment></comment><comment><USER4> If you're working on the same machine (say via SSH) you can also share a session with tmux.

[https://www.hamvocke.com/blog/remote-pair-programming- with-t...](https://www.hamvocke.com/blog/remote-pair-programming-with-tmux/)

</comment><comment><USER5> Why would I pay money for a thing that already exists and is free?

[https://tmate.io](https://tmate.io)

<comment><USER5> And your site doesn't show who you are, where you're based. Identification Nr, nothing.

Not very trustworthy

<comment><AUTHOR> tmate differences are covered here: [https://news.ycombinator.com/item?id=21264797](https://news.ycombinator.com/item?id=21264797)

You're right about the ID, we'll add that in :-)

</comment></comment></comment><comment><USER6> It's perhaps worth noting that the with the venerable GNU Screen, you can more or less achieve this by enabling multiuser mode and then doing screen -x.

<comment><AUTHOR> While that works well on the same network, Assist uses a publicly accessible tunnel to allow connections from the internet, regardless of wherever you are / local network configuration.

</comment></comment><comment><USER7> Honest question:

What's the difference with tmate? I haven't seen a reference to it in the site and it looks pretty similar in purpose and usage from a quick look.

<comment><USER8> tmate is pretty similar but there are a few things about it architecturally that are different I think. The person connecting to you connects through a tmux server on the tunneling host rather than directly to your tmux session. This means that the tunneling server can see and modify everything sent over tmate. If the tunneling server is untrusted or compromised, an attacker would be able to run commands on your machine. Unfortunately, to make things worse, the ssh key fingerprint of the tunneling server is not bundled with tmate, so during the first connection to any tunnel an attacker performing a man-in-the- middle can spoof the server and use the fact that the server is trusted to run arbitrary commands on your machine. The attacker can either man-in-the-middle the person running tmate or the person connecting to the tmate user to perform this attack.

This more complex architecture is likely why tmate is using libssh even though libssh recently had a very serious authentication bypass vulnerability (CVE-2018-10933). These architectural choices may provide benefit in certain circumstances, but we thought were unnecessary just to share a shell.

Assist has a simpler architecture and is built on top of unmodified Screen and OpenSSH (we use the installed binaries on your machine). The tunneling servers are designed to be completely untrusted, and the command you paste to the assistant contains all the information necessary to prevent a man-in-the- middle attack from seeing or modifying the session. We hope to add more features in the future and felt that starting with a simpler architecture would help with that.

<comment><USER7> Thanks for the comprehensive reply. I understand the difference now.

</comment></comment></comment><comment><USER9> There isn't a link to terms of the subscription, at least I couldn't find one on mobile. Is the single user license for a single host or a single assister? Do both users need a license? Is it per device or per person?

<comment><AUTHOR> Only the user typing "assist" needs to have a subscription and they can use it across all of their machines on a single license.

I'll clarify this on the site - thanks!

</comment></comment><comment><USER10> Do you allow outright all and any commands in the terminal, sudo and all?

Does the data go through your pipes at all or strictly between assist clients?

<comment><AUTHOR> Great questions - these are covered in our FAQ (admittedly buried at the bottom of the home page): [https://assist.app/faq.html](https://assist.app/faq.html)

Can the assist servers access my computer?

> No, the assist servers are only used for tunneling the connection over the > internet. All data exchanged between the assister and assistee is encrypted > over SSH. The assist command that is given to the assistee contains all keys > necessary to setup a secure connection over SSH. This setup is designed such > that a compromised server with the ability to passively monitor or actively > modify traffic cannot see or interact with user sessions.

Does allowing someone to assist me give them control over my computer?

> Yes, you should only allow use assist with people if you can trust with your > computer. A person logged into your assist session can potentially access > any of your files or install malicious software. Allowing someone to assist > you is similar to physically allowing someone access to your computer. > Assist is meant to be used in situations where you would be okay letting > someone use your computer while you are not around.

<comment><USER11> This looks great! I just wish I didn't have a use for it

</comment></comment></comment><comment><USER12> $5/month/user seems high when you're not providing any hosting. Also you need at least $10/month to actually do anything which again seems high.

This type of software should really be something like $30-$60/license and $10-$20 upgrade fee for latest version.

<comment><AUTHOR> Sorry for the lack of clarity - only the user typing "assist" needs to have a subscription. We host publicly accessible tunnels so that this works wherever you are.

I'll clarify the subscription details on the site - thanks!</comment></comment>


Ask HN: Meeting with an investor in few hours, what is your advice HNers? - <AUTHOR>

Hello,
Please excuse me for creating this temporary account to place the question, I just wouldn't want to be linked to this question.
So, now my question I need advice. In few hours I am meeting with a guy from a hedge fund, he is interested to investing as angel or with the hedge fund, as I had a meeting with him already and he wants in. My question is a bit complex one, as it involves two issues.
The first it's an issue with my supposed to be future co-founder. I expected that he'd manage finding the investor or at least setting up meeting with prospectives. Instead I've done that (the 2nd meeting tomorrow with an investor who is really interested) and please note I'm also the technical founder. Also, I had the initial idea and identified the opportunity, although this guy seems to have a talent at presenting others people ideas as his own. Please note he is not technical at all, but I accepted that, assumingly he would do all the business stuff, instead he dissapointed me, as he really didn't do much the last 1.5 months as I was insisting we go full time on this as soon as possible. At this point, I am serious about finding a way to avoid getting involved with guy. The only thing I am attached with him is that he knows big part of the core ideas (I know the execution pitch so please save me from one. I do have a significant code base I am contributing, and with the meaning of core ideas I mean validated ideas).
So, with this small bits of information, what would you do HNers concerning with a prospective co-founder he doesn't seem honest and failed your expectations? I even have some e-mails with significant questions he left unanaswered. So, imagine that.
So, concering the valuation now. Like I said, I considered my prospective co-founder's significant contribution, in the initial phase, to finding prospective investors as he made believe he would be able to do that in short time. Instead, he delayed me and I am sure he'd delayed me more hadn't I do anything to find an investor myself. So, he gives me the feeling that he is not honest. Therefore, even in a valuation at this level if the investor would take up to 20-30% at a valuation of 500k, and assuming any kind of contribution (of the non-technical co-founder) begin after the software is rolled out (estimated after 5-6 months), how is it reasonable to excuse his percentage, which I was willing to be equal, but I am sure the investor will find awkward.
So, at this point I am considering changing the location of the meeting with the investor and go to it alone, telling him it was cancelled.
What are your thoughts HNers? <comment><USER2> I wouldn't partner with him. I am assuming you are already incorporated, is he a partner or not? If not then I don't see a reason to not cut ties.

If you do decide to do business with him, vest his shares.

Good luck with your meeting :)

<comment><AUTHOR> I'm already incorporated yes. But hopefully he is not partner.

thanks</comment></comment>


Show HN: Neatter App Built for Berlin Hackday - <AUTHOR> http://www.neatter.com/

<comment><AUTHOR> I thought I'd share what the two of us built in 24 hours. Here are tools I used: \- Twitter Bootstrap \- Product page for iPhone template ([https://creativemarket.com/AlesNesetril/904-Product-page- for...](https://creativemarket.com/AlesNesetril/904-Product-page-for-iPhone- app-\(HTML\))) \- Typekit to make the fonts stand out a little \- And the lovely Symbolset

These tools were invaluable to actually get it all out there in that short amount of time.</comment>


Oldest known case of forensic entomology from 1247 - <AUTHOR> https://en.wikipedia.org/wiki/Forensic_entomology#Song_Ci <comment><AUTHOR> "In a murder case of 1235, a villager was stabbed to death and authorities determined that his wounds were inflicted by a sickle; this was a tool used for cutting rice at harvest time, a fact which led them to suspect a fellow peasant worker was involved. The local magistrate had the villagers assemble in the town square where they would temporarily relinquish their sickles. Within minutes, a mass of blow flies gathered around one sickle and none other, attracted to the scent of traces of blood unseen by the naked eye. It became apparent to all that the owner of that sickle was the culprit, the latter pleading for mercy as he was detained by authorities."</comment>


Composable, declarative data structures for building complex visualizations - <AUTHOR> http://ioam.github.io/holoviews/

<comment><USER2> This is very cool...I hate to say that I sometimes judge a library (at first, anyway) on the quality and depth of the documentation.

However, I have one ignorant-sounding question to ask: is this library meant for general, run-of-the-mill visualizations, e.g. bar charts and scatter plots, or is it intended for visualizations for a specific domain (of which I'm not qualified for)...the mandelbrot example in the intro is cool ([http://ioam.github.io/holoviews/index.html](http://ioam.github.io/holoviews/index.html)) but I can't tell if it's meant to be first-impression-eye-candy or it covers a visualization use-case that I've never had (which is very possible).

I'm sold to the idea of this being a composable and declarative system for visualizations, even if I what I have in mind are simple visualizations...because declarative, simple compositions can easily be made into much deeper visualizations...basically, I'd be sold to anything that makes making small-multiple-charts as easy as ggplot2 does. The docs make use of a GridSpace layout, but they all involve bespoke designs and animations so that it's hard to see the core code needed to form the layout...

So yes, I know having prosaic visualization examples can sometimes fail to excite people, but I think there are a lot of programmers who are excited enough by a good framework regardless of the visualizations :)

<comment><USER3> > is this library meant for general, run-of-the-mill visualizations, e.g. bar > charts and scatter plots, or is it intended for visualizations for a > specific domain

I'd say it's for a specific use-case: exploring problem domains and data where you need multiple related visualizations. I don't think it's trying to be a layout engine, so much as produce very good looking analysis charts. I could see myself using it for image analysis and exploring time-series data, and would have killed for a tool like this when I was in the lab.

</comment></comment><comment><USER4> Awesome, thanks for sharing. Out of curiosity, how are the embedded widgets being handled? (something like [https://jakevdp.github.io/blog/2013/12/05/static- interactive...](https://jakevdp.github.io/blog/2013/12/05/static-interactive- widgets/)) ?</comment>


Entrepreneurship to get out of debt - <AUTHOR>

Hi HN,
I've been very silly and managed to rack up around £16,000 worth of debt.
I'm a reasonably well paid developer mainly working in Java web and enterprise stuff at an ecommerce consultancy.
I've always wanted to start a business online as a side to my job (the bingo card creator story amazes me!) in order to earn extra money so I can afford to give my girlfriend the big wedding she deserves.
Given the amount of debt I have found myself in (interest free though!) I've decided to go for it and try to create something online that generates income.
The question is, I'm seriously stuck for ideas but I'm very hard working and have what it takes to follow through and execute.
Does anyone have any ideas or suggestions for me?
Thanks <comment><USER2> Would it be possible to freelance with your ecommerce skills as an aside to your day job?</comment>


$1T. That's How Much Workers Are Losing to Owners Each Year - <AUTHOR> https://www.nytimes.com/2020/06/24/opinion/income-wealth-inequality-america.html <comment><USER2> Dammit just give me the numbers. This should be an entirely mathematical exercise. I shouldn't have to scroll through weird Star Wars text and a story about student protesters in 1970 to see what the basis for your number is. What on earth is wrong with journalists?

This is a very complicated subject. Here is an analysis that shows the contrary result: [https://www.econlib.org/the-real-wage- myth](https://www.econlib.org/the-real-wage-myth). One important observation: looking at wages alone, like the article does, excludes the value of benefits such as healthcare:

> BTW, these time series understate the growth in total labor compensation, as > the cost of fringe benefits such as health care has risen faster than > nominal wage growth. Alternatively, if you believe that health benefits are > nearly worthless (my view), then the nominal wage series should be deflated > by a price index that excludes health care. That would show even more rapid > growth in real wages.

Basically, at the very least you're not comparing like with like. Either include the value of health benefits in compensation, or exclude the contribution of healthcare in overall economic growth. There are also numerous other mathematical complexities. You need to adjust wages for inflation (using some index) and convert GDP to current dollars (using some index) but generally different indexes are used for the two. You also need to pick a baseline. 1970 is often used, but that was a recessionary period. Counter- intuitively, the ratio of wages to the overall economy is highest during recessions. Also, it's not just workers and owners in the pirate ship analogy. Landowners also get a cut and their cut is growing. Accounting for both effects, the share of income going to non-housing capital owners is up a bit, but was about the same in 2005 as in 1960: [http://voxeu.org/sites/default/files/image/FromMay2014/lacav...](http://voxeu.org/sites/default/files/image/FromMay2014/lacavafig1.png)

I'm not sure what the right answer is. What I'm sure about is that cobbled together vignettes sprinkled with uncited, unexplained numbers that are more garnish than substance does not help anyone understand the issue at all. It's empty calories.

<comment><USER3> The numbers already exist and have existed. It is their job to be journalists, convey a comprehensible narrative from facts. Also keep in mind that is the opinion section. I doubt the author would object to changes in tax structure, etc. to grow more home ownership. Why not putting people in houses and unions? Do you think that unions are not effective?

<comment><USER2> > It is their job to be journalists, convey a comprehensible narrative from > facts.

This is not a comprehensible narrative. What the heck is a random aside about student protesters in the 1970s doing in the middle of—what? An advocacy piece about tax structure? Can you imagine if your boss asked you to put together a white paper on some issue to present to management, and you presented her something like this, with a few facts facts thrown in randomly between irrelevant filler anecdotes?

If you want to tell stories, then fine. If you want to write advocacy white papers making a factual argument, fine. But this is neither thing. It's a hybrid form that uses narrative and anecdote to fill in for the extremely thin facts and analysis. What is the social value of this type of writing?

As to unions: what do they have to do with anything? Many countries with strong unions have see a similar or even greater decline in labor share of income. The US is not really much different than any other advanced economy on that front: [https://www.mckinsey.com/~/media/mckinsey/featured%20insight...](https://www.mckinsey.com/~/media/mckinsey/featured%20insights/employment%20and%20growth/a%20new%20look%20at%20the%20declining%20labor%20share%20of%20income%20in%20the%20united%20states/mgi- a-new-look-at-the-declining-labor-share-of-income-in-the-united-states.ashx). In the US, labor's share of income is less than France, about the same as Germany, and more than Spain. It's significantly higher than Sweden, which has robust unions.

Moreover, nearly all the decline in labor's share of income happened between 2000 and today. The decrease was very slight from 1947 to 2000. But unions stopped being a significant force in the US long before 2000.

</comment></comment></comment><comment><USER4> I apologize for not reading the whole article, but after hitting

> Picture the nation as a pirate crew: In recent decades, the owners of the > ship have gradually claimed a larger share of booty at the expense of the > crew. The annual sum that has shifted from workers to owners now tops $1 > trillion.

I couldn't help but feel that if they failed to research their examples that the rest of the article is probably not well researched either.

(You wouldn't want to use pirate ships of yore as an example of poor or inequitable labor conditions, because they were often much better than the alternatives: [https://en.wikipedia.org/wiki/Governance_in_18th- century_pir...](https://en.wikipedia.org/wiki/Governance_in_18th- century_piracy) )

<comment><USER5> The purpose of the bit you quoted is not meant to be a literal example, it's a thought experiment using a pirate stereotype/myth familiar to most readers. The history of pirates and equitable labor is interesting of course, but its factual accuracy in the example is not relevant.

It's very odd to write off a full piece based on this choice, especially so for "accuracy reasons" than rhetorical device choices.

<comment><USER4> How many other statements in it were chosen for rhetorical flourish, because they appealed to readers biases, rather than being grounded on some rigorous researched basis?

It's impossible to tell without far more work than the article justified.

The history of pirate labour isn't particularly obscure. So either the article wasn't reviewed by someone with more than a passing interest in labour relations or it was and they just didn't care that they used probably one of the worst historical examples they could have used just because it made for good imagery.

</comment></comment></comment><comment><USER6> I found this to be very wishy-washy on numbers, and using questionable sourcing. For example:

>In the nation's slaughterhouses, the average worker in 1982 made $24 an hour in inflation-adjusted dollars, or $50,000 a year. Today the average meatpacker processes significantly more meat — and makes less than $14 an hour.

Uh, no. Not really. If this was an honest comparison you'd be comparing their profit output, not meat output. Because the output of significantly more meat does not mean significantly more profit. It can mean significantly less profit. Meat is a razor-thin margin industry.

>Even in the high-flying technology sector, companies have found ways to leave their workers behind. More than half of the people who work for Google do not actually work for Google. They are classified as contractors, which means they do not need to be treated as employees.

Why is a voluntary contract a problem here? Why is this bad?

>The Economic Policy Institute estimates that employers illegally deprive workers of more than $50 billion in wages each year by underpaying them or requiring unpaid work; violators are rarely punished.

So, a union think-tank. Any reputable source?

>And those who waited longest for new opportunities after the 2008 financial crisis have often been among the first to lose their jobs. Black people and women have been especially hard-hit.

Absolute dishonesty, bordering on straight-up lies. Black unemployment is at a 50 year low.

<comment><USER4> Here is another:

> Americans in the bottom 90 percent of the income distribution would be > making an extra $12,000 per year, on average.

This is misleading. $12k sounds like a lot compared to someone making the poverty line, but it's as much compared to a household at the 90-percentile income (~$200k), and high percentile incomes dominate that average because incomes in the bottom 90% are also rather unequally distributed too.

The point that additional wealth has consolidated at the top due to wage stagnation is a fine point to make, but they way they chose to represent it exaggerates the point.

</comment></comment><comment><USER7> Politicians are deaf to this issue, they can no longer hear that tone.

Business rhetoric promises to do better, but they're incentivized to do otherwise.

I don't see much hope for solutions, politically or economically. Maybe I'm just in a mood but things look grim.

</comment><comment><USER8> Why do I need to contribute anything to society? Why does anyone need to contribute to society?

<comment><USER9> So we can keep having a society.

<comment><USER8> This is circular reasoning.</comment></comment></comment>


The Go Beartrap Lying in the Shadows - <AUTHOR> http://www.qureet.com/blog/golang-beartrap/?ref=hacker_news_share

<comment><USER2> From the Go language spec[1]:

> Unlike regular variable declarations, a short variable declaration may > redeclare variables provided they were originally declared earlier in the > same block with the same type, and at least one of the non-blank variables > is new. As a consequence, redeclaration can only appear in a multi-variable > short declaration. Redeclaration does not introduce a new variable; it just > assigns a new value to the original.

So if this is something you're not used to,it might be a good idea to avoid multi-variable short declarations in critical code. (Declare with `var` beforehand.)

Also, for more credibility in writing, call it Go, not golang. #golang is just a hashtag (and domain name).

[1]: [https://golang.org/ref/spec#Short_variable_declarations](https://golang.org/ref/spec#Short_variable_declarations)

<comment><USER3> Actually the problem here has to do with the scope where the declaration happens. If redeclaration happened as mentioned in your quoted text ie. assignment of a new value, there would be no problem. As is [in a different scope], a redeclaration of _err_ is actually a declaration of a shadowed _err_ variable.

</comment></comment><comment><USER4> > It takes the best of C++, Java and Python … and then it really tightens > everything up.

"in 2004" belongs in that statement.</comment>


Bill Gates Made These 15 Predictions Back in 1999 - <AUTHOR> https://www.entrepreneur.com/slideshow/327229 <comment><USER2> The last three I find pretty interesting. I don't think we've seen big strides in those areas (finding employees, finding employers & finding work)...We'll at least not from my experience in the tech industry.

Would be interesting to see another 20 years from now if there's been any major developments in those areas.

</comment><comment><USER3> Why didn't Microsoft partake in any of these ideas then? Smartphone came out 8 years later in 2007.

<comment> martin-adams Re the smartphone. Probably because Microsoft thought that Windows Mobile was fit for purpose. I used a XDA when the first iPhone was released. What made the iPhone change things in my opinion was a great touch enabled browser and unlimited mobile internet.</comment></comment>


Powers of Ten (1977) - <AUTHOR> https://www.youtube.com/watch?v=0fKBhvDjuy0 <comment><USER2> One difficulty with continuous zooms, is you lose context. "Was Earth 10^6 or 10^7 meters?" "Are viruses bigger than bacteria, or smaller?"

One alternative is to chunk the zoom. If I ask you, how big is a soda can, you're not going to wave your hands with a factor of 2 error - you've handled them, and have a feel for their size. Similarly, if you repeatedly hear stories at some scale, like 1000x, with cardboard box salt and M&M red blood cells, those sizes become familiar too. The first "How to remember sizes" section of my crufty page[1] has some illustrations (mostly clips from failed user-test videos).

[1] [http://www.clarifyscience.info/part/Atoms](http://www.clarifyscience.info/part/Atoms) Extremely crufty and slowwwwwwwly loading - it wasn't originally intended to be public.</comment>


Ask HN: Are there any web-apps aimed at e-readers? - <AUTHOR>

It would be great (for me at least) to be able to do several common activities on my Kindle. The main motivator is that I find it hard to sleep if I've been looking at screens late at night. For example, I'd love to be able to use some kind of messaging client.
I was never able to get Kindle Active Content (the closest thing there was to an app store) as I'm not US-based and that seems to be disappearing anyway.
Which means the only available option is using web-apps. Of course, the obvious problem is that they're totally unoptimised for e-ink screens where scrolling, colour and movement are all either poorly implemented or not available at all.
Are there any web-apps designed to work well with e-readers? <comment><USER2> Have you tried something like f.lux ? it can remove the black spectrum of colors from computer/tablet displays ,and they claims there's research that this is the spectrum most critical for messing up with sleep.

With regards to eink web-apps, don't forget you'll also have to fight the keyboard if you'll even get one. So it's hard to design to that medium. On that note, there's the onyx eink phones/tablets that have a version of the play store, but their only unique apps are rss reader and google calender. But maybe sniffing around onyx and their users will let you discover usable apps.</comment>