Nobel Prize Winner Joseph Stiglitz Calls for Jail Time for Corporate Crooks - <AUTHOR> http://www.dailyfinance.com/story/investing/joseph-stiglitz-corporate-crooks-to-jail/19684353/ <comment><USER3> We need to separate two types of leaders that often get conflated when talking about "corporate greed".

There are: 1) CEOs that explicity break the law. Examples include Mozilo of Countrywide who insider traded, or deliberately misinformed investors through investor calls or financial reports. These guys should go to jail AND pay heavy financial penalties.

Then there are 2) CEOs/traders that made legal but unwise all-in bets. This is pretty much much of the leadership from banks in the most recent crash. These leaders should NOT go to jail, as they have not broken any laws. But they and their companies should be held financially liable for any big losses when they inevitably come. Investment banks have been pretty successful at taking their hefty cut of the pie when times are good, but dodging the bullet when bad times inevitably come. JPMorgan (and other banks) have divisions that do investments for pension funds. When times are good, they get their share, but recent losses were completely offloaded onto the city pension funds. Privatization of profits, socialization of losses. Under this scheme, it's actually economically rational for them to make wild bets. They need to feel the pain when those bets don't pan out.

</comment><comment><USER3> Rob a liquor store for $40 bucks and get sent away to prison for 5 or more years.

Rob homeowners and investors, like Mozilo of Countrywide Financial, and collect a $140M+ paycheck and the SEC gives you the biggest fine ever of ....drumroll...$67M, $40M of which is going to be paid for on your behalf by Bank of America.

This is roughly the equivalent of law enforcement telling the liquor store robber to pay back $7bucks and we'll call it even.

</comment><comment><USER4> The Savings & Loan scandal in the early 80s sent hundreds of financiers to jail and almost ended John McCain's political career.

The current fraud-ridden crisis has damaged both the economy and government much worse, but has only seen a few show-trials like Bernie Madoff. Moral Hazard is all but non-existent, Wall Street is laughing behind closed doors, the US Government is their mark/whale now.

Lawrence Lessig has a good TED talk linking problems like this and others to the influence of money and revolving doors in Washington:

[http://www.fixcongressfirst.org/blog/entry/lawrence- lessigs-...](http://www.fixcongressfirst.org/blog/entry/lawrence-lessigs-new- ted-talk/)

Edit: Direct link to the video - <http://blip.tv/file/4266077>

<comment><USER5> People have short memories, though. McCain was one of the Keating Five, yeah, but he was also a candidate for President of the United States of America. As you say, there's no reason to think that the key figures in the Great Recession will endure any lasting stigma either. American capitalism admires grand failure; this is a blessing and a curse.

<comment><USER4> I'd say the people who admire grand failure only admire it when they're not negatively impacted by it. For example, tech startups vs Wall Street. There's a difference between grand failure in fields where the expected payoff is asymmetrically positive, like the former, and asymmetrically negative, like the latter.

Failures in the former may cost their investors their investment, but it won't cost them more money than they've ever made, or put them into the red so deep as to destroy their whole industry, or bring down the global financial system. While both sides play the odds and spread their bets, the nature of risk and payoff is very different.

Also, startups represent an attempt at creating real wealth where none was before - combining labor, capital, innovation, and raw materials to make products that can be sold for more than the sum of their inputs, or services that save time. Alot of what caused the financial crisis was more akin to gambling, despite protestations of 'financial innovation' to the contrary. Failure in the former is admirable, the latter not so much.

</comment></comment></comment><comment><USER6> This is so dangerous. The problem is you end up with cultures like Australia and Great Britain where corporate failure becomes a crime.

In Australia, when you say the word entrepreneur, people think of corporate crooks (Bond, Skase, Adler).

Legitimate entrepreneurs who failed, like Jodee Rich with One.Tel, get labelled as crooks.

So failure gets stigmatized. So startups become the insanity option. And the entire country gets held back and relies on digging dirt out of the ground and flogging it to China with no added value. Because only big established industries with government sponsored franchises and monopolies are "respectable".

Disaster. Don't let a few minority cases pervert America's strength. You don't want to take on a risk averse, "entrepreneurs and company directors are scam artists" culture.

<comment><USER7> Corporations can be charged with crimes, anywhere. What this is suggesting is that the CEO's actually be held accountable.

Yes incorporation protects you from the fiscal results of your actions - <USER2> loss of your company should be enough of a punishment for 99% of business owners who fuck up through negligence or greed. However, when you're purposefully embezzling, tax evading and outright breaking moral, ethical and legal codes, then there should be a nice concrete cell waiting for you.

If you think fiscal immunity equates to legal and moral immunity, then you have a very distorted view of the world.

You'll go away for years for a non-violent mugging, but when you embezzle millions into offshore accounts you're given a slap on the wrist and allowed to leave the country to live in the Bahamas and not even attempt to pay your debt to the people you robbed blind.

</comment></comment><comment><USER8> Jail Time is a nice rallying call, but his real point is that the incentives are perverse for the leaders of corporations. Jail time may or may not realign incentives. I doubt it would --we need much a deeper, systemic overhaul to really realign the incentives of corporations and society at large.

</comment><comment><USER9> Revenge is satisfying, but misguided, because most people assume that is enough. Criminalizing business will mean that only crooks will want to run businesses.

Instead, most problems of this sort can be prevented in the first place by full transparency. Put the books and records of financial companies on the web, continuously updated, and you won't see as much bad behavior. Of course, this is nothing like our current system and would make most business leaders howl in protest, since they would not know how to "add value" in such a world.

<comment><USER10> "Criminalizing business will mean that only crooks will want to run businesses."

What an absurd sentiment. We already have corporations that brazenly break laws with the understanding that the penalties they suffer will be less than the profits they take. The motivation behind giving already illegal actions real penalties is to actually prevent said illegal actions, which our current system fails to. Revenge needn't be a consideration. We already have crooks running businesses. By penalizing crooks we might actually give honest business people a fair chance.

<comment><USER11> So who exactly goes to jail?

Put it in simple terms, a garage working on your car's brakes screws up.

Do you jail the mechanic that worked on the car?

Or the service manager that told him to hurry up?

Or the middle manager that set the targets for the service time?

Or the CEO of the service division?

Or the CEO of the car company?

Or the CEO of the pension fund that is the main owner of the company - and so the one that benefited from saving money on your service?

Corporate manslaughter was introduced in europe after a ferry sinking where a ferry left port with the bow doors open. The captain was the only one charged - but he claimed the company ordered captains to close the doors while at sea to save time in port. Under the old health and safety law the managers who gave the orders couldn't be punished since they weren't present

Naturally the only people to have been prosecuted aren't the managers of major industrial accidents - it was a single plumber that fitted a faulty boiler.

</comment></comment></comment><comment><USER12> At least in the USA, since the 60s/70s, the tendency has been toward increasing the penalties for any imaginable crime: murder, rape, smoking pot, misstating income, jumping a turnstile when trying to get on a subway - all of these have seen increasing penalties. (For 1st degree murder, the death penalty was reinstated.) The penalties against drugs were increased to the point that the majority of people now being held prison are held for non- violent crimes.

The trend toward heavier penalties has effected business, and will effect it more so in the future.

Some people find it satisfying to think that criminals will have to face severe penalties, but past a certain point, the law becomes so punitive that rational people will be afraid to take leadership roles, fearing the legal consequences that they may have to face as leaders.

The article says:

"An institutionalized system of skewed incentives allowed Wall Street bankers and other corporate executives to gamble with America's wealth and then get away largely scot-free after the house of cards came tumbling down, plunging the U.S. into the worst economic crisis in decades and destroying trillions of dollars of wealth worldwide."

Tolerance of failure is the first pre-requisite of a dynamic economy. Imagine the kind of laws that would be required to punish every business person who takes large gambles with credit and then fails - I think you would have to say goodbye to the culture of startups that now exists in the USA. Most entrepreneurs take large risks, and most fail during their first attempt at a startup.

The implication of Joseph Stiglitz's words is that we should do away with the "limited liability" of the modern corporation. Instead, when corporate officiers gamble with credit and fail, Stiglitz suggests that they face jail time. Certainly, getting rid of limited liability would be in keeping with the trend towards greater and greater punishments. What is limited liability but an impediment to inflicting punishment on people who have gambled and failed? But think this through to the end: do we want to go back to the system we had in the early 1800s, before limited liability was introduced? Do we want to bring back debtors prisons, and all the other awful punishments that once kept the economy semi-frozen? Limited liability has been part of the extraordinary economic dynamism that the world economy has seen over the last 150 years.

Tolerance of mistakes, failures and screw-ups is essential to a dynamic economy.

If you have any friends who have attempted to launch a startup, ask yourself under what circumstances you think your friends should go to jail. If they gamble with credit and fail, and go bankrupt, should they go to jail? In other words, if they act like a normal startup, should they go to jail? Certainly, their bankruptcy will harm others - the money came from somewhere, after all. Shouldn't they be punished for doing harm to others? I get the reasoning that might lead some to say that such failures should be punished, but please realize the end result will probably be a stifling of innovation.

This issue has come up on Hacker News before, and I've written my thoughts about it before:

[http://www.teamlalala.com/blog/2009/12/24/laws-such-as- sarba...](http://www.teamlalala.com/blog/2009/12/24/laws-such-as-sarbanes- oxley-with-punitive-measures-for-business-officers-will-probably-stifle- innovation/)

<comment><AUTHOR> Stigletz isn't suggested we should punish failure with prison. He is saying the penalties need to be enough to discourage deceptive practices that encourage corporations to break the law because that's what's best for business:

"the financial industry was engaged in predatory lending practices, deceptive practices. They were optimizing not on producing mortgages that were good for the American families but in maximizing fees."

Meanwhile, stock-based compensation created further skewed incentives by encouraging executives to pursue short-term stock gains at the expense of long-term corporate sustainablity, Stiglitz said, and in some cases encouraged them to deceive their own shareholders."

We're not talking about punishing failure, we're talking about punishing crime:

Stiglitz explained, the system of penalties generally meant a small fine relative to the full ill-gotten gains, often in the hundreds of millions of dollars.

<comment><USER12> Fraud has always been criminal. Stiglitz wants to take a new category of behavior and elevate it to the level of a serious crime.

And think about this:

"They were optimizing not on producing mortgages that were good for the American families but in maximizing fees."

I can think of a lot of incentives that might be put in place to help align the interests of those writing the mortgages and those who are receiving the mortgages, however, jail time would not be on my list. We can have a rich and interesting conversation about what incentives might be effective. We can have a rich and interesting conversation about what incentives set up skewed motives that lead to anti-social behavior. But jail time should never come into the conversation.

Killing off innovation in the USA could be easy, just introduce jail time into a conversation about what incentives might motivate the business community to be socially responsible.

<comment><USER13> _what incentives might motivate the business community to be socially responsible._

I don't disagree with the spirit of what you're saying, but people and businesses are naturally inclined to game whatever rules and regulations are in place if it means maximizing revenue.

While jail time may not be the answer, I do think a stick _might_ be more effective than a carrot.

<comment><USER12> I am curious how far you want to go with the idea that a stick is more effective than a carrot. Do you feel that economies where the bulk of economic activity is organized via free actors engage in voluntary exchange tend to be more dynamic than economies where the government plays the major role in organizing economic activity? If not, on what basis would you justify allowing the existence of non-governmental economic activity?

<comment><USER13> I carefully used the word "might" because this is clearly a complex issue, and I'm no economist.

As someone who would otherwise be classified as "pro-business", I have found myself more and more dismayed by the bad behaviour of the largest corporations and their influence on the government.

A corporation is a legal entity with rights equal to a human, but in an Animal Farm kind of way. Their influence over governments and lawmaking make them "more equal" than Joe Q. Public. I would like to see checks and balance to keep the most flagrant corporate/financial bad behaviour under control.

<comment><USER12> " I have found myself more and more dismayed by the bad behaviour of the largest corporations and their influence on the government."

Me too. That's not the issue. The issue is why anyone would suggest jail. There is a large range of actions that could be pursued to modify the incentives that lead people to make reckless gambles with credit. Why not pursue those other actions first? Why not change the financial incentives? Why resort to jail?

<comment><USER13> I didn't suggest jail. I only suggested a stick. That stick could be in the form of fines or other financial sanctions.

<comment><USER12> Yes, that's what I said. There are many, many changes that could be made to the system that would change the incentives that motivate the people in the financial industry, and by changing the incentives we could expect that their behavior would alter. None of which requires jail. Larger fines should be enough to greatly change the incentives.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> And why not?

<comment><USER15> Because the government and consumer are just as culpable. Fannie and Freddie bought any loan a bank generated. They didn't care about the borrowers ability to pay back the loan! It's inexcusable that a Nobel laureate ignores this fact. It's like blaming the drug dealer for the existence of the drug. No, there are two other parties involved. It's no coincidence that there are huge price distortions in that market either. People who think they know what's best for us telling us it's the "American dream" to own a house and drugs are bad (mmm kay?) are screwing up the market, and freedom.

Artificially low interest rates attracted people that otherwise wouldn't be able to afford a house. Laxed lending standards turned a blind eye to the credit worthiness of borrowers. Land use restrictions limited supply and tax credits drove up demand.

Big banking and big government created the big bubble and big recession. And they're still rolling in the dough: [http://blogs.law.harvard.edu/philg/2009/10/17/how-wall- stree...](http://blogs.law.harvard.edu/philg/2009/10/17/how-wall-street-is- making-its-billions/) (devaluing our money in the process)

Vote out people like Dodd and Frank (and any republican who supports fiddling with the market - subsidies). Have the wealthy bankers who made their fortunes off of this bubble help those responsible people who are in danger of losing their homes.

<comment><USER14> William K. Black, professor at the University of Missouri (and the senior regulator investigating the savings and loan crisis of the 1980s) said:

"This is a crisis that we know empirically involved million of fraudulent mortgages being made. We know that the losses are out there. We know that the industry extorted FASB to gimmick the accounting rules, so they didn't have to recognize the losses. We know that the Fed has huge positions as collateral in these fraudulent mortgages. We've seen the Fed, Ambac, Fannie, Freddie, Pimco, Blackrock -- all putting back after investigating tens of billions of dollars of mortgages, and saying, these were sold under false representations and warranties -- frauds, and absolutely no one has gone to jail for it."

and

"And the problem is we have zero criminal referrals out of most of the regulatory agencies. In comparison in the savings and loan debacle again - maybe 1/40th of the size -- we had thousands of criminal referrals , we got over a thousand priority felony convictions of the elites - these are not the little tellers, the vice presidents -- these are the top people at the savings and loans. There are NONE now. The regulators have to serve as the sherpas to have successful criminal prosecution. We've got to do the heavy lifting, and we have to do the guide function, because the FBI can't possibly do this on its own.

Next thing that has to be done - the FBI formed a partnership with the Mortgage Bankers Association -- that's the trade association of the perps."

<comment><USER15> "these were sold under false representations and warranties -- frauds"

Including the fraud politicians put on the American people: everyone should own a house, which came in the form of artificially low interest rates, laxed lending standards, and tax credits.

Here's what I have to say to investors of mortgage-backed securities, including Fannie & Freddie: caveat emptor. The ultimate buyer was the U.S. taxpayer, because those investors knew Fannie & Freddie forays into subprime were covered, why shouldn't theirs be? It's the American Dream, right? And sure enough, they got their bailout, aptly named TARP!

We all got TARPed!

</comment></comment></comment></comment><comment><USER16> I agree. And why stop there? Let's throw politicians and activists and bureaucrats in jail too. Lobbyists, definitely. Lawyers? Definitely.

Hey, maybe we can kick the whole thing off by throwing economists in jail.

Edit: The point is, Stiglitz is saying let's penalize people for taking ill- gotten gains when things are riding high, and cashing out when things get low. This isn't just a business problem - politicians, activists, bureaucrats, lobbyists, lawyers, and yes, economists all do the same thing. No one seriously suggests clawing back or punishing a politician for making false promises or screwing up the economy, nor anything like that when an economist gets it wrong.</comment>


Citus Data Donates 1% of Equity to PostgreSQL Organizations - <AUTHOR> https://www.citusdata.com/newsroom/press/citus-data-donates-1-percent-equity-to-non-profit-postgresql-organizations/ <comment><USER2> Fun fact: Ingres was the brainchild of the brilliant Professor Michael Stonebraker. After the company went under after being beaten by Oracle in the RDBMS marketplace, he open-sourced the DB as a shot against Larry Ellison. Hence it's name, "Post-Ingres", or Postgres.

Also, I believe his version of SQL was called QUEL, and we would have been using that term today had Ingres won out.

<comment><USER3> There's a timeline on Wikipedia that has all the relationships, it's interesting how related everything is.

[https://upload.wikimedia.org/wikipedia/commons/2/22/RDBMS_ti...](https://upload.wikimedia.org/wikipedia/commons/2/22/RDBMS_timeline.svg)

<comment><USER4> Woah, looks like PostgreSQL and MS SQL Server has same ancestor and started at the same time :)

</comment></comment></comment><comment><USER5> Well done Citus, comendable and inspiring. I'm betting most of my wealth and my new company on Postgres, if it succeeds, I hope to emulate you. Postgres is an incredible data platform, that just gets better and better every year with more functionality AND better performance (unlike most software where more features = slower) AND consistent rock solid reliability AND the best documentation of any product I have seen.

<comment><USER6> can you elaborate more about your company ?

<comment><USER5> We're building - a new commerce automation platform - a unified ERP/CRM/CMS.

<comment><USER7> Hi Odoo guy! I'm a huge fan of your product. It's powering all my startups.

</comment></comment></comment></comment><comment><USER8> If they had made a cash donation, it would have been an unambiguously good thing.

Equity, however, creates a conflict of interest. If the non-profit Postgres organizations make money when Citus makes money, then they have an incentive to favor Citus over other companies.

Let's say there's a Citus competitor. The competitor implements a feature a bit differently than Citus. Does Postgres support both organizations equally? Or if there's a technical decision to be made, and it involves making one company's code incompatible with base Postgres, who do you think will win?

It's a free market, and the parties involved are perfectly free to make this arrangement, but it generates potential problems.

<comment><USER9> > Let's say there's a Citus competitor. The competitor implements a feature a > bit differently than Citus. Does Postgres support both organizations > equally?

Well, maybe the competing company could also become a major donor.

<comment><USER8> Yes. And then we've created a pay-to-play system. Not good.

<comment><USER10> What's the difference between that, and companies directly having their employees "donate" FOSS work on a project, where their FOSS contributions consist solely of building features that the company wants the project to have?

<comment><USER11> As I commented in another post, I don't think this is an actual problem in postgres. But assuming it would be, the difference is that control of central decision making structures allows control over _other companies_ work, whereas having a company's employees contribute doesn't do so to to a significant degree.

</comment></comment></comment></comment></comment><comment><USER12> Wow, people are quick to suggest this could somehow comprise postgres independence..

I think 1% percent donations like this is fantastic. In this it also seems to make business sense for Citus to ensure postgres is well funded :)

Still a good example to follow.

</comment><comment><USER13> My ISP.. long ago.. fixed a few key thing in Postgres95 which fixed a few keys things (see slide 19 -- [https://www.pgcon.org/2007/schedule/attachments/30-great_ste...](https://www.pgcon.org/2007/schedule/attachments/30-great_steps.pdf)).

From that point on, we never had to touch the core again.

The Postgresql community is awesome.

<comment><USER14>
      On Tue, 22 Oct 1996, Julian Assange wrote:

      > Does anyone know what is happening with the delegation of the
      > postgres domains? Indirect.com was going to hand them over,
      > but as yet has not.

Not a name i was expecting to see! He seems to have made a few commits to psql:

[http://mat.caminos.upm.es/~iht/pased2011/](http://mat.caminos.upm.es/~iht/pased2011/)

<comment><USER15> Assange used to be involved in FOSS, even writing and maintaining tools like surfraw[1]

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

<comment><USER16> Also has his fingers in NetBSD, though mostly in fortune(1) files, iirc.

[https://queue.acm.org/blogposting.cfm?id=27326](https://queue.acm.org/blogposting.cfm?id=27326)

</comment></comment></comment></comment><comment><USER17> Does anyone know what Citus Data is valued at? I'm curious what this is "worth" to the PostgreSQL organizations?

Although, to me it seems more like a gesture than anything else - I am curious.

<comment><USER18> Apparently others have done this as well:

"Building a Movement of Corporate Philanthropy

We want to change the world through inspiring early–stage corporate philanthropy. Pledge 1% is an easy way to leverage a portion of your future success to support nonprofits in your community. It's a small commitment today that can make a huge impact tomorrow. The sooner you start, the easier it is–so join your fellow founders by making a pledge today!" [1]

In the list are companies like Atlassian, Salesforce, and Yelp.

The pledge is either 1% of equity, time, product, or profit.

[1] [https://pledge1percent.org](https://pledge1percent.org)

<comment><USER19> This is not philanthropy, this is a company financially supporting the essential foundation upon which their product is built.

<comment><USER20> What's the difference?

<comment><USER21> The investor expects a tangible direct benefit from the investment. A philanthropist expects only the benefit of humanity as a whole, and maybe her own good feelings; or if you are cynical, prestige.

</comment></comment></comment></comment></comment><comment><USER22> I love working with Citus (I'm a customer). Everyone I have interacted with there has been very helpful and supportive. Almost surprisingly so.

This seems right in line with their core values. At least how the company values are practiced since I have no idea if they have "core values" or how they are worded.

Well done!

<comment><USER23> I can confirm this. I was trying out their product as an option and still they were super helpful (shout out to Sai if you're here) and everyone else too..

Also their slack page is decently active and helpful

</comment></comment><comment><USER24> Great news! I have a friend that works at Pledge 1%, A company that is based on this idea, I always thought it was a cool concept, maybe doing something like this (or similar) for Open Source would be interesting.

[https://pledge1percent.org](https://pledge1percent.org)

</comment><comment><USER25> congrats to this !

Brewster at Archive.org has been making some persuasive points in public, recently, about non-profit org models, FOSS and sustainable finance models.

</comment><comment><USER26> Good on them. When done in a transparent and public manner this could be a good thing. One thing to always watch out for is how incentives align.

One possible scenario to think about is if this 1% equity now tilt any sort of balance in the postgresql organization regarding decision making? I.e. if a decision adversely affects Citus but is better for the community.

<comment><USER27> If the history of the core committee and contributors till now is any indication of their objectivity and community focus, I'm not worried about that in the slightest.

</comment></comment><comment><USER28> This is awesome but it would've been nice to see 10%, something like a tithe for the company's building blocks

</comment><comment><USER29> Cash (profit share?) would be better no? Equity can't be spent now.

</comment><comment> shady-lady I like the idea of DB as a managed service but in effect this surely means that 3rd party has access to the data?

</comment><comment><USER30> Are they generous or this is just to avoid Server Side Public License from PostgreSQL ?

<comment><USER31> What do you mean? How would this have anything to do with changing the license?</comment></comment>


Destructuring and Recursion in ES6 - <AUTHOR> http://raganwald.com/2015/02/02/destructuring.html

<comment><USER2> Hah, I'm tempted to go through the Ocaml 99 problems (which was inspired by the Prolog version) using ES6 [1]. Turns out, with recursion and a head and tail function, you can do virtually anything with lists.

I hope the popular JS engines optimize the hell out of the gathering operator, and adds TCO (it's on the ES6 spec, evidently). Then we won't even need to cross our fingers when we describe JS as a functional language to our peers.

And with the increasing emphasis on immutability, as preached by the React crowd, with cross seeding from the Clojurescript-React connections, JS grows even closer to being a Scheme [2].

If ES7 would lock down 'use strict' mode against even more of JS's weak-typing bloopers, things would be even better yet. I don't see why they shouldn't. They whole reason for 'use strict' is to give people who need backwards compatibility an out.

Incidentally, I'm also having great success using ES6 arrow functions at work, thanks to 6to5 [3]. I do a lot of d3 work, and arrow functions have made using d3, particularly the ubiquitous d3 accessor functions, so much nicer. Highly recommended.

For the first time since Node, I'm actually getting excited about Javascript's prospects. Now, if only they'd add types, and sum types...

1\. [http://ocaml.org/learn/tutorials/99problems.html](http://ocaml.org/learn/tutorials/99problems.html)

2\. No, I don't actually believe that JS is a Scheme in disguise.

3\. [https://github.com/6to5/6to5](https://github.com/6to5/6to5)

<comment><USER3> While I think the whole pattern matching + recursion thing is important to understand, once it's understood, I think it's usually better to move on to combinators like fold/reduce/map/flatmap and such. Plus Javascript still lacks the ability to branch on a pattern match.

<comment><USER4> > While I think the whole pattern matching + recursion thing is important to > understand, once it's understood, I think it's usually better to move on to > combinators like fold

Of course, `fold` is just another language for expressing pattern-matching and well founded recursion, right? (Maybe I've got my theory mixed up, but do notice that I snuck the word "well founded" in there.) Then, of course, the other combinators that you mention (`reduce` / `map` / `flatmap`) are all just folds.

On the other hand, this shouldn't be taken as a refutation of your argument; recognising and making prettier / more lightweight / even just more _visible_ a common pattern is valuable, even if it does not, strictly speaking, increase computational power.

<comment><USER3> Yep, going from arbitrary recursion to `fold` to `reduce` to `flatMap` to `map`, you're actually discarding power and expressiveness. But the good news is that you're exchanging raw expressiveness for a tool that fits the job at hand more precisely.

</comment></comment></comment></comment><comment><USER5> It's hard to believe this is javascript. I write that with a lot of love. These are some of my favorite language features but It's going to take some adjustment to be comfortable using and reading them in JS.

<comment><USER6> The more I see and learn about ES6 the more I think JS code is going to look completely different in a couple years than it looks today - and in a good way.

<comment><USER7> Wait till you see ES7 async and await :-D [http://imgur.com/HvQbw48](http://imgur.com/HvQbw48)

<comment><USER8> Which can be used today via 6to5!

<comment><USER9> 6to5 compiles ES7 too?

<comment><USER10> Sometimes, yes. :-)

[http://kangax.github.io/compat-table/es7/](http://kangax.github.io/compat- table/es7/)

</comment></comment></comment></comment></comment></comment><comment><USER11> ES6 transpiling has been a bit of a revelation to me lately. Object destructuring is also exceedingly useful.

On a bit of a tangent from the article, I'm interested by the use of const as the default for variable declaration. My background is such that I've always considered constants as things that are class level constants (thank you Java), but reading up on Swift has made me rethink this.

Clearly const has the potential to reduce runtime errors. I'd appreciate it if anyone could recommend any further reading on the subject.

<comment><USER3> I'm not sure about the best possible resource to read, but in the traditional of functional programming, immutability is preferred in nearly all cases. This is particularly important when it comes to data with long-lived scope (e.g. members of objects, data within the scope of closures, etc.) because the functions that operate on non-constant data lose purity and become more difficult to reason about and test. In other words, mutability leads to side- effects, wherein operations on data in one part of a program are visible within other function, without explicitly being passed in.

In many functional languages, mutation of variables is only allowed in special cases, and in some languages, it's not allowed at all. This can be weird if you learned programming in a tradition where modifying variables is one of the first things you were taught, but once you get used to not mutating your variables, the benefits really start to shine. As you mentioned, it often prevents entire categories of errors. For instance, I haven't written a for loop with an index variable in well over a year, in favor of using map/flatMap/filter/fold and friends, and for that reason, I can't remember my last fencepost error.

Like I said, I don't know the best resource, but learning Scala was really influential for me in immutable programming, and the Functional Programming Principles in Scala Coursera course [1] and the (unrelated) Functional Programming in Scala book taught me a lot of what I know on the topic.

[1] [https://www.coursera.org/course/progfun](https://www.coursera.org/course/progfun)

[2] [http://manning.com/bjarnason/](http://manning.com/bjarnason/)

<comment><USER12> In JavaScript const is not immutable.

        const foo = {};
        foo.bar = 'baz';

This is valid, you cannot reassign foo, but you can mutate it.

Native immutables in JavaScript would be great, but would be hard to pull off given prototypical inheritance.

EDIT: Now const + Object.freeze gets you close to immutable. I'm not sure what that means for inherited functions, can the parent prototypes not be mutated either?

<comment><USER3> Yeah, this is also true of the `val` statement in Scala too. I suppose though that in Scala, one would probably make all data members of classes `val` as well, whereas in Javascript, there's no in-line syntax for constant object properties (Object.freeze being a bit verbose to use everywhere).

But even that limited form of enforced immutability is helpful. I personally find it easier to understand a complex function when I can assume that no names are being rebound.

</comment></comment></comment></comment><comment><USER13> I've never liked this corner of JS, and haven't kept up on ES6 or any of the modern dialects of JS, but it looks like `undefined` is still hanging around as a first-class thing?

        const length = ([first, ...rest]) =>
          first === undefined
            ? 0
            : 1 + length(rest);

Having worked in languages that support multiple (destructuring or not) function definitions, this doesn't look quite right.

Here's something I typed into chrome's JS console:

        > [1,2,3].length
        3
        > [undefined, 2, 3].length
        3

Wouldn't the above-defined ES6 `length` function return 0 for the latter array?

To mock up a similar syntax that would handle this more gracefully (and more sensically):

        const length = case
            ([]) => 0,
            ([first, ...rest]) => 1 + length(rest);

Wouldn't it be better in general to be able to destructure arguments using syntax? If you can't use a case-like syntax for this, what do you do to be able to handle different structures?

<comment><USER14> From the footnote:

"Well, actually, this does not work for arrays that contain undefined as a value, but we are not going to see that in our examples. A more robust implementation would be (array) => array.length === 0, but we are doing backflips to keep this within a very small and contrived playground."

[http://raganwald.com/2015/02/02/destructuring.html#fn:wellac...](http://raganwald.com/2015/02/02/destructuring.html#fn:wellactually)

<comment><USER13> ah, thanks for pointing that out, I came here and ctrl+f'ed for 'undefined' but did not do the same in the article.

</comment></comment></comment><comment><USER15> I've been pondering a few style questions recently:

 _1\. When to use 'function' vs '=>'?_

Leaving aside hoisting and handling of 'this', 'function' and '=>' are usually interchangeable:

        function foo(x) {
            // do something
        }

        let foo = x => {
            // do something
        }

I prefer to keep using 'function' because it's immediately obvious to the reader that we are creating a function. With '=>', the reader doesn't know if foo is a function or not until reaching '=>', which is located after the argument list. There's also almost no terseness gain. A potential win for '=>' though would be the ability to declare the function as 'const'.

With closures, '=>' wins because the reader already expects a function, and the terseness gain is significant:

        somearray.map(function(x) {
            // do something
        });

        somearray.map(x => {
            // do something
        });

_2\. When to use {} around the function body?_

        somearray.forEach(x => /* a single statement */);

        somearray.forEach(x => {/* a single statement */});

{} around the function body are optional if there's only a single statement. However, for clarity, I still use {} when I want to make it clear that we are not using the return value. I think that might be overkill though: the reader should aready expect that 'map', 'filter' and friends will use the return value, while 'forEach' will not.

 _3. 'let' or 'const'?_

This one is already mentioned in a sibling comment, so let's keep the discussion there.

I realize that these are tiny style decisions that will probably incite endless bikeshedding, but I'm still interested in hearing opinions from fellow HNers. :)

<comment><USER16> Haskell possesses similar syntax, save that one must prefix an anonymous function with \, like so:

        \x -> x * 42

It's possible as well to use it bare like that, but only in very particular places, so it's generally much clearer to use it wrapped in parens:

        (\x -> x * 42)

Perhaps some similar convention would make it clearer where a lambda is being used in .js?

</comment></comment><comment><USER17>
      const description = (nameAndOccupation) => {
        const [[first, last], occupation] = nameAndOccupation;
        return `${first} is a ${occupation}`;
      }
      description([["Reginald", "Braithwaite"], "programmer"])
      //=> "Reginald is a programmer"

This is going to make code a _lot_ more readable. I'm excited!

<comment><USER18> or does it? You are passing arrays of arrays with a potentially random index position based convention that makes no sense to me at first read.

Is that how you pass on real-world code a generic person data around?

Is that how you don't use i18n for string and how you ignore occupations that starts with vowels?

Destructuring _is_ nice as other new features in ES6 but abusing these just because there are there ... no, I don't think that's going to improve any code or any readability.

<comment><USER19> You can destructure objects as well.

So:

        const description = (nameAndOccupation) => {
          const { name: { first, last }, occupation } = nameAndOccupation;
          return `${first} is a ${occupation}`;
        }
        description({ name: { first: "Reginald", last: "Brathwaite" }, occupation: "programmer" });

And this last _is_ in fact how real-world code would pass person data around. Your i18n points stand, of course.

<comment><USER20> That's really nice. Is it possible to do the destructuring directly in the argument list?

<comment><USER15> Yes:

        const description = ({name: {first, last}, occupation}) => `${first} is a ${occupation}`;

Edit: just noticed that `last` is not used, so we can remove it from the destructuring:

        const description = ({name: {first}, occupation}) => `${first} is a ${occupation}`;

</comment></comment></comment></comment></comment><comment><USER21> obligatory mention that 6to5[0] lets you use all this stuff, and more, today. I've been using it for 3 months now and it has totally transformed the way I write JS applications, it's awesome.

[0] [https://6to5.org/](https://6to5.org/)

</comment><comment><USER22> Also coming to ES6 is destructuring objects:

      function doSomething(aObj) {
        let { x, y } = aObj;
      }

      doSomething({ x: 1, y: 4 })

</comment><comment><USER23> Yet another validation of Greenspun's tenth rule. Now if only ES6 would get proper tail recursion then we'd be all set!

<comment><USER24> I think these are in the spec. [https://people.mozilla.org/~jorendorff/es6-draft.html#sec- ta...](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tail- position-calls)

<comment><USER25> In that case, I'm shocked that no Lispers have showed up to castigate raganwald for writing something like

      fn(first, foldWith(fn, terminalValue, rest));

With an accumulator foldWith could call itself directly! b^) Actually this indicates to me that ES6 should implement folds itself.

</comment></comment></comment><comment><USER26> So basically pattern matching, shorter syntax for lambdas, string manipulation à la Ruby (but with backquotes, why?) and… confusing list with array EVERYWHERE in the language? No TCO? A `map` (sorry, `mapWith`) that creates then concatenates lists?

2015 sounds _amazing!_

<comment><USER10> That seems quite a negative view. The features mentioned in the article are only a small part of what is coming in ES6.[1]

The "fat arrow" syntax for defining anonymous functions is much shorter and neater than the cumbersome notation we've had in the past:

        items.map(function (item) { return do_something_with(item) })

becomes

        items.map(item => do_something_with(item))

and there are both expression and statement variations of fat arrow functions, so we don't need the return in this sort of situation either. There are also some other significant differences, particularly in what "this" means within the anonymous function.

Combine that cleaner notation with the introduction of generators[2] and we can have lazy fluent interfaces for transforming data efficiently, along the lines of:

        items.map(item => item.interesting_property)
             .filter(item => is_wanted(item))
             .reduce((item1, item2) => combine_usefully(item1, item2), initial_value)

It's not yet completely clear how we will take advantage of these possibilities in standardised ES6, because being backward compatible is a priority so you can't just make sweeping changes like having all the existing Array.prototype functionality become lazy. This article[3] gives some ideas of how the kinds of utility library we've used in the past might look if they were written to take advantage of ES6's new features, and presumably even if ES6 doesn't include this kind of generator-based lazy functionality as standard it won't take long before libraries are written to do it if they haven't been already.

Incidentally, that emphasis on backward compatibility also explains the use of back-ticks for strings with substitution. You need a new syntax that doesn't change any existing behaviour, so regular single- and double-quoted strings can't be used.

There's a lot more to ES6 besides just these areas. The article and this HN discussion are simply concentrating on some of the more interesting data- munging parts of it. For example, it also finally has a useful module system.[4] It really is quite a step up from today's JavaScript in actual use; perhaps a good analogy would be the shift from Python 2 to Python 3, where the older version still does a decent job but a lot of little details are better in the newer one and the cumulative effect feels like a qualitative improvement in the language.

[1] In practice, these features are already available today with only a small amount of effort, because you can use a transpiler like 6to5 or Traceur to convert ES6 code into ES5 that will run quite happily in any modern browser. These transpilers are straightforward to install and literally a one-liner to run, similar to installing SASS to convert an SCSS stylesheet to CSS for use in the browser. They are already integrated nicely with most other popular tools like Gulp, Grunt and Browserify. At worst you need a polyfill for a few features, but for example 6to5 provides one polyfill that does everything, so again this is a very simple thing to incorporate into your project if you do need it.

[2] [https://developer.mozilla.org/en- US/docs/Web/JavaScript/Refe...](https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Statements/function*)

[3] [http://aaronstacy.com/writings/if-underscore-was-written- in-...](http://aaronstacy.com/writings/if-underscore-was-written-in-es6/)

[4] Very sensibly, the transpilers used to work with ES6 today can just turn those ES6 modules into AMD or CommonJS modules for compatibility with other existing tools. For example, you can use a 6to5 plug-in with Browserify, and it will convert ES6 modules into CommonJS ones that Browserify itself can then work with in the usual way. Again, this is yours for the price installing the plug-in using npm and an extra command-line option to Browserify, or something similarly straightforward using other package managers/build tools.

<comment><USER4>
        items.map(item => item.interesting_property)
                 .filter(item => is_wanted(item))
                 .reduce((item1, item2) => combine_usefully(item1, item2), initial_value)

I'm not a JS programmer, but isn't this just

        items.map(has_interesting_property)
             .filter(is_wanted)
             .reduce(combine_usefully, initial_value)

    ?

<comment><USER10> Sorry, you're right, that wasn't a very good example.

The use with `map` really is different: with a fat arrow, you can easily pick out a single property from each object in your container (not just whether it exists, which seems to be what you were getting at in your alternative).

But yes, the fat arrow is unnecessary in the trivial filter and reduce examples I gave. I should have provided a slightly more involved example, such as this:

        items.map(item => item.interesting_property)
             .filter(item => is_wanted(item, some_criteria))
             .reduce((item1, item2) => combine_usefully(some_context, item1, item2), initial_value)

Now you've got some extra arguments to supply, so you can't just pass the functions in directly when calling `filter` and `reduce`.

In today's JS (meaning ES5) you would generally need the older anonymous function notation. You might still have some shortcuts available, such as `Function.bind` if the order of parameters lend themselves to convenient partial application as in the `reduce` case here:

        items.map(function(item) { return item.interesting_property })
             .filter(function(item) { return is_wanted(item, some_criteria) })
             .reduce(combine_usefully.bind(this, some_context), initial_value)

Of course in ES6 you can just choose whichever representation you prefer:

        items.map(item => item.interesting_property)
             .filter(item => is_wanted(item, some_criteria))
             .reduce(combine_usefully.bind(this, some_context), initial_value)

The other thing to watch out for when jumping between how today's mainstream JS handles these kinds of manipulations and the new ES6 tools is what happens with `this`. It's one area where current anonymous functions and the new fat arrow notation do behave differently, and unlike the `bind` example above, it's not necessarily explicit what `this` will be when you start passing functions into other functions.

</comment></comment></comment></comment><comment><USER27> Completely unrelated, but even assuming the author of the article posts here, are you from Columbus OH? I've gone to One-Line Coffee (the source of the first pic) myself a number of times!

</comment><comment><USER28> Don't want to come off overly bitter, it's certainly interesting, but I'd like to see some practical uses of this, besides reimplementation of map() and other "low-level" functions...

<comment><USER29> How about multi value return from functions.

``` x = foo(); oh = x[0]; no = x[1]; ```

vs

``` [oh, yeah] = foo() ```</comment></comment>


Libressl.org is running apache1 - <AUTHOR> http://www.libressl.org/contact.html

<comment><USER2> This is OpenBSD's fork of Apache 1.3. It runs chroot and privsep'd by default, and of course is patched for security issues where necessary. (OpenBSD recently dropped Apache from the base build and is now fully committed to nginx, moving forward.)

<comment><AUTHOR> Thanks for the info, That's great news about Nginx.

</comment></comment><comment><USER3> Post another submission if you manage to root their server in a way that's relevant to LibreSSL.

</comment><comment><USER4> I did just saw a blink tag in [http://www.libressl.org/](http://www.libressl.org/) ?

[https://developer.mozilla.org/en- US/docs/Web/HTML/Element/bl...](https://developer.mozilla.org/en- US/docs/Web/HTML/Element/blink)

<comment><USER5> Check the note at the bottom of the page:

 _This page scientifically designed to annoy web hipsters. Donate now to stop the Comic Sans and Blink Tags_

<comment><USER4> Hahaha, didn't see that.

The thing was the surprise to see my browser did render it and nostalgia of course.

</comment></comment></comment><comment><USER6> I don't know much about OpenBSD but I know that they upgraded to Apache 2.X only very recently (1 year max IIRC) and it seems that they still maintain the 1.x version: [http://openports.se/www/apache-httpd- openbsd](http://openports.se/www/apache-httpd-openbsd)

<comment><USER2> OpenBSD did not upgrade to 2.X. You're talking about ports, which are separate from the base operating system. For accurate information about OpenBSD, right now, check:

[http://www.openbsd.org/55.html](http://www.openbsd.org/55.html)

Regarding ports, they're basically a compilation build system that complements binary packages (which OpenBSD also has) for 3rd party software not installed with the base system . See:

[http://www.openbsd.org/faq/faq15.html#Ports](http://www.openbsd.org/faq/faq15.html#Ports)

<comment><USER6> My bad. So OpenBSD included Apache will still be 1.3 even in the upcoming 5.5. (along a more modern nginx)

Thanks for the info.

</comment></comment></comment><comment><AUTHOR> Theres a good chance they could be using a version that has backported security fixes, but seriously, look at the amount of _known_ vulnerabilities Apache 1.3.29 has: [http://httpd.apache.org/security/vulnerabilities_13.html](http://httpd.apache.org/security/vulnerabilities_13.html)

<comment><USER7> 1.3.29 was 10 years ago, and the latest 1.3.42 has only one "moderate" flaw. I think there's a pretty good reason why they're not using 2.x.

<comment><USER5> From the FAQ:

 _Why isn 't a newer version of Apache included?_ The license on newer versions is unacceptable. Users interested in more modern web servers are encouraged to look at nginx(8) which will hopefully be replacing Apache in base.

(the latter has actually happened as of 5.4)

Also the Apache 1.3 in OpenBSD had been audited as it was part of the base distribution (i.e. not just a port) and it ran chrooted by default.

<comment><USER8> Is it just me, or is Apache losing mindshare rapidly?

</comment></comment></comment></comment><comment><USER9> This is obviously also to annoy hipsters such as mrmondo. ;)</comment>


Cheryl's Birthday puzzle solved using Clojure's core.logic - <AUTHOR> https://github.com/raj-kesavan/cheryl/

<comment><USER2> Seriously? Anyone with good logic interpretation could have solved it within minutes.

<comment><AUTHOR> This is more of a proof-of-concept/excuse to learn core.logic :)</comment></comment>


Activists rush to save government science data – if they can find it - <AUTHOR> https://www.nytimes.com/2017/03/06/science/donald-trump-data-rescue-science.html <comment><AUTHOR> It's too bad this was written in a way to alienate half the country. The need for decentralized, robust preservation of knowledge and data is non-partisan.</comment>


Show HN: Working With TCP Sockets book - <AUTHOR> http://workingwithtcpsockets.com/

<comment><USER2> Wasn't there a reason that EventMachine _wasn't_ pure Ruby? I remember someone else trying to build an event library in Ruby, failing, and then yelling at Francis Cianfrocca that EventMachine wasn't possible to build reliably under MRI --- maybe because of greenthread timeouts? I know, this sounds like gobbledygook even to me.

I am all for new programming books, and this one might be great, and the author has a good reputation. But in case you're wondering: the native sockets API hasn't changed much since Stevens wrote Unix Network Programming (are there any major changes at all besides sendfile?); UNP is one of the all-time great programming books. Also, you are absolutely well served by pulling down EventMachine, following the examples, and just using EventMachine's abstractions instead of Ruby's socket code. We virtually never use Ruby sockets; EventMachine is better.

</comment><comment><USER3> My mini-review, from about halfway through WWTCPS:

Just as in "Working with Unix Processes", Jesse really knows how to explain things clearly and concisely, which is a rare gift among tech authors. The frequent code examples reinforce without excessive repetition, and he smartly limits the topic to just the socket API rather than trying to teach all of Ruby, HTTP, low-level TCP and so on. The result is not just an effective learning tool, but an enjoyable read as well.

I'd also like to note that rather uncommonly among programming books, both WWUP and WWTCPS come with a version of the book in plain text format. The plain text versions are suitable for viewing with 'less' in a terminal or (after stripping the color codes in WWUP's case) in your favorite text editor. It's a nice touch, the plain text book feels right at home in a tmux pane alongside a shell or two to run the examples.

</comment><comment><USER4> I've been following Jesse on Twitter as he's worked on this book and he has really put lots of care into making this a good book. Sadly I didn't have time to review it yet but read his previous book in full and it was pretty good so Jesse is the real deal :-)

<comment><USER5> I complete agree, Peter! I did have the chance to help proofread it for Jesse and it's awesome - full of great info. Two thumbs up!

</comment></comment><comment><USER6> I'm a new Ruby developer. I came across Jesse's "Working with Unix Processes" by chance. I thought it might be too advanced, but it was actually perfect for even a newbie like myself.

Jesse's writing style is clear and concise, and he offers examples as to how one might implement these in the real world. (I think most books fail in providing examples of practical applications.)

His first book was so well-written and informative, I didn't hesitate to purchase his new one when I saw the announcement land in my Inbox.

</comment><comment><USER7> If anyone is interested in understanding IP programming in the most technical way, Stevens' Unix Network Programming (UNP) is the bible: <http://unpbook.com/>. I've dragged mine across 3 continents over 15 years and still refer to it regularly.

Jesse's book and release style is a fantastic resource for Ruby programmers who are digging down the stack. Well done.

</comment><comment><USER8> The first book was pure gold and I desperately needed something that packed all that information so nicely. Really looking forward to this one on TCP Sockets.

</comment><comment><USER9> Destined to be a classic, just like Working With Unix Processes!

</comment><comment><USER10> I want to buy a hard copy!</comment>


Watch_Dogs torrent secretly installing a Bitcoin miner on thousands of computers - <AUTHOR> http://www.neogaf.com/forum/showthread.php?t=825079

<comment><USER2> Well, that's ironic: hacking a game about hacking and getting hacked.

<comment><USER3> Air quote "hacking" but yes.

I've commented on this in the past, but I saw a bitcoin miner in a supposed SimCity torrent over a year ago, so this is nothing new.

</comment></comment><comment><USER4> Some very well known cracking/warez groups will add whatever you want to their 0-day releases if you pay them enough.

However, I wonder why the perpetrators used "winlogin.exe" as the malware executable file name instead of "winlogon.exe". If I remember correctly, Windows prevents you from killing any file named "winlogon.exe" from the Task Manager. Maybe to help prevent detection by heuristic anti-malware engines?

</comment><comment><USER5> There's no honour among thieves.

</comment><comment><USER6> Comment Thirteen[1] is an interesting concept. "Mine 2 Play". What if the new micropayments for stuff online is with bitcoin-mining? You can my music tracks for $1 of mining on your computer? Sure it's actually more expensive for 85% of people to mine $1 on your PC than just pay for it... but it __feels__ free. Especially for kids who can mine on home/school computers a lot easier than asking parents for money.

1\. [http://www.neogaf.com/forum/showpost.php?p=113371411&postcou...](http://www.neogaf.com/forum/showpost.php?p=113371411&postcount=13)

</comment><comment><USER7> Don't ever download warez.

FLACs and movies, fine. Go nuts. But never, EVER, EVER try your luck with cracked software.

It's not worth it.

<comment><USER8> I'd say the same about closed source software...</comment></comment>


Elon Musk's micromanagement has wasted time and money at Tesla, insiders say - <AUTHOR> https://www.cnbc.com/2018/10/19/tesla-ceo-elon-musk-extreme-micro-manager.html <comment><USER2> > _But because kanbans were pioneered by Toyota, workers thought they had to > hide their kanban cards from Musk during his visits to the factory. Half a > dozen current and former Tesla workers say that supervisors in Fremont > warned them that if Musk discovered kanban cards posted around their work > areas, they were in danger of being fired._

<comment><AUTHOR> Elon Musk is an unremitting and extraordinarily fragile narcissist.

<comment><USER3> Sometimes being a fragile narcissist is a powerful motivator. It's very possible that Elon would not be as successful as he is today if he were more agreeable and altruistic.</comment></comment></comment>


Payphone Project - <AUTHOR> https://github.com/jcs/payphone <comment><USER2> A retro payphone project, specifically.

A modern payphone, I think, would be an iPod Touch (or other equivalent non- cellular mobile device), available at the counter at bars/restaurants/hotels/etc., locked into an app that lets you tap your credit card to place a call. I could see Skype getting into that market.

(The modern _spiritual replacement_ for a payphone, though, is just asking random people on the street if you could borrow their cell to place a call. You pay in status and social capital.)

<comment><USER3> That's how muggings happen :-/

</comment></comment><comment><USER4> Curious to know if your Asterisk system is susceptible to red boxing.

<comment><USER5> I was unaware of red boxing. Had to look it up. Pretty neat [http://en.wikipedia.org/wiki/Red_box_%28phreaking%29](http://en.wikipedia.org/wiki/Red_box_%28phreaking%29)

<comment><USER6> May I ask how old you are? I feel like a lot of people my age with an interest in "hacking" had one of these back in the day.

<comment><USER7> Steve Jobs started like that (blue boxing) and somehow avoided prison like what would happen today.

Could be an alternate universe timeline for him.

<comment><USER8> ironically, every self respecting hacker would be ok if he was trhow in jail for that. He didn't invent it or anything close to that, but tried to sell and make money. lacking a proper car analogy, akin to a script kiddie advertising malware he found on some BBS of later.

</comment></comment></comment></comment></comment><comment><USER9> Before clicking, I thought it was related to this Payphone Project: [http://www.payphone-project.com/numbers/](http://www.payphone- project.com/numbers/)</comment>


HealHoboken - <AUTHOR> http://healhoboken.org/

<comment><AUTHOR> Hoboken NJ was one of the hardest hit areas during Hurricane Sandy and needs help from the HN community. Hoboken has a small, but yet passionate group of tech entrepreneurs emerging from it's mile square radius and we want to help our surrounding neighbors get back on their feet. Please help anyway you can. Heal Hoboken!

<comment><USER2> Just featured on nj.com :) [http://www.nj.com/hobokennow/index.ssf/2012/11/thousands_of_...](http://www.nj.com/hobokennow/index.ssf/2012/11/thousands_of_dollars_being_rai.html)</comment></comment>


"Safari can't verify the identity of the website 'static.ak.Facebook.com'?" - <AUTHOR> https://www.quora.com/OS-X/What-is-this-error-message-that-Safari-cant-verify-the-identity-of-the-website-static-ak-facebook-com <comment><AUTHOR> Solution found, typed up as Answer.</comment>


How do people communicate before death? - <AUTHOR> https://www.theatlantic.com/family/archive/2019/01/how-do-people-communicate-before-death/580303/ <comment><USER2> Headline is (now?) "What People Actually Say Before They Die", which is way more descriptive.</comment>


Restaurants starving as diners disappear - <AUTHOR> https://nypost.com/2020/03/13/restaurants-starving-as-diners-disappear-during-coronavirus-crisis/ <comment><USER2> They should hand out a free roll of toilet paper with a meal.</comment>


Artists turned a glitch into a building - <AUTHOR> http://www.hopesandfears.com/hopes/city/architecture/216537-interview-bitnik-glitch-facade <comment><USER2> This is what it looked like originally.

[http://media- cdn.tripadvisor.com/media/photo-s/07/d3/de/df/h...](http://media- cdn.tripadvisor.com/media/photo-s/07/d3/de/df/house-of-electronic-arts.jpg)

I can't say I'm overly impressed.

<comment><USER3> Agreed. I don't think--not being told what was going on--I'd have pointed out that there was anything particularly special going on.

</comment></comment><comment><USER4> Post World War II architecture is a blight. For whatever reason, engineers who believe art is a scientifically unprovable fiction chose to play artist en masse with civilization's buildings. Likewise, people who hate the precedent of architecture (and the precedent of nearly everything else) chose en masse to play architect for future generations. The results litter the present landscape like jagged, half-knocked-out teeth. These buildings cannot return to the earth quick enough.

<comment><USER5> So many buildings in my city that look they they came out of a Soviet country where the sky is gray, the food is gray, and our souls are gray. Dreary, bland, concrete slabs 10 stories high. Something that millions of people have to look at every day, but the architect didn't plan the aesthetics of for 20 seconds. It was designed to be functional, like an economy car. What way is that to live? At least the Chevy Aveo will break down and be gone in 5 years. The building named after the law firm that occupies it will stand for 50, maybe 100 years of bleak, boring, oppressiveness.

And people wonder why cities have graffiti artists. They're not tagging Gothic churches or glass-and-steel art museums, they're just removing hideous concrete blobs from the city we all share.

<comment><USER6> "And people wonder why cities have graffiti artists."

To be honest, I always thought it was more about territorial pissings.

<comment><USER7> Are you thinking of tagging? That's definitely the case. But wall-sized murals, train-car collages, pavement trompe l'oeil are all there because an inspired artist had to express themselves.</comment></comment></comment></comment>


Google Drive Realtime API - <AUTHOR> https://developers.google.com/drive/realtime/ <comment><USER2> Assuming I trust Google with all the data and all my users have Google Drive, this looks like a super easy way to make documents created in a web app editable in real time by multiple users.

I'm curious about the details though, which would be ironed out with some more detailed playground examples. Does the API handle merging of the update events on the client side, or do I have to do all that work myself from the stream of insert/removal events? Can I handle them myself if I want? Assuming I want to extend the UI of these updatable strings, so that people can see other people's cursors and such, what would I need to do? Is the client-side library extendable so it can update my UI without hammering my customizations (cursor position, formatting, embedded data transformed into HTML)? How will that scale once the document grows to a considerable size (will I be able to update only changed portions of the DOM created by a large document without doing my own complex diffing logic on the client side)?

For example, build me a basic rich text editor in this that mimicks some of the features of Docs, and show me how much extra code that takes. This code sample by itself doesn't make me confident that the above features would be simple: [https://github.com/googledrive/realtime- playground/blob/mast...](https://github.com/googledrive/realtime- playground/blob/master/js/rtpg.string.js)

It's precisely those richer features of the Google Docs experience that people crave when they say they want to add "realtime collaboration" to an app, not just .val()'ing form fields to the latest known value from the server. Right now this looks like it has the features of a backbone.js + Couch adapter (e.g., <http://janmonschke.com/projects/backbone-couchdb.html>) except Google sits on all my data.

</comment><comment><USER3> I'm still irritated with Google Reader story. How long is this one going to be around, year, two? I think Google should start pledging a number of years they will support a service, why should the developer be taking most of the risk?

<comment><USER4> Reader didn't have a documented API, and the differences between it and this only begin there. Move on.

<comment><USER5> But Google has retired quite a few APIs before. Search API, CalDAV, Google Base Data API, Social Graph API, Translate API, and the list goes on.

Google Docs looks like it has a healthy future, but they very easily could decide they don't want the API out there. Particularly with Google's newfound lack of fear of pissing people off.

<comment><USER6> FWIW CalDAV wasn't "retired" they're just going to start screening its use: [https://docs.google.com/forms/d/19gOLSlkTzHi- zub3BkMv7Ot0JML...](https://docs.google.com/forms/d/19gOLSlkTzHi- zub3BkMv7Ot0JMLPj4YSxJUBseGAMSg/viewform)

<comment><USER7> And the translate API is still available[1] and the Google Base Data API (sic) looks like it's just subsumed into other APIs[2].

[1] <https://developers.google.com/translate/>

[2] [http://googlemerchantblog.blogspot.com/2010/12/new- shopping-...](http://googlemerchantblog.blogspot.com/2010/12/new-shopping- apis-and-deprecation-of.html)

</comment></comment></comment></comment></comment><comment><USER8> This is pretty awesome. It seems like the models are similar to the operational transformation models that they've been using in Wave/Docs (with the batched client operation submissions). It's definitely much more advanced than what Meteor does, which is just last-writer-wins.

Still, I'm a bit wary that they're offering this as a API, rather than a framework. I don't know if I would build an application completely on top of an external API...

<comment><USER9> Given that it seems to require building everything on the three collaborative primitives, and that much of Wave and the ideas behind operation transformations are open, it seems plausible that someone could build an open source implementation of the server component that the JavaScript library could then hook into.

<comment><USER10> I'm the developer of ShareJS (sharejs.org) - and we have realtime JSON editing too.

The technology is compatible, and it should be pretty easy to make ShareJS compatible with the GDrive client API.

</comment></comment></comment><comment><USER11> This is slightly off-topic, but since everybody's commenting about it anyway: Was Google Reader (and Posterous, to a lesser extent) the tipping point for awareness and activism surrounding the shutdown of free services? This could be a big thing in 2013.

<comment><USER12> The tipping point for me was Twitter's increasingly hostile approach to third party devs.

I've been racking my brain trying to think of the first service that I used regularly that was shut down. Pownce maybe? (anyone else remember that?).

I'm currently hunting for a replacement for Gmail that is self-hosted, or at least a solution where the cost of switching providers is low (i.e. I could shift my email to a new host without changing my email address or losing my message history). I'll probably end up using some sort of IMAP provider. There are a lot of features I'd stand to lose though. Conversation view is hugely useful, and Gmail's spam filter is just unbeatable.

<comment><USER13> pownce was indeed awesome.

both twitter and in some part google have recently acted very hostile to the notion of the open web. (Although referring to corporations as a singular entity irks me somewhat)

</comment></comment></comment><comment><USER14> I really thought this was an API for the driverless cars!

Slight disappointment after following the link of course :)

</comment><comment><USER15> The API seems to require users (and not just developers) to have to authorize the app :-(

This kinda limits you to Google Docs style apps, as opposed to other crazy ideas I might have. I would also like to have an option to pay so that I can keep our users data private.

Edit: Added clarification.

<comment><USER16> Is there a way let users collaborate without authorizing the app?

Developers authorize and create API with Google but it will be nice to allow users to collaborate anonymously like Sharing a Google Doc to the public.

</comment></comment><comment><USER17> They should fix Google drive before launching an api... I don't understand why google didn't fix it yet. It's a big issue, bigger than the google reader thing... People use Google drive for their business (and some pay, like me), not google reader. WTF Google ! We are waiting so long !

<comment><USER18> Fix what part of it? You're talking as if we all know what is wrong and needs to be fixed but I don't think we know what you are referring to.

Google Drive works great for everyone I know, are you referring to the short downtime the other day?

<comment><USER17> Sorry yes I assumed everybody knows because I know many people having problem around me... The famous unsyncable file, everybody I know including me have this issue. For some people Google drive use 100% of the cpu until it crashes, always, whatever they try. I got often disconnected for absolutly no reason. Well, I have collegueS that just can't make it work on their computers (recent iMac and macBook). And When I search on google, i find easily many people having the same problems, even today. I love Google product, but currently Google Drive is huge fail for me, I hope they fix it soon. They didn't update their app since a long time I think...

<comment><USER18> I think that seems to be a common problem with Google. It could be only 1% of people are having the trouble you are having. But that could mean 10,000 people(not sure about real numbers) but at 1% it isn't on Google's priority list. :(

</comment></comment></comment></comment><comment><USER19> This is really a great API for developers and I can see a lot of different applications. Let's not let google reader's closing negate all the tools google provides for free.

</comment><comment><USER20> More importantly, how does Google ensure me it won't shut it down in 5 years?

</comment><comment><USER21> Wondering if Google Keep ([http://www.theverge.com/2013/3/17/4117780/google- keep-note-t...](http://www.theverge.com/2013/3/17/4117780/google-keep-note- taking-app-spotted-in-drive-before-disappearing)) is built on top this API ;) The API realtime capabilities will definitely drive interesting projects if Google Keep is just the start!

</comment><comment><USER19> Anyone have a good source for a list of all the official and unofficial google APIs?

A quick search provided this but it does not have any of the unofficial internal API's that we love so much.

<https://developers.google.com/apis-explorer/>

</comment><comment><USER22> Would it be possible, with this, to display files in your Google drive as read-only to people visiting a website?

I'm thinking this would make a killer back-end for certain kinds of websites.

</comment><comment><USER23> Wasn't Google killing Reader because they had to focus on less products? How many new products this week alone have they introduced? 3, 4, 5?

<comment><USER24> Google closing reader was probably something to do with the French un-digital papers that wanted the interwebs going to their website-o-pages to read content there.</comment></comment>


Is 18F a money loser? - <AUTHOR> https://www.washingtonpost.com/news/powerpost/wp/2016/11/02/why-a-federal-high-tech-start-up-is-a-money-loser/?hpid=hp_regional-hp-cards_rhp-card-fedgov%3Ahomepage%2Fcard#comments <comment><USER2> another wapo article hammering home its anti-government ideology. they think that a public agency can and should act, think, and feel just like a for- profit entity operating in a competitive market. that's nonsense.

calling 18F a 'money loser' is just anarchocapitalist newspeak for missing budget projections. yawn.</comment>


Lead poisoning is a major threat at America's shooting ranges - <AUTHOR> http://projects.seattletimes.com/2014/loaded-with-lead/1/ <comment><USER2> Just skimmed it (about to go to bed), but I'm not impressed:

For starters, as others have noted, the danger is from the lead styphnate in primers when used in indoor ranges. They ought to have made that clear ... especially since there's an obvious solution which is good for ranges (we don't entirely trust lead free primers yet, but unless one causes a squib misfire that lodges a bullet in the barrel, it's not a serious problem).

They invoke the eeeeevil NRA ... which is the organization of gun _owners_. Not a word about the National Shooting Sports Foundation (NSSF), the organization for the gun _industry_ , including ranges.

Don't know if they went into it for real, but this danger has been generally recognized for as long as 3 decades. The NRA has certainly been telling its members about it. Just like we're told not to eat or smoke while reloading. Of course, there's more than one compelling reason to not smoke while reloading ^_^.

<comment><USER3> Inspecting barely a fraction of the facilities and having very limited power to prosecute the most flagrant violators is the take-away from this.

You're obviously reading something into this. I didn't get a "guns are bad, NRA is evil" vibe at all. Instead I read about how people in this industry, customers and employees have little to no protection from potentially hazardous environments and perhaps no idea how severely contaminated some of these ranges are.

It would seem that if one of these ranges had an elevator in it, the elevator would be inspected far more frequently than the range itself would be.

Maybe you've been informed about the potential risks of an indoor range, but it seems that those risks are severely compounded when an operator flagrantly ignores any reasonable safety standards like filtering recirculating air.

<comment><USER2> The bias is there, or at least the normal gross ignorance of the MSM, in e.g. talking about the NRA but not the NSSF; the latter is inexcusable sloppiness. Or trying to confound the dangers of indoor and outdoor ranges. Or, heck, is there the slightest evidence they talked to anyone on my side about how we view this?

For that matter, the MSM's _Der Stürmer_ approach towards the NRA and gunowners suppresses membership in the former and therefore the education the latter might otherwise get from reading the member magazines.

Perhaps I'm oversensitive, but being part of this fight since the early 1970s (sic) bias from the MSM is assumed and the tropes are trivial to detect. Counterwise, not genuinely biased reporters and editors are so marinated in gun grabbing bias---as _you_ are unless you read a _lot_ from other sources to counter it, even if you're an active gunowner, even a NRA member (or so surveys tell us about the latter)---they'll automatically use them even if they weren't really meaning to be biased. Perhaps a style vs. substance problem, since the problem is real ... but, again, the dismissive attitude towards the NRA and the blackout on the NSSF shows the limits of their research, and at some point "they're the generically clueless MSM" excuse doesn't cut it.

Did the article give any examples of _customers_ being harmed? In these situations, it's almost always an occupational danger, since owners, employees and volunteers get massively longer exposures, and are also responsible for cleaning the place, which can also expose them to lead fragments at the end of the range. I think nowadays almost all centerfire bullets are jacketed, but ubiquitous and inexpensive (until very recently) .22 LR rimfire aren't jacketed, or not seriously. Probably less of a threa

I also wonder why OSHA and the state OSHAs aren't on the ball. The usual suspects on my side, the NRA and NSSF, are very serious about this (the exit of the very nice NRA's HQ range in Virginia has two hand washing stations you can't miss and as mentioned publicity of the dangers, and see [https://www.google.com/search?q=nssf+range+lead](https://www.google.com/search?q=nssf+range+lead)), they publicize the dangers, the NSSF helps ranges ... the OSHAs could be more heavy handed if they wanted to be, as long as it was clear to these orgs they weren't just trying to shut down ranges. And there's funding to be had for ranges (add "fund" or "funding" to the prior search).

<comment><USER3> The way the NRA handles perceived threats with over the top hyperbole is not very helpful in debates like this. It'd be like restaurant owners complaining that food inspectors are there simply to shut their place down.

Lead is a hazardous material. There's no debate here. Where you have hazardous material in an enclosed environment you will have problems unless proper precautions are taken. Without even cursory inspections, how can you know this is the case?

If you want to froth and rage against the so-called mainstream media, which it should be noted is largely owned by massive empires controlled by extreme right-wing oligarchs like Rupert Murdoch, that's hardly helping. How do you expect someone to write an article aimed at the general public when it'd end up drowning in industry jargon and speak about organizations few ever have to directly interact with?

Like it or not, the NRA is the PR department for not just gun owners, but the gun industry at large. The NSSF seems largely absent from any debates.

</comment></comment></comment></comment><comment><USER4> INDOOR ranges, to be clear. I don't know how people can stand shooting in them because of the increased percussion, regardless of lead poisoning.

<comment><USER2> If you're at all interested in self-defense, getting used to the percussion, albeit with hearing protectors, is a very good idea, since you might have to use a gun inside a building.

(There are earmuffs that'll receive, or even amplify outside noise except of course for gun shots. They're _very_ useful for instruction.)

</comment></comment><comment><USER5> Anyone know in what form lead occurs in the residue/vapour at gun ranges?

Is it all native Pb, or are other more soluble compounds formed during firing?

<comment><USER6> There is lead styphnate in primers though I think there are lead-free ones now.

</comment></comment><comment><USER7> Interesting article. Ventilation is one of several reasons I strongly prefer shooting at outdoor ranges.

</comment><comment><USER8> Took a second to realize that the headline wasn't a joke.</comment>