Ethics Aside, Is NSA's Spy Tool Efficient? - <AUTHOR> http://online.wsj.com/article/SB10001424127887324049504578543542258054884.html <comment><USER3> This is exactly the argument I've been making to people when we discuss PRISM.

Think about the heterogeneity of the data, the lack of structure, and the unpredictable nature of its generation. Frankly, I have no doubt that the NSA is not monitoring phone chatter on a mass scale, probably not because they _can 't_, but because if they did there would be no way in hell to parse, store, process and evaluate the data generated.

We (the scientific/big data community) can barely get recommendation engines working well - engines which have one set of data (what you watched) and do one other thing (suggest what else you might want to watch). Unless the NSA is _decades_ ahead in a number of fields (like data warehousing, statistical analysis of massive datasets, machine learning) how are they getting useful information in a systematic way, considering the pressure from the data- firehouse involved?

My guess is they're probably not - instead the data are collected, and then used in conjunction with traditional approaches. e.g. little johnny buys some fertilizer and one way plane ticket - so who's he been talking to, what's he been saying, etc.

Honestly, how the NSA is using/dealing with/storing/accessing these data is actually an incredibly interesting question, from an academic/systems perspective.

<comment><USER4> Natural language processing improves at a fast pace, and these records remain there to be processed at an increasingly large scale as technology allows.

I don't think most people are ready to comprehend what keeping a comprehensive digital record of private communications allows.

<comment><USER5> Including after the fact attribution of motive for any of a number of actions based on peoples online comments.

The real question is if the already exposed two way trade in information is going to be broadened into a comprehensive assessment service. Will the NSA provide a "DataVeillance report" on individuals considered for 'sensitive positions'?

Will your call records be used to assess your fitness for work? Will your spending habits be turned into behavioral alerts so that your HR manager is calling you in to ask if you've been drinking too much?

Who gets to access these records and for what purposes?

</comment></comment></comment><comment><USER6> The issue is consequences of your actions -- not just the consequences you want, all the consequences.

Efficiency is a red herring. Ethics ends up just two sides saying "I'm right you're wrong". The only meaningful question is "Is the government fulfilling its role as government?". Or the simpler proxy question: "Is this constitutional?".

Ethics talk is opinion because obviously the people doing it and their supporters think it's ethical. If you tell them you think it's unethical they'll disagree and discount the rest of what you say. Two groups just saying "I'm right and you're wrong" or "I'm ethical and you're unethical" ends up with the more powerful one getting what they want.

Even if, say, torture efficiently got information, if it also galvanized the world against you, provoked many suicide bombers, got your own people tortured, lowered the population's trust and faith in the government, distanced your allies, increased the costs of maintaining the military, and so on, it might not be worth it.

If you put the entire population in jail, you will have 100% efficiency in jailing criminals. But what cost? The point is that if the government doesn't protect freedom or represent the will of the people then it will lose popular support and have to support itself by convincing people lack of freedom is preferable to freedom or just lying.

Besides, it didn't stop the Boston Marathon Bombing.

<comment><USER7> "The only meaningful question is "Is the government fulfilling its role as government?""

This attitude is very dangerous as the government will just change its role.

Everything is rooted in ethics and thats why we should be worried whether our laws and actions are ethical. Just because people disagree on it does not mean we should stop trying to find out objective ethical laws and principles.

</comment></comment><comment><USER8> People seem to assume that PRISM would be a passive "find me the terrorists" button. I imagine in reality it's just a tool they use among others, similar to any other law enforcement database (Just with a much larger dataset).

Like say for example, you catch a terrorist but he won't tell you anything and you suspect they were not acting alone.

So, maybe you interview the guy's brother who insists he knows nothing , hasn't seen his brother for 5 years and loves America.

So you check the brother out with PRISM and find that: He had an IM conversation with someone in 2002 and he spoke about how happy he was that 9/11 happened.

Someone had taken and uploaded a photo to a social network of the brothers at the same place 2 years ago.

You decide that putting covert surveillance on the brother might not be a waste of resources.

<comment> brown9-2 You don't have to imagine how Prism works, as it has already been described in decent detail in a number of articles:

[http://theweek.com/article/index/245360/solving-the- mystery-...](http://theweek.com/article/index/245360/solving-the-mystery-of- prism)

[http://www.vanityfair.com/online/eichenwald/2013/06/prism- is...](http://www.vanityfair.com/online/eichenwald/2013/06/prism-isnt-data- mining-NSA-scandal)

<comment><USER8> Those don't seem to really expain how , why or when it is used.

<comment><USER9> In "task force black", a book about how the SAS special forces helled fight alqaeda in Irak, they talk how they had all the cellphone network controlled and each time they collected a mobile they tracked their calls and that way they localized other terrorists with more mobiles. It was pretty useful in that situation. For example the top level of alqaeda never used mobiles or radios but eventually they had people around them who did.

</comment></comment></comment></comment><comment><USER10> Can't we assume that the largest employer of mathematicians in the US [according to Wikipedia] has given this some thought?

So either they know it's ineffective and do it anyway, because they can. More money, more power, more influence.

Or it's not being used to generate leads, but as a way to look up retrospectively what people have done online once they become of interest from tip-offs and traditional investigations.

<comment><USER11> Retroactive lookup seems like the most plausible use case to me.

</comment></comment><comment><USER12> While it's impossible to estimate how smoothly things actually work in the NSA, if you are someone who takes the leaked slides as gospel, then you have to admit at least one thing:

The slides were written as if _morons_ were the audience. It uses brightly colored bubbles to define the very few key points involved. In any other bureaucracy, these slides would be seen as yet another example of office workers having to be reminded to do their "TPS reports". The slides, more or less read as: "Hey dumbfucks, remember that we have two systems for espionage. PLEASE remember to use BOTH of them"

The fact that they took the time to come up with a memorable name like PRISM is also kind of amusing, like the way politicians come up with PATRIOT Act and PROTECT-IP to help people remember what hot-button issue they involve.

edit: In addition to this, Snowden managed to get the files using a USB key, something which had been banned years before at the NSA because someone was able to infect NSA's infrastructure with such a device...and yet Snowden was still able to steal files...at the very least, the NSA's IT logistics doesn't seem to be much better than of large corporations: [http://theweek.com/article/index/245643/how-edward- snowden-s...](http://theweek.com/article/index/245643/how-edward-snowden- stole-his-cache-of-nsa-secrets)

So the NSA may employ the world's best engineers and mathematicians, but it doesn't necessarily mean things are well-honed and efficient.

<comment><USER13> Maybe PRISM is accessible to even lower level employees (hence why Snowden got a hold of it) and isn't relatively that much of a big secret within the organization, while the really "interesting" stuff happens behind locked doors and generally does not involve making silly powerpoint presentations.

</comment></comment><comment><USER14> "Ethics aside"....

What a world we live in! :(

But no, it isn't, because it can be gamed like any other rules system. The NSA probably thinks their system hasn't been explored yet, relying as they do primarily on security through obfuscation.

One of the greatest pleasures in life is examining "black box" systems and figuring them out. The NSA would be fools to expect that their system is not already being gamed.

<comment><USER15> Yes, the same with torture. Hey, if torture works, maybe we should just allow it in every police station on everyone we ever arrest. It should make getting those confessions out so much easier! Say hello to the 2 centuries ago society! Glad to see the past 2 centuries have gone to waste in terms of what in means to evolve as a human in a modern society.

<comment><USER16> Which only says something about the person drawing the conclusion, not about deconstructing arguments.

Torture must be both moral and strategically effective to make sense. Therefore, if either one is not the case, then you shouldn't stand for your government torturing people.

It is difficult to convince someone to adopt different values using logic alone. Perhaps ultimately the ethics behind the value of privacy can be traced to its role in constructing a society that produces the best quality of life for people.

If so then it may start with whether hurting someone can defuse a ticking bomb, then be expanded to whether hurting more people can undermine an enemy and whether it yields less accurate information than subtler interrogation methods, or perhaps whether it recruits more enemies and is a losing strategy, and some many steps later, after addressing whether it undermines the fundamental goals that make the society worth protecting, what kind of people it makes us to engage in torture.

I suppose that what I am getting at is that we wouldn't necessarily agree with the values that informed past ideas about what is moral. Therefore, if we can simply point out that torturing also isn't in our strategic interest we can short circuit nonsense arguments about necessary evil. The same goes for privacy invasions, however, I don't agree that these programs are likely to be inefficient. More likely, they will be unscientific and confirm biases, and tend to cause suffering for many innocent people, while also encouraging self- censorship.

They will also undermine the checks provided by institutions that have gone of the rails, or officials that have become corrupt having to interact with moral people. Perhaps most terrifying, I have read a couple journalists, of all professions, talk about these programs in context of TSA checks, and having to stand barefoot in front of gawkers, or be touched by strangers. Though these checks are a cause for indignity, and are varyingly effective, in comparison to universal surveillance, they are unlikely to quash any meaningful dissent or other important responsibilities of citizenship.

</comment></comment></comment><comment><USER17> Non paywalled version: [http://stream.wsj.com/story/latest- headlines/SS-2-63399/SS-2...](http://stream.wsj.com/story/latest- headlines/SS-2-63399/SS-2-254196/)

<comment> brown9-2 This link goes to the paywall also

<comment><USER17> Interesting. I went back to the link and it is now behind the paywall for me too.

</comment></comment></comment><comment> brown9-2 _Prof. Thall flipped the question, pointing out that any algorithm hunting for terrorists would turn up some number of false positives -- probably a large one. As to whether that should rule out using algorithms, though, he says, "I would very much like to know what alternative they might suggest. With regard to identifying terrorist attacks originating in the U.S.A. before they are carried out, there is no free lunch, and we simply can't have it both ways."_

IMO the last quote in this article is the perfect response to the quandaries raised by the rest of the article:

Any automated approach or data analysis is sure to raise false positives - <USER2> what other options are there? Zero data analysis or automation? Pure human "police" or "detective work" raises false positives as well.

</comment><comment><USER18> I imagine the efficiency of their algorithms depends on what they're looking for.

If they're looking for patterns similar to those of historical terrorists, then their false positive rate is likely reasonably low considering the scale of their data set.

If they're looking for patterns or traits of hypothetical terrorist behavior, that's another story.

Systems-based trading in the financial sector comes to mind. Constructing a trading system that performs well when tested against historical data is easy. Constructing a system that performs well on future data isn't.

The solution to the latter usually involves using more generalized indicators when building the system to avoid the pitfall of curve-fitting your system to the data.

In this case though, it might just mean more false positives to sift through.

<comment><USER19> what if its not just all about terrorist behaviour

<comment><USER18> NSA is supposedly constrained to its strict national security mission charter. However, I've heard murmurs over the years about analysts passing off information in an unofficial capacity to federal law enforcement if what they come across sufficiently bothers them. Those agencies then figure out a way to legally obtain the data they were passed so it's admissible in court.

Recent quotes concerning GCHQ provide an interesting insight in this regard:

[http://www.guardian.co.uk/world/2013/jun/09/prism-gchq- willi...](http://www.guardian.co.uk/world/2013/jun/09/prism-gchq-william- hague-statement)

> "If you are a law-abiding citizen ..."

This implies they go after criminals and not just terrorists.

> "... of all the things those agencies are doing to stop your identify being > stolen ..."

I guess they're also in the identity protection business.

> "But if you are a would-be terrorist or the centre of a criminal network > ..."

Again, targeting of criminals (albeit high level).

\---

IMHO, a top-secret dragnet surveillance program that's tightly restricted in scope to national security matters is a much easier pill to swallow than a completely legal, known program. The latter becomes nightmarish as soon as the data aggregates down the chain to law enforcement or other government agencies. Imagine local police departments having the same level of information about private citizens as NSA does. That's terrifying.

<comment><USER20> > However, I've heard murmurs over the years about analysts passing off > information in an unofficial capacity to federal law enforcement if what > they come across sufficiently bothers them. Those agencies then figure out a > way to legally obtain the data they were passed so it's admissible in court.

Its trivial to see how such evidence could be laundered if the NSA wanted to -- all the NSA has to do is make anonymous tips to law enforcement that provide the basis for regular search, wiretap, etc. warrants. To do this, of course, they may need to provide information that can be confirmed without a warrant to demonstrate credibility, but its hardly as if the NSA is going to have trouble doing that. The receiving law enforcement agencies could be completely in the dark as to the actual source.

<comment><USER18> Absolutely true. What you said means the NSA has the capability to put whoever they wish under the microscope and effectively bury them by proxy. The only way that doesn't work is if they either have an irreproachable system of oversight, or whoever they're targeting has as led an extremely boring, uneventful life.

In theory, senior employees or executives at NSA contractors may even utilize similar tactics for anti-competitive or corporate espionage purposes.

<comment><USER21> You don't think they've thought of it being used between their contractors/executives? And that they haven't put any effort in to stopping that sort of use internally?

<comment><USER20> I'd be inclined to believe that there are likely to be controls to prevent people _not authorized by higher ups within the NSA_ from doing this, as that would represent a security problem.

I am, to put it mildly, considerably less sure that these controls operate in a manner that inhibit NSA leadership from _directing_ that this be done in specific cases, when they feel that providing this kind of under-the-table feed of information, particularly to domestic law-enforcement when the conditions in which the information was gathered would, if it were known, prevent the use of any information derived from it in court under the fruit of the poisonous tree doctrine.

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> >So by analyzing a network of communications, the NSA could be ferreting out clues from more than just the messages' particulars.

How could one distinguish between a terrorist cell and another small group of people intensely working on something, like a startup?

<comment><USER5> From the perspective of an established incumbent player in a lucrative market, a disruptively effective startup _is_ an economic terrorist.

The existence of a repository of data of this sort will be used to defend existing economic arrangements against new entrants; and to prevent certain classes of arrangement from becoming established at all.</comment></comment>


Ask HN: What's up with this accusation of HN censorship? (blog.nodejitsu.com) - <AUTHOR>

I just saw this popup after following a link to nodejitsu from HN, how much of his claims are true?
--- hello, i see you are coming from hacker news.
the article you clicked on was most certainly not submitted by nodejitsu.
news.ycombinator has a long history of squashing articles and submitters that aren't funded by y-comb.
most of this is done through their "silent" banning and censoring mechanisms, that leave people not even realizing they have been silenced.
i hope you enjoy this article, and remember that HN is extremely biased and that you should keep your horizons broad. --- <comment><USER2> I doubt that HN censors people they disagree with. I've written many things that one could say are anti YC or anti-YC companies, and I have never been censored or had anyone email me telling to not do this. Several other people also who say 'anti-YC' things have been active on this site for years.

<comment><USER3> A prime example would be many of the negative comments regarding scribd.

</comment></comment><comment><USER4> I think that idea may come about because every YC launch or development usually hits front page and gets coverage while some others do not. This is fair. I believe it's the user's voting that appears to "game" the system, not anything unethical. A lot of people here have applied to YC or at least have a favorable opinion of it. We are on news.ycombinator.com after all, not hackernews.com. Some others who don't have as many natural followers will find their submissions less popular?

Quite honestly, I'd find it fair if posts that were anti-YC were quashed but I've seen enough I dont think that could possibly be the case.

</comment><comment><USER5> So, you read this on a page you reached from an HN post...

Well, if HN do some censorship I think that they have to fire who checked this link ;-)

</comment><comment><AUTHOR> I posted this because I was wondering if it was a new not-so-clever strategy to stir up a little controversy & pageviews.

</comment><comment><USER6> there's a bit of discussion in that link's comments: <http://news.ycombinator.com/item?id=1665999>

</comment><comment><USER7> They all got perma-banned I believe, hence the popup.</comment>


Ask HN: What skills do employers usually ask for in internships - <AUTHOR>

I'm a computer science student and I am going to start looking for internships by this fall so I could start next January if I find any. I'm wondering what technical skills employers usually look for in students. I definitely have no preference as to what specific field I get into right now but I see myself getting into the networking/data communications field in the future when I graduate.
I'm no genius nor a hotshot programmer, just the average joe who's very passionate about programming. I know a little about a lot of things (Java, C, C++, Python, Windows, Linux, etc) because I believe that I have my whole lifetime to master some or a few of those.
If you have any general advice regarding getting my first internship, by all means, please pitch in. Thanks! <comment><USER3> We use co-op students for (paid) four month terms. My number one concern when deciding to take an intern is "Am I going to get positive effort out of this exercise"? In other words, will the work the intern does significantly exceed the effort I have to expend training them?

So, the first thing I look for is evidence that they are quick on the uptake, self-motivated and so on. The second is familiarity with our basic computing environment - OS, editors, source control so that they can actually sit down and start doing real work as quickly as possible. You don't want to waste a couple of weeks having them learn to type 'ls' and use emacs.

Since we are a scientific organisation, I am not obsessed with specific language experience as long as the student has good experience with a "similar" language. This is because generally the students don't do "real" software engineering, they usually work in an existing framework, so they don't need advanced language skills.

So by having skills in a wide area, even if they are relatively shallow, you are already increasing your catchment area.

My gut reaction is "learn to use git", but I am not sure I could rationally defend it.

<comment><USER4> >My gut reaction is "learn to use git", but I am not sure I could rationally defend it.

Git might be a good indicator, even if it's not a tool used in the organization -- provided the person the candidate talks to knows of git. If someone knows git (or mercurial et. al.), I'm going to assume they've got decent knowledge of programming. They might not be the best programmer, but they probably want to learn, and are fast enough to learn new things.

</comment></comment><comment><USER5> I'd stress the importance of networking (the other kind): if you're somewhere with any sort of technology community, start attending local (free) events and meeting people in the industry. It's not a matter of going to the events looking for work, but to meet people. The more people you know, the easier it is to get what you want.

Second, an online presence is a good way to get ahead of other candidates. An active GitHub account will go a long way with employers. A blog will too, if you talk about relevant topics.

I'd focus less on specific skills and more on the ways you've demonstrated those skills. If you have worked on free-time projects, throw them up on GitHub and make sure the employer knows about them.

Finally, talk to other students at your school who have had internships. Not only will they be able to advise you, if they think you're a good candidate they can put in a good word for you.

<comment><USER6> _Finally, talk to other students at your school who have had internships. Not only will they be able to advise you, if they think you're a good candidate they can put in a good word for you._ \- Great point!

</comment></comment><comment><USER6> Great question. We've been talking A LOT with companies re: internships and entry level hiring for CollegeJobConnect because, well, that's what our company does! :)

Here are my thoughts:

For undergraduates, employers can't key off of past work experiences because many students simply don't have any (I didn't). If you have done an internship, awesome! Highlight that experience and make sure your description of what you did includes a "so what?" statement (ex. "Built a cool new widget in C++ for Acme Co. (so what?) _which improved our client service department's ability to handle critical requests and improve response time_ " - <USER2> example, but you get the point). All points should explain __what __you did and __why __it was important to yourself, to your employer, to the world in general, etc.

If you've worked on projects or have things you can point to online, highlight those too. Again, make sure you explain the importance of what you did and why the employer you are asking to hire you should be impressed (as in "Because of my work on Project X I am now a jQuery ninja and can produce incredible UIs" or "During Project X we won 2000 users and I learned the importance of client support and cost-effective marketing"). Along those same lines, if you have a blog or social media presence, make sure they all tie in together and tell your story well ... and that they display appropriate content :)

Definitely include as many objective metrics as you can: overall GPA, major GPA, SATs, any honors that you received, sports or clubs you participated in, and what your hobbies are.

That's what comes to mind off the top of my head, glad to chat a bit more if you'd like, hit me up at jeff at collegejobconnect.com - good luck!

</comment><comment><USER7> The biggest issue is the ability to learn quickly. There is probably little or no work experience yet. I would not put much weight into school projects. I would look for any contributions to open source or private projects.

My recommendation would be to work on an open source project starting now. You will get to work on a better project (since you get to pick) and quite possibly learn more. You might find out that this turns out better than an internship in the long road.</comment>


Delphi 10.4 Sydney Now Available - <AUTHOR> https://community.idera.com/developer-tools/b/blog/posts/rad-studio-10-4-now-available-learn-more <comment><USER2> With free community edition if you register for it. [https://www.embarcadero.com/products/delphi/starter](https://www.embarcadero.com/products/delphi/starter)</comment>


Python + Fabric Engine benchmarks - as fast as multi-threaded C++ - <AUTHOR> http://fabric-engine.com/2012/02/fabric-engine-python-value-at-risk-benchmark/

<comment><AUTHOR> Hi all - you might remember the Fabric benchmarks we did with node.js last year. We've now integrated Fabric with Python as well, so I thought I'd share the news.

An important change since last time - Fabric will be released as OSS (probably AGPL). We will take the usual commercial license/subscription approach (similar to 10gen with mongo).

Obviously there are plenty of ways to make the Python code faster - <USER2> purpose of the benchmark is to show the same performance as we achieved with node.js, within the same paradigm (dynamic compilation etc).

Thanks,

Paul</comment>


To Store the Wind and Sun, Energy Startups Look to Gravity - <AUTHOR> https://www.wsj.com/articles/to-store-the-wind-and-sun-energy-startups-look-to-gravity-11581657948 <comment><USER2> [https://archive.is/s7EgD](https://archive.is/s7EgD)

</comment><comment><USER3> I wonder if this article is going to be good. Seems simple enough all they have to do is show something that works.</comment>


Show HN: I wrote a gopher client and decided to put it on GitHub. - <AUTHOR> http://github.com/indrora/foxGopherClient

<comment><USER2> Coincidentally, I wrote a Gopher server (in Go!) during a meeting yesterday: <https://github.com/nf/gogopherd>

<comment><AUTHOR> Elegant! I like it!

<comment><USER2> Thank you.

It's rudimentary, but it works. It demonstrates a couple of Go concepts:

\- goroutines (to Serve each request)

\- interfaces (the Listing type implements the path.Visitor pattern so it can generate itself, and both the Entry and Listing types implement the fmt.Stringer interface so that fmt can stringify them).

</comment></comment></comment><comment><USER3> In some respects HN is a Gopher server adapted for today. Focused on content, links to information, and just enough detail to keep you going.

As a protocol, Gopher is straight forward. Whenever someone talks about the "semantic web" I'm always reminded of Gopher has been doing since 1991. It is in no way perfect, but worked well.

<comment><USER4> In the same vein, see: [http://gopher.floodgap.com/gopher/gw?gopher://gopher.thurman...](http://gopher.floodgap.com/gopher/gw?gopher://gopher.thurman.org.uk:70/1/reddit/) for a gopher interface to Reddit.

</comment></comment><comment><USER5> I wrote a Hacker News and Digg Gopher proxy.

gopher://synack.me/

</comment><comment><USER6> Huh, I had no idea people still cared about Gopher, but this thread is showing me otherwise.

I have fond memories of spelunking around gopher servers back in 1993. :)

</comment><comment><USER7> I like to use gopher for early demonstrations that some low-level networking code works or how it should be used. It is certainly easier to write working gopher client/server than to deal with intricacies of HTTP or most other protocols when you want to test that TCP stack or code that breaks down incoming byte stream into lines actually works.

And I'm seriously considering writing GUI gopher client as an all-encompassing example in dfsch.

</comment><comment><USER8> Gopher?! Why? Also, I'm pretty sure the reason most Gopher clients were abandoned was in fact due to the explicit _lack of_ coffee making, you might want to at least make some attempt at an implementation...</comment>


Accelerators Can't Be Rung Zero of the Venture Capital Ladder - <AUTHOR> http://venturefizz.com/blog/accelerators-can%E2%80%99t-be-rung-zero-venture-capital-ladder <comment><USER2> I don't see why anyone would conclude the VC business couldn't grow. Sure, individual partners can't sit on more boards. But (a) the ratio of board seats to money invested can shrink, and in fact has already been shrinking dramatically, and (b) new VC firms can be started. One of the most prominent firms, Andreessen Horowitz, is only a few years old.</comment>


Why ad blocking is not a moral dilemma  - <AUTHOR> http://monogatari.doukut.su/2011/11/why-ad-blocking-is-not-moral-dilemma.html

<comment><USER2> This seems like a very weak, self-justifying argument. For example, one of the arguments given is: A user not interested in advertising has to "hurt" either of the other two in the relationship.

It is clear to me that blocking advertising hurts the website author. At an extreme, if everyone blocked all advertising, then there are a very large number of websites which would run out of money and shut down in a very short amount of time. Clearly they are using the funds generated by advertising to stay afloat.

<comment><USER3> Ad blockers have been around for a long time. Anyone who hasn't factored in their existence into their business model has done poor planning. Companies which depend on high ad view rates to stay in business have a tenuous model.

There's also more than one type of advertisement. I don't like the visual ones with lots of movement, designed to attract my eye. If a site starts playing audio I almost invariably shut the window or hit the mute button. I'm more likely to get an ad blocker just to prevent that nuisance.

While a text advertisement, like what Google has, has less intrusion. So you can see ad blockers as a vote against certain styles of advertisement, and not against all advertisement. The question then is how to balance the needs of three different people (readers, writers, and advertisers).

Finally, there's a bug in Safari on the Mac. If Flash crashes then I have to restart the browser in order to get it working again. I actually use it as a sort of ad blocker; when I want to see something Flash-based I pop over to Firefox and reopen that page. It's even better in that detection scripts think that Flash is present, so don't give me fallback information.

Given that advertisements use Flash to display the ads, is it immoral for me to not restart my browser each time Flash crashes, just to see ads?

<comment><USER2> If you like flash ads, or if websites which rely on ads have a dubious business model, or blocking different types of ads, or flash crashing, does not (in my opinion) alter if not ad blocking is a moral issue.

Of course, all those issues can be discussed. I personally ad-block, because I have decided it improves my life greatly, and I have decided I don't care about websites which I like which don't offer me an alternative way to support them.</comment></comment></comment>


Lessons learned from growing LinkedIn to 175 million users - <AUTHOR> http://quibb.com/links/lessons-learned-from-growing-linkedin-to-175-million-users

<comment><USER2> "Control + F"

"password" - Zero Result found

Apparently, after 175 million users, they haven't learnt anything about correctly storing passwords. _chuckles_

\</comment><comment>--

Control + F "Make it impossible for users to unsubscribe to marketing emails"

I think there was a typo in the paragraph that is titled "Reduce friction vs. Increase desire", because for a lot of things there is ridiculous friction. I have email addresses that I have never signed up to LinkedIn receiving emails... Any time I want to unsubscribe to the emails.. I can't.

In order to unsubscribe, I have to sign in, but guess what, I never actually created any account so can't sign in.

\</comment><comment>--

LinkedIn offers a lot of value to (nearly?) everyone in business, I don't deny that, but the article was a little flakey and was more of an advertisement for Quibb than any substantial lessons you can learn from how LinkedIn has grown. (Ps. Sandi, I like Quibb, so I'm not bashing you)

<comment><AUTHOR> sure - totally agree re: passwords/unsubscribe/etc. I'm not saying LinkedIn has the best product or user experience or retention/engagement - but they have done a great job growing the userbase.

as for flakey - maybe you're smarter than most of the Growth Hacker Conference attendees :) when Elliot surveyed the audience about which channel they'd focus their time/effort on, the vast majority chose the channel with the lowest conversion rate (i'm assuming they thought it had the most potential upside?) - which is exactly the opposite approach that Elliot took (focus on what's working, let engaged users do the work, reduce engaged user friction), and what actually allowed them to grow.

</comment></comment><comment><USER3> Also: spam your user base with irrelevant stuff on a daily basis even when they've opted out of every email possible. Pretend it's an "accident".

<comment><USER4> I'm nearly to the point with LinkedIn where I want to take them to court. What they're doing is a clear violation of CAN-SPAM. I generally feel that kind of thing is a waste of the courts time, but I simultaneously feel that marking the messages as spam in gmail isn't doing enough to curb their annoying and illegal behavior.

<comment><USER3> Indeed.

And you know what annoys me more? There are probably 10s of LinkedIn engineers on HN who are probably reading this thread and know about this illegal spamming and should know better then to leave that unchecked.

</comment></comment></comment><comment><USER5> While they're clearly doing some things right, if I get another unwanted email mentioning the phrase "thought leader" I'm not going to be responsible for the results.

</comment><comment><USER6> There has to be a lesson somewhere about posting stuff on your company blog that targets your company's market instead of HN.

<comment><USER7> The HN audience has a high overlap with Quibb. Although less technical and development focused, I discover a lot of good startup and industry-centric content through the site.

<comment><USER6> HN is a public forum for sharing news with a large group of mostly strangers around the world. Quibb is for sharing news within a very small and private group of people that you work with and all the speech and thought restrictions that implies. That's not very high overlap.

Anyone can convince themselves this is their ideal audience and get some iota of validation by pooping out articles for us.

</comment></comment></comment><comment><USER8> "SEO"'ing you're way up to the top helps, too. LinkedIn is cancerous.</comment>


The Quiet Revolution in Programming - <AUTHOR> http://www.drdobbs.com/architecture-and-design/the-quiet-revolution-in-programming/240152206 <comment><USER2> At the risk of sounding like a nitpicker, as a statistician, I'll have to comment on the methodology. I believe the crucial clause in the article is

 _when the research and analysis firm Forrester recently surveyed our readers about how much time they spend writing in any given language_

When the results change over time as indicated by the two charts, that can mean one of two things: either a lot of people who worked in just one language in 2010 now work in several languages, or a lot of people who work in just one language have stopped reading Dr. Dobbs. In order to support the claim that it's mainly the first and not the second possibility, one would have to submit at least some supporting evidence. (Edit: at first I thought that one would want to contact the same people in both surveys, but no, that's not good. It leaves out the effect of new people entering the arena. This doesn't seem to be easy.)

And also, this perhaps being a matter of taste, I find it questionable to have a caption like "Fraction of programmers..." underneath the charts. As much as I respect and admire Dr. Dobbs (I have published there): not every programmer is a Dr. Dobbs reader.

<comment><USER3> I'm the author of the article. Let me try to address your thoughtful observations.

>This doesn't seem to be easy.

Quite agreed. It's not an easy thing to measure accurately. I believe the explanation for the numbers is indeed the first of the two options you present, as I wrote in the original piece. As the Dr. Dobb's readership has grown vs. 2010, both in terms of unique visitors to the website and subscribers, I don't think the second option is likely.

>not every programmer is a Dr. Dobb's reader

Quite true. This is a problem inherent in all surveys. The survey size for these two questions were 1143 in 2010 and 500 in 2012, which statistically speaking would be fairly representative samples. The real rub is that programmers are not a homogeneous group, so the results will change a lot from one type of programming to another. For example, Dr. Dobb's does not cater much to embedded developers, consequently the effect that they would have on the charts is not captured.

If I assess the 2012 numbers based on what I know anecdotally, they seem acurrate insofar as capturing the broad trend towards polyglot programming. What was counterintuitive, at least to me, was how much the trend accelerated in the last two years.

<comment><USER2> _This is a problem inherent in all surveys_

Sorry, I'll have to very strongly disagree on that one. If, for example, you conduct a public opinion poll in the United States, then all that matters is the size of the sample and your method of selecting the sample. If those are both adequate, then you can draw conclusions (with margins of error) about the entire population. Furthermore, you can repeat the same poll at different points in time and draw conclusions on the changes that you observe. What's happening here is different. Your population is all programmers. Of that, a subset is taken, namely, the set of all Dr. Dobbs readers. From that subset, you take your sample. I trust that the size of your sample and the method of taking it are fine. But we don't know if the subset from which your sample is taken is sufficiently random, and we don't know if and how it changes over time.

In short, you cannot draw conclusions about the entire population if your sample is taken from a subset that does not qualify as a random sample. That problem is very definitely not "inherent in all surveys," as you claim.

<comment><USER4> You remind me of this[1] interesting piece of recent research.

It turns out that if you perform social science experiments to determine human behaviour and your sample is almost entirely drawn from a population of white american grad students, your results tell you an awful lot about the psychology of white american grad stuidents, but not so much about human beings in general. Oops. Bang goes almost the entire edifice of modern behavioural science.

[1] [http://www2.psych.ubc.ca/~henrich/pdfs/Weird_People_BBS_fina...](http://www2.psych.ubc.ca/~henrich/pdfs/Weird_People_BBS_final02.pdf)

</comment></comment></comment></comment><comment><USER5> Do people realize the _huge hidden cost_ of this "polyglot programming" thing? Imho, we have two huge "blackholes" these days that suck resources form everything that matters: the "social everything, center around advertising, give stuff for free" black hole at the business level, and the "uberpolyglot everything", from languages to OSs at the technical level.

> We have had to become polyglots to develop almost any current application.

...in my experience, by working in 2 languages instead of one, the time it takes to deliver something grows 3-4 times (!!), and there's still all the "lost" training time: instead of learning new paradigms, patterns and way to solve problems, people spend inordinate amounts of time learning the details of new languages. I used to _love_ the polyglot way, but now I see language proliferation more as part of the problem than the solution. There _was_ and advantage of all this, but now most paradigms of concurrency and everything are cross-language, and even if some languages like Clojure or Haskell injected new or better refined ideas into the mainstream, these ideas are nor longer tied to a particular language.

I think we should invest as much as we can in _unifying_ languages and technologies, like:

\- using one language by making a traditional client side language work server side: _the Node way_

\- cross-compiling: _the X to Javascript compilers_ (like Clojure-script and Python to Js or Ruby to Js techs)

\- make languages use libraries from other languages: not to much exciting things happening here yet :( ...but I'd love having a way to, for example, mix C, Python and Ruby libraries inside a Clojure program, regardless of the performance or security issues

...they all seem like "boring plumbing work", I know. They are neither "exciting big problems to solve" nor "amazing business ideas" and you'll most likely neither change the world nor get rich by working on such things, but you can probably make a huge difference by working on such plumbing an let the really smart guys free to invent _really new_ things!

<comment><USER6> My reply is that you may be able to drive a nail with a brick, but a hammer works much better.

Same for programming. The more you are aware of, the better able you are to chose the better way of proceeding on a project.

I'm probably scarred though, I work with people who believe that c# and sql server can solve all the world's programming problems. (I like c# and sql server, but they aren't always the best solution for a given problem)

<comment><USER7> >The more you are aware of, the better able you are to chose the better way of proceeding on a project.

This is a part of the problem. "The right tool for the job" has become an end in itself, rather than a means to an end. People spend so much time trying to develop more than a superficial understanding of a vast array of languages and frameworks, simply so they can say they are using the "right" tool for the job (perhaps so their future "show HN" post can be sexy). The right tool should always be understood as successfully executing your project as the goal. Sometimes the right tool is simply the one that you or your team has expertise with, or has a deep body of experience built up on StackOverflow. The "right" tool in absolute terms is completely meaningless. Often times it seems like people forget this.

<comment><USER6> I didn't mention a "right" tool, I actually made sure to use the term "better", because "right" has those negative connotations.

For our purposes, there are "better" tools available than those that were chosen. A pain that we're feeling now, a couple of years on, as we start to migrate a live application to those other platforms. That's a big loss of productivity for us because choices were made to use tools that were familiar instead of figuring out if they actual made the most sense.

<comment><USER7> Heh you're right. It's interesting how one's expectations can totally change how you read a statement. I see the "right tool for the job" tripe repeated so much that I start to see it everywhere :)

</comment></comment></comment></comment></comment><comment><USER8> >Note the big spike on the left and the mostly sub-2% numbers for programmers coding more than 50% of the time in one language. I expect, after some reflection, that most readers will find this chart unexceptional.

Am I missing something? I find the first graph in the article quite difficult to comprehend in terms of what it signifies. Although the numbers are "sub 2%" after the 50% line, isn't it an aggregation across 5 data points on the x-axis and 7 languages that will still add up to a substantial number of developers who program mostly in a single language?

I am yet to meet someone who vastly switches between languages on a daily basis in given 12 month period. One occurrence is probably working on a python and javascript for a webapp and writing an occasional chef cookbook in ruby.

<comment><USER9> In the last 12 months I have written Java, Python, C++ and Go for work. I don't switch daily but it's not unusual for the switching be weekly or semi- monthly. That seems pretty polyglot to me. I'm not unusual at work either. Many of us switch among the big 3 of Java, Python, and C++.

It is possible that Google is unique in this though.

<comment><USER10> How do you like Go? I've been bouncing between Python, Clojure, and Go lately.

<comment><USER9> Go is my current favourite. It is opinionated in ways I appreciate and it is very low friction.

</comment></comment></comment></comment><comment><USER11> There's no way that "HTML/CSS/Javascript" should be lumped together.

<comment><USER12> Agreed.. I don't recall seeing SQL variants in there either. I do think that HTML/CSS could be removed, or lumped together. There's a lot of growth/movement in server-side JS between NodeJS and MongoDB alone.

</comment></comment><comment><USER13> I've never met a one language programmer. I have, however, met some who were only proficient in one. That's the big difference these days. You now have to be proficient in various languages in order to build stuff.

<comment><USER14> All of my coding is in C# (for work). I don't work in anything else.

Of course, this is probably a lot rarer outside of business apps.

<comment><USER13> I bet you have had to write some SQL... (:

<comment><USER14> Nope. I write XML messages that are then sent to services that handle that kind of thing. (I know SQL, due to a previous job, but I don't write it in my current position )

</comment></comment></comment></comment><comment><USER15> Many years ago, I was working with a Perl programmer and, making conversation over a lunch or coffee break, I asked him what other languages he knew. He replied, "only Perl." I was shocked and persisted in my questioning, even offering up other common languages in the hopes that he was being merely forgetful, but he was quite clear that he knew only a single programming language. This, I find very scary.

This is probably not far from the norm where a programmer "knows" multiple languages but are only expert in one. This is almost as scary to me.

At least for me, there's a refreshingly synergistic effect from knowing and understanding multiple languages well.

In fact, I would go so far as to claim that a good programmer should know and understand a variety of languages and, ideally, use them frequently.

<comment><USER16> Why should it be scary? If you need someone to write some scripts in Perl, it should be just fine to use someone who mainly just knows Perl. Anyway, they can learn other stuff as they need to, once they know one language well, but you haven't made a case that this is actually necessary.

<comment><USER15> It's scary because, knowing only one language means that he can only think about, and express solutions to, any problems in terms of that language. In this case, he was not expert at Perl either, so the net result was ... not good. I remember seeing Perl programs that would have been better written as very short shell scripts.

Note that "mainly just knows Perl" is quite different from "only knows Perl".

Since then, I have never met another programmer who knows only one language; I think they are pretty rare. As for proving the case, I don't think I can: there may well exist a good monolingual programmer out there. It's just not likely.

<comment><USER17> > I remember seeing Perl programs that would have been better written as very > short shell scripts.

This is really common. Anyone who spends time with code should take the time to learn the *nix toolset. It's a shame to see so many people reinventing tools that have been around since the 70s.

</comment></comment></comment></comment><comment> D-Coder Assuming that the article is correct (and perhaps it is not), I think this is bad for software development.

It takes a lot of work to become really proficient in any one language. Multiple languages? For most people, that means only adequate proficiency — or even barely adequate proficiency — in some of them. Don't we already have enough lousy programmers?

I do expect a programmer to be able to handle at least a few languages, let's say C, HTML, CSS, Java, PHP, Emacs LISP. Now throw in SQL, JavaScript, C++, ASP.Net, Python, Ruby, etc... It's not just syntax. How can anyone know most of the ins and outs of all of these, learn best practices, understand the libraries, keep up to date on new versions?

</comment><comment><USER18> From my (non coder) point of view it's hard to understand what drives the continual expansion in programming languages.

Is there a general principal for creating a whole new language as opposed to adding features.? Could you have a language where you could have a setting for something like static typing vs dynamic typing? The language would get more complex, but seems like it would still be less complex than a whole new syntax?

</comment><comment><USER19> Is this 'news'? I thought everyone seemed to understand that this has happened for some or is happening for many. I wrote this a year ago and didnt think the topic was groundbreaking. [http://jobtipsforgeeks.com/2012/03/16/the-future- polyglot-pr...](http://jobtipsforgeeks.com/2012/03/16/the-future-polyglot- programmers/)

<comment><USER20> Web programmers tend to take this for granted, but there are whole swaths of the software world that aren't web applications. For developers in those areas it may very well be something they haven't considered.

</comment></comment><comment><USER21> I switch between Javascript, Python and PHP on daily basis. If I have no other choice I use java for the task given or C# ... I think that heterogeneous programming and language interoperability will be the next nuts that we will have to crack - to learn that languages are tools and we should use the proper for the task.

<comment><USER5> All the currently successful languages became so because of their _universal_ character: you can write server, a GUI app, or code a ML library that implements a neural network in either C or C++ or Java - they all offer the balance of abstraction tools and performance needed to be universal.

The _proper tool for the task_ way is pushing things backwards! By going this way you're running towards a brick wall, the wall of _your limited brainpower_ : at one point you will not have enough brainpower to keep juggling the increasing number of "proper tools" and you'll have to stop growing, stop learning and enclose yourself in warm niche/bubble. Yeah, this is exactly what your manager wants - you'll become a good but replaceable "programmer specializing in X, Y and Z" instead of the "uncathegorizable freak" that embeds a Scheme interpreter only he understands in his C++ code, can do in a day what the rest of the team does in a month, but that may bring the whole company close to bankruptcy if he's hit by a bus because, well ...nobody can replace him :)

"Universal" tools are _always_ better overall even if they are worse for every particular situation you can imagine because the "problem space" in software is expanding. I an "all is open-ended" world universal tools are the only to avoid being trapped in a "bubble" (yeah, you may have warm and cozy in a "web dev with rails" bubble or "frontend dev in javascript" bubble, but you're still in a bubble!).

<comment><USER21> Let me get this straight - the guy that can write high performance scalable async code in erlang/go for the backend, design snappy and responsive UI in javascript or C# and modeling/analytics/stat tools in R,Haskell,Python all with easily defined and usable and language agnostic interfaces is easily replaceable living in a bubble, but write all of this only in Java and you are a programming god?

The pipeline was what make Unix great - the ability to chain different small stuff together. Huge monolithic is something I dislike. Personal taste.

<comment><USER5> I don't mean monolithic, I mean homogeneous / not heterogeneous. The Unix way was great while all the tools were written using a small set of languages and techs (C, Bash, maybe C++ here and there...) because a guy with a certain set of skills could just pop the hood up, get the code, and delve into the guts of any program... now you have "shit, I chose Ruby but that cool lib is Python" or "why is that huge Perl script used to configure and start this Erlang program?".

By "Java" (bad example, I agree) I mean any multi-paradigm, multi-platform, general purpose language: it can just as well be Scala on the JVM or Python if its performance is good enough for you and you can put up with the way it annoys you out of your mind if you try to do functional programming in it. All languages claim to be so now but in practice they are not! If you use Haskell for something, Erlang for something else and integrate with some R code by means of some Python or C code, you _pay a huge price_ in increased complexity and you'd better make sure the advantages given by using "the right tool for the job" are worth this price... If you can master the kind of polyglot skills you talk about, great, you're definitely not in a bubble, but this is because you are one of the top 0.1% in terms of "brainpower", not because you used you bp efficiently - imagine what you could do if all the mental energy spend understanding all the little tech details for all those things were focused on solving just one problem and with a smaller number of tools!

</comment></comment></comment></comment><comment><USER22> Funny conclusion: Java stays roughly the same between the two graphs, if you "join" C and C++ in both graphs, they, too seem rather similar, and JavaScript probably got a bump because the second time, "HTML/CSS" was added as a "programming language". Apart from the other errors mentioned here, this seems very much like "only believe the statistics you have faked yourself"....

<comment><AUTHOR> If you're looking at how individual languages compare, you're missing the point. If all these languages were folded into a single line, the editorial's main point would be exactly the same.

</comment></comment><comment><USER23> I wonder how this would correlate to different development stacks. It's possible a "language" used to mean something more like an ecosystem.

</comment><comment><USER24> seems like a big decline in developers working exclusively in the windows ecosystem; C#, VB.NET.

<comment><USER25> I'm guessing that reflects a shift in enterprise system front-ends from the rich client craze to the webapp one.

<comment><USER26> What rich client craze? In 2010?

</comment></comment></comment><comment><USER27> What was the actual question asked? (And did it change at all between surveys?)</comment>


Ask HN: Map of YC Companies? - <AUTHOR> Sam recently tweeted "I think 2017 was around when it stopped being an obviously good idea for startups to be in the bay area.."
I'd love to see a map showing the geographic distribution of all live, dead (and everywhere in between) YC companies - perhaps accompanied by valuation metrics.
Does anything like this exist? If not, would be a cool thought experiment.. <comment><USER2> You are probably seeking this: [https://yclist.com](https://yclist.com)</comment>


Ask HN: What should I build (for OSX)? - <AUTHOR>

I'm looking to build my fledgling Cocoa skills and I want to build an OSX app. What should it be? Here are my ground rules:
1. It must be genuinely useful, not just an academic exercise.
2. It must be small enough in scope so that a competent OSX developer could build it in about one month full-time.
3. Bonus points if it's something I can sell.
So what should I build? <comment><USER2> I started with Core Animation. Now that you know C and some objective-C, you need to learn about Quartz, NSWindows, MVC, AppKit, Foundation, and other parts of Cocoa like Core Data (more on this later).

My first serious project with Cocoa was on a fairly tight timeline (a month for two apps, in fact) and I had only attempted tictactoe in Obj-C years before. What I did was immerse myself in the material and my project.

The project itself was for a museum in NYC, which has 30" touch-screens that let the visitors interact with a visual catalogue of the collection. This was a great introductory project for a few reasons.

First of all we had a great design partner. He built a very simple interface that remained constant through the entire project because he thought it out concretely before implementation. In other words, he considered the data very carefully and determined the fixed way to present it.

The second thing is that in order to import this collection's catalogue into the app, I had to build an XML parser that runs on a background thread while the UI displays a loading screen. That part was a good introduction to building an app and watching what it does in the Console, without getting into the nuances of Core Graphics and drawing, etc.. I recommend you start with something like this so that you don't get overwhelmed. It's extremely important to learn about correct memory management. Once you've got the basics, look into @property also.

From there, I had to learn about how make an application with a special kind of window, work with drawing NSViews and CALayers onto the window, learn about CAAnimation, Core Graphics, etc.

Before I built the app, I worked out my equations for laying the content on the screen and what kind of transformations I'd need to apply. Then I was able to set about building it simply.

At the time I didn't know this, but I can tell you from experience that it's very much worthwhile to look into Core Data. Even if your project is very simple and you require persistent data storage. I personally like to use json- framework and serve my app bundled JSON at initial lunchtime, with net updates after that, then do an import into my Core Data model, but this is really decided by what kind of app you want to build. I used XML for the museum project because we didn't know about json-framework yet. But it turns out that JSON translation into Cocoa objects has been much faster.

From here, you have a few options. You can either continue to develop on the desktop or you can move to iOS without very much difficulty.

If you are going to write mobile apps later and your app will interface with an existing web service, you may be better off using three20 and its http request libraries with JSON support to get data in real time. The Facebook app works like this. Actually three20 is a great option to go with for many apps. It's worth a look too, but make sure you understand UIKit as well as you can before you use three20. You still need to know UIKit to use three20 properly.

In order to determine what project you should build try to observe what kind of problems you have in daily life and what could be built to facilitate them. OS X is a wide topic and you could be talking about a GUI application, a kernel extension, or perhaps a web server. Each of them are projects which could take a month to build.

Hope this helps. Don't hesitate to ask any questions, and remember that Google and the Apple dev forums are great resources.

<comment><USER3> _Actually three20 is a great option to go with for many apps._

This is the only bit of advice in your post that I completely disagree with. Three20 may have some nice UI bits, but it is a very poorly designed framework. I say this having looked at it before and after Facebook made a big redesign of it (breaking backwards compatibility and minimally documenting the changes.)

You can't add one view without adding a dozen other classes. Its not very well documented. It adds a large amount of bloat to the binary and drastically increases compile time.. I can go on, if you like.

<comment><USER2> We agree on those points, however. It's a big pain in the backside that they don't document their API better. And many of the classes, like TTPhotoViewController and TTScrollView, have some big problems that require modification to overcome.

But besides being a free library, I used three20 in many of my recent apps because I have been working with publishers to build navigation-based apps that require things like image caching and URL navigation. A number of other features of three20 are quite welcome, despite their quirks.

I usually try to do a quick test of the framework before I integrate it into a project and guarantee that it will work, because, you're right, some of them don't behave as advertised. This is even the case with some of Apple's libraries, but I daresay their documentation is better than three20's.

</comment></comment></comment><comment><USER4> I am not a developer, but from what I've seen, many successful projects start with a developer scratching a personal itch. So maybe your first app should be something that would be useful to you personally.

</comment><comment><USER5> An App to manage all my scanned documents. Interface like iTunes, but each document can be a PDF/TIFF or emailed document I want to save and archive forever - like each month I scan my bills, my current lease, my employment contract, birth certificate, etc etc.

Bonus points if you can encrypt and backup to Amazon S3 or something.

37 Signals do the same, but I would like to save everything locally, not to a webapp. [http://37signals.com/svn/posts/585-going-inbox-zero-on- your-...](http://37signals.com/svn/posts/585-going-inbox-zero-on-your-paper- mail)

<comment><USER6> <http://www.evernote.com/>

</comment></comment><comment><USER3> A twitter client. No, really. There's only a small handful of native Mac twitter clients, compared to the plethora of iOS clients. And I believe that @ev recently said that Tweetie|Mac isn't going to get updated anytime soon.

Or a small app that only runs in the menubar that will disable or enable bluetooth whenever I hit a key combo. Or when I move into or out of a certain location (Core Location exists on 10.6). Maybe if the person's on a laptop and they disconnect from a power source, turn it off, etc.

<comment><USER7> Have you tried MarcoPolo? It does context based switching of just about everything, and its free. <http://www.symonds.id.au/marcopolo/>

<comment><USER3> Yup. However, from MarcoPolo's page:

 _There are known issues with Snow Leopard:

WiFi evidence source and ToggleWiFi action do not work

Bluetooth may not work, or may cause crashes_

</comment></comment></comment><comment><USER8> I desperately need an app that watermarks a bulk a amount of images. Let me drag in photos, and then control let me resize the images and control the size of a specified image(s) to be used as a watermark. For example, it should let me apply one image to every corner if I wanted.

ie: [http://sphotos.ak.fbcdn.net/hphotos-ak- snc4/hs814.snc4/69481...](http://sphotos.ak.fbcdn.net/hphotos-ak- snc4/hs814.snc4/69481_452855973119_111404718119_5310325_7358898_n.jpg)

</comment><comment><USER9> I would love a screensaver that works like the Origami slideshow mode on the iPad, only for my desktop machine. I would imagine it'll be an interesting challenge using Core Animation and what not.

Bonus points if it can use photos from iPhoto!

</comment><comment><USER10> This is something I would pay for (and I am actually thinking to learn Objective-c just to build it myself because as far as I know, there aren't any good ones around): build an OSX Postgresql GUI client.

<comment><USER11> Or a client that can be used with a variety of database servers.

</comment></comment><comment><USER12> I'd love an Android-style notification bar for OS X - one where an incoming IM or whatever rolls the menu bar up, displaying the message briefly, then rolls back down to the standard menu bar.

<comment><USER9> Do you mean like Growl? (<http://growl.info/>)

</comment></comment><comment><USER13> A Pomodoro app might be a good start.

</comment><comment><USER14> Mindfulness application that would ring a gong at random times, at a user selectable frequency. e.g. seven times in an eight hour span.

</comment><comment><USER15> An html export Xtension for QuarkXPress that really works.

</comment><comment><USER16> Gui for grep command.</comment>


The Most Common Marketing Mistakes Made by Startups - <AUTHOR> http://inboundrocket.co/blog/the-most-common-marketing-mistakes-made-by-startups/

<comment><USER2> You know, I hate it when articles that talk about common marketing mistakes make some serious marketing mistakes. In this case, the author needs an editor and the website needs to seriously fix its mobile interface. How will anyone trust you if you can't present a professional image??</comment>


Tips and tricks for navigating large codebases - <AUTHOR> https://medium.com/p/b73d90abc075

<comment><USER2> I continue to be amazed at just how functional vim+cscope can be for this job. There is very little I can't find with cscope, and vim is such a superlative editor for navigating around a world of words ..

If you've not discovered cscope, I urge you to set it up with something large, like the Linux kernel, and give it a try. It's a fantastic navigation tool ..

[http://cscope.sourceforge.net/large_projects.html](http://cscope.sourceforge.net/large_projects.html)

</comment><comment><USER3> ack[0], ranger[1], and tig[2] are very useful tools to add to this list of "tips and tricks". Also mention gitk's importance, for tig+gui.

—

[0]: [http://beyondgrep.com/](http://beyondgrep.com/)

[1]: [https://savannah.nongnu.org/projects/ranger/](https://savannah.nongnu.org/projects/ranger/)

[2]: [https://github.com/jonas/tig](https://github.com/jonas/tig)</comment>


How We Impersonate Users to Fix Problems Faster - <AUTHOR> https://eager.io/blog/how-we-impersonate-users/

<comment><USER2> Symfony Framework has this built in and it's a real treat to use. [http://symfony.com/doc/2.0/book/security.html#impersonating-...](http://symfony.com/doc/2.0/book/security.html#impersonating- a-user)

</comment><comment><USER3> I remember having seen this when the admin panel interface of Twitter leaked, although I don't know whether those screenshots were legit or not.</comment>


Bonsai.js: A New Graphics and Animation Library - <AUTHOR> http://bonsaijs.org/ <comment><USER2> I have what may be a silly (or just uninformed) question:

This, d3, etc. all look extremely cool and like great ways to do procedural graphics creation / animation.

Has there emerged yet a Flash Builder-like tool for Canvas-based web graphics yet? I feel like there's a fundamental limit to how widespread procedural graphics production will be since many designers/animators/game developers a just don't work that way -- they need visual tools. Or so I assume.

<comment><USER3> Adobe is moving somewhat that direction with an experimental product called Edge Animate (though oddly it does not use canvas):

<http://html.adobe.com/edge/animate/>

They also are working to allow you to export Flash to Canvas through what they call Flash Professional Toolkit for CreateJS.

<http://www.adobe.com/devnet/createjs.html>

<comment><USER4> Animate doesnt work on older browsers and produce slow and dreadfull code. Animate is everything flash is hated for without the power of actionscript.

CreateJs is a better solution, but you still need canvas ( you can still polyfill with flash canvas for older browsers )

</comment></comment></comment><comment><USER5> This is very cool. I've been wanting an alternative for Raphael in projects that don't require old IE support because of some compromises Raphael does in order to support VML.

I am a bit worried that I can't find a way of changing multiple elements at once, in d3 for example I'd do...

        d3.selectAll("rect").attr("fill", "red");

In Raphael I'd do...

        var set = paper.set(//insert rects here);
        set.attr({"fill": "red});

But in Bonsai I'd do...

        var set = [//insert rects here];
        set.forEach(function(el){
          el.fill("red");
        })

So it doesn't abstract the iteration for you.

<comment><USER6> Personally, I never did like things abstracting the iteration for me. In Javascript, I tend to favor explicit loops over huge chains of method calls, or visually confusing abstracting like the Raphael example. Just looking at that Raphael example, I'd have to actually think about the code to understand what it does right off the bat (shocker, I know, but I think you get my point). I actually think that the Bonsai example there is the most straight forward and flexible. Of course, this is all just opinion.

<comment><USER5> When working with DOM elements (SVG elements are also part of the DOM) it get messy pretty quickly. Think of it as syntactic sugar, because you can always opt for using standard arrays instead of using Raphael sets...

        var rects = [//insert rects here]
        rects.forEach(function(rect){
           rect.attr({fill: "red"});
        })

</comment></comment></comment><comment><USER7> Got latest (production) FF here, and Music and Pong examples don't work.

Music shows Play button, which I click, it turns into Pause and then nothing happens.

Pong shows yellow/orange rectangle with what seems like a button, with its top edge striking through a (misplaced?) "Go" text. Nothing is clickable, left/right arrows have no effect.

(edit) I see it needs FF18, which I gather is a dev release. Perhaps you want to add compatible browser detection code? And complain accordingly.

<comment><USER8> FF 16.0.2 here and the Pong example worked for me. I had the same behavior as you for the music example though.

</comment></comment><comment><USER9> I really expected that the demos would properly work in the browsers that Bonsai is advertised to be compatible with.

(I tried "Blob" and "Pong", both don't work in Opera 12.10)

Of course I understand that a framework supporting certain browsers doesn't mean that any other program (demo) will work automatically, but for the purposes of demonstration, you probably should make sure that they do.

After all, browser support is just as much a feature that should be demo-ed as pretty graphics are.

(And I really don't understand, what is this thing people do in their JS code that Opera chokes on? I write JS code all the time and it generally works on Opera/Firefox/Chrome with no tweaks. The very rare inconsistency is usually when one browser is more lenient than the other wrt ECMAscript, so even when it "works in Firefox", it was code that could use cleaning)

</comment><comment><USER10> Works way better than I expected on chrome 18 on android (nexus 7) solid 16 fps on the blobs demo. I wonder if you could take advantage of hardware better.

</comment><comment><USER11> This is beautiful work. By way of comparison, I've recently created Pablo, a very lightweight and expressive JavaScript library for creating and manipulating SVG: <http://pablojs.com>

Pablo aims to be a thin layer over SVG, is inspired by the APIs for Raphael, jQuery and Underscore, but is only 3KB.

</comment><comment><USER12> FWIW, works beautifully on the ipad

</comment><comment><USER13> How does this compare to D3.js?

<comment><USER14> From someone who likes to look at these kinds of libraries... D3.js vs animation/graphics libraries: D3.js targets processes over arrays of data, perfect for designing views of data; these other libraries (like raphael.js, jquery.svg, etc) target transformations and tweening, perfect for objects in motion.

</comment></comment><comment><USER15> At first blush, the "animate" api call seems to work a lot more inuitively than d3 or raphael...might have to give this one a look.

</comment><comment><USER16> Wow the API reminds me of the Sparrow framework on OBJ-C. Perfect for games, does the performance allow for 2d games?

</comment><comment><USER17> Doesn't work on android phone

<comment><USER18> You should be more specific about which phone (at least, which version of Android its running) as well as which browser you're using. Works fine in chrome with the two tablets I have about (galaxy tab 2 7" and the nexus 7)

</comment></comment><comment><USER19> How is it better than Raphaël?

<http://raphaeljs.com/></comment>


Faulty Posterous, only the features that will have the biggest impact matter - <AUTHOR> http://faulty.posterous.com/

<comment><AUTHOR> For some background you may want to check following posts with comments:

<http://faulty.posterous.com/0-plain-text-emails-ftw#comments>

[http://faulty.posterous.com/1-support-for-local-inline- image...](http://faulty.posterous.com/1-support-for-local-inline-images-in- markdown#comments)

I thought it may be the right mail-driven blog platform since markdown introduction, but unfortunately I was wrong.</comment>


14 Days of jQuery and the New API Browser - <AUTHOR> http://blog.jquery.com/2010/01/08/14-days-of-jquery-and-the-new-api-browser/ <comment><USER2> Does anyone know what new features / improvements will jQuery 1.4 bring? I can't seem to find a list of them anywhere.

<comment><USER3> Some of the API changes can be found here: <http://api.jquery.com/category/version/1.4/>

A full changelog, along with information about the performance improvements, will be forthcoming.</comment></comment>


Compile OCaml to JavaScript, use ReactJS, bindings to ReactJS, several examples - <AUTHOR> https://github.com/fxfactorial/ocaml-reactjs <comment><USER2> For those interested in this, [https://github.com/bloomberg/bucklescript](https://github.com/bloomberg/bucklescript) is an alternate (albeit new) OCaml to JS compiler. There's already talk about supporting JSX syntax: [https://github.com/bloomberg/bucklescript/issues/162](https://github.com/bloomberg/bucklescript/issues/162)

<comment><USER3> Differences from js_of_ocaml (not an easy find)

 _Js_of_ocaml takes lowlevel bytecode from OCaml compiler, BuckleScript takes the highlevel rawlambda representation from OCaml compiler

Js_of_ocaml focuses more on existing OCaml eco-system(opam) while BuckleScript's major goal is to target npm

Js_of_ocaml and BuckleScript have slightly different runtime encoding in several places, for example, BuckleScript encodes OCaml Array as JS Array while js_of_ocaml requires its index 0 to be of value 0.

Both projects are improving quickly, so this can change in the future!_

<comment><USER4> I haven't really gotten into much ML yet, and I'm curious to hear what people knowledgeable with OCaml think about [http://facebook.github.io/reason/](http://facebook.github.io/reason/)

The name makes it impossible to research to find any blog posts or anything, but the familiar syntax alone might make it at least a first step for me.

<comment><AUTHOR> Speaking for myself, I think Reason is a very good thing and rewriting this in Reason or adding a Reason layer is a goal/TODO.

<comment><USER4> That's awesome and great work.

I know it's dumb that the thing holding me back from OCaml is the syntax, but after giving up on an Om project I've come to accept js will always be the greatest common denominator.

<comment><USER5> Maybe consider Scala? It's an ML family language with more familiar syntax, and also has a Javascript backend.

</comment></comment></comment></comment></comment></comment><comment><USER6> In the same vein, there are also some F# to JS compiler projects such as Funscript ([http://funscript.info/](http://funscript.info/)) and Fable ([https://github.com/fsprojects/Fable](https://github.com/fsprojects/Fable)). F# is an open-source Ocaml inspired language for .net.

<comment><USER7> Also plugging Websharper ([http://websharper.com/](http://websharper.com/)) which is a full web framework that includes a F# to JS compiler to write the client-side part of the code.

Though you can use just the compiler inside a regular ASP.NET MVC project, if you so choose.

</comment></comment><comment><USER8> FYI: you can try bucklescript compiler in browser, and see generated JS code side by side instantly [https://bloomberg.github.io/bucklescript/js- demo/](https://bloomberg.github.io/bucklescript/js-demo/)

</comment><comment><AUTHOR> opam version is a little bit behind curve, use `opam pin add -y reactjs email@example.com:fxfactorial/ocaml-reactjs.git`

<comment><USER9> I've been learning OCaml and hoped I could find something like this. Thank you.

<comment><AUTHOR> Thanks! Star it if you like it, use it and open issues if any arise.

</comment></comment></comment><comment><AUTHOR> Sean just made this awesome much more real world usage example of a TODO MVC : [https://www.dropbox.com/s/um29z2793ta7s9l/todomvc_state_repl...](https://www.dropbox.com/s/um29z2793ta7s9l/todomvc_state_replay.mp4?dl=0)

</comment><comment><USER10> ClojureScript is better than that, except for the type system.

<comment><USER11> It's probably worth elaborating your opinion here. I've used ClojureScript _heavily_ and feel I have a good sense of the comparison, but someone else reading your comment wouldn't be any better informed for it.

I'm genuinely curious as to your comparison though, would love to read it!

</comment></comment><comment><USER12> How is the performance?

Imho, we need an equivalent of the "great programming language shootout" for all the AltJS languages.

<comment><USER8> For bucklescript, the performance is excellent, better than handwritten JS: [https://github.com/bloomberg/bucklescript#more- examples-1](https://github.com/bloomberg/bucklescript#more-examples-1)

</comment></comment><comment><USER13> Isn't this a less polished version of Elm?

<comment><AUTHOR> This has nothing to do with elm..

</comment></comment><comment><USER14> Why?

<comment><USER15> A sane, powerful type system is actually enough of a rationale and a selling point, at least for me.

Also, allowing side-effects while still providing the mentioned type system makes it potentially much easier to integrate with existing JS code.

<comment><USER16> Another reason for it being "much easier to integrate with existing JS code" is strict evaluation.

Haskell is lazy, which means using GHCJS to compile it to JS produces code full of explicit thunks (think of promises). Both Elm and PureScript are compile-to-JS-languages that inherit a lot from Haskell, but not it's laziness.</comment></comment></comment>


Copyright Infringer Tries To Shut Down Reporting On Her Infringement - <AUTHOR> http://atty4kids.org/petapixel-michael-zhang-exploits-disabled-kids-non-profit-chairman-4-cah/

<comment><USER2> I thought this whole argument was over weeks ago?

It's now devolved into her saying he pulled the DMCA requests because he was lying all along and she holds the copyrights after all. Despite her previous emails never hinting at that at all. And her argument to prove she owns the copyright is that the screen shot has her watermark on it?

Am I right here or am I misunderstanding?</comment>


Forget the iTunes LP, Apps are the New Album - <AUTHOR> http://www.readwriteweb.com/archives/forget_the_itunes_lp_apps_are_the_new_album.php <comment><USER2> Yes, but what happens when the latest 'remix your artist blah' (Macromedia Flash programmes written originally by Koan/Brian Eno and Coldcut), gets tired, and they have to think up something else? Shouldn't the music stand on its own merit?</comment>


Bezos' ex-wife: Wealth a result of 'collective effort' and 'social structures' - <AUTHOR> https://www.cnbc.com/2020/07/29/jeff-bezos-ex-mackenzie-scott-on-her-billions-and-philanthropy.html <comment><USER2> It's easy for women such as Mrs. Bezos and Mrs. Gates to feel guilty about having vast wealth they did not earn.</comment>


Getting Started with iOS Development using Sinatra on Heroku - <AUTHOR> http://devcenter.heroku.com/articles/getting-started-ios-development-sinatra-cedar#create_your_ios_client_app

<comment><USER2> This was already discussed four days ago: <http://news.ycombinator.com/item?id=3576759></comment>


Slicedham - engineering stories - <AUTHOR> http://www.slicedham.co/ <comment><USER2> Hi Everyone,

Happy to answer questions about the site. This website spun out of this github repo, [https://github.com/kilimchoi/engineering- blogs](https://github.com/kilimchoi/engineering-blogs). As an avid blog reader, I wanted to put together a place where I can get the latest news on software development and learn from them.

</comment><comment><USER3> So is this like [https://lobste.rs/](https://lobste.rs/)? What are you doing differently?

<comment><USER2> Well, for better or worse, lobste.rs severely restricts signups so you cannot really participate in the discussions. I opened it up for slicedham so that anyone can submit interesting posts and comments.</comment></comment>


The Afterlife Is Expensive for Digital Movies - <AUTHOR> http://www.nytimes.com/2007/12/23/business/media/23steal.html?ex=1356066000&en=e0c41eeae3346782&ei=5090&partner=rssuserland&emc=rss

<comment><USER2> One way to solve the problem is to encourage people to copy your data. Historically the information that survived best has been whatever got copied most.

<comment><USER3> Or just wait for Moore's law. In 2007, internet storage is $3/GB/yr, much lower than what it was/would have been in 1997. Those prices are probably going to come down as well, so the $200k/yr estimate seems way high.

(I wonder if Pixar's costs are lower, and they can just store the bzipped rendering scripts and soundtrack.)

<comment><USER4> Storage is just a small part of the problem. Formats change all the time, and who knows if it's readable in 50 years?

<comment><USER3> then it makes sense to store, along with the data, two codecs that will make a array of bitmaps and an uncompressed raw audio file. (project gutenberg, for example, always has a plain text version whenever there's a more elaborate format.)

</comment></comment></comment></comment><comment><USER5> > until some enterprising executive decided that the time was ripe for... a > 25th-anniversary 3-D rerelease of "Barton Fink," with a hitherto unseen, > behind-the-scenes peek at the Coen brothers trying to explain a Hollywood > in-joke to John Turturro.

Man, I'd buy that in a second.

</comment><comment><USER6> This is a very silly article. Storage gets progressively cheaper. If it costs 2^18 dollars to store it today, it'll cost $2^17 to recopy it next year, $2^16 the year after that, and so forth.

Basically, if it costs N dollars today, it will cost roughly 2N dollars over its lifetime.</comment>


Homeland Security Proves It Knows Little About The Internet - Or The Law - <AUTHOR> http://www.techdirt.com/articles/20101217/01190512310/homeland-security-presents-evidence-domain-seizures-proves-it-knows-little-about-internet---law.shtml <comment><USER2> The problem here is not so much with a judge or magistrate being ignorant of technical issues but rather with a set of laws or procedures that allows a prosecuting authority to come in with a heavy hand to get onerous remedies without affording the affected party a proper opportunity to respond, at least at the first step in the proceeding.

As long as the affected party gets a fair opportunity to respond, that party will put contrary evidence and arguments before the judge or magistrate, including affidavits of experts who explain the relevant technical issues. Once a full record is before the court, issues tend to be fairly and properly decided.

Obviously, at the warrant stage in this proceeding, everything was one-sided. In such cases, at least at the _ex parte_ phase, things will tend to be "rubber stamped" by an official, such as a magistrate, who probably has all of 10 or 15 minutes to devote to considering this particular item as one among what might be dozens of items presented to that official in a given day.

The key is always one of due process. If all sides get to present their case, judges and magistrates will tend to conscientious and well-supported decisions. They do not need specific technical training to be able to do this, as they will usually be well-educated by the affected party on whatever technical deficiencies might exist in the prosecutor's position. That obviously did not happen here because this particular step appears to have been decided based on a one-sided presentation only.

<comment><USER3> Although your argument stands up for situations under normal due process the special exemption cases like this shift the burden of education and responsibility to the judge. In a case where no due process is given the judge needs to be held to a much higher standard. In this situation the judge's order is a tremendous exercise of power which needs to be balanced with comparable responsibility and accountability.

</comment></comment><comment><USER4> "Equally troubling is that magistrate judge Margaret Nagle signed off on the warrants (literally, with a rubber stamp) without questioning any of this, from the look of things."

When judges sign off on stuff like this, do they consult at all with independent technical experts on the implications of the evidence, or do they just take the conclusions at face value? I sure hope they consult because even if they're good at what they do, how can they be expected to be any sort of check on the process when they haven't the technical background to interpret the evidence?

<comment><USER5> I wonder if a judge would be willing to shut down this site simply because it's titled "Hacker News." It doesn't seem to be out of the realm of possibility considering the processes followed in this case.

<comment><USER6> In a previous job I was told to stay away from any "hacking" web sites because they watch everything. I didn't read Hacker News at work for 3 months.

Thankfully, I got laid off from that job and now have a much better one where I'm encouraged to read all the hacker stuff I can. :)

<comment><USER7> Yeah, I hear this from time to time. My guess is that it is too much work to read every site every employee reads. When it comes time to fire them, though, then they go through your browsing history so they can fire you for reading "hacking web sites" instead of "not doing any work". Just speculating, but I'm having trouble imagining a department where the reading habits of 300,000 employees are analyzed in real time.

</comment></comment></comment></comment><comment><USER8> Homeland Security is an auto-immune disorder.

<comment><USER9> DHS should really be focusing resources on domestic terrorism rather than shutting down a few websites. If even one American civilian dies because DHS was busy shutting down blogs instead of shutting down a terrorist group ho will they feel then? Obviously they won't care like usual but still.

<comment><USER10> > DHS should really be focusing resources on domestic terrorism rather than > shutting down a few websites.

What domestic terrorism?

> how will they feel then?

They'll yell that they need more money and legal authority.

<comment><USER6> Yup, all those TSA agents instilling fear and loathing at the airport are expensive.

</comment></comment></comment></comment><comment><USER11> The Electronic Frontier Foundation is a 501 (c) (3) charitable organization. You can still get some last donations in before the close of 2010.

</comment><comment><USER12> How did past generations deal with the problem of idiot and/or old law enforcers misunderstanding technology? And as technology improves more quickly, are we at risk of having even more of a problem of disconnect between the technologically proficient and the (often confused) government bureaucrats?

<comment><USER13> They went ahead and broke the law and then were called heretics or worse. Kepler's mother was imprisoned, threatened with torture and called a witch _. I'm sure you could find many more examples, it's basically the whole history of science.

_ [http://en.wikipedia.org/wiki/Kepler#Epitome_of_Copernican_As...](http://en.wikipedia.org/wiki/Kepler#Epitome_of_Copernican_Astronomy.2C_calendars_and_the_witch_trial_of_his_mother)

<comment><USER14> I'm reminded of the old adage: _Science. If you aren't pissing someone off, you aren't doing it right._

</comment></comment></comment><comment><USER15> The head of ICE should be shacked over this - not because of the way it was done, but because homeland security should concern themselves with nothing except stopping terrorist attacks until the present war on terror is over. With all the urgency politicians have put in to it, we can afford to waste time on trivial issues of copyright. Unless punished, they will never learn.

<comment><USER16> What does ICE stand for?

<comment><USER17> Immigration and Customs Enforcement: [http://en.wikipedia.org/wiki/U.S._Immigration_and_Customs_En...](http://en.wikipedia.org/wiki/U.S._Immigration_and_Customs_Enforcement)

</comment></comment></comment><comment><USER18> Incredible that people with power have a real lack of understanding in their field

<comment><USER19> Once one has power, what do they need understanding for? From our perspective, we would like the powerful to use their power wisely. From the perspective of someone with power, they are very unlikely to consider themselves unwise and in need of more understanding. And who is going to tell someone with power that they are unwise and lack understanding?

</comment></comment><comment><USER20> If you effectively make the law, then ipso facto you can't be clueless about the law... maybe clueless...

The questions remains whether this will wind-up being Homeland Security making the law...</comment>


Yes, You Can Name a Website "Fucknazis.us" - <AUTHOR> https://www.eff.org/deeplinks/2018/09/yes-you-can-name-website-fucknazisus <comment><USER2> Is there a citation for EFF's claim that "Originally used only for government websites, .US is now open to anyone with a connection to the U.S."? RFC 1386 section 1.3 says "In the past, the computers registered in the US Domain were primarily owned by small companies or individuals with computers at home."

<comment><USER3> I have multiple .us domains. The only difference is that most registrars that follow the rules may not use whois privacy services for that TLD. I don't have a reference handy for that rule.

</comment></comment><comment><USER4> Funny, I was expecting some materials about American rocket and missile programs on this website.

</comment><comment><USER5> Now watch whoever made/owns "Blues Brothers" come after them.</comment>


Capitalism Needs to Be Reformed: Ray Dalio - <AUTHOR> https://www.linkedin.com/pulse/why-how-capitalism-needs-reformed-parts-1-2-ray-dalio <comment><USER2> It's interesting how Dalio highlights systemic issues, and makes some proposals for tax legislation, but seems to be willing to take a non- governmental approach to getting change to happen. For example, the work of the Dalio foundation that he highlights in the latter part of the article. Public/private partnership is a big part of is message.

</comment><comment><USER3> > I believe that all good things taken to an extreme can be self-destructive > and that everything must evolve or die. This is now true for capitalism.

Wait....is the author asserting that capitalism at an _extreme_?

* On average, Americans pay 24% of their income in taxes. [1]

* The top 1% of U.S. taxpayers pay over a third of the federal income tax. [2]

* 19% of Americans are currently on Social Security, a UBI-like program that almost all receive at some time. [3]

* The U.S. provides 13 years of free public schooling, which accounts for the vast majority of all primary and secondary schooling. [4]

* The U.S. food assistance program SNAP feeds 15% of the population. [5]

* In total, government spending is _38%_ of the GDP. [6]

The United States seems to be rather firmly a mixed economy, not an extremely capitalistic one.

[1] [https://www.fool.com/taxes/2018/04/22/how-much-does-the- aver...](https://www.fool.com/taxes/2018/04/22/how-much-does-the-average- american-pay-in-taxes.aspx)

[2] [https://taxfoundation.org/summary-latest-federal-income- tax-...](https://taxfoundation.org/summary-latest-federal-income-tax- data-2018-update/)

[3] [https://www.cbpp.org/research/social-security/policy- basics-...](https://www.cbpp.org/research/social-security/policy-basics-top- ten-facts-about-social-security)

[4] [https://nces.ed.gov/fastfacts/display.asp?id=55](https://nces.ed.gov/fastfacts/display.asp?id=55)

[5] [https://en.wikipedia.org/wiki/Supplemental_Nutrition_Assista...](https://en.wikipedia.org/wiki/Supplemental_Nutrition_Assistance_Program)

[6] [https://tradingeconomics.com/united-states/government- spendi...](https://tradingeconomics.com/united-states/government-spending-to- gdp)

<comment><USER2> It may be we are in a place not of extreme market freedom, but of extreme returns to capital. This looks like too much regulation and too much capitalism, at the same time.

<comment><USER3> Sure. Which makes it mixed, not extremely capitalistic.

If I understand we you are saying, the U.S. needs both more capitalism and less capitalism.</comment></comment></comment>


Show HN: MADE – Upload a Sketch/PSD Mockup. Download a working app in 2 weeks - <AUTHOR> http://olokuta.com/made <comment><USER2> Curious about significant changes since the previous Show HN submissions.</comment>


A formal solution to the grain of truth problem - <AUTHOR> https://intelligence.org/2016/06/30/grain-of-truth/ <comment><USER2> I can only barely follow what's being said, based on by unfamiliarity with the field, but it _seems_ to say "agents used to only be able to choose an optimal strategy if they were competing against agents with less information (less possibly strategies known)[1], but now they have discovered they can formally come to a Nash equilibrium based on the use of something called a reflective oracle."

Basically, two equal level participants should result in a Nash Equilibrium?

1: Except for cases where the set of possible strategies is small, such as the Prisoner's Dilemma. See footnote 1 in the article.

<comment><USER3> _Basically, two equal level participants should result in a Nash Equilibrium?_

No, whether you have a Nash equilibrium depends on the strategies used, you can always have agents following strategies that aren't a Nash equilibrium independent of their relative strengths.

The problem they solved is that agents were unable to reason about themselves - what will my opponent do? He is just like me so he will ask himself what will my opponent - that is me - do. But I will of course try to figure out what my opponent will do but he is just like me and so he will... Simplified of course, but here you have some infinite regress from which you have to break free. The solution they came up with and analyzed is to just pick an arbitrary, possibly randomized answer in certain situations.

<comment><USER2> Thanks for the clarification. So I take it that means I should read the following:

 _The key feature of reflective oracles is that they avoid diagonalization and paradoxes by randomizing in the relevant cases.2 This allows agents with access to a reflective oracle to consistently reason about the behavior of arbitrary agents that also have access to a reflective oracle, which in turn makes it possible to model agents that converge to Nash equilibria by their own faculties (rather than by fiat or assumption)._

as not that the agents _will_ converge on a Nash equilibria, but that now it's possible to model agents that _do_ converge on a Nash equilibria, which previously we could not (at at least not definitively)? That's what it seems to say outright, which I missed previously, I just want to make sure I'm not approaching it from the wrong context.

<comment><USER3> Don't quote me on that, I have really nothing to do with game theory, but as I understand it the paper it shows that reflectiveoracle-computable policies are optimal in the discussed setup (Theorem 25) and that they will yield a Nash equilibrium if all policies are asymptotically optimal (Theorem 28) which is possible because a limit computable reflective oracle exists (Theorem 6) and Thompson sampling is asymptotically optimal. So achieving a Nash equilibrium still requires that all agents play along, they have to have asymptotically optimal policies, if other agents show erratic behavior you are unable to make sense of, you can not respond optimally.

<comment><USER4> You can still respond optimally in a local sense, that is derive a dominant strategy. It will take longer than an agent that is not reflective though, at least by one sampling step.

</comment></comment></comment></comment></comment><comment><USER5> I don't think the arbitrary solution can apply to real-world applications. A logarithmic debit from a players preferred payoff as a computation cost might make more sense applied to the real world.

At a point the cost of calculating an opponent's preferred payoff becomes too high relative to the perception of payoff itself. By way of example, this is actually how many litigation negotiations are resolved.

I think these limits on individual computation, if I may mix disciplines, manifest as emotions or beyond that detachment. And I think there's an opportunity for modeling real world games more accurately viewed from that perspective.

<comment><USER6> Aren't they already using such a computation limit?

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

</comment></comment><comment><USER7> So what does this now mean for me if I'm playing a game of werewolf/mafia?</comment>