Professor Studies Social Customs in Video Games - Becomes Most Hated Player - <AUTHOR> http://www.nola.com/news/index.ssf/2009/07/loyola_university_professor_be.html

<comment><USER2> _He believes it proved that, even in a 21st century digital fantasyland, an ugly side of real-world human nature pervades, a side that oppresses strangers whose behavior strays from that of the mainstream_

Wait wait - so he knowingly violated all social norms, despite gentle attempts to correct him, and that proves there is an ugly side to fantasyland? It would have been more interesting if he had done something non-mainstream that did not impact on other players and seen if it would have gotten any abuse.

After all this is the essence of tolerance in real life - nobody expects you to be tolerant towards people who are shooting you; tolerance comes from a "live and let live" approach. Investigating the equivalent of that online would have been interesting, but it is not what he did here.

What he did here was the equivalent of say, farting in your face because it is "within the rules" (i.e. not illegal) and then act surprised when this made him socially excluded.

<comment><USER3> I think the point of the article was not that he earned a bad reputation for griefing - it was more that people reverted to a rather medieval behaviour when confronted with such a situation. Earning a bad reputation and being denounced as a pedophile are two entirely different things.

If someone farts in your face repeatedly and you go on to punch them or harass them in any way that is considered inappropriate by society, would you say that your actions were 'justified?' To me, that would seem rather biblical, in the negative sense: eye for an eye, tooth for a tooth.

So the point is: we're still in the biblical era of social behaviour: if someone harasses us, we harass back. Though I wouldn't know how to respond 'properly' and in a 'civilized' fashion to such a situation, even though I'm an online gamer myself. In WoW, there's the anti-social practice of 'corpse- camping' someone, and thus killing them repeatedly. In such cases I just log off and play an alt, and let the camper waste his time.

<comment><USER4> _If someone farts in your face repeatedly and you go on to punch them or harass them in any way that is considered inappropriate by society, would you say that your actions were 'justified?'_

Call me "biblical," but where I'm from farting in a grown man's face will get you punched in your own face, repeatedly, in a _highly_ civilized manner.

[edit: formatting]

<comment><USER5> And if we want to go New-Testament, we can make some "cheeky" puns about how to respond.

</comment></comment></comment></comment><comment><USER6> > Myers was stunned by the reaction, since he obeyed the game's rules.

Oh please. Even the article is a thinly veiled troll.

People often play after work, when they're tired and irritable. When somebody continually ruins the game and turns what was intended to be a relaxing break from life into another exercise in frustration he's going to be hated.

Online games tend to represent real societies pretty well. The older the game, the more set the norms are, and the easier it is to be break the "unwritten" rules.

Usually, when people go through something uncomfortable in the name of science they're informed beforehand, and participate in the experiment on a volunteer basis. Meyers did not have that decency -- he picked the members for his experiment against their will.

<comment><USER7> Yeah, the idea that he was stunned either makes him the most socially inept person on the planet, or a complete troll of a person.

It's also perfectly within the rules to throw the basketball out of bounds every time you get ahold of it, but if you did so, no one would want to play with you. Would Myers likewise be stunned by this revelation?

</comment></comment><comment><USER8> I find the professor's conclusions a bit clueless. He was essentially a griefer. He saw himself as someone who was persecuted by the community for following the rules. But in something as complex as a MMORPG, the rules laid down by the developers are less important than the gentleman's agreements established by the community.

In short, people had fun doing it their way. They didn't have fun doing it his way. If what he was doing had no impact on others, people probably wouldn't care. But he was spoiling the experience for everyone he interacted with.

</comment><comment><USER9> I'm going to go against the grain here: yeah, he was griefing them, but the game and the players look worse here. If it's a PvP situation, then game designers need to be aware of creative tactics people come up with. If the game is unbalanced or someone starts using tactics outside of the spirit of the game, the developers should patch the game.

This isn't pie in the sky stuff, either. Valve does it all the time with TF2, and that's a big part of what makes it such a good game. By being aware of how people use the game and working hard to maintain balance and stop overt exploits, they've created a controlled environment that still allows people to get extremely creative.

I now actively avoid any games with PvP that are so horribly designed that cultures develop with unwritten rules to overcome shortcomings in the game. And if you are playing a PvP game you should expect people to come up with creative tactics and strategies to win.

<comment><USER10> After sleeping on this, I finally figured out what was bothering me about the massive number of responses here claiming that this Professor was being clueless.

The basic assumption is that the Professor was griefing other players. He wasn't. From the article, it did not appear as if he had the intent to deliberately harass and annoy other players. Instead, he was merely _ignoring_ social customs and determining the best PvP strategies from there. Further, he was attempting to conduct a study. I am assuming (big assumption) that he was at least trying to be objective. In other words, there is nothing personal in what he was doing.

The stunning results isn't that there were people who backlashed at him so much as that, he perceived his actions as being impersonal, yet it seems many of the people on CoH ... and here on Hacker News ... perceive his actions as griefing. What is profound here is that this false perception generated an incredible amount of backlash. It is the same mechanism used in witchhunts. It looks like crowd sourcing has a downside too.

It implies that people still don't stop and consider whether the other person was doing it out of ignorance or simply because that other person ignores social conventions. The aggravation generated by this snowballs because people want something to blame. What is also interesting to me is how otherwise intelligent people automatically reacts to their own irritation.

</comment></comment><comment><USER11> Good read, but the findings aren't surprising. We all know there are social rules that aren't set in stone but still adhered to. Being a dick online leads to people hating you. Past that simple fact, the details aren't that interesting, since hyperbole online is pretty easy. (See Kathy Sierra.)

It would be interesting to try to figure out how to handle social situations and encode them into a game. How do you stop somebody from abusing the system? The first thing that comes to mind is Super Smash Bros Brawl, which uses random situations to stop one player from being too much of an asshole. (When I play with my asshole friends, they disable items and force the level to the ultraflat Final Destination so as to be able to abuse the game most effectively - but in a more relaxed social setting, it's not as easy for an obsessive to completely mess with the other players to a point where the game isn't fun. Are there similar set-ups in any MMO?)

</comment><comment><USER12> In this case, "the rules of the game" are not like the laws and courts IRL, which Myers would like us to accept, but more like the laws of physics.

MMO's are cool because a community develops and, just like in the real world, organically evolves accepted laws and customs. _Good_ MMOs develop rich communities and customs precisely by having very open frameworks.

Myers went around whacking people with a bat because the "laws of physics" allowed him to. The only defference here is that it was much harder in the game for the citizens to organize a police force to stop him, and as usual, the "gods" (game moderators) were of no real use.

Ironically, in this context, he was the definition of a "super villain". On a personal note, it irks me that this old doddard made such a colossal nuisance of himself for _years_ to a whole community of gamers just for that goofy bit of fluff he called a paper. Publish or perish indeed.

</comment><comment><USER13> The research article is here:

Play and Punishment: The Sad and Curious Case of Twixt [http://www.nola.com/news/index.ssf/2009/07/loyola_university...](http://www.nola.com/news/index.ssf/2009/07/loyola_university_professor_be.html)

The only thing I would like to add here is the study tested ethical codes of conduct governing research. People weren't consulted, and they were emotionally manipulated for the sake of the study. Surely that must have raised red flags at Loyola.

</comment><comment><USER14> Fansy! <http://www.notacult.com/fansythefamous.htm>

Seriously, what did the professor expect by griefing?

<comment><USER10> You're assuming that the professor was griefing.

</comment></comment><comment><USER15> It's impossible to create a "perfect" set of rules. So just because he lived within the rules doesn't mean anything.

Sometimes there are behaviors that are undesirable, but it's simply impossible to legislate against them.

This is true in real life as well. Politicians tend to create more and more and more complex rules, but no matter how detailed it's not possible to legislate against every bad behavior. Especially without also creating undesired side effects.

</comment><comment><USER16> This just brings back memories of the video with the kid who's mom canceled his WOW account...

</comment><comment><USER17> This just in: University Professor discovers MOBBING. Entire World sighs in relief, can finally put down the pitchforks, give each other hugs.</comment>


Building a transformative subsea cable to better connect Africa - <AUTHOR> https://engineering.fb.com/connectivity/2africa/ <comment><USER2> As always, one of the greatest early internet essays is Mother Earth, Motherboard by Neal Stephenson - [https://www.wired.com/1996/12/ffglass/](https://www.wired.com/1996/12/ffglass/)</comment>


The Surprising Resilience of the Patent System [by Stanford Prof. Mark Lemley] - <AUTHOR> http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2784456 <comment><AUTHOR> FTA: "... Of the four reasons people litigate patent cases other than to win on the merits, three (nuisance-value settlements, bullying, and regulatory gaming) are actively socially harmful. The patent litigation system imposes substantial costs on third parties, and most of those third parties are themselves innovators. It may be worth paying those costs if there is evidence that patent litigation is supporting new invention. But absent that evidence, the patent litigation system looks more and more like a drag on society. ... That doesn't mean we can just get rid of patent litigation. ..." (at p.64-65)</comment>


Brazilian Judge Shuts Down WhatsApp for 48 Hours - <AUTHOR> http://techcrunch.com/2015/12/16/brazils-congress-has-shut-down-whatsapp-tonight-and-the-rest-of-the-social-web-could-be-next/?ncid=rss <comment><USER2> The news is misrepresenting what is actually happening.

A judge ruled for a 48 hour ban of WhatsApp from telcos to try to coerce WhatsApp into releasing private chat information for an ongoing criminal investigation (wild guess: they want information from politically exposed actors due to the recent corruption investigations). There are precedents, and that's a tactic local judges are using to try to get cooperation from international private companies.

This is the actual fact, but the article is conflating that with Marco Civil and other regulatory attempts that have nothing to do with this particular court ruling.

TL;DR TechCrunch publishes unchecked, alarmist news.

<comment><USER3> My wife is a judge and she is not alarmed. She is terrified. We are green card holders and came back to the country 16 years ago. Tonight was the first time we had a conversation about leaving this place for good.

<comment><USER4> I thought if you leave US for more than 3 (?) months you loose your green card status.

<comment><USER3> 6 months + extensions. A minor effort is required to keep the visa.

<comment><USER5> Be cautious, I had a close friend have their Green Card seized while crossing the border back from Canada into the United States, even though he had documented evidence that he had spent 95% of the previous three years _in the United States_. He was a consultant, and traveled a lot, but thought he would hang out in Vancouver, BC for a while. Even though he only returned to Vancouver for a few days at a time, before going on the next engagement, and all engagements were in the United States, with a US employer, (And he was a Stanford Graduate) - they seized his GreenCard because his household goods (Mattress/clothing), had left the country more than a couple years ago, and used that as evidence of being away from the United States.

Lesson learned - Sometimes the border staff gets caught up on stupid technicalities. Be aware of them, and don't use common sense.

</comment></comment></comment></comment></comment><comment><USER6> This is insane, this judge must be on a power trip. WhatsApp is now part of Brazilian social life and economy. Everyone here is part of many groups of friends, family or workmates, that is where most instant communication happens.

In my company, our deployment engineers, who usually are on very remote places with bad and unreliable internet, rely on WhatsApp. I'm not saying this is the best practice, but this is simply the way Brazil works right now. Even the mobile phone companies offer plans with free WhatsApp connection, because that is what most people here care about. Another example: In Brazil, 9 in 10 doctors use WhatsApp to talk to patients ([http://www.cityam.com/230372/digital-health-wearables-and- ap...](http://www.cityam.com/230372/digital-health-wearables-and- apps-9-in-10-brazilian-doctors-use-whatsapp-to-talk-to-patients)).

To disregard all the people and businesses that rely on WhatsApp for whatever reason is unbelievable. But this is not without precedent, once another Brazilian judge blocked YouTube for a whole day because it refused to take down a celebrity video.

This says a lot about the over-sized, inefficient, and stupid state we have, always meddling and intervening.

<comment><USER7> Seems to me like it might be WhatsApp that's on a power trip. What would an American judge do if WhatsApp were to ignore a lawful subpoena?

<comment><USER8> > What would an American judge do if WhatsApp were to ignore a lawful > subpoena?

Fine WhatsApp. Not compel all telcos to block it...

<comment><USER9> Contempt of court in the U.S. escalates considerably beyond fines if the company doesn't start complying quickly. The court can jail the company's officers, issue an injunction forcing them to stop doing business, instruct customs to blockade them at the U.S. border (in the case of companies selling physical goods), and a range of other things.

<comment><USER8> Yes, that's all true.

But they don't compel third parties to block the company's app.

<comment><USER10> That's when it's a US company if it's foreign it will end up on the US trade department sanction list which will blacklist them world wide not only in the US and will prevent any entity which operates in the US from doing any sort of business with them.

There is nothing that a Brazilian judge can do to whatsapp other than to harm them financially cutting off 100m users even in a developing market sends a clear sign.

<comment><USER8> Facebook has an office in Brazil. I don't really understand why they couldn't just levy financial penalties, since Facebook does actually have a business presence in the country.

<comment><USER10> WhatsApp and Facebook are still separate legal entities as far as i know, the subpoena was issued to WhatsApp it didn't comply they've issued a court order to block it in order to compel it to comply. If a US company would not comply to a court order, a US judge can prevent the company from operating at all by freezing all of their assets and halting all of their operations.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Can confirm whatsapp is down for some friends in Brazil.

However, the real reason is not for what Techcrunch is saying.

The issue is that WhatsApp didn't want to cooperate with the federal police and release chat information from some criminals. According to some sources there, they followed all due process and WhatsApp ignored.

As a retaliation, to show that WhatsApp has to comply with Brazilian local laws when storing data from Brazilians using the service in Brazil, they banned WhatsApp for 48 hrs.

A lot less alarmist.

<comment><USER8> > some criminals

You mean suspected criminals, right?

It still seems pretty reactionary. The solution isn't to block an entire service.

<comment><USER12> > It still seems pretty reactionary. The solution isn't to block an entire > service.

Why not? If they're not complying with court mandated orders, then the court is empowered to enact any legal (in Brasil) measures to coerce cooperation out of the offender. If whatsapp wants to operate there they have to follow the law; they stopped following the law, they're no longer welcome.

<comment><USER13> Perhaps I am overstepping my bounds, but to me it seems that using coercion to get information from a witness (Whatsapp appears to be in the position of a witness) is a recipe for getting unreliable information when the witness.

Whatsapp seems to be in a position that it could retaliate against this Brazilian judge by giving false testimony. Afterall, Whatsapp and the parties to the messages are probably the only people who know what was said in those messages; Whatsapp could modify the messages such that they exonerate the accused. If the judge has played his only trump card by blocking usage of Whatsapp in Brazil, then Whatsapp knows the absolute worst that can happen by lying about what was said in the messages. Worse, the Judge may not even be able to prove what the messages actually contained.

</comment></comment></comment></comment><comment><USER14> Telegram reports 1.000.000 new users 4 hours after the block started, 1.500.000 new users 1 hour ago: [https://twitter.com/telegram](https://twitter.com/telegram)

<comment><USER15> Ugh. I wish Signal had the UX to compete with Telegram so that people would use Signal instead.

<comment><AUTHOR> is it that much better?

<comment><USER16> Yes. Signal has perfect forward secrecy. There's no way any government could compel them to release private chat information: they are literally unable to do so.

<comment><USER17> Even so, a government could still block them until they realized it's futile (or something). The end effect is in their favor: users to move to other platforms that are not as secure.

</comment></comment></comment></comment></comment><comment><USER18> Never realized that the political scene in Brazil was as crazy as the article portrays. Makes the US election campaigns look downright tame. As bizarre as some candidates' ideas seem to be, hard to imagine how judges or US congress would get away with attempting the same things.

If provisions like those in the article persist, predictably the predominantly young users of social media will protest loudly, I would think the resulting unrest would be too big a liability for the judges and politicians.

A while back I knew a guy who worked for a US company involved with setting up inventory and telecommunications software for businesses. Having traveled to Brazil to assist with installing the systems, he described the extremely convoluted regulatory environment down there, and how difficult that made it to get anything done.

While the whole affair is hard to understand, the basis for picking on particular targets (e.g., WhatsApp) doesn't make sense. Unless _all_ such services are banned it only punishes the particular providers for no good cause. Speculating out loud about their target selection is unproductive, but possibly someone has more actual info about it.

So I guess like politics anywhere, what they do know well is how to shoot themselves in the foot. Until it's realized what they've done it will cause a lot of trouble for legitimate enterprises, let alone the massive population so negatively affected.

Edit: In the time it took me to write this comment, a bunch of people have add comments about the situation. Wow, that was fast...

</comment><comment><USER19> I'm confused. As far as I know WhatsApp does not archive any messages on its servers. Messages are only kept there temporarily until they are delivered to the recipient and then they are deleted.

This is also what WhatsApp states in its legal documentation: [https://www.whatsapp.com/legal/](https://www.whatsapp.com/legal/) : "The contents of messages that have been delivered by the WhatsApp Service are not copied, kept or archived by WhatsApp in the normal course of business."

Furthermore, messages are end-to-end encrypted. So how could WhatsApp comply to the judge's demand?

<comment><USER20> > Furthermore, messages are end-to-end encrypted.

I don't think so. WhatsApp states in their FAQ: "WhatsApp communication between your phone and our server is encrypted." [[https://www.whatsapp.com/faq/en/general/21864047](https://www.whatsapp.com/faq/en/general/21864047)]

</comment></comment><comment><USER21> It wasn't Congress that decided that.

It is a single judge that gave an order to block the service for 48 hours.

It can be reversed if another judge decides the "liminar" (I don't know how to say this in English, it's a temporary decision) shouldn't been given.

<comment><USER22> "Injunction", perhaps?

<comment><USER21> That is a good equivalent and it gives some idea of what happened for those familiar with the concept. Thanks for the clarification.

</comment></comment></comment><comment><USER23> That's crazy. I was in Brazil for a month. _everybody_ was on whatsapp. Facebook a distant second for message volume.

SMS wasn't even on the radar.

</comment><comment><USER24> I'm in the US and my family is in Brazil. I relly on WhatsApp over 3G/4G to comunicante with them as they are usually without access to faster internet (DSL/cable). I read about the blockage a few hours ago and made me concerned because if anything happens that's the most reliable channel I have.

Then I receive a message from my brother saying he was going to the hospital (on WhatsApp, just before they cutted it off). Fortunately he had time to tell me he is fine.

My other brother is in a ship, almost same connectivity problems.

I know that there are workarounds, other applications, vpns, IP masking etc. But WhatsApp is something that my parents and brothers can use.

<comment><USER25> I bet there are tons of hospital staff who use WhatsApp in Brazil every day to coordinate mission-critical stuff, in which case this absurd move is putting people's lives at risk.

</comment></comment><comment><AUTHOR> 500,000 users signed up for Telegram in 3 hours

[https://twitter.com/telegram/status/677278277657055232](https://twitter.com/telegram/status/677278277657055232)

</comment><comment><USER26> The real reason is that WhatsApp refused to provide information about a PCC member.

PCC is the largest criminal organization in Brazil. It's involved in several criminal activities like drug dealing and gun trafficking. It was also responsible for "closing" Sao Paulo city some years ago forcing people to stay at their homes as well as killing hundreds of cops ( [https://en.wikipedia.org/wiki/Primeiro_Comando_da_Capital](https://en.wikipedia.org/wiki/Primeiro_Comando_da_Capital) ).

The judge tried to obtain the information from WhatsApp for several months but it was simply ignored. Blocking WhatsApp was one of the last options that she had to try to obtain the information.

Here is more information from a reliable source ( it's in portuguese ): [http://www.conjur.com.br/2015-dez-16/bloqueio-whatsapp- pivo-...](http://www.conjur.com.br/2015-dez-16/bloqueio-whatsapp-pivo-homem- solto-stf-mes)

<comment><USER27> It scares to think that a single decision from a judge can suspend the most widely used communication service in Brazil like that. The whole nation was affected by a decision that concerns to a few people only.

</comment></comment><comment><USER28> I am from Brazil, and although bizarre decisions happened before, I can say that this time they actually went through with it, and I can't talk to my psychologist (I only communicate with her with WhatsApp, I never considered that the government would ever actually shut it down).

As for the article it is one of the most bizarrely biased articles I ever read, spouting some information that are outright lies.

Example: it says that Marco Civil law was an example of the congress favouring internet openness, that is an outright lie, the judge that banned WhatsApp for 48 hours, used Marco Civil to do it, if Marco Civil had never passed, WhatsApp would not be banned today.

Another innacuracy is saying that it is a "conservative" congress dominated by "evangelical extremists" and "military apologists"

The biggest bloc in the congress was allied with the leftist president in the elections, and still is mostly allied with said president. (the exception is "PSC", that is a socialist christian party, they tend to ignore the president wishes a lot, still it is 13 deputies out of 79 in that bloc)

Second biggest, is indeed right-leaning, but their policies resemble US democratic party of the 90s, instead of true conservatism.

Third bloc is dominated by a party with no political leanings to left, or right (they only do whatever it takes to stay in power, and have left and right politicians in their ranks). The vice-president is of that party, and they are in "opposition" only because they want the vice-president to take over.

Fourth is PT, with 59 seats, it is the president party, and is named "workers party" and has many outright communist people in it.

Next 3 groups are socialist, then there is the democrats party, that has policies like US democrats, then the rest of the parties are mostly socialist too.

In total there are from 512 lawmakers, 108 are "conservative".

Also, I've been following the votes on the Uber ban on Brazil, almost in all cases left wing parties that voted to ban Uber (and some even proposed to not only ban Uber, but make a law that make apps that call regular taxis to send lots of personal information to the governmens, including full GPS-tracked route of the person while inside the cab).

Meanwhile the big bloc that is "conservative" (the one that on my list is on the second biggest bloc in the congress) is the one that regularly vote against laws that restrict freedoms.

Still, our congress is awful, and is indeed proposing (and sometimes passing) lots and lots of bullshit laws.

<comment><USER29> >only communicate with her with WhatsApp, I never considered that the government would ever actually shut it down

So you got her number on your cellphone which means you can call and text. You can talk to her, not for free but a few messages should be enough to arrange for another free service.

<comment><USER28> Yep, I am installing Telegram now.

</comment></comment></comment><comment><USER30> Terrible news, but it proves once again that we need decentralized, end-to-end encrypted OSS communications to be safe.

</comment><comment><USER31> From someone living in Brazil, this article is a clickbait full of misinformation.

First off, we are nowhere near "shutting down social web". WhatsApp was shutdown by a court order because they did not comply with a subpoena to hand over information from a user in July and August. I recently submitted a link with a local (Brazilian) newspaper explaining the issue.

>If Brazil's conservative Congress gets its way, they're going to take down the entire social web as we know it, with bills circulating through the legislature to criminalize posting social media content and to allow the government to spy on its citizens.

Conservatives are not the only ones trying to censor the internet in here, absolutely every politician wants it.

>It's an about-face from last year, when President Dilma Rousseff approved Marco Civil, a groundbreaking Internet "Bill of Rights", as a response to the Snowden revelations that the NSA was spying on Brazil. The landmark bill, Brazil's first internet legislation, protects net neutrality, user privacy and freedom of speech.

On the contrary! Marco Civil threatens user privacy (more below), and the "net neutrality" part has lead to just the same that happened today: Mobile companies were forced to shutdown their "free WhatsApp and Facebook" plans, making millions get blocked from WhatsApp[4]. Anyway, back to the privacy issues, article 11 of the text[1] is the more worrying one. Some highlights:

§ 2º A autoridade policial ou administrativa poderá requerer cautelarmente que os registros de conexão sejam guardados por prazo superior ao previsto no caput. § 4º O provedor responsável pela guarda dos registros deverá manter sigilo em relação ao requerimento previsto no § 2º

It says basically that police can require records of visited CONTENT without a court order and the ISP is required to supply that without informing the user. Somewhere else in the text it forces ISPs to store user history for a year. If the text really wanted to protect user privacy it would say something about cryptography, which isn't mentioned anywhere in the text.

Article 2 says there must be a "social purpose" for websites and that gov. may take websites down if it feels it doesn't serve the public interest. Brazilian govt. already has a history of censoring YouTube and Facebook videos involving politicians, judges or celebrities[5][2][3].

[1] [http://www.camara.gov.br/proposicoesWeb/prop_mostrarintegra?...](http://www.camara.gov.br/proposicoesWeb/prop_mostrarintegra?codteor=912989&filename=PL+2126/20)

[2] [http://oglobo.globo.com/tecnologia/para-nao-sair-do-ar-no- br...](http://oglobo.globo.com/tecnologia/para-nao-sair-do-ar-no-brasil- facebook-remove-posts-ofensivos-10244954)

[3] [http://www.conjur.com.br/2012-ago-08/google-retirar-ar- video...](http://www.conjur.com.br/2012-ago-08/google-retirar-ar-video- ofensivo-vereador-pena-multa)

[4] [http://gizmodo.uol.com.br/tim-claro-twitter- gratis/](http://gizmodo.uol.com.br/tim-claro-twitter-gratis/)

[5] [https://www.youtube.com/watch?v=7PYQktiGLhw](https://www.youtube.com/watch?v=7PYQktiGLhw)

<comment><AUTHOR> >First off, we are nowhere near "shutting down social web". WhatsApp was shutdown by a court order because they did not comply with a subpoena to hand over information from a user in July and August. I recently submitted a link with a local (Brazilian) newspaper explaining the issue.

You make it sound like thats ok?

</comment></comment><comment><USER32> To put this in perspective, it would be as if a single judge in the US managed to shutdown all SMS for 48 hours, in the whole country. ( _)

Because, you see, SMS is too expensive in Brazil. So people resort to WhatsApp instead.

(_) It doesn't matter if SMS is not controlled by a single company, the block has to be enforced by all internet and cellphone operators in the entire country.

</comment><comment><USER33> Right now we ([https://actor.im/br/](https://actor.im/br/)) are trying to launch free and open alternative to WhatsApp/Telegram with Open Source community in Brazil.

<comment><USER34> why not textsecure? it's free and open source.

<comment><USER33> Text secure is a cool application, but they are not focused on people. Very different goals of projects.

<comment><USER35> Not focused on people? That doesn't... make much sense.

</comment></comment></comment></comment><comment><USER36> WhatsApp didn't break any US laws. If whatsapp doesn't follow Brazils laws it can't break them. However Brazil is in its full rights to ban it if it considers it isn't coherent with the local laws.

It's simple really.

</comment><comment><USER37> If you go ahead and read the article, you'll realize that it's more about Facebook complaining their business will be more heavily regulated in Brazil than outright censorship.

<comment><USER38> That and that Facebook may have to comply with valid court orders. How outrageous a judge telling what Facebook should do.

<comment><USER39> A judge in a corrupt third-world country can say whatever he wants, I don't think Facebook should blindly be following court orders from overseas.

<comment><USER40> "Overseas" in that context would be the US, right? :-)

We have exactly that problem with Facebook and other big US companies in Europe (Uber comes to mind): they act in Europe (and do damage here), but hide in the US. Oftentimes not even replying to court orders, because hey, what can a lowly regional court judge from Germany do, right?

If you want to play here, comply with our laws. If you don't, then don't be surprised if your business is shut down.

I can totally understand the attitude of the Brazilian judge, even if the result is terrible. But suddenly he is paid attention! Chapeau!

<comment><USER39> Why should a lowly regional judge in Germany (or the US for that matter) be allowed to meddle with a national or global communications network? There must be millions of judges in the world, many of whom are corrupt, power-hungry, or just plain stupid. It would be silly for Facebook, Google, etc. to blindly obey each one of their ramblings.

Edit: s/shut down/meddle with/

<comment><USER40> We make sure our justice system is not corrupt. You don't get to ignore our laws, just because you conveniently hint to corruption.

If you feel our country is too corrupt to make business in, great, stay away.

Why should we allow extra-legal, non-elected company managers from abroad to trump our constitutional, legal and parliamentary-approved laws?

<comment><USER39> I'm sure you believe your country's laws are fair, just, constitutional, and parliamentary-approved. However, so do Thai people believe about their laws against insulting their King. Do you think Facebook should be in the business of censoring posts insulting the Thai King just because some judge there gives them a court order?

I maintain that Facebook should, in general, ignore foreign court orders and just do what's right. At the risk, of course, of being blocked entirely in that country.

<comment><USER40> If they want to do business there, sure. The alternative stands: get out of the country.

You maintain that Facebook should, in general, follow _your_ legal system.

Do you believe that America and only America is "fair, just, constitutional, and parliamentary-approved"?

That's basically American exceptionalism at its best.

<comment><USER41> So if the US wants info on users of a German app who have no servers or offices in the US it should just give it to them? Even if the offense they are suspected of is not illegal in Germany?

My point is that Brazil should follow legal procedures and have a American judge issue a supena. That's what a MLAT is for.

<comment><USER42> I'm sure the Brazilian judge followed Brazilian legal procedures. That's the entire point of being a Brazilian judge. There might be other means to achieve a goal but that doesn't mean what happened isn't legal.

In your example, if that German app was targeted to US users (e.g. by localization and marketing) then yes, they should follow US laws. That's a test German courts use to determine whether they have jurisdiction in the digital world and I think that's fair and should be applied in the other direction as well. If they don't want to or can't (e.g. by contractual obligations or German law) they shouldn't act surprised if the US doesn't allow US business to trade with them.

<comment><USER41> I think you are mixing up the countries in your example.

<comment><USER42> Sorry for the confusion, I clarified something above.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER43> Does this mean it's illegal for a company to create a zero-knowledge communication network in Brazil? Or encryption without backdoors?

<comment><USER44> No.

</comment></comment><comment><USER45> you can always use temporary free and reliable vpn provider to unblock WhatsApp or any other websites and apps.... try [https://www.hashtagvpn.com](https://www.hashtagvpn.com)

</comment><comment><USER46> It even didnt happen in Turkey. The country which loves bans.

</comment><comment><USER47> Use XMPP + Jingle. How are they going to shut down that?

</comment><comment><USER48> What's up with capitalizing every first letter ? I thought "Whatsapp Tonight" is some new service Whatsapp is providing that I didn't know of.

</comment><comment><USER49> Time to switch to Telegram!

</comment><comment><USER50> Amazing how easy it is to tell a tc article by the title. When is hn going to ban tc?

</comment><comment><USER51> This is the place the Olympics are going to be this summer. I can't help but hope the people use it as a stage to protest, but would imagine the media would largely ignore it.

</comment><comment><USER52> Switched to hacker news a year back, Never visit techcrunch.. Best decision. On an unrelated note, just hate their 'apple is the center of the universe' line of thought..</comment>


Show HN: LevelUp.pm – Evergreen Product Management Resources - <AUTHOR> http://levelup.pm/?utm_source=hn&utm_medium=web&utm_campaign=launch <comment><AUTHOR> One of the 3 guys behind the site here, please send any questions or even better, more resources our way so we can provide them for the community.

We built this because we didn't see much in the way of canonical resources for product managers looking to get better at what they do. So here it is, from the top product managers out there.

Its got 120+ articles, books, podcasts, etc - all categorized - to help PMs level up their game.</comment>


Making of "Introduction to A*" - <AUTHOR> http://www.redblobgames.com/pathfinding/a-star/making-of.html <comment><USER2> "A* " may be one of the most un-Google-able algorithm names I've come across, since the {asterisk} is used as a wildcard too. (Edit: and is significant for formatting here too.)

As of this post, Googling "A* algorithm" gives more relevant hits about the algorithm than the experience I had many years ago when I tried to learn about it, but it still uses * as a wildcard so you get various _other_ algorithm pages mixed in there too. Trying "A\\* algorithm" seems to yield even worse results, which is counterintuitive to the programmers who are most likely to try escaping metacharacters in queries...

<comment><USER3> It was first published in 1968 (not sure if the name was established then, didn't read the paper) but there's a paper with "A*" in the title from 1985 too. I'm pretty sure "being easy to Google" wasn't a goal with naming things, back then. :)

<comment><USER4> The name was established in 1968. The relevant wiki page is:

[http://en.wikipedia.org/wiki/A*_search_algorithm](http://en.wikipedia.org/wiki/A*_search_algorithm)

Peter Hart (one of the three co-authors of the paper) discusses naming on the talk page, to wit:

> In response to this question about why it's called A* : The notation is > borrowed from the statistical literature. Statisticians use a hat (also > called a circumflex) to indicate an estimate for a quantity, and often use a > star to indicate an estimate that's optimal with respect to a stated > criterion (like, say, a minimum variance criterion). When I (Peter E. Hart) > was developing this algorithm and especially the theory behind it with my > colleagues Nils Nilsson and Bertram Raphael, we adopted this traditional > notation. We used hats to indicate estimates of heuristic functions, and > went on to compare any other algorithm, call it A, with our provably-optimal > (by the criterion of number of nodes expanded) A*. Hart 02:16, 7 March 2006 > (UTC)

</comment></comment></comment><comment><USER5> Great work. Reminds me of Choc, an implementation of Bret Victor's Learnable Programming: [http://www.fullstack.io/choc/](http://www.fullstack.io/choc/)

I'm really interested in solutions for visually explaining what an algorithm does. Anyone have any other resources they like?

<comment><USER6> This came up on HN a couple of weeks back - [http://www.algomation.com/](http://www.algomation.com/)

A few sorting algorithms - [http://www.sorting- algorithms.com/](http://www.sorting-algorithms.com/)

Visualization of Path-Finding Algorithms - [http://qiao.github.io/PathFinding.js/visual/](http://qiao.github.io/PathFinding.js/visual/)

Lastly, Mike Bostock (creator of D3) has a really cool bunch of algorithms over at his blog - [http://bost.ocks.org/mike/](http://bost.ocks.org/mike/)

<comment><USER7> I like Cortesi's take on algorithm visualization: [http://corte.si/posts/code/visualisingsorting/index.html](http://corte.si/posts/code/visualisingsorting/index.html)

My sense is that animated visualizations are good at giving an intuitive sense about performance, but static visualizations are better for understanding how an algorithm works. If I was implementing a sorting algorithm I'd rather have one of Cortesi's visualizations on hand.

</comment></comment></comment><comment><USER8> You might recognize this as being similar to the Stanford page but a slightly different header:

[http://theory.stanford.edu/~amitp/GameProgramming/AStarCompa...](http://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html)

The Stanford page links to a redblobgames e-mail so it's probably the same person

</comment><comment><USER9> There is the repository here also : [https://github.com/enjalot/algovis](https://github.com/enjalot/algovis)</comment>


AI Body Scanners Could Solve the Worst Thing About Airports - <AUTHOR> https://www.theguardian.com/technology/2016/oct/25/airport-body-scanner-artificial-intelligence <comment><USER2> Will probably just have discrimination unintentionally built in like so man y other machines.</comment>


Ex-Con Man Says JOBS Law Makes Guys Like Him Rich - <AUTHOR> http://www.bloomberg.com/news/2012-04-04/ex-con-man-says-jobs-law-makes-guys-like-him-rich.html

<comment><USER2> Whether you think the JOBS act is a good idea or not ... people will get burned by it. Think Groupon minus the SEC disclosures and corrections they've had to make in recent weeks. Or a company pitching a flying contraption using that video that even Wired magazine couldn't determine whether it was real or fake as their pitch. That's the potential brave new world of investing this opens up.

Maybe it'll work. Maybe the intelligence of the masses will establish better oversight than the federally funded version that arguably does a pretty shitty job with listed securities. But people most definitely will get burned, and hopefully some amazing businesses will come out of it to keep things in balance.

<comment><USER3> "Maybe the intelligence of the masses will establish better oversight than the federally funded version that arguably does a pretty shitty job with listed securities."

Don't count on it. Greed shoots down intelligence every time. I predict the come back of the classic "pump-n-dump" scheme.

<comment><USER4> > I predict the come back of the classic "pump-n-dump" scheme.

It went away?

</comment></comment></comment><comment><USER5> News site whose primary audience consists of "traditional" investors runs article critical of law supporting non-traditional investment. Biased news at 11.

Yes, this act will allow various types of fraud that previously couldn't exist. It will also allow various types of awesomeness that previously couldn't exist. Seems like a net win to me.

<comment><USER6> I don't understand how anyone can make the argument that securities regulations are in any way effective after the Madoff debacle. I don't understand why the SEC wasn't just disbanded after it came to light they dropped the ball after being handed the case on a silver platter. Any regulation acts as a tax on legitimate business but the idea is the cost to legitimate businesses is out-weighed by the good done by stopping bad actors. If the regulations don't stop bad actors then all we are left with is a tax on legitimate businesses

<comment><USER7> Indeed the solution to every problem these days always ends up being: regulate it. But noone stops to ask if:

A) Regulation will actually stop anyone, or just make people try harder to hide it

and

B) Will the side effects of the regulation create more destruction than not having it

<comment> mkr-hn What is the alternative to regulation when an industry's lack of self-control becomes harmful to the world around it?

<comment><USER5> If you have to regulate, don't regulate behavior, regulate results. So, rather than saying "you must do X because !X causes problem Y for the world around you", say "you must not cause problem Y" (usually in the form "you incur all liability for any damage you cause by problem Y", since regulations imply an associated threat). You then make it possible for someone to come up with a more creative solution to not causing problem Y.

<comment> mkr-hn That seems reasonable, but the only real world examples I can think of come with inconsistent outlooks. The ESRB formed when video games were at risk of being regulated. Since then video games soared past the movie industry. The counterexample to that is the CCA, which is largely credited with keeping the comic book industry from diversifying and expanding.

What is needed to make self-regulatory organizations work out as well as the ESRB?

<comment><USER5> The regulatory situation I described only applies when some serious problem exists that will cause harm to others, but no existing law makes people liable for causing that harm, and no other financial incentive exists to self- regulate (e.g. the target market doesn't actually care about the problem in question). In such cases, regulation might make sense; I suggested that such regulation should just address the harm caused rather than the details of what (at the time of regulation) seem like the "right" steps to prevent that harm.

In the case of the ESRB and the CCA, self-regulation serves primarily as a marketing tool, with varying degrees of success; a strong financial incentive already exists to self-regulate. The ESRB works reasonably well because it helps the gaming industry target a broad age range and have everyone get what they want and expect. The Comics Code and similar systems worked badly because they attempted to censor rather than just label, and because they didn't do a good job of keeping up with what target audiences wanted; CCA failed because it no longer provided value to anyone.

Similarly, the automobile industry introduces a huge number of safety features because their target market cares deeply about safety; most such features don't come from regulatory requirements, and even the mandated features would continue to exist in the absence of regulation, because people demand them. Advertising for vehicles often touts independent safety ratings as primary selling points.

So, self-regulation works out very well when the target market _wants_ it as a feature. It doesn't work well by itself when it provides no value to the target market.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> So the concern here is that crowdfunding sites will allow scammers to sell shares of nonexistant companies to average people?

It sounds like the biggest worry is that us "average" earners (under 100k annual income or net worth) have never purchased corporate shares, and are more likely to get scammed.

<comment><USER9> Their biggest worry is that ordinary people (i.e., "non-qualified investors" AKA "the 99%") might begin to invest up to 10% of their income without going through investment bankers.

</comment></comment><comment><USER10> I couldn't understand the point of the article other than they don't like crowdfunding, small investors shouldn't exist, and they don't like the JOBS act. Could someone lecture me on what I missed?

<comment><USER9> You missed the part where they basically equated crowdfunding with convicted felons and securities fraud.

<comment><USER11> The current convicted felons and securities fraudsters don't want competition.

</comment></comment></comment><comment><USER12> MF Global - 1.2 Billion or more of supposedly segregated client funds, commingled and then missing. Futures contracts disrupted, lots of other irregularities.

How many weeks has it been since this came to light?

</comment><comment><USER13> "Investors with annual income or net worth of less than $100,000 will be allowed to invest as much as $2,000 a year in a company that offers shares via crowdfunding."

Even if someone only invests in scams and gets royally fleeced out of their whole $2000 one year, a lot of people waste a lot more money on much stupider stuff.

<comment><USER6> Like state run lotteries

</comment></comment><comment><USER14> It's pretty ridiculous that the JOBS act applies to companies with revenues up to $1 Billion.</comment>


Somali Pirate Economics - <AUTHOR> http://www.wired.com/politics/security/magazine/17-07/ff_somali_pirates

<comment><USER2> This kind of deframes the reality of international over-fishing and dumping of toxic waste in Somalia:

According to Nick Nuttall of the United Nations Environmental Programme, "Somalia has been used as a dumping ground for hazardous waste starting in the early 1990s, and continuing through the civil war there," and "European companies found it to be very cheap to get rid of the waste, costing as little as $2.50 a tonne, where waste disposal costs in Europe are something like $1000 a tonne."

If my family started getting radiation sickness, that would add quite a bit of emotional justification for piracy...

Src: [http://en.wikipedia.org/wiki/Piracy_in_Somalia#Sovereignty_a...](http://en.wikipedia.org/wiki/Piracy_in_Somalia#Sovereignty_and_environmental_protection)

<comment><USER3> Both issues are symptoms of a country without effective governance.

<comment><USER4> Both issues are symptoms of an inadequate international system of governance. If the United Nations had any power it would have stepped in diplomatically to prevent the dumping and stepped in militarily to prevent the piracy.

</comment></comment></comment><comment><USER5> It's interesting that even pirates need outside investment, rather than simply being able to bootstrap. This need is significant, given the 50% cut going to financiers.

It's also interesting that piracy is still low enough of a cost that it doesn't justify rerouting ships, landing marines, or any of the other traditional responses to piracy.

<comment><USER6> Isn't the traditional response to post a few blokes with guns, big guns, and attempt to blow any pirates out of the water? Aren't ship's crew using guns for protection?

<comment><USER5> You'd think so. There must be legal issues with this approach, since you'd have to have deck-mounted machine guns to have much chance. Or maybe, as with everything else described in this article, deck-mounted machine guns wouldn't have enough cost-benefit.

<comment><USER7> Also, weapons on merchant ships can be taken by the pirates and used in future attacks. So unless the weapons allow the crew to consistently prevent hijackings, they're just increasing the pirates' revenue.

</comment></comment></comment></comment><comment><USER8> Anyone else get "video unavailable" on the video?</comment>


EU charges Google over Android - <AUTHOR> https://euobserver.com/digital/133134 <comment><USER2> Someone'd better re-open browserchoice.eu, because that went brilliantly, didn't it?

Also, how is Android different to iOS in this regard? Other than nobody can really create alternative browsers in Apple's ecosystem.</comment>


Guava's EventBus - Simple Publisher/Subscriber - <AUTHOR> http://insightfullogic.com/blog/2011/oct/10/eventbus/

<comment><USER2> The event bus is one of my very favorite architecture patterns.

It usually ends up in most desktop apps I write that have a UI. There's just too much to love about them. In languages with method annotations (or something similar), the wiring process can be almost entirely automatic.

</comment><comment><USER3> I would usually use Akka for that kind of thing: <http://akka.io> (I've rolled my own before, too)

</comment><comment><USER4> GWT has had a similar EventBus class for a while that works well on both the server and client sides of an app.

<comment><USER2> Do server-side events find their way to the client event bus?</comment></comment>


Rust and SPARK: Software Reliability for Everyone (2017) - <AUTHOR> https://www.electronicdesign.com/industrial/rust-and-spark-software-reliability-everyone <comment><USER2> _> Programming languages often defer reliability and security to tools and processes. Two initiatives--SPARK and Rust--state that language is key to reaching those objectives._

I wouldn't quite put it like that. I can't speak to SPARK, but Rust absolutely doesn't want to displace or discount the value of tools and processes--it wants to augment them.

Rust positions itself as one layer in a defense-in-depth strategy; that's the reason why Rust, despite striving to provide strong memory safety guarantees, still compiles programs with RELRO, NX, ASLR, PIE, basically whatever binary- level mitigations it can get its hands on.

As far as tools go, the Rust compiler is viewed as just the first tool of many. Rust recently changed the default allocator of Rust programs to be the system allocator rather than jemalloc (the system allocator was already the default on some platforms, like Windows), in order to (among other reasons) support Valgrind out of the box. And I don't know the current level of support for these, but Rust does eventually seek to support LLVM's various sanitizers: asan, tsan, ubsan, msan, etc. (currently I think these might work primarily on 64-bit Linux). Rust is also developing external tools of its own; see for example this blog post series from Ralf Jung about creating a tool to dynamically check the validity of unsafe code in Rust programs, with the eventual goal of having a formally-proven model: [https://www.ralfj.de/blog/2018/11/16/stacked-borrows- impleme...](https://www.ralfj.de/blog/2018/11/16/stacked-borrows- implementation.html)

As for processes, one of the impetuses for locking undefined behavior behind the `unsafe` keyword was to better focus developer processes on writing and reviewing code. For example, Servo has a bot that comments on any PR that touches a file containing the `unsafe` keyword. In an organization using Rust, I would expect any first-time Rust programmers to be disallowed from checking in code using the `unsafe` keyword until they get a handle on the language.

<comment><USER3> In contrast, Go programs are not compiled with ASLR/PIE by default. Go's developers do not want to give up the debuggability of deterministic address space layout, comparing ASLR's extra protection to "seat belts in restaurants" because Go fixes these vulnerabilities at the language level.

[https://rain-1.github.io/golang-aslr.html](https://rain-1.github.io/golang- aslr.html)

[https://insanitybit.github.io/2016/12/28/golang-and- rustlang...](https://insanitybit.github.io/2016/12/28/golang-and-rustlang- memory-safety)

<comment><USER4> Defense in depth.

Check rust should also not have these types of problems, but that doesn't mean that C libraries and other unchecked behavior won't. This is probably why Go does support ASLR.

</comment></comment></comment><comment><USER5> I am currently and avidly learning Rust. It's a steep learning curve, but I hope it pays off in future. And by pay off I don't mean financially, but creating some cool software.

<comment><USER6> I am essentially a art student who picked up some python and C along the way. I feel very comfortable with Rust (started a year ago). Make sure to read the books and maybe consider buying "Programming Rust" by Blandy & Orendorff which is easily one of the best language books I ever read, especially when combined with the free books available online.

I found the hardest part was stopping myself from using concepts I learned from python (e.g. Object Oriented stuff). I tried to make everything as class- like as possible. This always worked for a bit and then quickly started to make things immensly complicated. This was in fact never really necessary to solve the problem at hand. I learned to love custom data types, traits and the ability to just (for example) make my own Vec and extend it with some specialized functionality.

Rust has a incredibly good tooling and I use it more than Python nowadays.

<comment><USER7> _Make sure to read the books and maybe consider buying "Programming Rust" by Blandy & Orendorff which is easily one of the best language books I ever read, especially when combined with the free books available online._

I used this book in a Rust course and I can also recommend it. What is particularly nice about this book is that in the chapters about ownership, moves, and references (which is what most learners find the most difficult) it uses neat graphs to visualize memory layout. It also places Rust memory management a bit into context by comparing Rust's memory management to other languages that the reader might know. The largest shortcoming of the book is the lack of exercises.

That said, I don't think any of the books is as good as K&R or The Go Programming Language yet. The Kernighan books are lucid and contain a lot of small, but useful, exercises/practical examples. This gives a stronger sense of accomplishment while working through the book.

<comment><USER8> I'll snag that book then, thanks for the pointer! I'm semi-useful right now but every little bit helps.

Edit: neat, its on safari queue, i don't need to buy a thing (sorta.... ignore that I pay for this yearly)

</comment></comment></comment></comment><comment><USER9> It's a solid comparison, but I find it interesting that the author refers to Rust/Java/C++ as coming from the "IT World". I guess the bit about human subcultures being fractal rings true here.

</comment><comment><USER10> (Note this is from April of 2017)

</comment><comment><USER11> SPARK, the language. Whatever happened to that?

<comment><USER12> Not much reason to run across it unless you're in the avionics and high integrity world</comment></comment>


Ray Tracing: The Rest of Your Life (Minibook #3, Free on Amazon til Apr. 5) - <AUTHOR> http://www.amazon.com/gp/product/B01DN58P8C/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B01DN58P8C&linkCode=as2&tag=inonwe09-20&linkId=J7FPGV2LHMR2GJYG <comment><AUTHOR> Links to additional material on the blog post about the book here: [http://in1weekend.blogspot.com/2016/01/ray-tracing-second- we...](http://in1weekend.blogspot.com/2016/01/ray-tracing-second-weekend.html)

This is a follow up to Ray Tracing in One Weekend ([http://in1weekend.blogspot.com/2016/01/ray-tracing-in-one- we...](http://in1weekend.blogspot.com/2016/01/ray-tracing-in-one- weekend.html)) and Ray Tracing: the Next Week ([http://in1weekend.blogspot.com/2016/01/ray-tracing-second- we...](http://in1weekend.blogspot.com/2016/01/ray-tracing-second- weekend.html)).

</comment><comment><USER2> Awesome. I very recently grabbed the first two entries, though I haven't worked through them yet. I wondered at the interesting title and date, but it seems legit. :D

<comment><USER3> Yeah free weird sounding book on April 1. It's surprising anybody clicks through!</comment></comment>


Guido van Rossum - People Who Annoy Me - <AUTHOR> http://neopythonic.blogspot.com/2009/04/people-who-annoy-me.html

<comment><USER2> > How about "excessively negative people"? --Hobbes (Jason)

Jason wins.

</comment><comment><USER3> People who annoy me:

1\. People with web sites that don't go back when you click back, and make you click twice, but then you screw up and click 3 times, and then have to click forward again.

<comment><USER4> Unfortunately, that's not people, that's blogspot. I even have to do it on my own blog. Of course, it could be some individuals' blogs, but blogspot is the only place I've seen it.</comment></comment>


A Path to Enlightenment in Programming Language Theory - <AUTHOR> http://steshaw.org/plt/ <comment><USER2> What is always missing for me in these lists is a tutorial for knocking together a small lambda calculus + dependently typed interpreter in C. Not ML, Not Ocaml, not, Haskell, not any language that has _already_ got lambdas in it!

Always when I read these I see, "get your Haskell compiler and..." and I'm like, if I knew Haskell well enough to do that I wouldn't be doing this tutorial in the first place.

Case in point, article says "particularly for programming pracitioners who didn't learn it at school." \-- Correct! I taught myself Basic, I taught myself a bit of x86 assembler, most importantly, I taught myself C. My working mental model of a computer is the C machine model. And even now, now that I know Ruby with its lambdas, I know that Ruby is written in C. And the Linux kernel. And Nginx (C++ maybe? Dunno). And on, and on.

Show me the tutorial where I can build, _in C_ a bare bones working (tail recursion) implementation of the lambda calculus with type inference and dependent (algebraic?) types and I'll shake your hand and call you a champion.

Closest I've seen is Make A Lisp - [https://github.com/kanaka/mal](https://github.com/kanaka/mal) but I don't think it has the sweet types and tail recursion and other good stuff. PS: bonus points if Regexen are native type :)

(Open to suggestions (I am))

<comment><USER3> > knocking together a small lambda calculus + dependently typed interpreter in > C. Not ML, Not Ocaml, not, Haskell, not any language that is _already_ got > lambdas in it!

This wouldn't be any more educational and just plain painful. "Research" programming languages tend to work very well for building compilers, that's why they are used in many toy programming language projects.

Dealing with tree and graph structures in a language like C would be a lot of work, a lot of effort going into memory management which is not at all useful towards the goal of learning how to implement a language.

To give a practical example: last time I was working on a toy compiler using Haskell, I needed to calculate the strongly connected components in a directed graph to perform dependency analysis (rearranging "letrecs") that is required to do type inference. Had I been writing the compiler in C, it would have required a week's worth of engineering to get done. With Haskell, I could grab Data.Graph.SCC and be done in a few hours. Arguably I could have picked up a graph library in C, but then I'd have to spend time understanding how memory management works in the library and so on.

I understand the appeal in using C or just an imperative programming language but quite frankly, that would really hurt the pedagogic aspects of a project like that.

edit: Here's the relevant code if you're interested: [https://github.com/rikusalminen/funfun/blob/master/FunFun/De...](https://github.com/rikusalminen/funfun/blob/master/FunFun/DependencyAnalysis.hs)

<comment><USER4> The flip side of this is that if you're writing something in C, you actually do have to understand how details like closures are implemented on real hardware. These are not trivial problems, yet many programming language design papers and articles effectively brush the whole issue of actually implementing these things under the carpet.

Go ahead and search for that particular example. There is _almost nothing_ on the Web about practical, real world techniques for implementing that sort of programming language feature, despite its ubiquity in functional languages and the increasing presence of -- or emphasis on -- higher order functions and related tools in mainstream imperative languages. The same could be said of many other non-trivial language features, say laziness, or various concurrency models.

I think this is regrettable, because it creates a real barrier for anyone who's interested in learning about these features and maybe writing their own languages one day, but who doesn't come from an academic background where this kind of material was taught. It also makes it unnecessarily difficult for someone from an imperative programming background -- which is probably still the overwhelming majority of programmers -- to understand the real costs and performance implications of using these kinds of features.

<comment><USER3> > The flip side of this is that if you're writing something in C, you actually > do have to understand how details like closures are implemented on real > hardware.

If you're writing a compiler targeting real hardware and not a high level virtual machine, you'll need to learn how to implement closures regardless of the "host" language you write your compiler in.

But you're correct, when implementing an interpreter, it's so much easier if you have a garbage collector and an object system of some kind at hand. You'll have to implement this yourself if you're working with C.

<comment><USER4> _If you 're writing a compiler targeting real hardware and not a high level virtual machine, you'll need to learn how to implement closures regardless of the "host" language you write your compiler in._

Right, but a lot of the tutorial material in this area doesn't really consider that issue, even though it's rather fundamental to practical applications. Instead the explanation often settles for some sort of indirect dependency on the implementation language's existing version of a similar feature. I think this is unfortunate, not least because it reduces us to a model where most people implementing these ideas depend on some sort of magic run-time environment instead of learning how to actually write that run-time.

<comment><USER5> Thats because tutorial material is going to keep things simple. If you really want to implement a garbage collector on your own then you should go looking for an advanced compiler book instead of a tutorial.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> I spotted this on Twitter [0] and it was timely for me because I've been sorta building my own learning path lately. After learning Haskell a few years ago I got really interested in PLT, type theory, and other higher math (like CT) and also things like formal program verification and automated solvers. So I started trying to decide on a good self-study path (as a guy with a day job who's not going to be starting a Ph.D. anytime soon). I ran across this very helpful Reddit thread [1] and so far I'm thinking of the following path. I'm starting with _How to Prove It_ , because I never did a lot of proof solving in college (and that was >10 yrs ago anyway) and it's a good basis for further work. Then I have two branches.

The first is for abstract algebra and CT, because I find them interesting and they're useful for understanding Haskell, that currently consists of Pinter's _A Book of Abstract Algebra_ , then _Conceptual Mathematics_ by Lawvere and Schanuel, then Awodey's CT book, which is a path straight out of that Reddit thread.

The second is for PLT/type theory, and starts with _Software Foundations_ by Pierce, then _Types and Programming Languages_ by Pierce, then _Practical Foundations for Programming Languages_ by Harper (for completeness, as I have heard pros and cons for both), then maybe moving to _Advanced Topics in Types and Programming Languages_ and such. Mix in some Oregon Programming Language Summer School (OPLSS) [2] videos here and there when they fit. (OPLSS sounds great and I'm glad their videos are online)

[0] [https://twitter.com/manisha72617183/status/61301658769664819...](https://twitter.com/manisha72617183/status/613016587696648192)

[1] [http://www.reddit.com/r/haskell/comments/29reb7/first_or_sec...](http://www.reddit.com/r/haskell/comments/29reb7/first_or_second_edition_of_introduction_to/)

[2] [http://www.cs.uoregon.edu/research/summerschool/](http://www.cs.uoregon.edu/research/summerschool/)

<comment><USER6> Pinter's _A Book of Abstract Algebra_ is one of the best math books I've ever read. It's short, to the point, and doesn't assume you're an idiot. I learned a lot from it and I can't recommend it enough.

</comment></comment><comment><USER7> I'd like to find a jargon-free path. There's too much gravitas, and hence ego, in the words.

It's kind of like astronomy - you can (and should) start with looking up, and notice that the stars rotate around the north star. Terms like right ascension, azimuth, celestial spheres, plane of the ecliptic, etc...these are impressive and important sounding and they really get in the way of understanding.

It's not arbitrary picking astronomy as my example, because in the end _computers are physical systems_. They are quite unique because they are capable of actions that look like violations of the second law - e.g. you can quite easily reverse a program that simulates gas diffusion, and simulate putting that gas back in a jar - that is, you can define an incredibly delicate system, and reset it for nothing, like being able to use a kitchen for anything and then clean it instantly, for free. More generally, all of a computers negentropy can be recovered for little or no cost after arbitrary disorder! They are also unique because they can rapidly and accurately and repeatedly traverse very specific state spaces, which is unlike anything in the universe, including the human brain.

As a physical system, a computer extends through time, and it's state is in general time dependent. Coupling signals across time is, I believe, what programming is about. We have special names (jargon!) for different signals - we call signals that come earlier "programming" and signals that come later "runtime input". But only useful distinction is between signals that arise from outside the system, and those which arise inside (that is, _programming_ and _input_ are the same; but input arising from _results of a function call_ are profoundly different). It's useful because only the latter can recurse, which is both a source of error, but also the only possible way "intelligence" (or any really complicated behavior) could possibly express. The only other thing that matters is the shape of the system state - which constrains, in some ways, the kinds of states the system can achieve (or, because it's a universal machine, it constrains the general patterns of state traversal in some hand-wavy sense).

I built something that demonstrates these ideas, if anyone's interested.

</comment><comment><USER8> How much does algebra contribute to learning Type theory ? I'm currently working on the How to prove it book. I thought, I would jump to TAPL after finishing that.

<comment><USER9> I also don't think studying algebra helps you directly with programming language theory. However algebra is of indirect help _if_ you want to learn category theory, because the latter is a direct generalisation of the former. It is rather difficult for a non-mathematician to pick up category theory from scratch without having first seen the the algebra that category theory abstracts from. Universal properties, category theory's most important concept, appears bizarre and disconnected from reality, unless you have seen it working in the much simpler settings of groups, rings, modules etc.

To that caveat, I'd like to add that neither Rotman nor Birkhoff/MacLane are ideal places to start learning algebra. There are plenty of gentler, more modern books. In terms of tomes that are available online, I can recommend Shoup's "A Computational Introduction to Number Theory and Algebra" [1].

As an aside, note that category theory is used only in the part of programming language research that is about (pure) functional programming. In other sub- fields (e.g. OO, logic programming and concurrency), category theory has not so far proven terribly useful.

[1] [http://shoup.net/ntb/](http://shoup.net/ntb/)

<comment><USER10> > In other sub-fields (e.g. OO, logic programming and concurrency), category > theory has not so far proven terribly useful.

I wouldn't say that. I don't know about OO and logic programming, but there's a good amount of categorical/homotopical structure lurking around concurrency. See for example [1], [2] or [3].

[1] [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.9...](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.9946)

[2] [http://www.researchgate.net/publication/2108154_A_model_cate...](http://www.researchgate.net/publication/2108154_A_model_category_for_the_homotopy_theory_of_concurrency)

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

<comment><USER9> You mean Goubault-style homotopy stuff. I don't this this is very categorical, e.g. [2] produces a single category, so I wouldn't call this an example of categorical structure. The Gunawardena paper [1] doesn't exhibit categorical structure either.

</comment></comment></comment></comment><comment><USER11> It is only me, or type theory is overrated and oversold?

<comment><USER12> It is certainly oversold. There is a typical discussion that goes

A: I'm a simple Python programmer. Please tell me why I need types.

B: Types let you catch many bugs that would otherwise cause compile time errors or require compile time checks or testing.

A: But I've seen studies that suggest that static typing does not prevent bugs.

B: When I said static typing, I meant dependently typed languages, which can express almost any constraints at compile time, not just the basic constraints expressed by static typing.

A: Great, you've convinced me. What dependently typed languages can I use in my production system.

B: Errrr

As a mathematical theory, a way to think about programming, and a research project for future languages, type theory is very interesting. But it's not otherwise that useful for the practicing programmer.

<comment><USER13> I've spent a lot of time hanging out with pretty hardcore type theory people, and have never seen any of them recommend a dependently-typed language to a new programmer. In other words, you're pretty blatantly fighting a straw man.

<comment><USER12> It's not about how experienced the programmer is. The problem is that people do a bate and switch when it comes to type theory, promising the benefits of dependent types even though there are no production languages that deliver these benefits.

<comment><USER13> I've similarly never seen anyone promise the benefits of dependent types when talking about simpler type systems. Why would they need to? Much simpler type systems already have more than enough benefits to be worthwhile.

I'm not actually looking to debate you, your mind is made up and there's very little chance I'll change it, not that it would matter if I did. I mainly just want to point out for others reading this that your arguments are blatant straw men.

Also just fyi, it's "bait and switch".

<comment><USER12> _> Much simpler type systems already have more than enough benefits to be worthwhile._

If that's your opinion, why did you ignore the fact that I addressed this in my original post? You accuse me of having a straw man argument, and yet you can't even engage with what I've written?

Anyway, you're right that neither of us is likely to convince the other, but I have really seen arguments that go like the one I described, and you're really doing me a disservice by ignoring the details of what I posted.

<comment><USER13> You "addressed" it by referring to "studies" that you didn't cite. There are studies that go both directions on the question, none of which have good enough methodology to be worth more than a tiny update in either direction. Most of the studies are about extremely weak type systems (C, Java, etc.), and therefore don't provide any evidence at all about type systems that are stronger than Java but weaker than dependent types (e.g. Swift, Rust, Haskell, etc).

Meanwhile we have a lot of people who have used both weak type systems and strong type systems who claim that strong type systems make their jobs dramatically easier, and we have a lot of people who have only used weak type systems who claim the opposite. Take a survey of people who have actually done non-trivial work using a language with a good type system, and you'll get very clear results about their view of the benefits. Clearly an RCT would be better, but given that training takes a long time, that just isn't feasible.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> In practice, most programming languages are not purely or even mostly functional. So why is everything on this list about functional programming?

<comment><USER3> Because imperative programming is not very interesting from a programming language theory point of view. If this was a list about compiler construction, it would look very different.

As we're seeing more and more language features originating from functional programming trickle into mainstream languages, this research hasn't clearly gone to waste even though everyone is not programming in functional programming languages.

<comment><USER9>
        imperative programming is not very interesting from a programming language theory point of view.

I'm afraid I disagree, the opposite is the case. Modern PL theory is mostly about program correctness, and that is much easier for pure functional languages. Until recently, nobody had a handle on program logics for imperative languages, or reasoning techniques for operational semantics. The only available reasoning techniques used to be based on denotational semantics, following Scott's breakthrough domain-theoretic semantics of lambda-calculus. That's why so much theory was developed in a functional programming context, because FP is in some ways much simpler than imperative or concurrent programming (even though compiling FP languages is harder). The available textbooks reflect this state of afairs.

All that has changed in the last decade or so, but it will take another decade or so before recent research insights into non-functional languages perlocates down to accessible textbooks.

<comment><USER15> If program correctness is easy to prove, why we are not doing that when using either C or Haskell?

<comment><USER16> Check out compcert for a verified c compiler. And several Haskell projects have been verified.

<comment><USER15> I know it is possible. But I wonder what stops us from doing it for most programs we write from day to day. And, if proving correctness is indeed important (I believe so), can we do something / what is the next thing to do to enable us proving correctness in our daily job.

<comment><USER9> What stops us is cost. Formally verifying non-trivial properties (in the sense of CompCert) with current technology is several orders of magnitude more expensive and time-consuming than programming and a bit of testing. And this price is almost never worth it.

We hope that this cost can be lowered in the future.</comment></comment></comment></comment></comment></comment></comment>


Bot developer tools and messaging landscape - <AUTHOR> https://medium.com/azumo-experiences/bot-developer-tools-and-messaging-landscape-c3cbe6f5aaf2 <comment><USER2> good overview, on analytics front there another solution that's not on the charts: [https://inspector.botpages.com/signup](https://inspector.botpages.com/signup)</comment>


Lucid programming language - <AUTHOR> http://en.wikipedia.org/wiki/Lucid_%28programming_language%29

<comment><USER2> I implemented a dataflow language a few years ago, for data binding scenarios in a web application.

In a record-oriented data entry and validation heavy application domain, finance sector, insurance policy records, that kind of thing, an imperative approach to updating the user view gets messy pretty quickly. Using a dataflow approach, the client could receive minimal incremental updates from the server in response to events the client sent to the server, such as filling in a field or selecting a value from a drop-down. Because the structure of the UI was declarative, forms could be both pre-populated on download and incrementally updated (with AJAX) using the same set of definitions, rather than ad-hoc cooperation between either end.

Dataflow is trivially parallelizable in so far as it's not difficult to find things to parallelize; selecting an appropriately sized unit of work is somewhat trickier though.

</comment><comment><USER3> Kicking off the discussion because I'd like to know what people think:

Clojure uses streams and I imagine Haskell does too. This is a bit different though, I guess.

<comment><USER4> With streams in Haskel, did you mean lazy lists? Or is there something else, I've missed so far?

<comment><USER3> Yes. That is what I mean.

</comment></comment></comment><comment><USER5> Dataflow languages lend themselves to graphical programming paradigms much more readily than imperative approaches as well. e.g. This company's <http://www.futurepointsystems.com/?page=products> XEE product is a pretty slick dataflow XML ETL tool.

</comment><comment><USER6>
      running_avg
      where
         sum = first(input) fby sum + next(input);
         n = 1 fby n + 1;
         running_avg = sum / n;
      end;

So if you change the name of the function, you have to change it everywhere inside its body? I'm not sure if I like that.

<comment><USER2> That's generally the way recursion works too. Do you have similar issues with it?

IDEs have largely made this a solved problem anyway.</comment></comment>


Stop Disrespecting the Turboprop: These engines are fine for modern air forces - <AUTHOR> https://warisboring.com/stop-disrespecting-the-turboprop-c00acd3fff3a#.wjbuhv12e <comment><USER2> OA-X sounds like the polar opposite of the F-35. Simple, single-purpose, inexpensive, resilient, and maintainable. Congress will hate it.

<comment><USER3> You've touched on a cultural misalignment - and here's another - who in the USAF would be willing to fly it?

It's essentially an assignment to the minor leagues of air combat.

Moreover, such planes would depend heavily on air supremacy gained by the Mach 2+ stuff.

OTOH, it would probably be a helluva lot of fun.

<comment><USER4> |who in the USAF would be willing to fly it?

Warrant Officers. The Army had a program during OEF/OIF where enlisted servicemembers could take a test and qualify for flight school to become helicopter pilots as a warrant officer. I found this tremendously attractive as an enlisted service-member and would have gone that route if I hadn't planned to leave and go to college instead.

</comment></comment></comment><comment><USER5> A turboprop is also much better as a platform for surveillance radar. No engines hanging below the wing obscuring the radar field. Turboprop flies slower and thus stays longer over the target scene.

</comment><comment><USER6> Interesting! Given that F-35s were going to lose in a dog fight and relies on long range missile superiority, why not mount the same missiles on simpler planes?

</comment><comment><USER7> I thought a turbo prop was required for short, non paved air strips.

</comment><comment><USER5> A turboprop is also much better as a platform for surveillance radar.</comment>


Mount Everest now has a permanent 3G connection to the summit - <AUTHOR> http://www.geek.com/articles/mobile/mount-everest-now-has-a-permanent-3g-connection-to-the-summit-20101029/

<comment><USER2> 4 Square should sponsor a competition to see who can be the first to check in from the summit.

</comment><comment><USER3> I wish phone carriers would focus on getting permanent 3G to places less remote and where people live and use phones.

<comment><USER4> Travellers to Mount Everest are well off and in a spending mood.

<comment><USER3> I suspect the roaming charges at the peak of Mt. Everest are far more profitable than in a city.

<comment><USER4> And it's a PR hit. Would you have commented on HN about GSM reception finally available in random-underserved town?

<comment><USER3> No, but i'd still prefer the later.

</comment></comment></comment></comment></comment><comment><USER5> Why is everyone so concerned about this? This is a a no-brainer because:

      - people pay a lot of money to go there, and \
      - people die there

Safety is at a premium there. Even the best climbers don't always make it. Watch this TED video and tell me this is a superfluous use of technology: [http://www.ted.com/talks/ken_kamler_medical_miracle_on_evere...](http://www.ted.com/talks/ken_kamler_medical_miracle_on_everest.html)

<comment><USER6> This is a superfluous use of technology. The people that go there already take plenty of precautions. As a climber, I would not rely on a communication channel installed by someone else as anything more than a hail mary.

The notion that people are concerning themselves with costs as small as a satphone when already paying upwards of 120k is absurd.

<comment><USER7> The cost of a satphone is weight.

<comment><USER6> compared to what? a 3g enabled device? everything is weight.

</comment></comment></comment></comment><comment><USER8> It's upsetting news that the most popular virgin place on earth is now a little less virgin than before. Step by step, losing its natural value.

<comment><USER6> everest has had a relatively elaborate basecamp for years.

</comment></comment><comment><USER9> Well there goes all the dead spots.

Pun intended. Interesting that they would put something like that up there. Most people climbing Mount Everest probably could afford a satellite phone and don't need 3G. Guess it is a luxury for those risking their lives.

</comment><comment><USER10> Might as well put in a flight of stairs

<comment><USER11> C'mon, we're talking modern technology here, they didn't introduce a telegram system.

So clearly we're looking for an elevator, not a flight of stairs.

</comment></comment><comment><USER12> Now I have no more excuses for why I am not trying to climb Mount Everest.

</comment><comment><USER13> I hear Mt. Everest now has a serious litter problem because of all the people - and it's only been popular since the late 70's.

Imagine how much litter is going to be on the moon someday once people can go there for "just" a million dollars.

<comment><USER14> The surface area of the Moon is much larger than Everest though. IIRC it is similar to the land area of Earth. (Remember that the Moon, although smaller than the Earth, has no oceans.)

<comment><USER15> To nitpick, the surface area of the Moon is roughly the same as the area of Africa plus the area of the contiguous US. Much less than the total land area of Earth. It's even less than the area of Asia.

</comment></comment></comment><comment><USER16> Definitely going to incur some roaming charges, but seeing the looks on your friends' faces when you video call them from the top would be absolutely worth it.

Now if we can just put a Starbucks and a gondola up there...

</comment><comment><USER17> and yet I drop calls in the middle of Chicago. Amazing.</comment>


Why Facebook's Bull Run is a break for the mobile ad industry - <AUTHOR> http://appflood.com/blog/wall-street-bullish-on-facebook-is-boon-for-mobile-ad-industry

<comment><USER2> Competition is great for the industry

</comment><comment><USER3> Nice article!</comment>


Are VCs done with Web 2.0 Startups--Or the Other Way Around? - <AUTHOR> http://www.businessweek.com/the_thread/techbeat/archives/2008/03/are_vcs_done_wi.html

<comment><USER2> What is a Web 2.0 Startup? Does this mean more money is going into Web 2.5 or 3.0 Startups?</comment>