Relax, it'll be 1,500 years before aliens contact us - <AUTHOR> http://phys.org/news/2016-06-itll-years-aliens-contact.html <comment><USER2> I think it's ridiculous for us to look for alien _civilizations_. Why would any intelligent person think that civilizations are stable? I mean, would you really think such a system is stable: Billions of independent sentient planet- polluting evolving biological machines with their own goals continually rewriting their own software (culture) and exponentially increasing their capabilities and rates of change? That has _Chaos_ written all over it.

Whatever prospers and lasts in the universe as we know it isn't going to be anything like a _civilization._ It's certainly going to be nothing like our civilization. In fact, if there is a galactic meta-"society" of some sort, then one should think they'd disdain a chaotic exponentially-expanding _civilization_ in much the same was as we'd individually view an incontinent, incoherent, and violent member of our own species.

The fact that we'd expect other civilizations out there is just evidence of our own parochial bias. The stark truth of the Fermi Paradox is that civilizations as we conceive of them simply don't last very long -- which also matches everything we as a civilization have come to know about systems that resemble our civilization. If "we" are going to last, "we" will have become something hard to comprehend and hard to accept by our present day selves.

[https://xkcd.com/638/](https://xkcd.com/638/)

[https://xkcd.com/1377/](https://xkcd.com/1377/)

<comment><USER3> I suspect you come from a culture that portrays itself as disconnected from nature. You think of civilization as a kind of nihilistic growth machine that is totally devoid of meaning. That makes sense. I see a lot of that when I look at the world too.

But not every civilization is like that. There is a form of civilization which exists in deference to nature. There is a form of enlightenment which doesn't worship blind reproduction, but instead worships harmony with nature. It sees our role as humans not as an all-conquering virus, but as gardeners, shepherds of life. Not über-wolves, but über-trees. Some people call this "permaculture" but it has lots of other names, and has existed for millennia.

I think the culmination of human civilization is to reach a kind of pinnacle of progressive efficiency, combined with an almost regressive reverence for the past and our bodies and the ecologies which sustain them. I suspect other alien life may also be similarly inclined.

And this notion you have that planet pollution is the only way to exist is very sad. It's no better than climate denial. It's arguably more destructive, because you are suckering in smart people who would otherwise balk at denialists. I would urge you to spend some time learning about ways of living which nurture ecologies. There many such traditions, spanning every biome.

<comment><USER2> _You think of civilization as a kind of nihilistic growth machine that is totally devoid of meaning._

Oh, ho! Look who's showing up, projecting some biases! Excuse me, but would you please point out where I said that we were nihilistic or devoid of meaning? Please provide a quote. Well, you can't, because I didn't. I was implying that our current civilization is obnoxious, not nihilist. There are many children who are obnoxious, but I wouldn't say they are without meaning, beauty or potential. A child can have all of those and still be annoying as frack.

 _progressive efficiency, combined with an almost regressive reverence for the past_

You can eliminate the "almost" from that.

 _And this notion you have that planet pollution is the only way to exist is very sad._

I never said it was the only way. More projection? Again, my point is that in a galactic context, there are good arguments for why 21st century human civilization might come across as a chav.

<comment><USER3> I said "I suspect" to leave open the possibility I was wrong, which appears to be the case. I could've been clearer about that (my punctuation is ambiguous, and "suspect" was not ambivalent enough). I regret not phrasing it as a straight question.

I would still be interested to know how your position differs from mine and from my (poor) characterization of you, if you have the time.

</comment></comment></comment></comment><comment><USER4> I'm always amazed by people thinking it is possible for distant civilizations to pick up random radio signals (typically television broadcasts) that were transmitted on earth.

Any signals spreading out in space already has to deal with an inverse square law due to the wavefront being spread out. However, the amount of noise stays roughly the same all over the universe (as near as we can tell). This means that "pretty soon" (depending on the original broadcast power) the signal will be orders of magnitude weaker the the noise level in any receiver.

There are some techniques to pull up a signal from under the noise floor, eg using matched filters and the like. This is how GPS works. However, can only be done if you already know the signal that you are looking for. For GPS, this is not really a problem since it is well known what signal any given satellite will transmit at any given time. However, with TV shows (or any similarly information dense signal), the signal content is by definition not known already to another civilization.

This is not even going into the fact that high-information signals can be pretty indistinguishable from noise anyway if you don't know the exact modulation type and parameters used.

Pretty much the only way aliens will be able to enjoy our television broadcasts is if they come close enough to visit the solar system anyway, and by then they might as well land and look at cable TV...

(For more information, take a look at [http://www.bidstrup.com/seti.htm](http://www.bidstrup.com/seti.htm) or similar)

<comment><USER5> Can we rough out a modified fermi paradox equation that substitutes values for as many constants as possible, and takes into account the issue with the inverse square law vs background noise?

Also, can't you distinguish a lot of signal away from noise using parallax and paired telescopes?

</comment></comment><comment><USER6> "Combining the equations for the Fermi paradox and the mediocrity principle, the authors suggests Earth might hear from an alien civilization when approximately half of the Milky Way Galaxy has been signaled in about 1,500 years."

Not sure where the paper is, but the Milky Way galaxy is much bigger than that. The Milky Way is expected to be from 100,000 to 120,000 light years in diameter. A ~3200ly diameter sphere isn't "half" that.

<comment><USER7> Yeah, the timescale for the Fermi Paradox is millions of years; it'd be a hard sell that 1500 years can make a dent in it.

<comment><USER8> Wikipedia claims that the entire galaxy can be traversed in ~1M years. Life on earth has been around for ~3.8G years. If life started somewhere in the galaxy a few million years earlier than that, and evolved into a spacefaring civilization, it's not too far fetched that they could either have already been here, or, if they are close enough, they could pick up our signals and come for a look-see.

<comment><USER6> A while back on HN there was a discussion about whether shooting radio waves into space was a good idea, because the game theoretic solution to "why are we alone" might be that extraterrestrial civilizations pre-emptively destroy any other competition they can identify.

What finally made me reject this hypothesis is that A: you shouldn't actually wait for intelligent life to develop, because even if humans are somehow progressing at the fastest possible rate and nothing could be faster, a claim I would seriously doubt, we're still developing at this rate dangerously quickly and B: Earth has been broadcasting "I very likely have life!" for not a century since the invention of radio, but approximately 2.3 billion years, since the invention of atmospheric oxygen, which is something that should be possible to determine from great distances by looking at the spectra lines when Earth occludes the Sun. We're already doing that a bit ourselves, and our telescopes are _tiny_ compared to what a full Kardashev-1 civilization could put together, or even what _we_ could put together if this was our top priority.

Even on the cosmic scale, 2.3 billion years is a Real Amount of Time.

Unless nearly every solar system has life of a similar degree of obviousness from light-years away, making Earth's signal just noise, we've been broadcasting that we're at least worth a probe for a long time. I doubt every solar system has free-oxygen-generating life or any equivalent; you don't have to believe the "Rare Earth" arguments prove that Earth is alone for it to show that even with our current understanding of physics, chemistry, etc. it is very unlikely that every, or even a majority, of systems have advanced life in them. Given that the limits of technology that we now believe in strongly suggest that an unopposed "probe" is probably on its own sufficient to colonize a planet (and thus render it no longer a threat), it remains very strange that we're here at all, not long since displaced by an aliens.

In a weird way, it would almost make more sense from the Fermi paradox point of view if we obviously _hadn 't_ developed here and if humans were obviously aliens-to-Earth, but humans have an immaculate pedigree for being 100% all- natural Earth-sourced ingredients.

</comment></comment></comment></comment><comment><USER9> It's apparently easy to get an article published that say that aliens are all dead, minuscule or not close to reach earth. No one managed to get an article published that say that aliens have been visiting earth for many years with UFOs. There seam to be a very strong bias in peer review on this topic.

<comment><USER7> Yes, because scientists tend to be fond of evidence.

<comment><USER10> As it goes, absence of evidence is not evidence of absence.

I have never in my life seen a mountain gorilla. I am aware of evidence that shows that they exist, but at my age my grand parents did not have access to that same evidence; does that mean that mountain gorillas came into existence when the evidence was found? Almost certainly not, heh, but they would have been valid in disbelieving in the existence of such beasts.

There could be a person behind me with a knife, poised to slay me; but I am fairly confident that this is not the case due to a number of factors. On a population scale, such incidents are vanishingly few, and I took precautions earlier today to ensure that my home was locked and secured; but that does not guarantee certainty of my safety. It would be a fallacy, perhaps post hoc ergo propter hoc, for me to believe in the certainty that there is no such individual behind me. Until I turn around and observe the empty space, I cannot lay claim to the existence or non-existence of that individual.

We cannot observe all of Earth all of the time, and we cannot do so for the Solar system, or lay claim to having done so throughout history. This does not mean that aliens have visited us, or that they even exist; it means that we cannot be certain that they don't exist and that they haven't visited.

<comment><USER11> That saying is nonsense. Absence of evidence _is_ evidence of absence, with a strength that's determined by how likely it is that you should find evidence given what you've looked for.

Taking your mountain gorilla example, do you have any in your house? I'm guessing you'll say "no." Well, how do you know that? Absence of evidence is not evidence of absence, after all. Yet if you look all over your house and don't see any, I'd guess you would accept that as sufficient reason to say that there aren't any in your house. But how can you say that if it's not evidence of absence?

Now, finding no mountain gorillas in your house is very poor evidence for the absence of mountain gorillas on _Earth_ , because you'd expect the same results whether or not they existed on Earth in general. On the other hand, if you've performed a thorough survey of their actual supposed habitat and didn't find any (maybe because they were driven to extinction) then you'd have pretty good (but not perfect!) evidence that they aren't there anymore.

There's essentially no evidence for the absence of aliens in the universe. You'll see this reflected in the opinion of the experts; many, perhaps most, say that it's likely aliens are out there somewhere. There's decent evidence for the absence of aliens around Earth, since we see nothing and we'd expect to see something, but it's possible they're undetectable. There's great evidence for the absence of classical UFOs, since they're clearly things we'd expect to see if they were real (people keep saying they saw them!) but out of all these sightings, none of them have turned out to be anything remarkable at all.

<comment><USER12> Most of what you're saying is right, but the saying isn't nonsense. It's just describing the problem that comes up when you can't find evidence of something. If its presence would necessarily present evidence, as with the gorilla (unless it's a mutant ninja gorilla), then it's evidence of absence. If its presence would not necessarily present any detectable evidence, then it's absence of evidence, meaning that you haven't really learned anything. With something like aliens, we don't actually know what evidence to look for, so as you're saying, there's no evidence of absence yet, only absence of evidence.

<comment><USER11> It is nonsense, because the saying is absolute. It doesn't say "absence of evidence is not necessarily evidence of absence." In reality, evidence of absence sometimes is and sometimes isn't evidence of absence, it depends on the specifics. The fact that the saying is correct for some cases doesn't make it sensible, any more than saying "birds don't fly" is sensible because of penguins and ostriches.

<comment><USER12> It's just a cute aphorism that describes one of the main challenges in science. The "is not" is meant to convey that there are two distinct conclusions that we can make from seeing a lack of something and that it's important not to make the wrong choice while evaluating the situation. We can't automatically say "absence of evidence" or "evidence of absence" as it suits our preconceptions but need to look deeper into why something is missing.

<comment><USER11> Well, every single time I've seen someone use that phrase, it hasn't been to point out that they're not equivalent, it's been to argue for the potential existence of something where there's zero evidence for it and lots of searching you'd expect to turn up evidence.

Case in point here, we are not discussing aliens in general, where that phrase might be sensible, but rather aliens frequently visiting Earth over a period of years in the form of UFOs.

<comment><USER12> It can absolutely be abused, but that really just proves the point of the statement, that people tend to make biased and wrong decisions when they don't apply thorough logic. For clarity, it could have been "absence of evidence is not sufficient evidence of absence," but it just doesn't sound as nice. But it in that form and how it's intended by logicians, it's perfectly valid.

<comment><USER11> My point is that it is never anything _but_ abused. Does a statement really have a point that's independent from how people use it? Especially when that use agrees with the statement's literal meaning?

<comment><USER12> This seems like a case where something completely legitimate got so abused that it lost its meaning to many people. It does have a point. It's a classic phrase used in teaching logic to rebut the logical fallacy of an argument from ignorance. I think what you've seen is a lot of people using the authority of something from formal logic to back up their own fallacious arguments.

"The phrase "the absence of evidence is not the evidence of absence" can be used as a shorthand rebuttal to the second form of the ignorance fallacy (i.e. P has never been absolutely proven and is therefore certainly false). Most often it is directed at any conclusion derived from null results in an experiment or from the non-detection of something. In other words, where one researcher may say their experiment suggests evidence of absence, another researcher might argue that the experiment failed to detect a phenomenon for other reasons."

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

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> "We are on the third planet around a tediously boring star surrounded by other completely normal stars about two-thirds of the way along one of several arms of a remarkably average spiral galaxy."</comment>


What does a startup founder do on Friday night? - <AUTHOR> http://startupscave.com/entrepreneurship/what-does-a-startup-founder-do-on-friday-night/

<comment><AUTHOR> Yesterday we had to make a hot deploy to the clients server because of some super urgent need. Hell of a fun!</comment>


Video wars: Netflix launch in UK and Ireland imminent - <AUTHOR> http://gigaom.com/2011/10/24/video-wars-netflix-launch-in-uk-and-ireland-imminent/ <comment><USER2> The platform is pretty much irrelevant, it's the content that counts.

Sadly, this press release is about the platform, not the content.

</comment><comment><USER3> This will be very welcome. I've found LoveFilm to be an awful copycat version.

<comment><USER4> Just for a different perspective: I've been quite happy using Lovefilm for the last couple of years :)

Although competition is never a bad thing.

<comment><USER5> Have you used Netflix though? When I moved from the US to the UK I had to switch to Lovefilm, and it just plain _sucks_ compared to Netflix. Particularly the watch instantly stuff: I want all in, everything available to watch instantly should be free. But in LoveFilm, it's a mixture of pay-per- view and inclusive, which just really annoys me. Not to mention the Netflix interface is considerably better than Lovefilm.

<comment><USER4> I never claimed it was better! Just that I have had a good experience with LoveFilm.

The streaming side of things is their biggest downside (although I am on the top package so most of the stuff is free) and from the descriptions Netflix is a lot better at it. Which will make me consider opening a Netflix account to compare it when they come out.

But I've always tended to use the DVD postal service more often and that has been perfectly fine for me.

</comment></comment></comment></comment><comment><USER6> At last (assuming its as good here as in the USA, which is a pretty big assumption to make for internet services).

</comment><comment><USER7> I use Netflix from France with a simple little proxy trick, and a French credit card; they don't seem to mind at all...

(streaming only, obviously)</comment>


Google vs. Apple - <AUTHOR> http://www.businessweek.com/magazine/content/10_04/b4164032489508.htm

<comment><USER2> Although its a bit tongue-in-cheek, it really shows why Apple investors pay so much attention to Jobs' health. Apple is a very centralized and secretive organization with the appearance that all important decisions, from strategic to design decisions, going through Jobs. No wonder people wonder if Apple can keep being great if he leaves.

</comment><comment><USER3> 'Think different' isn't a motto, it's a slogan. One's for people inside the company, the other's for people outside.

<comment><USER4> What's a motto?

<comment><USER5> >> One's for people inside the company

That one, I'd venture.

</comment></comment></comment><comment><USER6> Date Founded (1998 vs 1976) is listed as a difference, but really, it's more of a similarity. The "new" Apple, with Steve Jobs at the helm, was founded at about the same time as Google.

</comment><comment><USER7> I don't know what experience the author of this matrix has in programming, but Infinite Loop's API's have a noticeably higher degree of engineering than any other API / toolchain I've used.

<comment><USER8> The QuickTime API in C is horrific. It requires tons of unsafe-looking casts and even memcpy()-like operations between types. QuickTime Kit (an Objective C API) was released with QuickTime 7, which can only be better.

Here are excerpts from some code I wrote back in the day to import audio files into Audacity using QuickTime:

       // GetMediaSampleDescription takes a SampleDescriptionHandle, but apparently
       // if the media is a sound (which presumably we know it is) then it will treat
       // it as a SoundDescriptionHandle (which in addition to the format of single
       // samples, also tells you sample rate, number of channels, etc.)
       // Pretty messed up interface, if you ask me.
       SoundDescriptionHandle soundDescription = (SoundDescriptionHandle)NewHandle(0);
       GetMediaSampleDescription(mMedia, 1, (SampleDescriptionHandle)soundDescription);

       // If this is a compressed format, it may have out-of-stream compression
       // parameters that need to be passed to the sound converter.  We retrieve
       // these in the form of an audio atom.  To do this, however we have to
       // get the data by way of a handle, then copy it manually from the handle to
       // the atom.  These interfaces get worse all the time!
       Handle decompressionParamsHandle = NewHandle(0);
       AudioFormatAtomPtr decompressionParamsAtom = NULL;
       err = GetSoundDescriptionExtension(soundDescription, &decompressionParamsHandle,
                                          siDecompressionParams);
       if(err == noErr)
       {
          // this stream has decompression parameters.  copy from the handle to the atom.
          int paramsSize = GetHandleSize(decompressionParamsHandle);
          HLock(decompressionParamsHandle);
          decompressionParamsAtom = (AudioFormatAtomPtr)NewPtr(paramsSize);
          BlockMoveData(*decompressionParamsHandle, decompressionParamsAtom, paramsSize);
          HUnlock(decompressionParamsHandle);
       }

<comment><USER9> This is just dishonest. QTKit was released _5 years ago_ and works just fine. If you want to cherry pick code from 6 years ago that was originally targeted at an architecture from 15 years ago you can do a lot worse than QT API.

<comment><USER8> Your characterization of my comment is unfair and untrue. I didn't "cherry pick" anything; the above code is from my only significant experience with any Apple-designed API. The grandparent comment in glowing and general terms praised Apple APIs as noticeably better than other APIs, and this ran strongly contrary to my own experience with them. I even mentioned that this was old code, that QTKit has been released in the meantime, and that it is probably better.

I'm not sure why you think that old APIs designed for old architectures are obviously bad or are not relevant to the discussion. How is C substantially different than in 1994, that newer APIs would be better? Why do you think that architectures from 15 years ago required bad APIs? I can think of many excellent APIs that I was using ten years ago or more.

Feel free to say that the new Apple APIs are much better than the old ones, but my experience says that historically Apple has had some very poor ones.

</comment></comment></comment></comment><comment><USER10> Although Google uses data-driven decisions to optimize existing products like the search UI, it's a misconception that strategic decisions of new products and services would be done in a same way.

Of course not. They are made in a similar way that every other human organization does it: based on the intuition and knowledge of the decision makers.

</comment><comment><USER11> With so many markets they commonly target, and with such a great success one of them has in each market, I cant help but wonder what the implications of a merger would be. Search & hardware, design & algos, high-end & low-end, who could compete with them if they join forces?

<comment><USER12> Apple has great design skills, but they're still in the desktop era. There's still no compelling online version of iWork, iTunes has been eaten by Spotify in mindshare in Europe, the iPhone still requires syncing. I don't think Google wants or needs any of those pre-internet products.

<comment><USER13> > the iPhone still requires syncing

True, but for how much longer? Already the Cocoa Touch platform supports application installs via WiFi and can use MobileMe for syncing info via "the cloud" instead of a hosting computer. The only bit left is the media library... (and you can buy the smaller stuff like songs and music videos via the phone/iPod even then.)

> Apple has great design skills, but they're still in the desktop era.

As a Mac user for two decades now, it seems to me that Apple is in the process of leaving us behind. The current OS X desktop UI is made more for Windows switchers, and Apple's may-or-may-not exist tablet is expected to continue distancing itself from the desktop flavor of the OS. (I've been doing experimental development for Cocoa Touch over the last couple of months, and I can tell you that despite the "same" language and API, the programming and security enviroments are completely different from the historical desktop experience.)

</comment></comment></comment><comment><USER14> Did they pull the "Mercedes SL55" reference out of their asses, or are people at Apple (or Steve?) really known for driving those?

<comment><USER15> <http://www.google.com/search?q=steve+jobs+mercedes>

</comment></comment><comment><USER16> Apple is a fruit, Google is a number?

<comment><USER17> Googol is a number. Google is what Cookie Monster's eyes do.</comment></comment>


Results of a 5k mobile app users' survey created by app developers  - <AUTHOR> http://forums.makingmoneywithandroid.com/advertising-networks/9936-guys-what-would-you-like-ask-app-users-help-create-mmwa-survey-5k-users.html

<comment><USER2> Spanish and Arabic speaking users pay more attention on screenshots instead of reviews.Interesting!

</comment><comment><USER3> Only 23% are frustrated with ads inside apps?</comment>


Submarine Cable Landing Photos and Maps - <AUTHOR> http://cryptome.org/eyeball/cable/cable-eyeball.htm

<comment><USER2> I don't get it. Cable landings are effectively invisible except for the presence of a boring nondescript building. Why would someone be interested in this?</comment>


An Interview with Ryan Johnson - <AUTHOR> http://www.prototypejs.org/2008/6/11/an-interview-with-ryan-johnson

<comment><USER2> Really good information in the interview. Ryan is a really bright guy. I've admired his control suite for some time.

His discussion of custom events was simplified but makes you think twice about design decisions in pub/sub contexts. Good stuff.</comment>


American Maglev - <AUTHOR> http://www.academicvc.com/2009/03/american-maglev.html

<comment><USER3> The article doesn't link to the company's website, which is here: <http://american-maglev.com/index.php>. Sadly, neither the article or the company website indicate how fast the train will go, or any details about where they get the $20 million/mile figure. Those were my questions anyway.

<comment><USER4> It seems like speed is a feature for v2.0.

</comment></comment><comment><USER5> $200 million per mile for heavy rail.

Crikey, numbers like that bring perspective to the old "Why doesn't the US have Japan's mass transit system, yet?" Because just building Japan's total of tracks would cost $3.4 trillion... and we'd have built barely enough track to cover California or New England to service levels comparable with Japan.

<comment><USER6> I wondered roughly how that compared to highway costs, and I found that it's about four times as much. One thing I found was that while this article claims $700million/mile for the LA Red Line, the MTA reports that $4.5billion was spent for the 17.4 miles, giving a cost of $259million/mile.

      project                     $million/mile  persons/day
      LA Red Line                 259 [1]        140943 [1]
      MARTA heavy rail (estimate) 200
      I-64 highway                 53.5 [2]      140000 [3]
      American Maglev (estimate)   20

[1] <http://www.metro.net/news_info/facts.htm> [2] [http://www.modot.mo.gov/newsandinfo/reports/2007Accountabili...](http://www.modot.mo.gov/newsandinfo/reports/2007AccountabilityReport/documents/ExecSummary.pdf) [3] [http://www.redorbit.com/news/technology/370990/human_factor_...](http://www.redorbit.com/news/technology/370990/human_factor_complicates_highway_40_decision/)

<comment><USER5> _I wondered roughly how that compared to highway costs, and I found that it's about four times as much_

That would imply that the US has several trillion dollars invested in its highway system, correct? Does that number pass the smell test to you?

Wiki reports that our ~45,000 mile interstate highway system cost about 425 billion, or a hair under $10 million a mile, in 2006 dollars. That's under a twentieth of what the LA transit folks are quoting. (I think they're doing creative accounting by reclassifying part of construction as operating expenses, which is a frequent trick in this field, but I've got nothing to back that up.)

<http://en.wikipedia.org/wiki/Interstate_Highway_System>

<comment><USER7> What are the continued operating costs, though, from both the government and users? When I lived in Toronto I could have an all-access unlimited subway pass for $100 a month, that's $1200 a year.

If I commuted by car I would've personally paid a hell of a lot more for the privilege. The up-front cost of the infrastructure is not the only consideration...

<comment><USER8> > What are the continued operating costs [?] ... When I lived in Toronto I > could have an all-access unlimited subway pass for $100 a month,

This does not speak to operating costs.

Mass transit fairs are usually subsidized from general tax revenues - <USER2> fees usually cover something like 10-25% of actual costs.

<comment><USER7> Right, this I'm aware of - so I'd be interested in seeing someone do some numbers on the _real_ costs of highways vs. mass transit.

<comment><USER9> Last time I ran the numbers the US highway system costs around 3$/gallon of gas used on the highway system. So, double your gas costs, then add all the other costs and you can approximate the "net" cost of your commute.

<comment><USER7> It's more than your gas cost, though - there are other things like maintenance, amortized cost of car ownership, insurance, etc.

You don't just pay for gas, you pay for the car to put it in.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Wikipedia's "Light rail" (<http://en.wikipedia.org/wiki/Light_rail>) article has some interesting numbers on the cost of light-rail construction: Over the U.S. as a whole, excluding Seattle, new light rail construction costs average about $35 million per mile. By comparison, a freeway lane expansion typically costs $20 million per lane mile for two directions.

<comment><USER11> Why couldn't you use the elevated track strategy these guys developed with modified light rail cars? The light rail cars would also benefit from lighter construction.

</comment></comment><comment><USER12> Also if they use evacuated tunnels, the trains could do 4,000 mph. That would be cool.

<comment><USER7> Doubtful... You'd need a lot of time to accelerate to those speeds, and odds are you'd have to slow down to make a turn well before you reached anything appreciable.

<comment><USER13> IMO there's no point in building a vac-tunnel for a modern train car, because firstly it needs to be an airtight vehicle.

When traveling at 4,000 mph you don't necessarily have to slow down, you just need to levitate from the sides of the tunnel. Essentially you could make the train act similar to a swinging cart on a roller coaster where the center of gravity will always try to sit under the user. People can easily tolerate positive vertical gee forces with little to no side effect, yet exposure to less than one vertical gee force (like the chair-drop rides at theme parks) can make someone puke their guts out. Equally horizontal gee forces aren't tolerated very well either, but in the linear axis (the one we accelerate through) we're extremely tolerant and are in fact more tolerant if we're facing backwards. Although I don't think facing backwards would necessarily work on a train, you don't really want to hit 2 gees of acceleration and have your coke fly in a straight line to the back wall.

Also acceleration wouldn't need to take too long, however in this systems design it probably would. In the dumb car, smart track systems all the force is applied from the outside, which is where acceleration could potentially reach incredible speeds due to the sheer amount of power that could be expended to do so.

We're a long, long way from any vac-tube form of rapid transit, but if we ever get to it I think tolerating the corners will likely be a small problem. I think the big problem will be keeping the train pressurized under potentially huge pressure differentials due to the acceleration.

</comment></comment></comment><comment><USER14> KISS. Smooth steel wheels on smooth steel tracks has _extremely_ low rolling resistance, is inexpensive, and works great. Bonus: if the power goes out you gently coast for a while. :)

</comment><comment><USER15> If their numbers are real.... lets just say I really, really, really hope their numbers are real and that win some contracts.

</comment><comment><USER16> Another Maglev worth noting is this one

<http://ruby.gemstone.com/>

I'm not sure if its American though.</comment>


Choosing to stay out of the community - <AUTHOR> http://rachelbythebay.com/w/2018/10/09/moat/ <comment><USER2> I realised as I read this post that I have done exactly this on a few occasions. Taken upstream code, forked it, fixed bugs and used it for myself. Usually there's no conspiracy, I just cannot be bothered dealing with "you're doing it wrong" comments when my fix isn't deemed worthy.

The problem I have seen is that certain usually vocal members of a community can have this double-edged helpful-jerk attitude. Most of the time I just lurk on communities, so the jerkiness is rarely if ever even directed at me, but it changes my view of the project to the point where I just don't want to be involved.

The usual pattern is a post or response to a bug report, patch or question that is generally helpful but at the same time needlessly nasty or snarky, and with a I-know-better-than-you attitude. If the community person dislikes the question asked, or the use that people make of their software, why do they take the time to write answers at all? Usually being pleasant is a question of writing less words as well. These people go out of their way to add snark to the response.

This isn't limited to "open source". It is probably just a people problem. I've seen the exact same thing on guitar forums. Members that post helpful replies, but spread a layer of snark over them. You follow their profile and they often have websites with lots of good free information, lessons and whatnot, but here they are, writing twatish answers. It has been a problem on stackoverflow.com too, and they really stirred things up over there recently trying to herd people into being a bit nicer.

<comment><USER3> I see this pattern regularly and I always wonder: why would you deny yourself the opportunity to improve?

If you have a patch, and others know how to make it better, why would you forgo that chance to learn something?

What good can possibly come out of "I'll just hide in my shed" and tell nobody about my patch (that is what the OP recommended, invite-only repositories).

You submitting patches has nothing to do with the community. You submitting patches has everything to do with:

      a) improving the patch to maximize its usefulness
      b) the project becoming better
      c) you becoming better
      d) the project taking over maintenance of your patch so you don't have to.

It's a win-win for everybody.

<comment><USER4> Honestly, aside from issues with the process it's also just embarrassing. IMO, that's what is causing a lot of the issues that are being surfaced these days in oss. No one likes to be told they're ignorant. Add in a smarmy attitude and poor social skills and only the most confident or skilled people will contribute; which isn't a bad thing to be honest.

We've come a long way from the RTFM days but learning something as complicated as programming tends to make people sensitive about what they do and don't know.

It's a delicate balance. On one hand the project and the community benefits from a lot of ideas. On the other hand, a strong ego with poor understanding can not only destroy a project, they can cost a lot of people a lot of time, money, and heartache so some sort of barrier to entry that turns some people away isn't a bad thing.

At the end of the day, it'll all work itself out as long as we keep the projects open and free. Popular projects attract talent which in turn improve those projects.

<comment><USER5> > Add in a smarmy attitude and poor social skills and only the most confident > or skilled people will contribute; which isn't a bad thing to be honest.

It is a bad thing, because the "most confident" and the "most skilled" are almost never the same.

<comment><USER6> Theoretically, rude gatekeeping can destroy confidence, but it can't really destroy skill. Of course, the rude gatekeepers typically don't recognize skill either...

</comment></comment></comment></comment></comment><comment><USER7> I've been involved with open source communities off and on for over a decade, as well as other, non-computer communities. News flash: It's not the community that becomes toxic, it's humanity.

Every community that I've ever witnessed gets toxic at some point. As in- groups grow more insular and people become more involved, they get more toxic. But the solution to this phenomenon doesn't have to be black & white. I have always stayed on the margins of communities, and still dip my toes in the water occasionally to get something done. But do I need to keep private forks of patches to avoid messy interactions? Nope.

It's pretty easy to fire off a pull request or patch set and then forget about it. I'm not investing great deals of effort or emotion. I'm just sharing my crap. If they merge it, fine, if they don't, fine. But I'm certainly not keeping super secret private repos for just the cool kids to use. That would be even _more_ involved than what little I am already.

<comment><USER8> Not a serious problem with "fire and forget", but an annoyance: say the patch is not up to standards: not well designed, needs tests, or whatever. It worked for the contributor but it can't be merged in its current form.

Now the maintainer has to explain what's wrong to a contributor who isn't going to do anything about it. And then explain again and again to everyone else who wants that feature that no, it needs work and can't be merged yet.

(Yes, I am that maintainer with dozens of open PRs on his repo, none so bad they must be closed, but also not good enough to merge.)

<comment><USER9> Then again, why should you wait for the original submitter for those modifications? The original contributor published his code, and has not given any indication he's interested in the rest of the process. Why can't anyone else who wants that feature pick up the slack? Maybe you can make that explicit, marking such feature requests as NEEDS_WORK or something?

<comment><USER10> This is where the behavior of the maintainer is key.

On one hand, if the maintainer asks the contributor to fix up their code, the maintainer can be seen us ungrateful, demanding, dictatorial, and/or pedantic.

On the other hand, if the maintainer makes the changes herself, they can seem impatient, uncooperative, overpowering, and/or power-hungry.

Regardless where on the above spectrum the maintainers behavior falls, they can come across as friendly, neutral, pessimistic, or toxic. That depends on how they communicate. It also depends on the social norms that the maintainer and contributor are used to.

A maintainer must be extremely vigilant and aware of the tone they use and the image they want to portray. The contributor should also be aware of these things. If either side wavers, opportunities for an unhealthy brew arise.

This is compounded by the fact that most people, maintainers and contributors, are doing the work on a volunteer basis. Often there is an unspoken expectations that others should be grateful for the work that they are doing. When these expectations are not met, sour feelings arise.

<comment><USER8> Yes.

Given how difficult this is, it's no surprise to me that potential contributors might not want to stick their neck out, as expressed in TFA.

</comment></comment></comment></comment></comment><comment><USER11> For people criticizing this approach as a selfish one:

Fixing toxic communities is _work_. While it would be a public service for the author to do so, she is under no obligation and probably has a day job and a life that take priority.

I praise community-builders and community-shapers and code-sharers and code- reviewers to the heavens, but I'm not going to knock someone who just can't be bothered to do all of that.

<comment><USER12> You don't need to fix a toxic community to just submit your patch. Just submit it, and if they don't want it, they don't want it. But at least you've done the bare minimum of giving back. If they want to tell you to fix your code formatting or something, or make your comments less phallocentric or whatever and you don't like it, don't make the changes - but you still ought to submit the patch.

<comment><USER13> On the other hand, reviewing code is also work. One could argue that if you don't intend you follow the contribution guidelines and work with the maintainers to get the code to a state where it's good enough to merge, you are wasting their time.

<comment><USER14> I agree, but I also think it's easy to avoid that. If you say in your cover letter "I appreciate that this might not be in a good state to merge, but I don't personally have any more time to spend on it and won't be able to respond to any code review; I'm posting it to make it public in case it helps somebody else", then the project knows where it stands with the patch, and can invest time, or not accordingly.

(I did something like that with a half-done binutils patch once. It wasn't committed, and I didn't expect it to be. But I was happier having put it out there, so somebody looking for weirdo-TI-COFF-format support maybe had a place to start.)

<comment> sjm-yc-acct You're right--communicating about the intent of a patch is a good idea, especially if that intent is outside of normal expectations.

In a similar vein, I recently learned about prefixing a pull request on Github/Gitlab with "[WIP]", or a "work in progress", to suggest that the proposed changes are for informational purposes or not yet complete.

<comment><USER15> Thanks for mentioning GitLab, Community Advocate here.

WIP is really used, and we even have documentation about it [https://docs.gitlab.com/ee/user/project/merge_requests/work_...](https://docs.gitlab.com/ee/user/project/merge_requests/work_in_progress_merge_requests.html)

</comment></comment></comment></comment></comment></comment><comment><USER16> _this is how private warez torrent sites work_

It's true and they're now mostly dead. Either gone completely or in a zombiefied state.

This is the fate of virtually all closed communities. Yes, you avoid many problems, it's tempting, but you die in the end. Usually, quickly.

Open communities suffer from many problems, and employ a variety of not- terribly-pleasant solutions like dictatorships to deal with those problems. Yes, many can be described as "toxic."

But they're also alive.

And I've seen some of these private trees. The quality tends to be rather underwhelming. As you would expect from someone tinkering at the margins without cooperation from the main drivers of the project.

<comment><USER17> Lots of private torrent sites are alive and kicking, and lots of open communities die. I'd need more evidence that openness vs closedness is what kills them.

<comment><USER16> Their forums are ghost towns. What.cd still doesn't have a successor, and one of three strong pretenders didn't even manage to stay online.

It may be caused more by competition from Spotifies and Netflixes than their closedness (although I don't agree) but they're certainly not alive and kicking.

<comment><USER18> $10 a month for more content than I know what to do with is such a cheap price to not have to deal with the pain of torrenting.

If it was $20 per DVD like in the past, the pain of torrenting was far less than the pain of the cost of buying your favorite movies.

I really think it's that simple. This value equation alone means that a majority of people won't care enough to go the extra length to participate in torrent communities. They'll just pay a small $10 a month to watch whatever they want, whenever they want, on any device, anywhere. That'll kill the incentive right from the start.

<comment><USER19> > They'll just pay a small $10 a month to watch whatever they want, whenever > they want, on any device, anywhere.

Unfortunately this doesnt exist. I would gladly pay it. Netflix isnt it either, no matter how much they pretend they have all the content, the movies which I am interested in, I have to torrent, because they simply arent on netflix. Their library is so bad that my first instinct is "oh lets look for a torrent" instead of "lets check netflix if it has it" when I want to watch a movie.

</comment></comment></comment></comment></comment><comment><USER20> I have been running Open Source projects for about 15 years, which implies moderating the communities around those projects (in my case, very small communities). I'm familiar with toxic environments. I once sent a very stupid question to the qmail mailing list - it did not go well for me. But I learned a lesson from that beat-down.

I make serious efforts to create an inclusive environment for my projects because that is what Open Source software is all about IMO. Any contribution deserves respect, it's a gift to the project. Maybe the PR needs some work, maybe it's total crap - but it's a gift either way and that should be respected.

It makes me sad to think people feel the need to maintain private repos just to avoid potential conflict with project maintainers because of toxic environments - but I understand that is a reality. I would like to counter that with the fact that not all projects are run that way, and some are very willing to accept contributions.

<comment><USER21> > _It makes me sad to think people feel the need to maintain private repos > just to avoid potential conflict with project maintainers because of toxic > environments - but I understand that is a reality._

So you get sad for me because I am tired, burned out and want to get stuff done without the inevitable drama so many people feel they have to inject in everything?

Thank you for being sympathetic. ;)

This was half-sarcastic / half-serious.

\---

On a totally serious note, you cannot at all blame anyone for wanting less -- or zero -- emotional baggage added to what should be a professional exchange of code and conversation points. I seriously cannot and will not care if somebody has a shitty life and spouts poison at me because I try to be helpful and they have nobody else to vent at the moment. I refuse to participate in a free therapy / rage unloading session with them.

As we get wiser, we start to get economical with our energy expenditures. Even more conservatively so with emotional expenditures. That one can feel like total crap after even one hour of drama is a harsh reality -- and the fact that many of us choose to avoid ruining our day is absolutely our right.

Nothing for you to feel sad about.

</comment></comment><comment><USER22> While I don't think her solution is the best, I can't say I disagree with the spirit of this post. With politics being dragged ever more into the software world, people attacking everyone for any perceived transgression, attempts to get people kicked out of communities, or even fired, over social media comments, you really need to consider what you're exposing yourself to by getting involved in the open source community. You would think that a community based on giving away typically very expensive effort would be more welcoming, but somehow we've ended up with this.

It does seem like this is just part of some wider trend though. It's not just the software world, public communities in general seem to be destabilizing and radicalizing.

<comment><USER23> It's not perception. It's a byproduct of a few different things. Close interaction between people of different social classes, lack of faith in governmental institutions, massive changes in labor markets, and in the U.S. in particular massive disenfranchisement through gerrymandering and archaic voting and representation laws.

</comment></comment><comment><USER24> _The private /secret repos I'm talking about? They're probably operating under Fight Club rules. If you aren't plugged in, they don't even exist as far as you are concerned. You don't even know you're missing out._

I don't think this is staying out of the community. It's staying out of _a_ community by forming _another_ community, complete with its own set of good/bad people, rules, and expectations. Indeed, this is how many popular communities began - small, insular, quiet, before growing larger as human constructions frequently do.

<comment><USER25> Absolutely, and additionally to this, it's not forming a well-behaved community, it's forming a community that behaves in the way this particular person likes. It's just as likely to be full of snark and bitching.

<comment><USER21> This is likely, you say... according to whom?

The author clearly expressed their lack of desire to deal with drama or toxicity. What makes you think they will tolerate it in another community?

</comment></comment></comment><comment><USER26> This is ridiculous. I have projects where I don't want feedback, and I have no intention of fixing bugs.

I put them on GitHub and turn off the issue tracker and PR notifications. If others want to fork, fine. If others want to discuss on PRs, fine. I don't care. I'm not fixing it. I avoid the toxicity by not partaking, not hurting my own career.

<comment><USER27> Rachel (the OP) probably cannot help but have emotional reactions to people's behavior even when the people are strangers and the behavior is entirely online. A large fraction of people are probably like that.

<comment><USER26> I would suggest therapy or religion to those people.

<comment><USER27> I hope no one reading my comment (GP) got the impression that I think there is something pathological about Rachel's choice not to publish her code.

</comment></comment></comment></comment><comment><USER28> _Everything you 've already heard about on HN and/or your favorite this- leaning or that-leaning web site.

This is a legitimate question, and I have an answer, but I don't think many people are going to like it.

My response to this is to say "wow, look at how screwed up these communities are", and then tag on "just like I always suspected", and then finally I add "and that reinforces my decision to stay out of them"._

Makes me wonder why her writing does so well here.

<comment><USER29> "Makes me wonder why her writing does so well here."

Yeah, that was funny to think about. I've only seen so many articles. Her write-ups were mostly technical dodging politics a lot. The back and forth, downvote mobs, or whatever kick in with politics on certain topics or views due to community's biases. If she stays away from that, then she can still be really popular.

Whereas, she just now admitted something that could be in the red zone for some portion of HN community in terms of benefiting, but not sharing, in FOSS. It's simultaneously a response that's understandable or folks might sympathize with for the portion that is concerned about toxic behavior in general FOSS and/or toward minority members in particular. _Still_ a grey area in potential reaction here.

I find it fascinating to watch how these things play out. Regardless, her posts about spotting problems, solving them, and keeping them from recurring were pretty awesome. Most of us will probably still respect her regardless of how much she's embracing or dodging online communities.

<comment><USER28> I don't care one iota if she does or does not participate on HN or in any other community.

The only other post of hers I recall reading boiled down to her refusing to fix a thing at work that it was her responsibility to fix and wouldn't have taken very long, like a few minutes, and leaving it that way for six months, calling it "an experiment" to see if anyone else would fix it and then talking trash about everyone else at work when her boss finally told her to fix it already. It struck me as very unprofessional, childish and toxic.

She is the only woman that I'm aware of who blogs about programming. I'm not a programmer, so that might just be my ignorance showing. But my guess is that's the primary reason her writing shows up here so often, because it doesn't strike me as great writing overall and her attitude seems to be pretty toxic generally while she blames that on everyone else.

She could make a lot of the same points she makes without pissing all over everyone in the process. She could very reasonably say "I'm a woman in tech, so I deal with brogrammers 40+ hours a week and I have no patience left to do more of that in my off hours." She could say "Eh, different strokes for different folks. I share my stuff with people I enjoy talking with and I'm okay with that meaning it isn't out there in the ether for the whole world to access. We can't all be Linux."

She could make all the same choices she is currently making and describe them in her blog without gratuitously pissing all over a community that very likely accounts for a large share, perhaps even the vast majority, of her blog traffic.

<comment><USER30> > She is the only woman that I'm aware of who blogs about programming

While I cannot speak to your awareness, I can say for a fact that there are many women who blog about programming.

[https://www.google.com/search?client=safari&rls=en&q=women+w...](https://www.google.com/search?client=safari&rls=en&q=women+who+blog+about+programming&ie=UTF-8&oe=UTF-8)

Maybe programming blogs aren't that interesting to you so you don't have much exposure to them? I'm struggling to understand how you would not be aware that there are more such blogs beyond Rachel's.

<comment><USER28> I'm not a programmer. I already said that.

If there are many more women who actually blog about programming per se, rather than blogging about the problem of being a woman in tech, then I am even more mystified as to why her writing seems to be so popular here.

<comment><USER31> On a technical level her skills/knowledge are world-class and her most successful posts[1] have been tech-focused.

[1]:[https://hn.algolia.com/?sort=byPopularity&prefix&page=0&date...](https://hn.algolia.com/?sort=byPopularity&prefix&page=0&dateRange=all&type=story&query=rachelbythebay.com)

<comment><USER28> Thank you.

</comment></comment></comment></comment></comment></comment></comment><comment><USER32> I read this as being similar to "The king is dead long live the king." Toxicity is just swapped with different toxicity. The road to toxic is often paved with good intentions.

</comment><comment><USER33> IMHO Some of the responses here are missing the point. That seems to be a common theme as of late: "I don't like the argument or I'm already on side 'X' in this fight, so I'm going to setup a straw-man to attack so I can avoid engaging the core premise of the article."

Her post isn't about keeping a private repo or being selfish. It's about "I am not your therapist or punching bag, nor is it my job to educate you, so why would I waste my time submitting my patch and dealing with a toxic community? What am I supposed to gain from that interaction, other than being insulted, belittled, _and_ having my patches ignored?"

She is hardly the only person who stays far away from contributing to the Linux kernel (and other projects) thanks to certain nasty and emotional segments of "community". Those people don't show up in stats. No one knows they exist. The project just has a reputation for being full of assholes, so many really talented people choose to stay away (or strictly limit their involvement). This can become a self-reinforcing cycle where only assholes can be heard, resulting in design-by-asshole rather than design based on technical merit. Assholes (by virtue of being assholes) usually immediately dismiss this by claiming anyone making such complaints is technically inferior (or is intrinsically unsuited to contributing because of their age, gender, or other attribute).

I'll also point out that acting out like this is purely emotional knee-jerk behavior - the exact _opposite_ of merit or technical arguments. Linus is perfectly capable of criticizing patches on technical merits without calling people morons in the process. In the past he has chosen to lash out emotionally for one reason or another. Perhaps he had a bad day. Perhaps he just enjoyed insulting other people. Perhaps he thought he was better than them and wanted to show off how superior he was. None of us can really know the underlying reason, but at the end of the day it hardly matters.

I really want to stress my last point: lots of people (including here on HN) are trying to make a self-evidently Orwellian case that adopting a CoC and setting community standards is somehow trading technical merit for soothing people's feelings... in defense of another contributor's ability to lash out emotionally. One has to engage in some especially motivated reasoning to make such prima-facia false claims.

A code-of-conduct basically boils down to "don't attack people personally and don't belittle, harass or intimidate other contributors". Or perhaps in simpler terms: "act like a professional".

Being professional means giving direct and honest feedback. Lying to avoid hurt feelings is the opposite of professional!

<comment><USER34> That's all well and good. But none of it explains why the author says the current changes taking place in the Linux project _reinforce_ her decision not to participate in Linux.

How does a code of conduct and a hiatus for the guy who was cursing at people reinforce the decision to stay away? The only way that makes sense is if she weren't previously aware of any of the documented cases of Linus' abusive behavior, and that seems quite unlikely given she was already using her own "shadow ecosystem" years ago.

<comment><USER28> _But none of it explains why the author says the current changes taking place in the Linux project reinforce her decision not to participate in Linux._

I can't speak for the author, so I can't explain that to you.

What I can tell you is that _virtue signaling_ is vastly more common than people actually doing the right thing and nasty behavior frequently gets a great deal worse during periods when people are very visibly and openly trying to publicly address the problem in some manner.

My observation is that a common outcome is the metaphorical guillotines come out, people on their high horses behead all the bad guys, pronounce themselves to now be the good guys in charge and then business as usual follows.

So, for example, if the issue is sexism, terrible evil asshole sexist pigs take the fall to be promptly replaced by more men, not a mixed gender group of leaders, and you hear a lot of smack talk about more women being in the pipeline and _someday_ this will result in gender parity while nothing really changes. But you should be nice to the new men in charge since they beheaded the bad guys and, clearly, in twenty years this will pay off for women.

If the issue is racism, well, clearly, racist white supremacist assholes get removed and are promptly replaced by new white people who will obviously treat people of color better -- someday, but probably not today, but you should believe they are the good guys. After all, they were so kind as to behead your enemies.

Etc.

If you are part of an "oppressed" group, you eventually get burned out on watching all the white guys fight over which white guys are less evil while no one actually does much of anything to genuinely include women, people of color, etc. And you don't really care to get in the middle of this mess knowing that none of these people actually has your best interest at heart and every last one of them will be happy to trample you underfoot in service of convincing virtue signaling.

Some of the most vicious fights are the ones about how to be respectful and well-mannered. Those frequently get ugly real, real fast and only go down hill from there.

<comment><USER21> > _What I can tell you is that virtue signaling is vastly more common than > people actually doing the right thing_

You absolutely nailed it right here IMO.

Codes of conduct nowadays I feel are hijacked and reshaped into the vendetta persecutions you described.

Could Linus be nicer? Everybody keeps talking about that. I almost never see anyone assume that he tried being nicer but the only way he could get through to people was to draw their attention with being rude.

<comment><USER28> From what I gather, Linus is sincere and making a good faith effort. I think that's a better signal than writing a Code of Conduct. CoCs strike me as virtue signaling more often than not.

Hopefully, Linus will figure out a better path forward and start setting a better example. If he does that, I think that will make more of a difference than a CoC.

</comment></comment></comment></comment></comment><comment><USER35> I help keep at least one fork due to the upstream community being toxic. It's expensive, but what can you do?

A small and healthy community doesn't even need a code of conduct, but in the long run any _large_ community needs by-laws and governance, and that includes rules for punishing toxic participants.

</comment><comment><USER36> It seems amazing to me that people use toxic to mean "A tiny minority of anonymous people on a world accessable network of people may say mean things"

The world is full of at least 10% of people that are just stupid and awful. We should work to keep taking out the trash but we shouldn't turn away from the entire community.

If you choose not to share your own work because someone might say mean things I'm disappointed but if you keep private forks of public open source software I feel like your cheating the system that benefits you.

<comment><USER37> Why do you accept that people being mean to you is a price you must be willing to pay to participate? (Aside, toxic can be much much worse that just "being mean", but I'll engage with your definition here for the sake of discussion.)

<comment><USER36> I mean that some portion of the population is between disagreeable and despicable. Good communities ban the despicable but no matter where you draw the line some people will inevitably be negative enough to be a drag without stepping over the line to the point of being banned.

</comment></comment></comment><comment><USER38> at least some of the toxicity in a community around an open source project is due to the pressure the participants feel in maintaining both their own professional reputation and the viability of the project, and there are positive ways to engage with the core committers that will create goodwill all around.

I hope people consider the potential of playing the long game when engaging with a community. Yes there are assholes in the world but they frequently move on to other pursuits, or just die, and after they are gone it's just amazing how excited people are to get things done.

<comment><USER21> And what if I value my time enough so as not to want to waste a minute of my life and wait "to play the long game"?

^ I believe that's the premise of the article.

</comment></comment><comment><USER39> This is why I always try to accept people's first contributions, even if it means reworking them to fit (I usually just do it if it's trivial, or give guidance and offer to do it if not).

I have generally had really great responses when I've sent drive-by tweaks to other FOSS projects, so I feel obliged to pay that forward to others.

</comment><comment><USER40> Well that sucks.

I mean she is WELCOME to keep her contributions to private repos shared only among trusted friends if that's how she wants to work. But it's not for me. I want the work that I do to be shared as widely as possible. (I would share more widely if my employer permitted it.) That is why I choose permissive licenses, and make an effort to contribute patches back to the original source.

Yes, sometimes the communities are toxic. When I see that I speak up. Yes, sometimes my code contributions are used by people I don't much like or used for purposes I don't support. But far MORE often they are used by people I don't know, who I would certainly find to be perfectly nice folks if I ever DID meet them, but individual connections don't scale.

So Rachel is welcome to her insular community -- but I'm going to stick to the open one. I'd rather fix the flaws it has than hope to get a better one by foregoing the openness.

<comment> compiler-guy How long did it take Linus to realize his behavior was toxic? How many times was he told?

That's a lot of work to fix a project for almost no benefit to yourself.

Life is too short to deal with [people who aren't nice].

</comment></comment><comment><USER41> > I'm here to remind everyone of that post, and to point out that I'm not the > only one doing this. There could be an entire "shadow ecosystem" of invite- > only source repos being shared among friends who are responsible for those > they invite, including possibly having whole "trees" pruned if they turn out > to be troublesome.

This has crossed my mind before, I think it might be the only way to actually meaningfully stop rapid expansion/dilution of culture, which I think is roughly equivalent to what people mean when they say things get "toxic" or the community worsens (it's a bit of a stretch but you can rephrase toxic behavior as behavior that is not regarded as productive/acceptable by the original or some other culture).

Does anyone have any examples like this? An invite-only network that penalizes bad actors by revoking their membership along with everyone else they've invited?

</comment><comment><USER13> Usage of the word "toxic" is quickly becoming a pet peeve of mine. I see it used all over the place recently to describe groups of people who, while they may exhibit some unfortunate traits, will not actually cause you to get sick or die. More often than not calling people toxic feels more like a way to write off people with whom you disagree or who you simply dislike.

This isn't to say that people in e.g. the open source software community don't behave badly. They absolutely do behave badly. But rather than just labeling someone toxic and assuming that everyone agrees and shares your definition of "toxic" \- I feel that everyone's interests would be better served by actually describing 1) what exactly the problematic behavior is, 2) why it is bad, and 3) how to behave better.

TL;DR I find usage of the word "toxic" to be toxic. :)

<comment><USER21> Or maybe you simply disagree with the author of the article and are seeking a way to undermine her opinion and overwrite it with... your opinion? :)

That's how your comment came across to me.

<comment><USER13> I did not offer any opinion other than I don't like using the word toxic to describe people. But since you bring it up, my opinion on the article is that the author is in no way obligated to contribute code to open source communities that she doesn't like dealing with. In other words, I agree with her. I'll even go a step further and say that I support codes of conduct for online communities if they encourage civil discourse and encourage more people to participate.

As for my motivations - my comment was actually more inspired by the comments here than the original article (61 occurrences of the word toxic at the time I write this). Are you now going to suggest that my intent is to undermine everyone who used the word toxic here and replace their opinions with my own? Or are you willing to accept my plea to stop referring to people as toxic at face value?

<comment><USER21> Neither.

I am more curious why do you dislike the word "toxic" being used to describe people?

<comment><USER13> Because it is imprecise and dismissive.

<comment><USER21> Says you. Let's recognize the undeniable fact that it's just your opinion. Same as the people using the word toxic saying it's deserved (your opponents) -- that's an opinion as well. If you are open to discuss your definition then a talk might happen. If not, everybody is stuck in their own confirmation bias.

¯\\_(ツ)_/¯

</comment></comment></comment></comment></comment></comment><comment><USER42> I see little value in this post. She simply proclaims how "screwed" up HN, Linux, and other communities are, then uses an irrelevant story / anecdote to explain her lack of public participation in open source software. This could have been wrapped up in a tweet along the lines of: "These communities are toxic and screwed up, as I suspected! This reinforces my decision to stay out."

<comment><USER21> And what value does your comment have? You basically rephrase her article.

</comment></comment><comment> village-idiot When shit started hitting the fan with the Linux CoC, my boss indicated that it was a shame that the CoC was being used as a tool for political revenge.

My response was to wonder why there were so many grudges? The CoC is for certain acting like gasoline on a fire, but I don't believe it was the spark.

Glad I never really bothered to try interacting with that community in the first place.

</comment><comment><USER34> > There could be an entire "shadow ecosystem" of invite-only source repos > being shared among friends who are responsible for those they invite, > including possibly having whole "trees" pruned if they turn out to be > troublesome.

That could certainly be evidence that FLOSS projects need to do a better job of mentoring newcomers, and of combating abusive and anti-social behavior on their lists and issue trackers. That people are squirreled away on "shadow ecosystems" in sizable numbers would be a sign that FLOSS projects are failing at those tasks.

But it is not evidence that the artifacts these shadow ecosystems are producing have much value. If there are indeed a sizable number of participants there would be an example of a fork that releases binaries/tarballs of significantly higher quality than the original project.

Does anyone have such an example?

* tarball/binary available for fork

* fork is significantly improved over the original project

* FLOSS dev community for fork is invite only

<comment><USER43> I could name some arguable candidates: XFree86/x.org, mplayer/mplayer2/mpv, and xchat/HexChat. In many cases the catalyst was some kind of licensing disagreement, but the reason people were drawn to the fork was the dev culture of the original project. What they have in common is the original project tends to (but does not always) wither and die, at which point the quiet fork becomes the main focus.

But to be clear, this is the normal, daily-basis operation in the name of distro packaging, too. Some distros (Slackware, e.g.) try to hew as close to upstream as possible, but others (Red Hat and Debian, e.g.) significantly modify the upstream code, and development of this private not-a-fork-just-a- set-of-massive-patches is absolutely invite-only. There are weird rituals around not calling a given distro's effective forking "a fork," but in essence that's exactly what it is. "We can't get this patch accepted upstream," they'll say, and then the fork is live. It leads to heated and sometimes inimical clashes between the upstream dev and the packaging entity (c.f. xscreensaver, firefox/iceweasel, etc).

The only difference between some of these "packaging efforts" and the article's "shadow ecosystem" is how many users they have, really.

<comment><USER34> > I could name some arguable candidates: XFree86/x.org, mplayer/mplayer2/mpv, > and xchat/HexChat.

Sorry, I left out the bullet about development being done in a private, invite-only group. That's what I'm curious about, and I don't think there are any examples of that.

</comment></comment></comment><comment><USER44> The linked article from 2013 is worth a read, too: [http://rachelbythebay.com/w/2013/06/03/bugs/](http://rachelbythebay.com/w/2013/06/03/bugs/)

</comment><comment><USER45> If your ego is so fragile, than good, keep the code to yourself. Some people might be a bit too sharp, but when you get the 100th "bug fix" that includes unsafe code, extra dependencies and the effort put into auditing is 10x the effort to write it on your own, then yes, you'll get a rude response. You might have been meaning well, but others haven't. Your contribution won't be missed.

<comment><USER46> You are making an unvalidated assumption about her code quality based off of her desire to not participate. This sort unsubstantiated opinion, stated with an implied assumption of fact, is exactly the sort off thing that contributes to toxicity in a community.

</comment></comment><comment><USER47> > What's funny is that my friends in the know tell me this is how private > warez torrent sites work: you invite someone, and now you're responsible for > their behavior. If they mess up, you deal with them, or you might be out, > too.

lobste.rs works like this too. Tree structures of invites are a great way to prune further up the tree when undesired behavior happens.

<comment><USER48> I believe only once has someone who invited a problem user been banned. That inviter contributed a feature to disable invitations and was unbanned. But I think the possibility also has a deterring effect that prompts people to exercise care.

(Context: I'm the lobsters admin.)

</comment></comment><comment><USER49> I just don't understand how you validate and inspect your own ideas without participating in _some_ broader Internet-based community. Be these technical ideas or social ideas, "not participating" is akin to "not examining".

The toxicity is just a byproduct, and you try to rise above it, but not participating sounds to me to be a dulling activity, not a sharpening one.

</comment><comment><USER50> > ...the Central Intelligence Agency has used it for hacking, Google for > crawling webpages, Pixar for producing movies and Spotify for recommending > songs.

This statement gives articles and journalism like this a bad name. It's as misleading as you can get as it gives the impression Python would be the main language for these jobs and nothing could be further from the truth. I'm sure it participates in some way, directly or indirectly, but doesn't perform the main function.

And then we get this:

> Fortran, Lisp and Ada were all highly popular in the 1980s and 1990s

Which may be true for Fortran and maybe even Ada in defense or government but Lisp? I don't think so.

</comment><comment><USER51> Really silly, mean-spirited post. Open-source software is one of the pinnacles of human culture, and it's a wonderful fact that our most capitalist economies depend on it absolutely. There is nothing impressive or honourable or wise or interesting about the sentiment expressed in the post.

<comment><USER52> ..and evidently, the open source community and its products could be even more impressive if it was better at responding to criticism. You are bad at this - and that's a problem.

<comment><USER51> I'm just stating my opinion; that's essentially what this site is for. I wasn't criticized and therefore was not responding to criticism. It is true that I have little time for codes of conduct etc.

<comment><USER52> "It is true that I have little time for codes of conduct etc"

That's the worst excuse for plastering the internet with low quality 'opinions' like the one above.

<comment><USER51> No, the problem is that you don't like my opinion, not that it is low quality. And that's absolutely fine. I made two serious points in 3 sentences; the remainder was a criticism of the post. My points were about what a fascinating and positive phenomenon open source is. If you'd like I can explain them to you again.

</comment></comment></comment></comment></comment><comment><USER53> This is the answer to the Fermi Paradox.

</comment><comment><USER54> It comes across as elitist to keep code fixes in your own private repository to 'punish' those you don't agree with. The whole point is freedom and sharing code that transcends arbitrary human defined barriers.

What if linux was kept in a private repository to punish those he didn't agree with?

<comment><USER55> > _The whole point is freedom and sharing code that transcends arbitrary human > defined barriers._

Whose point is this?

It is not the point of the free software movement as seen by the FSF, which calls the APSL 1.x non-free because it requires you to publish changes [https://www.gnu.org/philosophy/historical- apsl.html](https://www.gnu.org/philosophy/historical-apsl.html) , nor of the (largely similar) free software movement as seen by Debian, which has a "dissident test" that explicitly requires you have the option of keeping changes among your trusted friends (assuming you trust them not to republish, of course) [https://people.debian.org/~bap/dfsg- faq.html](https://people.debian.org/~bap/dfsg-faq.html) . It is certainly not the point of the open-source movement nor the Linux Foundation, both of which are firmly supportive of companies making internal improvements and not publishing any of them.

If it is _your_ point, I urge you to reconsider a position that focuses on individuals not publishing code instead of corporations not publishing code.</comment></comment>


OK, we listened. About the price thing. - <AUTHOR> http://www.reddit.com/comments/vqzdy/ok_we_listened_about_the_price_thing_rsyncnet/?sort=old

<comment><AUTHOR> tl;dr:

On one end, it's now 50% off across the board for non-profits, students, educators and FOSS contributors.

On the other end, for the first time, we are beating S3 on price for large blocks of storage.

Migrating our platform to ZFS has been 4 years in the making. We've deployed it globally - come fill it up!</comment>


The search for a faster CRC32 - <AUTHOR> https://blog.fastmail.com/2015/12/03/the-search-for-a-faster-crc32/ <comment><USER2> I read more about the slice-by-N algorithms because they sounded really interesting. The way they work is by using a set of lookup tables that are 4k to 16k in size (larger lookup table for larger N). The reason they are fast is because the lookup tables fit within the L1 cache on modern CPUs. So when you do 100M rounds of CRC32 it is super fast because the table is always cache hot, but I don't think this result is informative if you just want to occasionally do a CRC in between doing other types of work (especially for small buffer sizes). You will have to wait as the lookup tables are brought up through the cache heirarchy _and_ you are potentially evicting other useful data from the cache at the same time. Presumably PCLMULQDQ does not have this drawback.

<comment><USER3> This is a great point and a huge mental problem I have when looking at (and writing) benchmarks. If anyone knows more about this (i.e. if they can show why it isn't true) please speak up.

<comment><USER4> I think that mostly, your benchmarks have to match your workloads. Most of the CRC32 benchmarks I've seen are looking at larger buffers. The xxhash function mentioned elsewhere in this thread was claimed to be "an order of magnitude" faster, but again, large buffers - the gain over CRC32 on the same tests were rather more modest (though not at all insignificant).

In this case, I think (but am curious, will investigate further at some point) our Cyrus servers are doing enough checksumming work to keep any tables hot in the cache. So the tests are hopefully a useful indicator of where improvements can be made.

<comment><USER2> According to the Stephan Brumme website you linked to, the slice-by-8 lookup table is 8K and the slice-by-16 table is 16K, so your combo version of crc32 needs 24K of L1 cache to run at full speed. Modern server class CPUs typically have 32K of L1 dcache so that doesn't leave much room for the rest of your work. Maybe that's reasonable (I don't really know what Cyrus does), but I thought it was worth thinking about.

<comment><USER5> Most of the time we're iterating through a cyrus.index, where there's 104 bytes per record, and we're doing a CRC32 over 100 of them, or we're reading through a twoskip database where we're CRCing the header (24+bytes, average 32) and then doing a couple of mmap lookup and memcmp operations before jumping to the next header, which is normally only within a hundred bytes forwards on a bit and mostly sorted database. The mmap lookahead will also have been in that close-by range.

Also, our oldest CPU on production servers seems to be the E5520 right now, which has 128kb of L1 data cache.

<comment><USER6> I'm fairly sure E5520 has 32 kB L1 data cache, not 128 kB. L1 caches are core local, not shared like L3.

<comment><USER7> This is what the datasheet says [1]:

        - Instruction Cache = 32kB, per core
        - Data Cache = 32kB, per core
        - 256kB Mid-Level cache, per core
        - 8MB shared among cores (up to 4)

So I guess the confusion is that Intel moved the L2 cache onto each core (from Nehalem onwards, I think?) and used that opportunity to substantially lower latency for it.

[1] [http://www.intel.com/content/www/us/en/processors/xeon/xeon-...](http://www.intel.com/content/www/us/en/processors/xeon/xeon-5500-vol-1-datasheet.html)

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> > cloudflare is amazing until the input buffer gets under 80 bytes. That's the > point where it stops using the optimised implementation and falls back to > the regular zlib implementation (slice-by-4). I'm not sure why (no > explanatory comments I could find), but it's a showstopper for our uses.

Why on earth is this a showstopper?

<comment><USER9> > The buffers we checksum are small, the minimum being 24 bytes (a twoskip > header), average perhaps 32 bytes. This is our target case.

</comment></comment><comment><USER10> If they have CRC accounting for 10% of CPU, they must be using these checksums a lot. At some point I'd imagine the false error rate simply due to bit flips and other random errors on the path from database through CRC function will outlast whatever value you are getting from the constant rechecks.

Also, literature suggests a throughput of ∼2.67 bytes per cycle for the CRC32 instruction, a three fold improvement over best in class non-HW routines. I'm quite sure it would be worth it to reconvert previous checksums if you can do so in a way that minimizes downtime (think TrueCrypt doing a transparent initial encryption; not encrypting when theres IO load).

<comment><USER11> Is the CRC32 instruction much faster than an optimized implementation using PCLMULQDQ? It's available on a wider range of CPUs, but I thought I remembered that PCLMULQDQ worked very quickly.

<comment><USER12> I think when I looked single instr crc32 was ~5 times faster than the pclmulqdq version.

As an aside, if they have a server in production that doesn't support CLMUL, they should junk that machine - it appeared in Westmere and Bulldozer - everything earlier is EOLed. Crc32 was in sse4.2, so Nehalem.

The crc32 instruction is hard to beat, has been around for years, and I would guess the different poly could be phased in on their systems like you would for changing a password algorithm, or just try the new poly since it is quick, and if it fails use the old poly.

</comment></comment></comment><comment><USER13> > kernel, oh, how I wanted to like this. Every CRC32 operation consists of a > write to and read from a socket...

Why didn't they extract the CRC32 code from the kernel and try it directly?

[https://github.com/torvalds/linux/blob/master/lib/crc32.c](https://github.com/torvalds/linux/blob/master/lib/crc32.c) [https://github.com/torvalds/linux/blob/master/include/linux/...](https://github.com/torvalds/linux/blob/master/include/linux/crc32.h)

</comment><comment><USER14> Modern Intel CPUs have an instruction specifically to compute CRC. This instruction is easily consumed through a C++ intrinsic, literally in one line of code. You can't do any better than that, no matter what you use.

<comment><USER15> In this particular case, however:

 _[Intel 's CRC32 CPU instructions] uses different inputs to the CRC32 algorithm (known as the polynomial) which is apparently more robust, and is used in networks, filesystems, that sort of thing. It gives different results to the "standard" polynomial, typically used in compression._

They would have to go back and recompute all their existing stored checksums.

<comment><USER16> That's why you have to tag the value with an identifier of the algorithm, so you can change your mind later. The problems they currently face are a direct consequence of an architectural mistake a few years ago.

<comment><USER15> Maybe; maybe not. Regardless, they aren't in a position to alter their software to the degree required _at this time_.

<comment><USER4> Indeed. As I note in the post, this wasn't something we _needed_ to do at that time, we were just curious.

Replacing a function with a faster implementation is trivial; its just another deployment and we do several of those each week. Changing data format adds operational complexity - two codepaths need to be run and maintained and we increase system load and lower response times for the duration. (The data format is versioned, so that's easy - no architectural problem there).

Its totally worth doing if you need to, and we're not afraid of that, but you don't do it on a whim - it takes proper planning and testing and needs multiple people involved.

</comment></comment></comment></comment></comment><comment><USER17> > Next, we have to get our optimisation settings right. We compile Cyrus with > no optimisations and full debugging because it makes it really easy to work > with crash dumps.

Wait, so are these results without letting the compiler optimize?

<comment><USER4> The results in the tests are all with optimisations (-O3 -march=sandybridge -mtune=intel), as mentioned in the post.

The exception is the Debian packaged version of zlib, because we don't control that. That's the reason I include stock zlib in the tests - if it had been wildly different from the system zlib, I would have looked into recompiling the Debian package with more optimisations. There were no major differences and indeed, inspecting the package further shows that it is compiled with optimisations.

On the Cyrus side, we used to link to the Debian zlib, so we get those optimisations. For the new code bundled in Cyrus itself, we have to enable optimisations ourselves.

<comment><USER18> Did you guys every try splashing out for a small intel compiler licence and bootstrapping a test system?

</comment></comment></comment><comment><USER7> I love how the linked Twoskip PDF presentation [1] lists as one of the features:

"Easy to rewrite in other languages (e.g. Perl!)"

[1] [http://opera.brong.fastmail.fm.user.fm/talks/twoskip/twoskip...](http://opera.brong.fastmail.fm.user.fm/talks/twoskip/twoskip- yapc12.pdf)

</comment><comment><USER19> why not rip out CRC32 and put in xxhash?

<comment><USER20> Last time I needed really fast hashing I used FNV. How does it compare to xxhash?

<comment><USER21> There are hash functions that are as fast or faster than FNV and stastically stronger (and faster) than xxhash. There are multiple hash function families that should be used before either of the above in modern applications unless you need backward compatibility (like the CRC case in the article). This is an active research area and both of the above, while adequate for many casual use cases, should not be used for checksums for the same reason CRC32 should not be used for checksums in large systems.

As an example from one of my hash function research projects, MetroHash64 will outperform xxhash both for speed and stastical robustness (which is quasi- cryptographic). If you only need 32 bits, truncate larger hashes; if they have very strong stastical properties, that works well.

Lots of people working on this stuff.

<comment><USER22> Comparing xxHash with FNV is a strawman, it's apples and oranges in terms of quality.

You are discounting xxHash considerably. xxHash is one of the best, if not the best, all factors considered.

SMHasher:

      xxHash, speed=5.4 GB/s, quality=10
      MurmurHash 3a, speed=2.7 GB/s, quality=10
      SBox, speed=1.4 GB/s, quality=9
      Lookup3, speed=1.2 GB/s, quality=9
      CityHash64, speed=1.05 GB/s, quality=10
      FNV, speed=0.55 GB/s, quality=5
      CRC32, speed=0.43 GB/s, quality=9
      MD5-32, speed=0.33 GB/s, quality=10
      SHA1-32, speed=0.28 GB/s, quality=10

<comment><USER21> With all due respect, xxHash is a decent hash function but you are comparing it against some relatively weak or slow hash functions. As was pointed out last time this came up, the Metro64 hash example I offered is simultaneously faster and higher quality than xxHash. There are hash functions that are faster than xxHash _and_ stronger than some of the cryptographic hashes, and xxHash definitely has much more bias than even MD5.

Getting a perfect score with SMHasher is table stakes. The default settings on SMHasher are much too loose for current research; I know it well, I have hacked it extensively. A state-of-the-art non-cryptographic hash function today generally has the following properties:

\- statistical quality greater than or equal to MD5, a cryptographic hash. xxHash is not close to MD5 in quality.

\- faster than xxHash on large keys, and for really good hashes, memory bandwidth bound. (Metro64 is, again, faster than xxHash, though not memory bandwidth bound.)

\- faster than xxHash on small keys (Metro64, to use that example, is almost 2x faster)

There are a lot of good hash functions being developed by researchers. But empirically, xxHash is nowhere near the state-of-the-art any way you slice it. It is a decent hash function but there are many functions produced by many researchers that are both faster and higher quality. It isn't personal, people can measure it for themselves.

<comment><USER22> Yes, I remember reading your post on Metro64 at the time:

[http://www.jandrewrogers.com/2015/05/27/metrohash/](http://www.jandrewrogers.com/2015/05/27/metrohash/)

Interesting that you based your results there on SMHasher. Are there better benchmarks available?

</comment></comment></comment></comment></comment></comment><comment><USER23> I wonder if some other hash might be faster (e.g. fletcher 16).

<comment><USER24> If they were going to use a different hash function then they would more likely uses the built-in CRC32 instruction, which computes CRC-32C. That would certainly be faster.

</comment></comment><comment><USER25> Hope they contribute the change back to Cyrus.

<comment><USER4> Same day, in fact: [https://git.cyrus.foundation/diffusion/I/browse/master/lib/c...](https://git.cyrus.foundation/diffusion/I/browse/master/lib/crc32.c)</comment></comment>


How To Be Creative [pdf] - <AUTHOR> http://changethis.com/manifesto/6.HowToBeCreative/pdf/6.HowToBeCreative.pdf <comment><USER2> Three months ago: <http://news.ycombinator.com/item?id=1666339>

No discussion there, so maybe it's worth trying again ...</comment>