How India's massive 2019 election will work - <AUTHOR> https://qz.com/1570687/how-indias-massive-2019-election-will-work/ <comment><USER2> The mechanics of the actual election seem to be decent enough. But there is rampant vote buying in many areas. I've personally seen liquor handed out for votes. Money, clothing, and alcohol are commonly used to purchase votes in many rural areas. Last I heard, it cost something like like 1000-3000 RS ($15-40) per head in rural Andhra Pradesh.

FT article from 2014: [https://www.ft.com/content/a9d35821-f2f1-3479-8082-2ce1e6fa7...](https://www.ft.com/content/a9d35821-f2f1-3479-8082-2ce1e6fa79cf)

<comment><USER3> How do the people buying votes make sure that the voter is voting the way they want? Do they not have a secret ballot?

<comment><USER4> I've seen religious tactics applied effectively for this,

The potential voter is asked to swear over a religious artifact after receiving the money (bribe).

e.g. For Hindu voters, a plate with oil lamp, an idol, a mixture of auspicious powder is used.The voter should swear over it that they will vote for that particular candidate.

Elections are the main reason, politicians ensure religious superstitions flourish in India inspite of evil practices like casteism, sharia etc. Even when India's constitution is godless & secular (amended).

Thanks to really noble people behind India's constitution.

<comment><USER5> As an Indian who has worked extensively in multiple elections have "been there done that", let me tell everyone that above comment is completely ridiculous and devoid of any truth. It is not even a fringe phenomenon.

Let me answer the original question.

No one buys a vote in return of goodies. They buy "loyalty" vote is a consequence of that.

Each candidate appoints a booth level worker first. The booth level worker is in the inner circle of trust for the candidate and booth size is typically <1400 voters. Entire history of voting patterns of each booth is available publicly. A worker may handle multiple booths too.

The booth worker being a local already knows which way the winds are blowing and how to change their directions. For the poorest of poor he might offer cash and alcohol. For others he might offers government jobs, fake degrees, sex, licenses for businesses, shut eye approach towards illegal construction, protection from abusive husband and so on.

Once the voter buys in, he has to show absolute loyalty towards this candidate. He is expected to appear in rallies, at local speeches and even argue in favor of the candidate in market. Each person has enemies and in case Mr X appears to be saying unfavorable things in public someone will inform the booth level worker who will then show up at his house with goons.

You also need to understand secondary consequences of this sort of signaling. It means if a person was seen so actively working for Candidate X and if candidate Y wins, Candidate Y will not even help this person in future because obviously he was seen with Candidate X so often. (This can literally ruin people's lives from what I have seen). This also means there is zilch advantage for the person to backstab candidate X at the voting booth. (If you are married to her , you might as well have sex with her sort of thing). It is this phenomenon that eliminates back stabbing voters.

In my personal experience this soon reaches the level of lassie fair economics. At some point it pays lot more to simply sabotage the booth agent of your opponent instead of actually buying voters. If your prospective booth agent betrays you, you lose hundreds of votes. Just like voters even the booth agents are greedy. The candidate gives him lot of cash to distribute but sometimes he just keeps it to himself.

Part of the reason why BJP has done well in recent times despite spending less money than Congress is because BJP relies on its sister organization RSS which is a cadre based organization. They have pre-vetted individuals at every booth level whose loyalty is beyond doubt. The Congress party on other hand mostly relies on mercenary concept. They do a primary round of bidding where people who want their tickets tell how much money they can spend. The highest spender will then be given the ticket to fight elections. He has to donate 10% upfront to the party chief.

Note:

In my personal experience, with the exception of certain regions in most regions elections are pretty fair and are not determined by money. At least when it comes to Federal (central) elections. All candidates are aware of this fact. You might be able to gain additional 3% votes by sheer cash but you need to employ various other tactics to get more votes. As the middle class in India becomes larger and more aspirational the bids for votes change too. Even the poorest of poor now has electricity and hence correctly values 24x7 electricity above Rs 500 once in 5 years.

<comment><USER6> > At some point it pays lot more to simply sabotage the booth agent of your > opponent instead of actually buying voters.

Could you please elaborate how after the booth agent is sabotaged, he changes the voters mindset or vote? I believe it is very difficult to actively do it i.e. tell the voters to vote for the opposite candidate. At the maximum it will be very passive i.e. he keeps the money to himself and simply not go to voters to work for his candidate.

<comment><USER5> Booth agents are sabotaged very early in the campaigning process. The most common scenario is where the booth agent will secretly contact the opposition candidate and continue to pretend to be loyal to his own master while deliberately feeding incorrect information. In many cases he will simply not spend the cash that was given to him to distribute among voters. In some cases he will deliberately ignore visiting the swing votes.

<comment><USER6> Isn't this very risky? There is a high chance that he will get caught. A smart politician would do recce to see if the money is distributed. What would happen if he is caught?

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> The real heros are Indian Election Workers and security personnel who travel to towns and villages far away from their homes and set up the elections and many times sleep on the floors of schools and offices to conduct these elections.

India could never be authoritarian for one simple reason its too damn diverse, a country that is contradictory to every definition of nation state exists because it has adopted democracy how ever imperfectly and mastered elections.

<comment><USER8> > India could never be authoritarian

Don't get complacent. The man in power has never lost an election, so I don't know if he knows how to lose with grace. What's more, he has _very_ authoritarian tendencies, like intimidating the press[1].

[1] - [https://thewire.in/media/punya-prasun-bajpai-abp-news- narend...](https://thewire.in/media/punya-prasun-bajpai-abp-news-narendra- modi)

<comment><USER5> The Wire is a left-wing publication that routinely engages in propaganda.

The current government has not brought in any new laws or regulations on press. India never had the journalistic freedom like in west.

The opponent of current PM is a political royalty of India. They are the ones who dont know how to live without power. Indira Gandhi suspended Indian democracy and assumed the titled of dictator for few years when she lost an election. She also jailed many people including many political leaders that are still active today. Her son engaged in forced sterelizations and another son brought in a bill to kill the press called "defamation bill". Luckily it was repealed.

The current PM by far is a strict improvement on anyone we has seen in past.

<comment><USER9> > The current PM by far is a strict improvement on anyone we has seen in past.

The current PM came up with demonetization. Arguably the single worst idea in India's economic history since Tuglaq's copper coins. This is despite the central bank strongly advising against it. The RBI's governor even quit because of the government's meddling.

The current government decided to suppress inconvenient NSSO jobs data leading the head of the National Statistical Comission to quit in protest of the politicization of the institution.

The current government tried to take over control of independent tribunals by a backdoor 'money bill'. Thank goodness the Supreme Court put an end to that.

The central government acting through its appointed state governors has repeatedly tried to snatch power from opposition parties with democratically won majorities. The judiciary had to step in time and again to stop this.

The current government has lowered the standard of public discourse where any criticism of the government is immediately labelled 'Anti-National'. The government has shamelessly politicized military actions and is now resorting to jingoism to boost it's electoral prospects. Hell, a former chief minister was caught on camera admitting as much.

The authoritarian tendencies of the dear leader are as clear as day. But sure, please tell me how Modiji is bringing us all Achhe Din. Oh, wait. Even the BJP has stopped talking about Acche Din now.

<comment><USER5> Modi had many misses demonetization and GST being top ones in my opinion.

But as far as authoritarianism and tyrannical attitude is concerned Modi does not even belong in the same league as congress party.

Congress party has done everything you have listed and lot more. Tell me if any Modi move comes even half close to what the Congress party did.

1\. Took over 25% school capacity from all private schools and enforced severe restrictions in the form of RTE. This alone has closed down 10k + schools in India.

2\. Created 100% exemption for Christians and Muslims run private/publicly funded schools from above point 1. They even went to amend Indian constitution (93rd) to create this blatantly bigoted scheme.

3\. Congress create NGT National Green Tribunal. A body that reports, investigates and delivers punishment for anything related to environment, their decision can not be challenged in any court. Congress party has made millions through this body. I remember in a particular case where NGT fined this gentleman around Rs 3 crores for building water canals on his own private property. When his representative asked the NGT body "where is the evidence that I have done any harm to environment?" NGT simply stated that they need not provide any evidence at all.

> The central government acting through its appointed state governors has > repeatedly tried to snatch power from opposition parties with democratically > won majorities.

That is however is not at all true in even a single case. Using governors as thugs was Congress party's modus operandi and now being normalized. BJP government has not snatched any state from a majority party ever, not even once. Congress party on other hand has used their appointed Supreme Court judges to snatch Karnataka from BJP.

I am no fan of Narendra Modi, I personally dislike him for failing to undo the damage Congress party has done to Education related laws. But putting him in the bracket of "authoritarianism" is nothing but elitist snobbery. It is something that a convent educated cheese eating wine drinking socialite from Delhi or South Bombay might easily buy into but not an actually grassroot level worker.

</comment></comment></comment></comment></comment><comment><AUTHOR> More details on the logistics behind the Indian election -

With a population of 1.3 billion people and a voting age of 18, an astonishing 900 million Indians are eligible to vote. This is nearly double the entire population of the 28-country European Union, and triple that of the United States. Often, the electorate of a single state in India is as large as that of a country.

The ECI deploys over 11 million civilian and security personnel — greater than the population of 42 of the 50 states in the US— to ensure the elections run fairly and smoothly.

Source: [https://medium.com/@sarveshmathi/logistics-behind-the- worlds...](https://medium.com/@sarveshmathi/logistics-behind-the-worlds- largest-election-7a944b76aa4f)

</comment><comment><USER10> I recently watched an independent film called "Newton" [1] about Indian democracy and voting process. It was amazing and I highly recommend it.

[1] [https://m.imdb.com/title/tt6484982/](https://m.imdb.com/title/tt6484982/)

<comment><USER11> this movie is well made, and is available on Amazon Prime (in the US.)

</comment></comment><comment><USER12> I turned down a job to create a rigged voting system in an African 'republic'. It was for something regional, not the majors. They wanted the voting system to have two lights outside the voting center, one for each candidate, where the brightness of the light indicated the number of votes for each, with the ability for remotely overriding and setting the brightness for each light. That was an eye opener.

<comment><USER13> Interesting that they wouldn't just display the number of votes. By using brightness, they transform their method of cheating into something much more difficult to quantify.

<comment><USER12> I thought the lights were just ridiculous.

</comment></comment></comment><comment><USER13> "Better" is difficult to measure. I used to think that US elections are a lot less corrupt than Indian elections, thus are probably "better". Now I'm not so sure!

The sheer scale of an Indian election is rather remarkable though, as is the melodramatic buzz it generates throughout the country. It's an administrative marvel, especially when you consider the strangling bureaucracy that is rife in most Indian government departments.

<comment><USER14> > I used to think that US elections are a lot less corrupt than Indian > elections, thus are probably "better". Now I'm not so sure!

I've read some thing about the primaries in the last US election, especially in the dems party. Wow, that was corruption to a whole new level. Also these primaries are (by design) super important to the US elections; too important to be so "unregulated" if you ask me.

<comment><USER15> Primaries are not elections. They are private intra party affairs.

Also, as far as I am aware, other than 1 district in Brooklyn whose votes were not counted in time in the Dem primary, there was hardly anything "corrupt" about either party's primary (and even that district went towards the winner anyways, and wouldn't have made a difference if every vote went in the opposite direction).

While not corrupt, or illegal, caucuses in US primaries are extremely undemocratic instruments, however, that is the exact opposite of what is considered the best method of voting in a democracy (secret ballot).

<comment><USER16> > Primaries are not elections.

Yes, they are.

> They are private intra party affairs.

That wouldn't stop them from being elections, but primaries are public affairs carried out by the State. (Caucuses are more like you describe, but even they often have state involvement.)

> caucuses in US primaries

Caucuses are not in primaries, they are an alternative to them.

<comment><USER17> > Caucuses are not in primaries, they are an alternative to them.

Are you familiar with U.S. elections? Caucuses are very much part of the primaries. They are how certain states perform their primaries. Iowa, for example.

<comment><USER16> > Are you familiar with U.S. elections?

Yes. Intimately.

> Caucuses are very much part of the primaries. They are how certain states > perform their primaries.

No, caucuses are a (formerly, universally used—primaries are a newer thing) alternative to primaries still used in a minority of states (and sometimes, by some parties but not others in a state) to select delegates to Presidential nominating conventions.

Because primaries have over time displaced caucuses as the _main_ candidate selection mechanism, and because the campaigns are somewhat nationalized, and because there isn't a handy name for the whole process, the whole national process of selecting such delegates is sometimes sloppily referred to as "the primary" of each party.

</comment></comment></comment></comment></comment></comment><comment><USER18> Well yeah, they have Voter ID.

</comment><comment><USER19> But what about the candidates?! Try to top those and then we'll talk.

<comment><USER20> The system is in place. Things change slowly in a democracy that has its flaws as well as benefits.

Faults of a slow democracy are easy to see but benefits are not so much. You see move fast break things is not how you deal with people's life. The system is in place and it has immense constitution powers granted. Once the literacy increases so would the quality of candidates. If you look at ADR databases and compare it with regional GDP as well as educational levels you would see a clear trend towards a net positive.

The slop isn't as high as we would like it but it's positive and that's how democracies work.

</comment></comment><comment><USER21> The world's largest democracy & arguably the best.

Almost anything that India does, even marginally successfully, is done at a scale that is incomparable to anything in the world.

<comment><USER22> By what metric are they the best democracy?

I visited Hyderabad and Chennai for work in 2018 for about three weeks. It's certainly not a place I would want my family with me. The food in Hyderabad was amazing though, I'll give them that.

<comment><USER11> Are you sure you are not conflating the meaning of the word "democracy" to different issues, including quality of life, climate, infrastructure etc?

There's no way you can evaluate how good/bad democracy is in any country, in 3 weeks.

<comment><USER22> I didn't make any statement on their democracy. I questioned by what metric are they the best and I commented that Hyderabad and Chennai are not a place I would take my family.

Not sure how you took that to be any kind of judgement on India's democracy.

<comment><USER11> > By what metric are they the best democracy?

I'm not sure what else you meant by that.

</comment></comment></comment></comment></comment><comment><USER23> This is a puff piece to legitimize use of EVMs. India uses EVMs, a closed source device made by a secretive Japanese manufacturer. The government claims the device is "hack" proof. They stubbornly refuse to conduct an open hackathon to find vulnerabilities.

<comment><USER24> _Though Indian voters also cast their ballots on electronic voting machines, they are much simpler and arguably more reliable than the ones used by their American counterparts. Unlike the machines in America, which are manufactured by private companies, differ in each state, and need proprietary ballot paper, the ones used in India are made by two government firms, and are battery operated—a key detail in a country that struggles with power supply. (Plug-in machines caused problems in the latest US election, as some workers forgot to plug them in). Each machine holds up to 2,000 votes, so large-scale hacking is highly unlikely._

<comment><USER15> It's good to see an audit paper trail is generated by these machines.

If EVMs are to be used, an auditable paper trail is necessary.

Hopefully the Election Commission will audit a representative sample of locations to prevent any irregularities.

<comment><USER20> There is nothing to hack to meaningfully affect an election outcome at the national level. Plus Election Commission of India takes no chances around it.</comment></comment></comment></comment>


Specialized chips are threatening to take over cryptocurrencies - <AUTHOR> https://www.technologyreview.com/s/611153/specialized-chips-are-threatening-to-take-over-cryptocurrencies-and-they-look-unstoppable/ <comment><USER2> What I don't get is the basis for ever thinking that a hashing algorithm exists that is resistant ASIC-optimization.

Is the idea that if the algorithm literally should use nearly every instruction in the latest Intel/AMD chips? Or enough of them to make replication in ASIC infeasible.</comment>


The Rest of the Industrialized World Has High-Speed Rail; Why Can't the U.S.? - <AUTHOR> https://www.engineering.com/BIM/ArticleID/18792/The-Rest-of-the-World-Has-High-Speed-Rail-Why-Cant-the-U-S.aspx <comment><USER2> So far in California they have gotten themselves into a rough spot.

It would be great to have a competitor for 767s and 737s on the SFO-LAX run. (HSR won't really stop anyone from driving, except to the airport)

On the other hand, it seems incredible that an HSR could terminate anywhere near the urban centers of Los Angeles, San Jose, or San Francisco. Yes, these areas have some of the most feared NIMBYs and BANANAs on the planet but are just plain crowded and would require that a huge number of residences, businesses and existing infrastructure be relocated.

(This last is a big reason why HSR is almost impossible in the US East -- after what happened with Route 93 in Boston you just can't build an urban highway anywhere in the U.S., even with a population that perceives highways as benefiting "people like themselves.)</comment>


Ask HN: What top-level domains do you register? - <AUTHOR>

When registering a domain for a startup is .com, .net, and .org enough or do I need to consider additional top-level domains? <comment><USER2> Don't go overboard. For example, neither facebook.org nor facebook.net redirects to facebook.com. And you don't even _have_ to own the .com. 37Signals doesn't own the .com for any of Backpack, Basecamp, Campfire or Highrise. Get the .com, and then go worry about making it good, instead of worrying about what other tld you need.</comment>


Toolbar free competitor to stumbleupon - <AUTHOR> http://www.spinsnap.com Would love to hear thoughts our feedback on this.  SpinSnap.com is a discovery engine.  Allows users to discover websites, music and people they would not normally disover in their everyday internet travels. <comment><USER2> Personally I like the stumbleupon toolbar better than having to browse sites through an iFrame that is smaller than my screen. Also, stumbleupon has more of a sticky approach since the toolbar is always in view of the user and can click stumble whenever they choose. On SpinSnap, you have to navigate to their page to do anything.

If I had to choose... Downloading a tool bar isn't always preferred, but I think its the better approach for this style of service.</comment>


Show HN: Follow YC companies' blog posts - <AUTHOR> http://techtronium.com <comment><USER2> I am glad I stumbled on you. This is a useful aggregator. I particularly like the fact that it's not asking anybody to upvote/downvote the result of the aggregation. Good luck with it.</comment>


Use The Keyboard: An open source reference for keyboard shortcuts - <AUTHOR> https://usethekeyboard.com/ <comment><USER2> This was useful, I like the Evernote and Outlook ones especially. I'd like to see if we could add in some Autohotkey scripts for programs that don't have any native keyboard bindings, something like the "Soarer's converter" so even if your program has no shortcuts, you can use the 'internet standard' ones and have common access to shortcuts whatever machine you are on.</comment>


Rid e-mails from click tracking with Wallflux Clearinghouse - <AUTHOR> https://clearinghouse.wallflux.com/

<comment><AUTHOR> Wallflux Clearinghouse removes click tracking from e-mails by replacing tracked links with their final destination.

(auto-)Forward e-mail containing click tracking to email@example.com. Wallflux Clearinghouse will remove the click tracking from the e-mail and reply with the cleared e-mail message.</comment>


Ikea's Minimum Wage Hike Was So Successful, It's Raising Wages Again - <AUTHOR> http://www.huffingtonpost.com/2015/06/24/ikea-minimum-wage_n_7648804.html?utm_hp_ref=tw <comment><USER2> What do you know? A lot of problems get solved by increasing the wages!</comment>


Why and how your startup should hire foreign developers - <AUTHOR> https://medium.com/@lauremartin/why-and-how-your-startup-should-hire-foreign-developers-82758d79bb9#.ma76u7jy8 <comment><USER2> A commercial for offshoring jobs. Disgusting, even by Medium standards.</comment>


10gen: "Get Paid For Developing Open Source Software" - <AUTHOR> http://ongig.com/jobs/10gen/Ruby-Engineer-Evangelist--10gen-555-University-Avenue--Palo-Alto--CA-94303

<comment><USER2> How many core developers work somewhere besides 10gen? I know there are a few contributors who work on drivers but it seems like nearly all of the contributors work at 10gen.

Lately I've noticed a lot of "open source" projects that don't feel open source at all. Chrome, Android and Mongo all jump to mind. In each case one company does nearly all of the work and dictates what the product does and where it goes.

It is true that I can fork as I wish, but the odds of my indie fork being able to keep up or compete long enough to gain escape velocity seem unbelievably low. It seems that whatever 10gen or Google want to do on these projects they can do with little chance of reprisal from any open source community.

Perhaps there should be a new name for software whose source is available but is effectively controlled by a for-profit entity.

<comment><USER3> It's a big deal that a for-profit company is willing to let all their customers and competitors see their source code and reuse it (in accordance with their license).

If we need a new word for this type of behavior to distinguish it from FOSS, then I hope it's a word with strong positive connotations, because it's a great thing for for-profit companies to be doing, especially when most for- profit technologies companies today are standing on the shoulders of open source giants of the past.

<comment><USER2> Not if the goal is simply to create a competitive moat and dependent population before gouging them. I'm not saying Mongo will do that but I will be curious about how they interact with companies like MongoHQ and MongoLabs over time.(And hi Andrew!)

While a bit extreme I might compare it to the agricultural aid practices of Western governments. In many cases they are fantastic, but often they also serve as a way to destroy blossoming agricultural economies. Without working domestic agriculture country development is often stunted (in the case of Mongo, work on a truly open source alternative).

Separate digressions:

I would also argue that much more of modern software is actually built on progress made by proprietary technology than people give credit, but that's a separate debate. I fully recognize the value of open source and it is my preference

An interesting counterpoint to my agriculture argument would be free trade across borders debates. Much like the US can feed the world for nothing, manufacturing was done more effectively in one place (China for awhile) but I wouldn't argue for restrictions on how China behaved to get us dependent on them (though currency manipulation and workers rights might come up).

</comment></comment></comment><comment><USER4> They seem like a really good company to work for. I recently went through a couple of rounds of interviews there and although I wasn't really suited to the position (it was via recommendation so we gave it a shot) they seemed like smart guys.</comment>


Mozillagate grows - <AUTHOR> http://americablog.com/2014/03/mozilla-gate-grows.html

<comment><USER2> He's had two years to prepare for this REALLY OBVIOUSLY BEING THE STORY.

I'm strictly an amateur at nonprofit PR (press volunteer for Wikimedia), and I could shit better damage control than Mozilla's managed so far.

It's now made international mainstream news (Channel 4): [http://www.channel4.com/news/mozilla-chief-executive- twitter...](http://www.channel4.com/news/mozilla-chief-executive-twitter-gay- marriage-resign)

Seriously, you people. You had TWO YEARS' RUNUP! What _couldn 't_ you have done with TWO YEARS' RUNUP?

As a friend put it: 'I'm envisioning the board standing around with glassy stares, "I have no idea how this could have happened. We totally vetted his geek cred."'

</comment><comment><USER3> New CEO of Mozilla donates $1000 to anti-gay movement != Mozilla is now an anti-gay company.

I hate all of the Social Justice stuff flooding into HN

<comment><USER4> Then I take it you hate all of the stuff based on open source?

Part of the reason why so much open source stuff exists is because a few people believed that it was an issue of social justice, was tremendously important, and was worth fighting a tremendous uphill battle in order to establish.</comment></comment>


Show HN: Remotive, curated remote tech jobs - <AUTHOR> http://remotive.io/ <comment><USER2> We use several remote job board within my company to hire candidates. AFAICT we didn't hired anyone from these jobboard. But it definitely creates lots of candidates to review.

<comment><AUTHOR> OP here - Yep, job boards nearly always create more volume. After running one for several years, we see great job descriptions attract great candidates and vague job description attract, well, average candidates :) Tons of small/large companies are turning to job boards, especially when it comes to hire remotely where you never know where your next employees lives.</comment></comment>


Go compiler internals: Adding a new statement to Go - <AUTHOR> https://eli.thegreenplace.net/2019/go-compiler-internals-adding-a-new-statement-to-go-part-1/ <comment><USER2> The go compiler is surprisingly easy to modify! I made a modification that allows it to issue warnings instead of errors for unused imports, variables, etc [1]. It was a fun little exercise :)

[1] [https://github.com/kstenerud/go](https://github.com/kstenerud/go)

<comment><USER3> Now if only this got merged into mailine ;)

<comment><USER4> Why? The idea that warnings are errors is pretty important actually.

Now, unused imports are mostly harmless (alright, they are not because of init), but they keep unrelated commits clean without needing ad-hoc linting or IDE functionality.

<comment><USER2> It's explained in the use case: [https://github.com/kstenerud/go#use- case](https://github.com/kstenerud/go#use-case)

Use Case

The use case for warnings is the exploratory development or debugging phases, where you really don't care about leaving unused things lying around for the time being (for example, temporarily commenting something out), and would rather that the compiler just got out of your way until you've got something ready to compile normally and commit.

Usage

        go build -gcflags=-warnunused somefile.go
        go test -gcflags=-warnunused

When you're done with your exploratory/debugging phase, simply build or test without the flag:

        go build somefile.go
        go test

Compiling without the flags will fail on unused things as normal.

<comment><USER5> Other comments are missing out the other key point: go packages are sometimes imported for side effects, and this pattern is common enough in the community (although albeit slightly discouraged now). So unused imports can still impact your code due to the init() functions

<comment><USER6> Unused imports that are imported solely for side effects should be imported this way to avoid that problem:

      import (
        _ "github.com/some/package"
      )

Given that this is the _only_ way to have unused imports with mainline Go — in other words, it's impossible to accidentally remove one once it's been declared this way — I'm not sure I see what the argument is.

<comment><USER5> > I'm not sure I see what the argument is.

That there are other reasons why unused imports are a compilation error in go, and it isn't as simple as turning them into warnings

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Thanks for posting this :)

Part 2 is [http://eli.thegreenplace.net/2019/go-compiler-internals- addi...](http://eli.thegreenplace.net/2019/go-compiler-internals-adding-a-new- statement-to-go-part-2/)

</comment><comment><USER8> That was a fun read. Very interesting.

I have noticed that the AST nodes don't have a parent reference. I wonder how it knows for example when encountering a "continue LABEL" that the code is nested maybe deeply in a loop with that label. The only way I would think of is traversing the tree up but I think there is no way of doing this. How do they do it?

<comment><USER9> Based on [1] (where continue is handled) and [2] (the branch statement type), looks like the target is simply passed to the function. This is a recursive descent parser, so passing the target down the statement handling stack is trivial (and indeed, this is what happens for for[3]).

[1] [https://github.com/golang/go/blob/master/src/cmd/compile/int...](https://github.com/golang/go/blob/master/src/cmd/compile/internal/syntax/branches.go#L218) ("ctx" is a "targets" struct containing two entries, one for which statement 'break' targets and another for which statement 'continue' targets).

[2] [https://github.com/golang/go/blob/master/src/cmd/compile/int...](https://github.com/golang/go/blob/master/src/cmd/compile/internal/syntax/nodes.go#L360)

[3] [https://github.com/golang/go/blob/master/src/cmd/compile/int...](https://github.com/golang/go/blob/master/src/cmd/compile/internal/syntax/branches.go#L293) (the targets{s, s} passed to innerBlock is then passed to blockBranches - s is the for statement node itself).

As a sidenote, it is interesting how easy Go reads even though i never wrote a single line of Go myself (though i do write a lot of C and Object Pascal and the code patterns look similar).

<comment><USER8> Now that you have pointed where it is, it really looks easy to understand how it works. Thank you!

</comment></comment></comment><comment><USER3> Question: does the Go compiler run meaningful optimization passes? I didn't really see it mentioned here, and given that I hear that the compiler is super fast I'm not sure if it does…

<comment><USER7> Check out part 2 ([http://eli.thegreenplace.net/2019/go-compiler-internals- addi...](http://eli.thegreenplace.net/2019/go-compiler-internals-adding-a-new- statement-to-go-part-2/)) which talks about the compiler backend - there are many optimizations done on SSA

<comment><USER10> >many optimizations

Not many, mostly simple peephole optimizations.

[https://github.com/golang/go/blob/master/src/cmd/compile/int...](https://github.com/golang/go/blob/master/src/cmd/compile/internal/ssa/gen/generic.rules)

</comment></comment></comment><comment><USER11> What about generics?

</comment><comment><USER12> Why didn't they use LLVM?

<comment><USER13> LLVM is very slow.

<comment><USER14> It seems to be fast enough for SQL JIT-compiler in PostgreSQL 11+ and shader compilation in the *nix OpenGL stack (mesa), both of which are sort-of- realtime systems.

<comment><USER15> Another HN thread on projects that found LLVM to be slow.

[https://news.ycombinator.com/item?id=16956589](https://news.ycombinator.com/item?id=16956589)

<comment><USER14> That's the best way to learn — post a stupid thing on the internet and let the internet prove you wrong. Thanks to everyone who replied!</comment></comment></comment></comment></comment>


Effectiveness of Photodynamic Therapy in Elimination of HPV in Mexican Women [pdf] - <AUTHOR> https://twin.sci-hub.tw/6319/73863883d6bd8895505fcc8581dfc0e0/maldonadoalvarado2017.pdf <comment><USER2> Has anyone read the study? Severe side effects in almost every patient, and a 50% cure rate of CIN. Existing treatments for CIN have side effects in about 1% of patients and with a 90% cure rate:

[https://my.clevelandclinic.org/health/diseases/15678-cervica...](https://my.clevelandclinic.org/health/diseases/15678-cervical- intraepithelial-neoplasia-cin/management-and-treatment)

Moreover, as the above makes clear, curing HPV is not necessary (especially with such an invasive technique) - only 1% of low grade CIN (which itself is a subset of all HPV) progress to cervical cancer.

<comment><USER3> > Moreover, as the above makes clear, curing HPV is not necessary

There's a body of evidence that HPV might be a factor of Alzheimer's and other neurodegenerative conditions. If that turns out to be true, curing HPV will be very much necessary.

[https://www.cell.com/neuron/fulltext/S0896-6273(18)30421-5](https://www.cell.com/neuron/fulltext/S0896-6273\(18\)30421-5)

<comment><USER4> That article doesn't reference HPV.

<comment><USER3> My bad. HHV != HPV. I have been misreading the OP article.

I'd delete the above if it was within time limit.

</comment></comment></comment></comment><comment><USER5> Amazing results using a proven therapy, wretched article. Here's the actual study: [https://twin.sci- hub.tw/6319/73863883d6bd8895505fcc8581dfc0e...](https://twin.sci- hub.tw/6319/73863883d6bd8895505fcc8581dfc0e0/maldonadoalvarado2017.pdf)

Abstract: _This study aimed to determine the effectiveness of photodynamic therapy (PDT), using δ‐aminolevulinic acid (5‐ALA), in the elimination of premalignant cervical lesions in Mexican patients with human papillomavirus (HPV) infection and /or cervical intraepithelial neoplasia (CIN). Thirty women diagnosed with CIN I and/or positive for HPV participated in the study. Topical 6% 5‐ALA in gel form was applied to the uterine cervix; after 4 h, the lesion area was irradiated with a light dose of 200 J cm−2 at 635 nm. This procedure was performed three times at 48‐h intervals. Clinical follow‐up was performed at 3, 6, and 12 months after the initial PDT administration, by colposcopy, cervical cytology, histopathological analysis, polymerase chain reaction, and hybrid capture. Of HPV‐infected patients without evidence of CIN I, 80% cleared the infection, while HPV associated with CIN I was eliminated in 83% of patients (P < 0.05). At 12 months, CIN I had regressed in 57% of patients, although this response was not statistically significant. PDT using 6% 5‐ALA is concluded to be effective in eliminating HPV infection associated or not with CIN I._

<comment><USER6> > wretched article.

Indeed. This doesn't make any sense:

> she was able to eradicate HPV in [...] 57.2% in women who had lesions but > don't have HPV.

<comment><USER7> OK, in that case we've updated the link from [https://www.eluniversal.com.mx/english/mexican-scientist- cur...](https://www.eluniversal.com.mx/english/mexican-scientist-cures-human- papilloma-virus). If someone can suggest a better article we could use that.

</comment></comment></comment><comment><USER8> [https://en.wikipedia.org/wiki/Photodynamic_therapy](https://en.wikipedia.org/wiki/Photodynamic_therapy)

</comment><comment><USER9> No control group. Very small treatment group. Low power study. Possibly of interest to researchers for discussion, no value to clinician or general public.

Nice that they reported side effects of treatment including pain.

</comment><comment><USER10> > The results of her investigation show that she was able to eradicate HPV in > … 57.2% in women who had lesions but don't have HPV.

How do you eradicate HPV in a population that does not have HPV?

<comment><USER11> Presumably they eradicated the lesions, which were potentially precancerous.

</comment></comment><comment><USER12> This sounds like nonsense. Unlikely and highly improbable. I sincerely hope im wrong...

</comment><comment><USER13> This is good to see. I don't usually see a lot in the press about Mexico accept for the cartel-related news. Hard to believe I forget that Mexico is more or less a normal country, not some dystopian war zone.

<comment><USER14> Maybe you should head over there to see for yourself what it's like.

This summer, I'll be heading to Mexico (Monterrey) and San Antonio again, and I'm looking forward to Monterrey a lot more than San Antonio.

Mexico, apart from certain regions (like almost everywhere) is pretty great.

<comment><USER15> I agree with the sentiment but the "(like almost everywhere)" part frustrates me.

Where are the armed guards at gas stations in Canada? Where are the mass graves in Sweden? Where's the bribery-is-business-as-usual in England?

Don't pretend like everywhere has these kinds of problems. It really undercuts the valid point you have that there's a lot of great places in Mexico and it's generally populated by good people.

<comment><USER16> how is op saying "almost anywhere" has the _same_ issues? canada and sweden have issues too. talk to many aboriginals?

<comment><USER10> The countries of the American continents have a _ton_ of historical baggage with regards to treatment of first nations / indigenous / aboriginal / native american people and plenty of current baggage. And I don't doubt Sweden does too. However, the _current_ status is not in remotely the same league as the violence, corruption, and warfare raging throughout Mexico. This is quantifiably worse.

<comment><USER16> i didnt say anything about mexico. im replying to someone who says there arent parts of canada or sweden comparable to mexico. well this is ignorant. look up missing and murdered aboriginal women. does that count as violence to you? because aboriginal women make up like 1% of the canadian population, but something like 25% of murdered women. of course in broad strokes canada and mexico are very different (canada is wealthy, has no cartel, etc) but that doesnt mean there arent little bits of bad there and doesnt mean there arent bits of good in mexico (remember this reply traces to a parent comment praising a notewrothy academic study coming out of a country generally only mentioned in mainstream news for its problems). thats all.

<comment><USER10> Taking a step back, I'll try to explain where I'm coming from.

My read of Waterluvian's comment is that:

1\. "Problems" (e.g., violence) quantifiably differ in magnitude between Mexico and other places. And,

2\. Those differences matter. That is, the dismissal in the form of "well, everywhere has problems" is disingenuous.

To illustrate that, he provided three specific salient examples (armed guards at gas stations, mass graves, and rampant corruption).

My read of your response to that comment was that you dismissed the idea that armed guards, mass graces, and rampant corruption are a level beyond the violence in e.g., Canada and Sweden, because "what about aboriginals?" By dismissing Waterluvian's comment, you made a statement normalizing Mexico's level of violence.

So I tried to clarify that the difference in level of violence matters, and, here we are.

> i didnt say anything about mexico.

Sure you did. Denying "A != B" says something about A.

> im replying to someone who says there arent parts of canada or sweden > comparable to mexico.

That's not what the comment you responded to said. Violence and corruption is quantifiably _endemic_ to Mexico. Small populations in Canada and Sweden see outsized violence, but on the whole, those countries experience _less violence_.

To put some real numbers on it, there were 611 homicides in Canada in 2016, across a population of 36.26 million. That's 1.68 per 100,000 people. The homicide rate in Canada peaked at 3.03 per 100,000 in 1975.

In contrast, the homicide rate in the US peaked at 10.1 per 100k in 1974 and now hovers around 4.5 per 100k.

Mexico's homicide rate in 2016 was 19.3 per 100k. And "as of 2014, Mexico has the 16th highest rate of homicides committed against women in the world."[0]

If you're trying to illustrate that Canada is just as violent as Mexico, you picked a poor example.

[0]: [http://www2.ohchr.org/english/bodies/cedaw/docs/ngos/CDDandC...](http://www2.ohchr.org/english/bodies/cedaw/docs/ngos/CDDandCMDPDH_forthesession_Mexico_CEDAW52.pdf)

<comment><USER16> no, no, i am not making such a strong claim -- i absolutely agree in the differences you cited b/w canada and mexico. although im hesitant to generalize so much about a region; taken to the extreme, your argument is something like, "mexico is bad, canada is good" \-- if instead youre only saying mexico is more violent in terms of per capita homicide, well that is trivially true so not subject to debate.

what im trying to get at is that we discuss the violence (valid a concern as it is) to the detriment of appreciating the rest -- that, generally, most mexican citizens are fairly typical cf. a canadian or swede in terms of their own morals and desires of life, but when we see an advancement such as the subject of this thread it is approached with an intrinsic skepticism.

does that make some kinda sense? its hard to say more on a mobile device :p

<comment><USER10> Yeah, that makes sense; I think we're more or less on the same page now. (Less: I am not making the claim that Mexico is bad, Canada is good, or that ordinary Mexicans are all that different from ordinary Canadians. Or that science journalism from Mexico should be approached with any more skepticism than science journalism from the rest of the world.)

> if instead youre only saying mexico is more violent in terms of per capita > homicide, well that is trivially true so not subject to debate.

Yes, that's exactly what I'm saying :-). Per capita homicide, corruption, arming of the regular police; on all of these metrics Mexico stands out compared to affluent NATO countries. I thought that was kind of what this comment thread was debating; I misunderstood. Mea culpa. It can be hard to communicate clearly on the internet, especially on mobile. I appreciate you taking the time to help me understand your thoughts.

<comment><USER16> likewise, thanks!</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Cyberpunk 2077 – Official E3 2019 Cinematic Trailer - <AUTHOR> https://www.youtube.com/watch?v=qIcTM8WXFjk&has_verified=1 <comment><USER2> The funny part is the release date for the game is in the same year as the original tabletop RPG was supposed to take place.

[https://talsorianstore.com/products/cyberpunk-2020](https://talsorianstore.com/products/cyberpunk-2020)</comment>


Ask HN: Recommend Cofounder Split IP Agreement Template? - <AUTHOR> Ask HN: Recommend Cofounder Split IP Agreement Template?
A friend and I came close to doing a startup together, but when it came time to drop out, my friend chickened out. I am looking for a template for an IP assignment agreement for people splitting up. Since we never formed a company, and never assigned IP to an entity I am fine with clearly dividing the IP, signing a mutual NDA about each others respective IP, and going merrily on the way. I found IP assignment agreements for founders forming a company, but did not see agreements for people who had never formed a legal entity, and were wishing to carve up IP between individuals before parting.
Would a simple agreement for the leaving friend to the effect of below be sufficient?
I agree we worked on X, Y, and Z together from __ to __. A complete list of things I own is:
  K algorithm
  J library code
  L graphics
All other IP belongs to $STAYING_DUDE.
I agree I have zero ownership in $COMPANY_STAYING_DUDE_JUST_REGISTERED.
I agree that IP belonging to $STAYING_DUDE that was communicated to expressly or implied, was done so in confidence, and is a trade secret. <comment><USER2> If you're really serious lawyer up.

[IANAL]

Otherwise, why not just agree in writing to blanket cross license all the IP to each other in exchange for prohibiting any future claim by either party against the other and call it a day? P

NDA's and IP assignments are only meaningful if you're prepared to lawyer up to enforce them. The more complex the situation, the more it is likely to fail an investor's due diligence anyway.

Good luck.</comment>


What learning cursive really taught me - <AUTHOR> http://qz.com/410854/what-learning-penmanship-really-taught-me/

<comment><USER2> This article talks around the point of what we need to teach children: write legibly; write fast.

Different systems prioritise different things. Briem looks nice until you see how it looks if you're writing really fast - all those zigs and zags blend in.

I'm not sure optimizing for attractive hand-writing is a good idea.

If you're interested in this kind of thing you might like this ridiculously over-priced book: [http://www.amazon.co.uk/Handwriting-Twentieth-Century- Rosema...](http://www.amazon.co.uk/Handwriting-Twentieth-Century-Rosemary- Sassoon/dp/0415178827)</comment>


Libra, a Cyberpunk Nightmare in the Midst of Crypto Spring - <AUTHOR> https://hackernoon.com/libra-a-cyberpunk-nightmare-in-the-midst-of-crypto-spring-5543b6f6e34b <comment><USER2> Libra isn't a cypherpunk wet dream, but it moves us in that direction and thats a good thing. This article is written from the perspective that crypto mass-adoption is right around the corner (i.e. just a few UX tweaks) and that Libra will displace the crypto-utopia that could-have-been. I couldn't disagree more.

The lack of adoption is a combo of a 1) network "dead-zone", 2) reversal risk, and 3) regulatory friction.

FB & Co are uniquely situated to fix these 3 in a way small companies just can't.

1) Any network is useless unless people you need to use the network are using it. Cryptos are still in the "dead-zone" where there's not enough people using it where it has value as a payment platform. By integrating into existing apps (Venmo, FB Messenger, Paypal) that could change

2) Every fiat transaction has some level of reversal risk. There is legislation in the US that requires, and companies that implement, reversal of payments if the payor claims fraud or account takeover. Any company that sits in between fiat systems and the crypto systems have a huge amount of this risk cause they can't reverse crypto payments. These companies are uniquely capable of handling this risk because they already spending resources to figuring out that you're a real human being and you are who you say you are.

3) Regulatory friction (AML/KYC) is something these companies are uniquely able to tackle because they have your identity. Furthermore, they have the legal resources to find out how far they can push the line and lobbying to keep them from harm when they get too close.

<comment><USER3> In _cypherpunk_ terms, what's dreamy about a crypto currency with no anonymity, that shifts power from international democratic governments to private US corporations?

<comment><USER4> Because you thunk governements having power over currency is a good thing? At least with corporations you can choose to deal or not with them, that's the dream.

<comment><USER5> > At least with corporations you can choose to deal or not with them

That position beaks down when the corporations control the means of transaction.

It would be a different story if Libra was a bunch of companies making an arrangement to accept each other's individually-issued cryptocurrencies, but instead its a cabal issuing one scrip that they all control.

</comment></comment></comment></comment><comment><USER6> All the big players in the Association can probably afford this gamble, but if they don't already have the government and the banks on their side, then this thing is DoA.

Government only really needs to do a few things to be essential, one of those things is securing and backing the legal tender, and yes this is also one of the ways they exert authority. It's also how they maintain legitimacy, this has been true for thousands of years.

What country is going to give up this power and hand it over to a consortium of multinational corporations (with 0 banks in it) led by a corporation that is controlled by a sole person?

If it can't be nationalized then they won't let it be adopted and I'm sure every country (including the US) has any number of laws that will allow them to prevent the undermining of their currency.

They let Bitcoin do its thing because it lacked all the things this has, which let them classify it as something closer to commodity/security, and not a currency. If this thing isn't that, then I don't see how this is going to be acceptable without the government demanding a massive hand in how it is run.

</comment><comment><USER7> You know, strategically, when you're about to get super regulated and the government is touting antitrust probes: maybe don't start something that competes with the Dollar.

<comment><USER8> I thought the same, but then it makes sense if you look at it from the sort of fuck-you attitude that FB leadership tends to have: "So you want to undermine us, fine. But what if _we_ undermine _you_ first?"

<comment><USER9> My read is that it _IS_ the USD. '...it may actually cement the dollar as the world currency once and for all. As the Association mops up all the fiat in the world they'll likely turn it into dollars on the back end anyway, so Euros and Yen become Dollars and cents.'

<comment><USER8> But it would still give them leverage, because cutting FB to size would then hit the USD.

<comment><USER9> The USD and petrodollar are under great pressure as reserve curencies at this point in history, this could be an effort by the globalized elites to create a new world currency. I suspect this FB initiative will fail but set up a next generation with similar size and heft

</comment></comment></comment></comment></comment><comment> ur--whale Conspicuously missing from the entire libra story is _how_ they are actually going to manage the peg. How will they handle the custodian counter-party risk?

What I mean by that is: for libra to actually be a stablecoin, for every libra unit in circulation, FB and their merry band of friends will need to stash a frozen combo of {dollar, euro, yen} somewhere.

That "somewhere" is actually not easy at all to design from a financial infrastructure point of view: any institution (other than central banks) who will actually store that stash will have to:

       - be regularly audited by independent auditors

       - be risk-free (and there is no such a thing) or the peg will drift.

Worse, these custodians of what is already essentially virtual money are going to be sitting on a huge pile of currency and to guarantee the peg, won't be allowed to do _anything_ with it.

I give it 6 months before that money is re-invested somewhere through some smart financial engineering.

<comment><USER10> > Conspicuously missing from the entire libra story

All of this is answered in the Libra whitepaper.

> is how they are actually going to manage the peg. How will they handle the > custodian counter-party risk?

"The assets in the Libra Reserve will be held by a geographically distributed network of custodians with investment-grade credit rating to provide both security and decentralization of the assets."

> be regularly audited by independent auditors

Pretty much any custodian with investment-grade credit ratings will be audited and heavily regulated.

> Worse, these custodians of what is already essentially virtual money are > going to be sitting on a huge pile of currency and to guarantee the peg, > won't be allowed to do anything with it.

The funds are not held in currency -- the funds are invested in "a collection of low-volatility assets, such as bank deposits and short-term government securities in currencies from stable and reputable central banks."

> be risk-free (and there is no such a thing) or the peg will drift.

Also answered: "as the value of the underlying assets moves, the value of one Libra in any local currency may fluctuate. However, the reserve assets are being chosen to minimize volatility, so holders of Libra can trust the currency's ability to preserve value over time."

<comment><USER11> _> funds are invested in "a collection of low-volatility assets, such as bank deposits and short-term government securities in currencies from stable and reputable central banks."_

They're underestimating how difficult it will be to avoid losing money.

 _Bank deposits_ So what if Facebook and their partners don't park their reserves in mortgages and derivatives if their banking intermediaries do? Banks routinely go insolvent in recessions and financial crises.

 _Short-term government securities_ Which are currently paying negative interest rates in "stable" and "reputable" nations like Germany and Japan.

A "negative interest rate" means you buy a government obligation for $1000, and a year later you get back $997.

Can Libra reserves earn a high enough return to (a) fund their admin and security apparatus, (b) cover insolvent partners and institutions, and (c) cover fraud and abuse?

It's clear from the whitepaper that there is no upside to holding this currency, but it's not at all clear that it won't "break the buck" and actually lose money.

Sooner or later, FB partners will go to a fractional reserve model and effectively convert this "cryptocurrency" into a vehicle for inflating the money supply to a multiple of actual reserves by issuing debt.

My bet is this will happen sooner rather than later, because there's zero profit in sitting on giant pile of short-term cash.

</comment></comment></comment><comment><USER12> Something I haven't seen mentioned anywhere yet is the amount of power controlling the reserve will grant the libra association. They are free to move the reserve around between "low risk" investments. If the reserve grows to a large size that will mean they can prop up a (small) countries currency (and thus economy) by using the reserve to buy some of it, or it can crash a (small) countries currency that it is currently invested in by divesting.

Small countries might have to start thinking much more carefully about regulating the companies controlling this if it succeeds.

<comment><USER13> Capital flight is already a thing. But large scale speculation on the economies of random small foreign countries isn't a "low risk" investment and the Libra Association has literally no incentive to move the backing of assets away from bonds denominated in currencies its user base wish to convert to.

<comment><USER12> > Capital flight is already a thing.

Sure, but if this succeeds they will have order of magnitudes more capital to do it with than is already a thing.

> large scale speculation on the economies of random small foreign countries > isn't a "low risk" investment

They are the ones who get to define the term "low risk", as part of a basket of many such economies it deserves the term as well.

> the Libra Association has literally no incentive to move the backing of > assets away from bonds denominated in currencies its user base wish to > convert to.

Of course it does, and not just in terms of exerting political pressure (which is an incentive which is literally the purpose of this conversation) but in terms of maintaining a safe basket of goods with as high interest rates as possible.

<comment><USER13> I don't think Libra is going to end up with orders of magnitude more capital than the rest of the world's investors, most of whom are much more risk tolerant, and they're obviously going to define the term "low risk" as "let's make an easy profit by backing our US Libra-holders' accounts with US Treasuries instead of cash" and not "let's corner the market for Rwandan government securities to try exert political pressure on them"

</comment></comment></comment></comment><comment><USER14> I wonder: why does everybody say it's a "Facebook currency", a Facebook project, if there are +/\- 30 corporations in the association?

Does Facebook have more decision power than Visa, MasterCard or any other participating corporation?

Or is Facebook simply the main vector Libra will be promoted with?

Would Libra still be a project if Facebook was (hypothetically) shut down?

<comment><USER10> > why does everybody say it's a "Facebook currency", a Facebook project, if > there are +/\- 30 corporations in the association?

Because FB launched it, and currently appears to have the most control over the project. At the same time, people don't actually take the time to understand the governance model.

> Does Facebook have more decision power than Visa, MasterCard or any other > participating corporation?

No. They get a seat in the governance organization, which they hope will be about 100 organizations at launch (so they get ~1% of the vote.)

> Or is Facebook simply the main vector Libra will be promoted with?

For now, looks like it.

> Would Libra still be a project if Facebook was (hypothetically) shut down?

Yes, it would. Again FB will have just 1% of the control at launch.

<comment><USER15> > Yes, it would. Again FB will have just 1% of the control at launch.

But wouldn't FB be running/in control of the most of the infrastructure behind Libra? The stability of the currency would be dependent on FB providing the core services behind Libra. Having "just 1% of the control" doesn't matter if FB can just shut it down and/or destabilize it's value at will. It's FB actually intends for it to be an open cryptocurrency then why make a new one when we already have several options available other than being able to exert control over it?

</comment></comment></comment><comment><USER16> The origin of physical currency -- coins -- happened 2000 years after money was invented. Coins were invented as a way to provision armies.

It worked like this: soldiers were paid in coins. Taxes were required to be paid only with the new coins. The only way to get the coins, to pay your taxes with, was to sell supplies to soldiers who had coins. Armies supplied, check.

Facebook has an opportunity to force its coin into use by a similar stratagem: offer advertisers a discount (at first!) if paid in Libra. Advertisers can only get Libra from Facebook account holders. Advertisers have to sell at a discount, for Libra, to get enough Libra, but they get it back in the advertising discount. If buyers want these discounts, they need to get Libra from Facebook.

Soon, Facebook controls the economy of the world.

It was recently explained to me that Facebook only wishes they could be as evil as Google, but they were way behind. (Google passed Microsoft sometime back.) This could leapfrog Facebook far beyond Google's dreams.

Are we in for Dystopia? I can't see how not, unless they fuck up so it's both too hard to use and too easy to get ripped off.

</comment><comment><USER17> Re: India

The connections to Aadhar is far more interesting than is mentioned in the article. There is a revolving door between USAID's 'Catalyst' promoting cashless transactions, Aadhar and the people who benefited from demonetization. The Indian state has also been extremely antagonistic to Bitcoin and other such 'anarchist' platforms.

[https://www.globalresearch.ca/a-well-kept-open-secret- washin...](https://www.globalresearch.ca/a-well-kept-open-secret-washington- is-behind-indias-brutal-demonetization-project-2/5566167)

The state apparatus often grumbles about 'terrorism' and how internet has made things difficult for them. Infact, the minister incharge of IT was quoted as saying in 2011 that internet access needs to be moderated with IDs (guess which one). It's almost certain that such legislation will be authorized in the coming decade - perhaps sooner if the "i-patriot" act which is in the waiting (in the US) passes earlier.

It may very well be that the retainers of the East India company (aka deep state) are planning on selling the nation for a few pieces of silver again - which would explain why policies remain uniformly the same with every dispensation. Would not be the first time, and should not be surprising. However, since history education follows the colonial model of cryptic self- justification, it should not surprise anyone that clear foreign geopolitical moves (India has close to half a trillion of IMF/WB loans) are now seen as 'nationalistic'.

It'll be very interesting to see how this proceeds in India - given its hostile stance on Bitcoin. I'm betting the state will welcome it with open arms and will probably proceed to tie it to UPI. In fact this could take a big share of the foreign remittance market, and could rope in Indian banks in to influence the state. I imagine people like Nandan Nilekani, who illegally pushed the 'Big Brother' project, will play crucial roles here.

<comment><USER18> GlobalResearch.ca is a conspiracy website run by a pro-Russian 9/11 truther.

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

</comment></comment><comment><USER19> It is really strange to see the world move into the direction of shadowrun...

</comment><comment><USER20> Pretty good concessions from a crypto enthusiast, one of the better or fun libra articles I've read

</comment><comment><USER21> Sure it'll be nice to make easy money off the interest on deposits. And it'll be nice to make money on the analytics that can be run on all the worlds' transactions. Great.

But the biggest pay off is that once consumers buy into Libra as a thing on its own, the policy can be changed to no longer link it to any basket of currencies, and it can then be issued without that annoying and expensive currency-buying-thing. Just pure profit.

What am I missing?

<comment><USER22> You're missing the part where Treasury agents swarm the Libra offices and arrest everyone for various flimsy charges. If there is one single thing that enrages the government more than anything else, it is denying it revenue.

<comment><USER23> libra is in switzerland

</comment></comment></comment><comment><USER24> "Most talked about in history"? Needs citation... And the hyperbole is constant through the midpoint of the article, where I stopped reading.

<comment><USER25> It's a hackernoon opinion blog post, not the New York Times. And you don't need a citation for something that is clearly meant to be hyperbole.

[Citation needed] has gone from a notation about checking facts to a trendy response whenever someone doesn't like something they read in a blog post or comment.

<comment><USER26> I don't think that hyperbole, "clearly" intentional or not, should be given a free pass by readers simply because it's an opinion piece.

I also found the tone of the article a bit off, and it has nothing to do with whether I agree or disagree with any of it.

</comment></comment></comment><comment><USER27> "Of course, those big company Association members, like Visa and Mastercard, all paid $10 million dollars for the privilege of functioning as validators on the network. Why would they do that? Because they're going to make a lot of money." \--- Long ago I was a management consultant for Amex advising on micropayments (this was decades ago). The consultants answer is always to make a bunch of small bets in a maybe emerging space to preserve optionality. It looks good on a presentation, makes the board reasonably content that they have a future looking strategy, leads to fun follow up work identifying bets which are financially irrelevant to the company if they go to zero, etc...

This isn't some grand strategy of Visa and Mastercard. $10MM to those companies is a write-off FOMO punt. If they had put in 20x that amount I would be paying more attention.

</comment><comment><USER28> Can someone explain what this provides to users over, say, a credit or debit card?

You don't have the rebellious notions of sticking it to traditional banks, not do you have (completely imagined) anonymity crypto fans have gravitated to. You don't have any of the intangibles crypto fans like.

It just seems like Facebook wants a central bank. Who's asking for that?

<comment><USER29> Direct peer-to-peer payments: Those are currently a nightmare when you regularly travel. US: Venmo, Europe: SEPA, China: Wechat, etc. If Facebook manages to sign up enough stakeholders from different countries (that provide gateways between Libra and traditional bank accounts in their respective countries) Libra would provide a viable global alternative to the currently very fragmented market.

<comment><USER30> Can't that be done through easily through Paypal ? (or Western Union, I just never tried)

<comment><USER29> PayPal is not available in a lot of countries (Turkey would be one example). Western Union might work, but the fees are high and there's much more friction. In case you're based in the United States: Would you use Western Union over Venmo / Square Cash. If you're based in Europe: Would you use Western Union over SEPA? Libra has the potential to provide a low friction environment (like Venmo) supported by local companies that's available globally.

And while Libra definitely isn't perfect I think the set of trade-offs they chose are pretty reasonable. Another advantage over Venmo, Western Union, etc. is that the Libra will be run by a multiple independent companies, instead of locking you into a single company which is the case with the currently existing solutions (with the exception of SEPA).

<comment><USER31> > If you're based in Europe: Would you use Western Union over SEPA ?

At least in France, people actually use apps like Venmo for person to person transfers (or cash, or cheques, but they're on their way out).

We mostly use SEPA for either automatic bill payment authorization, or big transfers. No one will start a bank transfer and ask for their friends IBAN to pay back two beers.

</comment></comment></comment></comment></comment><comment><USER23> > By pegging it to a flurry of other currencies they've started the planet > down the path of ditching the dollar as the default world currency.

That's probably false. FB's coin will be at the mercy of the Fed and ECB, and most likely will be an equal or worse choice than any of the fiat currencies in the basket , considering central banks move in concert these days. It doesn't seem FB will pose any real threat to central banking unless they unpeg their currency.

<comment><USER32> >FB's coin will be at the mercy of the Fed and ECB

Only if the currency flows out of traditional Fiat and into Libra don't substantially affect currency prices or the effect is more or less universal.

For instance, if the euro loses 10% value in a given period of time while 3 other equally weighted currencies are relatively stable, libra would lose ~2.5% value in that time. Given the low risk this seems like an obvious hedge if you are heavy in euro, and momentum could easily snowball.

<comment><USER23> it could also work the other way, e.g. that the basket loses more than the USD . I dont think overall there is any benefit , but maybe there is overall reduced volatility or risk. I don't know if the central limit causes a reduction or increase of risk here. It seems like the index fund of currencies.

</comment></comment></comment><comment><USER33> When people say _Cyberpunk_ w.r.t crypto, do they actually mean _Cypherpunk_? Or can someone explain what the difference is?

<comment><USER34> In this case, I think the concern goes:

FB exerts increasing control over, and insight into, financial transactions. Alongside excessive insight into most other aspects of personal lives. The result becomes the sort of MegaCorp that cyberpunk novels are built off of. Except, you know... I don't think William Gibson ever expected the future megacorp to have sprung up from an undergrad pivoting his Hot or Not rip-off.

<comment><USER35> ...Or, maybe William Gibson DID, but he hasn't published the prequel novel yet!! ;-)

</comment></comment></comment><comment><USER36> Facebook is simply making another private scrip. They're turning IMF SDRs into a private currency. Prior to this crop of entrepreneurs, when I read about scrip it seemed always to be in connection with alleged violation of law, I think legal tender laws. But, who knows, this may turn out swell.

</comment><comment><USER37> Libra shows what crypto and in particular blockchain is really for: allowing global megacorporations to start their assault on the nation state. It's pretty critical we undo this, while the nation state still has its monopoly on the legitimate use of force.

<comment><USER38> Why do we need nation states?

<comment><USER39> Nation in nation state is pretty recent addition and already dying off (fortunately), but the state owing allegiance to its citizens (ever imperfect) is better than slide back to feudal-authoritarian corporation that is in no way on the hook for anything towards the common man.

<comment><USER4> At least you can choose the corporation you want to deal with, unlike the nation state you live in.

<comment><USER40> Just like choosing your cable company... or wait, that's chosen for you based on where you live. Hmm.

<comment><USER41> > chosen for you based on where you live

That's right. By the government [0][1].

[0] [https://www.wired.com/2013/07/we-need-to-stop-focusing-on- ju...](https://www.wired.com/2013/07/we-need-to-stop-focusing-on-just-cable- companies-and-blame-local-government-for-dismal-broadband-competition/)

[1] [http://blogs.reuters.com/jackshafer/2014/02/19/whos- afraid-o...](http://blogs.reuters.com/jackshafer/2014/02/19/whos-afraid-of- comcast/)

</comment></comment></comment></comment></comment></comment><comment><USER42> At the end of the article the author is somewhat hopeful that some floss alternative will catch on, eventually.

What happened to MobileCoin that Moxie was advising? When will it be integrated to Signal?

<comment><USER43> A cryptocurrency on top of SGX right?

</comment></comment><comment><USER44> Where to begin. This article is full of big words and drama. I've been reading through the whitepapers and discussions and there seem to be an awful lot of people reading all sorts of things in this stuff. What worries me is that it mostly is people responding to interpretations rather than the raw facts. Big dramatic outcomes make for awesome blog articles. But that doesn't mean it's the only outcome; or even the likely outcome.

I try to look at this a bit more rationally. Given that blockchains have grown economically in the last few years for reasons that you may or may not agree with philosophically, morally, etc., it is not surprising that existing entities with economic wealth are looking to get in on the action. From this point of view, what Libra is doing is entirely unsurprising.

From a technical point of view, what Facebook is doing with Libra is cherry picking what seems to work in the market. Consensus models seem to work for the likes of Ripple, Stellar and a few others. There are a lot of people who object against this model for all sorts of reasons. But it undeniably works and scales quite well. A system this ambitious needs to scale. It's not optional.

I don't really see how Libra could have picked anything else given the current state of the art. Mining seems a dead end in terms of scalability and off by orders of magnitude from where it needs to be. There are lots of technical issues and even when it works, things like 50% attacks, insane energy consumption, etc. make this a non starter. Ethereum has been trying to switch to proof of stake for some time now and the are also trying to introduce sharding. Maybe this is fixable, but the reality is that they are nowhere close to shipping something that scales by the time Libra intends to open for business.

So, when Facebook decided to do this, building their own platform was a foregone conclusion because what's out there just isn't anywhere near good enough and basing it on consensus algorithms was the only logical choice technically.

The only relevant question is, why is it just Facebook doing this and how long is it going to take for the rest of the world to react? I'm talking about the likes of Google, Apple, banks, the oil industry, anyone with economic resources basically. They'll all want in on the action and not all of them are going to be inventing their own blockchain like platform (using the term loosely here). I doubt they are going to have Facebook have all the fun.

The follow up debate about the legalities and regulations is also going to be interesting. My guess is governments will react slowly and by the time they start making bigger decisions, it will be too late. Once you have a few "too big to fail" type companies doing stuff like this, they are not just going to pull the plug.

So, I expect things will heat up shortly. I think this is a good thing. We need competition of ideas and approaches. If what Libra is doing bothers you, stop whining and do something better. Now is a good time to get started with that.</comment>


Asynchronous Iteration Patterns (in Node.js) - <AUTHOR> http://metaduck.com/post/2675027550/asynchronous-iteration-patterns-in-node-js <comment><USER2> Yes, this is necessary. Now, build up a few more of these patterns, start watching them intertwine with each other in ways that require you to manually interleave them, come to the realization that building your glorious asynchronous stack on top of a fundamentally synchronous language was a bad idea.

In languages that are not fundamentally synchronous, such as Erlang, you do not leap through hoops to manage this. You simply write a function that performs your insertions in the straightforward and obvious way, and the runtime manages it with no blocking at any point.

I actually don't like the frequently-made assertion that "a pattern is automatically a weakness in the language", but it does apply here. As the Node.js community laboriously builds up the patterns necessary to work in this paradigm, recapitulating the work done in numerous other async-on-top-of-sync- language libraries, it probably is worth keeping the assertion in mind. You shouldn't even have to _think_ about this, let alone argue which way is the best way to do it.

(Somebody modded this down. Maybe I should make it clear that I'm actually speaking from experience on another asynchronous project written in Perl on top of glib's asynchronousness, which isn't fundamentally different from Node.js'. I'm not speculating, I've been on the receiving end of this complexity explosion. It _will_ happen.)

<comment><USER3> _I've been on the receiving end of this complexity explosion_

Count me in. Been there with Twisted and (partly) EventMachine.

Imho node should really abstract this away before the eco-system turns into a giant spaghetti ball. Of course you can't bend javascript into a concurrency model as elegant as erlang's. But co-routines or a similar abstraction is urgently needed at least for the code that the users end up writing.

On a related note; I recently switched to coffeescript in an effort to bring my (still small) node codebase back into a half-way readable state.

The simple act of removing most curly brackets had an astonishing impact on readability. I still have to reason about callback chains, but at least I no more have to wade through half screens full of closing brackets while doings so.

That observation was a bitter-sweet reminder of what I'm (willfully) getting myself into with node - all the while keeping my fingers crossed that this wart on an otherwise beautiful environment will be improved asap.

<comment><USER4> A long time ago I convinced or at least started the ball rolling on getting coroutines added to node.js. Now when they finally were added, it was done in what I would call a very wrong fashion. Coroutines could have events pushed to them without being yielded to (there needs to be a guard). Of course the reentry issue is just as bad as the one being solved so I think it was written off as a horrible idea and never returned to.

Of course, it didn't have to be that way if they had proper event triggering semantics. I find very little hope of the community returning to this issue though. Not that it's the only way to solve things... but it would have been a nice balance IMO. (and I still hold that coroutines can be done cheaply... at least as cheaply as event sources if not more)

(Update: to clarify on proper coroutines on node, each needs to be able to iterate on an independent tick loop rather than allow preemption from EventEmitter#emit)

</comment></comment></comment><comment><USER3> This is a great demonstration of the fundamental issue with node. His code goes from:

       function insertCollection(collection) {
         for(var i = 0; i < collection.length; i++) {
           db.insert(collection[i]);
         }
       }

To this:

      function insertCollection(collection, callback) {
        var coll = collection.slice(0); // clone collection
        (function insertOne() {
          var record = coll.splice(0, 1)[0];
          try {
            db.insert(record, function(err) {
              if (err) { callback(err); return }
              if (coll.length == 0) {
                callback();
              } else {
                insertOne();
              }
            }
          } catch (exception) {
            callback(exception);
          }
        })();
      }

Hopefully this article will work as an eye-opener for anyone who was not yet convinced that node badly needs a concurrency abstraction.

<comment><USER5> First, why wrap your second example in try {} catch {} but not the first? The second example (final example from the article) seems like it was intentionally made more complicated to prove its point, but it could just be unfamiliarity. Node idioms are just _different_ from other environments and it takes time to get a good feel for them.

(Edit: noticed that the article does it this way.)

How about just:

        function insertCollection(collection, cb) {
            if (collection.length === 0) cb(null);
            else db.insert(collection[0], function (err) {
                if (err) cb(err)
                else insertCollection(collection.slice(1), cb)
            }
        }

That's hardly much more complex, and as a bonus won't lock up your whole program while db.insert() is working. You could use something like my own library Seq() too:

        var Seq = require('seq');
        function insertCollection (collection, cb) {
            Seq.ap(collection).seqEach(function () {
                db.insert(c, this);
            }).seq(cb).catch(cb)
        }

That is, if you actually want the inserts to go sequentially. Usually you want them to go in parallel with say a maximum of 10 pending requests:

        var Seq = require('seq');
        function insertCollection (collection, cb) {
            Seq.ap(collection).parEach(10, function () {
                db.insert(c, this);
            }).seq(cb).catch(cb)
        }

I don't see any "fundamental issue" with node here. It's just a very new ecosystem and the idioms and libraries are rapidly evolving.

<comment><USER3> _why wrap your second example_

 _That's hardly much more complex_

Well, sorry to be snarky, but you couldn't have supported my point better.

Both you and the article author (where the code snippets are from) missed this critical detail during the first iteration. And not on some complex, esoteric problem but on one of the most basic language constructs.

I blame neither of you, I only ask that we please not discount the extra complexity.

<comment><USER5> Ah, your point makes much more sense now. Yes, the author had some overly complex examples, but I'm optimistic about using user-space libraries to handle flow control without having to add new language primitives.

</comment></comment></comment></comment><comment><USER6> You'd overflow your stack after inserting 600-700 records:

<https://gist.github.com/845874>

</comment><comment><USER7> I posted this as a comment on the blog post, though I would share it here.

This is awesome that you wrote a post on this, it is an important building block to proper node.js coding. I know I had trouble with it.

There is another way to handle asynchronous iteration, while similar to what you have done, gives a bit more flexibility and is abstracted out so you can use it anywhere.

<https://gist.github.com/b5af7369ec9939ab7d94>

This is using code from a script of mine as an example, but it should be pretty easy to see the pattern.

Here is your above serialized example with the above function I just showed you:

<https://gist.github.com/26bda51358610667f9f3>

\---

On a side note, I wanted to say that people hell bent on turning node.js into another language should just use that language. There is nothing wrong with the way node.js handles asynchronous code, and really keeping everything asynchronous instead of building in stuff to fake synchronous code is bad for node.js and the whole ecosystem. It promotes bad habits and bad code. If you can't handle callbacks or events, then maybe you should go back to using whatever you are more comfortable with, or write your own abstractions.

<comment><USER8> Your last paragraph comes off as rather dismissive. How does abstracting away the control flow promote bad code? Programers should only need to worry about the control flow of their program when they absolutely must (which is pretty rare) otherwise the compiler (or interpretor) should be able to take care of those details. Its not that people can't handle callbacks or events, its that they should not have to for most of the things node forces you to use them for (everything, all the time).

<comment><USER7> Granted it was a bit dismissive, but it is a common issue of people coming into the node.js community and saying it needs this or that. One main thing being that you shouldn't have to deal with callbacks/events. Now I think everyone is entitled to their own opinion on how things work, but the powers that be and the majority of senior node.js developers agree that the way it is handled is probably the best for now. Removing that control or mucking up the core of node.js so people can code like they do in other languages is not a good thing.

I know people like node.js and want to make it better in their own way, but I feel the course it is on is the best course for right now. It might add more cruft for developers, but there are plenty of abstractions that make it simple if you choose to.

</comment></comment></comment><comment><USER9> Here's how this looks in twisted (handling exceptions, capturing (but ignoring) outputs, etc...):

        @defer.inlineCallbacks
        def insertCollection(collection):
            for ob in collection:
                yield db.insert(ob)

...as much as people talk about the complexity of twisted with respect to async programming, they've really figured it out over the many years of the life of the project.

I agree with substack that you can do this without changing the language, but you do have to get something usable to people at some point.

I think most people who write any code in node.js run into this issue. I am a casual user, but ran into it a couple of days ago and did some research to find that there are many third-party modules I could bring in to do a for loop, but nothing built-in. The old way of doing this in twisted (manually managing deferreds) really turned a lot of people off. By the time twisted got inlineDeferreds and inlineCallbacks, people already had their impressions of how difficult things are.

I still think node.js is fun and viable, but it does need a for loop.

</comment><comment><USER10> Interesting article - I really liked the updated example at the very end, demonstrating a new pattern (for me) for handling exceptions that get thrown by wrapping the DB inserts in their own function.

</comment><comment><USER11> "Here we are using tail recursion to keep inserting the records."

Correct me if I'm wrong, but I don't think he means tail recursion. It's recursion, yes. But does tail recursion even make sense in an asynchronous setting?

<comment><USER12> He even mentions that it would blow up the stack ... so, no TCO is applied, which does not exist in javascript (at least not in V8). But tail recursive it is, as the recursion is the last statement. What he implements in the variation is a kind of pseudo-trampoline through setTimeout ...

</comment></comment><comment><USER13> Abstractions are absolutely necessary imo. Code like that is too long to be easily maintainable.

[http://groups.google.com/group/nodejs/browse_thread/thread/c...](http://groups.google.com/group/nodejs/browse_thread/thread/c334947643c80968/8d9ab9481199c5d8?show_docid=8d9ab9481199c5d8)

Also, that guy is responsible for nodetuts, which I'm very thankful for!

<http://nodetuts.com/index.html></comment>


Unofficial Github Cards - <AUTHOR> https://github.com/lepture/github-cards This is the unofficial GitHub Cards. It has cards for your GitHub profile and cards for your repositories. <comment><USER2> Here is the project's home page with examples: [http://lab.lepture.com/github- cards/](http://lab.lepture.com/github-cards/)

</comment><comment><USER3> What's the difference between a card and a widget [1]?

[http://www.newmediacampaigns.com/blog/a-beautiful-jquery- git...](http://www.newmediacampaigns.com/blog/a-beautiful-jquery-github- widget)

<comment><USER4> I think they are synonymous currently. I wouldn't mind seeing Cards used for "static" things and Widgets for more interactive... widgets.

</comment></comment><comment><USER5> May I offer a minor note? More correct English would be "Available for hire" rather than "Available for hiring".

These look great. Kudos!

<comment><AUTHOR> Thanks, I've fixed that.

</comment></comment><comment><USER6> Nice, the design reminds me of the twitter 'cards' which embed tweets on blog posts and such. Which is great because it is already a familiar design paradigm and I'm used to it. Great work!

</comment><comment><USER7> This is an awesome idea. Totally looks good and I'd definitly add something lile that on my portfolio. I hope this will get attention by the gh guys :)

</comment><comment><USER8> Example, as there is no screenshot: [http://jsfiddle.net/nPavb/](http://jsfiddle.net/nPavb/)

<comment><AUTHOR> Actually, there is a demo: [http://lab.lepture.com/github- cards/](http://lab.lepture.com/github-cards/)

</comment></comment><comment><USER9> I'm amazed that there is no demo or screenshot for something so clearly awesome.

<comment><USER10> It's in the repo description: [http://lab.lepture.com/github- cards/](http://lab.lepture.com/github-cards/)

</comment></comment><comment><USER11> Really nice work, good idea, it seems like a social network for devs

</comment><comment><USER12> Aren't API requests limited to 60 per hour if Unauthenticated?

<comment><AUTHOR> That is true. [https://github.com/lepture/github- cards#limitation](https://github.com/lepture/github-cards#limitation)

</comment></comment><comment><USER13> Awesome!! It can embed in blog posts to show project info. I hope github should release a official widget.

</comment><comment><USER14> That's what I need! Awesome!! @lepture, may change the project domain?

</comment><comment><USER15> Wow, I love it

</comment><comment><USER16> Nice job, I like it

</comment><comment><USER16> Nice job</comment>