The Socratic Method: Teaching by Asking Instead of by Telling - <AUTHOR> http://www.garlikov.com/Soc_Meth.html <comment><USER2> There is _one_ professor at my course that used the socratic method. Those are some of the best lectures I've been to.

A lot of professors _think_ they're using the Socratic method, but their problem is they don't have the patience to wait for an answer. Posing questions rhetorically doesn't work, especially once the people you are teaching catch on and stop trying to come up with an answer.

I've tried doing the socratic method when tutoring people - it's extremely frustrating and most of the time I can't pull it off.

How does one gain the necessary patience for this?

<comment><USER3> _Posing questions rhetorically doesn't work, ..._

Well it works for me, even if there's only time to think: Now _that's_ an interesting question, what would be the answer to that?

</comment></comment><comment><USER4> The socratic method has an awful failure mode: you can't teach facts, and you can't teach anything derived from empiric data.

The periodic table of the elements has a lovely underlying theory based on the physical properties of electron orbitals. This cannot be elicited from students who don't know it.

Asking socratic questions about the effects of drugs on human bodies is useless.

Don't trust a socratic-trained engineer to build your skyscraper, or your pizza oven.

<comment><USER5> > The periodic table of the elements has a lovely underlying theory based on > the physical properties of electron orbitals. This cannot be elicited from > students who don't know it.

Of course you can't give students a periodic table and Socratically enquire how this came to be. What you can do is, through the Socratic method, elicit an understanding of the lovely underlying theory. That's far more valuable than being able to parrot the table from memory without understanding it.

I'm not sure what you mean by not being able to teach from empiric data-- experiments seem to me to be a practical implementation of the Socratic method.

</comment></comment><comment><USER6> It is also a wonderful way to teach your own children, and more importantly discuss issues that frustrate them.

Spitting out answers without having an question makes the answer a useless fact. Understanding is acquired. Understanding can never be forgotten.

I would never have gotten through my teenage daughter's high school years without it. I am a single father so relying on other traditional methods don't work as well as reasoning directly.

She earned a full scholarship to Dartmouth, was a Intel Semifinalist (genetic research), and is now studying Biology with a course concentration in Neuroscience.

I only taught her how to think about things, never facts.

<comment><USER7> No facts at all?

I'm pretty Socratic in my approach but find it breaks down without elemental factual data to build the enquiry upon. Indeed I find it best for approaching assumed knowledge in order to build an ethos of enquiry.

Why does the moon 'shine' can be deduced by the student in part by the teacher first recalling associated facts; even if these are to be assumed true as part of the enquiry.

I was reading Laches recently - [Plato as] Socrates enquiring as to what children should be taught (fighting,duh!) - and Socrates destroys the others attempts to logically promote their views. Ultimately though they're left with nothing and have to come cap-in-hand and say 'alright bighead, how do you propose we educate our kids'. Sorry, I'm wittering ... I think the point is that I find it lacks as a constructive method, one needs experiment and axiomatically held data to support it.

</comment></comment><comment><USER8> One should not forget, in the end everyone was so annoyed that they made him kill himself.

[Edit] <http://en.wikipedia.org/wiki/Socrates#Trial_and_death>

"But perhaps the most historically accurate of Socrates' offenses to the city was his position as a social and moral critic. [...] insofar as he irritated some people with considerations of justice and the pursuit of goodness. His attempts to improve the Athenians' sense of justice may have been the source of his execution."

</comment><comment><USER9> Here's the previous submission: <http://news.ycombinator.com/item?id=2446316>

</comment><comment><USER10> This isn't really what I think of as the Socratic method, which pertains to a style of discourse (whether it be teacher-student or peer-peer) involving questions by one side and answers by the other to investigate nonfactual issues, and which attempts to keep the discourse grounded in solid reasoning.

Of course, eliciting information from students, regardless of what you call it, is a well known and essential aspect of _any_ good lesson plan. It is a real challenge to ask the right questions and stick with it when students aren't making the discoveries you want, and it's tremendously rewarding when it works. But it's not the whole story, and I think it's tempting to get excited when it works and lose sight of the longterm goals for you students. For many topics, it must be followed at some point with practice, and a LOT of it. It can leave some students totally behind. In fact, it's actually still quite teacher-centric, and should be used in short segments and (when possible) replaced by student-centric activities.

<comment><USER11> It is. It's just like Meno's slave.

<http://en.wikipedia.org/wiki/Menos_slave>

<comment><USER10> There are lots of question and answer situations -- not all of them are the Socratic Method. I prefer a narrow definition: the Method was largely "to elicit admissions, as from an opponent, tending to establish a proposition" [1] and, esp. regarding education, pertains more to the discovery of philosophic Truths. In Meno's slave, the point isn't to teach someone geometry but to prove that teaching is possible, i.e. that any uneducated person could follow logical arguments and learn; the philosophic truth at hand is learning. What is the philosophic truth at hand in this case?

[1] <http://dictionary.reference.com/browse/socratic+method>

</comment></comment></comment><comment><USER12> I've been in a math class at the college level which operated exclusively by the Socratic method of questioning. Within an hour or two it became obvious that the appeal to the crowd didn't work so well, as some people will understand the concept faster than others. As a result, we went around to each student. However, this did result in sometimes trying to get an individual student to say the "correct" thing in order to follow to the next sequence of questions. People were put on the spot, which isn't necessarily bad. Also the class moved as slow as the slowest person and it took a whole lot of preparation by the professor. We had about 20 people, and at that scale it wasn't necessary to concentrate on each question, but only to the general topic. Even at that scale the method was breaking down, both from previous reasons as well as introducing a small amount of "stage fright". However, everyone left the class knowing what was taught, with a minimum of confusion along the way.

</comment><comment><USER13> There was a relatively recent article in Time about the socratic method not being so great: [http://ideas.time.com/2011/12/14/why-asking-questions- might-...](http://ideas.time.com/2011/12/14/why-asking-questions-might-not-be- the-best-way-to-teach)

Basically, they recreated one of Socrates' lessons. The students gave similar answers to the 50 questions, but only half figured out the task at the end of the lesson. The students didn't understand the importance or goals of the questions and answers.

That's not to say the socratic method doesn't work. If you read enough research and anecdotal stories about education, you'll come to realize that everything works and nothing works. For every idea in education, research will eventually show that it is ineffective and a waste of time and resources.

<comment><USER14> So the students were fed the original 50 questions from Socrates dialog... This is very different from the Socratic method as I understand it, which relies not on a static set of questions, but on the interactions between the teacher and the audience. That the students answers to the 50 questions were similar the answers in Socrates' dialog is not enough.

A static list of questions is just an ordinary lecture, reworded. The OP's article shows how precious the Socratic method is in giving you an immediate feedback from the students. In this sense it is crucial that questions are formulated based on the previous answers.

The author does that in the article: prepared questions are important to guide the general line of reasoning, but improvised questions are just as important to navigate along this line.

<comment><USER15> > So the students were fed the original 50 questions from Socrates dialog... > This is very different from the Socratic method as I understand it, which > relies not on a static set of questions, but on the interactions between the > teacher and the audience. That the students answers to the 50 questions were > similar the answers in Socrates' dialog is not enough.

As Plato/Socrates wrote, the problem with books is that they can't talk back and react to you.

</comment></comment></comment><comment><USER16> The method might not be useful in every situation, but is an useful tool.

It brings your audience in the middle of the learning process and, by making the right questions, allows tutor to gather information about tutored's line of thinking.</comment>


Ask HN: Why do I always see "X has shut down", but have never heard of X? - <AUTHOR>

Over the past 2 years I've seen maybe a hundred "X has shut down" postings, but many of them I have never heard of, and some of them looked like a company I would have liked to have done business with.<p>So, what gives? Do companies just not advertise themselves enough? <comment><USER2> They failed to reach you and that's part of the reason why they shut down.

</comment><comment><USER3> For a lot of the companies I see, it's not that they don't advertise enough... It's that they're selling a solution to a problem that nobody is rushing to solve.

Other factors come in of course, such as: bad advertising, bad product, poor social media representation, bad SEO, bad service, bad management, bad whatever.

From my perspective though, I just see lots of companies selling solutions to problems I never thought of looking for a solution to. It takes some really, really good advertising and a good product to overtake that burden.

</comment><comment><USER4> Based on the title I arrived here to explain how the X display server works :P

</comment><comment><USER5> For the simple reason that the more successful a company is, the more likely you are to have heard of them. These are the companies that never gained traction.

</comment><comment><USER6> It'd be nice if there was a "Startup Portfolio" that's linked on HN which is basically a long list of startups that have been endorsed or blessed or backed by HN founders, supporters or alum. Each company could get 1 paragraph to describe their company and their current objectives. Might be interesting to just browse the list on occasion.

<comment><AUTHOR> That would be nice. And maybe companies owned by high karma count HN users (cough cough)

</comment></comment><comment><USER7> There are also lots of multi million or multi billion dollar successful businesses that you have never heard of.

I think it is more about your bandwidth as a mere mortal. Even with the number of advertising messages laid on us per day, there is no way we can know about every business that may be relevant to us. There is only so many Kb/s that can enter our brains!

</comment><comment><USER8> Who cares about X when there is Y?

</comment><comment><USER9> What's X? Never heard of it.

<comment><USER10> X is a windowing server and that shuts down all the time.

<comment><USER9> (Back in the day I had a three-year X session, and that was on an AIX RS-6000; couldn't hardly believe it.)

<comment><AUTHOR> As a former X user, that's absolutely amazing, but then I realized you're on AIX. IBM loves doing the impossible regularly.

<comment><USER9> Compiling for it was such a royal pain :(

Made a great footrest, though. AND 128M OF RAM HOLY COW.

Ah, those were the days.

</comment></comment></comment></comment></comment><comment><USER11> You don't need to be magnificent and newsworthy to be successful as a business either. You can be quietly successful as well.

There is this fetish in the valley with external validation. Often times, even the public, sluttiest startups end up touting, over-promising and subsequently under-delivering.

</comment><comment><USER12> Same here. :-)</comment>


A script to analyse 7 years of my YouTube history - <AUTHOR> https://blog.viktomas.com/posts/youtube-usage/ <comment><USER2> > YouTube doesn't tell you how much of the video you have watched, so my > computation can't differentiate between watching 1 minute of a 60-minute > video and watching the whole thing. For that reason I count at most 30 > minutes of each video, even when it's longer than that

Dang, would have been cool if they kept that data</comment>


The rotten heart of finance - <AUTHOR> http://www.economist.com/node/21558281?fsrc=scn/tw_ec/the_rotten_heart_of_finance <comment><USER3> I read things like this and by fixing LIBOR they're treating a symptom rather than addressing the cause.

My belief--and many seem to disagree with me on this whenever I've brought it up before--is that we erred in allowing investment banks to incorporate.

IMHO investment banks need to act like law firms: as partnerships with _unlimited_ liability. Currently there is no incentive to not pervert the system and manage risk because:

\- no one is going to jail for criminal acts committed in these financial crises (eg loan documentation fraud and illegal foreclosings in the subprime fallout);

\- there is no financial incentive to act responsibly because if you go bankrupt this year last year's bonus is already banked;

\- central banks have been perverted into being welfare for investment bankers as a so-called "lender of last resort". Ostensibly they are ensuring the function of the financial system. In practice they are giving investment banks an unhealthy appetite for risk. Banks and funds need to be allowed to fail; and

\- governments are complicit in this.

<comment><USER4> I agree with you. The partnership structure forces law firms to be run very conservatively, and prevents them from scaling to huge sizes, which has the advantage of limiting the amount of consolidation in the industry. I think for professions like banking, law, and accounting, these are good incentives.

I think it would also help to take more seriously the ethical responsibilities of bankers as fiduciaries' for peoples' money. A law firm cannot represent both sides of a merger, because that would involve a conflict of interest. So why can Goldman take positions where they stand to profit enormously if their clients lose money?

<comment><USER5> _So why can Goldman take positions where they stand to profit enormously if their clients lose money?_

Because Goldman's clients are grown-ups and allowed to have their own beliefs about the future of the market, as well as their own risk tolerance.

Goldman wasn't obligated to put up a shingle reading "We are losing our appetite for CDOs, and so can't take your money if you think they're still a great investment."

<comment><USER6> >Goldman wasn't obligated to put up a shingle reading "We are losing our appetite for CDOs, and so can't take your money if you think they're still a great investment."

This is the problem. They should be obligated. Being a professional carries ethical constraints. If your clients aren't getting your best advice you aren't a professional, you are a salesman. It's not okay for salesmen to pose as professionals.

<comment><USER7> >This is the problem. They should be obligated. Being a professional carries ethical constraints. If your clients aren't getting your best advice you aren't a professional, you are a salesman. It's not okay for salesmen to pose as professionals.

Now, modern usage of 'professional' aside,(I killed a long screed about how the only people putting effort into being seen as professionals anymore are salespeople, thus the word is losing it's previously positive connotations.) This idea that "professionals are trustworthy" comes from the outmoded idea that the upper classes are somehow more honest and trustworthy than the 'working man' - that because the lawyer has more education than the plumber, and probably comes from a higher-class background, he has a feeling of "Noblesse oblige" - and you can therefore trust the lawyer while you can not trust the plumber.

<comment><USER8> Professional ethics are based on the obligations that come with specialized knowledge and responsibility. Even professions that are solidly middle class are seen as having duties and obligations. Librarians are expected, for example, to resist censorship, and to protect the privacy of their patrons.

If professionalism seems less meaningful in modern society, it is because a distressingly large number of professionals in occupations like finance are acting dishonorably and unethically.

<comment><USER7> Fine, fine, I'll post the screed. My point is that the word "professional" is now all but synonymous with "slick salesman"

Personally, I doubt that "professionals" were any more trustworthy before I was old enough to notice, too... thus me poking fun at the very ideas underpinning it.

(as an aside, I don't know all that much about finance... but as far as I can tell, it's nothing but sales, so there really isn't any room for professionalism in the way you mean the word. They aren't doing anything but selling.)

My experience with people that claim to be 'professional' or who attempt to dress professionally - nearly all of those people I know are salespeople. If you want someone to show up on time and look good? sure, go with one of them. If you want the correct answers to your questions? if you want someone to give you truthful answers even when those truthful answers mean you go with a competitor? find someone who is actually into what you are trying to do.

That's the thing, at least in the part of Engineering where I work? sure, some good Engineers claim to be professionals, but almost none of them put any effort into the appearances of professionalism. Few put any effort into dressing or grooming, and many are habitually late.

The only people I know that put a lot of effort into appearing professional are the sales people.

I mean, sure, you and I can argue back and forth all day... "Words have meaning!" and, of course, a 'professional' is someone that does a job that requires a lot of training, and probably comes from an upper middle class background. But the thing is, that meaning changes over time, as how the word is used. Personally, I associate the word 'professional' along with the western style business suit, with fraud, mostly because the Engineers I know don't put much effort into claiming to be professional, while most sales people do. I think that more and more people have that opinion of the suit; even salespeople I meet rarely wear suits, (though, of course, they still loudly declare they are 'professionals' even though they have little knowledge of the product and are more than happy to make up ridiculous lies about their own product and the competition.)

<comment><USER9> "Professional always means power." Frank Herbert

Most specifically, the power to exclude competition, that is the sole real purpose of "professional licensing", whether medical, legal, engineering, or other. The "protecting the public" is fraudulent window dressing to impress the suckers.

<comment><USER6> Overly cynical. If doctors did not have a professional association their conduct would likely get worse, so there is a public interest being served when professions self-regulate for quality. There is also an anti-competitive factor, but corporate oligopolies do the exact same thing. Libertarians criticize professional bodies and unions while giving monopolies, oligopolies, and regulatory capture a free pass. This is plain stupid because it is those corporate monopolies that are stifling human progress, not the relatively powerless unions whether they're the white collar "association" variety or the blue collar "union" variety.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> This is why when you hear politicians bleating about de-regulation, you need to read between the lines to figure out what they are actually saying.

Conduct of markets so critical to our society need to be done in the open, in an publicly accessible exchange. Banks will not fix themselves, they need to be compelled to do so by strong regulation. For all of the hand-wringing over high-frequency trading of equities, at least you can ultimately figure out what is doing on.

Bankers used to be boring people whose primary job qualifications were looking distinguished and having the ability to follow instructions precisely. We need a regulatory environment that brings that kind of banker back to the mainstream.

<comment><USER11> They are regulated. The regulators are complicit. Regulation is not a magic bullet. Moreover, regulation is not homogenous. More regulation is not always better/worse, and less isn't always better/worse.

Leave the talking points at home.

<comment><USER6> It's better to describe regulators as captured rather than complicit.

Regulators have no chance when the people they are supposed to regulate have hundreds of times more power than the regulators. Allowing unlimited wealth concentration guarantees that the most powerful private interests are always more powerful than government regulators.

<comment><USER12> Power would matter a lot if regulators knew exactly what to do, but lacked power to enforce it. Unfortunately, most frequently regulators have very little idea about where the next crisis would come from (count how many times "unexpectedly" is featured in economical reporting) and what to do to prevent it, and there are many contradictory opinions on these subjects. Often they even have very little idea about what exactly major players are doing and why, and lack the ability to foresee all the risks. Moreover, since regulators are appointed by politicians (there's no other way to do it in democratic society) they of course would be heavily influenced by political considerations, which may be not to the best of the regulated industry - e.g., if politicians want more people have access to certain loans, regulators would force banks to accept more risk on such loans, even if it doesn't make financial sense to them. And then if such loans blow up, the bankers would have a valid claim to be bailed out - after all, didn't regulators ask them to accept such risks?

<comment><USER6> All of these are solvable problems.

1\. Regulators lack visibility? Give them investigatory powers.

2\. Regulators can't predict the next crisis? Maybe with bigger budgets they would have higher quality employees. All the talent works for the hedge funds who pay them literally hundreds of times more. If the person being regulated makes $1M/year the regulator needs more pay than that or there will be talent asymmetry. Obviously, the key issue here is that the financial sector gets paid way too much, way more than the value it produces. The profits are based on a rigged financial system.

3\. Regulators appointed by politicians due to democracy? Cancel democracy and implement meritocracy. Require positions of power to be filled by civil servants with proven skill who have to pass tests, rather than politicians elected by the stupid hordes. If the masses are going to elect people that are provably useless, the masses should be stripped of their voting privileges for their own good. Democracy is not a panacea. Meritocracy is better.

4\. Banks upset that the gov causes them to fail? Nationalize the fucking banks, duh. Banking is not high tech and should not be high tech. It should be a public utility that is the most conservatively run thing in the economy. Banks should be separated from investment entirely. Government should invest in high tech but only using the judgment of highly qualified meritocrats with proven knowledge elected by their specialist peers to oversee government investment within that specialty. Private investors should have no connection to banking.

The root of all social problems is the fact that the most qualified and knowledgable academics and technologists have zero political power, while Chrstian pseudo-preachers hold all of it. Intelligent people (e.g. Those on hacker news) should be pushing technocracy and meritocracy and disempowerment of the idiot hordes who don't even know how to act in their own self-interet.

<comment><USER12> 1\. They should know _what_ to investigate. In most cases, they don't until it's too late. Amount of financial transactions in average bank is tremendous, and unless you know exactly what to look for it's beyond shadow of possibility to make sense of all of this data and see if there's any problem somewhere there. You'd need regulatory agencies with personnel 10 times more than whole personnel of all banks. Who'd pay for that?

2\. It's not a question of budgets. Somehow some people got the idea money is all-powerful and enough money solves any problem. That's BS. Nobody knows that. And yes, bankers don't know that too - do you think they enjoy being nearly bankrupt? If they could properly predict such things, they would. They can't, however, so instead they do what they can - dance on the line as long as they can and cry for help when the time comes.

3\. Yeah, right. And who will be determining "merits", you? No, thanks. I'd rathe take my chance with the stupid hordes - at least they are not so swollen with self-importance as to deny everybody who disagrees with them basic human rights of self-rule and control over their own destiny. All these arguments that some people should be slaves "for their own good" and have no rights except the right to be ruled by kind masters - we are way past that. Sorry, those times won't return, abandon that dream.

4\. Nationalized industries work really great, duh. Of course, being controlled by the state gives people superpowers, so industry that was badly managed and corrupt as private, of course will become clean and well-managed as government enterprise. After all, government enterprises are universally known for their excellent management and total lack of corruption, especially when it comes to managing billions of dollars. Duh.

>> The root of all social problems is the fact that the most qualified and knowledgable academics and technologists have zero political power, while Chrstian pseudo-preachers hold all of it.

This is completely stupid and false. The social problems have multiple roots, and very little of them have anything to do with technologists and academics having little power. Academics, technologists and social engineers of all kids have huge powers and access to enormous budgets and overwhelming regulatory powers. Most of their social engineering enterprises, however, meet with disastrous results, exactly because every complex problem has cheap, obvious, easy to understand wrong solution. And people like you grab at it and yell "oh, that's simple, let's nationalize all banks and appoint more bureaucrats to run financial industry, that would guarantee us eternal prosperity". No, it won't, sorry.

The "idiots" are acting exactly in their self-interest when they are ignoring advice like yours - because what you are advising is a recipe for disaster and this was proven by history many times. Unfortunately, they don't always do that - sometimes the simple wrong solution is too tempting. They - we - <USER2> pay dearly for that.

<comment><USER10> A stable, regulated banking regime was in place in the United States until the 1980's and 1990's. The 80's saw the results of "innovation" in the financial sector through the implosion of thousands of savings & loan institutions. We didn't adopt our current _laissez faire_ regime of "bankers gone wild" until the late 90's.

My memory may be foggy, but I don't recall the period of 1945-1999 as some sort of socialist nightmare for the United States. Most people think of this era as a golden age.

Regulation doesn't mean nationalization. It means that you put rules in place to do things like eliminate practices the fundamentally place the bank at odds with their customers. Things like using the customer deposits to make multi- billion dollar gambles (JP Morgan Chase, MF Global). Or subject the firm to tend of billions of dollars worth of liability that the firm is unable to make good on (AIG). Or commit outright fraud (Countrywide, Washington Mutual, Barclays, etc).

I don't work in the financial industry, so the normal laws of business apply. If I systematically broke internal controls and rigged KPIs to achieve the maximum bonus compensation possible for me, I'd be investigated, terminated and likely prosecuted. Why shouldn't the guy managing my money have the same accountability?

<comment><USER12> If you call current situation in financial industry laissez faire you obviously have no idea what these words mean. Yes, there was some deregulation in 2000s, but there was still huge amount of regulation and government control over the financial industry. None of these controllers foresaw the crisis of 2008, none of them objected to subprime mortgage industry - actually, most of the politicians sung praise to raising home values, better access to homewonership for the poor, and upcoming prosperity for all, and pressed the banks into doing more to help the poor take the loans to get on the property train.

Check out this book, promising ever-rising home prises in 2005: <http://www.amazon.com/gp/product/0385514344>

Now check out the glowing reviews of this book, quoted on the same page, by no other than chiefs of Federal Reserve and Fannie Mae. You are telling me the problems happened because guys like these didn't have enough power? I've got a nice bridge for sale in Brooklin, are you interested?

>> Regulation doesn't mean nationalization.

For the guy on whose post I was responding it definitely does. Not only nationalization, but also removing democracy and rights of self-rule for everybody but people having enough of some "merit", which I suspect he assumes himself to possess in abundance. I am glad the problem with such suggestions is obvious for you.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Benford's law strikes! I was all set to read about crazy, complex data analysis that detected this, but instead check out the abstract below:

"With an eye to providing a methodology for tracking the dynamic integrity of prices for important market indicators, in this article we use Benford second digit (SD) reference distribution to track the daily London Interbank Offered Rate (Libor) over the period 2005 to 2008. This reference, known as Benford's law, is present in many naturally occurring numerical data sets as well as in several financial data sets. We find that in two recent periods, Libor rates depart significantly from the expected Benford reference distribution. This raises potential concerns relative to the unbiased nature of the signals coming from the 16 banks from which the Libor is computed and the usefulness of the Libor as a major economic indicator. "

Abrantes-Metz, R. M., Villas-Boas, S. B., & Judge, G. (2011). Tracking the Libor rate. Applied Economics Letters, 18(10), 893-899. doi:10.1080/13504851.2010.515197

</comment><comment><USER14> I say this as an outsider to the industry, but the 'large' £290m penalty appears to be a joke and the media are either complicit or too thick to realise. Annual profits for Barclays were £5.9 billion to Q1 this year. May not be appropriate for comparison purposes, but if over a year the financial penalty Barclay's paid was the same basis as the penalty for dodging a £2 tube fare in central london - the fine for being caught would be just south of a whopping 10 pence! Simple incentive theory here. At that rate I'd dodge the fare every. single. day. The fine (reputation damage be damned as I'm not sure there is a honest broker to take my business to) is off by at least 2 orders of magnitude.

<comment><USER15> The philosophy is it isn't fair to penalise non-complicit employees, shareholders, and other stakeholders. Thus, when possible, the directors are decapitated and those responsible are charged personally.

Note that it wouldn't be productive for regulators to fine banks into needing to be rescued. I also suspect they're being cautious in light of the torrent of asymmetric lawsuits and contract unwindings about to hit these banks.

<comment><USER16> That line of reasoning is why we have so many problems.

The banks profited immensely from the manipulation, at the expense of other companies around the world (and their shareholders, employees, stakeholders).

If the directors knew about it, then they should be punished, as should the employees directly involved, but so should the bank itself.

If shareholders thought that companies they owned were immune from punishment, it would create an incentive for them to try pressure directors or employees of the company into doing morally or legally dubious things.

Sadly, this type of corruption looks to me to be far to deep for simple fines to fix. There is a rotten culture in London that needs to be removed.

It reminds me of the Enron recordings [0] ...

> "This is going to be a word-of-mouth kind of thing, We want you guys to get > a little creative and come up with a reason to go down."

> "O.K., so we're just coming down for some maintenance, like a forced outage > type of thing? And that's cool?"

> "Hopefully," Mr. Williams says, before both men laugh.

[0] <http://www.nytimes.com/2005/02/04/national/04energy.html>

</comment></comment></comment><comment><USER17> What blows me away about this story is that, as far as I can tell, the entire financial world is built on this rate that is calculated by taking completely unverified estimates from a handful of enormous banks who have every incentive to manipulate those estimates. How on earth is such a conflict of interest allowed to parade around out in the open? And why should we have any reason to believe that there aren't other similarly absurd structural problems with the financial system? The whole thing sounds like a house of cards.

<comment><USER18> The LIBOR is widely used, but there are others like the Fed's prime rate, and the consumer price index.

The entire entire financial world is built on insider manipulation. Too many examples to list.

<comment><USER17> I just don't understand why things are pegged to indexes at all instead of just letting prices be naturally determined by supply and demand. If prices are determined adversarially, then there is no room for manipulation or conflict of interest. Why have these indexes at all?

Put another way, who is willing to buy or sell according to prices that are open to manipulation (by being pegged to something like LIBOR), and why are they willing to do this? And why shouldn't competition favor produce better alternatives like financial instruments that aren't pegged to any artificial index?

<comment><USER19> _why shouldn't competition produce ... financial instruments that aren't pegged to any artificial index?_

There are those, too, but people want to hedge against the risk that "interest rates" move.

Then they must define "interest rate": is it mortgages in Peoria? Car loans in Manila? 30-year Treasurys? ... Well, how about we use LIBOR.

</comment></comment></comment></comment><comment><USER20> Imagine a slightly sweaty central banker dancing on stage:

      Transparency, transparency transparency, transparency ...

So much of the problems since 2008 arise because it was not known what others were borrowing or lending or from whom at what price.

The LIBOr rate is set by asking not what rates do you borrow at, but what rate would you like to borrow at!

Sorry folks, commercial confidentiality is a fig leaf too far now. Publish and be damned.

<comment><USER15> »" _LIBOR is set [at]...what rate would you like to borrow at_ "

No, it's not. It's supposed to be what rate the bank _estimates_ it _could_ borrow at. You can't use actual transactions because there are very few actual uncollateralised interbank loans at each of the LIBOR tenors.

»" _commercial confidentiality is a fig leaf too far now_ "

One of the issues with LIBOR is it discloses what rate each of the banks report. Thus banks and regulators have an incentive to under-report rates to prevent launching a feedback cycle.

<comment><USER20> But if we knew what they were _actually_ borrowing at

1\. LIBOR would be accurate and not open to manipulation

2.

3\. if a bank is weak it should find it harder to borrow. Feedback cycles can be beneficial, plus this sounds a lot like the old "the ratings agencies told me this sub prime mortgage was actually AAA". - if you are investing billions, do your own damn research. And your own damn research is a lot easier in a transparent market.

In the end I think the global finance industry is a threat as well as a benefit. We are happy to demand access to politicians finances, because it is their character that matters so much, a situation very similar to banks it seems.

</comment></comment></comment><comment><USER21> "Banks, as presently constituted and managed, cannot be trusted to perform any publicly important function, against the perceived interests of their staff. Today's banks represent the incarnation of profit-seeking behaviour taken to its logical limits, in which the only question asked by senior staff is not what is their duty or their responsibility, but what can they get away with."[1]

[1] [http://blogs.ft.com/martin-wolf- exchange/2012/07/02/banking-...](http://blogs.ft.com/martin-wolf- exchange/2012/07/02/banking-reforms-after-the-libor-scandal)

</comment><comment><USER22> This long-term fraud is one of the better cases for which there are likely to be thousands of individuals who should be held criminally and financially responsible. It is clear that many financial institutions will be held responsible.

If the thousands or even perhaps tens of thousands of individuals involved are forced to pay restitution damages in addition to punitive damages, would this further the cause of justice? I am of the mindset that it will. Do the world's prosecutors and politicians have the balls and/or resources to do it?

<comment><USER23> It may be all well and good to crucify ten thousand people, but unless there is a plan in place for the aftermath we'll still have a broken system ... and a lot of bodies, _figuratively speaking._

<comment><USER24> _unless there is a plan in place for the aftermath_

Ooh! I know a good plan! How about we investigate and prosecute fraud? The idea is that this would create an incentive not to commit fraud in the future.

Former bank regulator William K. Black says that the agency he worked for during the 1980s S&L crisis made over 10000 criminal referrals to the Justice Department, producing over 1000 felony convictions. That crisis was 1/70th the size of this one. How many criminal referrals have been made in this one? Zero. How is that possible? The answer Black gives is: total gutting of the investigatory system. What you don't look for, you don't find.

That's a long runway for due process before anyone needs to dust off words like "crucify".

(I'm not giving a citation because although the above is easy to google, I don't know which of the websites are any good. I got it from watching interviews. Is Black credible? His experience in the field seems exemplary.)

<comment><USER25> If you change the law such that many behaviors which were once illegal are now legal (which some would argue was the upshot of repealing Glass-Steagall), then the negative consequences which may ensue aren't necessarily criminal.

<comment><USER24> According to Black and others, plenty of behaviors remain illegal that are simply not being investigated.

</comment></comment></comment></comment></comment><comment><USER26> Robert Reich[1] in <http://robertreich.org/post/26708840314>:

      And it would amount to a rip-off of almost cosmic
      proportion – trillions of dollars that you and I and other
      average people would otherwise have received or saved on
      our lending and borrowing that have been going instead to
      the bankers. It would make the other abuses of trust we've
      witnessed look like child's play by comparison.

      Sad to say, there's reason to believe this has been going
      on, or something very much like it. This is what the
      emerging scandal over "Libor" (short for "London interbank
      offered rate") is all about.

[1] Chancellor's Professor of Public Policy at the University of California at Berkeley, was Secretary of Labor in the Clinton administration.

</comment><comment><USER18> Manipulation of the LIBOR would impact all the variable rate mortgages that are indexed to it. In California, home loans with a 0% interest rate for the first year and very low rate for next few years (negatively amortized) were very popular and pushed by Washington Mutual and other banks. But these loan's interest rates were tied to the LIBOR. A lot of foreclosures were do to these types of loans where the payment will increase 10 - 20%. How often does ones income increase 20% in a year or two?

The economist article is not exaggerating IMO.

How these banks are dealt with by our governments will illuminate the extent banks have corrupted our governments.

</comment><comment><USER27> Public companies should just be forbidden to do speculative prop trading at all. If one does and is lucky for a couple of years, then all others need to follow suit to achieve compatible profit levels... And that gets everyone stuck in a stupid rat maze that benefits society just as much as ebola or scientology.

</comment><comment><USER28> Just like any group, organization, family, company, establishment: A fish rots from the head down. The system has to be setup in such a way, that the heads of an organization are least likely to start "rotting": \- checks and balances \- personal liability \- transparency

</comment><comment><USER29> I wonder if the outrage at this particular practice will fuel politicians?

<comment><USER30> I'm sure it will. Will they fix anything, and if they do will the fixes be another produce better results, is another question.

<comment><USER23> "We have to pass the bill to find out what's in it."</comment></comment></comment>


Ask HN: By which law US arrests Kim Dotcom (german) outside of US? - <AUTHOR>

I really can't figure out, how US arrested Kim Dotcom aka Kim Schmitz, a German citizen, having headquarters in Hong-kong, living in New Zealand. How New Zealand  allowed FBI to enter the country and arrest their tourists?!<p>Why can't FBI get Piratebay down, if they already did it to Megaupload?! <comment><USER2> We already had this discussion. MegaUpload had servers in the US and accepted money from US customers. Kim Dotcom was arrested by New Zealand police and will have to be extradited to the US under NZ law before the FBI can get their hands on him.</comment>


Balsamiq - A look back at 2008 - <AUTHOR> http://www.balsamiq.com/blog/?p=531

<comment><USER2> He had over a $100,000 in revenue, which is pretty cool for 6 months. He says he's started paying himself a bit, but all that money is his, so its all income as I see it. Other than a bit of server space, what are the costs? Obviously he's going to use some of it to pay for server space for his future prospects, but thats a pretty penny nonetheless.

<comment><USER3> Hi Maximilian, here's a breakdown of my top expenses: \- Salary: 13,500 (46%) \- Equipment: 5,400 (18%) I bought an iPhone and a 23'' Cinema Display this year \- Contractors: 3,500 (12%) I hired 2 devs for 2 different small projects \- Lawyers: 2,780 (9%) I hired a lawyer to help me incorporate and with the EULA

The rest is small stuff.

Yes all the money is technically mine, but I have started paying myself because I want to keep the rest for taxes and to re-invest in the company.

<comment><USER4> Next step: get an awesome accountant and start using that money to purchase anything and everything you could possibly write off. All that excess revenue will get raped by taxes.

<comment><USER5> No accountant can be awesome enough to write off much more than what is truly a business expense. The ultimate rule is that everything written off must have business purpose.

Now, you'll only get in trouble if you get audited, but writing off things that shouldn't be written off will stand out.

The best way to shelter yourself from taxes is to invest the money and then pay taxes on a long term capital gain (which have historically been lower than ordinary tax rates).

<comment><USER6> Retained earnings (if that's what you mean by invest) are taxed as well.

</comment></comment></comment></comment></comment><comment><USER7> I had an excuse - sorry, opportunity - to use the online mockups app this year to generate some basic example page layouts for my boss. I was impressed by the speed at which I was able to just throw things together (normally I spend about 3 hours trying to remember how to use MS PowerPoint.. ick!)

All I have to do now is convince the boss I need the desktop version!

</comment><comment><USER8> Peldi, I've really enjoyed hearing about your journey and congratulations on your successes. I've learned a lot reading your entries.

In your 2009 outlook, you wrote some goals, one being: "I will have to go from 'mr. Do-it-all' to be Balsamiq's CEO, which will mean having employees, delegating..." - one thing from personal experience. When you make your first hire, you're going be tempted to get a friend you know is good. My advice: Don't. Your first hires will always see you in the light they had before you were their boss, and since you're growing so rapidly in business and life, it's 95% likely to end poorly.

It won't be the end of the world, but I disregarded this advice myself a couple times. Staff will learn and grow with you to some extent, friends to a much less extent. And since you seem like a really nice guy with a soft spot for people, then being in the super difficult position of it not making sense to keep working with someone - but you're their livelihood - will suck more for you than it will for a more heartless person.

Your call of course, just have a think over it, and best wishes and much prosperity in 2009.

<comment><USER3> Thanks so much for the advice lionhearted, I'll remember it!

</comment></comment><comment><USER9> Congrats Peldi! I'm surprised how dominant the desktop version is over the other web-platform versions. I think I read in one of your blog posts that you were too.

<comment> old-gregg I am not surprised. In fact the availability of offline version is the main reason my clients are considering balsamiq. Anything online is inevitably slow on corporate Internet and unavailable in some meeting rooms, airports or anywhere on the go. Online apps are fine for time wasting, but when you have work to do and a paycheck to earn, most people prefer to have their tools available 24/7.

</comment></comment><comment><USER10> This is such a cool story to watch unfold.

One concern I have is there might be ___too many_ * SKU's: <http://www.balsamiq.com/products/mockups/pricesheet>

While offering a variety of prices is great, I'm curious if some users don't become overwhelmed.

<comment><USER3> Hi Jasber, the link on my post was actually the first time I shared the pricesheet page with the public. I never show it to potential customers, but had to make it for partners and resellers (they really like to make sure they buy the right SKU for their clients). In other words, people get to the version they need via the site, which is hopefully clear enough to navigate (I'm not super-happy with it, but it works ok).

</comment></comment><comment><USER11> _"... was wondering how long you plan to stay a one-man company for. If you are in an accident, who will support us?" .."_

Peldi did you overcome this problem?

 _"... I am still confident that the plugin versions will grow over time relative to the desktop version, as more and more people "see the light" and start working in the cloud. ..."_ ~ <http://www.balsamiq.com/blog/?p=424>

I think the biggest insight this game me was that desktop version had a bigger demand than the web version & that you could ship both using the same code base.

Is shipping the desktop version & web version difficult?

<comment><USER3> Hi bootload. Re: the "hit by a bus" scenario, I'm working on it on two fronts: one is hiring a second person, which I will need to do soon. The second is to entrust the company to my family in case I die, so that they can sell it if something happens to me.

Re: desktop vs. web, yes it's a surprise, but as I say above, a desktop app which syncs to the web is a pretty good proposition...we'll see more as I build my "web connectors" this year.</comment></comment>


Ask HN: Do you write a diary? - <AUTHOR> <comment><USER2> Yes, I have a proper moleskine journal as well as a spreadsheet to keep track of my mood/work hours in 15 minute increments.

Why do I have an actual journal?

\- to keep track of my mood/depression, and to try to improve it. I used to journal every day, however that proved tedious and not as helpful, so now I write when I feel the need to (about once per week)

\- Ideas can hit you at any time, and I personally find its easier to sketch diagrams as opposed to typing on a smartphone. Exception: voice memos, which I've dabbled in \- it's a physical book that, unless someone stole, I know is _mine_ that I can call my own.

Tips on starting a diary/journal (your mileage may vary)

\- journal: moleskine, Lechtturm1917 are my personal favorites.

\- keep first two pages blank for a table of contents. You don't have to content every page, just important ones you want to refer back to

\- I don't use a bullet journal format, but it's something other people really like

Conclusion:

In Edmund Morris' bio of Theodore Roosevelt, he mentioned that TR's journals were written as if he knew other people will read them. When I'm writing, I make a conscious effort to have that mindset because it keeps me accountable for writing the truth, and writing down my entire thought process.

meta: this was a long write

<comment><USER3> Very helpful.

Only I prefer twin-ring notebooks since they lie flat better.

[https://www.jetpens.com/Twin-Ring- Binding/ct/2618](https://www.jetpens.com/Twin-Ring-Binding/ct/2618)

</comment></comment><comment><USER4> Yes -- it's one of my most prized possessions. I have been keeping a daily diary for the past five years in a text editor, recording thoughts, events, and useful links.

I find it very helpful to have a place to vent or just elaborate on my thoughts. I rarely go back and read previous entries, aside from reflective times like New Year's. I love its existence as something akin to an art piece. It provides a candid snapshot into the daily train of thought of a twentysomething developer and writer.

It's deeply personal, but I do hope someday to make it available for people to read in some context -- it's the most real and honest thing I've ever created.

<comment><USER5> People love learning about other people's lives- let us know when it's public!

</comment></comment><comment><USER6> Not a proper diary.

I have blog posts going back to 2001 on [http://www.ryanmercer.com](http://www.ryanmercer.com) though (starting with all of my embarrassingly angsty and emo high school live journal posts) and my Twitter, Instagram and Facebook posts all get copied via IFTTT and Zapier zaps for future reference/mining if I ever see the need.

I also use 'ryanmercer' everywhere I can online so that, with a little context of a past thought or conversation, I can relatively easily find the thread via Google. I also have years of IRC logs in Channels I participated in, however I stopped logging them when I switched my daily driver to a Chromebox a year and change ago.

My hope is that some day I'll be able to take all of my blog posts, all of my ryanmercer comments online and my social media posts and feed them into a service or piece of software and create an approximation of me as sufficiently-advanced chat bot.

</comment><comment><USER7> I see the value of keeping a journal, and I've tried to do it a bunch of times, but I can never stick with it.

I do maintain a hipster PDA [1] with index cards for ideas, general lists, and doodles/scratches. I've found that to be a helpful tool.

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

</comment><comment><USER8> I keep a journal emacs org mode, it's mostly a daily TODO list and a place to take notes on what I read that day. But I will sometimes reflect at the end of the day or week and put my thoughts in there as well.

</comment><comment><USER9> I do, for 4+ years now, and I'm using DayOne suite of apps.</comment>


Magical Block Store: Why EBS Can't Work - <AUTHOR> http://joyeur.com/2011/04/24/magical-block-store-when-abstractions-fail-us/

<comment><USER2> I am an active user of EBS on a highly trafficked Web properly, and came from a long and tedious background in enterprise software.

I really think that one paragraph in his blog post summed everything up quite nicely. It could not ring more true:

 _My opinion is that the only reason the big enterprise storage vendors have gotten away with network block storage for the last decade is that they can afford to over-engineer the hell out of them and have the luxury of running enterprise workloads, which is a code phrase for "consolidated idle workloads." When the going gets tough in enterprise storage systems, you do capacity planning and make sure your hot apps are on dedicated spindles, controllers, and network ports._

</comment><comment><USER3> This awesome entry perfectly captures why I have always hated NFS. I can deal with the possibility that if a machine's hard drive dies, my system is going to have a very hard time continuing to operate in a normal manner, but then NFS comes along, and you realize that all sorts of I/O operations that previously employed a piece of equipment that failed once every two and a half years now depend on a working network with a working NFS server on that network, and the combination of that network and that server are orders of magnitude less reliable.

And now you have situations on a regular basis where you type "ls" and you shell hangs and not even "kill -9" is going to save you. And you go back to using FTP or some other abstraction that does not apply 40,000 hour MTBF thinking to equipment that disappears for coffee breaks daily.

<comment><USER4> I don't know how NFS keeps coming up. It's an entirely different use case. It doesn't help the credibility of a critique on networked block storage to harp on a vendor specific implementation of a technology that doesn't even operate in the same sphere.

An NFS server is very simple. With NFS on it's own VLAN, and some very basic QoS, there's no reason an NFS server should be the weak point in your infrastructure. Especially since it's resilient to disconnection on a flaky network.

If you're looking for 100% availability, sure, NFS is probably not the answer. If on the other hand you're running a website, and would rather trade a few bad requests for high-availability and portability, then NFS can be a great fit.

None of that has anything to do with EBS or block-storage though.

Joyent's position is that iSCSI was flaky for them because of unpredictable loads on under-performing equipment. The situation would degrade to the point that they could only attach a couple VM hosts to a pair of servers for example, and they were slicing the LUNs on the host, losing the flexibility networked block-storage provides for portability between systems.

Here's what we do:

We export an 80GB LUN for every running application from two SAN systems.

These systems are home-grown, based on Nexenta Core Platform v3. We don't use de-dupe since the DDT kills performance (and if Joyent was using it, then is local storage without it really a fair comparison?). We provide SSDs for ZIL and ARCL2.

These LUNs are then _mirrored on the Dom0_. That part is key. Most storage vendors want to create a black-box, bullet-proof "appliance". That's garbage. If it worked maybe it wouldn't be a problem, but in practice these things are never bullet-proof, and a failover in the cluster can easily mean no availability for the initiators for some short period of time. If you're working with Solaris 10, this can easily cause a connection timeout. Once that happens you must reboot the whole machine even if it's just one offline LUN.

It's a nightmare. Don't use Solaris 10.

snv_134 will reconnect eventually. Much smoother experience. So you zpool mirror your LUNs. Now you can take each SAN box offline for routine maintenance without issue. If one of them out-right fails, even with dozens of exported LUNs you're looking at a minute or two while the Dom0 compensates for the event and stops blocking IO.

These systems are very fast. Much faster than local storage is likely to me without throwing serious dollars at it.

These systems are very reliable. Since they can be snapshotted independently, and the underlying file-systems are themselves very reliable, the risk of data-loss is so small as to be a non-issue.

They can be replicated easily to tertiary storage, or offline incremental backup easily.

To take the system out, would require a network melt-down.

To compensate for that you spread link-aggregated connections across stacked switches. If a switch goes down, you're still operational. If a link goes down, you're still operational. The SAN interfaces are on their own VLAN, and the physical interfaces are dedicated to the Dom0. The DomU's are mapped to their own shared NIC.

The Dom0, or either of it's NICs is still a single point of failure. So you make sure to have two of them. Applications mount HA-NFS shares for shared media. You don't depend on stupid gimmicks like live-migration. You just run multiple app instances and load-balance between them.

You quadruple your (thinly provisioned) storage requirements this way, but _this_ is how you build a bullet-proof system using networked storage (both block (iSCSI) and filesystem (NFS)) for serving web-applications.

If you pin yourself to local storage you have massive replication costs, you commit yourself to very weak recovery options. Locality of your data kills you when there's a problem. You're trading effective capacity planning for panic fixes when things don't go so smoothly.

This is why it takes _forever_ to provision anything at Rackspace Cloud, and when things go wrong, you're basically screwed.

Because instead of proper planning, they'd rather not have to concern themselves with availability of your systems/data.

It's not a walk in the park, but if you can afford to invest in your own infrastructure and skills, you can achieve results that are better in every way.

Sure, you might not be able to load a dozen high-traffic Dom0's onto these SAN systems, but that matters mostly if you're trying to squeeze margins as a hosting provider. Their problems are not ours...

<comment><USER5> The point of the article is that you are taking an ancient interface and using it for something new. Millions of lines of code was written against that interface with old assumptions, and now you've moved it to a new implementation without changing any of it. Things are bound to go wrong.

When you move sqlite to NFS, for example, file locking probably won't work. There is nothing to tell you this.

It sounds like you have experience making NFS work well, but I don't see how anything you wrote addresses this point. In fact I think you're just echoing some of the article's points about "enterprise planning". AFAICT you come from the enterprise world and are advocating overprovisioning, which is fine, but not the same context.

<comment><USER4> I work at a small shop who was badly burned by Sun/Oracle. :-)

It's not that I believe in overprovisioning I think. It's that if data is really that critical, and it's availability is critical, then that has to be taken into account during planning.

Everything fails at some point. The Enterprise Storage Vendors would have you believe their stuff doesn't. In practice it's pretty scary when the black box doesn't work as advertised anymore though _after_ you've made it the centerpiece of your operations.

So with those lessons learned, our replacement efforts took into account the level of availability we wanted to achieve.

I did go off on an NFS tanget. Sorry. But this article was about block- storage, which is a different beast from what you describe.

Seeing all networked storage lumped together is like seeing: FastCGI isn't 100% reliable, which is why I hate two-phase-commits.

</comment></comment></comment></comment><comment><USER6> He didn't touch on Joyent's 2+ day partial outage a couple months ago: <http://news.ycombinator.com/item?id=2269329>

<comment><USER7> Don't forget about this: [http://www.datacenterknowledge.com/archives/2008/01/15/joyen...](http://www.datacenterknowledge.com/archives/2008/01/15/joyent- backup-services-down-for-three-days/)

<comment><USER7> I think both of these links illustrate that errors happen, mistakes happen, software has bugs, and murphy's law always strikes. The question is, when it strikes, do you have enough control to fix the problem? If you've outsourced the solution, does the provider have enough control/knowledge to fix the problem?

These things will get much worse before they get better, and it's best to think of all these abstractions as being a double edge sword.

</comment></comment></comment><comment><USER8> Many things in software are impossible magic, until they are not. His argument boils down to "it is a hard problem that nobody has solved yet." That doesn't mean nobody will ever solve it.

Regardless, I do agree that building your application today like it is a solved problem is the wrong way to do it.

<comment><USER2> _Regardless, I do agree that building your application today like it is a solved problem is the wrong way to do it._

That presumption assumes that the application is being used as the right tool to resolve the problem. And it also assumes that "the problem" is a finite and solvable item.

<comment><USER9> > And it also assumes that "the problem" is a finite and solvable item.

Yes. To make this a bit more concrete, if "the problem" is making distributed storage look and behave exactly like local storage, the CAP Theorem has something to say about its solvability.

<comment><USER10> Depends. Local storage is also not perfectly available. If the network is reliable, you can probably get availability high enough that the system feels "close enough" to how local storage feels. Today's networks aren't that reliable, but someday there may be enough redundancy and bandwidth for this to happen.

<comment><USER9> > Local storage is also not perfectly available.

Technically true, although you don't have to contend with the consistency or partitioning factors in the local disk case -- there's only one copy of the state. This means you can focus on making the availability factor as close to 1.0 as possible.

This may not be the case when you're forced to balance all three CAP factors. I sometimes wonder if a follow on result to CAP will be a "practical" (physical or information theoretic) limit like C x A x P <= 1-h for some constant h, and we'll just have to come to terms with that as computer scientists, as physics had to with dx x dp >= h. This is of course wildly unsubstantiated pessimism.

Also, I would gladly entertain any argument demolishing the "local disks are not subject to CAP" claim I made above by talking about read / write caches as separate copies of the local disk state.

<comment><USER10> I doubt it. Suppose that there is a network that is never partitioned, and machines connected to that network that never fail. In that case consistency and availability should be perfect. Although networks will never be perfectly reliable, nor machines, they seem to be getting more reliable. Perhaps someday we may be able to say that the odds of enough partitions or machine failures to make the system unavailable are lower than the odds of you getting struck by lightning, at which point you will have for practical purposes defeated the constraints of the CAP theorem.

<comment><USER9> > Suppose that there is a network that is never partitioned, and machines > connected to that network that never fail. In that case consistency and > availability should be perfect.

You mean, in that case tolerance to partition and availability should be perfect.

> Perhaps someday we may be able to say that the odds of enough partitions or > machine failures to make the system unavailable are lower than the odds of > you getting struck by lightning, at which point you will have for practical > purposes defeated the constraints of the CAP theorem.

So this is the really interesting question. All the CAP theorem says is that (C,A,P) != (1.0,1.0,1.0). How close to (1.0,1.0,1.0) could we make (C,A,P)? If infinitely close, then we have achieved perfection by the limit, and the CAP theorem is rather pointless. If not, then what _is_ the numeric limit?

As you speculate, maybe the numeric limit on C x A x P is so close to 1.0 that the odds of seeing a consistency, availability, or partitioning problem are much smaller than getting hit by lightning.

Then again, maybe not. Who knows? ;)

To avoid sounding like a total crackpot, here is an interesting paper that explores the physical limits of computation:

<http://arxiv.org/pdf/quant-ph/9908043v3>

<comment><USER10> > You mean, in that case tolerance to partition and availability should be > perfect.

No. If a network is never partitioned, you don't need to write algorithms that can tolerate partitions. Therefore consistency and availability are possible.

> So this is the really interesting question. All the CAP theorem says is that > (C,A,P) != (1.0,1.0,1.0). How close to (1.0,1.0,1.0) could we make (C,A,P)? > If infinitely close, then we have achieved perfection by the limit, and the > CAP theorem is rather pointless. If not, then what is the numeric limit?

I think you have misunderstood the theorem (at least, if my bachelor-degree- level understanding is correct). C, A, and P are not variables you can multiply together or perform mathematical operations on. They are more like booleans. "Is the web service consistent (are requests made against it atomically successful or unsuccessful)?" "Is the web service available (will all requests to it terminate)?" "Is the web service partition-tolerant (will the other properties still hold if some nodes in the system cannot communicate with others)?" These questions cannot be "0.5 yes". They are either all-the- way-yes or all-the-way-no.

> . . . and the CAP theorem is rather pointless

Not really. It is pointful for networks that experience partitions. It just doesn't apply to reliable networks. It also sort-of doesn't apply when an unreliable network is acting reliably, with the caveat that since it is not possible to tell in advance when a network will stop behaving reliably, you still have to choose between these three properties when writing your algorithms for when the network behaves badly.

<comment><USER9> > C, A, and P are not variables you can multiply together or perform > mathematical operations on. They are more like booleans.

Right, but I wasn't restating CAP, just wondering about a follow on to CAP that considers the _probability of remaining consistent_ , the _probability of remaining available_ , and the _probability of no failures due to network partitions_ in physical terms.

Is this not an interesting thing to consider? What if someone proves a hard limit on the product of these probabilities in some physical computation context? The CAP theorem is absolutely fascinating to me, especially if it has something real to say about the systems we can build in the future. The future looks even more distributed.

> It is pointful for networks that experience partitions. It just doesn't > apply to reliable networks.

Is there such a thing as a "reliable" network when thousands or millions of computational nodes are involved? Are the routers and switches which connect such a network 100% available? If an amplification attack saturates some network segment with noise, what then?

As programmers, we desperately want things to work, and it's easy to greet something like CAP with flat out denial. I know I'm always fighting it. "It will never fail." No, it _can and will fail_.

<comment><USER10> I still don't understand what you mean when you say, "probability of remaining consistent," etc. Either you wrote the service so it system would always remain consistent or you didn't. Similarly with availability. Either the system will always return a result, or it may sometimes hang.

Maybe what you mean is the probability of whichever of C, A, or P you gave up actually becoming a problem? But I cannot imagine a physical law of the form you are referring to applying uniformly to these disparate properties. I wouldn't even know how to formulate it for consistency. For availability and partition tolerance it would just be, "Requests to this service will (availability: hang forever/partition-tolerance: return with errors) at a rate exactly equal to the probability of network failures."

With regards to your last point, there are no reliable networks, at least where I work. That doesn't mean there won't be.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> It's funny how disk abstractions get you every time.

We used to store and process all of our uploads from our rails app on a GFS partition. GFS behaved like a normal disk _most_ of the time, but we started having trouble processing concurrent uploads and couldn't replicate in dev.

It turned out so GFS could work at all, it had different locking than regular disks. Every time you created a new file it had to lock the containing folder. We solved it by splitting our upload folder in 1000 sequential buckets and wrote each upload to the next folder along... but it took us a long time to stop assuming it was a regular disk.

<comment><USER12> FWIW, this behavior is explained early on in the documentation for GFS2.

<comment><USER11> As we were using EngineYard for hosting at the time, everything was set up for us and we never thought to look it up.

We now pay a lot more attention to underlying stack. Just because you've outsourced hosting (either cloud or managed physical servers), you really need to know every component yourself.

</comment></comment></comment><comment><USER13> Also worth noting is that Amazon isn't forcing you to use EBS. They also have tons of fast local storage available to RAID as you wish.

<comment><AUTHOR> I strongly believe one of the most positive aspects of EC2 was that it demonstrated a beautiful philosophy that a node and their disks should not be relied upon to always be around and pushed it into the mainstream.

Even for people who didn't use EC2 the existence of the platform caused more people to rethink their architectures to try to rely less on Important Nodes.

EBS is a step back from that philosophy and it's a point worth noting.

One of the great things this post does is enumerates some of the underlying reasons why relying on EBS will inevitably lead to more failures and in ways that are harder and harder to diagnose.

<comment><USER14> > EBS is a step back from that philosophy and it's a point worth noting.

Amazon doesn't use EBS itself, right? Isn't EBS something that AWS allowed its customers to nag it into against (what it considers) its better judgement?

<comment><AUTHOR> Yep. And this may be one of those cases where they would have been better off ignoring their customer requests for the good of their reputation and their customers uptime.

</comment></comment></comment></comment><comment><USER15> Its really fascinating to watch amazon re-learn/re-implement the lessons IBM baked into mainframes decades ago. Once you get out of shared-nothing/web- scripting land you realize that I/O is much more important and difficult than cpu. What amazon calls EBS IBM has been calling "DASD" forever. I wonder if there are any crossover lessons that they haven't taken advantage of because there just aren't any old ibm'ers working at amazon.

<comment><USER2> IBM's implementation of DASD on the mainframe was always implemented under the assumption that it was a _secondary_ storage medium for data. Meaning, it wasn't accessed often, and it wasn't implemented for top performance.

Think of a bridge between high performance disk and tape.

</comment></comment><comment><USER16> _Trying to use a tool like iostat against a shared, network provided block device to figure out what your level of service your database is getting from the filesystem below it is an exercise in frustration that will get you nowhere._

This may be true under Solaris. Since 2.5 Linux has had /proc/diskstats and an iostat that shows the average i/o request latency (await) for a disk, network or otherwise. For EBS it's 40ms or less on a good day. On a bad day it's 500ms or more if your i/o requests get serviced at all.

</comment><comment><USER17> Amazon Six Sigma "Blackbelts", meet Mr. Black Swan.

Edit: my point is you can't hide unexpected/unknown events on statistical models; we should know better, coming from CS.

</comment><comment><USER18> > It's commonly believed that EBS is built on DRBD with a dose of S3-derived > replication logic.

Actually, it was discovered some time ago ([http://openfoo.org/blog/amazon_ec2_underlying_architecture.h...](http://openfoo.org/blog/amazon_ec2_underlying_architecture.html)) that EBS probably used Red Hat's open-source GNDB: <http://sourceware.org/cluster/gnbd/>

</comment><comment><USER19> He only gets it half right. A filesystem interface instead of a block interface is the right choice IMO. Private storage instead of distributed storage is the wrong choice for capacity, performance, and (most importantly) availability reasons. They didn't go with a ZFS-based solution because it was the best fit to requirements. They went with it because they had ZFS experts and advocates on staff.

As Schopenhauer said, every man mistakes the limits of his own vision for the limits of the world, and these are people who've failed to Get It when it comes to distributed storage ever since they tried and failed to make ZFS distributed (leading to the enlistment of the Lustre crew who have also largely failed at the same task). If they can't solve a problem they're arrogant enough to believe nobody can, so they position DAS and SAN as the only possible alternatives.

Disclaimers: I'm the project lead for CloudFS, which is IMO exactly the kind of distributed storage people should be using for this sort of thing. I've also had some fairly public disputes with Bryan "Jackass" Cantrill, formerly of Sun and now of Joyent, about ZFS FUD.

<comment><USER4> ZFS is just the FS. But you know that already.

The SAN solutions they migrated to are not ZFS based. Unless I'm mis- remembering (I read this a couple days ago) they were only using ZFS to slice LUNs.

Point is, you're taking pot-shots at ZFS when the main thrust appears to be: "It was hard to make iSCSI reliable. Once we did, by buying expensive storage- vendor backed solutions, we found it wasn't financially compelling."

They're a hosting provider. If it takes a replicated SAN pair (which is the wrong way to go about it BTW, though admittedly it's the way the storage vendors and their "appliance" mentality would have it done) to service just a pair of VM hosts (they're still using Zones right?) then it just didn't make sense money-wise for them. If they planned capacity to provide great performance, they weren't making enough money on the services for what they were selling them for.

That's not an "iSCSI is unreliable" problem. It's not a "networked storage is broken" problem. It's not a "networked storage is slow" problem. It's not even a "ZFS didn't work out" problem.

If you go out and spend major bucks on NetApp, not only are you going to have to deal with all the black-box-appliance BS, but it's going to cost a lot of money. A LOT. And DAS is going to end up cheaper to deploy, maintain, and your margins are going to be a lot higher.

DAS is the right choice for a hosting provider who wants to maximize their profits in a competitive space.

It's not the best choice for performance, availability or flexibility for clients though. So you have to ask yourself what kind of budget you have to work with, and what goals are important to you?

BTW, there's _budget_, and then there's NetApp/EMC budget. Just because you need/want more than DAS can give you doesn't mean you need to tie your boat to an insane Enterprise grade budget.

<comment><USER19> Perhaps you should RTFA. The author says explicitly that _what they do now_ is "lean on ZFS" and "keep the network out of the storage solution" which made their provisioning more complex because they could no longer treat local disks as ephemeral (i.e. that data can't be assumed to exist anywhere else). I knew this when I wrote the GP. My whole point is that _they treated it_ as a "networked storage is broken" problem even though it wasn't, because of their "ZFS is the only tech we need" bias. Thanks for re-stating that.

As for "DAS is the right choice" that's just wrong on many levels. First, people who know storage use "DAS" to both private (e.g. SATA/SAS) and shared (e.g. FC/iSCSI) storage, so please misusing the term to make a distinction between the two. Second, I don't actually recommend either. I don't recommend paying enterprise margins for anything, and I don't recommend more than a modicum of private storage for cloud applications where most data ultimately needs to be shared. What I do recommend is distributed storage based on commodity hardware and open-source software. There are plenty of options to choose from, some with all of the scalability and redundancy you could get from their enterprise cousins. Just because some people had some bad experience with iSCSI or DRBD doesn't mean all cost-effective distributed storage solutions are bad and one must submit to the false choice of enterprise NAS vs. (either flavor of) DAS.

In short, open your eyes and read what people wrote instead of assuming this is the NAS vs. DAS fight you're used to.

<comment><USER4> They "lean on ZFS" for DAS.

Seriously. You tell me. What does that have to do with your rant on ZFS? It could have as well been an LSI controller doing RAID6. Or mdadm. Doesn't matter.

That's the evolved solution they came up with.

The "networked storage is broken" pitch actually comes in with the EMC/NetApp interim solution as well. I don't buy it either, but it's a joke to claim the problem was ZFS on the Zones when the Targets weren't running ZFS.

You're awfully prickly, but I didn't suggest it came down to "Enterprise" NAS vs DAS. I actually think networked storage is here to stay (and that's a good thing).

I have my doubts we'll see a stable, inexpensive (or free) Distributed or Clustered file-system ready to replace traditional solutions anytime soon. I'm happy to see people try though.

You clearly have an axe to grind with ZFS though. In my experience it's been by far more stable than any available Linux FS I've used. Pull the power again and again, replace and resilver all you want. Manage terabytes and don't worry about corruption. I wouldn't trust ext3/4fs for anything I couldn't stand to lose...

PS: <http://en.wikipedia.org/wiki/Direct-attached_storage>

"People who know storage". I don't see iSCSI on that list. Nor FCoE. DAS (at least according to Wikipedia) explicitly rules out switching. Which is how I've always viewed it.

<comment><USER19> You're really not getting it, are you? I never said ZFS was the problem, as you seem to think. I'm just saying it's not the solution either. It's a crappy solution, failing to protect against host failures and creating myriad problems in provisioning around the fact that each VM's storage is stranded on one node until it's explicitly copied somewhere else. And if you don't think there are decent distributed filesystems out there, you're just not keeping up with the field and shouldn't be commenting on it.

<comment><USER4> I don't think I am getting it no. You _don't_ think ZFS is the problem?

So you _aren't_ calling ZFS a "crappy solution"? Just the DAS usage?

What is your gripe exactly then? The overblown critique of networked storage? Well we agree on that at least then. I think.

Honestly, with all the "read the fucking article", it's-not-DAS, oh-it-is, CloudFS is way moar better than ZFS, I never said ZFS sucked, "Bryan ZFS Cantrill is a jackass" you've left me absolutely bewildered at what your intended point (if any) actually is?

For the record, my only comment on (free) distributed filesystems (that aren't vendor-locked and actually unusable to me) is that I wouldn't personally trust them with my data. Not until they have the features I need, and then are running out in the wild, widley deployed for a couple years so I'm not a guinea pig.

I'll even throw you a bone: Even just last year ZFS was having major melt- downs when a new inadequately vetted feature was added. A few years ago it wasn't uncommon to face corruption when trying to do fairly routine things managing disks. Bugs can and do happen.

Maybe CloudFS, or Gluster is ready for prime-time, housing terabytes of data reliably and never making a misstep. I just don't think it's smart to bet your business on it. Not at least without a plan B since moving data around isn't an option when you're down and have terabytes you need to get back online.</comment></comment></comment></comment></comment></comment>


Keyword Arguments: Ruby, Clojure, Common Lisp - <AUTHOR> http://briancarper.net/blog/579/keyword-arguments-ruby-clojure-common-lisp

<comment><USER2> More like "how Ruby and Clojure don't really support keyword arguments". Unless you can do something like:

        >>> def foo(a,b):
        ...   print a,b
        ...
        >>> foo(b=1,a=2)
        2 1

then you don't support keyword arguments, you just have some hack for stuffing parameters into a hash. In fact, MacRuby had to add syntax to Ruby[1] in order to be able to represent Objective C keyword arguments.

[1] [http://www.macruby.org/documentation/rubycocoa-to- macruby.ht...](http://www.macruby.org/documentation/rubycocoa-to-macruby.html)

<comment><USER3> I find Python inelegant in general but Python's support for keyword arguments strikes the best balance of simplicity and flexibility in any language I've used.

<comment><USER4> Python's argument conventions are even more flexible; they actually work by passing a tuple of positional arguments and a dictionary of keyword arguments, and unpacking/repacking according to the signature of each function. You can pass any iterable as positional arguments and any mapping as keyword arguments. You can also retrieve the positional and keyword arguments inside a callable as a tuple and dictionary. It's the best calling convention I've ever seen.

</comment></comment></comment><comment><USER5> Isn't being able to give functions as a default keyword argument more or less obvious when functions are first-class objects instead of it being insane? It's something that I use several times in any decent sized project.

For my bot for the current Google AI challenge I use A* pathfinding and one of the keyword args is the function for getting a node's neighbours.

<comment><USER6> Yes, all these languages support that. My CL is rusty, and it's not clear from the article, but I think he's talking about providing a function to calculate the default value from some of the other args.

</comment></comment><comment><USER7> Ruby has a penchant for giving you more than enough rope to hang yourself on, and "Ruby keyword arguments" are no different. I've seen them used in the wild. It's horrendous.

The code I had to update was poorly written, but the functions with "keyword arguments" were practically incomprehensible _because I didn't even know what their parameters were_. Furthermore, the interactions between these "keyword arguments" wasn't documented anywhere. Sometimes supplying one keyword demanded that another keyword also be supplied, less the function quietly fails.

Finally, there's no way to make a "keyword argument" a required argument. Every function I saw with keyword arguments was littered with "bar = foo.key?(:bar) ? foo[:bar] : default_value" or "throw Exception if not foo.key?(:bar)"

Don't use hashes as a replacement for argument lists in Ruby. Hack the Ruby source and add real keyword arguments.

edit: added another example

<comment><USER8> Well, keyword arguments can be used well in ruby, though clearly, in the code you've been dealing with they haven't.

Some guidelines. Use .merge for default values, not ternary operators. Keep it minimal. Rails does a good job of using keywords for stuff that's optional, and positional arguments for stuff that isn't. For instance

        link_to 'My Website', 'http://example.net', :class => 'my-css-class'.

Here, the arguments you need, the link title and href are non-optional positional args. HTML attributes OTOH are option hash args..

It sounds like in the code you've inherited, though I can't be sure, there are fairly complicated hashes being passed around all kinds of places. These should probably be objects, not hashes, in the first place. I'll admit though, I can't be certain from my limited vantage point.

<comment><USER7> I think the hashes instead of objects paradigm contributed to my frustration.

I ended up turning parts of the hashes into objects and parts into parameters.

You and your sibling post provide some decent guidelines and approaches to default arguments. My experience with Ruby has lead me to believe that it's an awesome language, but a language which I'd be very careful about with whom I collaborated.

</comment></comment></comment><comment><USER9> He spends a lot of time on the syntactic ambiguities of keyword arguments in Ruby when calling without parens. I understand how that's annoying, but how hard would it be to just put the parentheses back? He seems to be making a mountain of a molehill on that point.

<comment><USER10> Seriously. I can't think of any language feature in any other language that is heaped with so much passion (both positive and negative), while being entirely mundane.

<comment><USER11> Optional parens are _great_ for building DSLs and bad for everything else.

As a rule of a thumb, I don't omit parens outside macros like `before_filter :smth` or `validates_presence_of :smth` or RSpec DSL `it "should ..." do`.

</comment></comment></comment><comment><USER12> A 2000 words article on keyword arguments which fails to mention any of Python, Objective-C and Smalltalk?

<comment><USER13> I suppose this is an article about keyword arguments _in Ruby, Clojure and Common Lisp_.

</comment></comment><comment><USER14> I've never found a situation where keyword arguments are a better choice than setters. Setters are dynamic, you can override their implementation. Keyword args only let you override the method that receives them, which provides less granularity and leads to duplication (assuming there is more than one method that accepts a shared arg).

<comment><USER15> _I've never found a situation where keyword arguments are a better choice than setters._

When you're programming in a functional style, perhaps? The idea of a setter doesn't make much sense in Clojure where the native data structures are immutable, implementation inheritance is strongly discouraged and state changes require a little more work than "x = y".

</comment></comment><comment><USER16> quote: Positional arguments require mentally lining up the 7th argument in your function call with the 7th argument in the function signature, and so on.

If your function has 7 arguments, consider refactoring

<comment><USER12> If your refactoring is to make a 7-args function into a builder object (because what you're building actually _needs_ those arguments), you're better off with keyword arguments.</comment></comment>