We Found a Way to Increase Voter Turnout in Texas, but Texas Isn't Interested - <AUTHOR> https://medium.com/s/story/texas-rejected-1000s-of-legally-submitted-voter-registration-forms-days-before-the-deadline-d4dbc7fa8504 <comment><USER2> Disappointing. Democracy doesn't work if every voter doesn't get an opportunity to vote. I guess the people who specialise in suppressing turnout don't care.

The reluctance to let people register to vote is understandable, if your allegiance is to your party before your country. I suppose they rationalise it by convincing themselves that what's best for the country is for their party to be elected, rather than a free and fair election. Or maybe they tell themselves "I'm sure the other side uses similar tactics". Or maybe they just don't care.

<comment><USER3> Democracy doesn't work even when people get an opportunity to vote (unless the vote is 2-options, one round): See [https://en.wikipedia.org/wiki/Arrow%27s_impossibility_theore...](https://en.wikipedia.org/wiki/Arrow%27s_impossibility_theorem)

But it works even worse if voters don't get to vote. True.

<comment><USER4> For readers who may encounter the Arrow's Impossibility Theorem for the first time, its conclusion is shockingly true but also doesn't prescribe doom. There are reasonable alternative voting systems that don't run into the same "Impossibility" problem [https://ncase.me/ballot/](https://ncase.me/ballot/)

<comment><USER5> Sure, they don't run up against /Arrow's/ impossibility theorem, but Gibbard's 1978 theorem shows that "Any straightforward game form (deterministic or not) is a probability mixture of game forms each of which is either unilateral or duple."

(For an explanation of what that means, see : [https://politics.stackexchange.com/a/14245](https://politics.stackexchange.com/a/14245) )

Edit: though, if I had to recommend one, I'd probably either recommend "ranked pairs" or something exotic with a substantial deal of randomness.

Or, really, maybe I'd advocate that the primaries use ranked pairs, and that the general use FPTP (or something very similar) because it is easier to understand the mechanism, so easier for people to trust it / keep results seen as legitimate, and because parties narrow down the options to 2 for the most part anyway, and all the usual systems are the same once it gets down to two candidates (in random ballot voting, it is still different though)

</comment></comment></comment></comment><comment><USER6> More interesting are the county responses:

Dallas County said it would follow the directive of the state and notify affected senders that they need to mail in a signature (without needing to resubmit entirely), even though they had already processed ~800 of the registrations as valid.

Travis County (Austin) responded to the Secretary of State that no– these are valid registrations, and counted them as such.

The bulk (>50%) of the registrations were in Austin, IIRC. Both of these counties are liberal strongholds in Texas. If Beto manages to win against Cruz by a margin of a couple thousand votes, I imagine the Cruz campaign will make this a much bigger issue than it is (and, imo, deservedly gain the title of trying to win by voter suppression).

[https://www.dallasnews.com/news/2018-elections/2018/10/04/tr...](https://www.dallasnews.com/news/2018-elections/2018/10/04/travis- county-going-secretary-state-says-will-accept-voter-registrations-filed-using- online-tool)

<comment><USER7> It could be an issue, though. By doing a partial roll-out, you're naturally making it easier for some groups to register. This could be partisan, and it could be innocent. But it might be best to avoid the appearance of impropriety.

</comment></comment><comment><USER8> Sounds like they found a corrupt official. Is anyone planning a lawsuit? If not I doubt a medium post is going to do the trick.

Seems a classic case of idealistic technologists running into squishy and yes, sometimes corrupt human systems they aren't prepared for.

Not excusing the behavior of the official, but I really hope this goes further than an angry blog post.

<comment> dj-wonk The articles addresses this:

> Vote.org strongly disagrees with the Secretary of State and is exploring all > avenues of recourse. We suggest that the Secretary of State implement Online > Voter Registration, a common sense solution to increase voter registration > rates while reducing costs. There are no downsides to online voter > registration — unless, of course, your goal is to suppress voter turnout. We > hope that this isn't the case, and look forward to Texas joining the 38 > other states that have taken steps to secure and modernize their voter > registration solutions. In the meantime, we will do everything in our power > to increase voter turnout in Texas — including pursuing legal action, should > it come to that.

<comment><USER9>
      There are no downsides to online voter registration

... except that it makes it impossible to prosecute voter fraud.

<comment><USER10> Why is that?

</comment></comment></comment></comment><comment><AUTHOR> Presidents can wet sign bills into laws using an autopen[1]. Would it be possible to sign a form on your phone and have an autopen wet sign the form?

[1]: [https://www.nytimes.com/2011/05/28/us/politics/28sign.html](https://www.nytimes.com/2011/05/28/us/politics/28sign.html)

</comment><comment><USER11> Genuine question: with online voter registration, where is the check for voter eligibility? Actually, when is this supposed to happen in any voter registration? When I registered and voted in CA in 2016, I never had to present any form of ID. Is this the intended system?

<comment><USER12> > where is the check for voter eligibility?

Two things. In California they either mail you a ballot to your address. Or you have to present as a warm body at your polling place.

Beyond that California's politicians unlike Republican controlled states have no interest in preventing people from voting. For instance San Francisco recently began registering non-citizens to vote for the city's school board.

<comment><USER9> How does mailing a ballot to an address "validate" that the person voting that ballot is a citizen?

<comment><USER13> That gets checked when you register.

</comment></comment></comment></comment><comment><USER14> Sending a photo of your signature so it can be transposed onto a document by a third party without power of attorney doesn't sound like a great idea to me. Political motivations aside, I think I agree with Texas. This is a bad idea.

<comment><USER15> Is it all that different from DocuSign's entire business model? I'm curious if the state of Texas recognizes agreements signed via DocuSign.

<comment><USER16> You can use DocuSign for agreements and the state will recognize them. There are only a handful of exceptions where e-sign is not allowed in Texas.

In addition to business documents, I have used DocuSign to sign county and state government documents in Texas.

</comment></comment></comment><comment><USER17> > _Any reasonable voter would interpret "you can fax in your form and mail a > copy" to mean that you can do precisely that._

True (and it should be obeyed as written)... but it's also hard to imagine the purpose behind mailing. The fax is already a copy!

Every other circumstance where I've had to mail something in addition to faxing/e-mailing it's _always_ been because the original signature was required. Just using common sense, it wouldn't be surprising if the wording is a mistake where "original" was intended. But hey, unless they fix it, they've got to obey it, right?

</comment><comment><USER18> Not surprising insofar as we Texans require a little thing called verified identity to vote. I have heard that the majority of those registrations were invalidated because they could not be matched to real people living in Texas cities.

</comment><comment><USER19> I dunno... It took me all of 15 minutes to get TX license _and_ voter registration (too bad they do not share it across the board, and I am getting bombarded with all those fake "surveys" about yet another stupid California proposition XYZ). Granted, it was in a more civilized part of TX, but is there really an actual problem with registering to vote?

And did anyone look at TX code to check that submissions from a third party rather than the actual applicant are valid?

<comment><USER20> It's well-known that younger generations tend to put off or not do things if they can't do it online. Also, not everyone has access to the same resources you do. If you work 60 hours a week and don't have a car and it takes you an hour by 3 buses to get o the nearest library or DMV, it's going to be hard to get registered. Maybe you don't even have a drivers license and can't get one. Maybe you don't know your social security number and haven't been able to get access too it. There are any number of things that make this hard, just because you're privileged enough not to have to deal with them doesn't mean everyone else is.

<comment><USER21> I am all for voter turnout, but chalking it up to millenials being too lazy to register is pretty lame.

<comment><USER20> No one actually did this, you're focusing on the first sentence of a longer reply. It doesn't "chaulk it up" to that at all.</comment></comment></comment></comment>


In 2011 Google Spent $1.9 Billion Acquiring 79 Companies - <AUTHOR> http://www.flarevine.com/2012/01/27/in-2011-google-spent-1-9-billion-acquiring-79-companies/

<comment><USER2> To save someone else a few seconds with a calculator, that's an average of just over 24 million per acquisition. Not that each was acquired for an equal amount.

<comment><USER3> What about Motorola Mobile that Google took over? Is that part of this $1.9 bilion?

<comment><AUTHOR> The $1.9 Billion Google spent on acquistions excludes the Motorola deal. As the Motorola deal is expected to close sometime in 2012, so their $12.5 Billion acquistion would be included in the 2012 numbers - of course this is still up for regulatory approval.

</comment></comment></comment><comment><USER4> Here's why acq-hiring is a disaster. Let's say FatFrog is the acquirer and BuzzFly is the acquired.

BuzzFly's founders usually have earnouts ("golden handcuffs") and thus have an incentive to stay, but merging them with FatFrog's executive hierarchy is difficult and rocky. They tend to be resented, especially if there's an age difference (i.e. the BuzzFly founders are 25 and FatFrog execs are 40+). The executive merging is difficult in acq-hires because no one will take orders from a 26-year-old whose IUsedThisToilet virtual bathroom graffiti app just got bought for $87 million.

BuzzFly's top programmers, who are by this point the vitality of the organization, don't have the huge amounts of stock that would be incentive to stay. Their company also just got acquired so this is a _great_ time to go for a major external promotion, especially since titles in a soon-to-be-eaten company are pretty easy to self-upgrade. So the top engineers face the "decision" between (a) use the transient "hotness" of their startup name to get a huge promotion to a VP-level role in another company, or (b) become some subordinate Software Engineer, Level 4.B.ii at FatFrog while watching their original work (whatever remains of BuzzFly) goes into maintenance mode... and has to be rewritten in C++.

The weakest engineers, who never could have gotten jobs at FatFrog, but were able to get onto the BuzzFly train when Buzz was desperate, stay along.

So the actual result of an acq-hire is that the execs are rejected like a bad transplant, the best engineers bolt, and the worst ones stay on board.

<comment><USER5> Here's why your post is a disaster in terms of faulty assumptions.

* Most acquired founders aren't made _execs_. Most end up as Product Managers or team leaders.

* The weak engineers from acquired companies can't sneak into google. They must go through the typical Google interview process.

 _use the transient "hotness" of their startup name to get a huge promotion to a VP-level role in another company_

* ^ Sorry but this is just unheard of. Getting VP-level role at top companies is very hard and if a developer of an acquired company could score a VP-level role elsewhere after the acquisition, he could probably do so before the acquisition. It's got little to do with acquisition. The guy must just be good.

 _no one will take orders from a 26-year-old whose IUsedThisToilet_

* ^ You are using the most extreme _stereotype_ of what is acquired. Now, I understand that your example of IUsedThisToilet wasn't mean to be taken literally but I question why you'd make up a name than use one of many examples from an actual acquisition. Of course, making up a name like IUsedThisToilet helps you with your argument. Only it is not rooted in reality.

<comment><USER6> _Getting VP-level role at top companies is very hard and if a developer of an acquired company could score a VP-level role elsewhere after the acquisition, he could probably do so before the acquisition_

The scenario is not "I was engineer #3 at a startup which was just acquired by Google. I'll take a corner office at Facebook now, please." It is "I was engineer #3 at a startup which was just acquired by Google. Hello, Mr. VC. Sure, I'll join that company you just funded as VP of Engineering."

This second one, ahem, does not strike me as supremely implausible.

<comment><USER5> Even in that case, I am not aware of many instances where a developer being part of an acquisition helped him _significantly_ in acquiring a VP position at a start-up.

Any start-up worth their salt is very deliberate in hiring. Now, if you don't care about where you are working and are merely chasing titles, I'd argue you can get a VP position without needing to be part of an acquisition.

</comment></comment></comment></comment><comment><USER7> And yet that $1.9B is only a fraction of Google's cash reserves. And Apple's is nearly $100B. Corporations are hoarding cash at record levels. As of last January, the top 17 US corporate cash reserves amounted to nearly half a _trillion_ dollars. It's not unreasonable to speculate that corporate hoarding is contributing to our flat economy, when you consider how that cash would be multiplied if it were turned loose. Companies are holding onto cash because they're afraid of slow growth because of high unemployment, which becomes a self-fulfilling prophecy when they don't invest in new business and hire more people.

It also casts doubt on claims that raising corporate taxes will hurt the economy. If companies aren't spending any of the cash they already have, how will giving them more to stuff under the mattress help?

<comment><USER8> That headline meme sounds impressive: corporations hoarding cash.

Until you dig deeper and find out that US corporations are accumulating debt at the fastest pace in world history. Their cash is required to continue to offset the massive debt being acquired. If interest rates go up at all in the next ten years, bankruptcies will skyrocket. A lot of companies are being irresponsible with debt right now because they can issue it at hyper low rates.

<comment><USER7> Is there a good source for historical data on this? The best I could find goes back to 1996, and while the amounts issued in 2006-2010 are high, they don't show the steep hockey-stick climb that we saw in the mortgage crisis, for instance.

[http://webcache.googleusercontent.com/search?q=cache:ksi3L1y...](http://webcache.googleusercontent.com/search?q=cache:ksi3L1yHTK8J:www.sifma.org/uploadedfiles/research/statistics/statisticsfiles/corporate- us-corporate-issuance- sifma.xls+US+corporate+debt&cd=11&hl=en&ct=clnk&gl=us&client=firefox-a)

</comment></comment></comment><comment><USER9> And that's only counting the acquisitions that closed...

<comment><USER10> Well obviously. You could say the same thing year over year. If we were counting the ones that were started and not yet completed, it would just subtract from the amount of the next year.

</comment></comment><comment><USER11> I don't think this will continue into 2012, with the way Larry is focusing on the core products.

<comment><AUTHOR> It will continue in 2012 as in the filing Google said, _"Acquisitions will also remain an important component of our strategy and use of capital, and we expect our current pace of acquisitions to continue."_

</comment></comment><comment><USER12> It also spent spent $9.7 million on lobbying in 2011 (<http://wapo.st/yanxMo>) The powerful is getting even more powerful. Next stop 'too big to fail'.

</comment><comment><USER13> 2011 was the year that Google gobbled up drop.io, and buried it deep in the room known as "Stuff We'll Never Use, And Neither Will Anyone Else".

NOTE TO SELF: Startup Idea: Create a new drop.io, and combine it with some of the features of MegaUpload. Call it MegaDrop.

<comment><USER14> Facebook brought drop.io in October 2010

<comment><USER13> Thanks for the correction. I had this nagging feeling that it might have been 2010, as I tend to lose track of time, and I could have sworn that drop.io's announcement said "Google". Anyway, we could use another drop.io, for people who don't want to be tied to Google's ecosystem.

<comment><USER14> A new drop.io would be awesome, it was a very good product and I haven't found anything else like it yet. Has anyone found anything similar?

<comment><USER13> What were the main features that you liked about it, but haven't found elsewhere? I liked being able to email files directly to the drop. I suggest that we make a short list of awesome features, and maybe someone will take up the cause.</comment></comment></comment></comment></comment>


Failure of Anti-Drone Tests Exposes U.S. Airport Vulnerability - <AUTHOR> https://www.bloomberg.com/news/articles/2018-12-21/failure-of-anti-drone-tests-exposes-u-s-airport-vulnerability <comment><USER2> What is the procedure if a large flock of birds decide to loiter at an airport? I would think birds are just as dangerous and a drone for aircraft.</comment>


How Atari Plans to Bring Itself Back From the Dead - <AUTHOR> http://www.wired.com/2014/06/atari/

<comment><USER2> And they might be late again, but we'll see.</comment>


Show HN: FortyQ – Answering any legal question in 42 minutes - <AUTHOR> https://fortyq.com <comment><AUTHOR> FortyQ is answering any legal question in the UK in 42 minutes flat.

The motto is 'if it can be done in 42, we will do it in 42'.

We can help with US questions too, albeit on a case-to-case basis.

The dream is to go beyond, and create the world's biggest curated knowledge base.</comment>


London Stock Exchange: What really went wrong - <AUTHOR> http://www.computerworlduk.com/news/it-business/3263747/london-stock-exchange-what-really-went-wrong/?cmpid=sbycombinatorlking

<comment> Vic-nyc Short summary of the article. The outage was caused by the introduction of new requirements by LSE for end-of-day price reporting. The data vendors were the ones who had the responsibility to adhere to these new rules, by making changes to their systems. Unfortunately, the "big bang" approach to the switch-over proved fatal.

From the article:

"I am astonished they did not run the systems in parallel," said a source at one of the major data vendors. "At least for a few weeks or months as necessary."

The LSE argues that it gave plenty of proper testing and preparation time, and that the vendors should have been ready. It has been working with them to resolve the issues.

<comment><USER2> Why am I reminded of Douglas Adams? "All the planning charts have been on display at your local planning department in Alpha Centauri for 50 of your Earth years, so you've had plenty of time to lodge any formal complaint and it's far too late to start making a fuss about it now..."

<comment><USER3> I seriously doubt the plans were that far away. The transition was not announced the day before after all.

</comment></comment></comment><comment><USER4> Remember when there were some issues with LSE's Windows-based solution? You had Linux/FOSS fanboys all over saying that this was obviously the fault of Windows and what not and that Linux would fare much better.

I'm wondering what sort of response they will have to this and why they weren't as eager to report this to social news-sites as they were with the Windows-story.

Maybe this will finally make them realize that shitty (design-)decisions can be made on any platform and for complex software the underlying OS/kernel doesn't really matter all that much. We can only hope.

<comment><USER5> What happened with the previous system was that it dragged on for years and years, with many expensive delays and poor technological decisions. By contrast, the Linux system is up and running much faster.

So yeah, you can try to spin it as 'Linux is just as bad as Microsoft', but if one takes 5 years and is a complete disaster, and the other one takes 2 years and has a few hiccups, I know which one I prefer.

Disclaimer: as far as I could care, Windows and Linux can both go and die in a fire, so you know I'm neutral :D

\-----

The root cause of the problem the previous one had if I recall correctly was that they had some CTO come in who didn't know anything except the Microsoft way of doing things. So, naturally, they ended up picking Microsoft for everything. Problem is, the Microsoft sales reps promise you the world and whisper sweet nothings in your ear until you give them your virtue, but once they have ravished you they roll over and go straight to sleep.

<comment><USER6> > So yeah, you can try to spin it as 'Linux is just as bad as Microsoft', but > if one takes 5 years and is a complete disaster, and the other one takes 2 > years and has a few hiccups, I know which one I prefer.

The point being made is that the problems in both the previous and current systems were probably nothing to do with the underlying OS/platform, but because of some incompetency in the design or implementation of this specific project.</comment></comment></comment>


Virtual pool, real-world interface - <AUTHOR> http://hackaday.com/2009/09/21/virtual-pool-real-world-interface/

<comment><USER2> Neat. I worked on a computer vision version of the same general concept. My version took into account 3-D information and also supported spin ("english").

This was the only thing I've tried to get published. I presented at ICME 2008.

I have a silly little site here: <http://mixedrealitybilliards.com></comment>


Why I'm leaving the R community - <AUTHOR> http://ironholds.org/blog/down-and-out-in-statistical-computing/ <comment><USER3> I wrote a reasoned, but critical, response to this guy and he edited my Disqus response with a childish personal attack before approving it. He justified it by saying my Disqus post history was about gaming and telling people they were overreacting. Take from that what you will.

<comment><USER4> Can you tell us more about what you wrote and what was edited? If the author is lying, it should be brought to light.

<comment><USER5> I suggest you read [http://www.examiner.com/article/wikipedia-s-new-editing- soft...](http://www.examiner.com/article/wikipedia-s-new-editing-software- gets-failing-grade) (especially from "His name is Oliver Keyes"). Our herald of sensitivity was previously known for outburst like

        [12:19:35 A] <Sophiie> hi, can a page be undeleted just to see what it once was?
        [12:19:47 A] <Ironholds> Sophiie, fuck off and die
        [12:19:50 A] <Ironholds> thank you

TBH, he looks more and more like a troll, and pretty talented at shit stirring. And removing people like that from your projects is best done early.

<comment><USER4> Ah, yeah. I understand perfectly why the decision "we're better of without you, bye" took like ten minutes.

</comment></comment></comment></comment><comment><USER6> Code reference: [https://github.com/wch/r-source/blob/b156e3a711967f58131e23c...](https://github.com/wch/r-source/blob/b156e3a711967f58131e23c1b1dc1ea90e2f0c43/src/library/utils/R/str.R#L57)

Personally It seems a bit of stretch to call that "exclusionary as all hell".

<comment><USER7> Crikey seeing this in context really brings home the triviality of this whole thing. The only reason somebody would be offended by this would be if they knew what it meant in the first place - it's plausible that it's accidental. Yes there is a case for making the change but in doing so you're acknowledging that it was a mistake in the first place (because an observer attributed it as such) and you're setting a precedent - are you going to have to attend to every prude that objects to anything? Anybody who is smart enough to read code should be smart enough to see this for what it is.

IMHO if this guy mounted a campaign on this issue banning was appropriate if a little heavy handed. A subtle talking to might be better but raising a bug is a matter of record, and that makes things a little trickier.

</comment></comment><comment><USER8> It's worth reading the comments on the article, as the author explains his position further:

      I am not saying "duncan is a sexist". I am not saying "this
      language is sexist". I am saying "I suspect the end result
      of decisions like this is to perpetuate a bias away from
      the inclusion of marginalised groups, including women".

I'm not certain if that's true, but it seems like a reasonable discussion for a community to have. And if the immediate response to that argument is unilaterally banning the bug tracking privileges of the reporter and everyone who commented in favor of the bug, I wouldn't blame anyone for deciding that R is a poisonous community that they they no longer want to be part of.

<comment><USER9> > And if the immediate response to that argument is unilaterally banning the > bug tracking privileges of the reporter

Note that we only know one side of the story. Maybe the author has a history of stirring up drama and coming up with topics not interesting to the rest of the community (i.e. anything other than programming). If so, preventing further impact on the community is exactly the right response.

<comment><USER10> I think you are onto something, he is apparently known to create drama, c.f.:

[http://www.examiner.com/article/wikimedia-foundation-s- olive...](http://www.examiner.com/article/wikimedia-foundation-s-oliver-keyes- stripped-of-administrator-status)

<comment><USER11> If that reporting is accurate (I've no idea or any basis for judging) then yeah, the parent post is amazingly hypocritical.

</comment></comment></comment></comment><comment><USER12> Here is the function in question [1]; it has arguments named "give.attr", "give.head", "give.length", among others. It doesn't seem at all a good idea to rename "give.head" to something else, as it would break the API and it would be inconsistent with how the other arguments are named. The R team devs were unnecessarily rude but the bug report was misguided.

[1] [https://stat.ethz.ch/R-manual/R-devel/library/utils/html/str...](https://stat.ethz.ch/R-manual/R-devel/library/utils/html/str.html)

</comment><comment><USER13> I'm struggling to understand why such a term in a codebase would be offensive. Even if it were intentional (which apparently it's not) I fail to see how it could be considered 'exclusionary', as claimed. Frankly, the author comes off with the baffling sort of self-righteous political correctness which _scares_ me a little in it's reductiveness.

That said, this is obviously not the way to build a community. Kicking people out for this sort of thing sets a bad precedent. If enough people found this offensive to enough to back a change, then maybe it's better to accept that view as legitimate, even if it's not one you hold.

Of course, we only know one side of the story, so maybe there's more to it.

<comment><USER14> My guess would be that they wanted to stop this sort of thing before it becomes a real problem. There have been numerous examples of this kind of "sjw" behaviour influencing and even targeting big open source projects, and people become afraid of it (Sarah Sharp is the only name I can remember at the moment from such an incident). I don't know the people involved though.

</comment></comment><comment><USER15> Imagine if everyone in every culture, using every language on the planet reviewed millions of lines of code and then filed bugs for any word that offended them or could possibly be related to a sexual innuendo.

Was the variable name an accurate description of what it was used for or not? If it was, let it go. If it wasn't suggest a better one.

Opensource software is not the place to enforce your views on society on someone else.

<comment><USER16> My primary opinion on this matter is that "let's _not_ create a drama". Creating a drama is, whether intentional, accidental, unexpected or not, very consuming and basically a lose-lose game. If not creating a drama has a serious implication for the project, the project has to think hard about that, but otherwise (especially like this situation where changing the variable name has no other effect whatsoever) I would just accept that. I think the precautionary measure taken by Mozilla [1] on the Brotli Content-Encoding is an excellent example.

[1] [https://bugzilla.mozilla.org/show_bug.cgi?id=366559#c147](https://bugzilla.mozilla.org/show_bug.cgi?id=366559#c147)

<comment><USER4> But the people can make you do what they want by threatening drama, basically using terror tactics.

<comment><USER17> Presumably if the general reaction whenever someone raised an issue involving bigotry was for everyone to instantly take on board what they were saying, you might be right. From my experience however, that is definetly not the world we live in. To be honest, even if it was, I think you need to draw a line between hypothetically possible and an observation of what actually happens in the world. The real question is, can you point out any examples of 'terror tactics' (in the context given I take this to mean people using bigotry as a reason for change without actually beleiving it is bigoted)? I wouldn't worry till then

</comment></comment></comment></comment><comment><USER18> "exclusionary as all hell" is such an overstatement it's hard to focus on the rest of the message in this post, but the response they got from Murdoch was completely out of line.

I would also be skeptical to contribute when one of the project's leads are so quick to ban and flog a contributor, regardless of their misinformed intentions.

<comment><USER19> While I thought the issue was a little silly at first, the project's response did sound like an overreaction. Though, after reading the comments, I wonder if they were perhaps already familiar with ironholds. The underlying attitude behind this change is awful.

> women do not trend towards [...] an absence of concern for those not of > their background. Men (particularly cis, white men) tend to.

<comment><USER20> I find it ironic that his complaint was of "exclusionary language", when his own language looks like this:

> This does not mean "all men suck". This means "society's conditioning and > understanding of what 'male' means tend to result in a condition of suck". > It's toxic for everyone (including those men. Of who I count myself a > member).

</comment></comment></comment><comment><USER21> This reminds me of a PR merged into swift/master [1]. The PR renamed some "offensive" variables in one of the tests. It was merged almost immediately, even though it wasn't fully tested. We had a blast laughing at the stupidity of it all on Reddit [2].

[1]: [https://github.com/apple/swift/commit/c2b5546512af24e52ed15c...](https://github.com/apple/swift/commit/c2b5546512af24e52ed15c8cd204dc363c5eeeb6)

[2]: [https://www.reddit.com/r/ProgrammerHumor/comments/3veu2t/swi...](https://www.reddit.com/r/ProgrammerHumor/comments/3veu2t/swiftly_abolishing_code_slavery/)

<comment><USER22> I don't really understand what's wrong with using more inclusionary language. I'm so very confused by this attitude.

I mean, I can understand someone not viewing it as particularly important, but you seem to view it as very obviously ridiculous which is an attitude I really struggle to understand.

This seems like a tiny little harmless improvement of the world.

<comment><USER23> It is ridiculous because the meaning of master-slave in this context has nothing to do with exclusionary language and leaser-follower doesn't mean the same.

<comment><USER24> Furthermore, until we start actually running into the thorny issue of computer AI, it's consciousness and the ethical dilemma's surrounding it, the relationship actually _is_ that of a MASTER and a SLAVE.

It's like banning Huckleberry Finn for using the word 'nigger', or Der Untergang because it's about Hitler.

</comment></comment></comment></comment><comment><USER9> Hm... seems like the author was creating unnecessary drama about a topic completely orthogonal to programming, and then complained when s/he was prevented from creating more drama.

These are the people you kind of _want to_ exclude from any community.

</comment><comment> UVB-76 In the comments the author acknowledges the term is not gender-specific, but claims the term is "generally exclusionary"

A "microaggression" not aimed at excluding anyone in particular. Not even an aggression of any kind.

The mind boggles.

<comment><USER4> It's especially confusing because outside the US, sex is usually not considered wrong per se or sinful or whatever.

<comment><USER25> It's usually not considered wrong or sinful in the USA either.

</comment></comment></comment><comment><USER26> Ironholds has a long history of creating drama wherever he goes.

</comment><comment><USER27> To me, the problem this incident is pointing out is the toxicity of code review.

We speak about changing the name of a local variable used four times in the whole codebase. Was this that a big deal? Merge it already and be done with it. Easy way to make people happy to contribute.

Instead of that, people _had_ to comment that change and explain why they don't like it, leading to confrontation, frustration and the departure of a team member. This is so typical.

The worst part in code review is that people are convinced they do the right thing. How being aware of changes and trying to do some peer work could be a bad thing? Well, it's basically commenting over and over other people work, leading authors to mistrust themselves and to the feeling of unfairness. Reading other people code is cool. Commenting it... well, you should think you have a very good reason to do that.

<comment><USER28> Are you proposing that the ability to comment on proposed changes is toxic? How exactly is a group of people supposed to come to a consensus on technical matters without the ability to communicate? Are you really suggesting that certain changes proposed by certain people get special treatment, immunity from discussion, and expedited merging to mainline?

Technical excellence in such an environment is impossible. Nobody's stopping you running a project that way, but if you tried to introduce this kind of discrimination, prejudice, and, well, privileged treatment into a project to which I contribute, I'd fork, and everyone who actually wanted to write code would follow me.

<comment><USER27> I don't get how you come to thinking that reading my comment.

It's not being able to comment that is problem, it's feeling that you _have_ to comment.

<comment><USER28> Your comment calls "code review", the practice, "toxic". You go on to suggest that project maintainers "merge [the pull request] already and be done with it", suggesting that the normal review process not apply to this particular diff. You suggest that there should be a high bar for commenting on other people's code.

Your comment sounds to me like it advocates lowering the bar for merging of external patches. That's a sure way to technical inferiority.

<comment><USER27> > Your comment calls "code review", the practice, "toxic".

Oh also, I think it should be clarified.

I'm not advocating code review is a bad thing in itself and we should stop doing it. I think it could be done better, by internalizing the impact of a comment and measuring its cost before doing it.

I see doing code review as better than not doing it (because you read other people code). I see being moderate when it comes to decide if something is worth commenting as better than the usual practice of considering comments are cheap and we can just comment anything.

</comment></comment></comment></comment></comment><comment><USER29> Homo, bi and heterosexual women and men can give head to each other as a happy adult consensual sexual act.

How the hell is this offensive to anyone?

<comment><USER30> Because I want it to be an offensive phrase.

</comment></comment><comment><USER31> If the author feels they can't be part of a community because of some code containing a suggestively-named (in their particular culture) variable, then that's their choice and more power to them.

The response from this Duncan guy was probably unnecessarily rude, and while I mostly agree with the content of his response, he certainly came across as a bit of a dick.

That said, I fail to see why we should care. A person was part of a community until they had a snit and left it. Okay.

(Edit: As rightly pointed out below, the author was effectively kicked out of their role after complaining about said variable. So fair enough, I'm upgrading Duncan & co. from 'bit of a dick' to 'complete dick who shouldn't be in charge'. In which case we should definitely care about a project's admin abusing their power in that way.)

<comment><USER13> _If the author feels they can 't be part of a community because of some code containing a suggestively-named (in their particular culture) variable_

This is very obviously not an accurate description of events. In reality – author feels (rightly or wrongly) offended, submits a patch to resolve this, and in response is essentially _kicked out_ of a core position.

That's not just 'unnecessarily rude' – it's a stupid and broken way to run a community.

 _That said, I fail to see why we should care_

Because I think generally we want to encourage reasonably welcoming open source communities, and responses like this seem generally disproportionate.

<comment><USER28> > essentially kicked out of a core position [snip] > That's not just > 'unnecessarily rude' – it's a stupid and broken way to run a community.

The project owner was harsh, but I respect his pragmatism. The perpetually aggrieved are never satisfied. Anyone who complains about something as trivial as the variable name in question is someone who lives for attention-seeking and virtue signaling. It's better to immediately and fully separate yourself from that kind of person, even if it involves a short-term reputation hit, than allow that person to gain influence and endanger your project's existence.

<comment><USER31> I do understand why he behaved this way. Look at the recent attempts to coerce various high-profile projects into adopting a particular code of conduct. These attempts invariably introduce identity politics and drama into a previously purely meritocratic community, and result in a huge amount of wasted time and lost productivity.

Regardless, I don't think he went about it the right way. It would have been more effective to simply reject the patch with a note stating that the variable name was appropriate in context (assuming it was so).

<comment><USER28> I wish more project maintainers would emulate the good example Duncan set here. Identity grievance is a terrible disease for an organization to contract, but the prognosis is good with early and aggressive treatment.

</comment></comment></comment></comment></comment><comment><USER32> Very bad reaction from Duncan to revoke access to issue tracker b/c of this. They could have closed/rejected the 'bug report' and all would be fine imho. (If one keeps pestering then it's another matter).

</comment><comment><USER23> Perhaps because I'm not living in the USA and I'm not part of its culture, but to me it seems that there is a very big over sensitivity to anything politically incorrect.

<comment><USER33> I have put a lot of effort in NOT writing a very snarky reply.

The situation is becoming ridiculous. Get over yourselves. The world does not revolve around you.

<comment><USER4> The author is a man called Oliver, so it's even more ridiculous, because he is getting offended for someone else.

EDIT: parent formerly referenced the author of the article as "lady".

<comment><USER33> Yeah, I figured it out pretty quickly and edited. Sorry for not mentioning it. I'm very perplexed by all this sensitivity surrounding us.

<comment><USER28> Virtue signaling persists only because too few of us are willing to speak out against it. The good news is that I've noticed an increasing amount of opposition to political correctness culture in the FOSS world. We're fighting back, and we're winning, albeit slowly.

</comment></comment></comment></comment></comment><comment><USER34> Can anyone explain the sexual reference? I am not a native English speaker

<comment><USER35> I leave you a link to the urban dictionary item for this term: [http://www.urbandictionary.com/define.php?term=giving+head](http://www.urbandictionary.com/define.php?term=giving+head)

</comment></comment><comment><USER36> I can fully understand being upset even though I'd probably reject the patch. It's not the content that is being debated that is sad. I don't mind either position, personally I lean towards the "don't care about so called microagressions in codebases"[1]. The way this request was handled would upset me a great deal though so I can understand why he reacted the way he did. R is cool, sad to see a good member of the community leave.

[1]"exclusionary as all hell" is too religious for my taste. Please change that language.

</comment><comment><USER37> I've met Oliver (Ironholds), Martin (who wrote the code with the dodgy variable name), and Duncan (who banned Oliver and others from the bug tracker for "shit-stirring"). All three of them are smart, delightful people in my experience.

This strikes me as a bit of a storm in a tea-cup, but there is some background context worth noting. R's academic roots have created some interesting cultural aspects within the community. For example, in academia you spend a fair amount of time critiquing other people's work and trying to find flaws. It's perfectly acceptable to trash someone's argument, even to their face when they give a presentation. Once you accept that it's not personal but necessary for research to progress, it's OK, but to begin with its a horrible experience. Outside of academia, this is mostly just awful impolite behaviour.

That attitude of being allowed to correct people's arguments without bothering with any formalities has been a feature of the many aspects of the R community since its inception. In particular, the R-help mailing list and the R bug tracker can be scary places for new users. As the R community has grown beyond the confines of academia, this has led to tensions within the community. These sorts of cultural issues have long worried a lot of R users, and I can only guess that Oliver's position on the R Foundation Task Force on Women led him to worry about diversity issues more than most.

The other relevant aspect of the R community is that R is developed and managed by the R Core Team ([https://www.r-project.org/contributors.html](https://www.r-project.org/contributors.html)), which consists of 20 guys, about half of whom are actively working on R, and all of whom have day jobs beside being in R Core. They do a great job, but the R community is now several million people, which means that managing the mailing lists and the bug tracker - dreadfully tedious tasks at the best of times - must now be rather overwhelming. I've personally been (mildly) scolded a few times when submitting bugs that I thought were reasonable but members of R Core thought differently. While I think that Duncan's response was a big overreaction, in the context of him trying to optimize not having to spend time dealing with the bug tracker, I can understand why he chose to ban Oliver.

My opinion is that a lot of strife could be avoided if R Core delegated a lot more of the admin work - I'm sure there are plenty of grad students who could be persuaded into acting as first line support on the bug tracker, or moderators on a mailing list.

</comment><comment><USER38> Isn't this entire complaint about the variable name heteronormative? Also, are we supposed to assume that women are somehow more prudish about things that remind them of but aren't referring to sex acts than men are?

Just because someone can imagine a hypothetical problem doesn't mean it's an emergency that others need to worry about.

Eventually all code will be reviewed by Beavis and Butthead, and if they can manage to find anything to huhuhuh about, it will have to be changed. "Huhuhuh, that said 'Insert', huhuhuh."

</comment><comment><USER39> In Germany police (or any governmental authority in fact) has to use the "mildest effective method" to deal with some contentious situation. For example, it is illegal to water cannon the shit out of say loud pensioners petitioning for more public parks.

Regardless of how you see the issue with the variable name, the action taken by Murdoch is moronic, abusive, and over the top.

<comment><USER23> We only know one side of the history

</comment></comment><comment><USER40> It's really important to kick these people when they behave this way and we need to start supporting this.

If you contribute to the code, you have a right to comment, else fuck off and go back to leeching.

Start by actually giving to the community rather than finding faults that waste peoples time who are creating things.

How much time will this destroy from the R core community.

</comment><comment><USER41> This is going to keep happening. While I respect a project maintainers right to decide to what extent language should be policed in their own project, the pragmatic thing to do is probably just quietly merge.

</comment><comment><USER42> I am a man, and I don't understand the "microagressions" word, and I usually protest anti-men ("feminists") politics (like for example the fact that in Spain, by law, for two exactly equal murders you will be fewer years in prison if you are a woman). But in this case the R Foundation has acted as sexists.

<comment><USER13> _I usually protest anti-men ( "feminists") politics_

I'd point out that this 'anti-men' is not really equivalent to 'feminist' and you might want to reconsider that position.

 _But in this case the R Foundation has acted as sexists._

It's hard to say this is anything to do with gender at all – the author is a man, the 'accused' is a man…

<comment><USER42> I know anti-men does not mean feminist. I am a feminist, I'm pro gender equality. Anti-men are not feminists, they are "feminists", with the quotes.

</comment></comment></comment><comment><USER43> > _The second was a set of emails from Duncan Murdoch, President of the R > Foundation and an R Core member, in which he dismissed my "bug report" (note > the skeptical scare quotes he put on it) "about some variable name that you > find offensive is clearly an example of nothing more than shit-disturbing" > and stated that myself, and those who had commented in favour of changing > it, were no longer welcome to participate in R's bug-tracker._

> _I independently confirmed that our accounts had been banned and locked - <USER2> > had the bug, and replied to Duncan explaining my thinking and motivation and > asking in what capacity the ban had been made._

> _The variable name is still there. I never got any reply to my email._

This bit needs to be emphasized, because the incident is invariably going to be spun as one over-sensitive prude throwing a temper tantrum because he didn't get his way. We need to keep focus on what actually happened: Keyes pointed out something he perceived as a problem, going out of his way to be polite and non-accusatory; Murdoch punished and censored Keyes and anyone who had publicly agreed with him.

<comment><USER33> But we don't know what actually happened. Perhaps you can keep your judgement for AFTER you hear both sides of the story?

<comment><USER43> Keyes' story was pretty clear and detailed; I don't see much room for misinterpretation. I suppose it's possible that he's outright lying and the locked bug he linked in the article was actually Viagra spam, but I don't think it's reasonable to suspend all discussion on that basis.

<comment><USER33> Or perhaps it went something like this:

A person who has a long history of creating drama wherever he goes sees a very aptly named argument with siblings which follow the same nomenclature. The person opens a bug report to change the name of said argument because he perceives some grand social injustice with it. This person is rather impatient so he hammers it, effectively spamming with emails the maintainers. But that's not enough, he hammers the mailing lists and contacts directly the (very busy) maintainers just for good measure. He doesn't get what he wants because he is being obtuse and ridiculous, so he decides to elevate this to the head maintainer and emails him directly, insisting actions to be taken to indulge his caprice. Maybe he even posts on twitter to get other people with nothing better to do on his side and exert pressure. Maybe, just maybe, this person feels excited and warm inside as he posts on twitter. He did it again. People will engage in meaningless rhetoric about things that are not really there and he is center of it all. Oh, the hours spent going back and forth and back again and all the ATTENTION.

But the head maintainer sees right through it and will have none of it, so he just blocks this person from stirring drama YET again in the future.

Not saying this happened, just fyi, but it's possible, even probable, one might think. And after all, here we are, creating rhetoric about things of absolutely no significance whatsoever.</comment></comment></comment></comment>


Ask HN: Google+ Layers (In addition to circles) - <AUTHOR>

It has recently been announced that G+ has added games to its platform. Games, invariably, that one would play solo or with people from your various circles.
While I am sure this is a natural progression of adding a feature to G+, I, personally, will likely never use it. I just don't play online games - and I don't spend too much time on G+ yet (I have never had a facebook account - though I now have a G+ account and use it to upload pics -- I don't follow anyone's streams, so, please take the following thought with that in mind).
I am far more interested in a suite of productivity tools being added to G+ than I am games. I call this functionality "Layers"
With Layers (L+) one would be able to create an ad-hoc group from one's circles who would have a shared Layer of information on which they collaborate and work together.
These Layers would allow for a virtual team to have a shared space, each Layer having a context, which would effectually be a Project. Tools available to the team on the same Layer would be Google Docs features, Storage, A Mail Viewport (the mail pane on this layer would be auto-tagged to the layer's context and would be the only mail you see in this tab, even though it is using your regular gmail account), Calendar Viewport (same as Mail - but you would still see other calendar items on the schedule, jsut say, in Black and White as opposed to the color - making it easy to discern evens related to that layer), A project feed - grouping all posts based on that context (think yammer), Shared Layer Contact list, etc..
The idea is, I am not really interested in playing games - but I am interested in having a powerful tool for organizing people from my circles around specific things I want to accomplish.
L+ modules and addons would allow for a project page, github connections, project domain + email address --> helpdesk/issue tracking capabilities.
The <comment> = the silo'd features available that I listed out.. The Layers would just be a view applied to each feature.
L2 </comment><comment>- : Project specific view for Project 2
L1 </comment><comment>- : Project specific view for Project 1
G+ </comment><comment>- : Typical G+ experience
Allowing Layers will greatly increase the opportunity that G+ can change the online experience as opposed to being "simply a better facebook"
There is a great deal more in my thinking on this - but I thought I would throw the base idea out there for some feedback.
What say you, HN, do you feel this would be a good direction for G+ to go - rather than simply enabling the more distractionary aspects of a social network i.e. games.
Layers could be used to more formally organize political campaings, non-profit efforts, volunteers, virtual teams in startups, activism, etc... </comment><comment><USER2> I think most people's eyes glaze over at 'pitches' like this.

</comment><comment><USER3> I don't think this is the right place to suggest improvements to Google+.</comment>


Before Virus Outbreak, a Cascade of Warnings Went Unheeded - <AUTHOR> https://www.nytimes.com/2020/03/19/us/politics/trump-coronavirus-outbreak.html <comment><USER2> A bit rich coming from NYT, considering that they were publishing a "what, me worry?" line about a week ago (from an expert hawking a book on innumeracy, no less): [https://www.nytimes.com./2020/03/12/opinion/sunday/coronavir...](https://www.nytimes.com./2020/03/12/opinion/sunday/coronavirus- statistics.html)

</comment><comment><USER3> In Chicago we have a saying: once is happenstance, twice is coincidence, three times is enemy action.</comment>


I'm a Mac. You're a PC. There really are two types of people - <AUTHOR> http://www.digitopoly.org/2012/10/28/im-a-mac-youre-a-pc-there-really-are-two-types-of-people/

<comment><USER2> It should be a good sign that things missed in the theory fit nicely into it.

I am uncomfortable when interacting with any Apple or Microsoft production, and, correspondingly, I have a third, distinct reaction to The Test (seeing animated transitions). I notice/remember them, and I am annoyed by them...

<comment><AUTHOR> Likewise with me. Transitions and animations bugged me because I perceive them to serve as a slow-down between what I want to do and where I am (although I understand that they're most likely always buffers between contexts)

The UI pattern formerly known as MetroUI (I refuse to call it the New Windows 8 style UI) however, changed that. No un-needed animations, lets me get to the core of what I want quickly.</comment></comment>


Gov. Gavin Newsom wants the tech industry to help pay for new housing - <AUTHOR> https://www.latimes.com/politics/la-pol-ca-newsom-tech-housing-money-20190115-story.html#nws=mcnewsletter <comment><USER2> I hope part of that comes with making sure zoning and other regulations are in-place such that it makes financial sense for developers to want to build housing in general too.</comment>


ChatGrape's Google Drive Integration Presented in Under 2 Seconds - <AUTHOR> http://blog.chatgrape.com/wp-content/uploads/2014/10/Pitch-Deck.gif

<comment><USER2> I'm assuming the intended link is [http://blog.chatgrape.com/2014/11/12/the- incredible-google-d...](http://blog.chatgrape.com/2014/11/12/the-incredible- google-drive-integration-is-here-and-you-will-love-it/)

The original link was to the animated gif within that post</comment>


Why Yahoo is Good (But May Get Worse) (1998) - <AUTHOR> http://www.useit.com/alertbox/981101.html

<comment><USER2> "But Yahoo's financial reports show that Web advertising is a very poor revenue generator"

And then there was Google.

<comment><USER3> While I understand what you are saying (and doing =)), I do not think Google disproves his entire argument. Basically, he asserts this based on the following: "revenues of 0.4 cents per page view" and "Less than half a cent per page view from an advertising-based service is fine if the service has as much traffic as Yahoo. But most other sites will not be able to survive on such low income."

So Google makes money off of advertising because of its reach.

<comment><USER2> But that is true of advertising in general, I think. Whenever you deal with ads, it is about how many people you can reach with it. Nobody is willing to put a big ad in the middle of the desert, right? Are freeway billboards bad revenue generators just because thousands of cars have to pass by them?

<comment><USER3> Not necessarily. On the web, few people can afford to succeed based on advertising. Compare that to the real world, and this is simply not the case. Location plays an important role. Take radio advertising. It makes wonderful sense for local businesses to advertise on the radio. They hit a targeted market, and usually they can reach a specific demographic depending on the radio station. (My father is in radio, so I've learned quite a bit about it =)).

Of course radio, like TV, have the advantage that advertising replaces content.

Billboards don't. However, they are informational rather than strictly advertising. Either they are promoting an idea/brand, or they are informing you to get off at the next exit for a particular service (or encouraging you to wait 15 minutes before taking a break at their place).

What this all means is that advertising in other formats serve a different purpose. Take the yellow pages back in the day. Having a larger ad usually meant people would call you first. Sure, you may not have thousands of eyes looking at your ad, you might only get 50-100 new customers, but that business easily pays for your ad.

This is what the web is struggling with, even now with targeted advertising.

Sure, you can target people's interests and locations and give them focused ads, but can you do that at an international scale? Very few can.</comment></comment></comment></comment>


The Future of Networked Warfare Begins with Apple - <AUTHOR> http://www.readwriteweb.com/archives/the_future_of_networked_warfare_begins_with_apple.php <comment><USER2> The jokes write themselves ...

Will our snipers start wearing black turtle necks, designer jeans (with a fake 'worn out look'), drink overpriced coffee products and have a smug sense of superiority now?

...it's still early, that's all I could come up with.

Oh and BTW, the networked soldier idea did not begin with Apple, and will most definitely not end up with Apple.

</comment><comment><USER3> I think the developments in the security of Apple products will be a very interesting thing to watch over the next year. Now that word is out that the Army is deploying iPhones and iPods with its troops, there is sure to be an increased interest in the security of those products. It makes sense from a cost standpoint to use an already existing device rather than create your own, but I expect that the security challenges that go along with issuing soldiers iPhones will be non trivial.</comment>


Sprout Life - <AUTHOR> https://github.com/ShprAlex/SproutLife/blob/master/README.md <comment><USER2> Hey guys, I made this, I would be happy to tell you more about it. The idea is pretty simple, static 2x2 blocks are replaced by another shape that creates a lot of growth. That replacement is treated like the birth of a new organism. The goal of the organism is to produce more 2x2 blocks. It can have slight mutations that make it faster to produce these blocks. What's interesting about this is that rather than having reproduction be a given, an organism spends it's whole life building a structure that lets it reproduce. It can collide with other organisms and disrupt them. It's simple, but it's open ended and is fast to compute.

<comment><USER3> Nice. I feel like there's a relation to[1], but it's not obvious to me how to apply it.

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

</comment></comment><comment><USER4> Awesome! Replacing one block with another is clever, although it's tricky when organisms of one species are adjacent to organisms of another species.

I've played around with a similar idea in falling sand games [0], where individual cells interact to create new cells, but I got stuck developing a language flexible enough for greater expressiveness while still being performant.

[0] [https://github.com/ericleong/sand.js](https://github.com/ericleong/sand.js)

<comment><USER2> You were developing a new language? Javascript is great because you can see the results in a browser. I'm a bit torn because java is easier for developing this kind of data intensive thing.

</comment></comment><comment><USER5> Very cool! I'm reading and coding along with Sher's Neuroevolution Through Erlang to learn the benefits of Erlang/BEAM for just such stuff. I believe somebody is also translating it to Elixir. The visualizations are great. I guess Java doesn't have a problem with distributed computing or processes for such work?

<comment><USER2> This works on just a single machine for now. I imagine it would be relatively easy to distribute. One could simply clone a bunch of applications. Then creatures from cloned grids could be swapped, or grids could be placed adjacently to determine who the winners are...

</comment></comment><comment><USER6> Anyone who enjoys this sort of work may also like the book Complexity by Waldrop, which covers the history of Complexity theory through the eyes of the people who created it. It's a really fun story that's inspirational and intellectually satisfying.

</comment><comment><USER7> "The enemy of my enemy is my food."

I love this restatement of RPS.

</comment><comment><USER8> This is pretty cool. Kudos.</comment>


The Vagabond King – Coup Leader to Homeless Alcoholic - <AUTHOR> http://www.newstatesman.com/africa/2012/01/sierra-leone-strasser-war

<comment><USER2> Excellent article. Thank you for sharing.</comment>


Sysdig Inspect: A GUI for System Call Analysis - <AUTHOR> https://sysdig.com/blog/sysdig-inspect/ <comment><USER2> Thanks to BPF devs and system folks like Brendan Gregg Linux tracing on the 4.x kernels can rival Solaris/FreeBSD + Dtrace. So my question is where does Sysdig fit in the tracing equation here?

<comment><USER3> Does Linux perf / bpf tracing allow dealing with userland these days? I wish I could start reading info from live python and ruby like I can with dtrace, but I haven't really seen a way to do that yet.

<comment><USER4> Yes it does. You can use Userland Statically Defined Trace Points (USDTs) in order to augment arbitrary applications with probe points that can be monitored by tools like BCC 'trace'.

The library that provides the API for these trace points is SystemTap (sys/sdt.h), which is -- AFAICS -- the primary method of USDT instrumenting on Linux. Conveniently, SystemTap's USDT API is the exact same as DTrace's API: you can simply use sprinkle `DTRACE_PROBEn` calls around and it will work fine on either, use the 'dtrace' tool to generate code from a provider, etc etc. Their dtrace tool is just a thin script that's compatible with the FreeBSD variant.

(The nice part about this is that you _should_ just be able to relax e.g. your autoconf checks from enabling DTRACE_PROBEn calls on FreeBSD/Solaris to include Linux as well, so migration should be smooth)

Check out some info here[1].

Alternatively, for "simple" cases where you do not need provider support (e.g. inputs to the trace points), if the executable just has enough symbol information for function names, or the symbol names are exported _anyway_ , you can generally glean some relevant information. For example, the following command uses the 'funclatency' tool to dump a latency histogram of every function call to any function with the word 'poke' in its name, for the application named 'app' in the CWD:

        sudo /usr/share/bcc/tools/funclatency -F -T \
          $(pwd)/app:*poke* \
          -p $(pidof app)

NB: It is also worth noting that 'perf' on Linux has some form of uprobes support; e.g. it can probe functions based on the symbol name, but only for the events/interfaces it has available, I believe.

[1] [http://blogs.microsoft.co.il/sasha/2016/03/30/usdt-probe- sup...](http://blogs.microsoft.co.il/sasha/2016/03/30/usdt-probe-support-in- bpfbcc/)

</comment></comment></comment><comment><USER5> Was fooled a moment into thinking you had no pricing information on your page. Realized it was there but just not accessible via your menu. My advice, add pricing to your menu. It is one of the first things I search on new products before I try it. Should be accessible from any page in case a reader is interested and wants to check if he can afford your tooling.

<comment><USER6> Sysdig Inspect is fully open source. [https://github.com/draios/sysdig- inspect](https://github.com/draios/sysdig-inspect)

Sysdig's commercial security and monitoring products do have pricing pages within the top navigation as well : [https://sysdig.com/product/monitor/pricing/](https://sysdig.com/product/monitor/pricing/)

<comment><USER5> Fooled twice :). I do not see pricing in the menu though. I indeed found the page by browsing to another page but my first expectation was to literally find "pricing" in the menu. That page could than start with the open source pricing statement (free) followed by their payed options. Or that is what these kind of products typically do.

<comment><USER6> Odd - I'll take a look at the navigation issue, and thanks for the feedback on the open source pricing statement.

<comment><USER6> For some reason pricing isn't showing up on the nav of the mobile site , whereas it does on desktop. Apologies for that. We'll fix it shortly.

</comment></comment></comment></comment></comment><comment><USER7> The main issue I've had is with the awful documentation. They give a good chunk of examples - but I was unable to easily locate a simple listing of all the different ways of referencing things.

For a tool like this; quality documentation really is a must. And it isn't.

</comment><comment><USER8> Looks very interesting!

A quick scan of the docs, it looks like we can extend the filtering via LUA ("chisels"). No python love?

<comment><USER9> Wouldn't it be the case that adding Python won't deliver the performance needed? I think the choice of Lua is probably because it has to be performant.</comment></comment>


C# 4.0: The industrial response to Lisp? - <AUTHOR> http://axisofeval.blogspot.com/2010/07/c-40-industrial-response-to-lisp.html <comment><USER2> "I'm assuming, based on long observation, that Microsoft with high likelihood fucked up the pragmatics completely, and that programming in C#, as opposed to reading about it, is deeply depressing."

I've not found that to be true - C# is a lot of fun to work with.

<comment><USER3> C# would be awesome except that it is a very "IDE intensive" language. Don't get me wrong, Visual Studio is a very good IDE (and MonoDevelop is shaping up nicely), but I'd still prefer vim or emacs as opposed to needing a fancy IDE to be very productive.

<comment><USER4> C# is designed with IDE support in mind. For example, in Linq the "map" syntax is:

       from a in b select a.x

This syntax is actually backwards compared to both SQL and list comprehension syntax is most languages, which have the selector expression is before the input list. E.g in SQL:

       select b.x from b

Or list comprehensions (in eg. Python):

       [a.x for a in b]

So why did MS change the syntax like this? Most developers already knows SQL syntax, and Linq queries are supposed to be able to map directly to SQL.

The reason it that it is not possible to provide code completion in the selector expression if the type of the list is not yet known. Hence in C# the list is written before the selector expression, so the editor helpfully can list all a's members when typing `select a.`

Another example is "Partial Classes" which is a curious language feature which makes it more smooth to work with UI-designer generated files, but which I don't think has any useful function outside of an IDE.

I don't think many other languages are designed with IDE support in mind in such a way. This makes it possible to provide a very smooth IDE experience.

<comment><USER5> From a theory perspective, SQL has it backwards. The projection operation in relational algebra would come last. It certainly helps with IDE interactions but it makes sense entirely on its own.

<comment><USER4> I may be confused, but according to Wikipedia [http://en.wikipedia.org/wiki/Projection_%28relational_algebr...](http://en.wikipedia.org/wiki/Projection_%28relational_algebra%29) it seems that in relational algebra notation the attribute names are written before the relation, since the relation is an argument to the projection function.

This seem to me to be closer to SQL syntax.

<comment><USER5> The attribute names are written first, but it's like nested function calls: projection(selection(R)). The joins are 'evaluated' first, then selection (where), and then projection.

I suspect that SQL was actually designed to match the notational order (but reversing the intent) they still got it wrong: to match the notation, it should be SELECT .. WHERE .. FROM.

<comment><USER4> Interesting point, but that would apply to function notation in general, not just relational algebra.

a(b(c(x))) is "backwards" because the functions are evaluated in the opposite order than they are written. This is a flaw in math and in most programming languages! I suppose stack-based languages have it right, and the OO method chaining syntax in Linq and in e.g. JQuery has it right, since evaluation order is left-to-right.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> > With LINQ's expression trees, they seem to tackle the same problem as Lisp > does with S-expressions.

The problem is that at the moment, it's a lot harder to work with Linq expression trees than with S-Expressions. If you're not very, very, very careful, expression trees can very quickly become an unmaintainable, terrible mess and it is very hard to debug them - it's a lot more painful than in Lisp. This might change in the future though with better tools.

</comment><comment><USER7> Microsoft has half of the best CS minds in Europe working for their research division. Some of that genius is bound to leak into their products eventually.

<comment><USER8> I would be more interested in the bright minds that had the wisdom to find work outside Microsoft. Nothing against MS, but if half of your peers are going to the same blackhole, and you choose not to follow suit, you're either a smart fella with better options, or you're not good enough.

Assuming a 50-50 distribution; I am interested in that 25% that's both good enough, and chose to break rank. Because I have a good intuition that consensus always breeds mediocrity, never something exceptional.

<comment><USER7> I have been surprised at how little of the genuinely innovative things people are doing in Microsoft Research seem to make it into their products, but there are a lot of very interesting projects going on in their research groups nonetheless.

I can also understand the appeal of MS research. Academic CS presents a lot of distractions - the constant scrabble for funding, teaching responsibilities, campus politics etc. There are plenty of high-caliber brains in MS research. I don't think Simon Peyton-Jones, for instance, would have any trouble finding a post in any CS department.

<comment><USER8> SPJ is at Microsoft, and so are Jim Larus and Leslie Lamport. But you know what? For a behemoth that allegedly swallowed half of the computing minds in Europe, and god knows how many in the U.S., it's very sad that I can name only three top researchers, and I have absolutely no idea what they're working on.

I see more development coming out of the Factor camp, and Factor is pretty much a 25 year old guy in a basement.

Lest you think I am picking on Microsoft, I haven't been too happy with the Google language R&D labs as well. They took out billions in cash and replicated Bell Labs, circa 1986.

<comment><USER8> By the way, just think of the few recent pieces of software that made the most impact on industry; Clojure, Redis, Nginx, Memcached, jQuery,etc. All the works of random sole hackers, the last two pretty much standard resume pieces for any web developer. None of these guys existed on the map until they changed the industry with a Changelog. And because of that, I have every reason to believe that the next great engineer-aesthete is faceless today, and bumming around on friends' couches and handouts; not someone being cultivated with corporate endowments and backing.

<comment><USER7> I hope you're right honestly. The vision of the heroic hacker is much more appealing to me than that of big, bureaucratic, corporate research departments. Certainly the things small independent teams have accomplished lately is impressive.

I wonder though if there are some projects that just require more elaborate support structures. It's difficult for me to imagine that ghc or the scala compiler or postgresql could have been hacked together on the clojure model.

</comment></comment></comment></comment></comment></comment><comment><USER9> The industrial response to Lisp can be found here, and it's thriving:

clojure.org

<comment><USER8> So the industrial response to Lisp is a Lisp? You'll need a bit more care when recurring over circular lists ;-)

<comment><USER9> No, that's a feature :-p

</comment></comment></comment><comment><USER10> The biggest problem with C# is the .Net ecosystem. Without (much) an open source community, it is and remains a tiny pond, full of crap, including a million shitty web applications and all the .Net baggage (Visual Basic anyone?)

Which is a damned shame.

It is a beautiful and fun language.

<comment><USER11> There's a ton of open source code out there, from Mono, Gnome, a lot of projects on Codeplex, and a bunch of other sources. I don't know where the myth that there's a lack of open source .NET code came from; it's simply not true.

</comment></comment><comment><USER12> The problem is that the people who appreciate the functional features of C# are the same ones that are already exploring other languages and paradigms outside of Java-flavored OOP.

The flip side of this is that there are a lot of code monkeys in cubicles working on C# codebases who have no interest or ability to learn the exciting features. That leaves the people who are excited about these features in the tough position of either writing the best code they can and alienating their coworkers, or finding another job.

</comment><comment><USER13> I speak only for myself here of course, but what I find so "icky" about C# is not the language, but the development environment. I haven't used the latest VS so it might be better, but even 2007 still felt years behind the popular java IDE's, and there didn't seem to be any real competition to it either. (Someone please correct my missteps here; I'd love to know more about it than I obviously do now.)

<comment><USER3> My experience has been the exact opposite: Java IDEs are bulky and hard to navigate while VS is at least bulky and easy to navigate. :-)

<comment><USER14> I haven't tried VS 2010, but in previous releases there was no "Go to class..." type functionality! How is that easy to navigate? Thank god for JetBrains ReSharper plugin.

All the major Java IDEs have had "Go to class..." for a long time.

<comment><USER15> 2008 and 2010 both have it, as well as a lot of other easy ways to navigate,

<comment><USER14> I searched for a very long time when I last used 2008. How do you do it?

<comment><USER15> I might have been wrong about 2008, don't have it installed anymore.

</comment></comment></comment></comment></comment></comment><comment><USER16> My main concern about C# is that with each release, it becomes bigger and seems to be more of a kitchen sink language. This phenomenon has been the downfall of other popular industrial languages, notably C++.

As the language grows, so does the number of interactions between features. All the little corner cases start to get in the way of writing clean, useful code.

As the language grows, it also becomes harder for new programmers to learn it effectively, by which I mean not just knowing the syntax, but also understanding the idioms and being familiar with the libraries to make good use of the language in practice. For real world projects that make use of the advanced features, it therefore becomes harder to find staff who are sufficiently clued up in the areas that are in common use on any given project.

The more programming I've learned, the more I am convinced that effective programming languages are simple. This doesn't mean they can't also be powerful, but the programming model is clear and the interaction between different features is either systematic or non-existent. Nearly every widely successful industrial language achieved its success initially when it was a simple language. Many industrial failures -- in the sense that they continue to be used more because of various kinds of momentum than because of their technical merit as programming tools -- became so when they stopped being simple.

<comment><USER17> What kitchen sink was thrown in C++? The STL? That's the main reason I first fell in love with C++. Templates? Exceptions? RTTI?

IMO the problem with C++ is its C legacy (things like macros). These things make it harder to read code and make it harder to write great tools for it (ever seen really good code completion or static analysis for C++ code?).

<comment><USER16> > What kitchen sink was thrown in C++?

What _wasn't_?

\- Procedural programming

\- Structures and enumerations

\- Overloading of functions, including operators

\- Classes, object-oriented programming and run-time polymorphism

\- Generic programming, templates, compile-time polymorphism and metaprogramming

\- Text-based macros

\- Hacks and, from C++0x, built-in language support for in-line functions

\- Exceptions

\- Low-level memory access

By my count, every one of those things interacts with almost every other one in some way. Often, there are deep connections, such as the RAII idiom, that are fundamental to using C++ effectively but not obvious to someone with a good general programming background but no expertise in C++ specifically.

The real problem, though, is that C++ isn't really very good at any of those things in isolation. There are much better approaches to all of them, and there are tools available that take those approaches. They just don't fit together to form a coherent whole, where features are either orthogonal or blended together cleanly. It used to be the case that C++ offered a more powerful overall tool than most other languages because of the diversity of its features, but today's languages have had the benefit of decades more experience and hindsight to draw on. The very diversity that used to be a compelling reason to use C++ has now become the most compelling reason not to, IMHO.

<comment><USER17> Lets be clear... half of your list is from C:

-Procedural programming -Structures and enumerations -Text based macros -Low-level memory access

And for the items they actually added to C to make C++, none of them are all that unusual, save templates (not sure if there is any other language that does it compile time).

IMO, Scala has more parts of the sink in it than C++. The problem with C++ isn't the kitchen sink. It's that its built on a language that isn't meant to hold the things that C++ would like to add to it.

Maybe I'm being pedantic, but when I see "kitchen sink" I have a vision of a lot of features. But frankly C++ isn't all that feature rich. But its the interaction complexity that makes it problematic. This is not a problem of throwing the kitchen sink at it, but rather a design problem.

<comment><USER18> Let's put it this way: do you know of any successful C++ project of serious size that doesn't specify and stick to a subset of the language?

<comment><USER17> Several that I've worked on. There were aspects of the language that we avoided, like export, because they weren't implemented. But in general, we didn't have ground rules about features to use or not use. At least not in the past 15 years. Back in '93ish we would be more careful, because the features were still evolving, but by 2002-2003 I don't think we had a lot of issue using the language.

</comment></comment></comment></comment></comment></comment><comment><USER19> I think Clojure is the _right_ response to Lisp: embrace it, and make it practical and quick.

<comment><USER18> Although there are those who say " _Clojure is a terrifying meld of a beloved character and an unreasoning alien onslaught._ " based on: <http://vintage- digital.com/hefner/misc/lisp-programmers.jpg>

Me, I'll probably need to use Clojure on top of the JVM someday but I'd like to get a "Turtle Clojure" developed after Clojure-in-Conjure gets somewhere ("it's turtles all the way down"). But that's because I'm not too concerned with doing anything particularly or at least immediately practical right now.

</comment></comment><comment><USER20> Does anyone know if there is a way that Arrays can be passed by ref in c#?</comment>


PayPal customers will crowdfund at their own risk starting in June - <AUTHOR> http://www.theverge.com/2016/5/7/11616932/paypal-customers-will-crowdfund-at-their-own-risk-starting-in-june <comment><USER2> Wait, so in the meantime it is? I had always assumed crowdfunded projects had a fairly clear buyer beware aspect to them.</comment>


Ask HN: PhD in Compiler/Programming Language Theory - <AUTHOR> I've been thinking of getting a PhD focusing on Compilers/Programming Language theory but am not sure if I should do it. I have a MS in Computer Science (but a bachelor's in Economics) but I didn't get a chance to take the Compiler (Advanced) classes but did get to do PL theory. If I were to get the PhD is there a need for people in that field (not in academia)? I know there are a few people that are in Microsoft that have their PhD and are working on the languages such as Don Syme and Mads Torgersen. I just don't know if there are many jobs that would require that kind of expertise. <comment><USER2> I'd suspect that a Phd in computer science would probably have a skill set that is attractive to a fair number of employers. I suspect that the knowledge, skills, and abilities that would be necessary for obtaining a Phd in the area you mention would also be attractive.

I suspect that supply outstrips demand in academia as it does in pretty much every doctoral field. In industry there are people who work on compilers at many companies. In terms of new programming languages, there is and there isn't. There is lots of normal line of business work that benefits or would benefit from domain specific languages. On the other hand, Google's got Brian Kernighan if they need a new major language.

<comment><AUTHOR> The thing that worries me is that there are somewhat limited compiler jobs and so if I have to wait for one the PhD would hurt me as my specialty would not be something that is every day stuff.

<comment><USER2> My childhood friend Mike is a Phd organic chemist. His dissertation was on detecting chemical weapons. He went to work for Coke a Cola. I don't think it was due to a strong opinion about high fructose corn syrup. I think it was because his training made him able to learn the aspects of organic chemistry that were relevant to the business of selling sugar water and because he knew his way around a chemical lab and equipment. His Phd also got him an interview and qualified him for the position. That seems pretty typical regarding the vocational aspect of getting a Phd.

An interest in compilers would be valuable for sustaining a person over the span of years it takes to earn a Phd. On the other hand, I don't know would and wouldn't be considered 'a compiler job' by you and who knows what the 'compiler job' market will be in a few years and how it will relate to what tiny piece of compilers you might work on while pursuing the degree.

Anyway, where you go to school and who your advisor is will also affect how relevant your study is to company's that hire people for 'compiler jobs.'

Good luck.

<comment><AUTHOR> Thanks for your feedback. I never really thought about the skills transferring but looking at it the low level optimization that would occur when researching compilers would give me a leg up on positions that would require that kind of work.</comment></comment></comment></comment>


Ask HN: CS student looking for internship - <AUTHOR>

Any start-ups or companies that are looking for an intern for possibly Fall semester? <comment><USER2> And a GitHub or similar profile. We don't glance at an applicant w/o one.

</comment><comment><USER3> You should add more details, e.g. where are you, what kind of internship, etc.</comment>