The porn industry is in a bind - <AUTHOR> http://www.wired.com/2015/10/the-porn-business-isnt-anything-like-you-think-it-is/ <comment><USER3> Forget about the porn for a minute gang... this is, to me, the key insight in the story:

        VR and its cousin, "augmented reality," are controlled by the big corporations.
        Facebook owns the Oculus Rift. Microsoft built the Hololens.
        Google does Google Glass. These will treat porn at least like Android
        treats porn—or maybe even like Glass treated porn when O'Connell
        unveiled his app. In other words, they won't allow it through official
        channels and maybe not at all.

And it isn't even just about VR... the point is, we, collectively, are losing control of our use of computing and technology.

Remember the early 80's, when anybody could buy a handful of 8086 processors, a Phoenix or Award BIOS, some cases, etc., and start pumping out IBM compatible PCs? That was pretty amazing, and arguably led to amazing things. How about the way you could take your PC and install ANY operating system on it: DOS, Xenix, Solaris x86, Windows, OS/2, BeOS, BSD Unix, various flavors of Linux, etc. Great opportunity for invention and creation there...

and now? When was the last time you installed a new OS on your smartphone? Your game console? Your VR device? Your smart watch? Etc?

Yeah... thought so.

Look, I'm not saying anything terribly new here, and I don't claim to be. Cory Doctorow said it all better, and before:

[http://boingboing.net/2012/01/10/lockdown.html](http://boingboing.net/2012/01/10/lockdown.html)

But we need to take this seriously. I don't want to live in a world where Google, Facebook, IBM, HP, Twitter, Microsoft, EMC, Cisco, Snapchat, etc., decide what content I can consume, what programs I can run, etc. And I doubt most of you do either.

<comment><USER4> Right this moment I'm sitting in an office in the place that represents our hope, a capital of continued progress[0] - Shenzhen, China. Everything Facebook, Google and Microsoft designs gets built here (or nearby) anyway. China has a... quite healthy attitude towards copyright and trade secrets. That is, they don't give a flying fuck here. There was even a term for that, that eludes me at the moment, which described the idea of "I share my specs today with you, you'll share your specs tomorrow with me". And in the ongoing war on general-purpose computing, for better or worse, this seems to be our only recourse.

I'm gonna ask around if they have any Google Glass knockoffs or components handy.

[0] - built on the backs of abused and impoverished people, but that's a topic for another day.

<comment><USER5> > "I share my specs today with you, you'll share your specs tomorrow with me"

This is how Silicon Valley worked, back when the silicon was actually made there. My impression is that Google's obsessive culture of secrecy (necessary because it grew up in an environment where loose lips really did sink ships) is the strongest influence in destroying that culture of information-sharing, although of course NDAs, interface copyright lawsuits, DRM, and software patents have also taken their toll.

California's century-old legal limitations on what rights employees can sign away to employers have also been very helpful.

So it's not surprising that technological development is happening today in a place where employers' ability to own their employees' minds is more limited — the innovation is done by the engineers, after all, not the investors, so shifting the power balance in favor of the investors will damage your region's competitiveness.

I'm interested to hear about the abuse and impoverishment.

<comment><USER4> > _I 'm interested to hear about the abuse and impoverishment._

Disclaimer: I've only been in China for a week so far, so what I can tell is just what I see (besides what everyone hears in Western media, that is) and it may be biased.

Shenzhen is a city of many contrasts. I work in a relatively modern office building and live in a not-totally-crap hotel. I travel to work via taxis which seem to be staffed by poor people trying to make a living. Forget about Uber here.

When I get out of the hotel, I can turn left and find myself next to KFC, Starbucks and a big shopping mall full of expensive-looking clothes. Everything is plastered with ads like you wouldn't believe. Or I can turn right and find myself on a poor street that is flooded with trash and occupied by tons of people selling absolutely everything - meat, fruits, phones, barber services. Those people look impoverished and from what I can tell, pretty much sit there 24h/day 7 days a week trying to sell something to someone. They are all incredibly friendly, but you can feel the lack of perspective for a better life; it's heartbreaking. There's a family of street food vendors making fried pasta with various meats; a father, a mother and a son. I'm buying food from them pretty much every day. They're extremely proficient at what they do (and they use up scary amounts of propane for that), but you can see that they'll be doing it for the rest of their lives.

There's a big construction zone next to a metro station nearby. They'll probably be building skyscrapers, like a lot of others that are currently in progress. The zone is fenced off with 2m high concrete walls. I managed to take a look through a crack, and what I saw was something akin to a labour camp. Some metal sheds, minimum sanitation, lots of people cramped together. I've been told they're workers from local villages. They looked hungry and impoverished. They don't seem to have any safety equipment.

There's a fucking Starbucks and a KFC and lots of people with smartphones few hundred meters downstreet. And a modern, high-tech metro station on the other side of the wall.

Then there are electronics markets. Tons of fancy stuff. Everything you could imagine. Sold by people cramped together in small spaces that look like they couldn't afford what they're selling. Basically third world selling first- world products.

It's really unnerving that you can have a place that is so amazing and yet so sad at the same time, with nothing but an occasional concrete wall separating the two pictures.

<comment><USER5> Here in Buenos Aires we have a lot of entrenched poverty too, in slums that are often only tens of meters from rich areas. What I wonder most about is: what is the relationship between the poverty and the prosperity? Are the people in the "labour camp" able to go out and shop for meat, fruits, and barber services? Can they go get another job? Or are they in some kind of debt bondage? Have they been forced out of their homes by the electronics industries, or are they sending money to their parents and grandparents back in the village? Are the street food vendors and desperate taxi drivers better off than they were before the electronics industry came along, or are they finding themselves unable to pay the escalating bribes and taxes, forced off the land their families farmed, and occasionally beat up by police for scaring rich teenagers? What was their life like five or ten years ago, and what do they expect it to be like five or ten years from now? Can they walk to the KFC, or will the police pick them up as if they were Maciej Ceglowski walking around in the wrong neighborhood [http://www.idlewords.com/2006/08/i_spy.htm](http://www.idlewords.com/2006/08/i_spy.htm) or a black person walking around in a white neighborhood in the US?

Why is there only trash on the poor street? Do people not throw trash on the ground on the rich street, or is there a municipal street sweeping service that takes care of that? If so, why doesn't it clean the poor street? What's up with the lack of safety equipment? I'm happy to live in a country where I can still enjoy fast merry-go-rounds, but safety equipment in construction work is super important for preventing accidental death.

The _derivative_ and the _causality_ are more important than the _current state_.

<comment><USER4> I wish I could answer your questions. I keep asking them myself. I want to talk about it with someone local, but it's incredibly hard to find someone speaking English here outside work (and incredibly awkward to ask those questions at work), and my Chinese currently is limited to "hello", "thank you" and "goodbye" (I try to learn some as fast as I can; I only had a week's notice I'll be flying here so there wasn't time to prepare).

My Polish co-worker who is here with me and has been here before tells me of a girl working here who somehow escaped the poor villages far away from the metropolis and ended up working as a software tester. He says that he tried to talk with her about life, but that her English proficiency is limited to the technical matters; she can't express herself in English if asked about non- work topics, probably due to lack of general vocabulary.

I'll be happy to post something if I learn the answers to those questions.

<comment><USER6> I'm also interested to learn more if you come across any answers? Will you post it on your website or something? I feel like I'll miss it if it is posted on HN.

<comment><USER4> I'm noting down to update both you and 'kragen after I write something up. I might post it on my blog or do a Tell HN; we'll see after I actually have something to write about :). You can also shoot me an e-mail (mine in the profile) so that I know how to notify you directly.

<comment><USER7> Shenzhen is one of the best city in China. From your standard and perspective , other places seems looks like hell .

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Back in the day, when porn was in the big online bubble state, sites would offer over $.50/click to their site. When I first started (ab)using that system, the sites immediately bumped it to $.25/click and then $.10/click, and now I think its like $.000034/click, or basically nothing. They would also give you additional money for actual sign ups, and had a bonus day on every month where you made a significant amount more for sign ups.

Ultimately I think I cashed in like $7000 when I was 12 before shit hit the fan and the company my buddy and I were using sent him a check that bounced. It was tough explaining it to our parents, but ultimately everyone knew about alladvantage and we would always say it was something similar to that. We also cashed in on alladvantage, I think it was $20/month just to have the thing on for a few hours.

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

<comment><USER9> We might've had similar starts.

I bought my first computer with cheques from a porn affiliate program. Soon after I started, they required visitors click through an age-verification to confirm and pay out.

So I put together a protected zip file of M-rated images and set the password as the xth word of the yth paragraph on the page after the age verification.

That only worked for a couple of weeks, but it was enough.

<comment><USER8> Thats great. I remember at some point they would only accept users from their direct banner ads, which I could never generate money from. I am sure a lot of people used these affiliate programs, but I rarely ever hear anyone talk about it. Only one other time and it was in a movie and I am not certain it was as similar as we are talking about. Great stuff, thanks for sharing!

</comment></comment></comment><comment><USER10> The fine article talks about the losers of the trade war. The winners are OK. If you look where the money is, it's with MindGeek (formerly known as Manwin), a company that has through the years bought bought most of the tube/cam sites, owns Brazzers and other content producers.

For sure, tired unattractive content won't make it. But then you have the true artists of fucking, like James Deen, Pierre Woodman, and those guys working at Czech AV. They seem to be doing quite well.

The innovation in porn, from what I've seen (hehe), is on the personal level, when a performer interacts regularly with viewers through social networks. To successfully provide illusion of intimacy or a relationship is the next frontier in porn, in my humble opinion.

<comment><USER4> There was a comment posted here, that sadly got deleted. I think it raises an interesting topic. Let me reproduce it:

\---

> _illusion of intimacy or a relationship_

Could that lead to sexrobots as a mass market in, say, five years? Or do you think it would go more into the VR direction? Could / should both be merged? Would that be useful? Perhaps AR would be better in that case.

Thoughts on that?

\---

The response I tried to submit when parent got deleted:

I think this is the angle that will try and resist automation for a while. The first world is getting somewhat devoid of genuine relationship experiences, and people seek to fill the hole somehow. Or from a more cynical point of view - we're building a superstimulus, where we can provide _stronger_ emotional satisfaction through porn that you could get in a real relationship.

Personally I think VR/AR will make a killing much sooner than sexrobots, even assuming that the latter will become popular at all in the coming decades. One of the biggest constraints on... enhancing your sexual experience, if you're young and lonely, is what if your parents/family/friends/current partner discover your sex toys. Hiding sex dolls from them is a significant OPSEC issue. VR/AR will be as easy to hide as video porn today is - the device you're using is a general purpose, you could always say you bought it for World of Warcraft 2 or something. The porn component is just data, which is trivial to hide from less technical friends and family.

<comment><USER10> VR headsets have been here since the 1990's, and nothing ever came of it, despite the tons of productions shots from the point of view of the male performer. Even 3D is extremely rare.

Better fidelity and added depth perception do not bring better illusion of intimacy. It's a red herring.

<comment><USER4> True. However I don't recall any quality VR headsets available for reasonable prices before Oculus Rift though. There was something going on in the late 90s, but back then we didn't have PornHub.

</comment></comment></comment></comment><comment><USER11> I was _just_ about to share this. That's my company (and me in 2 of the pictures). Thanks for sharing it.

<comment><USER12> You should do an AMA here in this thread about the industry!

I'll start. What are some common misconceptions about the industry in general and what do you think about the accuracy of the article and how it paints the industry?

<comment><USER11> An AMA sounds fun. :)

I think the article covered the misconceptions and the state of the industry pretty well.

I think the biggest misconceptions are: 1\. No one pays for porn, but we know they do. 2\. Selling is a sure-fire way to make a ton of money. It's only sure-fire if you're going to use less than favorable tactics, as with any business. 3\. Everyone in porn is a scammer. There are bad apples, but most folks in the adult industry are really great to work with. 4\. That porn tube sites are the common enemy. But in many ways it's the big mainstream tech giants that threaten the industry. Take a look at Tumblr. They made it so easy to spread and share pirated content with one click and even if you wanted to claim your content back by adding your affiliate links, they will ban your account and call that "spam".

<comment><USER13> Jen, how do you think the virtual reality porn industry will look like?

</comment></comment></comment></comment><comment><USER14> Wired really has dropped in quality, publishing articles that state the obvious and do little to advance critical thought.

Perhaps it is a sign of the times that the lack of original content has led to content-mill-esque pieces that aren't the least bit provactive or controversial.

<comment><USER15> I'm wondering why they don't mine reddit threads for ideas and then compile them into articles. I often find the comments much more interesting than the articles, so, if they filtered out good ideas they would have an inexhaustible source.

</comment></comment><comment><USER16> I always felt it was weird that in the west there's this clear sharp line between porn and not, whereas in Japan things seemed a lot more blurred - <USER2> was normal for celebrities to become porn stars and vice versa, for game franchises that started as porn to get a cleaned-up Playstation instalment, for manga artists to release unofficial porn versions of their own work. I remember watching the movie Swordfish and being struck by how much the one incongruous topless scene felt like something you'd see in a Japanese work. So maybe we're seeing some kind of convergence?

<comment><USER17> _> whereas in Japan things seemed a lot more blurred_

or pixelated

</comment></comment><comment><USER18> Okay, so, silly question time: why can't we just have a Paetron for porn actors and actresses? Cut out all of the middle men, pay them directly?

<comment><USER11> Some performers do use Patreon. But if you want to promote your erotic work, Patreon doesn't accept accounts promoting porn with live actors, only drawn art.

<comment><USER19> So there's a huge gap in the market for a nsfw patreon? (Porntreon?)

<comment><USER11> oh yeah, lots of creators use Patreon. Fenoxo, the creator of the text based RPG Trials in Tainted Space (he sells it in MiKandi), uses Patreon and brings in $20K a month. [https://www.patreon.com/user?u=121401&u=121401&ty=h](https://www.patreon.com/user?u=121401&u=121401&ty=h)

So far it's a great service for adult art and fiction creators. But as with any mainstream service and adult content, you can't ever be sure how long it'll last. Past experience has shown it's a matter of time before adult gets kicked out of the party. I hope that won't be the case with Patreon.

</comment></comment></comment></comment><comment><USER20> "salaries somewhere in the low six figures" I'm so sorry! At least when the porn industry collapses I will have my stash of torrented porn to rely on. In other news: walled garden are bad for everyone.

</comment><comment><USER21> Never trust articles about porn. I've never seen one that represented more than a myopic view. It's a very diverse industry.

I hope that Kink implodes. That side of the industry started as an almost joke. Bush, pre-911 Bush, talked about going after violent porn. So a couple producers got together and said: "Well, lets give them a target." They had first amendment lawyers primed for battle. Then 9/11, and the feds never showed up. Fast forwards a decade or so, and the violent porn meant to trigger a freedom of speech battle is practically mainstream. Kink.com is now a giant and customers are leaving for content that even Kink wouldn't touch. The old hats are aghast at the beast they've unleashed.

I've got clients that come to me when employees are caught downloading things they shouldn't. I'm the guy that has to go through this material and figure out whether anything is illegal, whether we have to bring in the cops. It isn't fun.

(But i did once practically fall out of my chair at a client meeting when I was introduced as "the external expert on child porn". I was in fact the guy there to explain that the material wasn't such. The employee was fired, but the police were not involved.)

<comment> vezzy-fnord Kink is actually relatively tame as far as "violent porn" goes. Insex set the standard in hardcore S/M during its day and was actually forced to close over scrutiny from its perceived obscenity. Many modern S/M sites owe their style and aesthetic to Insex's grisliness. Speaking of which, a documentary I'd recommend viewing on the topic is _Graphic Sexual Horror_. Be sure to watch it during the day.

Of course, I'm not counting things like guro, crushing or vore. S/M is a long established subculture, though I suppose the more hardcore stuff is relatively recent in practice. I don't think it should be marginalized in the slightest. It's certainly _not_ a joke, however.

<comment><USER21> No doubt insex had a profound effect on culture. Frankly, I would say it is almost comparable to Playboy. The Hostile and Saw film franchises are direct outcomes of insex.

What Kink has done is to take insex and add lawyers. They dropped some of the more legally-dangerous aspects (plots/scripts) and added comical "interviews" with all involved. But heaven help the attorneys who might have to defend Kink against obscenity charges. They are in totally unknown waters.

<comment><USER22> _Hostile and Saw film franchises are direct outcomes of insex_

Absurd. I'm sure it was an influence, but let's not forget that the century kicked off with videos of things like Al Qaeda terrorists sawing off Daniel Pearl's head and horrific ethnic cleansing abuses in the Balkans. To think that these would not have been on Eli Roth's radar and ascribe it all to a porn site strains credulity.

 _legally-dangerous aspects (plots /scripts)_

Do please explain your theory of what makes these legally dangerous. I am sure you have more legal knowledge than I, a law school dropout, but I'm interested enough censorship and first amendment issues that this claims seems highly questionable.

Also, it's wrong unless it's based on some very recent news. I may as well admit I'm somewhat into SM myself and so I'm familiar with Kink.com's output, though I don't consume much porn. Last time I looked they were still doing things with plots, albeit the very rudimentary plots that amount to little more than verbal foreplay to set up the scene for the sexual activity. Now, I have no professional or personal relationship with them (although I have loose acquaintances with several people who have worked or performed for the firm) and don't find their offerings very erotic, but I fail to see why you would think it falls outside the bounds of first amendment protection, unless you are of the opinion that no sane person could consent to engage in sadomasochistic practices.

<comment><USER21> The use of plots, of backstories, risk moving the footage from BDSM into the world of kidnappings and outright rape.

Without getting too graphic, putting an actress in a cheerleader outfit is perfectly acceptable in porn, you can even throw in elements of BDSM. But give her the backstory of being kidnapped from her school and forced into sex ... that same BDSM imagery is now a graphic rape.

The same goes for age. Putting an actress in a schoolgirl outfit is one thing, giving her lines about being the the 9th grade (and therefore underage) is very different. Kink knows it's best to avoid scripting.

<comment><USER22> I appreciate your taking the time to reply.

Obviously suggestions of being underage would be hugely problematic. While I don't see anything _illegal_ about an adult performer pretending to be younger in a fictional context (but with the requisite 2257 filings in place) it would certainly border on commercial suicide due to adverse publicity, not to mention international problems (eg UK law is now considerably stricter on obscenity, banning the appearance of various acts as well as the performance thereof in real life).

Now I can certainly see how a fictional kidnapping and rape could be similarly problematic, and the material I've seen steers away from such themes (but there's some self-selection bias there as that's not erotic to me anyway). But ISTM you'd have a very strong defense under the first amendment notwithstanding the graphic nature of the amterial. I mean, I can watch films like _Nymphomaniac_ or _The Night Porter_ on Netflix or DVD even though they are both graphic and include scenes of sexual coercion. They're not as graphic as a porn movie, obviously, but differences of degree haven't usually been enough to get an obscenity conviction in US courts in recent memory, eg US v. Stevens being found overbroad.

You mentioned having written some articles and I'd certainly be interested in reading those even if they're primarily aimed at HR contexts. By chance I recently downloaded the Meese commission report to refresh my knowledge of the area so I would be interested in hearing more of your professional perspective (same name at gmail if you prefer). I eke out a living in indie film and have never worked in porn myself, but from a political and professional standpoint freedom of expression is a huge issue for me so I feel obliged to go to bat for other producers even where I find their output distasteful or straight-up trashy.

Thanks again for engaging with me on a difficult topic.

</comment></comment></comment></comment></comment></comment><comment><USER23> >"The first fiction ever published on a printing press was an erotic tale. And from there: super 8 film, Polaroid, home video, digital, video on demand—"

what do you think these figurines were 20000 years ago? [https://en.wikipedia.org/wiki/Venus_figurines](https://en.wikipedia.org/wiki/Venus_figurines)

"Most of them have small heads, wide hips, and legs that taper to a point. Various figurines exaggerate the abdomen, hips, breasts, thighs, or vulva. In contrast, arms and feet are often absent, and the head is usually small and faceless."

</comment><comment><USER24> It was interesting to see this post on the front page a minute ago and then get pushed to the third page just now. Is this type of content discouraged from being discussed here?

<comment><USER25> No, it's not that. HN's software misidentified the thread as a flamewar. It was actually a remarkably substantive, active discussion. We've turned the penalty off.

</comment></comment><comment><USER26> The problem is that with the legalization & wide dissemination of free pornography, the "market" in terms of dedicated commercial potential shrank from anyone with a passing case of onanism to the population of hard-core addicts. Just about all new development is dedicated to better serving that demographic. Sadly for the porn industry in aggregate, that demographic has a very limited total pool of money.

</comment><comment><USER27> While the little guys aren't making bank anymore, what about the big guys?

It's my impression that the pornhub network is quite healthy, financially.

<comment><USER28> you are talking about the studios not the actors right?

<comment><USER27> I'm talking about companies. I don't know if pornhub counts as a studio.

</comment></comment></comment><comment><USER29> I've read most of this thread, and have been feeling increasingly more like Nick Cage's character in 8mm as he followed the trail of clues until he finally got to that guy with the heavy accent who put Steve Buscemi into the woodchipper in Fargo. Ugh. Talk about slippery slopes...

</comment><comment><USER30> > "Anyone can download them. You can. Your kids can. That's just not a place > we want to go."

Steve Jobs was such a piece of work. As if browsers don't exist.</comment>


Ask HN: Best App marketing bang for your buck?  - <AUTHOR>

Since launching our app a few weeks ago, it has seen moderate success mostly thanks to it being featured in a few categories on the iTunes App Store. I'm wondering if anyone has any suggestions for further marketing at this point. I've gotten great reviews on most of the top mommy blogs (our app is for young children). I've tried some search marketing and Facebook Ads but found that its hard to justify the cost per click when our app is only $1.99. Our numbers have been declining since peaking a couple days after launch when we were on the New and Noteworthy section. We made it to #20 in Top Paid Books for iPad for about a day but have since fallen to the high 60's. Within this category, that equals very little sales. Essentially, we are a production company, not a marketing company, but I'm trying my best to learn the ropes. Any suggestions would be greatly appreciated. You can see our app here: www.jubitron.com <comment><USER2> This isn't really marketing spend, and I haven't looked at your app, but things to spend time on:

1\. Social integration (Facebook is a huge distribution channel). It might be a little spammy, but you could consider auto-posting stories to people's walls. 99% of the time people don't care (people on Hacker News form part of that 1%). I'm not sure how the social loop of your app works, but you can incorporate a "share with your friends" button that tells user's friends about the book.

2\. Keyword optimization. Optimizing your keywords can net you up to a 2x boost in search rankings and downloads coming from app store search. There's no secret sauce to this: you just have to use trial and error (and carefully find a way to measure your search rankings) - there are a variety of tools to help you with keeping track of search rankings.

<comment><AUTHOR> Thanks for the suggestions. I will definitely do a bit more research on keyword optimization and try changing things around a bit and see what results it has.

We have share functionality in the app, but its not until the end along with the credits. We've actually already had a complaint that it's too accessible for kids that are using their parents iPad, iPhone etc.

I should also mention that the app is available on both iOS and Android marketplaces. So far we've gotten NO traction in the Android marketplace, so thats an even bigger mystery.

<comment><USER2> That's not a mystery (to me). I've worked at a company that made iOS apps, and it seemed to be common knowledge among all the other people we knew at other app/game companies that Android users _do not_ pay for apps. It supposedly has something to do with the fact that your average Android user has much lower income, and that in many countries where Android is dominant, people just are not willing to pay for apps.</comment></comment></comment>


Chinese netizens are protesting Notepad++ over its support for Uighurs - <AUTHOR> https://thenextweb.com/dd/2019/10/30/chinese-netizens-are-protesting-notepad-over-its-support-for-uighurs/ <comment><USER2> If Chinese netizens want to boycott it let them. They can find an alternative or create their own.

</comment><comment><USER3> Oh no... they might have to pay for an editor if they want to retain all the features!

Seriously, I don't know why this is news. Boycotting something that is free is going to accomplish what, exactly?</comment>


Death by HSTS preload copy/paste - <AUTHOR> https://scotthelme.co.uk/death-by-copy-paste/ <comment><USER2> I actually fell into this trap! One day I was struggling to figure out why I could no longer access one of my web servers. I thought that it was due to one of my plugins. After much hair pulling I found out that it was because someone (or perhaps an automated bot) had added my domain to the hsts preload list. As a short term fix I added the certificate of my web server to my trusted root ca dtore, and now that LetsEncrypt supports IPv6 I now have a real certificate (albeit one that does not work in BB10 since the native browser does not trust user-installed root certificates).</comment>


"My wife has complained that OpenOffice will never print on Tuesdays" (2009) - <AUTHOR> https://bugs.launchpad.net/ubuntu/+source/cupsys/+bug/255161/comments/28 <comment><USER2> Did this get fixed, 7 years later?

Yesterday, we had a story about Microsoft's disk management service using lots of CPU time if the username contained "user". Microsoft's official reply was not to do that.

I once found a bug in Coyote Systems' load balancers where, if the USER-AGENT ended with "m", all packets were dropped. They use regular expressions for various rules, and I suspect someone typed "\m" where they meant "\n". Vendor denied problem, even after I submitted a test case which failed on their own web site's load balancer.

Many, many years ago, I found a bug in 4.3BSD which prevented TCP connections from establishing with certain other systems during odd numbered 4 hour periods. It took three days to find the bug in BSD's sequence number arithmetic. A combination of signed and unsigned casts was doing the wrong thing.

<comment><USER3> My favorite was a story from the 1980s of a program which would crash depending on the phase of the Moon!

Turned out to be because it was generating a date by calling a general purpose astronomical routine, then parsing the date out of that. The astronomical routine among other things included the phase of the moon, and during some phases you would overflow the buffer that was passed in.

Another classic was a tech support call from the 1990s where the person's computer rebooted every time they flushed the toilet. Turns out that the person was at the end of the electrical line..and on a septic system. Flush the toilet, the septic system came online, causing a power dip, and that was enough to reboot the computer. A UPS fixed that.

<comment><USER4> > My favorite was a story from the 1980s of a program which would crash > depending on the phase of the Moon!

Do you have a name for this program? It sounds a lot like an urban legend - when would you ever find it easier to parse a date out of an astronomical program than to use actual date handing capabilities from the system or a library?

<comment><USER3> Here is a reference to a program that crashed based on the phase of the moon for slightly different reasons: [http://www.catb.org/jargon/html/P/phase-of- the-moon.html](http://www.catb.org/jargon/html/P/phase-of-the-moon.html)

The one that I described I first remember hearing about in undergrad. I heard it from an astronomy student. I guess that makes it an urban legend, but a highly believable one. In my experience inexperienced programmers are very good at unexpectedly repurposing whatever they happen to know for new purposes. And in an astronomy department it is easy to find inexperienced programmers with astronomical routines at hand.

</comment></comment></comment></comment><comment><USER5> Reminds me of my favorite bug story from my own career. It was in my first year or two out of college. We were using a commercial C++ library for making HTTP calls out to another service. The initial symptom of the bug was that random requests would appear to come back with empty responses -- not just empty _bodies_ , but the entire response was empty (not even any headers).

After a fair amount of testing, I was somehow able to determine that it wasn't actually random. The empty response occurred whenever the size in bytes of the entire request (headers and body together) was exactly 10 modulo 256, for example 266 bytes or 1034 bytes or 4106 bytes. Weird, right?

I went ahead and worked around the problem by putting in a heuristic when constructing the request: If the body size was such that the total request size would _end up_ being close to 10 modulo 256, based on empirical knowledge of the typical size of our request headers, then add a dummy header to get out of the danger zone. That got us past the problem, but made me queasy.

At the time, I had looked at the code and noticed an uninitialized variable in the response parsing function, but it didn't really hit me until much later. The code was something like this:

      void read_status_line(char *line) {
        char c;
        while (c != '\n') {
          c = read_next_byte();
          *(line++) = c;
        }
      }

Obviously this is wrong because it's checking _c_ before reading it! But why the 10 modulo 256 condition? Of course, the ASCII code for newline is 10. Duh. So there must have been an earlier call stack where some other function had a local variable storing the length of the request, and this function's _c_ variable landed smack-dab on the least-significant byte of that earlier value. Arrrrgh!

<comment><USER6> That sounds shockingly like a bug I remember one of our best developers finding when I worked at Homestead in the late 90's (and I remember being in awe then of his ability to deduce the pattern out of the seeming randomness).

</comment></comment><comment><USER7> The title reminds me of "the 500 mile email"

[http://www.ibiblio.org/harris/500milemail.html](http://www.ibiblio.org/harris/500milemail.html)

<comment> K-Wall This is one story I always enjoy when it is brought up.

<comment><USER8> Me too. Are there any others you could recommend?

<comment><USER9> Some of my favorite hacker folklore:

Always Mount a Scratch Monkey [http://edp.org/monkey.htm](http://edp.org/monkey.htm)

The Magic Switch [https://www.cs.utah.edu/~elb/folklore/magic.html](https://www.cs.utah.edu/~elb/folklore/magic.html)

Quake3's Fast InvSqrt() [https://www.beyond3d.com/content/articles/8/](https://www.beyond3d.com/content/articles/8/)

The Battle Chess Duck [http://blog.codinghorror.com/new-programming- jargon/](http://blog.codinghorror.com/new-programming-jargon/) (#5)

and of course, The Story of Mel, a Real Programmer [https://www.cs.utah.edu/~elb/folklore/mel.html](https://www.cs.utah.edu/~elb/folklore/mel.html)

edit to add: Ford and the $10,000 chalk mark (Ctrl+F Ford) [http://www.smithsonianmag.com/history/charles-proteus- steinm...](http://www.smithsonianmag.com/history/charles-proteus-steinmetz- the-wizard-of-schenectady-51912022/)

<comment><USER10> I just love the magic switch.

It's so obviously impossible, yet anybody that built complex hardware has seen equally impossible things happen.

<comment><USER11> That was so fun and a great prank whether true or not. Like you, I've seen enough oddities to think it's possible. I'm going to challenge two hardware guys I know... one an expert on esoteric stuff. to come up with a way to make that happen. Maybe I'll do it to a RaspPI at a maker space near MIT to screw with them. ;)

</comment></comment></comment></comment></comment></comment><comment><USER12> The most interesting part of this story to me is actually that his wife noticed that the printer didn't work on Tuesdays. I'd have never, ever put that together, no matter how many times I saw it succeed or fail. I'd actually be more likely to figure it out by debugging the CUPS script than I would be observing my printer's behavior. Can a lot of people pick up on correlations like that? "Ever notice how it's always Tuesday when the printer won't work?"

<comment><USER13> only someone who doesn't understand computers would notice it, programmers would say "that doesn't matter" :)

<comment><USER14> You'd figure it out eventually, especially if it was exceedingly annoying and/or your job depended on it.

Example: what if your internet drops out for an hour every Sunday morning at 2am? You'd notice. (Mine does. Damn it Comcast!) If guy's wife relied on the printer similarly, it might be as acute as losing internet for you.

</comment></comment></comment><comment><USER15> My most memorial bugfix was when I was on a team ,temporary ,that did email encryption/decryption. They had one customer where some mails could not get decrypted, they had been figthing with this for one year, no one could figure out what was going on. I told them to do a dump for a week with the good and bad emails. After one week I was given the dump of files, looked at the count of bad vs good, did some math in my head and said: "Hmm, it appears that about 1/256 mails is bad.That could indicate that the problem is releated to a specific byte having a specific value in the random 256 bit AES key. If there is a specific value giving problems it is probaly 0x00 and the position I would guess being at the last or first byte."

I did a check by decoding all SMIME mails to readable text with openssl- sure, all bad emails had 0x00 as the least signicant byte. Then i looked at asn1 spec and discovered it was a bit vague about if the least significant byte had to be there if it was 0x00. I inserted a line into the custom written IBM 4764 CCA driver written in c called by JNI. Then all emails decrypted.

The team dropped their jaws- they had been figthing with it for 1 year and I diagnosed the bug only by looking at the good/bad ratio :)

I might remember some details wrong- but the big picture is correct :)

<comment><USER16> Respect.

I think the singular power of an experienced programmer is being able to reason about high-level structure, while being able to deep-dive into any lower level detail, anywhere in the overall system, and therefore be able to carve out large swaths of problem space just by /thinking/. That's much faster than typing-and-executing-and-reading-logs.

</comment></comment><comment><USER17> The TL;DR is that the "file" utility was miscategorising files that had "Tue" in the first few bytes of a file as an Erlang JAM file, with knock on effects for PostScript files generates with a header comment with Tue in the date.

<comment><USER18> The circumstances under which I discovered/reported the bug were totally coincidental too. I noticed a friend use the file command and thought to myself "Hmm I've never actually used that command before. Let me try it out." Ran it on a TODO list text file I had lying around, scratched my head over the "Erlang JAM file" output, and went from there.

</comment></comment><comment><USER19> The weirdest case at my tenure as a neighborhood computer tech was a personal notebook computer that would not boot up at the customer's apartment. Of course we assumed user error, but further investigation revealed that if the computer were running as it approached the home, it would bluescreen about a block away.

We guessed it was due to some kind of RF interference from a transmitter on the apartment building. Removing the WiFi module and the optical drive had no effect, so we further guessed it was interference within the motherboard or display. Rather than investigate further, we replaced the notebook at that point.

<comment><USER20> My car radio goes from everything working fine to complete static on every station in like 10 feet as I drive into my local Safeway parking lot. I'm pretty sure they are jamming the signal, I just don't know _why_.

<comment><USER21> Some places with shopping carts have an "invisible fence" that locks up one of the wheels of the cart when you push the cart outside the property. These are usually marked with a yellow line on the ground. I presume they use some kind of RF field with an underground wire. Maybe that Safeway has some issues with theirs.

</comment></comment></comment><comment> mark-r I have an anecdote, which isn't mine but comes from someone I know personally. This guy was working as a service tech, and was called out to diagnose a problem with a computer that had been recently moved. It worked most of the time, but any attempt to use the tape drive failed within a certain number of seconds (this was long ago, when tape drives were still a thing). Everything had worked fine before the move, and diagnostics didn't show anything out of place. Then he happened to look out the window - this was a military installation, and there was a radar dish rotating nearby. The failures occurred exactly when the radar dish was pointed their direction. It turns out the computer had been moved up one floor, which strengthened the interference just enough to cause the failure.

</comment><comment><USER22> But "Tue" is not at the fourth byte in the example, which has:

       %%CreationDate: (Tue Mar 3 19:47:42 2009)

Something munged he the data. Perhaps some step which removes all characters after %%, except those in parentheses?

       %%(Tue Mar 3 ...)

Now we're at the fourth byte. Another hypothesis is that the second incorrect match is kicking in. That is to say, some fields are added above %% CreationDate such that the Tue lands on position 79. The bug that was fixed in the magic database is this:

      -+4	string	Tue Jan 22 14:32:44 MET 1991	Erlang JAM file - version 4.2
      -+79	string	Tue Jan 22 14:32:44 MET 1991	Erlang JAM file - version 4.2
      ++4	string	Tue\ Jan\ 22\ 14:32:44\ MET\ 1991	Erlang JAM file - version 4.2
      ++79	string	Tue\ Jan\ 22\ 14:32:44\ MET\ 1991	Erlang JAM file - version 4.2

(This is a patch of a patch: a fix to a an incorrect patch.) There are two matches for this special date which identifies JAM files: one at offset 4, but a possible other one at offset 79 which will cause the same problem.

The real bug here is arguably the CUPS script. It should identify the file's type _before_ munging it. And it shouldn't use a completely general, highly configurable utility whose data-driven file classification system is a moving target from release to release! This is a print script, so there is no reason to suspect that an input file is a Doom WAD file, or a Sun OS 4 MC68000 executable. The possibilities are quite limited, and can be handled with a bit of custom logic.

Did Brother people write this? If so, I'm not surprised.

Nobody should ever write code whose correct execution depends on the "file" utility classifying something. That is, not unless you write your own "magic" file and use only that file; then you're taking proper ownership of the classification logic, such that any bugs are likely to be your own.

The fact that file got something wrong here is a red herring; the file utility is wrong once in a while, as anyone knows who has been using various versions of it regularly regularly for a few decades. Installations of the utility are only suitable for one-off interactive use. You got a mystery file from out of the blue, and need a clue as to what it is. Run file on it to get an often useful opinion. It is only usable in an _advisory_ role, not in an _authoritative_ role.

</comment><comment><USER23> I've noticed that printing is still one of the poorest UX aspects of *nix/OSS and regularly seems to suffer from errors so egregious that they can only be attributed to OSS devs not dogfooding these features. I'm assuming they just don't print much (I mean, we ALL print less than 20 years ago, but all the more reason to test these features which, when you need them to work you REALLY need them to work).

<comment><USER24> Perhaps you're thinking back to the days of manually configuring CUPS?

Any recent printer I've used has just been plug it in and hit print. A better experience than Windows in terms of included drivers and bonjour support too.

<comment><USER25> No, you've simply been lucky.

<comment><USER26> I can say my experience matches the above posters as well. Printing in Ubuntu works better than OSX and Windows for the 4 different printers I use regularly.

<comment><USER27> My experience with both OSX and Windows is that you just need to plug a printer in and it just works. Can't remember that ever happening with BSD/Linux in my experience. :( But it sounds like things have improved which is good to know.

<comment><USER28> In Arch Linux (and this is _Arch Linux_ ) all I ever had to do was install avahi (explained in the docs) and CUPS would find the printers automatically. On the other hand, I know of several cases where an OS X machine would cause unauthenticated printers on the same network (without any printing being done by the user) to start printing hundreds of pages of what looked like service discovery packets.

</comment></comment></comment></comment></comment></comment><comment><USER29> Stuff like this is why I find "Synthetic Biology" so fucking scary.

<comment><USER30> Don't worry, the natural stuff is probably just as messy, or worse.

If it helps, remember that grey-goo already took over the world, and you were born part of it.

</comment></comment><comment><USER31> During my studies I had a course called "Advanced Network Administration". I learnt about the OSPF routing protocol and its Quagga [1] implementation and I had to prepare a simple installation that consisted of 3 Linux machines. They were connected with cheap USB network adapters.

After everything was configured I started the Quagga daemons and somehow they just didn't want to talk to each other. I've opened tcpdump to see what happens and the OSPF packets were exchanged properly. After a while the communication and routing was established. I thought that maybe the services just needed some time to discover the topology.

I've restarted the system to see if it's able to get up automatically, but the problem reoccured - daemons just didn't see each other. Again, I launched tcpdump, tweaked some settings and now it worked - until it didn't a few minutes later.

It take me a long time to find out that diagnostic tool I've used had actually changed the observed infrastructure (like in the quantum world). tcpdump enables the promiscuous mode on the network interfaces and apparently this was required for Quagga to run on the cheap USB ethernet adapters. I've used the ifconfig promisc and after that the OSPF worked stable.

[1] [http://www.nongnu.org/quagga/](http://www.nongnu.org/quagga/)

</comment><comment><USER32> CERN: LEP data confirm train time tables [http://cds.cern.ch/record/1726241](http://cds.cern.ch/record/1726241)

CERN: Is the moon full? Just ask the LHC operators [http://www.quantumdiaries.org/2012/06/07/is-the-moon-full- ju...](http://www.quantumdiaries.org/2012/06/07/is-the-moon-full-just-ask-the- lhc-operators/)

</comment><comment><USER33> Near the end of that post, the commenter suggested a fix that includes the most qualified Useless Use of Cat entry[0] that I've ever seen!

       cat | sed ... > $INPUT_TEMP

[0] [http://porkmail.org/era/unix/award.html#cat](http://porkmail.org/era/unix/award.html#cat)

</comment><comment><USER34> Wait till you see where they found the print server!

[http://www.informationweek.com/server-54-where-are- you/d/d-i...](http://www.informationweek.com/server-54-where-are- you/d/d-id/1010340)?

</comment><comment><USER35> Surely the real bug is the reliance on the 'file' utility in the first place? It attempts to quickly identify a file that could be literaly anything so it's not surprising (and indeed should be expected) that sometimes it gets it wrong.

I don't know the details of the CUPS script but presumably it can only deal with a small number of different file types. Implementing it's own detection to positively identify PS vs whatever other formats it deals with vs everything else would be far more robust.

</comment><comment><USER36> One of our users complained that she could no longer print PDF documents. Everything else, Word, Excel, graphics, worked fine, but when she printed a PDF ... the printer did emit a page that - layout-wise - pretty much looked like it was supposed to, except all the text was complete and utter nonsense.

Or was it? I took one of the pages back to my desk, and later in the day I had an idle moment, and my eyes wandered across the page. The funny thing is, if I had not known what text was supposed to be on the page, I would not have noticed, but the text was not random at all. Instead, all the letters had been shifted by one place in the alphabet (i.e. "ABCD" became "BCDE").

I went back to the user and told her to check the little box that said "Print text as graphics" in the PDF viewers printing dialog, and voila - the page came out of the printer looking the way it was supposed to.

Printing that way did take longer than usual ( _a lot longer_ ), but at least the results were correct.

To this day, I have no clue where the problem came from, and unfortunately, I did not have the time to investigate the issue further. I had never seen such a problem before or after.

In a way it's part of what I like about my job: These weird problems that seem to come out of nowhere for no apparent reason, and that just as often disappear back into the void before I really understand what is going on. It can be oh-so frustrating at times, but I cannot deny that I am totally into weird things, so some part of me really enjoyed the whole experience.

</comment><comment> mark-r I love the modification that pipes the output of cat into sed; doesn't he realize that cat is redundant at that point?

<comment><USER37> I'll admit to being a superfluous cat user. I just like typing cat.

</comment></comment><comment><USER38> I once had the case with a desktop system that when you sat down and started typing it often hardware reseted. Turned out Dell left some metal piece in the case which was hanging between the case and the motherboard (in those few millimeter) and with some stronger desk vibration caused a shortcut.

</comment><comment><USER39> Here's a great collection of classic bug reports (including the never- printing-on-tuesdays): [https://news.ycombinator.com/item?id=10309401](https://news.ycombinator.com/item?id=10309401)

</comment><comment><USER40> My 6502 based FORTH systems would sometimes crash for no apparent reason after I tweaked some code and recompiled it. Whenever it got into crashy mode, it would crash in a completely different way, on a randomly different word. I'd put some debugging code in to diagnose the problem, and it would either disappear or move to another word! It was an infuriating Heizenbug!

It turns out that the 6502 has a bug [1] that when you do an indirect JMP ($xxFF) through a two byte address that straddles a page boundary, it would wrap around to the first byte of the same page instead of incrementing the high half of the address to get the first byte of the next page.

And of course the way that an indirect threaded FORTH system works is that each word has a "code field address" that the FORTH inner loop jumps through indirectly. So if a word's CFA just happened to straddle a page boundary, that word would crash!

6502 FORTH systems typically implemented the NEXT indirect threaded code inner interpreter efficiently by using self modifying code that patched an indirect JMP instruction on page zero whose operand was the W code field pointer. [2]

JMP indirect is a relatively rare instruction, and it's quite rare that it's triggered by normal static code (since you can usually catch the problem during testing), but self modifying code has a 1/256 chance of triggering it!

A later version of the 65C02 fixed that bug. It could manifest in either compiled FORTH code, or the assembly kernel. The FIG FORTH compiler [3] worked around it at compile time by allocating an extra byte before defining a new word if its CFA would straddle a page boundary. I defined an assembler macro for compiling words in the kernel that automatically padded in the special case, but the original 6502 FIG FORTH kernel had to be "checked and altered on any alteration" manually.

[1] [http://everything2.com/title/6502+indirect+JMP+bug](http://everything2.com/title/6502+indirect+JMP+bug)

[2] [http://forum.6502.org/viewtopic.php?t=1619](http://forum.6502.org/viewtopic.php?t=1619)

"I'm sure some of you noticed my code will break if the bytes of the word addressed by IP straddle a page boundary, but luckily that's a direct parallel to the NMOS 6502's buggy JMP-Indirect instruction. An effective solution can be found in Fig-Forth 6502, available in the "Monitors, Assemblers, and Interpreters" section here. (The issue is dealt with at compile time; there is no run-time cost. The word CREATE pre-pads the dictionary with an unused byte in the rare cases when the word about to be CREATEd would otherwise end up with a code-field straddling a page boundary.)"

[3] [http://www.dwheeler.com/6502/FIG6502.ASM](http://www.dwheeler.com/6502/FIG6502.ASM)

        ;    The following offset adjusts all code fields to avoid an
        ;    address ending $XXFF. This must be checked and altered on
        ;    any alteration , for the indirect jump at W-1 to operate !
        ;
                  .ORIGIN *+2

[...]

                  .WORD DP       ;)
                  .WORD CAT      ;| 6502 only. The code field
                  .WORD CLIT     ;| must not straddle page
                  .BYTE $FD      ;| boundaries
                  .WORD EQUAL    ;|
                  .WORD ALLOT    ;)

<comment><USER11> I vote this as the best heisenbug I've read so far. That's sounds like such a nightmare to debug. I might have never found it due to throwing the thing in the trash and buying a different machine. Forth is easy to port after all. :)

</comment></comment><comment><USER41> I once found a bug in a weather applet that only occurred when the temperature exceeded 100 degress. The 3-digit temperature caused a cascade of formatting issues that rendered part of the applet unreadable. I believe the author used Celsius, and so would never have encountered this bug on their own.

</comment><comment><USER42> Relevant: [https://gyrovague.com/2015/07/29/crashes-only-on- wednesdays/](https://gyrovague.com/2015/07/29/crashes-only-on-wednesdays/)

</comment><comment><USER43> "tue" means "kill" in french... I wonder if a french programmer somewhere had something to do with this?

</comment><comment><USER44> And this is why we won't ever get AI. Humans seem to only manage to get to a certain level of complex before it all gets too much.

There are supposedly people in Boeing who understand literally every part of a 747, the wiring and the funny holes in the windows. But there is probably no one who understands all parts of Windows 10.

We're doomed to keep leaping like dolphins to reach a fish held too high by a sadistic Orlando world trainer

<comment><USER45> As I've said and been downvoted for before, there will never be Artificial Intelligence because a machine merely does what its program tells it. There will be plenty of Artificial Stupidity, however, as evidenced by this thread.

<comment><USER46> And you do what the neurons in your brain make you do.

Article from today - [http://www.theatlantic.com/magazine/archive/2016/06/theres-n...](http://www.theatlantic.com/magazine/archive/2016/06/theres- no-such-thing-as-free-will/480750/)

<comment> mark-r You might be interested in what Scott Adams (the Dilbert cartoonist) has to say about the current presidential election: [http://blog.dilbert.com/](http://blog.dilbert.com/)

</comment></comment></comment></comment><comment><USER47> So what's the lesson here? What should we learn from that?

<comment><USER18> Make sure you escape spaces? Or: [https://news.ycombinator.com/item?id=11718716](https://news.ycombinator.com/item?id=11718716)

</comment></comment><comment><USER48> Is it just me or does this get posted every month?

<comment> jon-wood I've never seen it before to my recollection, and I spend a possibly unhealthy amount of time checking up on the stories here, so my guess is no it doesn't.

<comment><USER48> It was a rhetorical question that was incorrect. Every month is a little bit too frequent, but not by much...

[https://hn.algolia.com/?query=openoffice%20tuesday](https://hn.algolia.com/?query=openoffice%20tuesday)

Probably because it gets mentioned often in addition to be reposted often.

</comment></comment></comment><comment><USER49> No, it is a cups bug indeed. File was never guaranteed to be precise in the first place, it is not a good idea to rely on it.

</comment><comment><USER50> Yet another reason I don't let OpenOffice or any Linux UIs slow me down. It's all about the command line and always will be.

<comment><USER51> > So it's not a problem w/ openoffice.org, cups, or the brother printer > drivers. It is a bug in the `file` utility, and documented at > [https://bugs.launchpad.net/ubuntu/+source/file/+bug/248619](https://bugs.launchpad.net/ubuntu/+source/file/+bug/248619).

This bug had nothing to do with OO. This was just a cute manifestation of the actual bug.</comment></comment>


Nightwatch.js - <AUTHOR> http://nightwatchjs.org/ <comment><USER2>
        pip install robotframework-selenium2library

        test.txt:
        *** Settings ***
        Library           Selenium2Library

        *** Test Cases ***
        Google The Night Watch
            [Setup]    Open Browser    https://google.com
            Title Should Be    Google
            Input Text    q    nightwatch
            Click Button    Google Search
            Wait Until Page Contains    The Night Watch
            [Teardown]    Close All Browsers

        pybot test.txt

Still haven't found anything that beats Robotframework when it comes to test automation. It's not just for web testing, it has many ready made libraries and creating your own is really easy.

Check it out [http://robotframework.org/](http://robotframework.org/)

<comment><USER3> All of the web testing over here at SMART is done via Robot Framework. It's verbose and tricky to use sometimes, but it's entirely accessible to a number of people who are not developers and can be very productive in it.

</comment></comment><comment><USER4> I'm curious why they didn't build on the "wd" implementation of the WebDriver protocol for Node.js: [https://github.com/admc/wd](https://github.com/admc/wd)

Personally I like just using "wd" along with a promise helper library or two.

Here's an example using q-proxy ([https://npmjs.org/package/q-proxy](https://npmjs.org/package/q-proxy)) and q-step ([https://npmjs.org/package/q-step](https://npmjs.org/package/q-step)). The result is a pretty nice syntax (admittedly nicer in CoffeeScript than JavaScript) and a lot more flexibility to do other logic:

        browser = QProxy(wd.promiseRemote("localhost", 4444))
        QStep(
          -> browser.init(browserName: "firefox")
          -> browser.get("https://www.facebook.com/")
          -> browser.elementById("email").type(credentials.email)
          -> browser.elementById("pass").type(credentials.password)
          -> browser.elementById("u_0_b").click()
        )

Or wd's own built-in promise chaining is pretty similar to Nightwatch.js as well:

      browser
        .init({browserName:'chrome'})
        .get("http://admc.io/wd/test-pages/guinea-pig.html")
        .title()
          .should.become('WD Tests')
        .elementById('i am a link')
        .click()
        .eval("window.location.href")
          .should.eventually.include('guinea-pig2')
        .back()
        .elementByCss('#comments').type('Bonjour!')
        .getValue().should.become('Bonjour!')
        .fin(function() { return browser.quit(); })
        .done();

</comment><comment><USER5> This looks nice, but there are a lot of sugar libraries over the webdriver protocol, its the smallest part of the problem of real browser testing but it has lots of solutions, the real problems have almost 0 choice.

What I really want is a selenium server 30MB, firefox speaks the webdriver protocol natively, I dont see why a proxy server to a browser needs to be 30MB (40 including chromedriver?, it pretty much needs to launch browsers and proxy requests, the project that launches the browsers should probably be its own project for that matter.

If anyone can point me to a project working on that, I would highly appreciate it :)

<comment><USER6> I'm working on [https://github.com/scriby/browser- harness](https://github.com/scriby/browser-harness). It's a little different in approach because it doesn't use selenium at all (rather it uses a websocket connection with the browser to control it).

It's considerably more lightweight and compatible with all browsers you care about, but you can't do everything you can do with selenium.

We've been using it for about 6 months at work and having good results.

<comment><USER7> This looks interesting and I have something I'd like to use it on, but the documentation could add a few things. How do I install this? How do I run a script?

<comment><USER6> Good point.

Check out [https://github.com/scriby/browser-harness-bootstrap- tests](https://github.com/scriby/browser-harness-bootstrap-tests) for a full example. Browser harness itself is just a conduit between node and a browser - you need to provide the test framework yourself (mocha, vows, etc.).

<comment><USER7> Awesome! I'm going to try it out now.

</comment></comment></comment></comment></comment><comment><USER8> For the codebase is dark and full of terrors.

<comment><USER9> Is this a pun on the name, or a genuine critique of the source code?

As having a quick scan of the source code, it looks very well written! Especially for javascript, not many people can write javascript well.

<comment><USER10> I'm pretty sure it's a Game of Thrones pun :)

<comment><USER8> Yes, 'tis a pun :)

</comment></comment></comment></comment><comment><USER11> We're having great success doing our integration tests without using Selenium.

At [http://clara.io](http://clara.io), our app is a fairly typical client-side Backbone.js app, so our integration tests can use standard backbone, mocha and jQuery constructs. Instead of using selenium, we use contructs like on('show').

The only thing that we actually use selenium for is for starting the browser from the command line.

</comment><comment><USER12> Offtopic:

the line

> .waitForElementVisible("button[name=btnG]", 1000)

in the demo test caught my attention - what is a good way to achieve this in production code? i.e. execute a function when a certain element which matches the query becomes visible?

atm i'm using the DOMNodeInserted event (debounced)

> $(document).on('DOMNodeInserted', _.debounce(function(e, ui) {}, 100);

<comment><USER13> Take a look at Mutation Observers. The only problem might be browser support: [http://caniuse.com/#search=MutationObserver](http://caniuse.com/#search=MutationObserver)

</comment></comment><comment><USER14> So I'm about to get into building a large scale browser-based app testing solution, but the testing I'm doing isn't one of correctness, but of performance. This is a particularly persnickety problem since I need a solution where the probing itself doesn't introduce side effects that invalidate the test results. For example, many of the solutions I've seen use iFrames to isolate the test environment, but that introduces an entirely new and significant layer of redirection, especially when your results rely on GPU-related functions like CSS transforms.

Can anyone who has done lots of browser based testing shed light on what solutions out there introduce the fewest or no side effects when probing?

</comment><comment><USER15> I've created a similar project that uses jasmine and formats the test cases into general purpose flows.

The motivation is to economically (both in test suite run time and development time) test the system's many edge cases, including race conditions.

[https://github.com/btakita/jasmine-flow](https://github.com/btakita/jasmine- flow)

It's only dependency is jasmine. I use it with jsdom, so I can test all > 95% client's edge cases in a reasonable amount of time and confidence of the software working. This allows me to run the entire test suite before commits on mature projects.

</comment><comment><USER16> I'm surprised there's yet another JS implementation of the webdriver protocol. I wonder what was lacking in the existing frameworks from the author's perspective?

 _disclaimer: I work on[https://github.com/admc/wd](https://github.com/admc/wd) and [https://github.com/jlipps/yiewd](https://github.com/jlipps/yiewd), which are other webdriver clients for Node_

</comment><comment><USER17> Good to see enough people interested in automation providers to make the front page.

After a few years building/maintaining a similar library I've found the key is simplifying peoples lives but making sure they can still do 'everything'.

Does Nightwatch implement the entire WebDriver JsonWire protocol or just the bits needed for the provided actions?

Cool stuff

</comment><comment><USER18> what benefit does it have in comparison to casperjs?

<comment><USER19> Also, this is Node.js compatible - CasperJS is not.

<comment><USER20> whatever casperjs is as compatible with nodejs as this stuff.This stuff uses selenium,it's not a stand alone solution.

</comment></comment></comment><comment><USER21> Looks similar to Angular's Protractor, but with more conventional (and easier to understand) syntax. Seems too easy not to try.

[https://github.com/angular/protractor](https://github.com/angular/protractor)

<comment> mck- I've been using Protractor for a month now and am eager to give Nightwatch a try:

\- debugger is awful, horrible stack dumps (sometimes just no stack info, you have no idea where the test failed) \- very slow \- selectors for ng-repeats are so hard to decipher (I still don't get them)

</comment></comment><comment><USER22> So similar to Soda ([https://github.com/LearnBoost/soda](https://github.com/LearnBoost/soda)) by the looks of it, but with Selenium server management and CI support.

</comment><comment><USER23> Can anyone point me to a list of the various tools that automate web browsing (typically for automated testing) and the various layers of abstraction built on top of them?

<comment><USER24> Selenium (browser automating) might be what your looking for.

The Boston PHP group had a talk this week on integrating Selenium, phantomJS (headless browser) and Jenkins (continuous integration). Its php based talk, but at the end he showed the javascript version of the same tests.

[https://github.com/balancerockmedia/boston-php-automated- tes...](https://github.com/balancerockmedia/boston-php-automated-testing)

<comment> Aco- is there a video of this presentation by any chance? I can't seem to find the JS tests in that repo either.

<comment><USER24> [https://www.youtube.com/watch?v=dbbUXjRUMPo](https://www.youtube.com/watch?v=dbbUXjRUMPo)

</comment></comment></comment></comment><comment><USER25> Awesome! I wonder how easy it would be to integrate [http://galenframework.com](http://galenframework.com) with this

</comment><comment><USER26> This is great, I've put together some examples/tests pretty easily - can't wait to dive in deeper.

Any plans to integrate with Grunt.js?

</comment><comment><USER27> How is it any different from wd.js?

</comment><comment><USER28> The API looks sweet. Looking forward to trying it out this weekend.

</comment><comment><USER29> Is there anything like this for an RDP connection?</comment>


FCC won't delay vote, says net neutrality supporters are "desperate" - <AUTHOR> https://arstechnica.com/tech-policy/2017/12/fcc-chair-refuses-to-delay-net-neutrality-vote-despite-pending-court-case/ <comment><USER2> After reading about Pai, it seems like he was hand selected to be the figure head with which the ISPs would finally take down Net Neutrality.

This whole situation sucks, and no matter how much noise we make and activism we take part in, if Pai has the legal footing to ruin the internet, he will.

<comment><USER3> > After reading about Pai, it seems like he was hand selected to be the figure > head with which the ISPs would finally take down Net Neutrality.

He's not. He's a generic Republican, appointed by Obama (since the commission is obligated by Congress to have no more than a simple majority of appointees from any one party).

The problem is, this is what all Republicans are like nowadays. Any other person that Obama could have appointed would be doing the exact same thing in these circumstances. And in fact, virtually every other regulatory agency and department _is_ doing the exact same thing thanks to Trump appointees. They are un-interested in any semblance of reasonable governance, it's siphoning your money to their backers in the most direct and aggressive fashion, plain and simple.

Elections have consequences. A lot of prominent Silicon Valley figures backed Trump figuring it would be an easy tax cut for them, and this is the result. What's that story Trump liked to tell around the campaign trail, the frog and the scorpion?

Everyone fantasizes they'd be the ones to come out on top (Ayn Rand wrote a whole book about it!), but there is always a bigger fish. Welcome to laissez- faire capitalism, where buying the government is part of the game. Free Markets are not a stable social structure by themselves, they need government regulation to keep the playing field level.

The truth is not in the middle, and not all viewpoints have equal merit. We have one reasonable party whose positions you may or may not like, and one batshit insane party that begins tearing everything down as soon as they're in power. Shame it takes a lesson like this for people to realize that.

Sorry to be blunt, and sorry to bring politics into this forum. But that's the way it is.

<comment><USER4> There isn't a "reasonable" party, the Democrats could have made this a law making repealing it difficult. They found the to give ISPs billions of dollars, and to legalize spying on their customers though.

Both parties are a joke, voting for either is an awful choice.

<comment><USER5> That's a lie, plain and simple. 2017 is the year that the claim that both parties are just as bad went from being a somewhat valid commentary on American politics to the cries of the intellectually lazy.

One party would not attempt to ram throw a bill that took away health insurance for millions without a back plan. One party would not attempt to ram through a tax reform bill that was literally being amended on the floor before the vote. One party would not let a federal agency make a sweeping change that the overwhelming majority of Americans do not support. One party would not allow the president of the United States to use Twitter to incite violence and spread out racist messages. I can go on, but the point is that had Clinton won, this year would not have been such a mess as the Republican party bungles it's way around trying to pillage and loot America for the benefit of its donors.

<comment><USER6> Be careful who you call "intellectually lazy."

<comment><USER5> Anyone who claims both parties are the same after the past year is intellectually lazy.

<comment><USER4> Intellectual laziness is reading "both parties are a joke" as "both parties are the same."

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> If ISPs are going to gut net neutrality, we need a way to introduce real competition into the market. I wouldn't care if Comcast wanted to sell me access to 5 websites for $99 or whatever crap they're trying to pull if I had the option to switch to a better deal somewhere else.

Strong state and local laws protecting the right to form municipal ISPs would be a good start. Those seem to scare Comcast & friends the most. If corporate ISPs become significantly restrictive, I think we'd see a big upsurge in interest for municipal broadband.

<comment><USER8> Telecommunications tend to form a natural monopoly. It's a bit like roads and railroads, only you're transporting information rather than people. I looked online and it's got all the common characteristics: there are few close substitutes, the product is non-storable (although, maybe if it gets bad enough in the US we'll start seeing services that mail us USBs full of last week's Hacker News posts), supply is all about location, and fixed costs are unusually high relative to variable costs.

<comment><USER9> Oh no, don't you read mises and vood^H^H^H^HAustrian Economics? Natural monopolies don't exist: [https://mises.org/library/myth-natural- monopoly](https://mises.org/library/myth-natural-monopoly)

<comment><USER10> Natural monopolies exist, but they don't perpetually persist. They can fluctuate between monopoly, single firm with pricing power plus challenger(s), unstable market, and complete market collapse with no suppliers.

Legally protected monopolies are intended to avoid the latter state, especially where interruptions of service could have ripple effects on other industries.

I believe the legislative goal was never about costs or overbuilt infrastructure, but to ensure that at least one provider was always available. So they chose to mandate that there could never be more than one. For the sake of having a dial tone 99.99% of the time, they made the choice for everyone that phone service would cost more, for everyone, every day, forever.

Talking about "natural monopoly" is just a distraction. The _de jure_ monopoly is about the difference between "no choice" and "zero choices". You may have made the same choice on a smaller scale when designing code that expects exactly one input instead of zero to N inputs. An alternate solution would be to operate a state-owned, not-for-profit utility, as the supplier of last resort, but that has its own problems, which may be more or less difficult than the monopoly problems, depending on specific circumstances.

Von Mises is a good economics resource for libertarian-leaning folks, but you can't trust any single macro-economist to get everything right. I'm actually not sure any single one of them is more than 50% correct, or even if their amount of correctness is stable over time. Markets have this annoying habit of integrating all information, whether true or false, and reacting to it. This includes everything that all economists in all schools have ever written. It truly is a dismal science.

</comment></comment></comment></comment><comment><USER11> Well, he's not wrong. We are desperate - desperate to keep our internet free from corporate greed.

<comment><USER12> Right? "Genocidal conqueror won't delay massacre, says civilians are 'desperate'"

</comment></comment><comment><USER13> His smug attitude of showing how he doesn't care about the public he is supposed to serve, will be his downfall in court.

<comment><USER14> No, it won't be.

Anything involving this will be handled by gov't lawyers, not by him, and you can bet if he does end up in front of the court, his responses will be 100% coached by those lawyers.

<comment><USER15> Federal court cases have already been influenced by the current administration's actions (speeches, interviews, tweets) outside of court documents and statements by attorney. What Pai says now can indeed be referenced within court proceedings. Whether that will be effective or not is unclear.

<comment><USER16> The court system seems to be looking the other way with this current administration though, so I wouldn't get your hopes up too high that his actions would have any effect on any court case.

</comment></comment></comment></comment><comment><USER17> Does anyone remember when Jack Valenti was widely mocked for his being instrumental in abusing the rights of consumers? There were huge campaigns against the MPAA and Valenti.

Where's the PR push back from the techno-intelligentsia? Why aren't we pointing out Pai's attacks on the rights of American citizens? Why aren't we pointing out to regular people why this is clearly an attack on one of the few freedoms they have left? Where are the "Put this in your Pai hole" t-shirts and bumper stickers?

<comment><USER18> By now they're probably suffering from nihilistic-destruction-of-institutions- failure-of-imagination fatigue.

</comment></comment><comment><USER19> What are our alternatives for wireless and wired ISPs? I'm done with the incumbents.

I'm familiar with Republic Wireless and Google Fi, but I'm a long-time iPhone user who doesn't really want to switch. Are there any similar carriers who fully support iOS?

Given the control wired home ISPs have, what are the alternatives? Is there a good, reasonably affordable wireless alternative?

<comment> super-serial I was thinking of Project Fi but Google just buys the data from TMobile/Sprint/US Cellular. So the same carriers just get richer, giving them more power. There's really no way to hurt the carriers or ISPs bottom line.

The only thing I can think of is supporting municipal broadband. I wish there was some generic nation-wide municipal broadband fund I could pledge to donate to if net neutrality is revoked. I'd even pledge the same monthly amount I pay my ISP.

<comment><USER20> Project Fi also locks you into Android phones. Good luck running an iPhone, or Windows phone, or Sailfish OS phone on that.

<comment><USER21> As I understand it activation requires using an android phone, but it's entirely possible to then use it with an iPhone.

</comment></comment></comment></comment><comment><USER22> So, suppose everyone's worst nightmares come true - the FCC proceeds down the path it's currently on and ISPs begin to implement arbitrary throttling/blocking of content. How will something like SpaceX's planned "mesh network" of thousands of internet-providing satellites affect the landscape?

</comment><comment><USER23> "Chairman Pai's plan to restore Internet freedom"

This phrase bugs me so much. I can't believe they're calling the end of net neutrality "internet freedom".

<comment><USER24> There is an argument to be made that hijacking the word "freedom" for this was already half the battle for repealing net neutrality. Good luck battling "freedom" in America... If only the other side could have gotten there first.

</comment></comment><comment><USER25> Honest question, what changes can we expect as ISP consumers if this happens?

A follow up, if all it is is them charging customers more for using more bandwidth, how is that any different from any other fundamental resource like water, electricity, etc? Why should I pay as much money for my SSH and Hacker News as the guy down the street streaming Netflix all day?

<comment><USER26> That's a good question. Net Neutrality is _not_ about whether an ISP can charge you more for using more bandwidth. It's about whether an ISP can charge your more (or restrict your usage) based on _which websites you communicate with_.

One way to think of it is that we already have "electric neutrality" (not a real term), which is to say, you pay for the amount of electricity you use, but you're free to plug in any appliance you want. Losing "electric neutrality" would mean that, for example, your utility could charge you more or less for plugging in an Apple microwave than a Microsoft microwave. That would be insane. Can you imagine trying to start a company selling a new appliance if you had to pay a special fee to an electric company to stop them preventing your customers from plugging it in?

Net neutrality supporters want the internet to be treated like a utility. We are willing to pay for the _amount_ of data we use, but we are not willing to let an ISP decide which websites should have their data made cheaper or more expensive.

An internet with net neutrality is one where you pay for access to the _whole_ internet (perhaps per Gb or perhaps your ISP chooses to sell you a plan with unlimited data). An internet without net neutrality is one where you might pay $X for a connection that only talks to Facebook, and connecting to Gmail costs $Y more. A brand-new startup in a world without net neutrality is at a huge disadvantage if they aren't included in the package of websites that a customer buys. That's the end of the internet as we know it.

<comment><USER27> > you pay for the amount of electricity you use, but you're free to plug in > any appliance you want

You can get metered at different rates for different uses for electricity. A simple example I found just now is shown in [https://www.eversource.com/content/docs/default- source/rates...](https://www.eversource.com/content/docs/default-source/rates- tariffs/ct-electric-rates.pdf) (see Rate 1 vs Rate 5 vs Rate 18), but that sort of setup is pretty common.

Now, this is metering based on _type_ of use (heating vs hot water vs whatever else), not based on the manufacturer of your water heater. But to be a devil's advocate for a moment, this is the sort of thing ISPs _claim_ they want to do: prioritize certain _types_ of content over others. Now I don't believe them on this, of course...

But a priori, there is not necessarily a problem with an internet where you pay one rate for data streams that need certain bandwidth and latency guarantees and a different rate for ones that don't. That would be equivalent to the different-uses electrical billing above.

</comment></comment></comment><comment><USER28> On the verge of being sold out by a corporate shill? You can bet we are desperate.

</comment><comment><USER29> I feel more helpless now than I did on November 9th, 2016.

<comment><USER30> Make sure you are registered to vote if you are in the United States. And vote in every election. Even something that seems small like school board has more implications then we know.

<comment><USER16> Give me candidates worth voting for first.

<comment><USER31> This is the most important issue. The system is rigged in favor of the incumbents in many, many ways.

<comment><USER30> Nothing stopping you from running, even if it is to just push the conversation in a certain direction.

</comment></comment></comment></comment></comment><comment><USER32> Yes, we are desperate for a representative government. May we have one please?

</comment><comment><USER33> It's really unlikely anyone is going to convince a Republican to vote for a Democrat, or vice versa. It's not like politics in other countries were people are willing to switch parties when it's obvious the representation isn't working to their interests. The U.S. is stuck in tribalism for the foreseeable future, if anything it probably gets worse before it gets better.

The motivation though, should be on the ~55% of eligible voters who don't vote. If nothing else I think we'd get a better signal to noise ratio in the actual election results, which is exactly why Republicans make up lies about voter fraud, in order to make it harder for citizens to vote. Notice how they aren't running to secure old voting systems and make them auditable. No they go directly to voter suppression and gerrymandering. And it makes complete sense, because if they stop doing that, they lose.

</comment><comment><USER34> Are there any tools we should download before half the internet is blocked?

(Can't believe I had to just write that).

<comment><USER35> Get Tor while it still lasts. And just about anything on gnu.org's ftp servers.

</comment></comment><comment><USER36> Is there really no alternative to using an ISP for a connection?

Is it possible to build a decentralised and encrypted network on our mobile phones? I guess we still have to run traffic through mobile service providers...

<comment><USER37> <speculation> Use an educational or national institution for an Internet connection, bypassing commercial networks.

<comment><USER38> Those educational networks still connect to the commercial networks, via commercial ISPs.

</comment></comment></comment><comment><USER39> Well. _Maybe_ it's really just about allowing ISPs to run the same exploitative business models as Google's intimate personal information empire, Google/Apple's 30% tax app stores with far from neutral content policy, etc.

But how about giving them some credit? Maybe the plan is to temporarily allow ISPs to suck on some of Google/Youtube monopoly rents (weakening their defenses) while regulators look into regulating the _whole_ pile of internet monopoly garbage?

It's possible. And it would be so good.</comment>


Did Obama Just Destroy the U.S. Internet Industry? - <AUTHOR> http://techonomy.com/2013/06/did-obama-just-destroy-the-u-s-internet-industry/

<comment><USER2> I don't want to be "that guy", but this exact article was posted here earlier this week, from the same author but a different website:

[http://www.linkedin.com/today/post/article/20130609225334-16...](http://www.linkedin.com/today/post/article/20130609225334-16549-did- obama-just-destroy-the-u-s-internet-industry)

I wouldn't usually bother (plenty of people might have missed the original posting) but what's with that awful typeface on the techonomy.com website? It's a serious impediment to readability, so I think the linkedin.com version is better for that reason alone.</comment>


New Threat to Aereo TV in California Court - <AUTHOR> http://online.wsj.com/article/SB10001424127887323820304578410622624628176.html

<comment><USER2> Non-paywalled story: <http://www.courthousenews.com/2013/04/02/56302.htm></comment>


Microsoft already eyeing Google and Apple with Windows 8 - <AUTHOR> http://arstechnica.com/microsoft/news/2009/12/microsoft-eying-google-apple-with-windows-8-development.ars

<comment><USER2> And the distraction of MS continues.... Microsoft really needs some focus. Their incessant desire to go after every single area of the consumer space (no matter the cost) is a massive drag on their ability to execute. Contrast that with a company like Oracle, who as far as I know makes zero consumer-facing products. Likewise, both Google and Apple are just not competitive with MS in the corporate space. Nibbling around the edges? Sure. But serious competition? Not really. Google's mail hosting is probably the only spot where MS faces genuine competition from google, but they are at a disadvantage there because IT shops (especially ones in places where privacy is paramount like healthcare) are very reluctant to let all that email go outside their walls.

What MS really needs, is to make Windows Server so compelling that even a unix guy like me looks at it and says, "You know, that would be way better than putting my stuff on Linux". That's a tall order, but it's possible (at least with the non-religious side of the Linux user base).</comment>


E. O. Wilson Still Thrives on Being a Scientific Provocateur - <AUTHOR> https://www.wired.com/story/at-90-e-o-wilson-thrives-on-being-a-scientific-provocateur/ <comment><USER2> My son (he's 12) is currently _infatuated_ with ants, he bought a colony from a GAN farmer through AntsCanada and is watching his videos all the time (they are great, by the way). We checked out Holldobler and Wilson's epic tome _Ants_ (it's too expensive, even for a used copy, but a beautiful, large volume) but he found Wilson's _Journey to the Ants_ much more readable, he's going through it page by page, taking notes, which I've never seen him to with a book before.

So, this led to some ant-related discussions with him. Did you know that ant colonies can have memories older than individual ants? (see this great Ted talk: [https://www.ted.com/talks/deborah_gordon_digs_ants?language=...](https://www.ted.com/talks/deborah_gordon_digs_ants?language=en)) The bizarre concept of eusociality also came up, how did such a thing involve? If ants (and termites and bees) are so successful with this strategy why wasn't it adopted by more species? According to [https://en.wikipedia.org/wiki/Eusociality](https://en.wikipedia.org/wiki/Eusociality) very few animals other than these exhibit eusociality (humans aside, which presents a complicated case).

There's fierce debate about the evolution of eusocial behavior, kin selection vs. other explanations. Wilson's theory presented in his 2010 _Nature_ paper, co-written with two mathematical biologists [1], seems to be at odds with others and generated a strong reaction from other researchers [2] (see this Quora answer for a high-level intro to this technical discussion: [https://www.quora.com/Does-EO-Wilson-Corina-Tarnita-and- Mart...](https://www.quora.com/Does-EO-Wilson-Corina-Tarnita-and-Martin- Nowaks-paper-on-eusociality-spell-the-death-of-gene-level-selection-in- evolutionary-biology)).

My son is planning to put his mark on this debate in next year's science fair by trying to measure DNA similarity of worker ants from his colony :-)

[1] [https://www.nature.com/articles/nature09205](https://www.nature.com/articles/nature09205)

[2] [https://www.nature.com/articles/nature09836](https://www.nature.com/articles/nature09836)

<comment><USER3> > very few animals other than these exhibit eusociality (humans aside,

Technically, humans are not eusocial, which by definition requires a biological division of reproductive labor. Most eusocial species actually have significant morphological differences in their classes (i.e. females that physically can or cannot reproduce).

Wilson tends to repeat the idea of humans and other primates as eusocial which I find confusing.

Eusociality and its evolution is indeed a fascinating topic. There are some great discussions on this from WD Hamilton (the study of led him to inclusive fitness theory and kin selection) and Richard Alexander (who discovered the only eusocial mammal - the naked mole-rat).

<comment><USER4> > humans are not eusocial, which by definition requires a biological division > of reproductive labor

Wouldn't the biological division of labor regarding breast-feeding in humans be sufficient? It's a significant morphological difference.

<comment><USER5> Not sure why you're being downvoted. You're right of course that the male/female distinction of sexual reproduction is in itself is a clear case of 'biological division of reproductive labor'. Child-bearing itself is an even clearer example than breast-feeding. I'm not sure jly was really getting at the core aspects of eusociality there.

Humans aren't eusocial, but we certainly have division of reproductive labor. So do non-social sexual species.

</comment></comment></comment></comment><comment><USER6> His book, _Letters to a Young Scientist_ , is a great read even if you're not a scientist. It's one of those books you wish you had read when you were a teenager.

</comment><comment><USER7> I love Ed Wilson. But I think it's so odd that his group selection theories get such a fawning treatment by journalists. I mean, he publishes in Nature, and the next month 140 other evolutionary biologists sign a letter telling him that he's wrong. He claims it's because his new idea is threatening everybody else's livelihoods. But surely it's more parsimonious that when it's 4 against 140 that the 4 are just plain wrong.

<comment><USER8> Clearly I'm no expert in the field, but I've no understood the objections to group selection.

From what I've read, the objector claim that genes get selected and this slection necessarily passes by reproduction which is done on an individual basis.

Yet, especially inthe example of ants, two neighbour colonies of ants of the same specie might have a queen with different genes and if the difference grant and advantages the one with the better gene pool with spawn other similar colonies which woudl supplant the inferior one. In each colonies, non- reproductive ants with the better gene don't reproduce themselves but yet it's their better genes that supplant the neighbouring colonies. The queen does no work other than lay eggs, so it does not not contribute the the higher success rate ofthe colonies. Clearly, the behaviour of non-reproducing ants has a direct influence on the gene pool.

For example, the better gene might make better warrior ants. They don't reproduce themselves, yet the gene helps the colonies.

The same argument could be made of two wolf packs, or any two competing group. Of course, in those case, you can look at it at an individual level, but the better gene will sprad at the group level. (Ignoring if a wolf could switch pack to spread the gene to the other pack. I'm here assuming this doesn't happen for the sake of the argument.) The more social the species, the more the group-level genes can influence the chances of reproductions of those not harboring the gene but part of the group, which make the group more successful, which eventually will make the gene spread in the group through gene exchange and selection during reproduction. For example, if the gene leads to better caring between individuals, it benefits the entire group harboring individual with that traits and eventually the group with the highest percentage of that gene will win out.

<comment><USER7> It's a little tough to explain without resorting to a level of math nerd that is hard to type out here, but the basic problem with it is that there's too much gene flow between demes (partially isolated intra-breeding populations), and that swamps the relatively weak effects of natural selection. It's part of the reason that almost all speciation is allopatric, because without that isolation, the effects of selection get wiped out by cross-breeding.</comment></comment></comment>