Sega, Nintendo, and the Battle that Defined a Generation (2014) [video] - <AUTHOR> https://www.youtube.com/watch?v=mDlhclXHZF0 <comment><USER2> Fun talk and really great book. Telling the story from Sega NA's perspective changes it from a history book filled with facts to a underdog story where you can watch as Sega rises to overcome the giant only to come crashing back down. Out of the books I read in the last three years it was in my list of top five and I hope the film comes out just as good.

The movie is in post-production so I was hoping that there would be some questions and discussions about that in the talk, but alas there was not.

The comment about the console wars being similar to Game of Thrones was interesting. Nintendo the reigning king that gets to write the rules however they want and meanwhile you have Sega and Sony both trying to get leftover scraps while at the same time when the stars aligned they each were happy to try to dethrone the king.

<comment><USER3> Console Wars is a very polarizing book. I basically despise it, it was profoundly disappointing especially since a pre-release excerpt I read was pretty good but totally non-representative.

The book has several problems that made it fail for me. First, it's mostly written as a series of dramatized scenes with dialogue that's both phony and cheesy. Second, it's mainly a book about marketing rather than any of the many things of that period that I'd find interesting. That's just glossed over. Sure, there's a few great stories you can tell about that. (The stunt they pulled to get Sega into Walmart was hilarious). But then it's padded with chapter upon chapter of marketing campaigns or sales junkets that were not interesting or important in any way. Or human interest stories of people who aren't all that relevant to the story.

That leads us to the third problem; the book is just way too long for what it is, due to the writing style and the bad choice of material. Finally, it's a a completely one sided story. The heroes are the dashing and brilliant Sega America marketing people and salesmen, who are undermined by the Japanese bureaucrats and engineers and by the unfair competition from Nintendo. It's as if the only sources for the book were from Sega America.

So buyer beware.

<comment><USER4> I enjoyed the book and think there's a subversive thread in it that your comments allude to. If you accept the story as an underdog success tale you might be frustrated. If on the other hand you read it as a cautionary tale about what happens when all you have is buzz and marketing runs your company, I think you might enjoy it more.

The book purports to tell the story of how the Sega Genesis came out of nowhere to win massive market share in the gaming industry, but as you said the actual story consists of a long string of marketing junkets related anecdotally by the marketers in attendance.

Discussion of software engineering and hardware design is scant. Meanwhile there's an entire chapter dedicated to play-by-play of a weekend retreat Sega hosted for video game distributors.

There's a few takeaways from this:

1\. Distribution (marketing, sales, partnerships) is sometimes the whole story.

The Genesis story basically boiled down to "they made a fun game with a cute mascot and then hired the right ad agency to flog it nationwide at massive cost". As "makers" hanging out on HN that's an offensive reading of history but the author talked to the principals and that's the story they told.

2\. If all you have is distribution, any gains you find will be unsustainable.

I found the last chapters of the book a downer. The Sega America folks were tasked with marketing a confusing lineup of products, couldn't get consumers excited about them, so they all jumped ship one by one. At the end of the day they were just a bunch of marketers and that could only take them so far.

While the book's decision to tell the story of the Genesis through its marketing seems to belittle the work of the actual product people back in Japan, it's gentle telling of Sega America's collapse post-Genesis shows the limitations of a marketing-only approach.

3\. While the book appears to lionize the "underdog" Sega America team, in the end it's the Nintendo folks who come across most impressively. The chapters where the authors cuts back to what Nintendo was up to at the time show a company with actual substance, identity, and a point of view. While the "heroes" of the book run around from marketing strategy to marketing strategy, the "villains" quietly and confidently go about the business of making great products, manipulating distribution in a heavy handed yet open way, and marketing their products in simple, relatable marketing.

In the end, though the book appears to promote a "marketing is all that matters" approach to business it really argues that lasting success come from companies that are product driven.

<comment><USER3> That's an interesting and much more palatable reading! I don't think it's the one the author intended though :-) If the actual thesis is that just marketing is insufficient, the imbalance in what the book covers (90% marketing, 10% product) is even harder to swallow. If these marketing stunts don't matter, why are they being covered almost exclusively in favor of the stuff that does matter?

<comment><USER4> You're probably right about the authors intent, but that's a reason I liked the book. It was well enough reported to support more than one interpretation!

</comment></comment></comment></comment></comment><comment><USER5> I found [http://www.amazon.com/Console-Wars-Nintendo-Defined- Generati...](http://www.amazon.com/Console-Wars-Nintendo-Defined- Generation/dp/0062276700) to be a pretty interesting read about this entire history.

</comment><comment><USER6> James Rolfe/AVGN has an entertaining take on this. Possibly NSFW.

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

</comment><comment><USER7> From this video i get the impression that Genesis and Playstation was an American product, while the SNES was a Japanese product. This in terms of who handled the marketing etc.

</comment><comment><USER8> This is an interesting subject matter but he's a poor speaker. If his book is anything like this speech I'm sure it's long-winded and boring.</comment>


Roomba I7+ set to start sharing maps of people's homes with Google - <AUTHOR> https://www.theverge.com/platform/amp/2018/10/31/18041876/google-irobot-smart-home-spatial-data-mapping-collaboration <comment><USER2> Current title of this HN post is very misleading. Roomba simply uploads a skill add-on to Google Assistant. The only data Google receives is names of rooms and when the user requests to vacuum them. This is given the fact that the user owns a Google Assistent.</comment>


Understanding Victimhood Culture - <AUTHOR> http://quillette.com/2018/05/17/understanding-victimhood-culture-interview-bradley-campbell-jason-manning/ <comment><USER2> Seems to me that even acknowledging these truths invites attack.

</comment><comment><USER3> This is a very good overview of the victimhood culture.

It compares it with dignity cultures and honor cultures and specifies some specific characteristics of the victimhood culture.

</comment><comment><USER4> I thought this was good, interesting, intellectual reading, and I'm glad I read it. But it's also pure politics without any particular tech or business angle. Don't things like this usually get flagged off Hacker News?

<comment><USER5> From the FAQ:

> On-Topic: Anything that good hackers would find interesting. That includes > more than hacking and startups. If you had to reduce it to a sentence, the > answer might be: anything that gratifies one's intellectual curiosity.

</comment></comment><comment><USER6> A long but worthwhile read. I find the dignity culture most appealing, the honor culture most traditional, and the victim culture most segregating. If I had to cast my lot between the three, I'd go with the first, but I'm unaware of other alternatives, the weaknesses of dignity, or whether the system could be considered multidimensional. This field is obviously not my area of expertise.

I wonder if there is a philosophy similar to dignity culture but where order is earned and not granted - a mix of libertarianism (no obligation to participate) but credit on behalf of productive engagement.

Alas, I do feel that social media enables tribalism and thus identity conflict. And, I think that's why I'm not on Facebook anymore. At least, I didn't find participation to be productive, but rather ranking by popularity, momentum, and signals of the newsfeed's algorithm.

Complex stuff, but I hope that's a statement others can engage with as I'm genuinely curious about understanding the landscape by looking through other lenses.

</comment><comment><USER7> We (in the US) live in a culture of white supremacy, where the state has a "monopoly on violence". So it makes sense that any non-white-male would have some kind of history, whether individually or as a member of a group, of violent oppression by a member, or members, of the dominant group.

It is unfortunate that the authors seem to be tip-toeing around white supremacy, and instead choose to invent a new term like "victimhood culture" to neatly label what is actually a wide-ranging and diverse counter-cultural movement.

Their stance could almost come across as sympathetic to this movement. Instead, they end with "And finally, it's important to combat victimhood culture and to deal with the problems it creates ...".

To me this reeks of the same old white privilege and condescension that have led our society to this point. We desperately need to address the _dominant_ culture and the problems it _has_ created and continues to create, the latest of which appears to be this book.

Labeling the dominant culture a "dignity culture" is, at this moment in history, beyond the pale.

<comment><USER8> > We (in the US) live in a culture of white supremacy

What does this mean? I was born in and grew up in the US and I have no idea what you're talking about. I'm guessing Obama being president does not throw even some slight wrench into this notion?

<comment><USER9> >What does this mean? I was born in and grew up in the US and I have no idea what you're talking about

That basically proves his point. If you haven't noticed any discrimination then you're likely in a position of supremacy, whether or not you want to be.

Talk to minorities, especially in impoverished neighbourhoods, and ask them how they feel about the police. Most of them will have likely felt discrimination at some point. And that's just the quantifiable stuff, there's far more under the surface that makes minorities feel very, very persecuted. There was a good read on HN about this a few weeks ago [1] which I fully recommend reading, it's eye opening.

>I'm guessing Obama being president does not throw even some slight wrench into this notion?

Well if Obama threw a wrench in, Trump took it back out. And as much as I admire Obama, after the initial high of America finally having a black president wore off after the first year of his first term, _not much happened_. Dealing with decades, if not centuries, of institutionalised racism in the US is not an easy task, especially when you have to answer to congress/senate and try and appease Republicans who more often than not stood in the way of Obama's goals.....well you can see why he may not have been the end of discrimination. Interracial marriage only became acceptable to a majority of the population in the late 90s, there's still a massive amount of progress that needs to be made.

White supremacy in this context does just mean "whites have an advantage" by the way. Nobody is accusing all white people of being white supremacists. I personally hate the term "all whites are racist" or whatever people say nowadays, it has the same intention but is hugely misleading.

[1] [https://lithub.com/walking-while-black/](https://lithub.com/walking- while-black/)

edit: should've had more coffee this morning. Privilege would be a much better word than supremacy in this context.

<comment><USER10> It's interesting to consider the result of anti-white stigma in South Africa, a once prosperous nation, and Zimbabwe before it. Why is Botswana quietly and miraculously successful, while nations so deeply steeped in racial group identity politics, possessing the finest farmland in the world, starve?

</comment></comment></comment></comment><comment><USER11> A little off-topic, but I find it interesting to see ad on the page showing me various Amazon books I might like to buy. It seems that the Amazon ad network is out-competing Google's AdSense for the right to place an ad in the middle of this article.

</comment><comment><USER12> Well, it's an interesting read, though there is one aspect I question about their definition:

> People generally eschew violent vengeance in favor of relying on some > authority figure or other third party.

My experience with people involved in this is that vigilante behaviour seems to be growing in popularity with this crowd. For example, note how many times you'll hear about people upsetting someone on Twitter, and then see them lose their job after thousands complain to the company about it or track down their home address/personal details or what not. Trying to have some blacklisted from the internet or their industry for some perceived slight definitely seems like taking the law into their own hands, even if its perhaps a bit less violent simply by virtue of being online.

I'd also certainly consider behaviour at protests from some of these people as violent, with actions by groups like antifa at protests against right wing figures speaking in colleges being violence inspired by victimhood culture.

Still, the rest of the article makes sense, and jives pretty well with reality.

<comment><USER13> I think that specific definition was more meant towards "relying on an authority figure or other third party to resolve the conflict without ruining the life of either".

I don't think the author wanted to cover vigilante behaviour under that.

</comment></comment><comment><USER14> Interesting. I can see a lot of my countries culture in the dignity culture itself... quite a neat food for thought.

</comment><comment><USER9> I honestly don't think these interviewees know what they're talking about.

The most objective argument I have to support this is that they keep talking about "whites" as a race. Never "white Americans", "caucasians", "white europeans" etc etc, just "whites" or "white people". Which is hugely problematic considering the entire concept of white as a race is incredibly modern. Before the 19th century, there wasn't a concept of whiteness, you belonged to a nation rather than a race. And it kind of makes sense, since where do you even draw the line on white? Are Egyptians white (Rami Malek...)? What about much of the middle east, many Syrians could pass for either white or Arabic? Or some western Asian countries, like most of the -istans?

Ultimately, the idea of a white race was created on classist principles. The Irish were accepted as whites, despite being persecuted for centuries, as they were seen as "better than black". They weren't seen as white at all since that concept had not been created until mass immigration to the US. There's a good quote on this: [1]

>The Irish, arriving poor, were in direct contact and competition with the African Americans whose social class they shared. They managed to become identified as white through their complicity in the oppression of blacks. Despite, or perhaps because of, calls from Daniel O'Connell in Ireland for the Irish in America to support the abolition of slavery, the American Irish felt their tenuous position in America would be weakened further if they were to associate themselves (or allow themselves to be associated with) the plight of the Africans in America.

My point isn't really to start a debate on whiteness or anything like that. My point is that throughout this entire interview, where they say the word "white" in various forms eighteen times, and use phrases like "white supremacy", "whitesplaining", "whites cannot be the victims of racism", they never _once_ mention that whiteness is a concept that was made specifically for discriminatory purposes. Even if that doesn't fit their agenda, mentioning the origins of the "white race" should be a prerequisite to talking about race hierarchies at any such length. It's like an electrical engineer not knowing what electrons are.

A lot of this interview just reeks of Jordan Peterson-esque pseudo- intellectual tripe. They even mention him in passing, and the site seems to have multiple articles on him. I probably won't have the patience today to actually debate any of this in length, but I implore anyone who is taking this article seriously to look up the troves of valid criticism of Peterson [2], because a lot of it applies to this article too: I honestly do not think the authors are qualified to discuss the sociological concepts they're talking about, and this is coming from someone who freely admits he does not have the qualifications to discuss it either. We shouldn't be giving a platform to people like this.

[1] [https://web.archive.org/web/20130428181555/http://www.polsis...](https://web.archive.org/web/20130428181555/http://www.polsis.uq.edu.au//dialogue/vol-1-2-4.pdf) [2] [https://www.youtube.com/watch?v=4LqZdkkBDas](https://www.youtube.com/watch?v=4LqZdkkBDas)

<comment><USER15> I take issue with your claim that Irish were "not considered white." Such an argument only makes sense given a prior assumption that "white" only means a vague definition of acceptability in society. Under that stand-in definition (and frankly a modern revisionist definition), the Irish immigrants who were considered outsiders would be tautologically "not white," but that's not how people at the time thought of it.

As evidence I present the Naturalization Act of 1790 [0], which restricted US citizenship thusly:

>That any alien, being a free white person,Alien whites may become citizens, and how. who shall have resided within the limits and under the jurisdiction of the United States for the term of two years, may be admitted to become a citizen thereof

Note that this was far before the period of "mass immigration to the US." The "free white" requirement remained in US law until the mid-19th century. I've never known of any case in which an Irishman was denied US citizenship during that time period on account on "not being white" (I would be happy to be proven wrong here). There were several signers of the Declaration of Independence that had Irish ancestry! [1] An outsider group, yes, and one that took time to be integrated as a full part of the in-group, but the idea of people of the time looking at an Irishman and saying "he's not white," would not have made sense.

You're right that the concept of "white" as an identity group is relatively recent (on the order of several centuries) and was largely born in the American colonies as a way to distinguish an in-group from an out-group (mainly, colonists from various areas of Europe wanted something to distinguish themselves from the Indian tribes and black African slaves). But that's the way of all these categories ("black" can be similarly deconstructed as a recent American ethnogenesis).

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

[1] [http://thewildgeese.irish/profiles/blogs/the-irish- american-...](http://thewildgeese.irish/profiles/blogs/the-irish-american- signers-of-the-declaration-of-independence)

<comment><USER9> The Naturalization Act is actually quite interesting. Hadn't heard of it before being non-American. Looking into it, it seems like the act caused a load of confusion over race and nationality from the start, all the way up to the early 20th century. [1]

I agree with what you're saying about the Irish and "whiteness" having looked into it further. A lot of sources indicate they were seen as "white" but not in the same way as other Europeans, mainly being generally lower-class and Catholic.

Regardless, I think this discussion should have been present in the interview, or at least mentioned: this was just meant to be one example of points they have completely glossed over or ignored. I'm honestly quite saddened that this type of article is being upvoted on HN, there are a lot of flaws in the post which are not being discussed in the comments.

[1] [https://www.archives.gov/publications/prologue/2002/summer/i...](https://www.archives.gov/publications/prologue/2002/summer/immigration- law-1.html)</comment></comment></comment>


Arduino announces its first ARM-based prototyping board, the Arduino Due - <AUTHOR> http://www.thinq.co.uk/2011/9/19/arduino-goes-arm-due-board/

<comment><USER2> Between Arduino and Raspberry Pi, are we approaching a point where a hardware startup can bootstrap? There's a lot of room for disruption in the home appliance sector that has been out of reach for the typical internet startup. Think garage door openers, doorbells, anything in your house that currently has a chip in it. Those companies are firmly entrenched in their way of doing business.

<comment><USER3> Building working prototypes is no longer a major problem. Nowadays, (experienced) individuals can design portable game consoles [1], alarm clocks [2], mobile phones [3], and pretty much everything else.

However, you need a lot of money, time and experience for manufacturing, testing, shipping, and supporting the final products. Unlike software startups, hw startups may need to apply for FCC and international certifications, supervise contract manufacturers, and need to think carefully about liability issues.

[1] <http://openpandora.org/> \- [2] <http://www.chumby.com/> \- [3] <http://gta04.org/>

<comment><USER2> Aren't those phase 2 problems though? As a simple test to see if a market exists, why isn't it viable to sell your (polished) prototypes? One could make, (just spitballing) a doorbell that sends you an email as a hobby project, then throw it up on whatever the electronics equivalent of etsy is, and build them on build-to-order basis for the first few hundred units and then worry about investors only if your idea floats.

For the products we're talking about here, no competition exists. So I can sell my gimmicky doorbell for $80 or $90 just to see if there's any interest at all, then get investors and start building my own arduino boards from parts (since the specs are open) at scale.

<comment><USER3> Actually, there are a number of online shops that you can ask to manufacture and/or sell your design, e.g. [1,2].

However, manufacturing electronics in low quantities is quite expensive. Additionally, in order to legally sell this stuff in the EU, you need to get a WEEE certificate (i.e. someone needs to take care of recycling or disposing of your product) and a CE certificate (compliance to all regulations). And you cannot easily fix a bug in your board design or even the firmware, once the product has been shipped to the customer. You have to get it right on the first try.

I agree that it has become relatively easy to start a hardware company. However, compared to a software startup, you need to invest a lot of money upfront. And so much more can go wrong that you have little control over.

I don't know a lot about startup economics but I have closely followed the fates of a number of hardware startups. For example, the Pandora guys got screwed over by different manufacturers, costing them a lot of time, money, and goodwill. WakeMate shipped dangerously defective USB chargers they had to replace. OpenMoko just did not find enough potential buyers for their phones (and screwed up in other ways).

Hardware startups do not fail because of a lack of prototyping tools.

[1] <http://www.seeedstudio.com/depot/> [2] <http://www.sparkfun.com/>

</comment></comment></comment></comment><comment><USER3> Hmm, I'm not sure whether an ARM board is really a good idea. For most applications, a normal Arduino is easily sufficient. For anything more complicated, you can buy an ARM board running Linux (e.g the upcoming Raspberry Pi [1] for $25-$35).

Arduinos are primarily used for education and prototyping. Programming raw ARM chips makes sense if you build a small series of specialized devices and want to keep costs down.

Given that the Arduino Due will certainly cost significantly more than $30, I see no market for such a board.

[1] <http://www.raspberrypi.org/>

<comment><USER4> There is a big difference between a Cortex-M3 and whatever is powering the Raspberry Pi. It's intended as an 8-bit microcontroller replacement. I've recently switched from TI MSP430 processors to this same Cortex-M3 from Atmel and performance has increased while per unit cost has gone down.

<comment><USER3> Thanks for the clarification. Is there really much demand for such a board?

<comment><USER4> I want one, and I know several others that will as well. The 32-bit Cortex-M3 core at 96 MHz leaves an AVR in the dust; it has low-power modes that make power consumption comparable; and the peripheral set advantage of the AT91SAM3U over an ATmega is huge.

Also, ARM Thumb2 is a much nicer instruction set than AVR in my humble opinion. Cortex-M3 also has some great instructions to improve the efficiency of real-time preemptive kernels (e.g. RBIT, CLZ and automatic pushing of registers on interrupt). I've written my own tiny kernel for this microcontroller, and I'll definitely be putting it up on github since this release increases the likelihood that others will contribute to it.

Also, Cortex Microcontroller Software Interface Standard (CMSIS) [1] makes porting between vendor's offerings (e.g. STM32 or Stellaris) much easier than going from say AVR to MSP430.

[1] [http://www.arm.com/products/processors/cortex-m/cortex- micro...](http://www.arm.com/products/processors/cortex-m/cortex- microcontroller-software-interface-standard.php)

</comment></comment></comment></comment><comment><USER5> Have they finally fixed the pin header defect in their boards or is it institutionalized at this point?

<comment><USER6> Would you be kind enough to explain what the "pin header defect" is, for an Arduino noob? I'm just starting to play around with Arduino hacking and haven't heard of this yet (until now).

<comment><USER3> The distance between the two rows of pin headers on each side is not a multiple of 0.1". This means that every shield that you attach to the Arduino needs to have this same strange spacing between the rows of pin headers. You cannot just use a normal perfboard. As all Arduino shields have the same weird spacing, fixing this design flaw would require everyone to buy new shields. There are Arduino clones that add correctly aligned rows of pin headers [1], however.

[1] [http://shop.pinguino.cc/image/cache/data/olimex/pic32-otg-50...](http://shop.pinguino.cc/image/cache/data/olimex/pic32-otg-500x500.jpg) (actually, no true Arduino clone)

 _Edit:_ found a good explanation with pictures here: [http://brettbeauregard.com/blog/2009/07/arduino-offset- heade...](http://brettbeauregard.com/blog/2009/07/arduino-offset-header/)

<comment><USER7> Couldn't they make an adapter?

<comment><USER8> Apparently a someone does. <http://www.sparkfun.com/products/9374>

From raphman's link

</comment></comment></comment></comment></comment><comment><USER9> The 12-bit A/D is a step up.

Anyone know the projected unit cost for one of these? The processor alone is ~$10 (individually)

<comment><USER4> One can get that microcontroller around $5 a piece with larger quantities (e.g. 10k). Also, the AT91SAM3U has a high-speed USB peripheral. So, the extra circuitry for the serial-to-USB bridge is no longer necessary.

</comment></comment><comment><USER4> Has a schematic or block diagram been released for the Arduino Due? I haven't found one with a quick search. I'd also be very interested to take a look at the bootloader source code if that is available.

</comment><comment><USER10> If this is the first ARM-based Arduino, what was the Arduino chip based on that Google used at I/O for that accessory API thing? Was it a regular (but smaller) Arduino?

<comment><USER4> All of the official Arduino hardware designs have used an AVR to the best of my knowledge. Netduino [1] is a related project that runs a stripped down .NET framework on an ARM7 core. However, that's not what Google used. It may be the reference for Windows Phone add-ons.

[1] <http://netduino.com/></comment></comment>


Show HN: 53cr3t – self-destructing group chat - <AUTHOR> https://53cr3t.com/ <comment><USER2> Interesting app.

You should allow the creator of the chat room to adjust the self-destruct countdown, so that users can choose between 30 mins, 1 hr, 6 hrs, 12 hrs, 24 hrs - and also provide a dialog to confirm the change. Also automatically add entry to the chat that the countdown has changed to self-destruct at [X] time.

<comment><AUTHOR> I've gone ahead and updated the app so that the lifespan is adjustable to be up-to 24 hours. But to make things less confusing, this is only selectable when the chat is created, it can't be changed afterwards.

Thanks again for the suggestion.

</comment></comment><comment><USER3> Join me [https://53cr3t.com/i/ui98dp](https://53cr3t.com/i/ui98dp)</comment>


A spreadsheet of lightweight Linux laptops for hackers - <AUTHOR> https://docs.google.com/spreadsheets/d/1aupHsdNrPWVLNNNbJLA9w5S87B4RRnk9KAw7i9yd5HM/edit#gid=0 <comment><USER2> I'm just seeing random cells with "hi" all over them. This is why we can't have nice things.

<comment><USER3> It was nice when they were doing queen in the title.

</comment></comment><comment><USER4> I'm sorry that became a mess instantly. I hope you remake it on a different platform (csv on github.) It looked useful for a moment there.

<comment><USER5> Looks ok again.

</comment></comment><comment><AUTHOR> Turns out "anyone can edit" also meant anyone could mess with the sharing settings. So I've made it read only, which is a pity. Will investigate alternative hosting arrangements that might support pull requests at some point...

</comment><comment><USER6> That didn't last long.

<comment><USER2> I think you'd be better off with a git repo, then you can review pull requests for data, instead of a public spreadsheet that is editable by anyone.

Sheets doesn't really have a "request to modify" system (that I know of).

<comment><AUTHOR> Which is what stopped me from using them for some serious crowdsourced data projects in the past. This was a sheet I had lying around anyway and thought others might find useful :)

Might be nice to have someone define a clean 1:1 mapping between a google sheet/airtable and a git repo...

<comment><USER2> Github can already render views of csv data - not quite what you're saying but I think it would be good enough for these purposes.

</comment></comment></comment></comment><comment><USER7> no gpd pocket?

</comment><comment><USER8> Chuwi 12.3 ?</comment>


Brancher App - Create Branched Videos Easily - <AUTHOR> https://brancher.app/home/about <comment><USER2> 502 - bad gateway</comment>


Trigger a Kernel Panic to Diagnose Unresponsive EC2 Instances - <AUTHOR> https://aws.amazon.com/blogs/aws/new-trigger-a-kernel-panic-to-diagnose-unresponsive-ec2-instances/ <comment><USER2> unknown_nmi_panic is not entirely reliable.

Amazon should IMO come up with a little ACPI spec by which it can set a flag saying "diagnostic interrupt requested" and _then_ send an NMI. That way it would be a _known_ NMI and would work reliably and without magic command line options.

<comment><USER3> It still wouldn't be reliable because if a kernel is fully wedged its not going to respond to anything, including an NMI.

I suspect that is why you are seeing unreliability with unknown NMI panics.

<comment><USER4> You can't be so wedged that you can't respond to an NMI; an NMI is the CPU stealing execution from the kernel and giving it to the configured interrupt handler. The interrupt handler is _usually_ coded entirely independently of any state in the kernel itself, so—for any reasonable production kernel—there's nothing the kernel can do that would make the NMI interrupt handler fail to function.

<comment><USER2> Not really. An NMI is delivered just like any other interrupt, and the NMI handler absolutely depends on kernel state. This is needed for the handler to do things like figuring out that it's a performance counter event and queueing up the perf event record involved.

There are a few relevant things about interrupts that matter here:

1\. Interrupts, in general, don't have useful payloads. This is because the CPU and its interrupt controller keep track of all interrupts pending so that they can make sure to invoke the interrupt handler when it's next appropriate to do so. To avoid having a potentially unbounded queue of pending interrupts, the pending interrupt state is just a mask of bits indicating which vectors are pending. On x86, NMI is vector 2. It is pending or it isn't. This is like like a regular device IRQ, which can be pending or not. In the case of regular device IRQs, the OS can query the APIC to get more information. If the IRQ vector is shared, the OS can query all possible sources. In the case of performance counter NMIs, the kernel can read the performance counters. In the case of magic AWS NMIs, there _is nothing to query_. This is why I think it's a poor design.

2\. The x86 NMI design is problematic: NMIs are blocked while the CPU thinks an NMI is running, but the kernel has insufficient control of the "NMIs are blocked" bit, and the CPUs heuristic for "is an NMI is running?" is inaccurate. The result is extremely nasty asm code to fix things up after the CPU messes them up. This is nasty but manageable.

3\. x86_64 has some design errors that mean that the kernel _must_ occasionally run with an invalid stack pointer. The kernel developers have no choice in the matter. Regular interrupts are sensibly masked when this happens, so interrupt delivery won't explode when the stack pointer is garbage. But NMIs are non-maskable by design, which necessitates a series of unpleasant workarounds that, in turn, cause their own problems.

The kernel can definitely have bugs that cause NMI handling to fail. I've found and fixed quite a few over the years. Fortunately, no amount of memory pressure, infinite looping, or otherwise getting stuck outside the NMI code is likely to prevent NMI delivery. What _will_ kill AWS's clever idea is if the kernel holds locks needed to create a stackdump at the time that the NMI is delivered. The crashkernel mechanism tries to work around this, but I doubt it's perfect.

<comment><USER5> If you're able to, would you mind linking to some resources about the case you describe in point three where the kernel need deal with an invalid stack pointer? I'm very curious about the underlying causes.

Also, regarding point two, is the cumulative result of those factors you describe (other NMIs being blocked, lack of kernel control, the unreliable heuristic) that a diagnostic NMI may end up never being run?

<comment><USER2> > If you're able to, would you mind linking to some resources about the case > you describe in point three where the kernel need deal with an invalid stack > pointer?

Look up SYSCALL in the manual (AMD APM or Intel SDM). SYSCALL switches to kernel mode without changing RSP at all. This means that at least the first few instructions of the kernel's SYSCALL entry point have a completely bogus RSP. An NMI, MCE, or #DB hitting there is fun. For the latter, see CVE-2018-8897. You can also read the actual NMI entry asm in Linux's arch/x86/entry/entry_64.S for how the kernel handles an NMI while trying to return from an NMI :)

To some extent, the x86_64 architecture is a pile of kludges all on top of each other. Somehow it all mostly works.

> is the cumulative result of those factors you describe (other NMIs being > blocked, lack of kernel control, the unreliable heuristic) that a diagnostic > NMI may end up never being run?

No, that's unrelated. A diagnostic NMI causes the kernel's NMI vector to be invoked, and _that's all_. Suppose that this happens concurrently with a perf NMI. There could be no indication whatsoever that the diagnostic NMI happened: the two NMIs can get coalesced, and, as far as the kernel can tell, only the perf NMI happened.

Once all the weird architectural junk is out of the way, the NMI handler boils down to:

        for each possible NMI cause
          did it happen?  if so, handle it.

        If no cause was found, complain.

Amazon's thing is trying to hit the "complain" part. What they should do is give some readable indication that it happened so it can be added to the list of possible causes.

</comment></comment></comment></comment></comment></comment><comment><USER6> AWS doesn't give you console access, does it? Or at least I haven't been able to find it. I know on Linode they have LISH (console over SSH) and Xen will give you a VNC console (I think Vultr and Digital Ocean can too).

It seems like a much more useful feature is simply being able to see the console on the VM itself. Often kernel panics will print information on the default virtual terminal.

<comment><USER7> [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance...](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance- console.html)

<comment><USER8> That's only an output image though. The ability to interact with the console is always something I've missed from on-premises hypervisors.

<comment><USER9> FWIW, GCE have console. Another thing I miss in AWS is the ability to change instance user-data while running (GCE also allows this, including the ability to long-poll for changes)

<comment><USER10> Yeah, I've used GCE's console many times with SysRq to debug frozen instances. Surprised that AWS doesn't have one.

</comment></comment></comment></comment></comment><comment><USER11> Looks like a useful addition. What would be even better is if they provided a GDB stub to allow for full remote kernel debugging. Most hypervisors have support for a GDB stub, but for some reason it's not the norm for cloud providers to expose it to customers. It would be especially useful for unikernels. Most kernels of any type don't offer self-debugging over the network, because it's hard and unreliable (you have to ensure that any functions you might want to set a breakpoint on aren't needed by the debugger itself, which means you basically need a whole separate network stack). But they can at least allow debugging userland processes; that doesn't work with unikernels, which bake the entire system into the kernel.

<comment><USER12> Does ec2 offer a serial console equivalent? I've got FreeBSD on bare metal boxes with IPMI; you can get a serial over lan console and hit the NMI via IPMI as well to drop into the kernel debugger; super helpful for confirming where threads are stuck.

<comment><USER11> As far as I know, there's only a read-only serial console.

</comment></comment></comment><comment><USER13> Not all NMIs cause kernel panics. In fact in a normally running system you are likely to receive NMIs as part of the normal operation. I've seen a typical Windows 10 system handle hundreds of NMIs in a short span, and they are all handled gracefully (interrupt vector 2). (Perhaps certain drivers? Not sure.)

It might be a better idea to trigger a machine check (#MC). That said, AWS probably knows more than I do.

<comment><USER3> NMI (Non Maskable Interrupt) is both a general term and a term that specifically refers to an IBM PC x86 compatible function built into motherboards.

Historically it took the form of a button on the computer/server that when pressed would signal the kernel to bluescreen/kernel panic and a dump of memory to disk, then a reboot, aka a "machine check". It is now present also in the virtual hardware of a VM.

This article is talking about the latter, not the generic idea of hardware raising an NMI (which many types of hardware raise during error conditions, such as ECC or raid controllers or other devices), which is likely what you are seeing in your logs.

<comment><USER13> No I'm talking about the latter. To be specific I'm referring to the kind of NMI interrupt defined by Intel in Volume 3 Section 6.7 of its manual, that triggers interrupt vector 2 in protected mode. I write code for a hypervisor and it's the hypervisor's job to pass on NMIs from the hardware to the guest, which is why I see these NMIs.

</comment></comment></comment><comment><USER14> I'm glad they provide a working kdump config. Normally kdump is kind of magic and either it works or doesn't. In the second case, trying to figure out why may be insanely hard.

I tried to debug crashes on my laptop and without a real console access, it's pretty much impossible to tell why kdump fails.

</comment><comment><USER15> In this vein I think it would be interesting to have APIs that simulate a server, AZ, or region failure/partition. Obviously these could be quite dangerous and would need to have appropriate safeties (maybe AWS could ship you a box where you turn two keys at once).

<comment><USER16> This is why Netflix made "chaosmonkey" and other tools nearly a decade ago: [https://github.com/Netflix/chaosmonkey](https://github.com/Netflix/chaosmonkey)

</comment></comment><comment><USER17> Would this help in the case when sending shutdown to an EC2 instance sometimes takes 10+ minutes before the instance is stopped?

<comment><USER18> If I understand the EC2 instance lifecycle correctly, shutdown causes ACPI shutdown, and the machine does not enter stopped state until the OS in turn requests ACPI to power it off. That means shutdown time is dependent on the configuration of your software -- for example, if a single service is configured to gracefully wait up to 10 minutes for, say a persistent database client connection to disconnect, you might pay the full timeout during shutdown.

There is also a 'forced shutdown' API, but for whatever reason in testing for me it has always been slower than a graceful shutdown. I have no idea what it does internally

<comment><USER19> > _There is also a 'forced shutdown' API, but for whatever reason in testing > for me it has always been slower than a graceful shutdown. I have no idea > what it does internally_

I have sort of reverse engineered what the two options ("shutdown", "force shutdown") in AWS do.

A regular shutdown causes the hypervisor to issue the equivalent of "init 0" to the VM, over whatever communication channel is used between dom0 and domU. Semantically this is treated as a request. If the VM is completely catatonic, the domU kernel won't be able to process the request and will just fail.

A forced shutdown causes the hypervisor to issue a similar request, but also puts the VM on a watchlist. If the domU kernel has not terminated in a given time window, probably 10 or 20 minutes[ß], the hypervisor will nuke the VM.

ß: I'm not entirely sure about the time window, 10 and 20 minutes are what I have witnessed _most often_. I have on one occasion seen a VM take 90 minutes get nuked. And of course it was a legacy snowflake system that we couldn't just respawn on demand. That was fun.

</comment></comment></comment><comment><USER20> On Linux, you've always also been able to just run:

echo 1 > /proc/sys/kernel/sysrq && echo c > /proc/sysrq-trigger

to trigger a freeze. This could also easily be automated via SSH.

<comment><USER21> If the feature is for unresponsive servers, would SSH really work?

<comment><USER20> I suppose I misunderstood the diagnosis part. My understanding was that it was an API to trigger a kernel panic.

> Today, we are announcing a new Amazon Elastic Compute Cloud (EC2) API > allowing you to remotely trigger the generation of a kernel panic on EC2 > instances.

Which can be done with the commands I mentioned in my parent comment.

<comment><USER22> Not really. From the hypervisor's point of view, there isn't a guarantee that the VM is running ssh, is running it on the typical port, that there's a valid log-in, etc.

And again, the point of this is for VMs that are unresponsive, and that generally includes SSH. It is remarkably simple to get Linux into a state where SSH isn't going to allow you to log in, or log ins might take 10+ minutes to actually happen.

Someone else mentions console access for these things, which is sadly missing in AWS. I'm not sure how you'd take something like console access (very dynamic, keyboard input, screen output? text?) and put it into an AWS API, though. (Their APIs tend to follow certain patterns.)</comment></comment></comment></comment>


Show HN: City Browser, an interface for filtering US cities - <AUTHOR> https://sfirrin.github.io/CityBrowser/ <comment><USER2> Thanks for this</comment>


Ask HN: Should I pivot? - <AUTHOR> Hi HNers,
I built a Slack bot which turns Slack channels into SSH terminals. I got a few signups but the main feedback I'm getting is that people will not use it because it (understandably) poses a security risk.
I was initially thinking of marketing it as a tool for DevOps/sysadmin teams but I am now wondering if I should just give up and pivot into something else that will appeal to a different type of user.
Some ideas I came up with:
1) Education/training. I could see it being useful to teach users remotely. For example, a teacher could invite students in a channel, start a session and show terminal commands and students could participate as well.
2) Interviews. It could be useful as a quick first pass interview to see if your candidate knows how to use the command line.
3) Support. Companies/freelancers that do sysadmin type of work could invite their customers on their Slack, let them setup the SSH connection and let them watch in real time how they fix or setup their system.
Any feedback or advice would be greatly appreciated. <comment><AUTHOR> Clickable: [https://opskit.com](https://opskit.com)

</comment><comment><USER2> could you filter out some of the more ominous commands?

<comment><AUTHOR> Yes, I could do that but it's hard to get right. I think maybe I should release a SSH server container which has dangerous commands restricted.</comment></comment>


UC Berkeley Students Denied Genetic Test Results - <AUTHOR> http://www.futurepundit.com/archives/007406.html

<comment><USER2> There is a discussion to be had about whether or not the students should receive their test results. However, the author does not seem to fully understand what he's discussing.

First, there is the issue of our limited genetic knowledge. Genetic tests are currently based on a sample of 1 out of every ~3000 nucleotides in your genome. Therefore, although they do cover the vast majority of common variants, they cannot tell the full story. You may have a detected SNP that predisposes you to some risk of disease, but at the same time you may have a rare variant - not picked up by the tests - that is virtually guaranteed to protect you from the same disease. This is not trivial, as rare variants are common (everyone has lots of rare variants; however, few people _share_ the same rare variants).

Furthermore, most SNPs that are associated with disease have not been demonstrated to be _causal_ for disease. In fact, I'm aware of only a small number of SNPs that are not in exons (coding regions of genes) that are nevertheless known to be causal: one is rs12740374, which causes a decrease in LDL production via a novel pathway.

I suppose my point is that there is a large ethical debate that hinges on our scientific knowledge of the limitations of genetic testing. This author seems not to know about this, or not to care, and instead has chosen to write a polemic. I find this unfortunate.

<comment><USER3> _There is a discussion to be had about whether or not the students should receive their test results._

An extremely one-sided discussion. Genetic testing is already very useful, and it's only going to get more useful.

 _First, there is the issue of our limited genetic knowledge._

Our knowledge is incomplete, but it's far from useless. Genetic testing lets us know what foods or drugs are particularly harmful or beneficial. It lets people know of future disease risks. Knowing about these risks helps people change their lifestyles to reduce risk, or at least plan for the future. While today's test results aren't 100% accurate, they give the best probability estimate based on currently available science. To say that no information is better than this is absurd.

People don't want to restrict other diagnostic tests, even though they can be similarly inaccurate. It's simple technophobia that causes newer tests to be regarded with suspicion.

Also, there's the issue of rights. It's my DNA. I have trillions of copies of it in my body. I am literally made of this stuff. If human beings have any right over their own bodies then they should be able to read their DNA.

<comment><USER2> I'm not sure that we're talking about the same type of genetic testing. Perinatal genetic testing is highly useful, because you can literally save a person's life by early knowledge of genetic diseases.

Getting GWAS data from 23andMe, on the other hand, is generally not so much useful as it is entertaining.

The best probability estimate for most adult diseases still comes from history and the physical exam, not from genetic tests.

> Also, there's the issue of rights. It's my DNA. I have trillions of copies > of it in my body. I am literally made of this stuff. If human beings have > any right over their own bodies then they should be able to read their DNA.

I am most sympathetic to that argument.

<comment><USER3> _Getting GWAS data from 23andMe, on the other hand, is generally not so much useful as it is entertaining._

I mostly agree, although 23andMe did tell me something very useful. I have the two G alleles for rs4680. (<http://www.snpedia.com/index.php/Rs4680>) One research paper said I am likely to respond well to Modafinil. I now find Modafinil extremely useful. While 23andMe is mostly for the coolness factor right now, it's only going to get better. For a small fraction of people, data from services like 23andMe is undeniably useful, since it will tell them things we do know with high probability (drug interaction/metabolism, early- onset Alzheimer's from ApoE4, etc).

 _The best probability estimate for most adult diseases still comes from history and the physical exam, not from genetic tests._

I meant that genetic testing along with a physical exam is more useful than just a physical exam.

<comment><USER2> In medicine we often ask, "How would this test change management?" As it turns out, buying the 23andMe test and then taking modafinil is more expensive than taking modafinil, but it doesn't seem to change management. With or without the 23andMe test, you could have tried modafinil. I wouldn't consider your story a success for 23andMe (though I would consider it a success for you, and for modafinil; cheers!).

We are getting closer to clinical utility of these tests. I'm no Luddite. But I think that these tests need to be thought about like every other medical test. (See <http://www.nejm.org/doi/full/10.1056/NEJMoa0706728> for why I say that we're not quite there yet, but getting closer for some phenotypes.)

It's one thing to say that you have a right to your raw genetic data; like I said, I'm sympathetic to it from a rights-based standpoint, though not a clinical one for reasons that bhickey has brought up. It's another thing to say (not implying that _you_ are saying this) that companies should be allowed to make clinical claims about you based this data. That interpretive step merits thoughtful consideration, and probably regulation.</comment></comment></comment></comment></comment>


Assassination Politics (by Jim Bell) + Bitcoin = ? - <AUTHOR> http://en.wikipedia.org/wiki/Assassination_market

<comment><USER2> The difficulty with an "assassination market" is that markets facilitate the transmission of information to everyone.

Suppose an assassin wishes to purchase futures for, e.g., Obama dead on 5/15. If she purchases more than the normal amount of Dead Obama 5/15 Futures (DO515F), there will be a price impact. All of a sudden, the price of DO515F will spike and an observer will conclude there is an elevated probability of assassination on 5/15.

A system designed to disseminate information as widely as possible is not that useful for conspiracies.

<comment><AUTHOR> As far as i understand, the prediction date is encrypted, until you want to cache-out and send the decryption key.

<comment><USER3> How does the buy-ask resolve if there is information hidden?

<comment><AUTHOR> The predictor should send his decryption key, after prediction was successful.

</comment></comment></comment></comment><comment><AUTHOR> Original essay: <http://www.outpost-of-freedom.com/jimbellap.htm>

<comment><USER4> This is very, very dark stuff and it has absolutely no upside. Though the essay states the advantages of being able to assassinate another Hitler or Stalin in order to prevent them from abusing their privileges, the reality of a real Assassination Market would look quite different. People would be assassinated _all the time_ , even if they're not really in a position of power.

Can you imagine the last three American presidents surviving a system like this? What about the current president? I think a large number of lunatics would donate insane amounts of money towards his assassination just to see it through.

The idea that this is a constructive mechanism to put more checks and balances in the hand of the general population is horribly misguided. Who would like to live in a world like this? Also, it wouldn't even fix the most pressing problems, like corruption and abuse of power. An Assassination Market would just shift corruption and abuse to another group. The average citizen would be totally screwed, even worse than today (I know, it's hard to imagine sometimes).

There are so many worthwhile ideas to improve the concept of government. For example, I believe it is worth looking into abandoning the concept of representation or at least de-emphasizing it in politics. So many ideas worth discussing. Anonymous Assassination Markets is not one of them.

<comment><AUTHOR> President of the current liberal democracy obviously can't survive in this system because he is the head of organization, that extort money from its subjects by force.

</comment></comment></comment><comment><USER5> Sorry but where do bitcoins come in all this? Neither the wikipedia page or any of the comments here mention bitcoin (until now).</comment>


Intel Bringing SIMD to JavaScript - <AUTHOR> https://01.org/blogs/tlcounts/2014/bringing-simd-javascript <comment><USER2> Anyone experimented with this yet? I'd like to know how this is resolved when the architecture doesn't support Intel's SIMD approach, they map the objects pretty close to the instructions (SIMD.float32x4.sub and the likes).

I'm trying to figure out what happens when you port this to ARM NEON, and how you catch it with architectures that don't support NEON (they often lack them in Marvell and Allwinner).

<comment><USER3> I'm a Mozilla engineer involved in this. NEON support is very important and we're designing the spec to support it well.

CPUs that lack SIMD units can support the functionality (though not the performance of course), and there's even a polyfill library that can lower this API into scalar operations for SIMD-less browsers too.

<comment><USER4> It would be great, if you could detect SIMDable operations in classic JS (e.g. in loops) and use SIMD for interpret them. I think that adding low-level features into a high-level language is not good practice.

<comment><USER3> We will probably do that too at some point, but it won't replace explicit SIMD, just as widely-available auto vectorization support in C++ hasn't eliminated the need for explicit SIMD extensions there either.

One thing to keep in mind is that most programmers probably won't want to use this feature directly; it'll be used in libraries that expose higher-level APIs. It's still true that every feature we add increases overall clutter, but SIMD seems sufficently useful and sufficiently self-contained that it's worth the tradeoff.

</comment></comment></comment></comment><comment><USER5> Holy hell, Gary Bernhardt was right all along and the future will be METAL... [https://www.destroyallsoftware.com/talks/the-birth-and- death...](https://www.destroyallsoftware.com/talks/the-birth-and-death-of- javascript)

</comment><comment><USER6> Wonder what native SIMD support can do to projects like MPEG decoders in pure javascript.

MPEG1 in javascript is pretty fast and runs at native speeds on phones

[https://github.com/phoboslab/jsmpeg](https://github.com/phoboslab/jsmpeg)

but MPEG4/H.264 is not

[https://github.com/mbebenita/Broadway](https://github.com/mbebenita/Broadway)

<comment> X-Cubed The H.264 demo runs at 60+ FPS on the main thread on Chrome 37 (dev) on Windows for me. Very impressive.

</comment></comment><comment><USER4> I think their effort would be much useful, if they focus on WebCL. It is already standardized (unlike their "SIMD" object). CPU implementation of WebCL, that utilizes SIMD, would probably offer much better performance, than any current Javascript engine.

<comment><USER7> WebCL is not yet standardized, there is still ongoing discussion about that last I heard.

In any case, the two are not mutually exclusive, different people are working on each.

<comment><USER4> The version 1.0.0 was standardized in March 2014 - [https://www.khronos.org/registry/webcl/specs/1.0.0/](https://www.khronos.org/registry/webcl/specs/1.0.0/)

<comment><USER7> Oh, interesting, I wasn't aware of that!

Do you know what the implementation status and intention to implement is, among browsers?

<comment><USER4> WebCL implementations for Firefox and Chromium exist for 2 years. But they have not been included in any alpha, beta or canary release. Browser developers don't seem to care about WebCL, but they do care about WebGL, which is strange.

Samsung made it work in Tizen, but sadly, it is not very widespread OS. [https://www.youtube.com/watch?v=TurCVdaUTMY](https://www.youtube.com/watch?v=TurCVdaUTMY)

</comment></comment></comment></comment></comment><comment><USER8> Stuff like this, and asm.js, and WebKit's crazy LLVM-based DFG optimizations, all lead me to think Native Client will end up being looked at as a transitional, niche tech: you keep tuning the JS engine until it's not unacceptably slower than native for asm.js-type code, and you keep hooking webpages up with more and more native capabilities and code (graphics, SIMD, crypto/compression), and eventually very few NaCl use cases are left. I don't see other vendors getting on the NaCl bandwagon because they don't want to depend on Google's code and it's a lot of work to implement--so maybe NaCl ends up remembered as the toolchain some companies used to port some apps to Chrome OS and that's mostly it. Sort of a shame; I _like_ NaCl, just don't see a great path for it compared to iterating on existing technologies.

<comment><USER9> Threads... Native Client has threads. Javascript does not. I'm writing a scheduler for Emscripten that supports pthreads but it's crazy because it's still single threaded and doesn't look like readable javascript like it used to output. Bending over backwards. ...and don't get me started on web workers.

<comment><USER10> Please start, I'm curious as to why web workers doesn't fit the needs like using threads, I have a fairly basic knowledge of web workers and not much practice with them, but I would like to know if possible what are the limitations.

<comment><USER9> Javascript is inherently single threaded. It goes back to it's roots. It would extremely difficult to make it multithreaded. Apps developed in Javascript are heavily asynchronous and avoid blocking for too long because of this limitation. In some ways this is good.

In the right situation, for example in node.js, this discourages anyone from doing anything that would block the single thread handling requests for very long and makes it easier to handle the C10K problem in a much more interesting way (where traditional servers create a thread per request or queue them to handle one by one from a pool, where node does it all from a single thread). In other ways this can be bad it causes (in the case of Node developers) developers to not do a lot of the heavy lifting in Javascript itself and to hand off to native code that can do long hard things that may block on real threads (database queries, persistence backends, file IO).

The thing is that some code is easier to write with threads in mind. If I know there are 4 processes on a system, I can make 4 threads and use effectively use all for processors (potentially) at the same time. This is not really possible with Javascript. This makes heavy apps on a device like the Firefox phone (which is all about Javascript only) that want to could really benefit from using multiple cores impossible to take advantage of them (unless the user uses webworkers).

There are also just an epic amount of legacy with apps that are inherently built around the concepts provided by threads. Javascript is basically becoming the bytecode of the web. Things like ASM.js and emscripten are pushing it this way. But it's not really easy to port all code and fit on a model where threads are not allowed.

Conceptually web workers are more like processes than threads. It's a shitty work around in Javascript since we can't easily have threads without breaking the way Javascript works (which would break the web potentially). That means we have to write code into different processes where everything is isolated. On top of that, you can't share memory and you have to message and marshal data between webworkers. This is awkward and impossible to target from something like emscripten making it near impossible to port something expecting threads exist (theoretically if you have a C app that didn't use threads but different processes, you fit better but this almost never heard of). Most operating systems provide threads (pthreads most often except on Windows).

My solution is to make a scheduler that is used by my fork of emscpriten. All functions use return on call semantics and a "scheduler" in Javascript will decide which function should be called next from a list of virtual thread "stacks" (arrays) or if it should yield to the browser (setTimeout). The "scheduler" is single threaded itself so it's not really "threads" but does make it possible to emulate them for porting from native code.

</comment></comment></comment></comment><comment><USER11> Would these changes eventually make their way into node.js (through V8)?

<comment><USER12> Considering the architecture of Node.JS is not suited to compute-heavy tasks, I wonder what kind of code are you willing to optimize in Node.JS with SIMD?

<comment> nevi-me Any improvements are still welcomed of course. There are a number of people/entities that are building desktop apps on Node and those tend to do 'compute-heavy tasks', a developer whose piece of code runs in a mean of 10 seconds would also welcome a possible optimisation to run it in less than that.

Not knowing much, I think it'll be interesting to see how general purpose applications would benefit from SIMD if it's accessed from a higher level. Does that mean that if I want to loop through 103 items and run arithmetic operations on them I'd have to do the following, (let's say I'm multiplying each item in items[] by 2, and items.length % 4 !== 0):

      var batch = [],
        results= [],
        i = 0,
        j = 0,
        len = items.length,
        a, b = SIMD.int32x4(2, 2, 2, 2),
        c;
      var mod = len % 4;
      items.forEach(function (item) {
        if (i < mod) {
          results.push(item * 2);
          i++;
        } else if (j < 4) {
          batch.push(item);
          j++;
        } else {
          a = SIMD.float32x4(batch[0], batch[1], batch[2], batch[3]);
          c = SIMD.float32x4.mul(a, b);
          results.push(c.x);
          results.push(c.y);
          results.push(c.z);
          results.push(c.w);
          batch = [];
          j = 0;
        }
      });

Of course this is the interpretation of a non-CS graduate who taught himself JS, some of the stuff mentioned at [https://01.org/node/1495](https://01.org/node/1495) seems a bit over my head. It'd be great if V8 would (unless it already does) transparently handle creating SIMD-optimised code where one is looping through an array or the like instead.

(edited to fix code, hopefully)

<comment><USER13> That kind of 'pack non-SIMD into SIMD, do SIMD op, unpack back into non-SIMD' thing tends to be slower than just doing non-SIMD ops in most cases.

You'd want to convert your non-SIMD data into a big stream of SIMD data up front, then do lots of operations on it, and then after that perhaps unpack it. Most SIMD scenarios just keep data in SIMD format indefinitely.

(Sometimes a compiler can use SIMD operations on arbitrary data by maintaining alignment requirements, etc. That sort of optimization might be possible for the JS runtime, but seems unlikely for anything other than typed arrays.)

</comment></comment></comment></comment><comment><USER14> I was doing research on parallel computing last summer. Does anybody know if this SIMD object is similar to the ParallelArray object Intel made in Rivertrail? Or are there any similarities between the two libraries?

</comment><comment><USER15> Yet another parallel framework. Without the 3rd party eco-system of APIs for matrix math, any framework is doomed to just add noise, not value. Sure there's _some_ benefit in getting marginal speedup on some algorithms but for real speedup, you need to know the parallel architecture of the processor (GPU, CPU or APU) which means a learning curve. The GPGPU industry has been trying since long to abstract away the fine details and offer a plug-and-play kind of easy-to-learn framework but then we suffer performance losses and it really doesn't make sense to invest in GPUs for the kind of performance gains you get with these high-level APIs.

<comment><USER16> It's not parallel, a framework, or a GPU feature. It's single-instruction- multiple-data (SIMD) which is used to speed up single threaded execution on a CPU when working with lists of numbers.

<comment><USER17> My understanding is architectures are different enough that the fastest SIMD strategy is sometimes CPU-dependent.

The author of FFTS, for example, chose a different strategy on ARM than x86_64: [http://anthonix.com/ffts/preprints/tsp2013.pdf](http://anthonix.com/ffts/preprints/tsp2013.pdf)

He found himself writing the NEON code in assembly entirely by hand because vector intrinsics didn't even expose CPU features he wanted to use—even in C, where vector intrinsics are CPU-specific.

Having access to SIMD is definitely better than not having it, but it really should be paired with good optimized implementations of things like BLAS and FFT libraries.

</comment></comment></comment><comment><USER18> How will this run on AMD chips?

<comment><USER19> I don't know, but why would there be any difference?

<comment><USER20> Probably because of Intel's history of breaking code on AMD. Like this: [http://www.swallowtail.org/naughty- intel.shtml](http://www.swallowtail.org/naughty-intel.shtml)

<comment><USER21> Having dealt with cpuid, there were plenty of caveats with how AMD did things vs how Intel did things. I can totally see Intel first checking to see if it was Intel and then punting just due to complexity and testing. Keep in mind that this article mentions p4 and athlon, so Intel would have also have had to care about Cyrix and Transmeta as well, which were different as well.

</comment></comment></comment></comment><comment><USER22> Flying saucer, meet duct tape. Duct tape, meet saucer.

</comment><comment><USER12> "There is encouraging evidence that SIMD will enable a whole new class of application domains and high-performance libraries in JavaScript."

Anyone take a guess what those might be (honest question)?

In the past SIMD has been the primary way to accelerate audio and graphics related compute tasks, but with WebGL and shaders, JS users already have a very powerful vector processing unit at their fingertips.

<comment><USER23> Check "Bringing SIMD to the Web via Dart" by John McCutchan:

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

He's also the guy wrote the proposal for ECMAScript:

[https://github.com/johnmccutchan/ecmascript_simd](https://github.com/johnmccutchan/ecmascript_simd)

Also, using SIMD is way easier than using shaders. You just write something like this:

      double average (Float32x4List list) {
        var n = list.length;
        var sum = new Float32x4.zero();
        for (int i = 0; i < n; i++) {
          sum += list[i];
        }
        var total = sum.x + sum.y + sum.z + sum.w;
        return total / (n * 4);
      }

Instead of:

      double average (Float32List list) {
        var n = list.length;
        var sum = 0.0;
        for (int i = 0; i < n; i++) {
          sum += list[i];
        }
        return sum / n;
      }

<comment><USER24> I am still looking for practical examples. Unless there is a usecase for averaging gazillion numbers on the client (I would like to know what the use case for that is)

<comment><USER25> There's a skeletal animation demo that was made to show off Dart SIMD support. The bottleneck was the animation, not the 3D rendering, and using SIMD allowed almost 4x the number of characters to be drawn.

<comment><USER26> This is _exactly_ what people should use WebGL for. Software skinning sucks, esp. if you can avoid it (e.g. with a vertex shader).

(That said, there are plenty of other areas for using SIMD in JS)

</comment></comment></comment></comment></comment><comment><USER27> Why not bring SIMD to Lua or Python? Or Lisp, or Haskell? Why not just bring SIMD on the web to anyone who wants it?

Will we have to explain to our grandchildren why they can only write code in some flavor of Javascript? Will it make sense, then, to wave our hands at ActiveX? Or do we have any better ideas for the future?

Mozilla's mission to protect the web from all languages but Javascript is locking us into a future where there will be no choice and nothing better than Javascript, because there will be neither an audience nor hardware support for anything but Javascript.

<comment><USER28> > Will we have to explain to our grandchildren why they can only write code in > some flavor of Javascript?

No, because while JavaScript is the "common" language of the web, its not the only language you can code in on the web -- there are plenty of implementations of other languages with it as a compilation target.

The value of having a guaranteed-to-be-everywhere _target_ language for the web, even if it isn't the preferred _development_ language of every developer, are fairly obvious.

> Mozilla's mission to protect the web from all languages but Javascript is > locking us into a future where there will be no choice and nothing better > than Javascript

As long as JavaScript keeps getting better -- and, particularly, as long as it is spurred on in that by efforts which propose alternative standard languages for the web with compelling stories so that JS _has_ to keep moving forward in order to be acceptable as the universal, guaranteed target language -- that's fine. "Nothing better than JavaScript" isn't a real limitation if JavaScript is a moving target.

<comment><USER29> > "Nothing better than JavaScript" isn't a real limitation if JavaScript is a > moving target

JS is only a "moving target" in the sense that stuff is being added to it. If you could make a perfect language by just adding things, then we'd be fine.

But the nature of the language itself is not going to change, because that would break backwards compatibility. The type system, prototype inheritance, `this`, type coercions, etc. There are plenty of undesirable things in JS which we're stuck with (unless we break compatibility, in which case it might as well be a different language).

</comment></comment></comment><comment><USER30> "without the need to rely on any native plugins" \- if I need a specific version of specific browsers (which it is), than it's no different (though sand-boxed, which plugins could be as well).

<comment><USER7> Well, every new web feature will only work on new enough browsers. That was true for HTML5 video, for new HTML5 input tags, ES5 stuff in JS, etc.

The difference though compared to plugins, is that

1\. Plugins must be installed by the user.

2\. Plugins are binary and usually do not exist for all OSes/browsers (e.g., no more Flash for linux, Silverlight never worked on linux, etc.)

3\. Plugins are nonstandard, created and controlled by a single corporation, typically not open source, etc.

<comment><USER31> "new enough browsers" \- will work automatically in mobile Safari? Cool! Unless we are talking about _specific_ browsers rather than just new ones.

1\. Browsers are installed by the user.

2\. Browsers are binary too. It seems Mozilla prefers C++/Rust to build them rather than JavaScript.

3\. New web tech is mostly developed by Mozilla, who is de-facto paid by Google.

<comment><USER7> 1\. Browsers are often preinstalled for the user (especially but not only, on mobile Oses). Also, many browsers auto-update, so the new features will be automatically available eventually, without the user installing anything

2\. The point is that while browsers are binary, they can then run a huge set of portable apps. As opposed to all those apps not being portable.

3\. Everything Mozilla does is open source, and not just Mozilla but also most browsers today are open source - Chromium and WebKit in particular. This is a very open space.

<comment><USER30> "This is a very open space" \- then why is it locked to one legacy scripting language of some sort of crappy transpilation they themselves don't use? It is effectively closed for new languages.

<comment><USER7> First, adding more options takes work. People need to volunteer to do that work, and prove that adding more VMs to the web can be effective (there are many technical challenges, like cross-VM garbage collection, sandboxing issues, etc.). People simply haven't shown this is practical yet.

But, people have meanwhile shown that cross-compiling to JS is practical, from things like CoffeeScript to C++. This is opening up the space to new languages, but it takes time and effort as well - again, the speed depends on how many people volunteer to help out.

</comment></comment></comment></comment></comment></comment><comment><USER24> It is wrong to expose such level features into a a programming language. These are exposed as actual types. More and more stuff is being added to HTML, CSS and is without any thought as to what the language is meant for. Just because it can be done does not mean it should be. It is a better approach to advance type interference and compiler technology, add language primitives that assist such code generation.

The web page shows a Mandelbrot which is a terrible example because they are best done with shaders. In face there is no real use case for this. There will always be specific things that cannot be done and no language can address them all. How many apps need SIMD based physics? In fact I am not even sure what kind of physics needs SIMD.

<comment><USER23> Auto-vectorization is an extremely complicated topic. This stuff is slow. Not a big deal with AOT compilation, but it's of course a huge deal if you only have a few msecs to spare.

Also, a machine can't just jumble the operations around because that would change the result.

      >> 0.1 + 0.2 + 0.3
      0.6000000000000001
      >> 0.1 + (0.2 + 0.3)
      0.6

So, this is apparently something you have to do yourself. A compiler won't know what kind of data will be fed to that function. It can't make an informed decision.

> _In fact I am not even sure what kind of physics needs SIMD._

It generally just means that you use some physics library which makes use of SIMD. Without having to do anything special, your game will run drastically better an use less energy to boot.

That's the primary use case; using libraries which use SIMD. Most people won't bother doing that by themself.

<comment><USER24> If speed and compilation is a concern, let's start with having proper types in javascript. That will speed things up a whole lot faster and save a lot of battery than this.

I am not saying this won't make things faster. There are many things you can do to make things faster but this really is such a niche feature (for web based apps).

<comment><USER32> > If speed and compilation is a concern, let's start with having proper types > in javascript.

That is a _much_ harder problem, especially since you brought up performance. Getting the interaction between dynamically typed and statically typed code to work in a way that's both easy and natural to use and allows compilers to get significant benefits from the statically typed code is an unsolved research problem.</comment></comment></comment></comment>


Wilson's Algorithm - <AUTHOR> http://bl.ocks.org/mbostock/11357811

<comment><USER2> There is a whole pile of beautifully illustrated algorithms there:

[http://bl.ocks.org/mbostock](http://bl.ocks.org/mbostock)

<comment><USER3> i spent HOURS looking at that amazing site

</comment></comment><comment><USER4> When I see mbostock's work it reminds me of what I love about computer science and why I keep trying to learn more. Lovely stuff.

</comment><comment><USER5> These random walks resemble voltage arcs.

<comment><USER6> That's because arcs are kind of like semi-random searches through air for a place that will equalize the voltage. See, for example, slow-motion videos of lightning: [https://www.youtube.com/watch?v=7kI1d7DMbco](https://www.youtube.com/watch?v=7kI1d7DMbco)

</comment></comment><comment><USER7> Mike Bostock just showed this work last Wednesday at Eyeo Festival. It was a pure work of art.

The video of his talk will be posted next month to their Vimeo channel [1]; worth watching when it comes out.

[1] [http://vimeo.com/eyeofestival](http://vimeo.com/eyeofestival)

</comment><comment><USER8> Starting in a corner seems to be a worst case choice for a random walk on a non-looped grid. I forked it to

a) use a random order for starting (and restarting) [http://bl.ocks.org/jix/30e55ae16b99efe94bfc/ab5a84881174512a...](http://bl.ocks.org/jix/30e55ae16b99efe94bfc/ab5a84881174512a256136681424d9d6bdadb0d6) and

b) start from the center and always restart with the innermost free cell [http://bl.ocks.org/jix/30e55ae16b99efe94bfc/aeaced224b45a413...](http://bl.ocks.org/jix/30e55ae16b99efe94bfc/aeaced224b45a4136f578a1328cf9bcd46ecb9f6)

</comment><comment><USER9> Is there a practical use for this algorithm, or is is simply for beauty?

<comment><USER10> [http://www.math.upenn.edu/~pemantle/papers/snell.pdf](http://www.math.upenn.edu/~pemantle/papers/snell.pdf)

</comment></comment><comment> dj-wonk I was looking for a nice visual explanation showing the connection between a maze and a spanning tree. I found this visual to be useful: [http://cybertron.cg.tu- berlin.de/rapid_prototyping_11ws/maze...](http://cybertron.cg.tu- berlin.de/rapid_prototyping_11ws/mazes/images/dual.png)

</comment><comment><USER11> The "Wilson" of the title is David Bruce Wilson ([http://dbwilson.com](http://dbwilson.com)), an accomplished mathematical probabilist, who may be familiar as a developer of perfect sampling ("Propp- Wilson") for Markov chain Monte Carlo computations.

</comment><comment><USER12> > Initially, the algorithm can be frustratingly slow to watch

By "frustratingly slow", what are we talking about? It's been running for over an hour with no progress and my computer at work automatically reboots over the weekend. How long do I need to keep this tab open?

<comment><USER13> It finished in about 2 minutes for me, so you probably have a rendering issue. I'm on Chrome stable for Mac...

<comment><USER12> Finally finished. Question: I see I can inspect the canvas element and even edit the code. How do I run it with my edits (without pushing it to a server?)

<comment><USER14> The way bl.ocks.org works is pretty cool. Here's what you should do:

1) Go to the Gist that this bl.ock refers to: [https://gist.github.com/mbostock/11357811](https://gist.github.com/mbostock/11357811)

2) Fork that Gist and make your changes.

3) Go to bl.ocks.org/niels_olson/11357811 to see the finished product.

bl.ocks just displays whatever Gists you have up on GitHub, so you don't have to make an account or anything.

<comment><USER15> Thanks for the easy-to-follow instructions. I could quickly come up with an updated, less-likely-to-bore version ( [http://bl.ocks.org/mdengler/a36fac5f10098bb94846](http://bl.ocks.org/mdengler/a36fac5f10098bb94846) ), and included a version of your instructions and link to your comment.

</comment></comment></comment></comment></comment><comment><USER16> The color flooding visualization is _very_ nice!

</comment><comment><USER17> Bostock does it again. So awesome and detailed. Great work Mike.

</comment><comment><USER18> can you someone edit it and make it better? [http://runnable.com/U5wQt8xHLYsVkYc_/wilson%E2%80%99s-algori...](http://runnable.com/U5wQt8xHLYsVkYc_/wilson%E2%80%99s-algorithm- for-d3-js-and-javascript)</comment>


An urgent appeal from git-scm.com maintainer Scott Chacon - <AUTHOR> http://git-scm.com/appeal <comment><USER2> Man, people really hate that Wikipedia fund drive. It really worries me how people have no trouble with ads blaring music and obscuring the text of pages they are reading, or with advertisers dictating what content can and cannot be published, but everyone gets super upset when the guy who started the website puts his picture at the top and says, "hey guys, providing a free encyclopedia costs money, mind chipping in $10?".

You know you can just click the "X" and it goes away, right?

(Just out of curiosity, do people get this upset when NPR and PBS do their fund drives? Or because you are getting a lunchbox for your $100 donation, it's not as annoying? The outrage just confuses me.)

<comment><USER3> I wouldn't donate to Wikipedia because I don't think they spend the marginal donation dollar very well. Here's a picture of the Wikimedia headquarters:

[http://en.wikipedia.org/wiki/File:New_Wikimedia_Foundation_O...](http://en.wikipedia.org/wiki/File:New_Wikimedia_Foundation_Office_14.jpg)

I'm not convinced that having a lot of foundation employees helps make the encyclopedia better. I'd like to see Wikipedia operate on a shoestring budget and stop collecting donations once they had enough invested to run their servers off of dividends and interest indefinitely.

<comment><USER4> The Wikimedia Foundation is a non-profit with only 27 full-time employees[1] (data for 2009) which runs, among others, the 7th most popular site on the web[2], and provides the world with an amazing source of knowledge. Of course the contents is provided by volunteers, but logistics of running a site and community of this size are far from trivial. I think that they spend the money wisely, so I donated myself and encourage you to do the same.

When it comes to the photo that you linked, what does it prove? That they work in an actual office, not a bike shed or a tent? Do you claim that it's a luxury for them to have an office?

I personally admire their spine and dedication to reject corporate money, and I'm surprised that even HN readers complain so loudly about the appeal. I guess Wikipedia already became a commodity that we got used to taking for granted. For better or worse.

[1] <http://en.wikipedia.org/wiki/Wikimedia_Foundation>

[2] <http://www.alexa.com/siteinfo/wikipedia.org>

</comment></comment></comment><comment><USER5> It's a joke parodying <http://wikimediafoundation.org/wiki/WMFJA032/en/US>

I can't imagine Scott or a tiny git website is in need of money.

Amusingly, if you try to enter an amount greater than $25000, google checkout just dies.

<comment><USER6> Speaking of wikipedia, I'd be perfectly content if the "urgent appeal" banner were replaced with an ad.

<comment><USER7> That would be horrible. Replacing it with an ad would mean that they are now beholden to the advertiser, as opposed to being beholden to their donors. Right now Wikipedia depends on their editors to provide content, and donors to provide money. If instead they relied on advertisers to provide money, they would lose an awful lot of credibility.

Also, why would you prefer an ad to the donation banner? Ads tend to promote excessive consumption or try and manipulate your baser desires to get you to part with your money. They tend to be animated, or play sounds, or dance all over your content. They provide vectors for malicious code to be injected into your site.

Instead, we have the founder of a highly useful collaborative educational resource (or sometimes some editors of same) asking for donations to support that without being beholden to corporate interests. Where's the problem?

<comment><USER8> The problems you cite depend on the implementation. Wikipedia could require ads to be unobtrusive, from a diverse set of advertisers, and placed via a system (perhaps completely automated) that insulates from advertiser meddling in content. And, anyone who's truly offended by ads could turn them off at their option, just like the [X] on the campaign ad.

Such a system might generate 10X the revenues. If Wikipedia doesn't need them all, either for current year operations or a lasting endowment, they could liberally fund other free-culture projects with the surplus.

The biggest risk I see -- and what I believe to be the de facto reason ads haven't been more seriously considered -- is that a large portion of the editor community shares your (IMHO irrational) fear of ads, and this fear could become self-fulfilling if the introduction of ads drives away editors.

Even this might be addressable with careful handling, though. For example, what if there was one official Wikipedia mirror that had ads -- rather than the hundreds of unofficial ad-drenched mirrors? The default site would still be ad-free, for all editors, users who opt to visit or link-to the ad-free site, and inlinks from ad-free or primarily non-commercial sites. But, inlinks from major commercial entities (like say Google) would go to the ad site, unless that user had opted differently.

Doesn't that give everyone what they want -- lots more money for free culture projects with a large default sphere insulated from the 'corrupting' influence of money?

<comment><USER9> Many of the things you describe here would make for a more palatable experience on an ad-based website. But you completely miss the boat by assuming that people 'fear' advertisement, some people just really dislike it on principle. This is especially true when it comes to free culture projects who wish to be self-sustainable and perhaps even feel as if their efforts are validated a bit by the willingness of their users to support their project.

Wikipedia is a huge project with tremendous social value. It is sad to me that you may be right that an advertisement would bring in 10x the revenue, because it means we're in a culture in which one expects to perpetually be in commercial relationships. This makes the user more likely to purchase a consumer good than they are to donate to a service that has been consistently offering them more value.

The reason for this is that any direct donation based system is deeply damaged by the mass tendency to assume that someone else is in a better position to donate. In fact, the more valuable (and successful) a project is, the more this becomes a problem. But this problem is cultural, in an ideal world people would have a greater social responsibility without the need for assuming someone else is going to take care of important services like these. To push us in that direction, we get a giant fucking picture of Jimmy Wales to make us feel guilty and give. Personally, this has about the same negative impact on me that an advertisement would, albeit for different reasons.

I think the real solution is for Wikipedia to find a better way to fund itself in a grassroots fashion. I have trouble seeing how the Wikimedia Foundation can't come up with other ways to fund themselves. They have a tremendous amount of content and data. I'd love to see them build something they can sell that would support Wikipedia's operations.

</comment></comment></comment></comment></comment><comment><USER10> Though nearly everybody seemed to get the joke, a few people didn't - one in particular who seemed very upset about it, thinking that it was fraudulent in some way. I was only planning on keeping it up for one day anyhow, so I've taken the page and banner down. I thought it was an amusing parody, as did the majority of people who gave me feedback on it, I'm sorry if you did not.

If you did donate through the button, as was evident from multiple places, the donation went to the Software Freedom Conservancy for the Git project which will go to helping the Git project however the Git leaders see fit. Technically, even if you took the page seriously (which I still have a hard time understanding how that happens, the content of the appeal was simply ludicrous), I still don't think it could be considered fraudulent as the money does go to the Git project. If git-scm.com actually needed millions, which is ridiculous, it would go through the SFC. I'm also likely to transfer the domain to the SFC, so some of the donations will probably go to domain registration for git-scm.com at some point anyhow.

I apologize to anyone who took it more seriously than it was intended (except for one guy) and thank those of you who did donate because they like Git or because they like the other resources that I've put online. The money will go to the Git project and likely partially to the website for registration or transfer (the hosting of which has been donated by GitHub for a long time now and will continue to be).

<comment><USER11> Everytime I see a 'how could people not get that it was a parody' posts or commments, I wonder, really? How long have you been on the internet/lived in this world. Of course plenty of people aren't going to get it. If you are 'surprised' by that you are either being disingenuous or have a highly inflated idea of how critical most people are of what they read.

</comment></comment><comment><USER12> I think the banner asking for donations is just fine. However, I take issue with two things:

If you decide to donate, the minimum amount is 20 USD. While it is highly debatable how much access to Wikipedia is worth to a person, I believe it sends a message that they really don't care for it if you give them anything less than that.

Also, despite assurances to not use private information gathered from the Paypal transaction, once they grab a hold of an email address, they keep sending reminders intended to pressure people into signing up for a monthly subscription. This is simply not very nice.

Another minor detail: a donation to Wikimedia is handled as an ordinary PayPal payment transaction, whereas a donation to SFC (the company behind git) is properly and clearly labeled as a donation. Not that it matters much, but it probably betrays the mindset of Wikimedia to some extent.

</comment><comment><USER13> Love the photo. What appears to be alcohol, an explosion in the background, and he looks like he's saying something off-camera.

Twice.

</comment><comment><USER14> My guess is that the floating head and staring contest with Jimmy Wales banners finally got to him.

[http://meta.wikimedia.org/w/index.php?title=Special:NoticeTe...](http://meta.wikimedia.org/w/index.php?title=Special:NoticeTemplate/view&template=2010_JA1_Banner7_US)

Interestingly from what I can see in their published tests and stats for the banners, having pics of Jimmy on the banners actually had a significant positive effect. Which explains why they kept doing different variations of them despite the fact they creep some of us out.

[http://meta.wikimedia.org/wiki/Fundraising_2010/Banner_testi...](http://meta.wikimedia.org/wiki/Fundraising_2010/Banner_testing)

</comment><comment><USER15> In case you wonder what the fuzz is about: the page has been changed in the meantime.

This is how it looked: <http://i.min.us/idDeBk.png>

Meta: I'm reposting the link originally posted by recoil [1] because I just spent 5 minutes skimming the comments.

[1] <http://news.ycombinator.com/item?id=2018992>

</comment><comment><USER16> The footnote mentions this is a parody. And quote "Donations made will actually go to the Git project under the Software Freedom Conservancy.".

</comment><comment><USER17> Background: [http://thread.gmane.org/gmane.comp.version- control.git/16384...](http://thread.gmane.org/gmane.comp.version- control.git/163845/focus=163846)

</comment><comment><USER18> They just joined the SFC - <http://sfconservancy.org/news/2010/dec/16/git- joins/>

</comment><comment><USER19> Awesome! Has a meme on this started yet?

By the way, thanks to this, I got to read the Wales' appeal which I didn't bother to do before; but I can't take it seriously unfortunately anymore :)

</comment><comment><USER20> Not everybody can donate money. Is there any other way we can contribute?

</comment><comment><USER21> Can someone tell me which link leads to their high-end brothel?</comment>


Islamist attackers more likely to be called 'terrorists' than far-right in media - <AUTHOR> https://www.independent.co.uk/news/world/far-right-islamist-terror-attack-media-describe-terrorism-reporting-study-a8864291.html <comment><AUTHOR> The full title is "Islamist attackers three times more likely to be called 'terrorists' than far-right in media, research finds"

And the sub heading is "Study of 200,000 articles in 80 different languages found only a quarter of stories about attacks by far-right perpetrators mentioned terrorism".

I'm submitting this because the language point is intersting.</comment>


Ask HN: Do you mind when someone comments on your screen when working in Public? - <AUTHOR> For all my remote workers out there who do work in cafes or public areas...
How do you feel when you're working on a project and someone comes up to you and comments about what's on your screen? Whether it be a compliment, note, or comment on the type of program/environment you're using?
A part of me feels like it's rude to an extent for someone to do that, however another part of me realizes I'm in a public area so can't really complain if people are trying to network/communicate. <comment><USER2> It's nice to have someone to talk to.

</comment><comment><USER3> I just tell them to install Linux</comment>