Tell HN: Senator Dodd Has Mostly Listened Concerning Regulation D - <AUTHOR>

Recent (sometimes spirited) threads on HN have highlighted the potential risks to angel investing from provisions in the Senate Banking Bill that would have (at least as interpreted in a worst case by the Angel Capital Association):
(1) altered the definition of "accredited investor" by increasing the thresholds for an individual from $1 million in net worth or $200K in annual income to about $2.3 million in net worth (excluding value of principal residence) or $450K in annual income; and
(2) subjected many Regulation D to filings to SEC review during a mandated 120-day wait period and also opened up such filings to all sorts of new state regulation by removing federal preemption in this area of private placements.
These provisions posed a potentially serious risk to startup funding. ACA, for example, estimated that the "accredited investor" changes would  cut the number of qualified angel investors by an estimated 77%. Many in the startup community wrote to Senator Dodd and others strongly urging them to fix these provisions.
It appears that Senator Dodd has mostly listened. Last week, he joined with Republican Senator Kit Bond to offer a bipartisan amendment to the banking bill that represented a significant compromise on the Regulation D issues.
The Bond/Dodd amendment does the following: (1) leaves the definition of "accredited investor" basically unchanged until at least 2014, though the $1 million net worth threshold must now be calculated without including the value of an investor's principal residence; and (2) deletes the 120-wait period and blocks increased state meddling with Regulation D offerings.
This news is HUGE for startups. The result is not perfect but, compared to what might have been, this is a significant reprieve for Regulation D that will allow funding deals in the startup world to continue largely unabated and that defeats the deal-killing rules that otherwise might have passed in this bill.
I had been looking for a simple reference point on the web where this had been cleanly reported but was unable to find it - hence this post.
At this point, the Senate version of the banking bill is as noted above while the House version makes no changes whatever to Regulation D. The good news, then, is that this bill should pass either in the form summarized above or with no changes at all to Regulation D should the above Senate provisions be dropped altogether in conference.
I will link to some of the partial reports of this in a comment. <comment><AUTHOR> Here are some relevant links about this across the web touching on the effects of the Bond/Dodd amendments:

[http://www.angelcapitalassociation.org/resources/public- poli...](http://www.angelcapitalassociation.org/resources/public- policy/federal-policy-issues/highlights/) (statement by Angel Capital Association with links to primary sources)

<http://dodd.senate.gov/?q=node/5629> (statement from Senator Dodd's website)

[http://www.reit.com/PolicyPolitics/FederalNonTaxLegislation/...](http://www.reit.com/PolicyPolitics/FederalNonTaxLegislation/RegulationDReform/tabid/546/Default.aspx) (with links to primary sources)

[http://www.thecorporatecounsel.net/Blog/2010/05/prohibited-u...](http://www.thecorporatecounsel.net/Blog/2010/05/prohibited- using-the-secs-logo-1.html) (with discussion of certain remaining problems with the amendment language)

[http://online.wsj.com/article/SB1000142405274870395790457525...](http://online.wsj.com/article/SB10001424052748703957904575252430233003388.html?mod=WSJ_Opinion_AboveLEFTTop) (WSJ editorial entitled "Angels (Back) in America" - behind paywall)

[http://martendale.com/government/article_Adams-Reese- LLP_101...](http://martendale.com/government/article_Adams-Reese- LLP_1011518.htm) (excellent technical discussion on where this stood a short while ago just as the amendments were being introduced)

[http://www.pehub.com/71242/up-the-bracket-dodds- discriminato...](http://www.pehub.com/71242/up-the-bracket-dodds- discriminatory-deal/) (a strongly expressed negative view of the compromise, arguing that excluding value of principal residence is harmful and emphasizing that the accredited investor rules should be liberalized so that more and more people can invest - strongest point: the same people who block small investors from investing in startups also strongly push state lottery systems that do far more harm to small "investors" than startup investing would ever do)

<comment><USER2> I find the comparison of a state lottery, which is something completely not personally sold, to investment in a business, pressured by friends, family, or by random salespeople, to be in such different categories, the comparison is disingenuous.

Additionally, the lotteries require an infinitesimal expenditure compared to startup funding.

While I agree with the pehub poster that the portion about housing and mortgages is off, I would suggest that liquid assets - all liabilities be used as a gauge of net worth, then lower the floor to something more like 700k.

<comment><USER3> Clearly you've never lived in a major city or around poorer people. I've seen people drop the kind of money that would make me cringe to spend on lottery tickets every week for the last 10 years that I've lived in Boston.

It's a joke to suggest that people are pressuring family to invest in their companies in the same way that the lottery pushes itself on those least able to afford it. The lottery is a lot more effective at preying on its victims than any salesmen that I've ever met. The lottery is a tax on the poor dressed up to look good by politicians who seek to gain from it.

A single lottery ticket is nothing but the people I see never just buy one. They buy a lot of them.

<comment><USER4> It does happen. I've met more than one family where an elderly mother and/or father where forced back into working because they invested in their entire life-savings into their child's (or nephew's, niece's, etc...) hair-brained get-rich-quick scheme.

That said, I don't see how it's governments role to make sure people don't screw themselves over. Bring on casinos, lotteries, and open investement as far as I'm concerned.

<comment><USER3> I agree with the exception of the lottery. I'd rather not have the state involved in this. I just don't like my tax money funding (even if the lottery more than pays for itself) something I consider immoral.

<comment><USER5> How is your tax money funding the lottery when you admit that it more than pays for itself?

In fact, the lottery where I live pays hundreds of millions of dollars into a school fund every year; money that your tax dollars otherwise would have to pay for.

<comment><USER3> I suppose I have to support some of the infrastructure it uses before it becomes profitable. I just don't want the state involved in that sort of activity. It's the same reason I wouldn't like war even if we paid for it with the spoils.

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> I've never really understood the reasons for limiting investors in companies to those who are already rich. The current crisis was in no way caused by anyone investing in startups or small businesses. The crisis was caused by too much credit flowing into all the wrong hands due to the incentives that existed for that to happen. The crisis of 1929 had the same cause. The problem is inflation plain and simple. The animal spirits that Keynesians are invoking now were not the cause of the housing bust-the fundamentals just were not there. They weren't ever there. Inflation hid that fact for years from many people.

These sort of regulations seem to have the effect of keeping more people in the middle class. I don't like raising the limit or messing with what exists now partially because what's there is absurd. The government wants to blame the market for its own failures and bad actions but it's not true. Even Bernie Madoff is a direct result of the Fed killing yield causing investors to seek returns wherever they could find them.

Dodd is in the pocket of the bankers and always has been. This last reform bill is a final gift to the elites on his way out the door. These sort of rules only strengthen the Fed and its control over the banking system. Not sure why anyone would be listening to Dodd and hoping he would do some good in the world.

<comment><USER6> "Even Bernie Madoff is a direct result of the Fed killing yield causing investors to seek returns wherever they could find them."

You make the right point about the fundamentals not being there for the housing bust. However it is hard for me to take you seriously when you say things like the above. Investors are always seeking heavy returns -- and Madoff didn't start a Ponzi scheme because of the Fed he did it because he is greedy.

<comment><USER3> When banks are offering 1% on deposits you are going to have weird situations arise where actors in the market are seeking yield on their money. Even Geithner acknowledged that.

</comment></comment></comment><comment><USER7> I'd love to see the cap changed to allow smaller investments by currently non- accredited investment. If we replaced the hard asset/income cut-off with an amount indexed by either income or assets, it would make crowdfunding of small businesses a viable option.

Since regulators don't want to see "Middle class family's life savings wiped out in investment fraud," allowing people to invest up to 3-5% of annual income or 2% of total assets in a given business would create additional sources of funding, prevent any one startup failure from being personally damaging, and give individuals the chance to invest locally in growing businesses.

This wouldn't have made sense twenty years ago, but the administrative requirements can be a lot more easily amortized by a central crowdfunding platform these days.

<comment><USER8> You raise a good point, although there might be some difficulty with legislation requiring people to declare their income to investment vehicles.

The basic problem is that while something like Diaspora can attract goodwill funding by being in the right place at the right time - I kicked them $25 in exchange for a t-shirt and the vague hope that they can advance the state of distributed network services. But most people who want to invest in something are looking for an ownership stake, and as soon as you offer them that you've initiated a much more complex contractual relationship and are subject to a very different legal regime.

Rather than an income percentage cap, there might be some mileage in a small monetary amount. For example, commercial transactions of goods above and below $500 are treated differently. There are already provisions in Regulation D for companies that don't need to raise more than $1m or $5m in a single year, which might be great for startups, but those companies appear to have _less_ of a legal 'safe harbor' than those which can raise an unlimited amount.

The 'safe harbor' provision is in SEC regulation D, rule 506: <http://www.law.uc.edu/CCL/33ActRls/rule506.html> in subclause (a), it's the exemption from rule 4(2) of the Securities Act of 1933 which gives firms the legal security blanket. Although rules 504 and 505 limit issuers to smaller amounts (but still quite sufficient for many new businesses), they don't have that specific exemption, and so the founders are implicitly subject to the prohibitions on selling or offering shares across state lines.

<comment><USER9> On the last point, some regions have "coordinated review" setups where you can simultaneously offer a <$1m, rule-504 security across some state lines, within the region (you can also submit simultaneously to multiple regions): <http://www.coordinatedreview.org/crscor.html>

37 of the 50 states participate in one of the five regions, but California and New York are two glaring omissions.</comment></comment></comment>


Another way to fundraise. Inspired by Airbnb's ObamaO's. - <AUTHOR> http://travelmeansfreedom.net

<comment><AUTHOR> Looking forward to "see" what the HN community has to say about the whole idea.

</comment><comment><AUTHOR> Alright... this sucks a bit. Nobody, nothing.</comment>


Challenge yourself and be Awesome - <AUTHOR> http://blog.filipekberg.se/2013/03/06/challenge-yourself-and-be-awesome/

<comment><USER2> Making it a habit is the trick. As someone who's been making the sort of thing the author talks about a habit too I've noticed that there are two types of challenges out there; the Hard Things and the Scary Things. The do overlap but not completely and I think its incredibly important to not only challenge yourself by doing the Hard Things (physically challenging things, working hard, achieving goals, etc) but to be sure to focus on the Scary Things as well. There's a subtle difference.

The Hard Things give you stamina and help you to be more persistent. The Scary Things take you out of your comfort zone and force you to grow as a person while opening up new opportunities. For me, running would be a Hard Thing. I like to run but haven't in forever so it'd be hard to get into the habit of doing it and getting in shape. However, for example, introducing myself to the cute girl on the bus would be a Scary Thing. I neglected the Scary while doing the Hard but had to correct myself.

I think it's just worth mentioning that both Hard _and_ Scary are important to real self-improvement.

</comment><comment><USER3> I can't at the moment think of any word in the English language as devalued as "awesome". Perhaps I should not blame a Swede for not feeling this.</comment>


Just a Friend - <AUTHOR> http://www.justafriend.ie/ <comment><USER2> I really don't enjoy my own snark here and hating on Microsoft is still damn popular, but - So Mozilla and Chrome go for things like the HTML5 MMO and Microsoft goes for the "creepy thing that seems to pull stuff from my facebook account"?

And then it links to <http://www.beautyoftheweb.com>, where clicking "why internet explorer" shows me a page that compares IE10 to FF7 and, by visual percentage of the site, most of it is about Security FUD. Oh, and it is totally integrated with the new Windows taskbar, so they try to differentiate themselves on features that their competitors can't possibly get at that fast. Also - totally relevant for me on Linux.

But hey, it's 25 times safer and apparently eats malware for breakfast. You know, the thing that I haven't heard of since I switched to Firefox and then Linux 8 years ago.

Clicking on "for developers" greets me with "More standards. less hacked-up code." - Thanks for reminding me of the years of burning hatred I had for you. All Microsoft Marketing _can_ do these days is offer reparations, hm? Why not spend all that money straight away on paying people to go with IE? Would surely give you a better conversion rate than trying to woo developers who _grew up learning to hate you_.</comment>


Just how dangerous is it to travel at 20% the speed of light? - <AUTHOR> http://arstechnica.com/science/2016/08/could-breakthrough-starshots-ships-survive-the-trip/ <comment><USER2> Another aspect of the project's challenge is funding. While technically plausible in principle to develop such system, the total funding needed is on the order of $5-10 Billion. There is a relevant discussion about this on [Metaculus]([http://www.metaculus.com/questions/208/to-the- stars-1-will-t...](http://www.metaculus.com/questions/208/to-the-stars-1-will- the-private-investment-in-laser-sail-extra-solar-travel-be-matched-by-a- comparable-amount-within-5-years/)), for those who are interested.

<comment><USER2> There is actually a "Beam Propulsion Series" on Metaculus([http://www.metaculus.com/questions/#/search/series--beam- pro...](http://www.metaculus.com/questions/#/search/series--beam-propulsion/)) addressing relevant questions about the Starshot Project.

</comment></comment><comment><USER3> Charlie Stross wrote recently about the threat of beta radiation to these small probes[1]. This isn't discussed at all in this article or the associated paper[2] which focuses on purely mechanical collision effects. Anyone know if this is a separate consideration for another research group?

[1] [http://www.antipope.org/charlie/blog-static/2016/08/san- trom...](http://www.antipope.org/charlie/blog-static/2016/08/san-trombone- exoplanet-reality.html)

[2] [http://arxiv.org/pdf/1608.05284v1.pdf](http://arxiv.org/pdf/1608.05284v1.pdf)

<comment> T-A Alpha, not beta (beta radiation is just electrons):

> Roughly 1% of the ISM consists of helium atoms, and we have a technical term > for an ionized helium nucleus travelling at roughly 2% of the speed of > light—6000km/sec—we call it an alpha particle.

The article pretty much debunks [1] by concluding that heavier atoms do most damage, but are still manageable.

<comment><USER3> Thanks for the correction! Bad memory on my part.

So the article refutes [1] because the relatively easy to manage mechanical effects of those alpha particles on the spacecraft exterior mean that it actually functions as an effective, long-term shield against alpha particles?

</comment></comment></comment><comment><USER4> > The main problem with running into an atom isn't the physical collision but > rather the energy deposited in the spacecraft by the impact

Where is the difference? I don't see none except for level of detail.

<comment><USER5> They mean the physical damage isn't the big issue, but added heat from the collision is - You don't want a spacecraft to accumulate heat - it's hard to get rid of.

</comment></comment><comment><USER6> > how dangerous

I would think it's just as dangerous as having something traveling at 20% the speed of light _relative to you_.</comment>


Free Software Foundation statement on PRISM revelations - <AUTHOR> https://www.fsf.org/news/free-software-foundation-statement-on-prism-revelations

<comment><USER2> Don't forget Tent ([https://tent.io](https://tent.io)) which wasn't mentioned in the statement.

</comment><comment><USER3> How long until the FSF (and EFF?) are declared "terrorist organizations" by the US government?</comment>


10,000 sheep made by workers on Amazons Mechanical Turk - <AUTHOR> http://www.thesheepmarket.com/

<comment><USER2> I'm having trouble sleeping. Somehow this isn't helping.

</comment><comment><USER3> Aaron Koblin was one of the artists at an (art) event I did in NYC a few months ago. He's super-talented.

</comment><comment><USER4> The future of the marketplace--dynamic computer mechanisms for outsourcing tasks

</comment><comment><USER5> Now I know where those million giraffes _really_ came from.

</comment><comment><USER6> 818 is certainly worth a look.

Pretty amazing really.

</comment><comment><USER7> 9346 is pretty good

<comment><USER8> 6890 too</comment></comment>


Maryam Mirzakhani's Pioneering Mathematical Legacy - <AUTHOR> http://www.newyorker.com/tech/elements/maryam-mirzakhanis-pioneering-mathematical-legacy <comment><USER2> I knew Maryam was incredible the first time I heard her give a talk at Stanford. To my fellow cancer researchers out there: this is about as good motivation as we'll ever have to keep plugging along.

</comment><comment><USER3> So I am trying to undesrstand what her work was about. It seems fields medal was for "the _dynamics_ and geometry of Riemann surfaces and their moduli spaces" (my emphasis).

What is dynamics to a geometer? Clearly it is important -- because it is important in physics. But I want to understand what mathematicians are getting excited about.

We can talk about a family of geometrical objects foo(t) where the parameter t is a single real value, which stands in for time. But -- other than its relation to the physical world -- why is that $t$ parametrisation important? Why not complex parameters, or multiple parameters, or something completely different?

<comment><USER4> My memory may be a bit fuzzy on this. But I believe one way the term "dynamics" is used in her work is in reference to the space of Riemann surfaces (or equivalently, the space of hyperbolic geometries on a surface). This space is called moduli space. Certain topological operations on the surface (e.g. twisting a "handle") give rise to a corresponding transformation on moduli space. So one of the things mathematicians in this area can study is the dynamics of such operations on moduli space. This means, for example, studying the behavior of these operations on moduli space, in the limit.

Also, to a mathematician, "dynamics" can often simply mean studying the behavior of iterations of a single function from a space to itself. So the parameter "t" in this case is over the positive integers (or all integers if the function has an inverse).

</comment></comment><comment><USER5> The article does a very poor job of describing her work. Does anyone have links to something understandable?

<comment><USER6> [http://micheleincalifornia.blogspot.com/2014/08/links-on- mar...](http://micheleincalifornia.blogspot.com/2014/08/links-on-maryam- mirzakhani-first-fields.html)

</comment></comment><comment><USER7> Still bothers me that we didn't get a black bar. Can someone explain what the criterion is?

<comment><USER8> Stories and threads on HN are, for the most part, a sort of community property. The bar at the top of HN is not: it belongs to the operators of HN. Litigating how and when they use it to express grief is not an especially polite thing to do.

The easiest way, then, to understand the "black bar" is to think of it as an expression of sorrow that has a direct connection to HN's operators.

<comment><USER7> If it was a private thing I would be totally with you, but the black bar's entire purpose is to send a public message to the community. It seems natural for the public reading the message to wonder why it was sent (or omitted) on a given occasion. It's not "why aren't you grieving?" but rather "what message are you trying to send us through displaying or omitting it?"

<comment><USER9> The public message is that "someone who has had a profound impact on YC, or HN and its members has passed away". That impact is up to the operators to decide.

Much the same way a family remembers their loved ones, but doesn't grieve every important person who has passed away irrespective of their stature. Like parent was saying, it's a little discomfiting to see this discussed on threads.

</comment></comment></comment></comment><comment><USER10> "this is about as good motivation as we'll ever have to keep plugging along."

So, other people dying of cancer not as good motivation?

<comment><USER11> Please be charitable when commenting here. That means responding to the strongest plausible interpretation of what someone might mean, instead of a weaker one that's more offensive or ridiculous.

We detached this subthread from [https://news.ycombinator.com/item?id=14794057](https://news.ycombinator.com/item?id=14794057) and marked it off-topic.</comment></comment>


Persistent cannabis users show neuropsychological decline - <AUTHOR> http://www.pnas.org/content/early/2012/08/22/1206820109.abstract

<comment><USER2> One thing I learned in research methodology is to always consider the biases of the group funding the study. In this case it was the National Institute on Drug Abuse.

So this is like the beef council funding a study saying 'BEEF IS AWESOME FOR YOU AND MAKES YOU SMART AND HANDSOME.'

Move along, nothing to see here (until you see the results replicated by a less overtly biased source).

<comment><USER3> First off, beef is indeed awesome and it has given me the incredible intelligence and physical beauty that I so casually display today.

Second, more seriously, your response is political rather than scientific. There may indeed be flaws in the research, but so far you haven't indentified any.

<comment><USER2> Right off the bat, this study hasn't been replicated yet but it's being reported as if it's solid proof. There's a non political problem before you even take a glance at methods...</comment></comment></comment>


Ask HN: What resources do you recommend to learn how to sell software? - <AUTHOR> <comment><USER2> I'd say, Justin Jackson who runs his business focused on marketing products (especially digital software) should be a good resource to start off from.

His book and course, Marketing for Developers[1] has top notch and actionable content that would help you bring your product closer to potential buyers.

[1][https://devmarketing.xyz/](https://devmarketing.xyz/)</comment>


Bad Things About Uber and Lyft - <AUTHOR> https://usa.streetsblog.org/2019/02/04/all-the-bad-things-about-uber-and-lyft-in-one-simple-list/ <comment><USER2> > They increase driving — a lot

Imagine, if there were no planes -- we wouldn't be waiting in airports for hours, crammed into the tiny seats; there would not be any air catastrophes, and the air would be cleaner.</comment>


Happy Chinese New Year! - <AUTHOR>

The new year's day for lunar 4705 is February 7th, 2008 on the Gregorian calendar.<p>Have a good one! <comment><USER2> Gong xi fa tsai, hong bao na lai! (Happy new year, give me money!)

We actually go around to our extended families and all the funds go toward that shiny new gadget...or if you've got a big family, you might be lucky and save up for that macbook air?</comment>


Why a programmer should try online poker - <AUTHOR> http://0x7bc.com/why-a-programmer-should-try-online-poker/

<comment><USER2> Math in poker is a little overrated. It's often listed as an advantage of the game by less experienced players.

Once you have the basics nailed (mainly expected value calculations) there really isn't much more to it, the rest of the skill then comes from estimating opponents hand ranges. And past that, meta game, hand range balancing, deception etc become increasingly important.

Poker is an amazing game when you're playing people who also understand the game. When you're scrapping at the free games it's a pretty dismally inefficient learning tool. If you want to play good people, you need to play with money.

If you get to a reasonable level at poker, it does have a lot of advantages. Here's a blog post I wrote comparing running a startup to playing poker: [http://www.scirra.com/blog/80/why-running-a-startup-is- like-...](http://www.scirra.com/blog/80/why-running-a-startup-is-like-playing- poker)

Poker also has a big potential downside, which is obsession, outright misery and despair which can slowly creep into your life. Distinguishing between addiction and a pursuit you are thoroughly interested in and enjoy is often difficult to pinpoint.

Poker also has other downsides which I've observed many times, even with close friends. Illusions of grandeur are common, and can be destructive in your life in a larger way than you are prepared to admit. For example, many players who have been playing for many years still believe they can go pro. These players don't study the game, they just play it and often bemoan their bad luck. For years. In an alternative Universe they might have perused a career, yet they are still playing small stakes games and bleeding off their money at a very slow pace, slow enough to kid themselves that they are simply suffering a bad run of luck.

Perseverance and self belief really aren't virtuous qualities in poker for most people.

Harrington on Holdem are the best strategy books on poker in my opinion. If anyone is interested in seeing how poker players should be thinking as they play I highly recommend those books!

As for recommending people go into poker, I actively tell people to steer well clear of it. Money flows upwards, addicts keep on self destructing and the winning players will justify it with ethically dubious statements like "if I don't take their money, someone else will", or with blinders on with statements such as "all the losing players are probably just casual and playing for fun" to appease their own ethics.

A lot of winning players do not understand or empathise the torture that some losing players have to endure.

There is a real pleasure playing poker on a table with people who are equal, or above you in skill level. The level of thought, the challenge, the tactics are thoroughly thoroughly enjoyable. I was never especially good at poker, but I did touch upon these sorts of experiences. To get there though will take most people a lot of time, probably time better spent elsewhere.

<comment><USER3> This is an incredibly jaded reply. Somebody who was "never especially good" at programming but spent a lot of time try to be could make the exact same post. Poker is very difficult to become successful at in your part-time, because you need to balance playing with studying which forces you to divide a small pie even smaller.

While the best of the best can beat tough tables and will play anybody, most of us make money by playing worse players. Recreational players will often say "I cant beat these players because they dont think, if only I could move up to where they respected my raises!" But the problem with that is that the majority of our profits come from those players, if you cant figure them out, then you wont be beating the better players. Plain and simple.

As far as math being overrated, I couldnt disagree more. Yes, bad players or people who dont play often ask if you need to be a math genius to figure it out, or if you have to count cards, both of which arent true but that doesnt mean math is unimportant. Yes, pot odds, counting outs, etc is all pretty basic. Solving complex game trees for various situations to find the maximally exploitive play is not. Is the math complex? No, not really. It can be confusing, but there are tools to help and it isnt very high level math; however, that doesnt make it unimportant.

Further, saying math is unimportant is completely ignoring the activity you are "playing." Poker is entirely math. All you are doing is playing a numbers game. In texas hold'em your first card dealt will have a 1/52 chance of being a specific card, and your second will have a 1/51 chance. Then you have the various probabilities for the flop, turn, river, etc. Saying poker isnt about math misses the forest for the trees. I could say blackjack isnt about math, you just need to follow the basic counting strategies to turn a profit. But what do you think those are based on? How were they calculated? Look at what the University of Alberta is doing with math and try to say it isnt important.

I respect your posts in BFI at 2p2, but this is something that only provides the perspective of a player who never reached a high level of play. It is important to understand that perspective, but while people should always learn from somebody who failed, they need to be very careful when looking to them for advice. Yes, many give great advice, and many winners just got lucky, but you need to hear both sides.

TLDR: As far as the actual question goes, if you live in the US dont get into online poker unless it is just for fun. There arent enough options for you to play, and the risks are too high. If you are outside the US and want to learn the game, make sure you have enough time to study and play, use good resources (twoplustwo.com in conjunction with a video training site), listen to people better than you, and always try to improve. Dont look for how to play x hand in y situation, look to understand the framework that will help you make those decisions. It isnt easy, and if you already code then your time is better spent freelancing, but for college students, I think it is a great option, provided they can be honest with themselves about their abilities.

When it comes to crossover with programming, Im not so sure i directly agree (although Im just learning to code, so take this with a grain of salt) with their specific points. I think when poker is properly studied, it helps you learn how to think and analyze situations rationally. That ability helps the coding process, but it is broader than that, and not really the reasons the author outlined. It truly is a math/logic based game (so is any non purely luck based game), so it requires a similar mindset, but I dont expect learning one would help a ton with the other directly.

<comment><USER2> Great reply thank you!

> Look at what the University of Alberta is doing with math and try to say it > isnt important.

University of Alberta have done awesome research into poker, and I believe that every poker game is theoretically solvable. Math is a great tool to win poker with, but for most humans that depth of math is unreachable therefore as a player it's sort of useless (especially so in a live game).

When I was a winning player at various levels (plo100 was as far as I got) I really don't feel I was consciously doing much math except in the less frequent harder spots. (My demise was tilt and bankroll management).

> This is an incredibly jaded reply.

Fair comment, you have to understand though that it's a game that really hurt me at one point and that some of my friends are unknowingly suffering from it. I would not wish my experience of poker onto anyone else, and I would feel very uncomfortable exploiting someone who was in a similar position (which is obviously near impossible to ascertain online). I am quite vocal about this because I do feel a lot of the downsides are glossed over by the winning players - especially the less direct downsides like people deviating too far away from other paths in their lives that they would be happier in (such as a 'real' job/career).

When I went to casinos, local games, even pub games I would only say about 10% of the people in each place were happily enjoying themselves. My experience of poker is that the vast majority of people who play it a lot really aren't actually enjoying the pursuit, many to the point it impacts their outside lives, and that the game does tend to attract less savoury characters. Of the 90% that were not enjoying it, many of them are deluded by their own ability and potential. Perhaps I was just at the bottom of the pit and it changes at higher levels, but new players starting it would be difficult to break away from that majority group.

This definitely makes me hesitant to recommend the game to anyone, regardless of the huge enjoyment and lessons I did get out of it.

</comment></comment></comment><comment><USER4> Programmers probably shouldn't play online poker. When programmers aren't programming, or creating other things, they should probably spend time off the computer. They don't need another computer activity.

So, play poker face to face. Maybe you don't live in an area where you can do that, then start a low stakes home game with friends. Don't have friends, go out and meet some people. ;)

Don't bother with free poker, you will learn much other than the basic rules. Even micro stakes are a bit crazy.

</comment><comment><USER5> Reasons why you shouldn't:

[http://www.theage.com.au/national/online-poker-fraud- reveale...](http://www.theage.com.au/national/online-poker-fraud- revealed-20080930-4r8f.html)

[http://money.cnn.com/2011/04/15/news/economy/online_poker_in...](http://money.cnn.com/2011/04/15/news/economy/online_poker_indictments/index.htm)

For programmers it should be particularly obvious that cheating is just too easy and too tempting for online poker/gambling sites. Not getting caught is a little harder.

<comment><USER6> It should be noted that the post explicitly recommends using free/fun to play games and links to a problem gambling site.

<comment><AUTHOR> Exactly. I'm not telling you to play your money on poker. I'm just telling you to play poker for the fun and "benefits" of the activity.

</comment></comment></comment><comment><USER7> As both a programmer and a poker player I have strong opinions on the subject. In turn:

"Math is useful I see a lot of people around telling "I don't need math". In poker (and in programming) you need a lot of math, even for simple operations."

I think the importance of math is overstated in poker. When you look at a hand you must determine your chance of your hand improving, which is a straightforward mathematical exercise. You must also determine your opponents chances of improving his hand, which is also a straightforward mathematical exercise, but is complicated by the fact that you can't see the cards your opponent has. So once you have pegged your opponent for a certain hand based on his or her behavior earlier in the hand as well as any previous knowledge you have of the player, if applicable, then again straightforward math. Finally, professional/skilled poker players always calculate the odds the pot gives them versus the odds that either their hand will improve or the odds that in the specific situation they can expect to win the pot, and they further must consider what odds they are offerring to their opponent by their actions. Weighing those factors pretty much completes the degree to which mathematics plays a role in no-limit Texas Hold'em.

"Be fast and precise In online poker you can't think hours for your next move. If you are a programmer you should be fast-thinking and precise. Fast and no errors."

While this resonates much more for me in vis a vis poker, I think this is borderline idiotic in the sense of programming. In poker you must act fast because it is forced upon you in the context, you have no choice. Think of it like using Javascript before Douglas Crockford came along and enlightened you to the good parts of the language, the only reason to use it was because you had no choice! But in programming, to say that you have to be "fast and [make] no errors" is stupid insofar that it's an obvious goal of which stating serves no purpose. It's like when I tried to explain to a non-programmer friend of mine the concept introduced by Jason Fried of "getting good at making money". He thought it was the stupidest thing he'd ever heard, like as if someone saying "I'm going to work hard to improve my skill at making money" is going to in any way have a causal relationship with the actualization. I probably didn't do Jason justice in setting the right context for my friend, nevertheless I think this phrase exhibits the same logical fallacy.

"If you want to try poker there are a lot of free poker games on facebook, iPhone, etc… Don't waste your money. The fun is the same."

You'll never get good if you're money is not on the line. Now, I'm not saying that one should get in over their head, or even wager large amounts of money, especially when learning to play poker. However, you will simply not see the real scenarios and wrestle with the real hands that make you a great poker player, unless you and your opponents are playing for money. My impression of free poker games is that they mimic televised poker. Televised poker is for entertainment, not education, so the hands that are shown are epic bluffs, balls-to-the-wall all-in wagers, and other 5%-ish hands that provide the greatest level of excitement to viewers. I'd do the same thing if I was a TV producer, but it's not real poker. My point in this tangent is to illustrate that 95% of winning and loosing in poker comes down to average-plus hands beating average-minus hands. And while no hands are trivial in poker, playing an average-x hand against an opponent who holds the counterpart is ridiculously challenging. You will not have the motivation to really wrestle to find the answer without your money on the line, and getting good at finding out how to induce small mistakes in your opponent is basically synonymous with becoming a good no-limit Texas Hold'em player.

And finally, a gaping omission in my mind:

Poker is great for programmers (and maybe more accurately entrepreneurs) because it is a game where the perfect amount of information is available such that a skilled player, in the long run, can expect to have a positive ROI when playing against players of lesser skill. No-limit Texas Hold'em in particular, is the epitome of this. At the height of its popularity when big no-limit tournaments were attracting deep-pocketed beginners, a skilled player could expect his tournament entry fee to be worth 5 to even 10x its value in terms of expected value each time. The concept of imperfect information is resonant in entrepreneurship I think for sure, and as for it's benefits with programmers, I believe the best way to think about it is that poker in beneficial because it ostensibly uses the same cognition as design patterns in software engineering. You have a problem to solve with a variety of factors, and you apply patterns to solve those problems based on your knowledge and the past experience of others who have blazed the trail before you.

</comment><comment><USER8> In my opinion, _Magic: The Gathering_ is a far more interesting game for programmers.

Not only does it cover all the same facets of poker (stats, hands, bluffing), it has complex strategy. I think a lot of the logic put into playing and building a deck in MTG aids in similar mental processes for programming.

Actually, the skills needed for MTG are probably even better for someone in business and finance. Learning to budget, offsetting losses and tracking trends in the metagame--all very good skills for someone trying to make money in a market.

Oh, and it's got more geek appeal. Can't overlook that.

</comment><comment><USER9> I can recommand Poker, although not specifically to programmers. I got more general life lessons out of it.

You learn to take decisions with vague information by approximating and using basic math. As TomGullen says, the necessary math is neither hard nor is it much. To art is to adapt your numbers to the real world situation. Example: With an open-ended straight draw at the flop, you chances are roughly 1/3 for a straight in the end. First, you need at least two other players. If you have one other player, you fold, because it is not profitable. With three or more other players you keep playing. With two enemies it gets interesting, because you need to factor more information in, to decide. What is your position? Did someone raise before the flop? How did your two enemies play their hands before? What is your image at the table? ...

Another lesson i got from poker is to control my emotions when I'm on a streak. If you are on a winning streak, you still must fold when the math says the expected value is negative. On a loosing streak you still must go all-in if the math says so. No peaking at the flop, when your initial hand is too bad.

<comment><USER3> Again, as I said in response to TomGullen's comment, that is still the very basic of poker math. Further, your example is incorrect. To continue with an OESD [open ended straight draw], you do not need 2 opponents. You simply need the pot odds of the bet you are facing [and factoring in potential bets on future streets while drawing, as well as expected profit when you make your draw] to be giving you at least 2:1 odds.

In poker it is very easy to think youve "figured it out," because in a casino it is hard to keep track of your profits and losses over more than a few visits, and the ups and downs can have large impacts on your short term results [which take a long time to get past in a casino].

I do agree that emotional control is the biggest thing [outside of profits] that I got out of poker, because it carries over into the rest of my life. Im more patient, and dont get upset as easily about things that are outside my control. Those are important lessons to learn in life, and if you have gotten those from poker, great, but you still have a ways to go to understand the basic math and other concepts.

</comment></comment><comment><USER10> Poker is awesome. Free poker doesn't teach you much. Programmers value security and structure. With free money there is no structure to poker. People will go all-in, or raise the big blinds. There is no accountability and nothing to risk.

Once you play real-money games you see a drastic difference between play and real. People start being accountable for their actions and try to calculate optimally as to their odds of success on a given hand. The problem is once you start with real-money, win or lose, you find it harder to stop. This is where programming and poker are intertwined. Programmers can't stop programming. They will always program. Poker players will always buy-in.

</comment><comment><USER11> Poker is mostly about some weird sort of secret autistic like aptitude that no one really understands. Programmer types are higher in weird autistic aptitude than average.

Moderately outlying poker players can make about as much as they can as Bay Area programmers, and it's kind of a lot more fun to hang out all day getting served drinks in a casino all day than be in the Bay Area, though the Oaks Card Club is quite good for live multi table No Limit turbo-ish tournaments. Email if you want to play sometime there.

Also email me if you know of a Bay Area Startup poker game with a decent buy- in. I only ever find the social club low-limit ones on Facebook.

I didn't read the article and upvoted it.

<comment><USER12> For the best, maybe "reading people" is just how you described it -- that "weird sort of secret autistic like aptitude that no one really understands." This is like that famous (to poker players anyway) first scene of the movie Rounders where Matt Daemon's character goes around and tells you to some sick level of accuracy the hand range of his opponents.

But in my experience, not being that, I can describe it better:

For me, reading people is about giving them as much negative stimuli as possible and watching closely at their reactions. I'm really only passably good at this in a 1-on-1 setting. I avoid big money in multi-player pots if i can even though they provide a chance for much richer implied odds (eg the ability to earn 2, 3 x my money).

What that means is this -- I play what's known as a "tight aggressive" game. I only play about 5-10% of the hands dealt to me. And I play them hard. I raise a lot. Not usually huge raises, instead I like to have more, smaller raises. A good Pot Limit game is great for that. The idea here is simple: I want to make you make more decisions. If I think you're a worse player than I am, then my odds increase the more decisions I make you make. And I would much rather be in a position where I re-raise and she comes back with a huge re-raise and I fold than a position where I have less signal about her hand, and more noise, and think I have the best of it all the way down and lose a big pot.

YMMV, but that's what "reading players" means to me.

Edit:

Also, build a poker bot. For fun. Not profit. You probably won't profit. But I loved it. There are great "engines" you can build off of. I used WinHoldem but this was circa 2005 so certainly there are better options. It's great. You get computer vision, machine learning, etc, it's loads of fun.

<comment><USER11> Reading people in internet poker means using a HUD plus drawing distinctions based on how long they wait before making a move. That's it.

</comment></comment></comment><comment><USER13> Wtf HN? How in the hell does this article make the frontpage when it's written (albeit with good intentions) by a complete poker newbie and the points he make are incredibly shallow? There are so many much better blogposts about online poker, please don't upvote this. (fwiw I played up to 25/50 for a little while, and quit a huge winner, so I know what I'm talking about)

<comment><AUTHOR> I am a programmer and not a poker player. :)

</comment></comment><comment><USER14> By this logic, programmers should try playing super smash brothers melee competitively.

</comment><comment><USER15> Any particular reasons for poker instead of chess, go, baccarat, skat etc.?

<comment><AUTHOR> I played go, chess and many other games. Poker is widely avaible online, could be played for free or money and is quite "dirty". Never seen Jessie James playing chess :P.

<comment><USER15> Well, the money aspect didn't even figure in the original article as a positive, and go, chess & various other card games contain math, too, and often have quite vibrant online communities.

And, erm "dirtyness" as a deciding factor? Then I'd suggest three card monte.

<comment><AUTHOR> LOL. :)</comment></comment></comment></comment>


Fish: A user-friendly command line shell for macOS, Linux, etc - <AUTHOR> https://fishshell.com/ <comment><USER2> Hey all, one of the fish devs here. It's awesome to see all of the comments and happy users.

We are in the process of scoping a major release (fish 3.0) that can include major syntactic changes. If there's an aspect of fish you would like to see changed, now is a great time! Of course we'll read the comments here, and our issues page [1] is where discussion happens.

We're also welcoming new contributors. It's easy to get started writing completions or with the issues labelled "easy-pick". The core code base is reasonably modern C++ too.

[http://github.com/fish-shell/fish-shell/issues/](http://github.com/fish- shell/fish-shell/issues/)

<comment><USER3> I see that [https://github.com/fish-shell/fish- shell/issues/3341](https://github.com/fish-shell/fish-shell/issues/3341) is scheduled for 3.0. This is also marked as the fix for the broken/invalid YAML format that is used for storing the shell history [https://github.com/fish- shell/fish-shell/issues/2258](https://github.com/fish-shell/fish- shell/issues/2258)

I implore you to NOT use JSON or ProtocolBuffers, neither are appropriate formats for configuring my shell, or storing long sets of textual data. Protocol Buffers is hardly the kind of format I want to parse and read my history in, and JSON is a less than ideal configuration format for many reasons.

[https://github.com/vstakhov/libucl](https://github.com/vstakhov/libucl) UCL (Universal Configuration Language) is a much more appropriate format for configuring programs than JSON, and is has been accepted as standard for use configuring all tools included in the FreeBSD operating system.

I also suggest you consider using a different language to store shell history, since shell history and shell configuration are two very different jobs with different goals and trade offs. I personally would suggest a simple safe format like TOML [https://github.com/toml-lang/toml](https://github.com/toml- lang/toml) for storing the history.

But If you do want a single format for both configuration and history, I would implore you to pick TOML not JSON or Protocol Buffers.

<comment><USER4> Out of the mainstream formats, JSON is among the easiest to parse - thanks to the CLI tool jq. Does UCL have something equivalent?

Protobuf (or any other binary format) has the benefit of being faster to load, but I agree - it should not be be used to store things like history. It should be easy to parse history without having to write code. And with Protobuf, you need the schema.

If a binary format is going to be used, it should be optional - or perhaps there should be tools to convert the history file to/from a plaintext format.

<comment><USER3> There is uclcmd [[https://github.com/allanjude/uclcmd](https://github.com/allanjude/uclcmd)] which could do with some more work but was created with the intent of being a UCL equivalent of JQ.

Also since he's the kind of person that a HN reader will probably Ike to know more about. The original author of the aforementioned uclcmd, Allan Jude [[http://twitter.com/allanjude](http://twitter.com/allanjude)], is the former host of the TechSNAP podcast [[http://www.jupiterbroadcasting.com/show/techsnap/](http://www.jupiterbroadcasting.com/show/techsnap/)], current host of the BSD Now podcast [[http://www.jupiterbroadcasting.com/show/bsdnow/](http://www.jupiterbroadcasting.com/show/bsdnow/)], a current member of the FreeBSD Core team, and co-authored not one but two books on the ZFS file system FreeBSD Mastery: ZFS [[https://www.amazon.com/FreeBSD-Mastery- ZFS-7/dp/0692452354/](https://www.amazon.com/FreeBSD-Mastery- ZFS-7/dp/0692452354/)] and FreeBSD Mastery: Advanced ZFS [[https://www.amazon.com/FreeBSD-Mastery-Advanced- ZFS/dp/06926...](https://www.amazon.com/FreeBSD-Mastery-Advanced- ZFS/dp/0692688684/)]

</comment></comment></comment></comment><comment><USER5> I used fish twice for about a year each time, but I keep switching back to zsh, because:

* The main things I like about fish are predictive history completion and syntax highlighting, both of which work about the same with a pair of zsh plugins;

* The syntax occupies what is, for me, an awkward middle ground: it's a bit better than POSIX syntax if POSIX shells didn't exist, but not enough better that I care to juggle the two syntaxes;

* I don't like that fish tries to be "helpful" in certain cases such as lying to you about the delimeter actually used by $PATH.

I have a couple of specific gripes about the syntax, which aren't really inherent issues so much as unimplemented features.

I think if I was going to deviate from a POSIX shell, the alternative would have to be more better than fish to be worth it.

<comment><USER6> Out of curiosity, what use case do you have that makes a POSIX shell a big deal?

I've never had issues as a somewhat heavy user.

<comment><USER7> > Out of curiosity, what use case do you have that makes a POSIX shell a big > deal?

Running on a POSIX system, there are decades' worth of shell snippets out there which don't work with fish, but do with sh, ksh, bash & zsh.

Fish is just gratuitously incompatible. Having fish-users on a team is a pain, because they'll write everything in fish and either not bother producing sh equivalents, or produce insufficiently-tested sh equivalents. It's just a lot of pain and bother, and what's the benefit? Zsh does everything fish does and more, so why not just use it?

Edit: I just wish that the original fish developers had chosen to implement all their cool features _and_ be sh-compatible, or at the very least had exercised some wisdom in where they chose to break compatibility. Instead, it very much feels like a 22-year-old's project: full of ideas, some good & some bad, and needlessly without respect for the past. I've no problem with rejecting the past when the past is broken (and sh _is_ broken in places); my problem is with the equivalent of saying, 'hey, English spelling is terrible, soh Aiv dəseidid tū dəvelup mai ohn.'

<comment><USER8> Back in the day I used to use csh and tcsh, both of which had famously landmine-laden scripting gotchas. So, I wrote my scripts in sh or bash. Now that I use zsh mostly, same thing, I don't actually write my scripts in zsh-- especially for production, I write them in sh or bash. zsh for me is an interactive CLI-only tool. Honestly, I think the problem here sounds more about not standardizing on a common denominator for shared scripts.

Where stuff like fish is a pain for me is with apps that for whatever reason need shell integration (virtualenv, for example). Non-POSIX shells end up being an afterthought there, so you end up with no or buggy support, and end up having to find some other custom variant (virtualfish, etc.) to get good behavior. Sticking with a more mainstream shell tends to be safer there, and zsh barely makes it over that line.

</comment></comment></comment></comment><comment><USER9> Shameless plug: Elvish is another non-POSIX shell aiming at interactive friendliness and saner scripting: [https://elvish.io/](https://elvish.io/)

Some highlights:

* It comes with helpful interactive features, like syntax highlighting and on-the-fly error checking; enhanced history searching with ^R; directory history and a Ranger-inspired "navigation mode" (see homepage for demos).

* It supports some advanced (in shell standards) programming concepts, like lambdas, namespaces, nestable maps. It also has some pretty powerful API for interactive features. These two aspects work hand in hand and offers quite some customization possibilities. In fact, one user implemented interactive history expansion (!! !$ !1) himself: [http://zzamboni.org/post/bang-bang---shell-shortcuts-in-elvi...](http://zzamboni.org/post/bang-bang---shell-shortcuts-in-elvish/;) his configuration file is also worth readng: [http://zzamboni.org/post/my-elvish-configuration-with-commen...](http://zzamboni.org/post/my-elvish-configuration-with-commentary/).

* A lightweight builtin package manager is in the work.

* It is written in Go and comes as a statically linked binary.

* A native Windows port is under way, in case you care :)

</comment><comment><USER10> Happy user here. If you spend a lot of time in the shell fish is totally worth checking out.

Good points:

* Fish's completion sure saves a lot of typing

* `brew install fish` on osx

* Config in ~/.config/ rather than cluttering up the root of your homedir

* Can change many settings without needing to edit config directly - eg. `set -U fish_user_paths $fish_user_paths ~/path/name`

Bad / not intended for:

* It's not for scripting. Just use bash for that.

* I've found appending to env vars to be fiddly. Maybe I'm doing it wrong

* pyvenv's bin/activate.fish was broken for a long time (not fish's fault!)

<comment><USER11> Just curious, since their website pretty clearly points out "sane scripting" as a high point, what makes it bad for scripting from your perspective?

<comment><USER12> Not GP, but since 90% of of my sporadic scripting is _" searching on SO how to do something somewhat complicated that I'll never do again so it's not worth the time to learn how to master it"_, bash is (oddly enough) a lot easier to use here since looking up how to do it in Fish is a lot more hassle.

Similarly, if you want your code to be portable, bash is a safer bet.

<comment><USER10> I put that badly. Fish certainly does support scripting, but as a relatively niche piece of software you get bad portability (everything has bash) and poor maintainability (because everyone else scripts in bash). Fish is a great shell and maybe this will change, but at the present time I'd be doing my clients a disservice if I wrote them tools in a language few others could work with.

</comment></comment></comment></comment><comment><USER13> Whenever I'm reading about some alternative shell and thinking about switching, I'm afraid of losing my proficiency in bash. For better or worse, it's the _de facto_ standard in scripting, so I see it as an important skill. How does this work for those of you who risked and switched? Don't you feel some kind of schizophrenia, or accidental cross-polination typos/mistakes? How does it work when you login to some remote machine, do you have the alt. shell installed everywhere?

<comment><USER14> I have the same problem. I mainly use zsh because it's not drastically different from bash but still offers some useful things that bash lacks. But, honestly, we should just bite the bullet and move on to something better. Yes, we will still need to write scripts in bash from time to time and maybe we'll need to look up a few points that we've forgotten but we won't forget the fundamentals and that's all you really need. Well, that and a web search.

<comment><USER15> FWIW I'm working on a bash-compatible shell:

[http://www.oilshell.org/blog/](http://www.oilshell.org/blog/)

If nothing else, I have thousands of lines of my own shell scripts that I don't care to move to a different shell syntax that's not obviously better :)

I'm designing a new shell language which bash can be auto-converted to. This is a lot of work and the plans might change, but the beginnings of it are here:

[http://www.oilshell.org/blog/2017/02/05.html](http://www.oilshell.org/blog/2017/02/05.html)

[http://www.oilshell.org/blog/2017/02/06.html](http://www.oilshell.org/blog/2017/02/06.html)

</comment></comment></comment><comment><USER16> I love fish shell, I love the autocomplete, but I've been forced to switch back to bash lately, because fish syntax is just different enough from bash- isms to break too much scripts / tools / commands.

I know I could just invoke bash, but prefixing commands with "bash -c '" is tiring and papercuts are why I switched to fish in the first place. I wish bash had a sane auto-complete prediction like fish.

<comment><USER17> Fish doesn't break scripts, they use whatever interpreter you specified when you wrote them.

I use fish interactively and write very simple scripts in bash and the more complex in Python.

<comment><USER18> Maybe op is sourcing said scripts instead of executing them?

</comment></comment></comment><comment><USER19> Fish is really great for using it in your terminal. Autocompletion, fuzzy matching, and so on, are amazing.

Unfortunately, although it is fully scriptable, writing scripts in Fish feels a little clunky at times. For example, I wanted to test if $dest exists, and if not, whether $src is newer than $dest. Since there are no && or ||, parentheses are used for command substitution, and the Fish version of "test" has no -nt to check if a file is newer, I have to do this:

        if begin; not command test -f $dest; end; or begin; command test $src -nt $dest; end
            # do something
        end

<comment><USER20> use ; in place of &&

<comment><USER21> I think you should actually use "; and" in place of &&. That said I still wish fish support && and ||, if only for the times when I copy and paste some one- liner off of stack overflow and have to rewrite it.

</comment></comment></comment><comment><USER22> I use fish as my primary shell. I've ran into a few issues where it broke existing fish scripts, and, uh, let's just say some of the developers (not 'ridiculous_fish) were less than stellar in their response. (I get it. It's open source. You don't owe anyone anything: but you also don't have to be a jerk about it, and I also don't owe you using your software.)

My original reason for using fish was onboarding junior engineers. I had a pretty fancy zsh/emacs setup, and they'd ask me how to make their shell do that (reminder: on macOS you get bash3.2 by default!). So I switched to fish/spacemacs, so the answer isn't "uh sure you can rsync 50MB of accrued elisp".

Result: I have a nice zplug[0] setup now:

      > cat /usr/local/opt/zplug/packages.zsh
      zplug "zsh-users/zsh-syntax-highlighting"
      zplug "zsh-users/zsh-history-substring-search"
      #zplug "zsh-users/zsh-autosuggestions"
      zplug "zsh-users/zsh-completions"

      #zplug "plugins/git", from:oh-my-zsh
      #zplug "plugins/github", from:oh-my-zsh
      #zplug "plugins/fossil", from:oh-my-zsh

      #zplug "plugins/docker", from:oh-my-zsh
      #zplug "plugins/docker-compose", from:oh-my-zsh

      #zplug "plugins/python", from:oh-my-zsh
      #zplug "plugins/pip", from:oh-my-zsh

      zplug "plugins/lein", from:oh-my-zsh

      #zplug "plugins/autojump", from:oh-my-zsh
      #zplug "plugins/command-not-found", from:oh-my-zsh
      #zplug "plugins/gpg-agent", from:oh-my-zsh
      #zplug "plugins/ssh-agent", from:oh-my-zsh
      #zplug "plugins/thefuck", from:oh-my-zsh

      #zplug "plugins/aws", from:oh-my-zsh
      #zplug "plugins/osx", from:oh-my-zsh
      #zplug "plugins/battery", from:oh-my-zsh

      zplug "tweekmonster/nanofish", as:theme

Still easy to reproduce. Maybe consider some of those plugins. You don't have to give up being POSIXy. Whether or not that's good or bad, I leave up to you :)

(Commented out bits are things I'm playing with: mostly to improve shell startup time.)

[0]: [https://github.com/zplug/zplug](https://github.com/zplug/zplug)

</comment><comment><USER23> Related: xonsh ([http://xonsh.org](http://xonsh.org))

It's a Python-based shell that attempts to be somewhat bash-compatible (for ease of use over, e.g., IPython). Instead of making a new scripting language (fish), go all in.

Pros: scripting is amazing. ( while True: ls ~ ) Cons: can be a bit slow (because Python interpreter).

</comment><comment><USER24> It is also worth noting that the ecosystem around fish is quite developed, making it easy to get easy integration and completions for most well-known tools.

oh-my-fish [1] plugins is a good place to see (part of) what is available

[1]: [https://github.com/oh-my-fish](https://github.com/oh-my-fish)

</comment><comment><USER25> I'm happy w/ zsh but have played a bit w/ xonsh (a POSIX-compliant shell w/ deep python integration), because my cousin is a core contributor. Curious if others here have tried xonsh and what your experiences have been.

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

<comment><USER26> I use xonsh on my Windows machine at work (too lazy to learn Power Shell). Very happy with it, and a quick way to get a bash type shell on Windows. Not the most stable beast (e.g. yesterday I typed "pwd" and it crashed and returned me to the Windows prompt).

I also use it on my home computer (on top of zsh) and am pretty happy with it.

It is a bit slower in terms of response time, but that's OK. Most of the problems I had with it have been resolved after filing bug reports. The only annoyance is that when I quit Midnight Commander, I'm back in the directory I started with. But that's a MC problem, and not xonsh. Every shell out there has a special wrapper script to handle MC. I just need to understand the one zsh uses and port it over to xonsh.

The two best parts about xonsh:

1\. You can use the command line like you would a Python interpreter. Need to do a quick calculation? Just type it in and press Enter.

2\. No more obnoxious bash/zsh scripting. Write all your shell scripts in Python!

</comment></comment><comment><USER27> Ctrl-R and Ctrl-S please. Using the arrow keys for searching through history quickly (i.e. without leaving the home row) sucks.

<comment><USER28> +1. If some developer reads this, Ctrl+R is the only missing thing I can't imitate from bash.

<comment><USER29> I know this might not be what you'd want, but I'm doing this with fzf[0]. I have something like this as an alias:

      eval (cat ~/.local/share/fish/fish_history | grep 'cmd:' | cut -c8- | fzf --tac)

and then I simply bound it with `\cr`. It doesn't exactly replace Ctrl-R functionality but it suits my need.

[0] [https://github.com/junegunn/fzf](https://github.com/junegunn/fzf)

</comment></comment></comment><comment><USER30> The great thing about fish for me is that comes so nicely set up on first install that, a few path additions aside, I don't have to mess with it. Any time spent on shell configuration is time wasted from my perspective.

This in turn means I'm willing to install it with no hesitation in all my local and remote logins, so I have a uniform simple setup everywhere.

</comment><comment><USER31> I've used fish as my shell for over five years. Thanks to the developers!

One issue is the behavior of globs. I often want to do "scp host:directory/* ." but you can't do that in fish, so I drop to bash. That's pretty much all I drop to bash for.

<comment><USER32> scp host:directory/\\* .

<comment><USER33> Also possible:

        scp 'host:directory/*' .

</comment></comment></comment><comment><USER34> I switched to Fish about half a year ago after reading Julia Evans' essay singing its praises: [https://jvns.ca/blog/2017/04/23/the-fish-shell-is- awesome/](https://jvns.ca/blog/2017/04/23/the-fish-shell-is-awesome/)

I think what convinced me was the last point: if you really can't do what you're trying to do in Fish, firing up sh/csh/ksh/bash/python/xonsh costs virtually no effort.

<comment><USER7> > if you really can't do what you're trying to do in Fish, firing up > sh/csh/ksh/bash/python/xonsh costs virtually no effort.

But of course having to recall how to do something in a POSIX-compatible shell can cost if you've been using a POSIX-incompatible shell for years. Memory and experience do fade over time.

</comment></comment><comment><USER35> I've been enjoying fish for the handy tab complete of command line options, the interactive history, and it's pretty.

I'm certainly guilty of finding one-liners online which frequently fail in fish, which puts me in the position of either actually learning what the terse statement actually does and re-implementing it in the fish "c-like" syntax, or I just drop into bash then get on with my business.

Really happy with it, but I know I get sideways stares from graybeards and gurus who consider it the small-batch, fixed-gear, "Crocs" of shells.

</comment><comment><USER36> I've been using fish for a few years now, and it has made bash feel not just outdated, but completely obsolete. I am at loss for why it hasn't taken the entire world by storm.

</comment><comment><USER37> I use fish since the first time I tried it some years ago because it upgrades your user experience.

I don't understand what the fuss with not being compatible with bash is. Bash scripts run with #!/bin/bash in bash. If you need to write/copy&paste some bash code just jump to a bash shell. In the meantime, fish will save you lots of time on your daily regular shell usage.

</comment><comment><USER38> Love fish, especially because of the easy configuration and out of the box features. No need for complicated frameworks or curated dotfiles. There are two syntax changes I'd love to see:

1\. Support for last command by !!, as in `sudo !!`.

2\. Ability to search history from a partial command like `git checkout`, where up arrow would step backward from the present.

I wish all my tools were as friendly as fish!

<comment><USER39> >2\. Ability to search history from a partial command like `git checkout`, where up arrow would step backward from the present.

We have that feature, and it's enabled by default. Just type the partial commandline and press up-arrow. Or do you mean something slightly different?

<comment><USER38> That's true. Sorry for my poorly-worded English. For a small example:

        $ ls -la foo
        $ ls -la bar
        $ ls -la /

When I type `ls -l` and hit the up arrow, my first result is `ls -la bar` not `ls -la /`. This is a small problem but sometimes annoying, especially after using other shells that work differently.

<comment><USER39> In this case, what most likely happens is that the first result is offered as the suggestion - i.e. the greyed-out part in the commandline. To accept that, press right-arrow (with the default bindings, of course).

<comment><USER38> Thanks for the suggestion.

</comment></comment></comment></comment></comment><comment><USER40> Fish shell is the first thing I install on my setups. Been using it for a few years now and love - and advocate for - it.

</comment><comment><USER41> If you like fish but miss the plugin ecosystem of zsh you might be interested in the fish-shell plugin manager, fisherman. I've really been enjoying fish with z and fzf.

[https://github.com/fisherman/fisherman](https://github.com/fisherman/fisherman)

</comment><comment><USER42> Thanks for the awesome fish shell – my beloved default.

For improvements here are two things I wish where possible in fish:

* The ability via a flag to say that a fish-function should not interpret passed function-arguments. This would enable us to pass e.g. URLs to a function without quote them, which is somewhat anointing right now. So this change would be a nice usability improvement.

* I would like to be able to write dynamic completions, containing of a key-value pair. The key should be displayed and if the user selects a completion-item, the corresponding value should be passed to a fish-function from which arbitrary actions could be triggered. Maybe supporting JSON input here would be nice too.

<comment><USER39> >* The ability via a flag to say that a fish-function should not interpret passed function-arguments.

Note that functions already don't expand the passed arguments. Fish expands them _before_ executing the function, so what you are asking for is a major layering violation.

E.g. you can do this:

        function a
           b $argv
        end

        function b
           string escape -- $argv
        end

        a 'something * with ? loads {} of $pecial char"acters'

and the output will come out right. You only need to quote it once.

>This would enable us to pass e.g. URLs to a function without quote them

I'm assuming what you are asking for isn't _passing_ URLs to functions, but rather _pasting_ URLs into the commandline.

In which case fish has a feature I like to call "magic paste". When you paste with an open single quote (`somecommand '`), it'll escape single quotes (and backslashes). So you type the closing single quote and your argument will be passed to the command you are calling as the exact text you pasted.

>The key should be displayed and if the user selects a completion-item, the corresponding value should be passed to a fish-function from which arbitrary actions could be triggered.

We have "descriptions" for completions, which will be displayed _alongside_ the argument (i.e. the "value"). To generate them dynamically, simply separate them with a tab character (`\t`) from the argument, and separate these pairs with newlines.

So

        printf '%s\t%s\n' 'argument' 'description' 'argument2' 'description2'

will be displayed as

        argument (description)    argument2 (description2)

We use this to great effect in numerous places. E.g. the git completions will offer commit hashes with the summary line as description, so when I type `git revert <TAB>` I get something like

        0a129475    (Replace opts.stdout with opts.to_stdout)

I'm not sure I like the idea of hiding the real argument from the user.

>Maybe supporting JSON input here would be nice too.

The best completions are those that actually call the stuff they are completing (because that makes them really reactive), and not many commandline tools actually generate JSON. Anything in particular you're thinking about here?

(And now I'm hoping that HN doesn't hopelessly mangle this comment)

<comment><USER42> # First Topic

The idea would be to be able to write something like this:

        function yt --pure
            youtube-dl $argv
        end

The parser should stop interpreting arguments after the yt function call and pass the args as strings to the function as before.

Then such a call would be possible: yt [https://www.youtube.com/watch?v=mqma6GpM7vM](https://www.youtube.com/watch?v=mqma6GpM7vM)

# Second Topic

I wrote a little utility [1] to quicker navigate on the file system. Right now I have two commands:

        m  [folder]  // goto highest ranked folder
        mm [folder]  // list results for folder-keyword

I would like to be able to write 'm foobar' and then press tab to get a vertical completion-list. When the user selects a completion-list-item I would like to pass the result-path to the cd command. Some time ago I tried to write such a completion, but failed – that's why I still use a separate mm-function to list search results.

[1]: [https://github.com/thibran/maybe](https://github.com/thibran/maybe)

I think JSON might be a good choice here because it would simplify the interaction with the completion program for advanced completions. Passing all those flags – mixed with some other shell function calls – to the 'complete' program is a bit cumbersome. My dream would be to have something like 'complete -c maybe --json [maybe-flag-to-generate-json-output]' and handle everything inside the application.

        {
          "fish_completion_version": 1,
          "header": "optional, completion header",
          "orientation": "vertical",
          "on_single_result": "optional, choose-item or display-item",
          "arguments": [
            {
              "item",
              "description",
              "optional return value, if empty return item"
            }],
          "item_handler": "optional, name of fish function to call on-item-chosen"
        }

I know JSON is not something you want to assemble in a script, but all programming languages have support for it and it's easy to use.

<comment><USER39> >Then such a call would be possible: yt [https://www.youtube.com/watch?v=mqma6GpM7vM](https://www.youtube.com/watch?v=mqma6GpM7vM)

Okay, so I did understand what you are saying.

Like I said, that's a rather large layering violation, since the function has nothing to do with the expansions happening on its arguments. They are expanded before they ever reach the function. It's essentially allowing functions to modify the syntax around them.

How exactly would this treat e.g.

        yt $URL/somefile

Would the variable still be expanded? Would an asterisk glob be? If I _did_ want it to expand something even though the function is declared "pure", how would that work?

Now I couldn't be sure how my arguments would be interpreted, or I'd have to go checking for everything I invoke.

I use youtube-dl myself quite often, and what I do is just type

       youtube-dl '

then press ctrl-v (which is a keybinding that uses xsel or pbpaste to get the clipboard contents and insert them into the commandline) or ctrl-shift-v (which is my terminal's paste binding). Then I press `'` again and can download the video.

Additionally, it's looking like 3.0 will remove the `?` glob, which is the thing that is most annoying with URLs (though "&" is also a thing).

> I would like to be able to write 'm foobar' and then press tab to get a > vertical completion-list. When the user selects a completion-list-item I > would like to pass the result-path to the cd command.

I would assume the reason you failed is that the argument you want doesn't match the argument the user typed. Because fish's completions undergo filtering (with some fuzzy-matching, so e.g. `f_c_i` matches `fish_config_interactive`). Otherwise every completion script would have to implement that by itself, and consistently to not confuse people.

For completions, that's the right thing to do.

What you want, I'd argue, isn's a completion. What you want is a selection menu. Which could be implemented with fish's completion pager (we have an open issue about making it accessible to the outside), but isn't the same thing.

JSON here is a red herring, since you don't just want to add items (with descriptions), but also control the behavior of the pager ("orientation" and "on_single_result"). That you could do just with arguments to this `select` command (`list_of_items | select --orientation=vertical --on-single=choose`).

<comment><USER42> > How exactly would this treat e.g.

        yt $URL/somefile

> Would the variable still be expanded? Would an asterisk glob be?

No. Pure should mean don't do anything from here on, just pass the arguments to the function.

> If I _did_ want it to expand something even though the function is declared > "pure", how would that work?

If expanding should be possible in a pure context, then maybe by using a known syntax like:

        yt ($URL)/somefile

Eshell expands Lisp code when using (lisp-code-here) which is kind of elegant. So when in a pure context, you would have to switch to expansion-mode by using curly braces.

</comment></comment></comment></comment></comment><comment><USER43> 5 year old feature request [0].

[0] [https://github.com/fish-shell/fish- shell/issues/438](https://github.com/fish-shell/fish-shell/issues/438)

<comment><USER3> I just read that entire issue and it looked dire for a while, hopefully it is resolved properly in [https://github.com/fish-shell/fish- shell/pull/4442](https://github.com/fish-shell/fish-shell/pull/4442)

</comment></comment><comment><USER44> I like fish enough that I went and added fish support to ROS when I was doing ROS development. I still leave bash as my system shell because scripts. But all my terminals are set to start with fish instead.

</comment><comment><USER45> I've been using fish on my laptop for some time now, it is an interesting project and I use it personally for purely aesthetic reasons. However I have a lot of muscle memory with bash-isms which also work in ZSH.

History expansion `!$` for example, is missing.

SDTIN redirects as I expect `<<<` etc; are also missing. And to get ^R to work again I had to install fzf.

Now, I am fairly certain I'm doing it wrong, but I never found a good place to read how to do it the fish way... If anyone has good replacements for the things I've mentioned I'd be quite keen to hear them.

</comment><comment><USER46> Fish is great both as shell and as a scripting language.

I've written both my Trello Exporter CLI tool[0] and the first version of my React/Browserify static site generator[1] on it.

[0]: [https://github.com/websitesfortrello/trello- exporter](https://github.com/websitesfortrello/trello-exporter)

[1]: [https://github.com/fiatjaf/sitio/tree/fish](https://github.com/fiatjaf/sitio/tree/fish)

</comment><comment><USER47> I've started using fish after seeing this post. It's an incredible shell. How come I haven't came across it in the past 10 years?

I like the scripting syntax too, so much saner than bash.

</comment><comment><USER48> I definitely prefer zsh. I just feel like Fish tries too hard and it's just awkward to switch between fish and bash when frequently switching between different machines.

</comment><comment><USER49> It's been a while since I've tried it so perhaps someone can comment whether things have changed or if there was something I missed. When I last tried fish, I liked it but I couldn't get past the lack of ctrl-r (backward history search), which I rely on extensively. I found having to reach over to the up/down arrows too clumsy in comparison. An oh-my-zsh plugin also provides fuzzy searching (history-search-multi-word).

Anythiing comparable now in fish land?

<comment><USER50> If you use vi mode then history can be navigated with hjkl.

</comment></comment><comment><USER51> I have fish installed because for some odd reason, the "SSH link" feature of Midnight Commander didn't work across two servers that we use. After installing it I could use the "Shell Link" feature and it was lovely to be able to exchange files between servers using a 'graphical' terminal. Specially useful with some of our devs which aren't too command line happy.

</comment><comment><USER52> My biggest gripe is fish (I think its Fish?) trying to do DNS lookups when I hit `ssh user@hosting-<tab><tab>`

Is there a way to disable this?

</comment><comment><USER53> I remember installing it, typing 'help', having a browser pop up as a consequence, then uninstalling it.

Definitely not for me.

<comment><USER33> If you don't want to leave the terminal:

        set BROWSER lynx
        help

</comment></comment><comment><USER54> This is amazing. IMHO Ubuntu, Elementary, OSX and other OSes that are trying to be practical, easy and pleasurable to use out of the box should offer this by default, together with tldr.sh.

</comment><comment><USER55> Loved it a few years ago, stopped using it when I started using conda and it didn't support switching into those environments. I'll try again hopefully that's fixed.

</comment><comment><USER56> Anyone use either eshell or shell mode in emacs? tramp-mode alone has been a huge boost to my overall satisfaction.

<comment><USER42> I seriously considered using eshell (I love Lisp and Emacs dired-mode), but ended up continuing with Fish.

Since I use the non-graphical Emacs (emacs-nox), I can easily start dired-mode in terminal by writing: emacs .

</comment></comment><comment><USER57> I've never tried it and spent the last few years relying on oh-my-zsh, is it worth trying to switch?

</comment><comment><USER58> How's this compare to oh-my-zsh?

<comment><USER59> I tried oh-my-zsh and it was too slow for me for some reason. Returning from a command took a second. Maybe I had some buggy plugin enabled, I don't know.

Fish is almost zero configuration and has many useful functions built-in and they are quite fast. Unfortunatelly it doesn't use bash-style syntax like zsh does.

</comment></comment><comment><USER60> Wow! This is great!

Wait... Is whitespace significant?

<comment><USER61> No, not to my knowledge! It does autoindent things for you when you're editing multiline functions inline, but whitespace is fortunately not significant.

<comment><USER62> Great! It's one of the things that irritates me in Python (whitespace used as scope delimiter).

<comment><USER61> I'd go so far as state that I cannot fathom the decision to assign deep semantic meaning to a set of invisible symbols.

</comment></comment></comment></comment><comment><USER63> Zsh or death!

</comment><comment><USER64> I've been using fish for 3 ~ 4 years and I love it. It's come a long was in its development and it's interesting to watch as so many of the bugs have been resolved. Today's fish is incredibly stable and solid. The history, highlighting and completion are well beyond what I've seen in other shells (at least not without adding additional plugins).

I still write scripts in bash for compatibility (when I have to; I try to use Python whenever it's an option), but for my interactive shell, fish is really amazing and I'd hate to go back to anything else.

</comment><comment><USER65> Fish is nice and I eventually learned to accept the scripting. BUT if it is the shell for the '90s what is the 21st century shell?

<comment><USER66> It's a joke. The implication is that Bash was already outdated in the 90s, so it's long past time for something new.

<comment><USER65> I know, just trying to be too pithy :) But will seriously look at some of the other shells mentioned. I miss scsh.

</comment></comment></comment><comment><USER67> I'm happy with plain old bash.

</comment><comment><USER68> 1) web based configuration? really?

2) list.reverse(macOS, Linux, and the rest of the family)

<comment><USER64> That is the one thing I really didn't like about Fish; that and how the help screens use to launch in a web browser. But once you get past the initial configuration, you never use that stuff again. Despite that fault, I still love Fish shell.

<comment><USER2> `help` opens in the browser, but fish also has excellent man pages for all of its commands.</comment></comment></comment>


Ask HN: Learning Unity for mobile game dev in 2017 - <AUTHOR> What are the best resources for learning Unity for game dev? Most of the tutorials, courses and articles seem a bit dated. <comment><USER2> I believe a lot of it depends on what you want to do within Unity, but whenever someone asks me this question, I direct them to Brackeys youtube channel. Very good tutorials to build a good foundation of what is possible. This knowledge can then be used to go down a more specific path of learning.

[https://www.youtube.com/user/Brackeys](https://www.youtube.com/user/Brackeys)</comment>


Kim Dotcom has a patent on 2-step authentication  - <AUTHOR> https://www.google.com/patents/US6078908 <comment><USER2> Well it appears on the surface to cover cases where an SMS message is sent to a mobile phone. But it wouldn't cover stuff like having a swipe card + password, or having two passwords etc etc.

Edit: OK, further reading reveals that it's about per-transaction _authorisation_ (eg bank to bank transfers), not _authentication_. So actually it's quite different from the SMS passcode usecase that Google, Facebook etc are doing.

The equivalent would be getting an SMS with a passcode before sending an email. Not getting it before you log in.

(IANAL, TINLA)

<comment><USER3> Plenty of prior art, though.

</comment></comment><comment><AUTHOR> For people to understand more on the context of this link posted, "Kim Dotcom accuses Google, Facebook, and Twitter of violating his two-step security patent" [0]. You may also find his Twitter feed interesting [1].

        I never sued them. I believe in sharing knowledge & ideas for the good of society. But I
        might sue them now cause of what the U.S. did to me

        Google, Facebook, Twitter, I ask you for help. We are all in the same DMCA boat. Use my
        patent for free. But please help funding my defense.

[0] [http://www.theverge.com/2013/5/22/4357500/kim-dotcom- claims-...](http://www.theverge.com/2013/5/22/4357500/kim-dotcom-claims-he- invented-two-step-verification)

[1] <https://twitter.com/KimDotcom>

<comment><USER4> Patent for free if they fund his defense? Pretty sure that's not my definition of "free"

<comment><USER5> One dose of extortion coming right up!

<comment><USER2> I think he's about to learn that these companies have more and better patent lawyers than god and more money than the devil to pay for an unending trial.

If a schmuck like me can pop that balloon, I hate to think what a half- competent patent lawyer could do.

<comment><AUTHOR> The article on The Verge says

        While there are likely many who could lay claim to an innovation such as two-step,
        Dotcom's patent — filed under his birth name, Kim Schmitz — appears to hold some water.
        It claims priority back to 1997, which would make it difficult to invalidate, and has
        wide coverage. Despite its age, it illustrates the current concept of two-step
        authentication by detailing how a secondary access code could be sent via pager or SMS.

I'm not sure what to believe. A patent lawyer's opinion on HN would help perhaps?

<comment><USER2> My point, to summarise:

authentication != authorisation.

From which it follows:

Two-factor authentication != two-factor authorisation.

 _The patent does not cover authentication_ , on my reading.

</comment></comment></comment></comment></comment></comment><comment><USER6> His twitter account could be of some interest. He seems to primarily considered with the whole MegaUpload thing and is using this patent as evidence of his contributions to tech. (see <https://twitter.com/KimDotcom/status/337358180914982912>)

His most recent tweet is him selling this patent: <https://twitter.com/KimDotcom/status/337410056859566080>

<comment><USER2> The problem is that he's spruiking it as two-factor _authentication_ , but the patent itself talks about _authorisation_.

In the body of the patent itself, authentication is mentioned in passing only:

* That there's an authentication server which knows a password;

* That mobile phones are one channel mentioned in the patent and DES is used in the mobile phone system (at the time) for, among other things, authentication.

* That an authentication server could blacklist a lost identity card.

And that's it.

He's grandstanding.

(IANAL, TINLA)

<comment><USER7> He might have just bought it from someone. A modern L'Hopital, if you will.

(see: [http://en.wikipedia.org/wiki/Johann_Bernoulli#L.27H.C3.B4pit...](http://en.wikipedia.org/wiki/Johann_Bernoulli#L.27H.C3.B4pital_controversy))

</comment></comment></comment><comment><USER8> He has effectively announced that he won't enforce the patent and he has apparently not attempted to do so in all these years. The patent means nothing (except that it could serve as prior art to defeat a subsequent patent claim).

</comment><comment><USER9> Hmm I am pretty sure that he can sell this patent to a patent troll , which could in effect sue these companies.

</comment><comment><USER10> thanksfully there's some prior art to 1997, but still. patent system is such a pile of crap :/

</comment><comment><USER11> Trigger cease and desist letters to banks, and online record/movie stores in 5...4...3...2..1 (payback is a bitch)

<comment><USER12> None of this would benefit anyone other than Mr Dotcom.

(Payback to who for what exactly?)

<comment><USER13> The implication is that the tactics used against Kim Dotcom were done so at the behest of Hollywood pressuring the US government to 'do something,' who then in turn leaned on the NZ government to 'do something.' That's the Hollywood part of the comment.

I guess the 'banks' part is because Kim's assets were frozen, but that's not the fault of the banks. There's no need for revenge against them.

<comment><USER11> Kind of.. I actually spouted it off as a joke, but several people didn't like it apparently, or didn't see it as so.

The Hollywood part is spot on... the bank part was me confusing some bits of the actions against wikileaks with kimdotcom/megaupload.

<comment><USER12> Sorry. I think was Poe's Law[1] in action again.

1\. <http://en.wikipedia.org/wiki/Poes_law></comment></comment></comment></comment></comment>


Yelp Launches Daily Deal - Problem for Groupon? - <AUTHOR> http://www.yelp.com/deals/la-ciudad-chicago

<comment><USER2> OpenTable also has their equivalent offering: <http://spotlight.opentable.com/deal/los-angeles/losangeles25>

More competition drives the group-buying model to a more sustainable proposition for local businesses.

</comment><comment><AUTHOR> Yelp already is one of the 45th most trafficked website in the US (Alexa). With millions of users already on the site with the intent of finding a restaurant, bar, mechanic, spa etc., adding a daily deal and leveraging their traffic makes sense. How much should groupon worry?</comment>