Ask HN: I've been asked to sign a IP Assignment Deed as an employee - <AUTHOR> So I used to work for a company, being one of two employees that created a piece of software.
I was hired as an employee of the company with no share holding, and signed a fairly standard contract where my time and anything I created during the time I was employed belonged to the company.
Just recently, the company is selling it's product and the purchasing company has asked that all employees sign a IP Assignment Deed.
My understanding is that, since I've already assigned all IP to the company that I worked at, I don't have any legal rights to assign my IP to this new entity... well because, I don't actually own any of it.
Is it common for past employees (not shareholders or founders) to have to sign these when products are being purchased? I was made redundant 2 years ago. <comment><USER2> In order for a contract to be considered enforceable both parties must receive consideration[1]. When you worked at the company your consideration was continued employment.

Were I in your shoes I'd ask for an amount of consideration with what you believe is commensurate with a "reasonable" value. If this is a small sale, something like $10,000. If it's a large sale, $100-200,000.

The point being that if they want you to sign away your ownership rights (real or imagined) they _have_ to give you something in return or it's not a legal contract.

Contracts absolutely require that both parties get something of value out of the exchange.

[1] [http://study.com/academy/lesson/rules-of-consideration-in- co...](http://study.com/academy/lesson/rules-of-consideration-in-contract-law- elements-case-examples.html)

<comment><USER3> The words "IP assignment deed" would suggest it's a deed, not a contract, and a deed does not require consideration (though it may include some consideration that allows it to be enforced as a contract if a court finds that the requirements of a deed were not met)

(IANAL, I've had to get lawyers to write up IP assignment paperwork before though)

<comment><USER2> I was not aware of this fact. IANAL, but it does look as if the concept of a deed is being abused in this context.

Kind of like where employers call employees "contractors" because they can get away with it. It looks like the purpose of a deed is to announce intention to uphold a promise such as debt repayment in exchange for title.

The idea of a deed of assignment (from googling) is that one party transfers ownership of an object to another party. If OP's earlier contract was valid then this would be extraneous, if OP's earlier contract was flawed then it would be in his/her best interest to negotiate a new contract as a deed would basically be giving away the vested interest they have.

Anyone that makes a moral argument here needs to remember that using the legal tools available to you is _not_ immoral. It may be mean, but it's fair play. Bill Gates and Spyglass, as atrocious as it was, demonstrated this. If the original contract was flawed, then OP actually owns some vested component of the company/product.

Why in the world would OP give away something that has literally just been assigned a value for free? Frequently companies, if in the situation of OP, will leverage their legal rights in this scenario.

I still think OP should negotiate some compensation for anything they sign.

<comment><USER4> >using the legal tools available to you is not immoral

Legality and morality are two different concepts that are not always mutually inclusive. What would be the point of two separate words if this wasn't the case? Under your logic slavery wouldn't slavery have been moral?

That said the people OP is dealing with arent likely at the height of morality themselves and my personal moral code is "do unto others as they would do unto you".

<comment><USER2> Thank you for highlighting this, you are completely correct. The "rule of thumb" was not a moral law to follow.

I lack the eloquence at the moment to reformulate my statements other than to say that in financial interactions between humans and companies people tend to treat companies like they would other people while companies tend to treat people like they would other companies.

</comment></comment></comment></comment></comment><comment><USER5> First of all, you don't HAVE to sign anything now. It is very common in due diligence to try to chase down details like this.

If you feel like cooperating, but are just uncertain of your standing, you can sign a quitclaim assignment, essentially stating that whatever IP claims that you might have (which might be none), you assign to the new entity.

If you don't feel like cooperating, you could ask for compensation now in exchange for signing or just tell them to cram it with walnuts.

</comment><comment><USER6> In general, there probably isn't an issue. However, it is very important that you understand anything you sign. In IP assignments the thing I am most careful about is the indemnification clause or clauses. It is fairly boilerplate to include language that says "you assert that you have the right to sign off this IP, and if someone later challenges that right you will indemnify they buyer against any infringement action brought against them."

That is what is think of as an "open ended" indemnification which is to say, you sign this over, then later someone sues them for patent infringement. Even though you had no idea somebody had patented the idea, you might be on the hook to pay the legal costs or licensing fees to make the buyer whole again.

So make sure the document doesn't say indemnify anywhere :-) And as others have said consider having a lawyer look at it.

</comment><comment><USER7> Some people have mentioned that you might want to stay on good terms with the company.

The problem is that you're dealing with lawyers, and they want only one thing. They don't really care about you once they have what they want.

The other problem for them is that your legal relationship ended when your employment ended. So they don't have any power, other than what you choose to give to them.

I'm guessing they lost the original contracts and need the Deed to be on solid legal ground.

So I'd make them squirm a bit.

</comment><comment><USER8> (Not legal advice.) M&A practitioners aren't paragons of virtue but still it'd usually be considered uncool to go to a former employee years after the fact, ask them to sign a doc to facilitate a deal he'd get no upside from, and not offer to pay his legal fees - especially if he's someone the company let go. It's possible this is just a junior associate at the purchaser's law firm insisting on something technically correct but practically low-risk, getting poor supervision, and your former company not shielding you as they should. It's also possible that if the company tells the purchaser you don't want to sign it, the purchaser just says "ok was worth a shot" and that's it. If the purchaser truly does care, it's the company's problem not yours that the documents you signed years ago weren't different. Not something you should incur time, expenses or risk now to fix for them. An example of risk is the scope of the deed being too broad and covering other projects of yours that should be out of scope. You can say no with a clear conscience. If you feel bad about it, something like the following is a totally fair response: "Sorry I can't be more helpful, but I take legal documents seriously and don't review/sign anything unless it's necessary for something I'm currently working on. It's just a personal policy of mine."

</comment><comment><USER9> If I were in your situation (where I liked the company, and had decided that I didn't want to try to ask for a portion), say that you're not going to sign anything without having a lawyer look over it with you, and ask them to reimburse you for your lawyer. That way if they need you to sign it, then they can pay for your trouble, and you can find out if there's anything important and get all of your legal questions answered (including finding out if you have any bargaining power). If they don't need you to sign it, then they won't pay for your lawyer, and you can go on without signing something you don't understand.

</comment><comment><USER10> Did they voluntarily sign any nice contracts for you when they fired you? Sure, your manager was cool and you liked your coworkers, but the company itself fired you. Call it "laid off", "rightsized", "RIFfed", or whatever you choose, but the end result is the same: you were out on the street.

What are they willing to do for you, now that they're asking a favor? I'm not trying to be a hardass, or suggest you try to retire off this one thing. But obviously it's valuable to them or they wouldn't be asking. Why should you - _who they fired_ \- do them a large financial favor for nothing?

</comment><comment><USER11> If you're no longer employeed by the selling company, it would seem that you have nothing to gain by signing.

<comment><AUTHOR> I guess my angle isn't: What is there to gain for me. Even though I was made redundant, the employer is nice and I'd have no problems signing it.

But it's the first time I'm asked to sign one of these things and some of the things I'd be agreeing to doesn't even sound like it's in english. I don't want to inadvertently sign over any side project I was working on in that time or IP for the industry I was working in or even future IP as some of it seems to be worded without time constraints. But take all that with a grain of salt, no legal background.

The sale of the business is predicated on all former employees signing the deed.

<comment><USER12> This is all risk for you... why would you take on that risk with no compensation for an employer that fired you?

<comment><USER13> There is something between doing it out of the goodness of your heart and milking them for all they're worth though. He could reasonably ask that they pay his legal fees and compensate him for his time dealing with this. (A couple hundred an hour, say, or whatever he feels is reasonable.) Then choose a good IP attorney to look over it. That's based on the fact that he says he's on good terms with the previous employer and would like to help them out.

<comment><USER14> This is the most reasonable solution and I hope the OP chooses it.

</comment></comment></comment></comment></comment><comment><USER15> You were made "redundant" 2 years ago.

You don't owe your past employer anything and you sure as hell don't owe anything to a company trying to minimize their headache in the future if something with their deal with your past employer has a hole in it.

I'd just wash your hands of the whole thing and ignore it. If they come back with some $$ then perhaps revisit. Life is to short to be wasted being a 3rd wheel.

</comment><comment><USER16> It seems like you have nothing to gain, but potentially something to lose by signing. On the other hand, do you have anything to lose by not signing?

IANAL, but from your description it does indeed sound like you have no IP rights to assign.

If they really want you to sign anyway, and you are ok with the terms, at least get compensation for it - that at least gives you an upside.

</comment><comment><USER17> Chances are they messed up the paperwork somehow. Either the agreement you signed wasn't acceptable to the buyers or they just lost them.

I would definitely run it by a lawyer before you sign anything.

It's unlikely they're being nefarious, but realize that you'd be doing them a favor. It's up to you to decide if that's something you'd want to do.

</comment><comment><AUTHOR> Thank you all for the wide range of thoughtful responses.

I don't want to leave the impression that this company with a private owner is a bad company. The employer did look out for me when I had difficult family issues and at one point, being _way_ over-burdened with the workload, I told him to either fire me and get a support person at half my salary or give me more resources.

Being laid off there was quite good for me. I felt indebted to keep the product afloat but it was burning me out constantly so after I left, I got a higher paid, much more reasonable hours job with peers that also have passion for coding.

But I still remembered him looking out for me so I want to do the right thing and help him get some closure on this business. To that end, I think getting a IP lawyer to put any of my worries to rest at a small expense to him or the purchasing company is the most reasonable option as someone else had said below.

</comment><comment><USER18> This sounds like work to me. Best to provide an estimate and send them an invoice for this project.

200/hr with minimum billing increment of 2 hours PLUS legal expenses to even understand what the heck it is they want you to sign.

Easily a 4-8 hour gig. $800-1500 is a reasonable price to be paid for such a job.

</comment><comment><USER19> What is in it for you? I can not see a reason to bother.

</comment><comment><USER20> They want you to sign something after you left? Don't be a fool, you shouldn't sign anything.

Its a hit and miss tactic, some will sign and the lawyers will have a little bit more gurantee, but many won't and it will not hold up the sale.

<comment><USER21> agreed, why sign anything after you've left. you don't owe them jack

</comment></comment><comment><USER22> Not a chance. The terms of this new deed may be more onerous than the original employment contract, and might land you on trouble if, for example, you did some programming outside of this company while you were employed.

</comment><comment><USER23> They are probably following a process on autopilot. Maybe just being extra safe, covering all their bases.

Just ignore it until they offer money for your supposed IP.

</comment><comment><USER24> If you don't own any of it, at least in your mind, it's interesting that someone is selling the software that you don't own, and asking you to confirm that. If it wouldn't cost you anything you care about, consider countering with "to save time, make me your best offer." See what they do!

</comment><comment><USER25> > My understanding is that, since I've already assigned all IP to the company > that I worked at, I don't have any legal rights to assign my IP to this new > entity...

This seems basically right. I would ask them, was something wrong or incomplete about the previous agreement?</comment>


And the last Blockbuster movie ever rented is... - <AUTHOR> http://news.cnet.com/8301-17938_105-57611944-1/and-the-last-blockbuster-movie-ever-rented-is../

<comment><USER2> The title of the last movie is kind of...ironic.</comment>


Terrorism as a Tax - <AUTHOR> http://www.schneier.com/blog/archives/2008/05/terrorism_as_a.html <comment><USER2> There are eleven million commercial flights each year. [1] Each one gets taxed $5 after 9/11 for "extra security measures" (just look on your plane ticket receipt). That's already $66 million each year for pointless security considerations that any Redditor or Digger will reasonable explain to you are useless.

[1] <http://www.answerbag.com/q_view/34532>

By the way, it would be nice to avoid politics on HN.

</comment><comment><USER3> That's a very good viewpoint. Kudos to the author and poster.

</comment><comment><USER4> "More respondents were worried about U.S. immigration officials (70 percent) than about crime or terrorism (54 percent) when considering a trip to the country."

Agreed, the US seems to be an exceptionally safe country - especially if you happen to come from countries outside of N/W Europe. And I think the average US immigration official would also be considered substantially friendlier than the average consular officer in those countries.

</comment><comment><USER5> Did he forget the cost of the war? At $1-2 trillion estimated total, it dwarfs everything he mentioned.

<comment><USER6> He only included measures that at least give some appearance of increasing security.

</comment></comment><comment><USER7> The best thing to do after Sept. 11th would have been to mourn, then smile and pretend it never happened. A lot less would have been lost.

</comment><comment><USER8> It's quite interesting but seems to lack any actual conclusion. Security costs money, so what?</comment>


Ask HN: Where can I find people to review a web service? - <AUTHOR>

I have spent more than 1500 hours over the last 3 years in developing a website and browser add-ons. Tried posting it to a few startup blogs but they simply posted the text given to them.<p>* Is there a better way to promote?<p>* Where can I find people to review them? <comment><USER2> Some things I've learned in the last month of promoting my app:

HN gave me a wide variety of feedback, some of it really excellent. Try posting a "Ask HN: Please review my startup vivekjishtu.com" or whatever.

Launchly is awesome but doesn't have a lot of eyes yet. Do post there, though, you'll get some great feedback.

Usefultools gave me a tiny little bit of a review, but mostly just regurgitated my copy. They yielded a good bit of traffic, though.

My best review thus far was from a random blogger who had reviewed a competitor. I sent him a personal email saying "Hi, I'm impressed with your candor and feedback, would you please review my site? Here's a promotional premium account."

Also, hang around Launchly or HN for a while (I see you just signed up for HN) and give other people feedback. Both have reputation systems. You might even have luck giving other people serious feedback and tacking onto the bottom "if you have a moment to spare, could you give me some feedback on three-year- project.com"

However, in terms of long-term recurring members, I can't say any of those paths have yielded much. This might be more a reflection of my service than the nature of the promotional channels, however.

<comment><USER3> Hey thanks for mentioning launchly jbr. That was very kind of you. Completely agree with everything you said too.

It took quite a bit of work for me to make all the necessary changes to get that reputation system in place last week and I really hope it has the positive effect that I think it will. Hopefully the amount of feedback will start creeping up.

Also note that registered users can provide additional profile details now on launchly such as a bio and link to a website. This is another possible way to promote your own startup by giving quality feedback to other startups. If people view your profile (either from your feedback or the leaderboard) they may just click through to your site/service!

</comment></comment><comment><AUTHOR> The website is <http://fefoo.com/>

Add-on for Firefox <https://addons.mozilla.org/en-US/firefox/addon/12886>

Ways to add it to other browsers <http://fefoo.com/add2browser>

<comment><USER4> Some initial feedback:

\- When I look at your site, I don't know what it does. As a result, I'll just go back to Google. I gather there are some special commands (which I see from clicking through the _manage_ link, but when I do my first look and search, I don't know what any of them are. I would have a summarized version of _:ls_ on your front page

\- On that note, ls is a geek term. People here will recognize it, but "normal" people won't. Maybe replace with something more friendly like _:commands_

\- I'm still not sure what makes your service different and special - why is it better than things like Yubnub? I'm not even 100% sure what I can do with it: maybe have some examples on the front page, with the command and what it will do for me. I know you're going for a Google-esque aesthetic, but they have huge recognition and do one thing only. You have no recognition, and do many things - hence tell me how to do some of them so that I get hooked.

\- What the hell are all these icons up top in the search results? I've never seen most of them, and don't know what clicking them will do.

\- Some of your _Back_ behaviour is busted. Click on the first link on <http://fefoo.com/help/commands.html> about how big the earth is, and when the results have loaded, click your _Back_ button. Why is the result window white?

\- Your documentation is intimidating. There's much too much of it being thrown at me at once and with little organization, and the writing is somewhat awkward. You need someone who's a good writer to redo and edit most of your copy, and you need to do some thinking about ways to reduce the mental load on someone reading it for the first time.

\- What's your monetization strategy?

<comment><AUTHOR> Thanks, this is exactly the kind of feedback I was looking for.

\- Will probably add an overlay for first time user.

\- Have changed it to :help

\- The main reason why I started with fefoo was to make sure that I don't have to remember search engines. There are at least 5 different source code search engines, but I doubt any one knows any other engines except Google Code Search. With fefoo you only need to figure out that you are searching for source code and you have 5 different source code search engines to choose from. Same goes for the 40 other search categories there. If a music site like Seeqpod closes down you still have 10 other music search engines to choose from.

\- With the toolbar its easy to search on multiple search engines. You don't have to type the search query again and again. But I guess that needs to be specified in the overlay the first time a user searches for anything.

\- The back button should work on Firefox, Chrome, Opera and IE but I would need to test it again.

\- I fully agree about the part about the documentation.

\- As for monetization I made the application for my own use and there is hardly any cost for me to run it. It might look like a server side application but the whole thing is made in JavaScript and once you visit the website it gets cached on the browser and works from there. This not only increases the speed but also gives you access to all the 200+ search engines. Even if you set it as the homepage it will not take more than the about:blank page to load. It acts like an extension for your browser.

</comment></comment></comment><comment><USER3> If you are looking for feedback on your site and exposure to an audience of other developers, designers, and entrepreneurs then I'd highly suggest my own startup service, launchly (<http://www.launchly.com>). Check it out! There is a free, basic launch plan that simply requires a bit of community involvement on your part.

</comment><comment><USER5> Vivek gee, just post it here and you will get the feedback you need.

P.S. If website owners are just posting the text you provide them, what's the problem? :-P

<comment><AUTHOR> The problem with my text is that it almost sounds like an infomercial :P

Since am not very good with words, the service ends up looking like a cheap copy of Yubnub and Ubiquity.

</comment></comment><comment><USER6> Have you tried <http://en.wikipedia.org/wiki/Cost_per_action></comment>


Report says PRISM snooped on India's space, nuclear programs - Suraj-Sun http://www.theregister.co.uk/2013/09/24/prism_india_space_nuclear_politics/

<comment><AUTHOR> I'm very comfortable with this, and find it un-controversial.

Obtaining intelligence on nuclear and space (AKA nuclear delivery systems) is a very valid goal for the NSA to pursue.

Frankly, if the NSA wasn't working for this data, I'd be shocked at their incompetence.</comment>


You Don't Need JQuery - <AUTHOR> http://blog.garstasio.com/you-dont-need-jquery/ <comment><USER3> You can basically sum up this entire rather ridiculous site with "Yes, you don't _need_ jQuery, you can just use the built-in methods, but using jQuery is generally more pleasant, more consistent, and involves less typing". One particularly egregious example from the site:

      $('#foo').removeClass('bold');

vs.

      document.getElementById('foo').className =
          document.getElementById('foo').className.replace(/^bold$/, '');

The author summarises this, helpfully: "As usual, more characters, but still easy without jQuery."

Of course, if you were doing that remove class operation quite often, rather than writing all that code out each time, you might wrap it up in a helper method, and maybe you'd call it, I don't know, "removeClass" or something; perhaps if you were doing a whole bunch of DOM operations you might create little helper methods for each one, again to save you some typing. Pretty quickly you might end up with a little library of helper methods... and, of course, being a wonderful programmer who never makes mistakes, I'm sure that little library would be every bit as optimised, reliable, and correct as a battle-tested library used on hundreds of thousands of web sites.

<comment><USER4> .classlist() [1] is coming [2]. It'll allow you to do:

        document.getElementById('foo').classList.remove("bold");

Sure, it's still more verbose. But a lot of what jQuery does is slowly being obsoleted by better native javascript apis.

[1] [https://developer.mozilla.org/en- US/docs/Web/API/Element.cla...](https://developer.mozilla.org/en- US/docs/Web/API/Element.classList) [2] [http://caniuse.com/#feat=classlist](http://caniuse.com/#feat=classlist)

<comment><USER5> So when those new native api functions arrive, jQuery will start using them and gain some performance boost (using native vs. custom js code) while at the same time remaining backwards compatible (by doing feature detection). No one wants to write their own feature detection code so this whole page about using native apis is instead of jQuery is ridiculous.

If the point of that website was to educate people on the apis that jQuery calls under the hood, it chose a really poor name.

<comment><USER6> Or you could use the class list polyfill.

<comment><USER7> If that's all you need, then that would be fine. However, for most projects you end up needing many other such polyfills, to the point that you might as well use one library—jQuery—to provide them all (plus a lot of other functionality).

</comment></comment></comment></comment></comment><comment><USER8> Every time I try to build something without jQuery, I regret it.

Not because of selectors, that's (sometimes) easy to do for lots of (basic) selectors. Not because of DOM manipulation, as long as you're willing to sacrifice simplicity and readability, you can build iterative loops to modify a collection of HTML elements.

No, it's the unexpected things that cause me pain. Want to use event handlers on dynamically generated DOM objects? Write your own event bubbling library. Want to create custom events/handlers? Ditto. Promises, .serialize(), .extend(), etc. might all be simple to write your own version, but when you realize you've reimplemented 50% of jQuery to avoid using jQuery, you feel like an idiot. [Source: I do this every 3 years]

Life is too short to not use jQuery.

<comment><USER9> Yeah, the problem with jQuery is all that _other_ stuff that nobody uses and backwards compatibility with browsers nobody supports. A "lite" jQuery with the same familiar API but a stripped-down featureset for higher performance and smaller size would be nice.

<comment><USER10> Just use the CDN copy of jquery and it will be cached in the users browser already since so many websites already use it.

<comment><USER11> Not really, the cache-hit benefit is a myth. Too many CDNs, too many versions of jQuery in use, cache's too small...

So ..using jQuery via a CDN, depending on which you use you have a 1 in 119, or 1 in 833 chance of the user having a cached copy. [http://www.i-technology.net/2013/11/the-myth-of- cdn.html](http://www.i-technology.net/2013/11/the-myth-of-cdn.html)

more data: [http://www.stevesouders.com/blog/2013/03/18/http-archive- jqu...](http://www.stevesouders.com/blog/2013/03/18/http-archive-jquery/)

There are valid reasons to use a CDN (get the scripts closer to the end user, offload the data transfer costs to the CDN provider, etc) but it isn't due to the potential for a cache hit.

<comment><USER12> > you have a 1 in 119, or 1 in 833 chance of the user having a cached copy

That statistics has assumptions on what's the most popular jQuery versions being used. It would make sense if there was real data to support that.

</comment></comment></comment></comment></comment><comment><USER13> Here's a list of DOM bugs in browsers that jQuery works around:

[https://docs.google.com/document/d/1LPaPA30bLUB_publLIMF0Rlh...](https://docs.google.com/document/d/1LPaPA30bLUB_publLIMF0RlhdnPx_ePXm7oW02iiT6o/preview?sle=true)

Pretty sure they're not all fixed, and this is just the ignorance du jour.

<comment><USER14> So many of the author's examples required different bits of code for different browsers. It's almost like they don't understand why people use jQuery and just chalk it up to ignorance when using a framework it's almost a necessity these days.

It's this stupid "you're not a real developer unless you're twiddling bits on your hard drive with a magnet" mentality that I absolutely despise.

<comment><USER15> It's a page and a half of mostly IE bugs. You should know your bugs and not try to cover them up but, more troubling that you don't want to know these things. Programmers I know want to write code, especially things as insignificant as these.

</comment></comment></comment><comment><USER16> Right off the bat, on the first 3 examples, he shows how you need to use different APIs depending on the IE version.

That alone is enough reason to use jQuery and not having to bother.

<comment><USER15> You're pointing out an IE problem, not a javascript problem that isn't present in other browsers.

<comment> squeaky-clean And your point is? Pointing the blame at a different source doesn't mean the problem isn't present. If a client needs IE support, what do you do? Write the code three times? Detect IE and redirect the user to chrome-frame, then cry when you don't get paid?

I don't care who caused the problem. Just that it wasn't me, I can't fix it, and I have a deadline to meet and constraints to follow. jQuery is a lifesaver.

<comment><USER17> Chrome Frame is no longer supported. :(

</comment></comment></comment></comment><comment><USER18> I disagree, jQuery is awesome, even for seasoned web developers. Of course you don't need it, but it makes life a lot easier when working with XHR, events, selectors, etc.

If you're worried about dependencies, you could just compile your released library with the Google Closure compile, and strip out everything you don't use. You could even set up a pipeline to produce two releases: one that has bits of jQuery embedded, and a smaller one that requires jQuery.

EDIT: Thanks to dmethvin [1], I just learned that you can also build your own jQuery [2] that only includes the modules you need.

[1] [https://news.ycombinator.com/item?id=8760352](https://news.ycombinator.com/item?id=8760352) [2] [https://github.com/jquery/jquery#modules](https://github.com/jquery/jquery#modules)

<comment><USER19> It's better to just use one of the jquery versions hosted on the google developer cdn: [https://developers.google.com/speed/libraries/devguide](https://developers.google.com/speed/libraries/devguide) If you link to a popular jquery version, I bet the odds of the user already having the library cached is approaching 95%+ so your dependency is essentially free as no requests will be made in that case.

<comment><USER11> The odds approach 1.7%.

[http://www.i-technology.net/2013/11/the-myth-of- cdn.html](http://www.i-technology.net/2013/11/the-myth-of-cdn.html)

more data: [http://www.stevesouders.com/blog/2013/03/18/http-archive- jqu...](http://www.stevesouders.com/blog/2013/03/18/http-archive-jquery/)

</comment></comment></comment><comment><USER20> Doing ajax without jQuery is also good fun

        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function() {
            if (xhr.readyState === 4) {
                callback(JSON.parse(xhr.responseText));
            }
        };
        xhr.open('POST', url, true);
        xhr.setRequestHeader('Content-Type', 'application/json');
        xhr.send(JSON.stringify(data));

And that's not taking care of errors, edge cases or Internet Explorer _at all_.

In jQuery:

        $.post(url, data)

</comment><comment><USER21> The AJAX examples fall a little flat. Yes, .ajax is a wrapper, and it was written because the API for XMLHTTPRequest is needlessly complicated and verbose.

If you're developing a single page application, you only load jquery once, then do the rest with AJAX calls for JSON and assets. It's worth the <100 KB on initial page load, at least for the projects I've worked on.

<comment><USER22> Not to mention that if you're loading jQuery via a CDN, there's a good chance that your end user has it in their cache already.

</comment></comment><comment><USER23> Next up: you don't need Underscore/Lodash!

Forget this "you don't need JQuery"...JQuery, the entire library, is basically an API bug report against the DOM! What browsers need to start doing is get off their butts and start implementing a real selector implementation like Sizzle. Reduce JQuery to set of polyfils after that.

As for IE7 support. Sorry that still accounts for too much of my traffic to ignore.

<comment><USER24> Are you aware of QuerySelectorAll? I think Sizzle does more but I expect internally most of it delegates to that when available by now - it should support all CSS selectors. [https://developer.mozilla.org/en/docs/Web/API/Document.query...](https://developer.mozilla.org/en/docs/Web/API/Document.querySelectorAll)

</comment></comment><comment><USER25> Who needs an operating system if you can write your own? Then you might as well write a browser, and develop a web language for it, and then you can write your own jQuery type library in that language. Because, why not, you don't NEED to use all these excellent tools already available for which I provide no reason not to actually use them.

I'm _just_ saying, you don't _need_ them.

</comment><comment><USER26> I don't need power steering or an automatic transmission in my car either. And I don't need a garage door opener or a microwave. I don't need a wifi router... I can hard-wire my whole home. There are many things in this life that I do not NEED, but that make life easy. jQuery fits into this same category.

</comment><comment><USER27> You don't need jQuery if you have written better wrapped API library and have already attracted millions of developer to test your library.

For the eco-system point of view, jQuery have been tested in the widest markets for many many years. well written document, many online cases, many supporters, many bug reporters, high cover unit tests,good code quality and so on.

Using jQuery for project is smart move unless high performance requirement.

</comment><comment><USER28> You Don't Need JQuery if your time is worthless, and don't mind spending 20x the amount of time to make your stuff almost work on IE.

</comment><comment> martin-adams Articles like this make me thankful that I've done my 10,000 hours of web development learning the ins and outs of the DOM and it's interactions with JavaScript (mostly topics covered in Crockford's book). Admittedly, about 9,950 of those hours were making it work in IE6.

jQuery is a framework, like many others. Programming is not about learning frameworks, it's about learning the language, it's runtime behaviours and of course software development in general. Frameworks are there to speed up development time.

<comment><USER20> after 10,000 hours you're still calling jQuery a framework?

<comment> martin-adams replace(/framework/ig, 'library')

better?

<comment><USER20> ☺

</comment></comment></comment></comment><comment><USER29> When I first read this post, I thought the link may be to this website: [http://youmightnotneedjquery.com/](http://youmightnotneedjquery.com/) .

I developed a Cordova application recently, and I only needed jQuery for Bootstrap. All custom JS was able to be done using the DOM API. However, I was spoiled since I only had to develop against a recent webkit version (my target was iOS 7)

<comment><USER30> I had the same feeling when started working with angular, were you don't need jQuery or anything else to manipulate the DOM. It is spoiled, I agree, but it feels good to be "free" :p

</comment></comment><comment><USER31> This guy's argument is strikingly similar to that of the one made by those people who are anti-Apple, despite the fact that working with Apple products is a commonly pleasant experience, simply for the fact that they're Apple.

Just because a lot of people use something that they're not being forced to use doesn't necessarily mean that they've been "tricked" into doing so.

<comment><USER15> Using Apple products is a pleasant experience. Using jQuery is to avoid learning how to code while purporting that it makes things easier cross browser. Of course, if that were the real reason, we would also have cQuery and c++Query and so on but, instead, we just learn how to code.

<comment><USER32> In your c and c++ analogies, what are the inconsistent DOM API implementations?

<comment><USER33> Well, to be fair, the APIs aren't very consistent between OSes. But then again, I guess Java is the jQuery of C++. :P

</comment></comment></comment></comment><comment><USER34> Tickets to jQuery UK 2015 are on sale now! [http://jqueryuk.com/2015/](http://jqueryuk.com/2015/)

(Sorry ;))

In all seriousness I'd recommend watching Adam Sontag's keynote from jQuery UK 2014 which covers the "not needing" jQuery stuff [http://vimeo.com/97723665](http://vimeo.com/97723665)

</comment><comment><USER35> Another great resource when trimming down jquery use is [http://youmightnotneedjquery.com/](http://youmightnotneedjquery.com/)

<comment><USER36> ...and then, of course, there's:

[http://youmightnotnotneedjquery.com/](http://youmightnotnotneedjquery.com/)

or

[https://gist.github.com/rwaldron/8720084#file-reasons- md](https://gist.github.com/rwaldron/8720084#file-reasons-md) (discussion: [https://news.ycombinator.com/item?id=7153630](https://news.ycombinator.com/item?id=7153630))

</comment></comment><comment><USER37> Similar resource with many code snippets: [http://youmightnotneedjquery.com/](http://youmightnotneedjquery.com/) and related HN thread: [https://news.ycombinator.com/item?id=7152068](https://news.ycombinator.com/item?id=7152068)

</comment><comment><USER38> Lots of blanket statements in this article. He asserts there is a 'proper' order to learning JavaScript but makes no demonstration of that assertion. For me, jQuery was a gateway that hid much of the incidental complexity of working with a byzantine API (the dom). That was incredibly useful. If every beginner started with trying to understand the DOM, they'd probably be scared off (and rightly so).

<comment><USER15> What you call Byzantine, I call normal. Some things are harder to learn than others but you can't throw your hands up in the air and let someone else (jQuery) do the simple things for you.

Working with the DOM is what we programmers do. I've never seen so many people complain so much about programming than those who use jQuery.

<comment><USER38> The DOM strikes as being composed of layers of incidental complexity that get in the way of the actual problem you're trying to solve. jQuery, or abstractions like it, allow us to compose more elegant and semantically meaningful solutions to problems. If writing boilerplate is interesting for some reason, be it for performance reasons perhaps, then by all means. I find it a bit tedious and appreciate tools that allow me to focus on the problems at hand, rather than obscure browser differences and internal API implementation inconsistencies.

</comment></comment></comment><comment><USER39> If we've heard this argument once we've heard it a million times. Of course you don't need jQuery but unless you are writing an internal-only app and plan on writing everything from the ground up (all your auto-completes, multi- selects, etc) then you do need jQuery.

I am not a fan of a lot of the code that I've seen written with jQuery but jQuery itself is not evil anymore than PHP is evil because people do stupid stuff with it. If you use jQuery correctly it is an invaluable tool that makes your like 100x easier.

Event handling alone, I want to puke when I see the default way to do this, way too much typing, way too verbose. If I had to write that multiple times a day then I would probably create a helper function to abstract it away and I'd be on my way to building my own jQuery. No thank you, I'll take the one that's battle-tested and maintained.

I'm getting sick of seeing this argument, if you work in a bubble then sure, be my guest (I'll be laughing at all the extra typing you will be doing) but if you plan on deploying your code to the real world? Just use jQuery and save yourself a headache.

</comment><comment><USER40> I also don't need a calculator but I regularly use one to do even simple arithmetic operations, because it speeds up the operation and guarantees a certain result with given inputs.

The purpose of an SDK such as jQuery is to help a developer do common tasks without needing to write his own library. If it's used widely in the industry then even better. If it's open source, even more betterer.

</comment><comment><USER41> It's something you see a lot of, especially from non-frontend developers that don't really think twice about downloading an extra 80-90kb of JavaScript. I do find the support for events in JQuery quite convenient, especially for projects that still require IE8 support. Although if that's all you're using it for, there are probably better ways.

</comment><comment><USER42> The tutorial in how to do things without JQuery is actually hugely useful to me.

I have been considering a project where for various reasons it would be much better to avoid JQuery, and I realized that I had no idea how to do some common things without JQuery. This is a well-organized guide.

It would be even better if he took out the three sentences after every section that just say, over and over again, "So why would you use JQuery, isn't this just as good?"

Who cares, sometimes I agree sometimes I don't, and the boilerplate argument repeated over and over sounds whiny and gets in the way of the actual useful information OP has to impart.

If you have your own external reasons to consider doing without JQuery (as I do), then an _honest_ assessment of where you are likely to have the most trouble would be more useful, than just repeating "Really, you're an idiot if you think you need JQuery" over and over again.

Still, useful documentation, thanks.

</comment><comment><USER43> I'm getting very tired of people realizing that browsers now ship with `document.querySelectorAll` and saying that means you don't need jQuery anymore.

</comment><comment><USER44> The best thing about jQuery is that it abstracts away most of the browser- specific quirkiness for you. Using jQuery for that feature alone makes it worth using.

</comment><comment><USER45> Imperative DOM manipulation is a pain one way or another. React does a great job of alleviating this pain by allowing for declarative DOM manipulation, but it would be great to be able to do this without needing the rest of React.

<comment><USER46> You might be interested in the virtual-dom and vdom-thunk NPM packages, which are used in mercury:

[https://github.com/Raynos/mercury](https://github.com/Raynos/mercury)

See also Raynos's "NPM-style Frontend" presentation:

[https://www.youtube.com/watch?v=8w0_Xw7PPFQ](https://www.youtube.com/watch?v=8w0_Xw7PPFQ)

</comment></comment><comment><USER47> I thought it was a joke site, I scanned the first example and saw the single jQuery way of doing something followed by n other ways depending on the browser / IE level.

</comment><comment><USER48> You might not need jQuery but I much prefer jQuery's ajax API to using the XMLHttpRequest

</comment><comment><USER49> Lately everything I build with jQuery I will eventually regret it. The first most annoying problem is that events triggered in jQuery cannot be seen by other modules correctly. Even not by another jQuery instance. There is also the usual size problem, when writing reusable code. For example whenever I want to reuse some 100 lines of code on another project I will have to add almost 100kb of jQuery to make it work. Working also on some bigger everlasting projects, like the wysihtml.com editor, has shown that when you need to patch some browser misbehaviours, native javascript is the only way to go. Such patches need to be as close to their error source as possible.

</comment><comment><USER50> Still reading through but it mentions, IE7 when, as I've found out recently, going to a 2.x jQuery release will break IE8 functionality which is still used within organizations either as the actual browser or through compatibility mode. I didn't care for the format of the page but do like the author's tone and points so far.

I think a lot of the issues people have with jQuery is that (as the article mentions) it's become synonymous with Javascript and abstracts so many things that many people using it don't understand the underlying framework and functions. That and why include more resources if you don't really need to.

<comment><USER42> There is a lot of misconceptions here.

There are two parallel tracks of JQuery maintained, with _identical functionality_, one which supports IE8 and less, one which doesn't.

JQuery team is supporting both. If they don't behave identically, that's a bug. If you don't need IE8 or less support, you can use the smaller higher- performance JQuery that doesn't support IE8. If you do need IE8 or before you use the other variant.

Your code remains identical either way.

JQuery still supports IE8 and less, and has announced no plans to stop.

A lot of people are confused about this, and it's made more confusing by their mistakes about version labelling.

At present, these two variants are JQuery 1.x (IE8 no problem), and JQuery 2.x (IE9 and above). There are identical parallel versions of each. 1.11.0 and 2.1.1 have identical functionality. Yes, this is super confusing, so going forward in the future, they will call the old-browser-compat variant "JQuery compat", and the no-old-browsers variant "JQuery", and version numbers will be sync'd.

[http://blog.jquery.com/2014/10/29/jquery-3-0-the-next- genera...](http://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/)

At present, the JQuery team is still committed to maintaining identical functionality in an old-browser-compat variant, and a newer no-old-browser variant, sync'd, for the indefinite future. And in fact they recommend the Compat version "for most web sites, since it provides the best compatibility for all website visitors."

They could at some point in the future decide to stop doing so -- they have said they won't do so until usage of older browsers has dropped significantly.

<comment><USER50> Thanks for the detailed response, that is clearly my mistake. I did an install from NuGet and went with 2.1.1 making an assumption that the latest build was the greatest build and not really doing a lot of research. On my end, it was a browser compatibility mode setting and a meta tag resolved the issue for just my site and is fine for the usecase.

<comment><USER42> Yep, they've failed at making it clear.

Hopefully the change to calling the variants "JQuery Compatibility" and "JQuery" will help -- although since they are still saying they recommend "JQuery Compatibility" for most sites, I think they should have called it "JQuery" (the compatible one) and "JQuery Future" or "Jquery Non-Compatible" or whatever.

Anyway, you also could have simply dropped in the equivalent JQuery 1.x version for old-browser-compat with no changes to your code.

</comment></comment></comment></comment><comment><USER51> I don't mind using a library for dom manipulation, or for xhr, or for missing ES5 function ... My problem with jquery is that it does all of it, in a very entangled way. This makes it very tempting to mix parts of your application that really shouldn't know about each other (like dom manipulation (UI) and XHR (IO)). I prefer to use a dedicated library for all of those things and to hide the fact that I am using a particular library to the rest of the application. I've seen standardising on one true huge library throughout an application gone wrong several times and it's very hard to refactor your way out of it.

</comment><comment><USER52> Everytime I see one of these I think I should do more with [https://news.ycombinator.com/item?id=7863271](https://news.ycombinator.com/item?id=7863271)

Yes it's useful to know what jQuery is doing underneath but the whole point of it is that you don't have to worry about that and can concentrate on on the rest of your build.

Sure, you might not need it and there are other alternatives, both as plain JS and with other libraries, but it does it's job well and will always be easier for others to pick up when coming onto a project.

</comment><comment><USER53> A couple days after this was posted to HN, the release of jQuery 1.11.2 and 2.1.3 offers an example of why you might want jQuery even if you might not need it.

[http://blog.jquery.com/2014/12/18/jquery-1-11-2-and-2-1-3-re...](http://blog.jquery.com/2014/12/18/jquery-1-11-2-and-2-1-3-released- safari-fail-safe-edition/)

> "A bug like this one emphasizes the benefit of using a library like jQuery > rather than going directly to the DOM APIs."

</comment><comment><USER54> >> In fact, this is completely unneccsary with the existence of forEach and Object.keys() (both available in IE9+).

Oh the eyes of Microsoft shine gracefully upon us, we are so blessed. First, get a spell checker. Second, abandon jQuery at you peril. Browser makers should be required to embed jQuery. jQuery makes JavaScript almost bearable to deal with. That says a lot.

</comment><comment><USER55> Yeah, you don't _need_ anything. You can write all your apps in vanilla JS, but if you feel like speeding up development...

<comment><USER56> and slowing down your website

<comment><USER55> well that's the trade-off, isn't it? unless my app is speed-heavy, i'm not gonna spend the extra man-hours needed (that jquery saves me) so that website runs negligibly faster.

<comment><USER56> good luck ranking in google and explaining your self to your md when your major publishing site takes 20 seconds to load I wont mention any names but I know of two cases of this.

<comment><USER55> if it takes 20 seconds to load, you have bigger problems than jquery.

<comment><USER56> From experience where there is jquery there is normally at least a dozen other js files cut n pasted at random along with a similar number of css files with no thought to efficiency - hell most sites I se they can't even optimised the godamm images using Photoshop properly.

<comment><USER57> "JQuery is bad because some people who use it do unrelated things wrong"? Should I stop driving because some other people who use cars happen to cheat on their taxes?

</comment></comment></comment></comment></comment></comment></comment><comment><USER6>
        "This is your reminder that the DOM is actually a giant,
        mutable, global variable in the middle of your program.
        Act accordingly." –Marco Rogers (@polotek)

[https://twitter.com/polotek/status/543590973846999040](https://twitter.com/polotek/status/543590973846999040)

</comment><comment><USER58> There is a case to not use JQuery: When you really don't need it. I.e. you have one call to JQuery and it can easily be done natively. Then by removing JQuery you make the page download and load faster.

If you are using just the basic JQuery features you could consider Zepto instead, so a smaller download but still giving you the abstraction you desire.

</comment><comment><USER59> Oh noes! An 83KB download, which is probably already in the browser's cache, on your site that is 1MB per request.

</comment><comment><USER60> for those interested in a lighter jquery, most features and same api there are these alternatives:

[https://github.com/kenwheeler/cash](https://github.com/kenwheeler/cash)

[https://github.com/finom/balalaika](https://github.com/finom/balalaika)

<comment><USER61> Also Zepto:

[http://zeptojs.com/](http://zeptojs.com/)

</comment></comment><comment><USER62> An if you care for performance, you shouldn't use jquery. It is very slow:

[http://stackoverflow.com/questions/11503534/jquery-vs- docume...](http://stackoverflow.com/questions/11503534/jquery-vs-document- queryselectorall/21539115#21539115)

<comment><USER63> But if you care about programmer productivity, you use jQuery, then you profile, then you optimise where required.

The last step isn't usually necessary.

<comment><USER62> I would rather choose something else for productivity.

</comment></comment></comment><comment><USER64> Higher level abstractions, are not required if you plan to write your code in assembly. Lets go for it.

</comment><comment><USER65> You sooooo do need jQuery if your web apps needs to run on as many browser/versions as possible.

<comment><USER20> I'd like to see the IE 7/8 versions of these snippets on the site in the OP. Wouldn't be so concise then, eh?

</comment></comment><comment><USER66> I do need JQuery because I want to focus on the application and not nuances of different js implementations. And I want to use the simple selector mechanisms. Then there's plugins, I use those too and many assume/require JQuery.

So no, I disagree. Stupid article.

<comment><USER67> If you spent any time trying to get your website to load in under 1 second, removing jquery plugins is the first thing you do. Not only do you have to load the jquery, you need to load the plugins after you already have jquery which makes it even slower.

</comment></comment><comment><USER68> I guess if you are super optimizing your website then getting rid of all the useless stuff is fine, but at least I don't notice big enough performance increase to get rid of jQuery even if it's just for the $('selector').

</comment><comment><USER69> Except, being old school, I remember 7 or 8 years ago, when everyone would complain about IE compatibility and various quirks between browsers. JQuery apparently sorted all of that out. And now we should go back to the bad old ways?

</comment><comment><USER70> This and you're good for selectors, but there's no right or wrong answer - <USER2> what works for you and the project.

$ = document.querySelector.bind(document); $$ = document.querySelectorAll.bind(document);

</comment><comment><USER71> Of course you don't need jQuery, if your customers are happy that you target only _one browser specific version_.

I think the rest of us will rather keep on using it, or similar library.

</comment><comment><USER72> [https://plus.google.com/110888393967521869195/posts/4REjUe5a...](https://plus.google.com/110888393967521869195/posts/4REjUe5aXGr)

#humor

</comment><comment><USER73> Guaranteed stable, well known, monolithic blob or write something yourself that fits your needs perfectly.

Fear or Love on the web developer scale of needs.

</comment><comment><USER74> My Argument is that you don't need jQuery but you definitely need some kind of library to avoid most common time-consuming tasks.

</comment><comment><USER75> No, I don't _need_ jQuery, but memory really isn't that much of an issue anymore and convenience wins over bandwidth.

</comment><comment><USER76> So why reinvent the wheel? Rename title to "Dom manipulation can be done without Jquery, but use what works for you!"

</comment><comment><USER77> rule of thumb: if you don't think you need to use jQuery, use jQuery anyways.

</comment><comment><USER78> Don't be bad, look the positive of this site, it teachs us jquery

</comment><comment><USER79> Too bad lot's of libraries like bootstrap depend on it. Btw, published some time ago [http://youmightnotneedjquery.com](http://youmightnotneedjquery.com) sums it up well and a good reference for jquery people.

</comment><comment><USER80> [http://youmightnotneedjquery.com/](http://youmightnotneedjquery.com/)

</comment><comment><USER20> jQuery should be pre-JIT-compiled in browsers. performance problem solved.

</comment><comment><USER81> Relevant: [http://vanilla-js.com/](http://vanilla-js.com/).

</comment><comment><USER82> You don't need jQuery if you don't care about ie-9 (which I don't)

</comment><comment><USER83> Swing and a miss

</comment><comment><USER84> I started to use Angular instead of jQuery. It comes with jqlite and a lot of the stuff I would use jQuery for (e.g. form validation) can still be easily done.

<comment><USER84> Why do I get a downvote for this? Angular 1.2 weights around 108kb and jQuery around 1.11 around 96kb and one gets a whole lot of extra functionality with angular if you use its strenghts correctly.

</comment></comment><comment><USER77> Actually I think the biggest reason to use jQuery is the plugin ecosystem. Think about it... if you want to do _anything_ there is a jQuery plugin already written to do it.

</comment><comment><USER85> This is a bunch of drivel. Anyone who knows their ass from a hole in the ground knows there are functions that back jQuery. jQuery just wraps in a nice, easy-to-use solution.</comment>


New book suggests Arthur Conan Doyle based Moriarty on George Boole - <AUTHOR> https://www.irishtimes.com/news/science/could-sherlock-holmes-s-true-nemesis-have-been-a-mathematician-1.3694917 <comment><USER2> Based on what is in the article I wouldn't call this a very strong thesis.

"[...] numerous persuasive similarities. Both characters held chairs at small provincial universities; both won appointments on the basis of outstanding early work; both had interests in astronomy; the two were of similar appearance"

These coincidences are supposed to be persuasive? I know several people like that. Plus the photograph and the illustration are nothing alike!

"[...] Boole was a man of high morals and excellent character, a social reformer, religious thinker and family man. The new book by MacHale and Cohen presents extensive arguments that may account for the dramatic contrast between the two characters."

I haven't read the book but that's some damning praise. The arguments are not persuasive, but at least they're long!

<comment><USER3> Come come, surely it must be the case that _either_ Moriarty was based on George Boole _or_ he wasn't. Tertium non datur!

</comment></comment><comment><USER4> Has anyone ever thought that he based Watson's final opinion of Holmes as "the best, and wisest man I have ever known" on the words of Plato about Socrates?

Plato: "the wisest, and justest, and best of all men whom I have ever known" (Phaedo).

I love finding these little connections (like a detective) while reading or listening to classics.

Like for example anyone play piano here? Earlier this year I finally heard the Beethoven Emperor Concerto and realized that Schumann's "Carnaval" the whole theme of David is taken from that concerto!

Talk about imitation :)

</comment><comment><USER5> Some of you may like this interview with Arthur Conan Doyle, he explains why he created the Sherlock Holmes novels

Rough summary: previously the detective genre had detectives ultimately point out the perpetrator without actually explaining to the reader how and why they came to this conclusion, i.e. the detectives and perpetrators were simple roles in a story, and the story never actually described the process of investigation, which the Sherlock Holmes novels did, irrespective of whether they were realistic or not... Then he starts ranting about spirituality and ghosts and other quackery, like his own "experiences", ... I guess fantasy has its positives and negatives

[https://youtu.be/rZFdH76H1lA](https://youtu.be/rZFdH76H1lA)

</comment><comment><USER6> "Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth."

I'm sure Boole approved of that.

Fascinating how these two contemporaries achieved immortal fame through completely different disciplines.

I wonder if in 100+ years people will rememeber prominent writers or scientists of this age?

<comment><USER7> At least the giants, like Jacqueline Susann and Harold Robbins.

<comment><USER8> Never heard of those and I do read a lot so they hardly qualify as giants even though they have had their share of success. Stephen King, on the other hand, is probably not going to be forgotten any time soon (I find his books dull tbh but nobody cares about my opinion :).

<comment><USER9> Posterity does not work like that. Many authors who were popular disappeared completely from memory, while other who were relatively unknown became extremely popular decades after their death.

Academics play a major role in what we remember about more than 100 years ago, much more than actual success when the book was published. Octave Mirbeau was much much more popular than Marcel Proust when they were both active, but you probably know much more about the latter.

</comment></comment></comment></comment><comment><USER10> >> Sir Arthur Conan Doyle's first Sherlock Holmes story appeared in 1887. Holmes' remarkable conclusions were based on data, logic, statistics, probability, deduction and proof.

Actually, they were based on logical _abduction_. Not deduction.

 _Abductive reasoning (also called abduction,[1] abductive inference,[1] or retroduction[2]) is a form of logical inference which starts with an observation or set of observations then seeks to find the simplest and most likely explanation. This process, unlike deductive reasoning, yields a plausible conclusion but does not positively verify it._

[https://en.wikipedia.org/wiki/Abduction_(logic)](https://en.wikipedia.org/wiki/Abduction_\(logic\))

<comment><USER5> to be entirely fair, it's not how we teach math and logic to students and readers, but all our axioms (which we still can't verify) are the result of abductive reasoning. Sometimes we discovered that a specific abductive reasoning was superfluous and could be derived from other axioms, turning the ex-axiom into a theorem. So the current axiomatic systems and their applications _seem_ entirely deductive usages, but the axioms are in fact still of an abductive nature... this is much more visible in domains like physics, where the teeth of time has not yet gnawed as thoroughly as in the foundations of mathematics...

Edit: just adding: Some day physics might appear like an entirely deductive system (apart from a very small set of axioms or postulates), and hard to discern from the field of mathematics

</comment></comment><comment><USER11> I'm sure Arthur Conan Doyle drew from a number of influences to create Moriarty. Adam Worth and Jonathan Wild are considered inspirations for the character, for example:

[https://www.smithsonianmag.com/arts-culture/review-of-the- na...](https://www.smithsonianmag.com/arts-culture/review-of-the-napoleon-of- crime-the-life-and-times-of-adam-worth-master-thief-144917066/)

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

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

<comment><USER12> There isn't much to the character in the Doyle stories, and he serves more as a plot device than a well developed character. So I kinda think people are trying to hard to find a RL souce for the character. Most of the brief treatment Doyle gives the character can be explained as plot driven.

He's super-intelligent and evil because he needs to be a worthy enough opponent to kill of Holmes. He's a Prof at a small University because he needs a job that both proves his intelligence and is prestigious, but gives him enough time to run a criminal empire. He runs his criminal enterprise via a web of intermediaries because if he was directly involved Holmes could just report him to the cops instead of needing a complicated plan to roll up his criminal network. The specific references to his scientific work might be inspired by some specific scientists, but it seems at least as likely they just sounded to Doyle like the kinda thing a 19th century mathematical genius would get up to.

</comment></comment><comment><USER13> I always though that his death was bit cruel [https://en.wikipedia.org/wiki/George_Boole#Death](https://en.wikipedia.org/wiki/George_Boole#Death)

Died at a young age due to old a lack of medical understanding.

I'm also from Cork and the phrase "What ails you cures you" is still used but normally in the context of a hangover and the suggestion being to go get the hair of the dog.

I wonder what current medical/scientific beliefs will seem as far fetched in the year 2172.

</comment><comment><USER14> "Everything I have to say has already crossed your mind." "Then possibly my answer has crossed yours."

</comment><comment><USER15> ... and Boole is the great great grandfather of Geoff Hinton (back propagation, etc.). The plot thickens!</comment>


Ask HN: What Are Some Locally Copy-able Enterprise Startup Models? - <AUTHOR>

Hello all,
I'm working on a project to document the world's startup ecosystems. I want to get the community to help on on something.
Here's a list of consumer startup models that I believe can be copied if it the model doesn't exist locally already. I'd love your feedback and what you think are copy-able b2b startup models. Thanks!
Transportation - Uber
Entertainment - Yelp
Recruiting - Monster
Dating - eHarmony
Real estate - Trulia
Rental - Airbnb
Gaming - Zynga
Communication - Whatsapp
Deals - Groupon
Online retail - Amazon
Search - Google
Community - Craigslist
Social news - Reddit
Payment - Paypal
Microwork - Taskrabbit
Education - Coursera
Health - webMD
Subscription - Birchbox
Travel - Kayak
Blogging - Tumbler
Dining - Opentable
Ticketing - Stubhub
Events - <USER2> <comment><USER4> Mobile POS and merchant backend - <USER3>

Loyalty programs - Punched/Google

</comment><comment><USER5> Q&A - quora</comment>


Show HN: A reactive search engine - <AUTHOR>

I believe that a search engine without tracking and personalisation needs a better way to refine your search. This is what I am trying to build with Kligl.
http://kligl.com
You can click on any word in the snippet to add this word or remove pages that contain it. Clicking on a date should let you change to sorting by date, etc. - instead of searching for an option in the second page of the advanced search options.
Any feedback or feature requests are much appreciated. <comment><AUTHOR> I integrated HNSearch as well (not yet linked from the main pages):

<http://kligl.com/hnsearch/>

I found some interesting posts when testing it:

[http://kligl.com/hnsearch/#search+sort:old+type:comment+user...](http://kligl.com/hnsearch/#search+sort:old+type:comment+user:pg)

led to

<http://news.ycombinator.com/item?id=2459>

Also this:

<http://news.ycombinator.com/item?id=259132>

Funny, that the idea of a search engine for the best 10k hackers from PG's essay on start-ip ideas is already 3 years old.

Another one:

<http://kligl.com/hnsearch/#dropbox+sort:old+type:comment>

</comment><comment><USER2> I really like it. It's fast, very intuitive and I can definitely see a use for it. The ability to filter results "live" by just clicking on a word is a powerful UI addition. Certainly easier then typing in advanced search operators into the search box.

Nice work.</comment>


Understanding redux-saga: From action creators to sagas - <AUTHOR> https://blog.logrocket.com/understanding-redux-saga-from-action-creators-to-sagas-2587298b5e71 <comment><USER2> This fails to demonstrate any benefit. The end result, ease of implementation, action flow and performance are the same, with a couple extra abstractions in the middle. What does it achieve?

<comment><USER3> One key advantage of redux-saga is testability-- since sagas are essentially functions with their arguments passed in by the saga middleware, it is easy to inject mocked dependencies in a test environment.

<comment><USER4> It isn't hard to create easily testable redux actions using redux-thunk. When you configure the redux store you can use `thunk.withExtraArgument` to provide a service object to your actions, so you can write something like this:

      const getDog = dogId => (dispatch, getState, { DogApi }) => {
        dispatch(fetchingDog(dogId))
        DogApi.getDogById(dogId, (err, dog) => {
          dispatch(err ? dogFetchError(err) : fetchedDog(dog))
        })
      }

      ...

      dispatch(getDog(123))

</comment></comment></comment><comment><USER3> Another benefit of redux-saga not mentioned here is the ability to build stateful sagas. For example, something like a game loop can be encoded in a saga like this:

export default function* playGame({ getState, selectors }) { yield take(GAME_READY);

      const refreshDelay = 1000 / FPS;

      while (true) {
        yield take(START_GAME_PLAY);

        while (true) {
          const {
            gameState: {
              speed,
              isPlaying,
              gameTime,
            },
          } = getState();

          if (!isPlaying) {
            // game play has stopped
            break;
          }

          const timeDelta = refreshDelay * speed;
          yield put(setGameTime(gameTime + timeDelta));

          // sleep
          yield call(delay, refreshDelay);
        }
      }
    }

</comment><comment><USER5> redux-sagas are awesome. If you have a complicated web app (and most apps aren't) then it's a godsend. It really simplifies a lot of the business logic. You do have to be careful about performance though.</comment>


Apple details next-gen multi-touch techniques for tablet Macs - <AUTHOR> http://www.appleinsider.com/articles/08/08/28/apple_details_next_gen_multi_touch_techniques_for_tablet_macs.html

<comment><USER2> This is an article about a patent filing by Apple. When are people going to cry fowl that Apple is abusing the patent system by trying to patent something as obvious as multi-touch? Microsoft was demoing this technology years ago.

Just because Apple is filing a patent does not mean that it is about to be introduced into the market.</comment>


US to ban electronics on flights from a dozen countries, US media says - k-mcgrady http://www.bbc.co.uk/news/world-us-canada-39333424 <comment><AUTHOR> So, its critical that the border agents have power to coerce travellers into unlocking their devices. But it's also critical to ensure at least some travellers do not have all their devices?

 _boggle!_</comment>


Game Mechanics Applied To Angel Investing - <AUTHOR> http://cdixon.posterous.com/game-mechanics-applied-to-angel-investing

<comment><USER2> Sometimes I wonder if Dixon is indeed a very nice guy or if he deliberately tries to construct that image just to be a stark contrast to some other angels.

Anybody had him return all their calls?

<comment><USER3> I've heard anecdotally he is quite the baller.</comment></comment>


The Potentially Huge Market In 'Future-Tense Analytics' - <AUTHOR> http://blogs.forbes.com/ciocentral/2011/06/07/the-potentially-huge-market-in-future-tense-analytics/

<comment><USER2> Nice!</comment>


LESS – The Dynamic Stylesheet - <AUTHOR> http://designmodo.com/less/ Just a short review about LESS. Useful refresh. <comment><USER2> I've written quite a bit in LESS and Sass. My personal preference has been Sass ever since the Sassy Sass syntax.

In Sass, I like

* clear separation of mixins and classes syntax.

* of course, @extend.

* partials naming convention separation from normal compiled sass files.

* compass[1]

* been with Sass for a while and I'm way too comfortable with it.

Edit: Pre-mature submission earlier. Added few reasons why I like Sass.

1\. [http://compass-style.org/](http://compass-style.org/)

<comment><USER3> Compass alone is worth using SASS for me. I've developed on both for about 2 years now. When I get to pick, I pick SASS. They're both very powerful, though. After 8 years of development, they made me love CSS again.

</comment></comment><comment><USER4> Which CSS preprocessor language should I choose? LESS or SASS?

<comment><USER5> Honestly, it probably comes down to your choice of environment. If you like Ruby, use SASS. If you like Node, use LESS. They're both very good and very powerful.

<comment><USER6> Any reason behind this? I've been using sass in node, and was just wondering.

<comment><USER5> Just fewer pieces to move around. If you have a Node install, no need to maintain a Ruby install just for your preprocessor, etc.

</comment></comment></comment></comment><comment><USER7> If you're on a Mac and using LESS, LESS.app (or it's bigger brother CodeKit - which I think also does SASS) is a godsend.

[http://incident57.com/less/](http://incident57.com/less/)

<comment><USER8> Yep, I prefer this app too. The reliance on Ruby or Javascript initially put me off Less.

<comment><USER9> the reliance on ruby kills sass for me.

</comment></comment></comment><comment><USER10> > You might have heard until now of LESS and you might know it has something > to do with CSS and styling websites

Or I might think you are talking about browsing text files..

</comment><comment><USER11> That example of nesting is scary -- if your CSS requires that specific of a selector, something's gone horribly wrong. You're probably fine with #nav a {}.</comment>


Ask HN: See replies when responding to a post - <AUTHOR> Lately, I've noticed that there are a lot of similar responses to some comments that look like a pile on. If someone asks for a definition, you might get 5 or 6 people responding saying the same thing within the same few minutes.
I wonder if it might be better to see the responses to a post when you click "reply" so that you have a chance to see if you aren't just giving the same information as someone else.
Thoughts? <comment><USER2> Variety is the spice of life. Even if 6 people answer a question with roughly the same answer, they will all be a little bit different. Sometimes, it takes something worded slightly different to click for someone.

I would consider this a feature - not a bug.

</comment><comment><USER3> I'd be all for it. I would also like to see the up-the-chain posts on the reply page. I regularly have to open up another tab so I can double-check the context of the discussion as I'm writing. If I just depend on my memory of what was said, it's too easy for me to miss or misremember some detail.

Basically, the reply page subtracts all context, even those the response will immediately appear in that context. We'd get more contextually appropriate responses if the context were visible on the reply page.

<comment><USER3> And now that I think about it a bit more, perhaps the real answer is just for the reply box to appear inline on the discussion page when you click reply.

It'd be interesting to user-test putting the reply box either directly under the replied-to comment or after the other replies. The latter is more indicative of where the reply is likely to end up, and would make it easier to notice when one's own reply is duplicative.

</comment></comment><comment><USER4> I actually wrote my own chrome extension to do this using their search API. I guess I could release it after I get home from this business trip.

Please respond if you'd be interested, and ill reach out

</comment><comment><USER5> Y Combinator doesn't like adding features to Hacker News. It took everything just to have collapsible threads. I can assure you that this won't happen.

This problem exists everywhere. I am not aware of any discussion platform that solved this problem, other than maybe StackExchange, which shows similar questions as you type.

The real solution is a better language which computers can understand semantically, as well as the ability to refactor discussions (merge, split, edit).

<comment><USER6> Now that is a good suggestion, use the stack exchange method.

As you type the response it searches other comments, so you can check for dupe in current thread.

</comment></comment><comment><USER7> Just delete your comment and upvote similar from a competitor.

</comment><comment><USER8> Variety is the spice of life. Even if 6 people answer a question with roughly the same answer, they will all be a little bit different. Sometimes, it takes something worded slightly different to click for someone.

I would consider this a feature - not a bug.

</comment><comment><USER9> Clicking reply should refresh that comment thread.

</comment><comment><USER10> The problem is the branching tree structure. If 3 replies came out at the same time, the author could just reply to one of them within the same thread and be done with it

        A
        B
        C
        D
        E
        F

is better than

        A
         B
          F
         C
         D

For any kind of in-depth discussion. I mean, breadth-first and depth-first as concepts map conceptually pretty perfectly to the conversation structure.

<comment><USER11> That assumes that F as a reply works for all of BCD (and E which seems to have vanished in the second diagram.)

What if B, C, D all express slightly different opinions? Or F isn't a valid reply to E but you could treat it as a reply to E because of the positioning (since that's what defines it as a reply to B, C, D.)

Threading has problems but it definitely avoids mistaken replies and confusion.

<comment><USER10> It's a trade-off.

Depth-first isn't always better, some tangents get ignored, but often one can craft a single solid reply that addresses the points raised by many different people in one go, keeping the discussion on-track. I think in fact this is a more common scenario in real life conversations.

</comment></comment></comment><comment><AUTHOR> Here's an example:

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

<comment><USER12> This should be really easy. Instead of seeing this page [https://news.ycombinator.com/reply?id=13364667&goto=item%3Fi...](https://news.ycombinator.com/reply?id=13364667&goto=item%3Fid%3D13364583%2313364667) You'd see this page [https://news.ycombinator.com/item?id=13364667](https://news.ycombinator.com/item?id=13364667)

<comment><AUTHOR> This is the feature I had in mind.

</comment></comment></comment><comment><USER13> There's a profile setting to delay publishing comments for a number of minutes so it won't consistently work on the rare occasion it's needed.

I like the idea detached from the sort-of-problem because the comment page might change a lot without refreshing between loading the page and reading further down.

</comment><comment><USER14> Variety is the spice of life. Even if 5 people answer a question with somewhat the same answer, they will all be slightly different. Sometimes, it takes something worded a little bit differently to click for someone.

I would not consider this a bug - but a feature.

</comment><comment><USER15> Mega threads cannot be followed in this form imho, I find this sustainable up to about 100 comments or less.</comment>


AppFog (formerly PHP Fog) uses Cloud Foundry For Multi-Language Support - <AUTHOR> http://blog.phpfog.com/2011/08/25/appfog-reveals-cloud-foundry-integration-for-multi-language-support/

<comment><AUTHOR> AppFog is hiring BTW, looking for people who want to be paid to develop Cloud Foundry: <http://blog.phpfog.com/2011/06/10/we-are-hiring/>

</comment><comment><USER2> it took me a fair while to figure out that this article is about multiple _programming_ languages.

<comment><USER3> Yeah, programming languages, of course what other kind of languages are there?</comment></comment>


Disney Plus Streaming Service Unveiled - <AUTHOR> https://www.nytimes.com/2019/04/11/business/media/disney-plus-streaming.html <comment><AUTHOR> Bummer, was hoping to see a mention of Studio Ghibli. Would be great to finally have a streaming option for those. They're the last movies that I still bother with physical copies for.</comment>


Square Takes an IPO Bullet for All of the Overpriced Unicorns - <AUTHOR> http://recode.net/2015/11/06/square-takes-an-ipo-bullet-for-all-of-the-overpriced-unicorns/ <comment><USER2> For those more well versed that I in employee stock options, what does this mean for employees with equity options? I assume it's quite dillutive and will make options granted after last funding round worthless assuming share price stays at ipo price ?

<comment><AUTHOR> Whether it's dilutive or not isn't as big a deal as what the options' strike price is.

If Square has issued options with a strike price based on the Series E share price (which appears to be ~$15.46), then those options are looking like they're going to be under water. It's not unreasonable to assume that the options would be issued at a discount (because they wouldn't have the guaranteed return provisions provided by the ratchet) but there's no way of knowing if that's the case and, if so, what the discount might be.

<comment><USER2> agreed, but the article also mentions that square may have to issue more shares in order to satisfy guarantees it made to investors in previous rounds. How might this affect the financial position of employees with options granted at the series E share price?

<comment><AUTHOR> The number of shares only matters in so much as

(Number of shares) x (Share price) = (Company valuation)

Implicitly, if investors take the view that Square is worth a certain amount, then increasing the number of shares will reduce the value of each share.

The shares Square will be issuing to its Series E investors are designed to increase the proportion of the company that they own so that, even though the pie is smaller, their piece of the pie remains a certain size. In principle, everyone else's share of the pie is, therefore, smaller and less valuable as a result.

<comment><AUTHOR> _As recently as September, the company [Square] handed out stock options to staff — one of the main perks of jobs in the Valley — valuing it at $15.39 a share, or more than 50 per cent above what the shares were deemed to be worth only six months earlier. But less than two months later, a more sombre picture is sinking in. Square's assessment of what its shares are now worth is closer to $12 each._

Source: [http://www.ft.com/cms/s/0/6ad992e6-8792-11e5-9f8c-a8d619fa70...](http://www.ft.com/cms/s/0/6ad992e6-8792-11e5-9f8c-a8d619fa707c.html)</comment></comment></comment></comment></comment>