Hacker News new | past | comments | ask | show | jobs | submit login
Dear Oracle, Please Release the JavaScript Trademark (tinyclouds.org)
261 points by throwaway_4ever on Sept 4, 2022 | hide | past | favorite | 126 comments



> Yet it is obviously the right move to trade a worthless trademark for brand marketing and goodwill.

Just to play devils advocate... I think Oracle has so little goodwill with devs (quite the opposite), that releasing the JS trademark probably won't even move the needle.


They don't make any money from devs anyway. They sell their stuff to the business people who then force it onto devs. When I worked in government, we had some Oracle DBs. They were bought without consulting anyone who worked on the tech teams.


A business still needs to hire people to work on Oracle db. At my company they have trouble hiring for it. They resort to shared service orgs to provide DBA services. That means one DBA per 10-100 application developers. It’s awful. We do anything to avoid oracle because we can’t get a DBA to help us. Even use hadoop hive for non hive use cases.

I guess my point is that these struggles eventually do reach the leaders and they choose something else. We moved off teradata because of shared service orgs so we'll probably leave this type of oracle at some point too. Either a completely self service option of oracle or an open source one.


When you're ready, EDB will be there to make the move as painless as possible :-)


For large corporations and gov organisations I can see how that could plausibly be true... for everything else, not so much. At smaller companies the hierarchy is not so rigid or deep, and people are not so siloed, they must work together more closely and feel each others pain.

I'm a dev at a such a small company, and in a position that I can make or highly influence such decisions. Oracle products will never be in our supply chain because of me - a dev.


Hear, hear! Of course, if you're at a smaller company I expect the Oracle sales reps will be off hunting bigger prey, so that likely helps keep it out of your stack also...


> They were bought without consulting anyone who worked on the tech teams.

I'm gonna bet the managers didn't ask because they knew what the immediate answer would be


> Oracle does not have any products using the trademark … Oracle doesn’t even participate in the development of any of the JavaScript engines

Strangely ignorant from Ryan - Oracle does maintain a JavaScript engine product - GraalJS. In fact is it possibly the only modern engine available under a commercial licence?


Is GraalJS a fork of Node.js?

Because I doubt Ry would write this article if he was one of the top contributors to GraalJS which is what this graph says:

https://github.com/oracle/graaljs/graphs/contributors


Must be a fork because I found my own commits haha

https://github.com/oracle/graaljs/commits?author=styfle


No, not really a fork. GraalJS is a new independent from-scratch implementation of JavaScript. It uses a pair of radically different execution and optimisation techniques known as self-specialising-ASTs, and partial evaluation, and runs on the JVM.

But a sibling project, Graal-Node.js, does include vendored code from Node.js in order to be compatible with Node.js applications. That's where the commits come from I'd guess.

Compare:

https://github.com/oracle/graaljs/tree/master/graal-js

https://github.com/oracle/graaljs/tree/master/graal-nodejs


Nashorn is still maintained too, it’s just no longer in the jdk by default.


Could you successfully argue that its generic at this point? I strongly doubt anyone seriously thinks when you talk about Javascript, you're talking about only products and tools made by Oracle.


I am guessing that Oracle is worried that if they give up (or somehow lose) the JavaScript trademark, that may threaten their ownership of the Java trademark - the later is far more important to them than the former.


IANAL but seems like intentionally giving up the specific JavaScript trademark would actually help with that, since if a disagreement over JavaScript ever went to court and Oracle lost it could very easily domino into the Java trademark. Give it up and it never goes to court.


Can’t you just call it ECMAScript, or are they somehow different these days?

Guy Steele told me once that Sun registered it with ECMA so they could tell people (governments?) that it was a registered standard and that ECMA was the easiest/fastest/most compliant way to get there.

I’d always thought that ECMA was a weird place to register it.


Can’t you just call it ECMAScript

We're at about the right point in the timeline to start calling it YavaScript which both solves the trademark problem and keeps us on the path laid out in prophesy.



Or for the initiated the HNews post of it back in 2014:

https://news.ycombinator.com/item?id=7605687


link to a video


It's there.


Giggled, imagining all those muscle memory typos. It took me a while to start typing "myself" properly instead of "mysql", thanks to Postgres.


YavaScript for the language, Yira for issue tracking. YetBrains for IDEs.


Or JawaScript


Disney enters the chat


Or JavaScript, but not after the type of coffee, but the island.

...wait, no.


How about JECMAScript?

You still get to abbreviate it like JS, use the filename extension ".js", etc.


Too close to Yuck-ma-script.


HotDrinkScript

BeanJuiceScript


Why not just call it 'JS'?

JS doesn't have to stand for anything. It's just 'JS', pronounced jay-ess.


> so they could tell people (governments?) that it was a registered standard

Well, yes that’s the reason why standards bodies exist :)


Normally standards bodies deliberate over the standard. IIRC Guy was saying that they just handed a document to ECMA and and it was stamped “approved”.

Hmm, I see the same was done with Dart…


And C# as well


And the MS Office XML formats


I believe ECMAScript is the specification of which JavaScript is an implementation.


I always have had problem with this definition... what do you mean by "implementation"? in my head "implementations" are "programs".

Like... "C" is a specification, "gcc" is an implementation. "Python" is a specification, "CPython", "PyPy", ... are implementations. "ECMAScript" is a specification, "webkit", "spidermonkey", ... are implementations.

"JavaScript" is a (trademarked) specification, and also "ECMAScript" and "JavaScript" are "very very similar" (wink wink)


> "Python" is a specification, "CPython", "PyPy"

Is Python-the-language fully specified now? Of course there are now a lot of PEPs, but I seem to recall (way back then, even before PEP3000 was a thing) that the Python "spec" was largely the "CPython" implementation (incl. bugs and all), and "CPython" was not actually a real name but emerged from a need to distinguish the original Python implementation from "Python-the-language" as well as alternative implementations such as PyPy, JPython/Jython, IronPython...


Flash's ActionScript was also ab implementation of ECMAScript IIRC


That's one thing I never understood. For me they seemed like completely different languages. Now looking at history in Wikipedia, it seems that old version of ActionScript was based on old version of ECMAScript specification. And ActionScript 2 which introduced strict typing and classes (that look nothing like JavaScript) was partially based on ECMAScript 4(which was abandoned as being too different from previous ECMAScript 3). Latest version of ECMAScript is 13. So at this point it seems like latest versions of JavaScript and ActionScript(3) have as much common as D and Rust. They shared early history but afterwards diverged quite a bit.


How do you see them as diverged? I've spent a lot of time thinking about AS, ES4, and working with modern ES, and if anything I see them as having converged. The largest feature of ES4 that ES3 did not have was classes, which were added in ES6. The second largest feature was optional static typing. Optional static typing is nearly a defacto part of the language (from a community/ecosystem point of view) with the popularity of Microsoft's TypeScript superset.


With diverging I meant more about development process not the feature set.

They might have same features from the perspective of checklist. But path they developed and obtained those features is different, the syntax is different and there are probably also some subtle (if not big) differences in semantics. The similarities in feature list isn't result of 2 language "implementations" getting closer to shared specification, but at least partially looking at what features other programming languages have and then sooner or later developing their own version of those language features. I haven't read the ES4 specification or development discussions for ES6 so I can't tell whether differences are caused by ES6 classes being developed from scratch ignoring how they where described in ES4 or whether classes in actionscript were only very loosely based on the way ES4 described them. Either way the development of two languages at some point forked and further developed somewhat independently.

From what I understand graph is something like this: ES2 -> ES3 ES3 -> ES5 ES3 -> ES4 ES3 -> AS1 ES4 -> AS2 AS1 -> AS2 AS2 -> AS3 ES4 -> AS3 ES5 -> ES6


D20 is an open standard for a certain genre of tabletop role playing games, of which Dungeons and Dragons™ is an implementation. But D&D itself is an abstract concept, with two implementations: the open-game-licensed online “D20 SRD”, and the proprietary set of WotC-published core books.


It's not. ECMAScript is just an awkward name they used because people couldn't agree to use "JavaScript". They're really the same thing.

Implementations of ECMAScript/JavaScript are things like V8 and Spidermonkey.


And people couldn't agree to use JavaScript because the term was trademarked.


Haha asking Oracle to give up legal rights.

Good luck with that :) :) :)

PS I never understood why they called it JavaScript since it has nothing to do with Java.


>PS I never understood why they called it JavaScript since it has nothing to do with Java.

Netscape's Javascript had something to with Sun's Java in the sense that both languages were deliberately positioned together in the Netscape browser back in 1995. Key people from both Netscape and Sun worked together on that. Java would be positioned as the "professional compiled language" and Javascript would be the "easier scripting language". My previous comment with a link to Brendan Eich's explanation: https://news.ycombinator.com/item?id=26502156

But yes, if one only looks at the syntax of Javascript being different from Java -- without any context of what happened in 1995, it does seem like Javascript was misnamed.


If I understand correctly it was a marketing thing (cof cof C#), but also the creators actually had plans to collaborate with Sun and (somehow?) integrate the language with Java.


Oh they did. You could call into the JVM from JS even in early 2010s Firefox. Called LiveScript, I believe.


yup, i wrote a dynamic simulation using this technique in the late 90s, using java to implement a rk45 ODE solver and js/html canvas for visualization and controls.


My only thought was to associate it with the "write once run anywhere" nature of java.


That was meant as a foundation to build some interview questions that might filter out the worst of the crowd.


It does sound confusing. Just like the different versions of java and distributions that we have now as well.

I don’t think they’ll ever do it though, given the history of oracle


What is confusing about there being like 10 OpenJDK forks, but for all practical purposes they are identical even more so than linux distros.

And if you want paid support you ca choose for example OracleJDK, which is otherwise feature-equivalent to OpenJDK (as it is also just a tiny fork), which’s LTS version is free for the next LTS+1 year. This is the same model as Red Hat Linux vs Fedora.


Gets even worse with IBM/Eclipse marketing OpenJ9 with OpenJdk which has nothing do with the OpenJdk project and is a completely different VM implementation.


Just imagine how fans of Solaris and ZFS feel.


I think this should link to here: https://tinyclouds.org/trademark, not the front page.


Call it WebScript or DOMScript or HTMLScript or MozillaScript or something.

ECMAScript is absolutely the worse name for it.


Script


Thank you. I thought I was the only one.


Netscape should name it Netscript


GoScript!


> Oracle doesn’t even participate in the development of any of the JavaScript engines

So anyway have you heard of GraalVM


Just call it JS already. Forget about the "Java" bit, as JS really doesn't have much to do with Java anymore. Forget about ECMA as well -- that's a mouthful -- though I strongly suspect that the people who design JS believe verbosity is a virtue in all of their naming schemes.

Just call it JS and invite the community to come up with whatever silly backronym they see fit. Just super? Jihad script? Jelly sandwich? Juniper spirit? Other languages have been doing it for decades, so why not?


I really like "JihadScript"! But I think it's not offensive enough.


I propose "JS Sucks"


Good. Nice article and nice looking blog. But should have been a private letter to let Oracle save the face of "coming up with this goodwill gesture themselves".


I feel like this isn't a problem that needs solving.

The existence of a trademark doesn't prevent you using that trademark (as in referencing it like "this app is written in JavaScript".)

Clearly Oracle is not defending the trademark, and it is likely its too late to start. Worst case they pick on you, you change your docs to say Ecmascript.

Frankly it's safer where it is, than being released so the USPO or something can issue it to someone else.

A bigger intrinsic problem is lay-programmers confusing JavaScript with Java, and unfortunately there's no fixing that.


Well... Oracle is lead by the most ruthless, unethical, Machiavellian business person in tech and his devoted acolytes. They probably don't gaf. But it wouldn't surprise me for Oracle to decide on some last minute resurrection of the brand and start legal armageddon. (In fact, calling attention to the situation is probably the worst thing to do...)

That said, my guess is all they really want is for it to be a zero cost pain in the ass for Microsoft, Apple, Google, etc.

(Yes... You youngsters might think Bezos or Zuck might be gunning for that title, but they got nothing on ol' Larry. He's evil incarnate. There's reasons those other two are always in the news and Ellison is not. Think about it. Pure evil.)


a) Calling a person evil should be reserved for those that commit truly heinous acts. Not simply being a tough, shrewd businessman in an industry where you need to be.

b) Oracle's CEO is Safra Katz and has been for a while now. And pretty sure she has a lot more on her plate to worry about i.e. existential threat of AWS/Azure/GCP than fighting some meaningless lawsuit.


Wait, but isn't Oracle the company that had actually patented meaningless lawsuits?

Also there are those rumors, that they have 10 managers per developer, and 50 lawyers per manager.

Who knows, maybe Oracle enjoys suing people?


> shrewd businessman in an industry where you need to be.

Let me put it that way, if he was only as shrewd as "needed" he wouldn't be sitting there with billions to his name. Every billionaire is driving a wealth distribution that makes the lives of millions of people worse.


It's just a game they play among themselves, 10 points for every million dollars. Nothing really wrong with it, I'm sure lots would play the same way.

Really the problem is in government for failing to do its job of protecting the public.


Yet somehow people like this manage to employ and fund the livelihoods of tens of thousands of people, established an ecosystem of skilled engineers, and deliver products that run huge swathes of the economy. I’m no particular fan of Ellison, but I’ve worked for a billionaire when he made his money, Mo Ibrahim. Just the nicest guy. His technical smarts and business sense helped launch a key stage in my career and I’ll always be grateful. He deserved every penny he made and everyone I know that worked for any of his companies, and his customers, did very well out of his hard work.

How many careers have you supported? How many products did you conceive and design that transformed an industry? How many families were fed and clothed by wages from your companies? I doubt you’ve done as much good for as many people in your whole life as Mo Ibrahim did in a day at the office. Now he’s off working to transform political culture in Africa.


My friend you need to get a grip. Mo Ibrahim employs people because he makes money off of them; not because he's a saint. Your phrasing makes it sound like Walmart employees should be licking the Walmart brothers boots for the opportunity to make them money.

Billionaires become billionaires by setting up systems and collecting rent. That's it. Whether that's good or bad is a different topic.


All I'm saying is that a system without leaders that have creativity and vision would be a poor thing. Ultimately the question is, who should be in charge of allocating resources. There's a major role for government but I think largely, but not exclusively, it should be private citizens that have demonstrated their ability to start and run businesses and create jobs and products. If you think it should be someone else, you're free to suggest an alternative.


You don't need billions to be a private leader. Or you shouldn't.


You need billions to invest billions. For the most part those billions aren't piles of cash, they are the market value of shares in the companies they own and operate. To take that away from them, you'd be taking away control of those companies. Who are you going to give that control to instead?


Depends on the system.


Like trying to overthrow the government? Maybe secretly funding an insurrection? Don't mean to get political, as I was being hyperbolic for humor on a Saturday night, but you did demand proof.*

This crosses the line from "shrewd businessman" into the evil area. What's wonderful is when Larry's buddy Lindsey gets indicted, he's going to sing like a canary, and Ellison is going to finally get his just rewards. (LOL, just kidding. He's a billionaire.)

1. https://www.washingtonpost.com/politics/2022/05/20/larry-ell...


a) I don't think you get to define words for us all


I must have missed the part where I was hired to define words for humanity.

I was just offering my opinion that there are people on this planet who have caused unspeakable misery not just genocide but industrialised misery. And that throwing around the term evil to apply to a tough and unquestionably unethical businessman devalues it.


Well and in my opinion evil is not boolean attribute but a spectrum so I don't see how it doesn't apply to both?


Every big enough company will have absolutely zero moral and is simply a profit-maximizer AI. Any statement regarding ethics/morals/social issues is simply the result of a pro-contra table anticipating bigger profit from doing so than against.


Exactly, if you don't defend your trademark, you don't effectively have one. It's not enough to have a trademark registered. You have to actively go after people when they infringe. It's not optional. You can't be selective about it either. Oracle has not done that.

There are countless examples of people using the javascript name, incorporating it in books, articles, products, derivative works, etc. So, effectively the trademark has not been defended for decades. All fine with Oracle apparently. They never objected or sent any cease and desist letters. Oracle would not stand a chance in a court trying to enforce it now.


> Oracle would not stand a chance in a court trying to enforce it now.

Assuming that is true (IANAL), do you want to be on the other end of that lawsuit, wasting your time and money?


I agree.

>Careful law abiding engineers bend over backwards to avoid its use

..do they really? It never occurred to me but maybe I don't qualify as careful and law abiding.


It’d probably only be something that’d be relevant to worry about in e.g. technical documentation that ships with a commercial product. That’s the sort of use-case where I’d be worrying about what IP (including trademarks) are being referenced.


I think the post needs a clarification in that ECMAScript is not a language and has nothing to do with the name JavaScript.

ECMA International defines a standard called ECMAScript that implementations such as JavaScript, ActionScript3 (Adobe), TypeScript and probably some more have adopted.

https://blog.risingstack.com/history-of-javascript-on-a-time...


It is very likely that people in the core technical teams are not even aware that Oracle owns the Javascript trademark.


I worked with a team implementing JavaScript at Oracle and of course we knew it.


I stand corrected. My knowledge was anecdotal and limited to OCI and FMW groups.


I hope the release their ZFS as BSD as well.


I hope someone will give me a million bucks. Which is more likely.


JavaScript is trademarked and not related to Java. ECMA should adopt the name “JS”. Just JS, not an acronym. That’s what people call it anyway.


How do you pronounce JS out loud, and why is your way right and the other way wrong?


My vote is “Jizz”, because it’s phonetic. Which will eventually become JizzScript, infuriating everyone bothered by ATM machines and PIN numbers.


I think that name will bother people for more reasons than that XD

But that was of course your point.


Just say the letters? Jay Ess in english, Jota Ese in spanish, etc…

What other way is there ?


In poland people will not be sure if it's Jot Es or if they want to sound cool and say Dżej Es so it's nice and english. Big problem!


You pronounce it as "javascript" in casual conversation, disregarding Oracle's trademark because they're not going to do shit about it. Not even Oracle. Xerox can't stop people from trampling all over their trademark in casual conversation and neither can Oracle.


Does Oracle enforce it? If not, shouldn’t people just start using it? Haven’t people been using it anyway?

I’m not sure I understand what type of activities are being prevented by the trademark.


On the other hand, the community could rename its implementation of JS and go with a new approach, so long as it isn't ECMAScript.


There seems to be some confusion in the comments.

The language is called JavaScript. It was temporarily called other things including LiveScript during early development. It was developed at Netscape to be the scripting language for Netscape's browser and server (yes, you read that right). It was also the basis for a proposed competitor to CSS called JavaScript Style Sheets only ever supported by Netscape 4.

The trademark to the name was held by Sun prior to its acquisition by Oracle. The existence of the trademark led to Microsoft calling their reverse engineered implementation of the language "JScript". In order to avoid fragmentation via incompatible implementations Netscape published an official language spec with ECMA, an international standards organization similar to ISO. Because the specification could not use the trademarked name this led to the name "ECMAScript" which the official specifications have used ever since.

ECMAScript 3 is also the basis for ActionScript 2 used in Flash by Macromedia/Adobe, which is not fully compatible with JavaScript. ActionScript 3 was heavily influenced by the proposed ECMAScript 4, which was eventually scrapped because it tried to do too many things at once (while also intentionally being backwars-incompatible) and none of the companies involved at that point could agree on anything. This led to the heavily downscaled ECMAScript 5 release as a compromise until 2005 when ECMAScript 6 started the current model of yearly releases by defining a multi-stage process for new language features.

The obvious question is why it was called JavaScript to begin with. Again, there are many wrong answers in the comments. The generally accepted history is that Sun and Netscape wanted to cooperate to bring Java into Netscape as the new universal language for applications. Java was already going to be available for cross-platform desktop applications (and later for embedded applications like on feature phones) and Java applets were supposed to bring it to the browser.

According to various people involved at the time, Netscape's own scripting language was considered a problem by Sun so in order to avoid competing with Java, JavaScript received its final name in order to be rebranded as a "light-weight scripting language" alongside the "serious application development language" of Java.

It's also worth mentioning that JavaScript in the browser not only consists of the ECMAScript spec but also the DOM APIs, which were originally written in a language agnostic way because there was no consensus for what the default language for accessing these APIs would be. In addition to JavaScript and JScript, Microsoft also pushed VBScript (based on Visual Basic) and there were some attempts to let Java access the DOM APIs from within the JVM.

With Java applets being mostly dead and JavaScript having survived all other browser scripting languages, DOM spec writers have recently moved to considering JavaScript as the primary implementation language and mapping their implementation agnostic pseudo-language to JavaScript language features explicitly. This should hopefully reduce the number of language quirks in future web APIs (like the various native "list" types that don't quite behave like JavaScript arrays or `document.all` being falsey).

So in short, JavaScript is called Java so not to compete with Java for "serious browser applications" in the 1990s and ECMAScript is originally a subset of Netscape's (and later Mozilla's) JavaScript although JavaScript has since shrunk and ECMAScript expanded (e.g. JS's `let` and `const` outside strict mode have been superceded by ECMAScript's more recent `let` and `const` in strict mode) to the point that both terms are used interchangeably regardless of the runtime environment.

If you're wondering why Netscape went with ECMA of all places instead of something more obvious: neither the IETF nor W3C wanted to get involved in programming language specifications at the time and the ISO process took too long but there was a way to fast-track ECMA standards to ISO standards. Remember that this all happened during the peak of the browser war between Netscape and Microsoft, so this was the only thing that mattered at the time.

If you want to learn more about the early history of JavaScript I'd suggest reading Brendan Eich's written history of it: https://dl.acm.org/doi/10.1145/3386327


> This led to the heavily downscaled ECMAScript 5 release as a compromise until 2005

s/2005/2015

Thanks for accuracy and completeness in your comment! Beyond the year typo, I wanted to add that the DOM "Level 0" was my work in Netscape 2 at first, and JS-inflected. IE3 added VBScript and by IE4 this made Microsoft's DOM0 aka "DHTML" have a mix of styles: as a superset it reverse engineered what I'd done, while adding VBScript-inflected forms such as document.all(id) -- note round brackets (square could be used too).

The W3C's DOM levels 1-3 used IDL and had more of a Java (or just verbose) style. The HTML5 effort at whatwg.org reunified, consolidated, resolved conflicts, and extended with things like the fetch API.

Thanks again, rare to see someone doing homework instead of repeating hearsay or assumptions on HN!


Oops, yes, that was a typo. ES5 came out in 2009 so my timeline would have had to involve some time travel shenanigans to work out.

Having the man himself confirm my understanding of the history of JavaScript means a lot, thank you.


LiveScript would have been better.


Too late. The name was taken when it was free.

https://livescript.net/ (But seems inactive judging by GitHub).

Actually a mostly quite nice little toy language. (Only the OOP part seems messed up a little bit; but besides that it looks quite clean).


I call it JS


I call it JS in official documents, and JavaScript where Oracle can't sue me for it :)


We can call it VanillaScript. Seems appropriate with how we generally call its usage :)


Script


When can we just start calling it ECMAScript


jajascript. ja, because it wasn't really complete yet

jaja because we keep copying over node_modules


"Don't make the mistake of anthropomorphizing Larry Ellison"

https://www.metafilter.com/160710/Dont-make-the-mistake-of-a...


> Do not fall into the trap of anthropomorphising Larry Ellison. You need to think of Larry Ellison the way you think of a lawnmower. You don't anthropomorphize your lawnmower, the lawnmower just mows the lawn, you stick your hand in there and it'll chop it off, the end. You don't think 'oh, the lawnmower hates me' -- lawnmower doesn't give a shit about you, lawnmower can't hate you. Don't anthropomorphize the lawnmower. Don't fall into that trap about Oracle. — Brian Cantrill (https://youtu.be/-zRN7XLCRhc?t=33m1s)

Quote previously posted: https://news.ycombinator.com/item?id=15886728

:-)


Just to clarify: I've always thought this quote was funny, but my point is that if you want Oracle to do this, you'll have to give them a good reason. They can't spend good will.


Never gets old... :-)

"...I am going to try to make through this slide without crying..."

"...and by the way not to put too sharp a point on this..."


They've got so much badwill at this point that it would be pointless trying to get any goodwill out of this.


Since they trademarked Java makes sense to keep the JavaScript trademark. JavaScript was a terrible terrible name, but it is what it is...

This is a non-problem for the world. I never heard of this being enforced in any way.


> JavaScript was a terrible terrible name, but it is what it is...

"LiveScript" was a great name, they never should have changed it.


Banking on Oracle caring about goodwill is not going to be successful.


"You don't think 'oh, the lawnmower hates me' -- lawnmower doesn't give a shit about you, lawnmower can't hate you. Don't anthropomorphize the lawnmower. Don't fall into that trap about Oracle." -- Bryan Cantrill


@dang can we update the URL to https://tinyclouds.org/trademark instead of the blog home page?


There’s absolutely no way that Oracle would release a trademark.


[flagged]


ECMAScript?


[flagged]


^^^ Spam. Don't click




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: