Incorporate your startup only when you're forced to - <AUTHOR> http://joel.is/post/32520533327/incorporate-your-startup-only-when-youre-forced-to <comment><USER4> Counterpoint: <http://news.ycombinator.com/item?id=1725008>

_Read that whole thread carefully_ before you decide whether or not you're willing to spend ~$150, the equivalent of a month's Starbucks habit, to do business as an LLC with contract liability protection. That thread is a perfectly ordinary situation that business founders routinely find themselves in.

If you're not going to be entering into contracts and you're not going to be conducting business transactions as a vendor to other businesses and you're not going to be employing people, I don't have a strong opinion about whether you incorporate. On the other hand, those are pretty important things for a business to do.

To that, I will only add that the meme that incorporation harms your chances of being funded is, in a word, horseshit. If your corp structure is simple, as with a Delaware or home state LLC, and your ownership structure is simple, then the cost of converting it to a C Corp is a small constant factor added to the cost of incorporating as a C Corp to begin with. If your structure _isn't_ simple, you clearly didn't have a choice between incorporating or not. There are corporate structures that make it very annoying to get back to the "clean slate" investors want you to be at, and my gut is that this is the concern animating things like "don't incorporate if you don't have to". If your company is amazing, people will invest even if some crazy guy in the woods claims to own 90% of it; if it's not amazing, an LLC isn't going to push you off the bubble.

Corollary: if you don't know the difference between a C Corp and an LLC, then your default position should be "get an LLC ASAP", because you don't know enough to be making this decision based on some dude's blog post.

 _Late edit: I went and looked for LLC- >C conversion costs and found a Quora post from a startup lawyer suggesting ~$1000, and, as I expected, that the costs mostly involve working around the need for unanimous consent from all the members of the LLC, which in small new LLCs where all the members are still active, unanimous consent isn't a big deal._

<comment><USER5> "Read that whole thread carefully before you decide whether or not you're willing to spend ~$150, the equivalent of a month's Starbucks habit, to do business as an LLC with contract liability protection."

YMMV on the $150. In California that covers the upfront costs for setting up an LLC, but be aware that one year later (and each year after that until you dissolve the LLC) you will receive a tax bill from the state of $800, regardless of whether or not your LLC made a penny.

<comment><USER6> $150 or $1000 might be enough to swing the decision about where to incorporate for some instances but for most that is a rounding error. And anyway, all expenses that you are going to have should be part of your businessplan when you're at the go/no go stage. If $800 scares you then you're not doing business.

<comment><USER5> I don't disagree that the difference between $150 and $1000 isn't a huge deal for any serious venture, but the topic of this conversation covers a wide range of possible levels of seriousness and some people suggest always incorporating even for goofing-around projects but those people never go into the fact that incorporating in some states will cost you some serious dough in minimum yearly taxes.

</comment></comment></comment></comment><comment><USER6> That's advice that is applicable only to a limited subset of the startup class, the ones without a product and without cashflow.

If you're going to do b2b you'll never be forced, it's just that nobody will be doing business with you and your circle of friends.

VC's and angels don't like it when you incorporate early because that means that you've probably done a whole bunch of homework already and thus are a tougher negotiator.

Not incorporating when running a company is a great way to get into a lot of trouble. Fixing a bad incorporation at a later state is costly (but it can be done).

As soon as you start dealing with money and responsibilities to outsiders you should incorporate.

<comment><USER7> Just FYI us VCs aren't sitting around just hoping some rube will come by who is not incorporated so we know we can take advantage of him in a negotiation.

Our model isn't leveraged around finding naive people to take advantage of. No price is cheap enough for a bad team or deal...

<comment><USER6> Not all VCs are equal, and I apologise for lumping in the good with the bad. But there are plenty of examples of venture capitalists (and angels too) taking advantage of inexperienced entrepreneurs. And in that case it helps a lot if you get to write the contract.

</comment></comment></comment><comment><USER8> This is just flatly bad advice. Entity selection and the decisions that come with it should be made very early in the process or it can have very negative unforeseen consequences down the road.

Education and clarity is important in any new business venture, especially one that involves multiple parties. If nothing else, a good buy-sell agreement is crucial in avoiding misunderstanding and back blood if one party wants out.

Liability protection is also hugely important. What startup doesn't need a bank account? Separation of entity an personal assets and liability is a big deal and should be meticulously maintained and documented from inception. This discipline is hard to pick up late in the game, and there's no reason for it.

Also, if your attorney is recommending a C corp as your best choice of entity, you either have a very unusual situation or a bad attorney.

</comment><comment><USER9> Also, do not take your legal advice from a random blog.

Talk to a lawyer. Many have open office hours or offer first hour for free. There is nothing to lose and everything to gain.

<comment><USER4> This is usually good advice but it can be tricky with incorporation. Company founders meeting a lawyer for the first time over incorporation issues often find themselves convinced to pay thousands of dollars to establish a C Corporation structure. Most new startups _do not_ want C Corps; at least, not until they have investors and thus multiple share classes.

You can get an LLC from Delaware almost as easily as taking a ticket at a butcher shop. It's a commodity product. That cheap-o Delaware LLC isn't a miracle cure for investment or employee equity or vesting issues, but it solves the core problem that incorporation is meant to solve: making it absolutely clear to your external business partners that they are dealing with a _company_ , and not with someone and their home mortgage.

<comment><USER10> _Company founders meeting a lawyer for the first time over incorporation issues often find themselves convinced to pay thousands of dollars to establish a C Corporation structure. Most new startups do not want C Corps; at least, not until they have investors and thus multiple share classes._

If that is true, then surely the problem there isn't that the founders took legal advice, it's that they took advice from a bad lawyer?

I'm not an expert on US matters but familiar with the UK, and over here if you're getting someone to set up a new legal entity for your business, it will probably be an accountant rather than a lawyer. An accountant might therefore be better placed to advise on options for business structure in the early days, or you could join one of the specialist small business support organisations (FSB, PCG, etc.) and start by reading their standard guidance before you take formal advice from whoever else might be relevant.

<comment><USER4> I feel like our accountant also had more input on our company structure than our lawyer.

I don't think it's a "good lawyer"/"bad lawyer" issue. I think that lawyers are paid to cover all the bases, and most of those bases don't need covering in the first 9 months of a tech company's life.

<comment><USER10> _I think that lawyers are paid to cover all the bases, and most of those bases don't need covering in the first 9 months of a tech company's life._

Interesting perspective. To me, a major benefit of consulting a lawyer is often that they _can_ give me an informed opinion of when I need to care about which legal matters. Put another way, I'd say a lawyer who is covering all the bases even when some of them don't need covering now and missing them out won't create serious problems for later probably is a bad lawyer.

<comment><USER9> My experience with several lawyers matches tptacek's, I've never seen any other kind of lawyer.

I think it's something about their professional ethics as they see it - <USER2> everything possible to protect the client, and only pull back when the client makes it clear that business needs overrides legal concerns. Lots of people don't realize that, and that's how some companies, or some part of companies, end up being effectively ran by lawyers.

<comment><USER10> Interesting. Maybe it's a cultural difference?

The first time I consulted a law firm properly about setting up contracts for a new company, almost the first thing they said was that they could probably charge me tens of thousands to cover everything they could imagine, but in practice they recommended that I put together a basic contract that covered the essentials and leave the rest until there was enough value in the business and enough danger of losing it to take further steps. I don't think any lawyers I've spoken to since have contradicted that advice, either.

On the other hand, I'm in the UK, and our legal system has rather different foundations in some respects, particularly when it comes to being hostile toward fishing expeditions. If the real US business climate is half as litigious as it's reputed to be on this side of the pond, maybe you _need_ lawyers who will default to covering everything from day one.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> IANAL: But from what I've heard and figured out, one should at least do an LLC to avoid personal liability, otherwise if some nut decides to sue you, you can even lose your personal assets.

<comment><USER12> And you can be sued by a nut on day one, for any reason. I've read that if an LLC has only one member, judges are free to ignore the "limited liability" part. It might be necessary to incorporate.

<comment><USER4> I don't think this is true, at least in the broad sense you've suggested here. There are lawyers on HN that will correct me when I say this:

There _are_ , in many states, special-case rules for "single member" LLCs. There are also special rules in places for single-shareholder corporations. Those special-case rules largely impact the manner in which equity in the company is handled when resolving debts.

Meanwhile: there is a very widespread misunderstanding of how liability protection in corporations of all sorts work. The protection you get from a Corp/LLC is from _contract liability_ : third parties cannot attach themselves to the assets of company owners to settle debts. But liability shields afford no protection against torts, including contracts entered in bad faith. If you own a company and the company enters into fraudulent contracts, you can still lose your house in the ensuing legal drama.

<comment><USER13> Great response.

I'd add that it's worth Googling for "piercing corporate veil LLC", as well.

<comment><USER4> This search will also quickly teach you not to use your company's bank account to buy your groceries or pay your rent; mixing finances is a no-no.

The general rule of thumb seems to be: courts want to be sure that the corporation you're operating is bona fide; that is, they want to know that you're not simply using a corporate structure to conduct shady personal business.

This doesn't have much of anything to do with whether you're a SMLLC or not (except to the extent that having multiple members makes it harder to use the LLC as a personal piggy bank).

</comment></comment></comment></comment></comment><comment><USER14> While your at it, don't buy insurance, wear a seatbelt, or back up your files. Most likely nothing bad will happen if you consider the odds.

</comment><comment><USER15> This is Lean Startup taken to an impractical extreme. I know, I know, those two hours you spend on LegalZoom filing as a Delaware C are hours you're not spending outside the building talking to customers blah blah blah, but not everything that doesn't involve "learning" is waste.

</comment><comment><USER16> That's a bad piece of advice if you have partners. It's the fastest way of getting screwed by an ill-intentioned one, or getting your IP stolen, or worse (At least in a few countries I know the laws - not entirely sure about the US)

<comment><USER4> If you have partners, get vesting taken care of immediately. Don't do business with partners that won't agree to vest.

You can set up a vesting (or equivalent buyback) structure with an LLC, but it might not be "LegalZoom-easy".

The longer you wait on vesting, the harder it is to get it set up. Don't wait.

</comment></comment><comment><USER17> Just as important, perhaps even a more noteworthy first step for up & coming startups is to establish a separate bank account!

It's true, no need to rush into incorporation. But there should be an urgency to setup a separate bank account (any kind of account, a savings would do) so you can make your bookkeeping simple. The money you spend on your startup as a sole proprietor can be tax deductable. And besides that, its a good practice to show potential investors or lenders exactly how much you have invested yourself. Having one account where you can pull that data makes these kinds of bookkeeping/accounting tasks incredibly easy.

For credit card transactions, try to get a new card just for the startup - <USER3> even use an existing card but make sure to dedicate that card exlusively to the startup so months and god forbid, years later, you're not having to go line-by-line through stacks of statements picking & deciphering what was business and what was personal (not fun).

</comment><comment><USER18> You need to incorporate if you want to release on the app store under a name that's not that of one of your co-founders. So that's about half of the companies.

</comment><comment><USER19> An LLC also helps if you're planning on releasing an iOS app under your startup's name, not your personal name.

</comment><comment><USER20> Joel, good points but I would advise going with at least an LLC/LLP when more than one founder. Makes things more official and easier to do business (payment gateways, etc). Also, it takes around $100 and 5 minutes on an online form to set it up. Easy!

<comment><USER21> Incorporating as an LLC makes it harder and more expensive to do properly later as a C-corp. I believe it can add >10k to the total costs vs. doing a C-corp from the start.

<comment><USER4> Living an extra mile away from your lawyer also makes it harder and more expensive to do business, because you'll pay extra for gasoline.

The question is, "how much more expensive", and the answer W.R.T. plain- vanilla LLCs where the transition to C-Corporation is uncontested by all the members and all the members are still active is, "not very".

I'm sure you can easily rack up more than $10k in conversion costs if you let things get complicated, but I'd like a cost breakdown or even just a citation to a source for the idea that LLCs add $10k to C-Corp costs in the common case.

</comment></comment></comment><comment><USER22> I've even employed full time staff as a sole trader in Australia and never found it a hindrance in getting work. My accountant always told me to avoid incoporation until I was consistently _netting_ over $100k because having a company is such a headache. So I'd tend to agree with the OP but I'd also say get a few professional opinions and especially make sure they're relevant to your country of operation!

<comment><USER4> I have no idea why Australia would be this warped, but that is _ludicrous_ advice in the US. If you're _grossing_ over $100k, your liability exposure has doubtless scaled with your receivables. Businesses routinely experience abrupt downturns. For the sake of less than 0.1% of revenues, you'd have that exposure attach to your house? Insane.

</comment></comment><comment><USER23> If you want to offer paying plans for your startup, it's better to incorporate and open a separate bank account for the business. The same goes for business expenses, it's better to incorporate to open a bank account and have all those expenses on the company bank account vs. your own personal checking account, for tax purposes.

</comment><comment><USER24> Is there any book or reliable source explaining all the process of incorporating? Pros and cons, vesting, stockoptions etc...

</comment><comment><USER25> Hello, unlimited liability, goodbye house, car, clothes on your back.

</comment><comment><USER26> While you're at it, don't hire a lawyer after you've been arrested until just before your sentencing hearing. That way, you can save a whole bunch of money. After all, the overwhelming majority of people plead guilty anyway, so what's the point in having a lawyer until the stage that really matters?</comment>


On the modern web, ISPs are one of your threats (2015) - <AUTHOR> https://utcc.utoronto.ca/~cks/space/blog/web/ISPsAreThreats <comment><USER2> I look forward to a HTTPS-only world some day to prevent MITM issues like the original article, but we have a ways to go.

I run a service that involves adding Javascript to a site (like you would with Google Analytics). At one point we were serving 100% of scripts / APIs via SSL, but ended up moving to matching the origin host's protocol because customers were complaining of older version of IE that actually block HTTPS requests that originate from HTTP pages.

So now we serve API calls matching the protocol of the domain the script is loaded on.

It's been on our mind to go back and figure out exactly which browsers this affects, implement browser detection logic, and then serve SSL APIs for everyone else. Although it's a bit tricky when supporting customers who have users (still) accessing them with obscure / old browsers.

More broadly, Let's Encrypt has been a great initiative. AWS WAF is also great for generating certs easily (although only inside AWS unfortunately with specific AWS services). Initiatives encouraging people using legacy browsers upgrade to upgrade will also help companies like ours (and others) trying to support 100+ browser versions on various OS's.

For us, China has also been a slight issue. The firewall tends to add extra (unpredictable) latency for SSL requests, even when engaging with firms for $xx,000 specializing in overcoming China networking related obstacles.

<comment><USER3> Can you explain more? Does China capture ssl traffic or something similar?

<comment><USER4> In Beijing currently. I set up a SOCKS proxy through an EC2 instance and it seems to be throttled after 10 minutes of use -- to the point that Edge on my smartphone is faster.

Unrelatedly: I was very surprised that the GFW lets through Amazon web traffic.

<comment><USER5> how much bandwidth were you using?

<comment><USER4> Not much? Trying to post photos to Facebook/Flickr.

</comment></comment></comment></comment></comment><comment><USER6> Can anyone think of other industries where this is the case? Imagine for a moment if grocery stores injected small amounts of lead into the food, or if gas stations injected water into the fuel (for bulking).

I know this kind of thing happens in China (think about toxic products added to baby milk, for example, to cheat protein tests). But that's at the "website" level, not the "ISP" level. I suppose healthcare (at least in the US) is the most likely industry to see attacker behavior.

<comment><AUTHOR> It's interesting to think of it this way. Clearly, the attackers (being ISPs in this case) don't see it this way or don't want to see this sort of MITM this way. Following one of the links in the article [1], you get some great quotes:

> Comcast injects ads into unencrypted traffic, because "it's a courtesy, and > it helps address some concerns that people might not be absolutely sure > they're on a hotspot from Comcast".

So maybe someone out there actually feels this way when they find content has been directly injected in their unencrypted browsing session. I sure don't.

[1] [https://konklone.com/post/were-deprecating-http-and-its- goin...](https://konklone.com/post/were-deprecating-http-and-its-going-to-be- okay)

<comment><USER7> I'd expect the PR/marketing people to laugh at "the plebs" as they make up press releases like that :)

Maybe I'm just cynical, but I can't imagine anyone believing that ads are a "courtesy".

</comment></comment></comment><comment><USER8> With the creation of Let's Encrypt, there is really no longer any justifiable reason to bitch about the costs of a certificate. We all know the threat model now and if you are going to be interacting with the general public you should absolutely be held to minimum standards to ensure that nobody is tampering or sniffing your traffic along the way.

If you are just doing DIY stuff then you probably don't need the advanced features that are getting moved to HTTPS-only. If you do need those features, you are advanced enough to take the five minutes and generate your own CA certificate and install it onto your machines. Boom, now you can sign your own HTTPS cert. Problem solved and you don't need to destroy the internet for everyone else nor participate in even the minimum of public interaction. DIY to your heart's content.

<comment><USER9> _If you are just doing DIY stuff then you probably don 't need the advanced features that are getting moved to HTTPS-only._

Like getusermedia, or service workers, or webrtc?

Speak. For. Your. Self.

Precisely personal projects use these technologies. That's why they're personal projects; because I'm trying out new stuff.

Testing this from a phone emulator the other day i had to resort to inordinate hacks to access a web push test page on the host. How to [https://10.0.2.2](https://10.0.2.2)? It's _not_ straightforward.

Im happy for it, it's worth it. but don't discount the effort it now takes.

Ps: _" bitch about the costs of a certificate."_ \--- I prefer to call it a valid complaint about an extortion racket, but I guess opinions differ.

<comment><USER10> _> ... personal projects ... How to [https://10.0.2.2](https://10.0.2.2)? It's not straightforward._

Just issue a self-signed certificate. How is this not straight forward? All you need is a single, well-known OpenSSL command:

      openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout test.key -out test.crt -subj /CN=10.0.2.2 -days 3650

<comment><USER11> "Well known" is a bit of a stretch.

Most dev don't know nothing about setuping SSL. Nothing.

I'm not talking about new commers, students, interns, etc. No, no, no. I'ml talking about what's constitute the majority of the work force of IT.

You are living in a bubble, ignoring most sites out there are not made by experts, but by people that knows a bit of PHP, HTML and CSS.

As a Python dev on Linux that have to live in docker + lastJS fantasy environments, I understand why you think that, it's so tempting to ignore the reality when we are consedering that playing with new toys on HN FP is a way to relax.

Except once a month I train professionals for as a side activity. People that have 20 years on as dev in multinationals, research centers, administrations, etc. And there is no way the command you list can be remotely considered "well known" by them.

At the begining of the month, I just gave a Git training. 2 guys and a girl, working for years for a huge bank on the official website. They were still using CVS before arriving. I said CVS, not mercurial, bazaar, not even SVN. CVS.

2 of them never used the terminal of course (tortoise anyone ?), one never ever worked on a non windows machine in her life.

Let that sink in.

<comment><USER10> _> "Well known" is a bit of a stretch._

With "well known" I meant that you can find it quickly on StackOverflow:

[http://stackoverflow.com/q/10175812](http://stackoverflow.com/q/10175812)

And yes, I do think that researching and using this command is not too much to ask for - at least for people calling themselves "developers". Also, I'm pretty sure that the concepts behind HTTP+TLS are easier to learn than version control, or learning some new library or API you need for your next project.

With "straight forward" I meant that it is a single command that works on any OS (given OpenSSL is installed), and not some complicated multi-step process involving third-party services etc.

</comment></comment></comment></comment></comment><comment><USER12> Communicating over the Internet is like relaying letters with the destination and return address at the top. Anyone in the chain can choose to look at the content, tamper with it, or refuse to pass it on.

A giant web that relies on trust. Is there a system where trust is not necessary, but can still get things done? Although I can't think of a use-case for this.

<comment><USER13>
      Is there a system where trust is not necessary, but can still get things done?

Yes. Check out cjdns ([https://en.wikipedia.org/wiki/Cjdns](https://en.wikipedia.org/wiki/Cjdns)) and Hyperboria ([https://hyperboria.net](https://hyperboria.net))

An entirely encrypted network of relays where ip addresses themselves are encrypted so no one can snoop traffic.

<comment><USER12> It seems like users are not anonymous, but this lead me to the concepts of overlay networks[1], darknet[2], and mesh networks[3]. Thanks for that.

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

[2] [https://en.wikipedia.org/wiki/Darknet](https://en.wikipedia.org/wiki/Darknet)

[3] [https://en.wikipedia.org/wiki/Mesh_networking](https://en.wikipedia.org/wiki/Mesh_networking)

</comment></comment></comment><comment><USER14> I was working for many years for major ISP in nordics and they implemented wiretaps when requested by the officials.

<comment><USER15> Are any of the Nordic countries better than the others when it comes to this?

</comment></comment><comment><USER16> Will get worse next year in the US when ISPs can do as they please.

<comment><AUTHOR> What new rule(s) are coming into effect in 2017?

<comment><USER17> Donald Trump has stated his opposition to net neutrality [1], although it is unclear to what extent he intends to pursue this issue. Trump's picks for his FCC transition team are both supportive of permitting differential pricing models [2].

[1] [https://twitter.com/realdonaldtrump/status/53260835850816716...](https://twitter.com/realdonaldtrump/status/532608358508167168)

[2] [https://www.aei.org/wp-content/uploads/2012/10/-broadband- co...](https://www.aei.org/wp-content/uploads/2012/10/-broadband-competition- in-the-internet-ecosystem_164734199280.pdf)

</comment></comment></comment><comment><USER18> If TLS/HTTPS was easy to use from userspace C, HTTP could probably phase out very soon. Node, Go, Python, and other web tech actually makes this easier, because I don't have to call OpenSSL myself. So, even though I really love C, it's not in the best place for the modern network.

<comment><USER19> ARM MbedTLS makes using TLS from C easy. Like, really easy. Really, _really_ easy.

As an aside, the last CVE (publicly known, logged vulnerability) for MbedTLS that affected server-side code was from January _2015_.

</comment></comment><comment><USER20> I've just a few days ago started using a seedbox/vps service to avoid any possible incursions on comcast/xfinity's 6-strikes policy.

</comment><comment><USER21> Good short writeup.</comment>


Reddit partial outage - <AUTHOR> https://reddit.statuspage.io/ <comment><USER2> Reddit's been running pretty awful in general lately.

Ever since the UI update the website loses track of if I'm logged in from page to page. Some pages load in the old format, some in the new. It's completely ridiculous.

<comment><USER3> If you are not logged in, it defaults to the big blocky, whitespace filled, media heavy new UI. There is no longer a sense of a compact text website. If you are logged in, you can get the old look.

My MacBookPro (2010) now crashes frequently when using the new UI on subreddits that have a good percentage of videos - not sure why. Otherwise, it has been a reliable machine even for streaming.

</comment></comment><comment><USER4> Never realized their "request rate" is very cyclical with night and day. Does that mean mostly US (or north american time zone) users mostly?

</comment><comment><USER5> [https://news.ycombinator.com/](https://news.ycombinator.com/) is still running. Similar design but different people. That site could use some love.

</comment><comment><USER6> Well, time to get some actual work done folks.

Yet here I am on HN.

</comment><comment><USER7> error code: 503. Seems not a CDN issue. Where does Reddit hosted?

</comment><comment><USER8> [https://voat.co/](https://voat.co/) is still running. Similar design but different people. That site could use some love.

Edit: People seem to think that I would endorse the things that are posted on voat. I do not. But I do endorse free speech even if it means that others express things I don't agree with or wouldn't want to hear. Voat does so, too. You can discuss your topics and views on voat. If nice people gain the majority the ugliness will have to stay in the dark corners.

<comment><USER9> ah yes, an alternative whose front page is currently filled with pseudoscience, conspiracy theories, and everyone's favorite past-time, closeted racism

just the different i was looking for!

<comment><USER10> I would say its often open racism on that site. It's a shame the community is so awful, as the site looked promising early on and we need a viable alternative to reddit.

<comment><USER11> steemit

<comment><USER11> Why the downvotes? Steemit is a viable alternative to reddit.</comment></comment></comment></comment></comment>


Hedge Fund Wants to Use Atomic Clocks to Beat High-Speed Traders - <AUTHOR> http://www.bloomberg.com/news/articles/2016-07-07/jim-simons-has-a-killer-flash-boy-app-and-you-can-t-have-it <comment><USER3> HFT / Fund guy here.

This is marketing spiel.

If you just want to trade on a bunch of exchanges so no information flows between them, you can easily (TM) write a program that either a) lines up the orders at each exchange to execute at a specific time or b) delays the orders from a central server by the line delay.

So say NYC is 13ms from Chicago. You want to hit both at once. As long as you're not 13 ms late, nobody can see your order in one place and react at the other. You don't need an atomic clock for that, NTP will do just fine.

They're doing this because they have a reputation as a technologically advanced firm, and they know it will impress institutional investors, most of whom are still living in a time warp where spreadsheets are an advanced means of getting an edge over the market. They meet these guys, who are basically from another dimension of investing, and they suddenly need an explanation to their bosses of why RT can generate the most impressive returns of any strategy ever. The answer is "we have loads of PhD math geniuses building the strategies and amazing execution technology".

<comment><USER4> They don't need to market; their returns speak for themselves.

As obvious as the idea seems in hindsight, no one on the sell-side has a product like this right now. The closest thing is the Thor router, which is a crude attempt to accomplish the same feat because it doesn't address variation in latency. An algorithmic execution product like this would effectively end latency arbitrage, which is a source of RenTech's livelihood. To hedge against that, they have secured the IP rights to the technology.

<comment><USER5> "As obvious as the idea seems in hindsight" And the "obvious" should not be patentable. And of note, this technique has been done before in the past in different market and theirs is only an adaptation to the current equity markets.

<comment><USER4> I'm conflicted on whether or not a patent should have been granted. I've worked in equity execution for about a decade and do feel that this is novel.

On the other hand, this is a clear case of using the patent system to secure and persist an inefficiency in the market. It's hard to measure the cost of such an inefficiency to institutional investors (mutual funds, pensions, endowments, etc) but I suspect that it is well into the billions annually.

</comment></comment></comment></comment><comment><USER6> _Its invention, developed by the firm's co-chief executive officers, Robert Mercer and Peter Brown, first sends an order to a central server, which breaks it up into multiple smaller orders. Those are then routed to venues that offer the best prices and most liquidity, much the same as brokers do now.

But before that happens, the smaller orders are sent to servers located as close to the exchanges as possible, along with instructions on the precise times they should be executed. The co-located servers sync their transactions so HFT firms won't have enough time to identify an order on one exchange and then race to another to trade against it.

A crucial part of the system is the optical, atomic or GPS clocks that will be used synchronize those orders. Renaissance says in its application that GPS clocks are accurate to within nanoseconds and any time differences between them are "too small to be perceived" by HFT firms._

Maybe I'm missing something but sending orders ahead and releasing at a specific time is obvious is it not? If you add a really accurate clock suddenly it's patentable?

<comment><USER7> I havent read the patent but I can say this is an exceedingly common (I'd probably say standard) strategy. I can only assume the atomic clock bit is what's novel.

<comment><USER8> Using ntp or whatever the new variant is is also standard, which as I recall can hit sub-microsecond consistency on a wide area network with good hardware. So yeah, not new.

<comment><USER9> PTP - Precision Time Protocol. [https://en.wikipedia.org/wiki/Precision_Time_Protocol](https://en.wikipedia.org/wiki/Precision_Time_Protocol). It requires hardware support, and a stable isolator inside of the machines.

<comment><USER10> Little know fact, you can use the GPS constellation to get atomic level precision time nearly anywhere on earth. Using an Atomic clock is purely to show off to investors/a red herring.

<comment><USER11> I would've thought that GPS is too unreliable due to the deliberate inaccuracy? Only the US military have the clean signal.

Particularly if you're using it to sync between two different time zones that could well be looking at different satellites.

However, I don't know how much inaccuracy is introduced and whether it would have too much of an effect for the purposes of Google, et al.

<comment><USER12> That's been removed. But, just for fun.

Speed of light is 299,792,458 m/s. So if GPS is off by more than 1/10,000,000 you can't get accurate within 30 meters. Having used a GPS they are better than that, thus the clock must also be at least that accurate. Of note, stationary stations can get into centimeter precision which imply's vastly higher accuracy.

<comment><USER13> Fun fact. GPS is so precise that they can detect the fact from GR that gravity makes clocks run slower closer to the ground.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> This reminds me of how Google uses atomic clock and GPS for Spanner [1]

Google: ""We can commit data at two different locations — say the West Coast [of the United States] and Europe — and still have some agreed upon ordering between them," Fikes says, "So, if the West Coast write happens first and then the one in Europe happens, the whole system knows that — and there's no possibility of them being viewed in a different order.""

Renaissance Technology: "Replete with schematic drawings, the filing describes a novel way for "executing synchronized trades in multiple exchanges." The invention consists of not only sophisticated algorithms and a host of computer servers, but atomic clocks -- precisely calibrated to vibrations of irradiated cesium atoms -- to sync orders to within a few billionths of a second."

To translate what Renaissance is doing in technical parallel, they are trying to do a synchronous commit at multiple locations/exchanges at the same time. Submitting a trade to an exchange can be viewed similarly to committing data to a data center. By using atomic clock, synchronize these writes across multiple locations in effect eliminating HFT from jumping in.

If anyone is looking into prior art on this, Spanner is probably the closest I can think of. (I am not a patent attorney and don't want to turn this into a patent debate).

[1] [http://www.theverge.com/2012/11/26/3692392/google-spanner- at...](http://www.theverge.com/2012/11/26/3692392/google-spanner-atomic- clocks-GPS)

<comment><USER15> Generally speaking, as I'm not a patent lawyer either, the same technique applied to two different problem domains can generate two valid patents. The historical example is ship and automobile windscreen wiper.

<comment><USER16> But they're both in the software domain.

Not to argue with you, but I don't see the problem any different from trying to synchronize two commits in a database. The same technique is not limited to Spanner or algorithmic trading, but other fields as well. It's not so much different from DHT or other algorithms, which have applications in multiple domains.

<comment><USER17> Isn't _software domain_ too broad ?

You could argue ships and automobiles are in the same transportation-domain ?

<comment><USER18> In a sane world wiping liquids off of smooth, hard surfaces would be the same domain whether the material under whatever the wiper is attached to is in the liquid, solid or gaseous phase.

</comment></comment></comment></comment></comment><comment><USER19> A few weird things stand out to me: (1) Renaissance is super secretive. If they want to use this strategy to make money, a patent reveals to competitors what they're doing and creates more issues than it seems to resolve. (2) Renaissance is an HFT firm. Why are they interested in thwarting HFT? (3) This really isn't that fancy an idea. It's fairly general: send orders ahead to co- located servers to be executed at specific times.

I wonder if what they're really trying to do is prevent banks or others from creating anti-HFT infrastructure, and then providing it as a service to market participants that want to place large orders. The patent would perhaps provide some protection in that case.

<comment><USER20> Renaissance is not that type of hft firm. Renaissance uses algorithms to predict price movements before they happen. The type of hft this system is designed to prevent is front-running. Which is me seeing your order on exchange A and buying ahead of you on exchange B before your order arrives.

Those types of hft firms are surely eating into Renaissance's profits in a big way.

<comment><USER21> It's worth nothing that eating into Renaissance's profits in this way is good for everyone else because it means that accurate prices are reaching the market faster.

<comment><USER20> You could say the same thing about insider trading. So, the argument that accurate prices reach the market faster is not, in and of itself, an argument that something is good.

<comment><USER22> Why? He can argue that insider trading is good. Which is actually a pretty easy argument to make.

(And places like Germany only recently tightened laws against it.)

<comment><USER20> What is your argument that insider trading is good?

<comment><USER7> I don't know how I feel about it, but several relatively common arguments in favor of it are:

1) speeds up price discovery 2) makes complying with regulation cheaper 3) it is nearly impossible to enforce currently

Some op-ed pieces arguing for it.

[http://www.marketwatch.com/story/why-insider-trading- should-...](http://www.marketwatch.com/story/why-insider-trading-should-be- legal-2011-05-17)

[http://www.forbes.com/sites/jeffreydorfman/2015/03/22/a-mode...](http://www.forbes.com/sites/jeffreydorfman/2015/03/22/a-modern- insider-trading-law-would-recognize-the-victims-of-current-law/#6ab092376d0c)

[https://www.washingtonpost.com/news/wonk/wp/2013/07/26/insid...](https://www.washingtonpost.com/news/wonk/wp/2013/07/26/insider- trading-makes-us-richer-better-informed-and-could-prevent-corporate-scandals- legalize-it/)

<comment><USER22> Yes, that's along the lines I would be arguing.

I am on the fence myself, not having thought about the matter too much. Instinctively, I'd say insider trading should be handled as a breach of contract (ie if I trade on something that I signed an NDA for), not as a criminal matter.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> > its flagship Medallion Fund generate[d] average annual returns of 71.8 > percent, before fees, from 1994 through mid-2014.

Jeezus. That is about the same OOM as Moore's Law.

<comment><USER24> thanks for noticing/commenting on that return rate. humongous. i'm surprised no one else has mentioned it in the comments.

for comparison, according to one source, over 50 years, Berkshire Hathaway grew at about 21 - 22%

[http://fortune.com/2015/02/28/berkshire- after-50-years/](http://fortune.com/2015/02/28/berkshire-after-50-years/)

<comment><USER25> Renaissance also reportedly charges a 5% / 44% fee instead of the standard 2% / 20%.

Quick math (which is wrong since they've changed their fee structure) -- If you had invested $1M with Renaissance in 1994, using a 5/44, you'd end up with something like $411M in 2014. Ren. would've made about $430M.

</comment></comment></comment><comment><USER26> If anyone hasn't already read Chris Stucchio's explanation of market- making/HFT, this is well worth a read.

[https://www.chrisstucchio.com/blog/2012/hft_apology.html](https://www.chrisstucchio.com/blog/2012/hft_apology.html)

[https://www.chrisstucchio.com/blog/2012/hft_apology2.html](https://www.chrisstucchio.com/blog/2012/hft_apology2.html)

[https://www.chrisstucchio.com/blog/2014/how_to_not_get_rippe...](https://www.chrisstucchio.com/blog/2014/how_to_not_get_ripped_off_by_hft.html)

A basic summary is that market-makers add liquidity to the market and profit from their bid-ask spread, increasing the execution-speed and depth of the market. Many of the 'predatory' pricing strategies attributed to them by Lewis and others appear to be impossible when you try and write down the pseudo-code + order book that corresponds to the allegation.

</comment><comment><USER27> RenTec's Medallion Fund has obviously done amazingly well - almost to the point where one wonders how it is even remotely possible. But their other funds have had more average performance. Maybe this move isn't about Medallion at all - maybe it about getting to better execution for their other funds in order to improve returns.

</comment><comment><USER28> So, in theory, you get perfectly timed execution.

This assumes you're willing to trust their software and hardware.

I suspect they're right that this is a far more effective and comprehensive approach than IEX.

I think IEX is going to nail them to the wall because their target market understands and trusts a giant ball of cables having a particular length, but can achieve neither when faced with a giant ball of computer science.

Other than the first sentence, this comment was about potential customer response; I don't have an educated opinion about how trustworthy and/or effective any given exchange software is.

<comment><USER29> They don't care about "target markets" or what anyone else thinks. This technology is to protect their own trades.

The goal is to be able to execute buys across multiple exchanges (because the orders are so large) without other high frequency firms being able to see a trade on one exchange, then buy and resell stock to them at a higher price on another exchange.

<comment><USER7> > without other high frequency firms being able to see a trade on one > exchange, then buy and resell stock to them at a higher price on another > exchange

This is a pretty common misconception of how latency arbitrage works. In reality the other HFT are not buying/selling new orders. Instead what they are doing is cancelling or modifying their existing orders so that they don't get hit by incoming orders.

HFT firms can have orders that have been resting for a very long time (days/weeks depending on the exchanges/risk rules) and you will never be able to get an order now in front of an order from last week, no matter how fast you are.

<comment><USER30> _" In reality the other HFT are not buying/selling new orders. Instead what they are doing is cancelling or modifying their existing orders so that they don't get hit by incoming orders."_

Right. One of the strategies is:

\- Put in standing order to sell a small amount of security slightly below market and leave it active.

\- Wait until a buy order triggers it.

\- Buy same security faster than rest of buy order can be processed.

\- Sell security just bought at higher price.

\- Profit.

There are lots of variations on this, but that's the basic idea. It has the profitability of front-running, but is legal.

<comment><USER31> You haven't even described a strategy. Guess what, I made a bunch of money off brexit by buying low and selling high!

Consider the alternative way this "strategy" can go:

\- Put in a standing order to sell a small amount slightly below market.

\- Wait until you receive a "TRADE CONFIRMATION 100@$10" message.

\- Buy a lot of same security very fast and put in a sell order at higher price.

\- No one actually buys it.

\- Loss

This is actually a very risky strategy and very few people do it.

What's actually happening most of the time is a far less risky one:

\- Put in standing order SELL 100@$10, 100@$10.05, 100@$10.10

\- When you receive TRADE CONFIRMAtiON @ $10, cancel other orders and reprice higher (maybe $10.20 and $10.30).

\- Maybe put prices back if you don't get filled in an hour.

The goal here is to offer a good price $10.00 to Joe Sixpack (no delta toxicity), but to offer a worse price to Bill Ackman (high delta toxicity).

<comment><USER32> This strategy could work, but only on exchanges where your own private trade confirmations are faster than the public quote broadcasts, and only if you can use the information to aggressively trade a different, but highly correlated security.

</comment></comment></comment></comment></comment></comment><comment><USER33> So one of the most famous HFTs is now going to offer a way to block the damage done by HFTs?

Despite the hilarity of such a thing, is this a sign that HFT is not nearly as profitable as it once was?

<comment><USER7> Profits in HFT have always been oversold. These days the margins are brutally competitive.

That said I have no idea why they would patent this. I can't see how they can make money from it.

<comment><USER34> If nothing else, it could just be to stop anyone else from patenting something similar then trying to use that patent against them.

</comment></comment></comment><comment><USER35> An exchange could work just as well and provide just as much liquidity if it accepted sealed bids into a queue for one minute, then settled and showed the full queue, while accepting sealed bids for the next minute. HFT would no longer be a thing, and everyone would trade on more equal footing.

("One minute" is a guess. Could be right interval is 20 seconds or ten minutes or whatever... But needs to be slow enough to allow full dissemination and reasonable time for sealed bids.)

<comment><USER36> There are exchanges that operate with similar rules, like POSIT. [http://www.itg.com/product/posit-3/](http://www.itg.com/product/posit-3/) But the slowness is a lot more, executing a few times a day. And you can't change your order AFAIK (and there's large random timespans). There's also complications to avoid revealing how big the buy or sell side are.

As far as your suggestion, that's what I was thinking for a while when I first read about them. I don't think it works. Simply cutting over every minute doesn't help, since there'd be a race near the edge. Like eBay, there's zero point in submitting a bid until the very last (milli|micro|nano)second.

It also doesn't work because other exchanges exist. For instance, suppose the interval is an hour. You submit at 0:01, then by 0:30 the price has moved on other exchanges. Obviously you'll want to change your order, and you still have time. But the price is changing on other marketplaces every nanosecond, so you're going to be changing your bids right up until 0:59.999999. Once you allow changing the order, you're back to racing.

If this was the only exchange type, and they all were synchronized, it might work a bit better. But you'd run into another issue: no one would submit an order until the very last microsecond, to use all available information. There's probably more complications too; I don't really know anything about this stuff.

HFT isn't a bad thing, or at least, I've not heard why it's actually bad. Other than runaway programs screwing things up. Which, I think is actually great. That big flash crash was fucking hilarious. People had sell orders in at 0.01 or market or whatever, and they executed, then they got all upset that things worked like they should!

<comment><USER22> HFT is only a bad thing, because it's removes bright minds from working on other problems; not because it hurts other market participants (which it doesn't---apart from being competition to other market makers).

I've read some interesting proposal that removing the subpenny rule would make speed less of a concern, since it would be possible to undercut on price instead.

See [https://www.chrisstucchio.com/blog/2012/hft_whats_broken.htm...](https://www.chrisstucchio.com/blog/2012/hft_whats_broken.html)

<comment><USER37> a lot more bright minds are working on making you click on ads than hft

<comment><USER22> Two wrongs don't make a right.

</comment></comment></comment></comment></comment><comment><USER38> Atomic clocks? You can beat high-speed traders by only settling transactions, say, every five minutes. Whenever the time is nn:n5:00, look at the roster of orders and match bids with asks. Make it a complete black-box; no information is available about the current orders, only those from the previous five- minute period.

</comment><comment><USER39> Atomic clocks have been in use in capital markets for a while. I was at National Physical Laboratory recently and they were demonstrating how they pipe their atomic clock output to the traders / exchanges.

[http://www.npl.co.uk/commercial-services/products-and- servic...](http://www.npl.co.uk/commercial-services/products-and- services/npltime/)

</comment><comment><USER5> There is nothing patentable in their application. All is obvious, not novel or has prior art.

Case in point: gang switch in the era of voice brokers. Nothing says 'synchronized' execution better which is all this application is.

</comment><comment><USER40> Isn't [https://en.m.wikipedia.org/wiki/Information_asymmetry#Advers...](https://en.m.wikipedia.org/wiki/Information_asymmetry#Adverse_selection) better?

</comment><comment><USER41> So, when can we expect Amazon Elastic Atomic Clock (AWS EAC)? ;-)

<comment><USER42> I talked to a company recently that is working with Amazon to make a PTP feed available in EC2.

</comment></comment><comment><USER43> Does RT still use mrsync? Great program.

</comment><comment><USER44> It seems I am the only one out here that thinks computer based trading should be illegal.

<comment><USER45> HFT systems scalp. They make their millions .001 at a time on front running and volume.

A way to discourage this is by adding a very small fee to each trade. This eats/takes away their profits.

The problem is their are too many folks making money that are connected to the right people in Government.There will always be talk about doing something about it but nothing will ever happen.

The only positive outcome from all this is that it created an arms race in the industry when it comes to the technologies used to facilitate HFT or fight it.

Now whether that technology trickles down to the rest of us through new and interesting things remains to be seen.

<comment><USER46> If you wanted to kill HFT, it's actually pretty easy. Just make the minimum increment incredibly small. In other words, let people trade at $.0000000001 increments. No fees needed.

<comment><USER32> The idea you suggest already exits for stocks in the US with very high prices because the minimum increment doesn't scale with stock price. For example, Google is $700 a share, making the minimum $0.01 price tick equivalent to 0.0014% vs. 0.08% for a $15 stock like Bank of America. HFTs generally don't even bother with stocks like Google because they aren't profitable enough. The rebate and value of making a tick goes down as price increases. This causes spreads to widen and these stocks are generally harder to trade for the buy- side. Not a good situation.

</comment></comment></comment></comment><comment><USER47> When HFT was new, amateur forums that discussed it (like this one) were full of apologists saying that it didn't matter, it somehow didn't really effect the market. Some even claimed it made the market better.

The tone of the conversation, the framing assumptions, seem different now.

<comment><USER48> It still doesn't matter much (it helps with price discovery, as HFT participants provide smaller spreads than traditional market makers, which helps with liquidity, and the volatility they add in case they withdraw from the market doesn't seem problematic, because when they withdraw they do so in order to prevent trading in very non-understood regimes, so they don't trade in chaos, wow, blame them, and/or ban them, but you lose the much greater benefit too).

And yes, it's different, because when HN was new its comments were a lot more precise and fact-based, now it's full of dogmatic luddites.

</comment></comment><comment><USER49> Highly recommend reading Flash Boys [1] and it explains why time is so important and HFT firms. Great book for filling in the picture of what HFT is and I found it pretty entertaining too.

[1] [https://www.amazon.ca/Flash-Boys-Michael- Lewis/dp/0393244660](https://www.amazon.ca/Flash-Boys-Michael- Lewis/dp/0393244660)

<comment><USER21> Highly recommend reading Flash Boys: Not So Fast [1] and it explains how Flash Boys gets it almost entirely wrong.

[1] [https://www.amazon.com/Flash-Boys-Insiders-Perspective- High-...](https://www.amazon.com/Flash-Boys-Insiders-Perspective-High- Frequency-ebook/dp/B00P0QI2M2)

<comment><USER50> _comment was entirely irrelevant - <USER2>

<comment><USER51> Dark Pools isn't by Michael Lewis, it's by Scott Patterson.

<comment><USER50> Huh. You're right. Wonder where that impression came from, then..

<comment><USER51> I'm about 90% sure that Lewis mentions it in his "acknowledgements" in Flash Boys, as a great resource to go more in depth (which is why I ended up reading it). You might have made that association.

<comment><USER50> Maybe. When it came out, everybody was talking about the two in an almost identical light. That probably didn't help, either :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER52> Interesting but remember when high frequency trading was news like 8 years ago?</comment>


Tell HN: 36 interns looking for interesting challenges this summer - <AUTHOR> http://www.innovasjonnorge.no/Internasjonale-markeder/Kontorer-i-utlandet/USA/In-English/Our-Offices/San-Francisco/Norwegian-School-of-Entrepreneurship/

<comment><AUTHOR> Hi HN,

Every year a coallition of norwegian schools organize a program for first hand entrepreneurship experience combined with classes in the same area.

Personally I've been reading HN for a long time and hope to work for the typical YC startup.

Most, if not all expenses are paid for by grants and/or loans.

If this seems interesting I hope you will apply.</comment>


Imagining the Future of the University - <AUTHOR> http://chronicle.com/blogs/profhacker/imagining-the-future-of-the-university/39021

<comment><USER2> "Is this model, born of the industrial age..."

It was born a lot earlier than that. [http://upload.wikimedia.org/wikipedia/commons/5/58/Fray_Luis...](http://upload.wikimedia.org/wikipedia/commons/5/58/Fray_Luis_de_Leon%27s_classroom_- _University_of_Salamanca.jpg)</comment>


The exceedingly rare Unicorn VC - <AUTHOR> http://www.cbinsights.com/blog/trends/billion-dollar-exit-venture-capital

<comment><USER2> xfax - thanks for submitting. I'm one of the co-founders of CB Insights. Would love to chat. My email is in my profile.</comment>


Node-skeleton, a quick start to Microservices - <AUTHOR> https://github.com/tvvignesh/node-skeleton <comment><AUTHOR> Hi. Vignesh here - Author of Node-skeleton You can find the article I wrote on the same here: [https://medium.com/techahoy/building-a-boilerplate-for- micro...](https://medium.com/techahoy/building-a-boilerplate-for- microservices-part-1-166ce00f5ce9)</comment>


Workers of Amazon Divergent - <AUTHOR> http://www.nytimes.com/2013/08/05/business/workers-of-amazon-divergent.html <comment><USER4> I use Amazon warehouses to sell women's apparel, and have in the past used them to sell jewelry and furniture in different companies. They put every other warehouse to shame in terms of speed, accuracy, and price.

Most manufacturers I know of in the U.S. who want to expand internationally will be sending their best sellers to FBA (fulfilled by Amazon) Germany to avoid high international shipping costs, knowing that FBA will manage orders at reasonable prices. In additional, Germany is a great hub to ship to the rest of the E.U. from with FBA.

Here's some more data on Amazon's international breakdown: [http://qph.is.quoracdn.net/main- qimg-d1d0c715782bd290d9afaf7...](http://qph.is.quoracdn.net/main- qimg-d1d0c715782bd290d9afaf776358e043). Japan and the U.K. are the closest markets to Germany's size.

</comment><comment><USER5> The first picture shows Amazon Germany. The working conditions and payment at Amazon are shit, but _lol_ about the Union:

15.05 Leipzig - 600 of 2000 on strike

29.06 Bad Hersfeld - 300 of 3300 on strike

17.06 Leipzig - 250 of 2000 on strike

21.07 Bad Hersfeld - 300 of 3300 on strike

....

Amazon claims that the strikes wont harm them - And I believe them - <USER2> Unions sucks!

PS: Not all German unions suck - I'm an FAU (Free workers union - <USER3> union) member, and founded a Betriebsrat (workers council) in 2001 that had over 95% in election against Ver.di. Ver.di is the Gleichschaltung (see wikipedia)of 5 former better unions.

<comment><USER6> What makes the FAU better than other German unions?

<comment><USER5> We are more radical, we do accept sabotage and direct action as an important part of our fight. Its an revolutionary syndicalism union and part of IWA/AIT. Its independent of the industry banch. e.g. if Amazon would have FAU, then the strike would likely effect computing systems bringing the complete delivery to halt. And not just 10% of the workers, who are standing at the door and changing nothing. The FAU is the best union for freelancers and temporary workers, and we are the only one who did win a strike for temp workers.

The main difference in German unions to other countries is, that other countries did fight the unions, and the unions did fight back. But in Germany the government embraced the unions and socialist since WW1, and the unions are a system sustaining since then, comparable to the church in other countries.

<comment><USER7> Yeah, because destroying someone else's property when they won't do what you want is a good thing. /s

<comment><USER8> Seems to work well for the US

</comment></comment></comment></comment></comment><comment><USER9> Aside from eBay, are there are any good alternatives to Amazon with comparable speed/convenience/selection? It sucks that such great results from a consumer perspective can't be had without borderline sweatshops on the fulfillment side. I'm willing to pay a few bucks more, I just find Amazon addicting due to the other aspects of the experience.

<comment><USER4> From my experience with warehouses/fulfillment centers, all the other options are same or worse than Amazon with regards to worker treatment. Besides, on Amazon plenty of merchants do their own fulfillment, and those that do fulfill with Amazon are going to fulfill with Amazon on eBay or Rakuten or their own website anyway. To do so morally you'll have to look into the fulfillment details of any individual company you do business with.

</comment></comment><comment><USER10> Single page:

[http://www.nytimes.com/2013/08/05/business/workers-of- amazon...](http://www.nytimes.com/2013/08/05/business/workers-of-amazon- divergent.html?_r=0&pagewanted=all)

</comment><comment><USER11> If you don't want your employees to unionize, don't treat them like shit.

<comment><USER12> In Europe it may be the opposite. At least here in Scandinavia. One need to remember that being unionized is the norm, and is not at all looked down on like someone does in the us. If you treat your workers well you will attract more intelligent people, that can easily choose jobs. They tend to be members in a union already before you hire them.

Many students will join a branch specific union already during their schooling, so employees will be semi organized already before they start.

Many unions have political arms with tight bounds with the ruling political parties, so if a company doesn't want to cooperate with a union they may find that the whole state apparatus comes at them. Most state employees is members, and the employees, union, other unions, other companies, state and local politician will bound together and slowly bleed dry any company not confirming. Soon the company will have to fight everything from building permits taking forever to get thru to all kind of supervisory organization starting to take an interest into their practices.

Anyone wanting to read about how this can look should try finding an analysis of what happened to Lidl her in Norway :)

<comment><USER11> I'd say corporations have way more power here in the U.S. than unions. For Heaven's sake we don't even have a national healthcare program. Proper healthcare is typically one of the bigger union fights from my experience.

Union is definitely a dirty word here. The people who are most against the unions tend to be the people who would benefit the most. Unfortunately they've been tricked into thinking otherwise. It's not uncommon for you to take a job at Target or Walmart and have to watch an anti-union video or two.

The Taft–Hartley Act really restricts union behavior. It makes it so you can't do things like solitary strikes, you have no typically notify your employer 80 days ahead of time if you plan to go on strike, etc.

[https://en.wikipedia.org/wiki/Labor_Management_Relations_Act...](https://en.wikipedia.org/wiki/Labor_Management_Relations_Act_of_1947)

At the end of the day it's all about striking a balance between labor and management. My plan is for all the companies I run to be ethnical especially in regards to treating my employees well.

</comment></comment></comment><comment><USER13> Not linked/mentioned in the article, but somewhat related - an article on working conditions in an Amazon warehouse in the UK, from Financial Times, February of his year:

[http://www.ft.com/cms/s/2/ed6a985c-70bd-11e2-85d0-00144feab4...](http://www.ft.com/cms/s/2/ed6a985c-70bd-11e2-85d0-00144feab49a.html)

</comment><comment><USER14> This article has some really sloppy writing. Probably an intern or overworked copyeditor. I guess Amazon doesn't pull much weight in the 24 hour news cycle..</comment>


Understanding Recursion as an Absolute Beginner - <AUTHOR> https://www.bigomega.dev/recursion <comment><USER2> >Most of the people find recursion difficult but it's not.

Recursion is really hard.

According to

[https://phys.org/news/2019-08-recursive-language-modern- simu...](https://phys.org/news/2019-08-recursive-language-modern- simultaneously-years.html)

Recursive language is a relatively recent phenomenon and even now is much harder to acquire than language and grammar. Recursion is probably the biggest thing that separates our communication from that of other species and gives such a big advantage.

That being said, if you are reading HN, you have already mastered a recursive human language. You have the ability to understand recursion. Just be aware that it is one of the more complicated things your brain does, and be patient with yourself. Keep working at it, and eventually you will get it. Don't become discouraged by the process and give up.

<comment><USER3> While recursive human language and recursion in computing terms are related, I really don't see they gain much from each other.

> Recursive language is a relatively recent phenomenon

Is there any evidence it's more recent than non-recursive language acquisition, evolutionarily (rather than developmentally ie child to adult)?

For reference for others in this thread, an example of linguistic recursion is <[https://en.wikipedia.org](https://en.wikipedia.org) /wiki/This_Is_the_House_That_Jack_Built>

        This is the horse and the hound and the horn
        That belonged to the farmer sowing his corn
        That kept the rooster that crowed in the morn
        That woke the judge all shaven and shorn
        That married the man all tattered and torn
        That kissed the maiden all forlorn
        That milked the cow with the crumpled horn
        That tossed the dog that worried the cat
        That killed the rat that ate the malt
        That lay in the house that Jack built.

</comment></comment><comment><USER4> I like the dark movie theater analogy for beginners e.g. in a dark theater, how would you know what row you're sitting in? You'd ask the row in front of you "what row are you in?" and they'd shake their head and ask the row in front of them and so on until they finally get to the first row, who would know they're in the first row, and at which point they can answer the second row's question all the way back to the row that originally asked the question.

</comment><comment><USER5> Recursion is absolutely easier to understand, period. A big reason for using it is that it's easier to convince ourselves that a recursive solution is correct; it directly gives us the pieces that we need for inductive reasoning. The degree to which a module of code is hard to understand is directly related to the effort required to convince ourselves that it does exactly what it is supposed to, in all cases.

Recursive solutions are hard to come up with for someone whose perspective is biased due to having a background in writing imperative code with iteration. They have already forgotten the difficulties they overcame in acquiring their existing skills.

Someone who learned nothing but recursion (and pure functional programming) will likely struggle with loops, gotos and assignments.

</comment><comment><USER6>
        countDownFrom(--n)

There's no reason to reassign the decremented n within the function. Prefer:

        countDownFrom(n - 1)

<comment><USER7> Thank you! This immediately stood out to me as a clever hack that makes it more complicated than it needs to be. I'd have written this function as:

        function countDownFrom(n) {
          console.log(n)

          if (n > 0) {
            countDownFrom(n - 1)
          }
        }

This removes both the decrement operator and the return keyword, both of which distract from the concept being taught.

This would also make it simple to add a `step` argument, which could be written as:

        function countDownFrom (n, step) {
          console.log(n)

          if (n > 0) {
            countDownFrom(n - step, step)
          }
        }

<comment><USER5> coutDownfrom(n--) contains a pointless assignment to a variable that has no use in the function after the logging call. It's not what I'd call clever.

It spoils the teaching value of the solution, because a beginner might be confused into thinking that the mutation of _n_ is essential, like that there is only a single _n_ and it is being stepped to bring about the countdown.

The student needs to understand that the countdown occurs even though there are no assignments to n, nor anything imperative other than the side effect of the logging call.

Don't write beginner examples which contain red herrings that must be explained away to some of the beginners.

<comment><USER8> countDownfrom(n--) produces infinite recursion, which is arguably why you could call coutDownfrom(--n) clever (you have to understand the subtleties of those operators). I agree that "pointless" or "stupid" are better descriptors, though :)

</comment></comment></comment></comment><comment><USER9> A better resource is How To Design Programs. A better title for it would be "How to design recursive algorithms using Scheme".

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

Every now and again, you need recursion. It doesn't come up too often, simple maps and the occasional reduce handle 95% of tasks. But every once in awhile simple iteration isn't good enough, and you'll be glad you'd gone through HtDP all those years back like I did.

</comment><comment><USER10> I think recursion is very much about finding the right application to learn it, rather than trying to shoehorn an example that doesn't wind up needing a recursive solution.

I wound up needing to learn recursion very early on in my programming journey because the problem space I was working in at the time (3D computer graphics) needed it. I found it relatively easy to reason about recursion because the solutions became simpler, more efficient, and more effective when they were solved recursively. Finding those problems that clearly need recursion, are simple enough to grasp, and make good sense are hard, not recursion itself.

The variety of contexts that beginners have and the gravitation of computer science to tree traversals as a standard example (or a contrived one like this) is why I think so many get tripped up on recursion when it's introduced.

</comment><comment><USER11> "To understand recursion, you must first understand recursion", said Benoit B. Mandelbrot. When asked about his middle initial he said: it stands for "Benoit B. Mandelbrot".

</comment><comment><USER12> How "absolute beginner" are we talking here? At what point have we distilled a concept to its bare minimum and failure to understand simply requires the person to spend more time with the concept?

If recursion is difficult to grasp, I'm afraid it's not going to get any easier from there.

<comment><USER13> > If recursion is difficult to grasp, I'm afraid it's not going to get any > easier from there.

I strongly disagree. Many people have never had to reason about recursion so explicitly before going into CS. Just because it's difficult to understand explicitly at first doesn't mean they won't get better.

If they _never_ understand recursion, then that's a problem, but I think that probably says more about the teacher than the student.

<comment><USER12> What do you strongly disagree with, exactly?

</comment></comment></comment><comment><USER14> It's way easier as a beginner to understand recursion in lisp imo. You can just substitute in all the calls and see the whole structure of the recursive function.

</comment><comment><USER15> I'm not sure when I learned recursion, so I don't know if I can say whether or not I had any trouble with understanding it.

I do know that once you understand recursion, knowing how to properly change a routine to a stack or other non-recursive routine (generally because you keep blowing the return call stack because the nesting level gets too deep) can be tortuous at times depending on what the routine is doing.

So perhaps that might be an insight to how people facing recursion as a beginner might feel...?

</comment><comment><USER16> When I was a beginner the two problems I had with recursion were:

1\. Not handling the base case and accidentally causing an infinite loop.

2\. Never reaching the base case so ending up in an infiniite loop.

3\. Creating too much incorrect state, and not having a sane way of debugging or visualising this due to the speed and quantity in which it is created.

Nowadays, I carefully focus on the first two problems, before moving on to working out a way of visualising the next N function calls, etc.

<comment><USER13> The way I explain implementing recursion is this:

1\. Write down what your function does in a comment. (e.g., "sum all the elements of a binary tree"). 2\. Write the function signature. 3\. Write the base case. (This is usually straightforward and most people don't seem to have an issue with it when reminded.) 4\. Stop thinking. 5\. __Assume your function already works __and write the recursive case. 6\. Profit!

I find where most people get confused over recursion is in trying to reason about the recursive case. They think "Well if I start at the root of the tree, then the next thing I need is to get the children... and then... with the first child... uh..."

They get lost in the recursion. So I tell them: _assume_ your function already works. Trust that you will write it correctly eventually. What does your function do? How can you use that?

If you assume you already have a function that sums binary trees, and if you're trying to sum the children of a branch node, well then use that function that you already have to get the sum of each of those children trees, and add up the results!

I always recommend to never try to visualize N levels of recursion, unless you're working through an example to actually test your implementation. Worrying about the deeper recursion is how people get lost and confused. Keep it simple: just look at the one layer and assume the other layers will do their job correctly.

</comment></comment><comment><USER17> I think the simplest way to understand recursion is as a for loop where you use the stack as the counter.

Recursion is basically implementing the operations of a repetitive loop but the loop controls are not explicit like in a for loop, instead you use the stack as the counter of the loop.

Once you think of recursion as just another way to do for loops, it immediately is demystified.

<comment><USER13> > Once you think of recursion as just another way to do for loops, it > immediately is demystified.

I actually think this is not a good way to understand recursion. It's like saying "once you think of the lambda calculus as another way to build a Turing machine, it immediately is demystified." Yes, it's true that they're equally powerful, but their differences are what make one or the other more suitable to certain circumstances.

I think with recursion the best way to show this distinction is to look at navigation over a recursive structure, like a binary tree. You could implement any navigation over a binary tree with some nice loops, but they don't really _mean_ anything in relation to the program: they're just a procedure to get the job done.

On the other hand, since binary trees are recursively defined (each node is either a leaf containing data or a branch containing two binary trees), using structural recursion to navigate the tree is significantly more straightforward than any looping construct. This is made super clear in a language like Haskell:

        data BTree
          = Leaf Int
          | Branch Int BTree BTree

        sumTree :: BTree -> Int
        sumTree (Leaf v) = v
        sumTree (Branch v l r) = v + (sumTree l) + (sumTree r)

But in, say, Python:

        @dataclass
        class BTree: pass

        @dataclass
        class Leaf(BTree):
          v: int

        @dataclass
        class Branch(BTree):
          v: int
          l: BTree
          r: BTree

        def sum_tree(t: BTree) -> int:
          stack = [t]
          total = 0
          while stack:
            curr = stack.pop()
            if isinstance(curr, Leaf):
              total += curr.v
            elif isinstance(curr, Branch):
              total += curr.v
              stack.append(curr.l)
              stack.append(curr.r)
            else:
              raise RuntimeError("Invalid BTree subclass.)
          return total

The Python solution isn't obviously correct. You'll have to read through that and make sure I implemented my traversal correctly — assuming you know what an iterative traversal looks like and you can recognize it without reading the code more fully first.

In contrast, the Haskell solution is clearly correct at a glance, I think. Ignoring the difference in length of code, the Haskell is clearly recursing over the structure of the tree. This is, in my opinion, significantly easier to reason about than any amount of looping.

I guess the caveat to all this is: recursion is well-suited for certain kinds of problems (such as navigating a recursive datatype), and loops are well- suited for different kinds of problems. But saying "they're equivalent so think of all recursion as loops" is missing the forest for the trees, I think.

</comment></comment><comment><USER18> To anyone trying to understand recursion, I advice to learn basic Haskell. This is the language where recursion actually "clicked" for me.

All you need is very basic Haskell. You don't need functors, applicatives or monads. You only need simple functions, pattern matching, and maybe some parametric polymorphism to simplify the examples and make them more general:

      fliplist :: [a] -> [a]
      fliplist [] = []
      fliplist (x:xs) = fliplist xs ++ [x]

      l = [1,2,3,4,5,6,7]
      f = fliplist l

      main = print f

</comment><comment><USER19> The problem with recursion (and with the counting example in the post) is that a student will ask "why can't I do this with a loop?" It's better to use a problem where recursion _MUST_ be used, such as a binary tree:

The size (# of nodes) of a binary tree is:

\- 0, if the tree is empty, or

\- size of left subtree + size of right subtree + 1

If you draw a tree, any student will agree that the recursive method makes sense. Indeed, they would be hard-pressed to come up with solution that uses a loop (unless they know about stacks, OK OK).

<comment><USER20> Just a nitpick, loop languages and recursive languages have the same expressive power. Therefore you can write a loop program for any recursive one. So there is no "must".

<comment><USER19> Fair enough. I should have said "is most appropriate" rather than "must be used".

</comment></comment></comment><comment><USER21> > To do that we can simply return without returning anything i.e. null.

I'm no JavaScript expert, but a function that returns nothing results in undefined, no?

<comment><USER22> Indeed, null!==undefined and if you want to return null you must _return null_.

However, null==undefined so you might not even notice the difference.

</comment></comment><comment><USER23> I had good results with my students with the illustrated video explanation I made [1]. It thinks of running functions as boxes that produce output, and of function definitions as box blueprints.

[1] [https://www.youtube.com/watch?v=vLhHyGTkjCs](https://www.youtube.com/watch?v=vLhHyGTkjCs)

</comment><comment><USER24> Is there a good example of a time where recursion would be much more efficient than iteration?

<comment><USER25> not necessarily efficient but here's my latest use case:

scheduling a health check job recursively. if the health check fails, it schedules itself to run again in X seconds with N-1 runs until giving up and marking the service as down.

iteration here simply wouldn't work

<comment><USER26> Why not?

Just schedule a single health check with a loop that tries to health-check N times in a loop, with a delay in between. If the check succeeds at any point, return 'healthy' early.

Or schedule N health checks at different times, if any check succeeds cancel all others, etc. etc.

</comment></comment></comment><comment><USER27> I like recursion; about the same as I like regex. In theory, it feels simple, and the power relative to that is amazing. In practice, it can be aggravating, but once solve it feels so damn good :)

</comment><comment><USER28> Relevant: [https://news.ycombinator.com/item?id=20888923](https://news.ycombinator.com/item?id=20888923)</comment>


Software Copyright and Innovation After Oracle v Google - <AUTHOR> http://epiclaw.net/sean-hogle-articles/oracle-v-google <comment><USER2> This court case is, with no exaggeration, the most important software industry case in decades, perhaps ever. As the article says, if you're familiar with Android, Google, Chrome, Firefox, Edge (nee Internet Explorer), OS X, Linux, and the Internet, it is no exaggeration to say that every single one of those technologies, products, and companies are in violation of copyright according to this decision.

Oracle is literally trying to destroy innovation in the software industry, and they may just pull it off. Their products, their name, and their employees should be shunned for trying to destroy the single most important economic invention of all time: innovation in the software industry. This is not OK, this is not just politics, and they must be stopped.

Read this article, spread the news, write your congresspeople, donate to the EFF, and cancel your Oracle contracts.

<comment><USER3> The funny thing is that FSF/LPF actually pushed for such a boycott of Apple and a few other companies over the GUI copyright lawsuits during the 1988-1994 period. Needless to say, it wasn't effective and Apple etc eventually lost or dropped the lawsuit anyway.

</comment></comment><comment><USER4> > Oracle appealed this decision to the U.S. Court of Appeals for the Federal > Circuit ("CAFC" or the "Federal Circuit"). Because Oracle's case included > patent claims, the CAFC had jurisdiction over the appeal, and so Oracle was > able to avoid review by the U.S. Court of Appeals for the Ninth Circuit

I think this needs to be changed. I can't think of any good reason why in a case like this, where it has both patent and copyright claims, that the appeals need to go to the same court. Why not have the copyright issues appealed to the Ninth Circuit and the patent issues appealed to the CAFC?

At trail court it makes sense to join issues that would normally be heard in separate courts together when they involve the same underlying facts, because there will be a lot of overlap in witnesses and evidence, and a trial court is both a trier of fact and a trier of law. Holding separate trials in different courts would be wasteful, annoying, and could get complicated and troubling if different courts found different facts.

Those considerations mostly do not apply at the appellate level. The appeals court does not determine facts. It does not hear witnesses. It just deals with the record from the trial court and the arguments from the attorneys.

<comment><USER5> > I think this needs to be changed. I can't think of any good reason why in a > case like this, where it has both patent and copyright claims, that the > appeals need to go to the same court.

Economy of justice concerns are the biggest reason, though there are other reasons to keep the case together (e.g., because it is one case between the same parties and different issues will rely on intersecting sets of determinations, so splitting it by the domain of the _ultimate_ issues will open up the possibility of conflicting rulings on the same intermediate issues, which is not only ugly in and of itself, but especially ugly if the various parts of the split case are both appealed from the Court of Appeals to the Supreme Court.)

> Why not have the copyright issues appealed to the Ninth Circuit and the > patent issues appealed to the CAFC?

I know the theory but has practice actually born out the supposed benefits of the CAFC as the single Court of Appeals for patent cases? Why not just send the whole thing to the Circuit Courts whether or not there are patent issues?

> At trial court it makes sense to join issues that would normally be heard in > separate courts together when they involve the same underlying facts, > because there will be a lot of overlap in witnesses and evidence, and a > trial court is both a trier of fact and a trier of law. Holding separate > trials in different courts would be wasteful, annoying, and could get > complicated and troubling if different courts found different facts.

You really get all the same issues with splitting questions of law, since the ultimate legal decision on a patent question may depend on legal decisions on evidentiary and other questions also raised on appeal, on which ultimate non- patent counts in the same case may also rely. A clean separation is not realistic.

> The appeals court does not determine facts.

Yes, it does, though the standard of review for fact questions is usually one of "clear error".

<comment><USER6> _> Why not just send the whole thing to the Circuit Courts whether or not there are patent issues?_

Apparently, because previously different Circuit Courts interpreted the Patent Act differently, leading to forum shopping as problematic as what happens in ED Texas today. Except back then there was no recourse -- at least today you can take your appeals to a more consistent court.

 _> I know the theory but has practice actually born out the supposed benefits of the CAFC as the single Court of Appeals for patent cases? _

This study partially tackles that question from multiple angles and the conclusion is mostly favorable to the existence of a CAFC:

[http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2231312](http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2231312)

</comment></comment></comment><comment><USER7> "The software industry, and indeed every industry that relies on software, has thrived for decades without the encumbrances of proprietary claims over APIs. Because the Federal Circuit's decision destroys the balance between copyrightable expression and uncopyrightable ideas in software, it threatens competition and innovation. The Ninth Circuit should repudiate it at the earliest opportunity."

BAM!

</comment><comment><USER8> When presenting this to someone, is it helpful to use a human language analogy? For example: In english, when you refer to a "car", you are talking about a machine that moves people on roads. Whereas when you refer to a "boat", you are talking about something that floats on water. What Oracle wants Google to do, is to make up a new name for "car" and "boat", and try to get all developers to adopt these new definitions when using Google's products.

<comment><USER9> That doesn't sound very clear to me. I think a better analogy would be: Google and Oracle both made cars. Google put the gear shift in the same location as Oracle.

<comment><USER10> I think an even better analogy would be:

Google and Oracle and a bunch of other companies all make cars. All of the cars have a gearshift with the same pattern, because long ago the company who built the first car encouraged other carmakers to copy their design. But then Oracle buys the company who built the first car and tries to sue Google (and only Google) for copying their shift pattern.

<comment> alok-g Did Sun encourage others to copy the design though (genuinely asking)? They allowed others to use their designs. I have been under the impression that while Java was open-sourced, there was a a specific clause in the license to prevent what Google did.

<comment><USER11> _Did Sun encourage others to copy the design though (genuinely asking)?_

My understanding, which may be incorrect, is that Sun intended for their JVM to be the reference version, and they envisioned a lot of companies creating their own competing (but compatible) JVMs.

I don't recall any hints or suggestions "copying" the Java API would be a problem. I believe Sun planned on making money by charging for Java implementations to be tested against the TCK in order to earn the Java label.

<comment> alok-g I had read somewhere long time back that mobile devices were explicitly excluded from this in the license.

</comment></comment></comment></comment></comment></comment><comment><USER12> It's also interesting to read the counterpoint arguments of Florian Mueller on his FOSS patents blog.

[http://www.fosspatents.com/2014/01/api-copyrightability- to-b...](http://www.fosspatents.com/2014/01/api-copyrightability-to-be- confirmed.html)

The crucial point being that code written for Dalvik is actually not compatible with Java runtime. So how can you argue that borrowing code without consent is good for interoperability... when the product you deliver just break it?

<comment><USER13> The same Florian Mueller that never puts a disclaimer saying that he was an Oracle consultant for the case in the Oracle vs Google posts?

<comment><USER12> Thats unfair he put a lot of disclaimers in his post. It's just that they don't appears in the TL/DR that people share afterwards :P

</comment></comment></comment><comment><USER14> I explained it to my parents by saying "You can copyright your street address, and anyone who writes it on an envelope to be mailed to you has just committed a copyright violation."

They said that sounded pretty stupid, I agreed, but its the current law as far as I can tell.

<comment> alok-g Could you explain more please.

Making up a street address would normally not involve creative expression, but even if it does, its intended purpose is to allow others to use the address for various purposes, which would then be fair use.

In this analogy, Google did not mail something to this address, rather created another house with the same address so that anyone sending mail to Oracle is able to redirect it to Google without changing the address (by posting into a different mailbox).

Design of an API certainly involves creative expression, so much that many developers are not able to get it right. So I do not think the analogy is valid anyways.

</comment></comment><comment><USER15> The basic analogy is that an api is like the pointy end of a drill bit. Google and Oracle want to help people drill in screws or hex keys. Sun started selling flat screw bits, and google, in order for handymen (developers) to be able to use the same skills, also started selling flat bits (or flat head screws if you prefer).

The one distinction complicating this a little is more thought and creativity goes into designing an api then designing the interface between a drill bit and screw.

</comment><comment><USER16> This is a risk of using proprietary languages. Even if the implementation is open source if a single company actually controls the language you are running risks. In addition with Java there is the precedent of Sun and Visual J++ so it was known that Sun would go after people who provided incompatible implementations. This whole saga is simply a very bad move on Google's part with foreseeable consequences.

<comment><USER13> The difference is that Microsoft called the incompatible implementation Java.

Google never called it Java

<comment><USER16> I don't see a significant difference. If you look at the Google Android developer page [http://developer.android.com/guide/components/fundamentals.h...](http://developer.android.com/guide/components/fundamentals.html)

The first sentence is "Android apps are written in the Java programming language."

If that is not calling it Java, it is close enough as to be indistinguishable to the average programmer.

<comment><USER13> Yes, the programming language, not the platform. Android doesn't run in a Java Virtual Machine, it only uses the Java syntax

Microsoft was sued because they certified the platform and it was incompatible.

Google/Apache never certified the platform to call it Java

</comment></comment></comment></comment><comment><USER17> The Sega-vs-Accolade times seem so far away ... [https://en.wikipedia.org/wiki/Sega_v._Accolade](https://en.wikipedia.org/wiki/Sega_v._Accolade)

</comment><comment><USER13> The thing I will never understand about the case is why the one accused is Google when they used the Apache Harmony implementation done by the Apache Foundation.

</comment><comment><USER18> Well reasoned. I still cannot understand how the court chose to ignore the unusually clear precedent of Lotus v. Borland. That took some contortions.</comment>


Replacing GNU assembler with Factor code - <AUTHOR> http://factor-language.blogspot.com/2010/01/replacing-gnu-assembler-with-factor.html <comment><USER2> What are the advantages/differences of using Factor compared to Forth?

<comment><USER3> I'd say factor is to forth what clojure is to scheme: a modernized version (with a larger footprint).

<comment><USER4> Factor has very little in common with Forth, besides having a stack based concatenative syntax based off Forths. It has often been said within the Factor community that Factor has much much more in common with Lisp than it does with Forth.

<comment><USER3> Since almost every dynamic language is at one time or the other compared to lisp or praised as lisp + syntax + better + ..., I don't think the view of the Factor community is important.</comment></comment></comment></comment>


Ask YC: Photo Centralization Service - <AUTHOR>

Recently, I've been receiving a lot of links to photo galleries where I was at an event and people have taken photos. My friends aren't very tech savvy so photo gallery usage is fragmented amongst them (picasa, facebook, fotki, kodakgallery, etc...).
I want to save these galleries in a centralized place online. I want to put in a url of a gallery I want to keep. Not just simply a bookmark, but the service should rip the photos and store it. As it stands right now, I'll probably never revisit the photo gallery or I'll have to come up with a way to rip it myself.
Most photosharing sites are about sharing not consuming or 'collecting'. I think this would be a great idea for a service, something akin to friendfeed but photos based. Is there such a service already? If not I think it would make a great company simply from solving a problem standpoint not necessarily a business plan one.
Thoughts or suggestions on such a service? <comment><USER2> I'm not sure there is a good one. Generally, other people's photographs are their property, so scraping them would raise a whole bunch of problems if you have another person's photograph that they don't want you to have. Sounds silly, since you'd be in the photographs, but the site would get a lot of takedown requests. Not that YouTube doesn't, but you get the idea. I'm sure someone's done it though, I just don't know who.

<comment><AUTHOR> You could potentially get around the copyright policy by putting a disclaimer that the user most 'own' or have permission to grab the images. It's no different than someone downloading a copyrighted picture and uploading them to another service.

The other big issue I can foresee is that most of the sharing websites don't have api's for you to programatically get at photos. They in fact do their best to prevent you from ripping photos. You would have to play a pretty nasty cat and mouse game there.

</comment></comment><comment><USER3> thanks for joining waynep, maybe i can help you out.

email paul - at - deluux.com

</comment><comment><USER4> Most pictures I've seen hosted on SmugMug and Flickr are either rights reserved or non-commercial CC. "Consolidating" them into another site will eventually anger the wrong type of people.</comment>