Hacker News new | past | comments | ask | show | jobs | submit login
MathML is a failed web standard (2016) (peterkrautzberger.org)
91 points by auggierose on Sept 23, 2017 | hide | past | favorite | 66 comments



I don't understand what is wrong with TeX.

- As a syntax/language for mathematics, it's the actual standard. Do you think Terry Tao will bother learning some other language for his blog? You might as well argue that English is poorly-specified and the web should switch to Lojban.

- As a layout engine, it encodes all the damn typographical conventions that are in every single research article, academic journal and textbook. In the world.

Trying to replace TeX is so quixotic it makes Urbit sound pragmatic and down-to-earth. It's this whole scorched earth tradition. There just isn't any mathematics out there that uses anything but TeX.


Alright, so I work as a mathematician and I'll strongly agree that there's not good substitute for TeX at the moment for producing mathematical documents. That said, I do periodically look for something better because it's far from perfect. In large documents, I find it difficult to produce easily maintainable mathematical statements since the macro situation in LaTeX is a complete mess. Often times, I have a large formulation that I want to modify only a small part. Now, yes, we could just number all of the equations, change one of them, and then say that the result is the combination of (4), (27), (43), and (45). In fact, we can link them, so that everyone could flip back to these equations. That also makes really hateful to read documents. Really, I want to display all of the equations and I don't want to retype them since I may very well make a mistake and I want that correction propagated around the document. So, we can use macros to help with this, but the definitions have to occur before \begin{document}, which is not where I want to look for an equation. I want a local definition since it's next to what I'm looking at. We could use something like \newsavebox, which I often do, but I often want to just make a reference to part of an equation and this is not a good solution for that. Maybe there's a better macro or way to do that out there, and if anyone knows, I'd love to hear. I could write my own macros, but, really, I find TeX to be a difficult language to work with. I am curious to know if LuaTeX makes this much easier to do and I've been meaning to experiment to find out.

So, yes, in a vacuum I think that math notation in LaTeX works really, really well. However, for a larger document, there's a lot of other features that would be nice to have and they're difficult to implement in TeX.


Fellow mathematician, albeit retired. If I had to make a guess, you may not have spent enough time getting intimate with LaTeX. I don't think I've really encountered the problems you're having and, unfortunately, it has been so long since I've used it that I can't be specific.

I suspect I don't recall having those issues because I avoided them in the first place. LaTeX requires thinking about the whole document before you start it. It isn't easy to work with if you don't approach it that way. Before pressing any keys, think about the document in its entirety.

In my case, I took shorthand notes on paper, did the outline, and then began working on it. It requires a holistic view, and should be envisioned before even pressing a single key. It sounds more like you're fighting it, instead of thinking within it.

These were some of the first things taught to us in the intro to LaTeX class. I realize this is a horribly generic response, but I'd suggest you take an intro to LaTeX class to go back to learning the basics.

LaTeX is pretty versatile and I can't see any reason to replace it. It just means you'll have to learn something new, so you might just as well master the tools you already have.

Again, I realize this is a very generic reply. You're not self-taught with LaTeX, are you? If you are, then I really would like to stress the value of a good professional class. You can do an intro class in just a single semester and there's almost certainly something adequate locally.

There are probably some acceptable online courses but you may have to unlearn some stuff and I suspect a classroom will be easier for that. I strongly suspect I don't recall having those problems because I never encountere them. Of all the classes I took, the intro to LaTeX was one of the more valuable.

Heck, it has been so long that I should probably take it again. It is one of those use it or lose it things and I haven't used it for well over a decade.


I'm just a lowly grad student, but for my Master's thesis, I decided to sit down and learn TeX which just means reading through the TeXBook for a start. Know thy tools, and all that.

In fact, I ended up writing my thesis in plain TeX, and was able to write some nifty macros to solve exactly the kinds of "code reuse" problems you mention.

Anyway, the whole exercise turned TeX from "arcane and painful" to "quirky but powerful" for me. I kind of enjoy hacking around on TeX now.

Plain TeX library support is also surprisingly good. I used amstex for the document style and eplain for some commutative diagram and indexing stuff.


If you're interesting in retooling your approach, you can try using a stripped down format, like Multi-markdown (http://fletcherpenney.net/multimarkdown/features/) and then converting from there to LaTeX or other formats using Pandoc (https://pandoc.org/) or other tools. This has a learning curve by can definitely be easier than trying to wrangle TeX directly.

I did kind of a roll-your-own publishing system (focusing on ePub) in an experimental fashion and it worked okay but I didn't spend too much time on it as I had other concerns. I did a writeup on that here (http://theheratik.net/books/tech-epub/), not that it matters much.


Thanks for the links! I haven't looked at multi-markdown before, but I had looked at a variety of pandoc/markdown/latex solutions in the past. In truth, it's still on my radar and I do think that pandoc represents a really nice, powerful toolchain that is more flexible than latex in many ways. Though, to be sure, they solve related, but different problems. That said, there are a couple of fiddly things that I have not had the chance to investigate such as the algorithmic generation of text, which I alluded to in other posts.

In any case, yes, I think that pandoc may work well. Right now, the two approaches that I'd like to experiment with more are the pandoc/markdown/latex toolchain as well as LuaTex.


Well, fixing the macro situation looks like an entirely different problem than arriving at a new math notation.

Thanks to ubiquitous MathJax and so on much of the TeX-like out there is already some subset that hasn't got the standard programming features of TeX. There's already some core behavioural standard that is arguably better (at what it does) than HTML/CSS as an universal document language.

And: we're starting to talk about massively transpiling to JavaScript rather than adopting a better language for remote applications. JavaScript isn't even that ensconced -- it's much easier to get programmers to change.

Maybe the entire LaTeX document model, based on the idea that the ordinary user doesn't get to do layout, needs to be scrapped. Maybe people want MS Word where you paste your figures where it well damn pleases you.

But even Word has taken to letting you type equations in TeX-like.


i agree completely on the large document problem that LaTeX has, especially when you have big formulas, statements or diagrams that are hard to parse after you have written them and, say, you want to find where you committed a syntax error or made a typo.

i think semantic macros really help with that, but they are not a silver bullet. i'd really like to see editor plugins that convert LaTeX commands to actual symbols (for example, as soon as you write the space after the q in "\neq ", it gets converted to a "=/=", and when you type backspace to erase the "=/=" you get "\ne"). that has been already implemented for languages like agda, and in a simple form is present in text editors that support fonts with ligatures.

i know that what i'm proposing more on the "wysiwyg" side (which some LaTeX fundamentalists might dislike), but i think it would be a very nice thing to have when editing complicated formulas or diagrams.


It’s best, in my experience, for simple expressions. We usually have a lot of those, and this helps it flow like text. Big expressions are so complex,you really want to keep your eyes on the real input.


AucTeX in Emacs can do this, and it’s really nice.


Sounds like you want the capabilities of a tool like Mathematica, MathCAD, or Maxima at hand in your document editor. This part I understand, you would actually DO the math and document the train of thought as you go.

You also want to be able to define subexpressions and reuse them as needed. Is that correct? And you don't want to define those ahead of time? This sounds like the math equivalent of a lazy programmer that wants to use goto and highly unstructured coding practices. You want to write arbitrary expressions and then pull parts of them into other areas of the document without defining them individually. At least that's what I got from your comment.

How about a nice math-document editor with a mode where expressions can be seen as an assembly of previously defined items. Then you could right-click on one and select "go to definition" from a popup menu. That's how the software people do things these days. But if you want to use non-math aware text editors for writing math papers I fear you're never going to get what you want.

TL;DR my impression is that poster wants a very sophisticated math-aware document creating program that has a sort of development mode and display mode. I like it, but am not aware of such. I could also have totally misinterpreted the comment.


Yes, I think we have a misunderstanding. I use Maxima actively, but I do not want to include its calculations in my document. Really, what I'd like specifically is:

1. LaTeX document

2. Ability to define macros locally and more easily. For me, a macro is most of the time just easy textual substitution. However, there are times when I want to generate a piece of text repeatedly with some mild variations.

And, look, LaTeX does most of these things, but there's a huge amount of redundancy when writing up a math document. We sort of get away with things by labeling equations with numbers and referring back to them, but this is largely a remnant from the physical typesetting days when repeatedly typesetting the same expression was laborious and error prone. When we build up a completed theorem from a discussion, I don't want to refer back to old expressions, I want to repeat everything I have there. It creates a contained presentation for the reader. It's easier for everyone, including me, to refer back to later. I should not have to retype everything to do this. TeX is basically a programming language. I should be able to locally define functions and call them when I need them. My complaint with TeX is that it doesn't make this usage all that easy to accomplish and it's, frankly, not all that much to ask for.

--- Edit 1 ---

One concrete example that I'm typing up now: I'm currently typing up some circuit equations from some project. We have a three-phase inverter, so we used a dq0 transformation to simplify things. The equations been the d and q axis are basically the same except for some differences in the subscripts (some are d, some are q, sometimes we reverse things.) In a reasonable programming language, I could just write a function to swap back and forth and code the equations once. When I implement things, that's what I do. When I type them in LaTeX, I type them twice. I shouldn't have to.


If I understand you correctly, you can in LaTeX. \newcommand can be used before \begin{document}, sure, but it really can be used everywhere. The only catch is that the resulting definitions are global, and I know (as a programmer and mathematician) that this is all sorts of bad, but it's workable. It's definitely not an excuse to repeat yourself everywhere. ;)


Ha! I actually didn't know they could be defined locally, so that does help. Thanks! There really are a bunch of little things like this, like looping over subscripts, that would be nice as well. LuaTeX may make these easy, but, again, I've not had experience with it, so I'm not sure.


Macros in TeX and LaTeX certainly can loop over subscripts.


That's always the first thought that occurs to me. Any standard or tool that wants to render mathematical notation has to seamlessly interact with and accurately render AMS LaTeX. Without that, working mathematicians simply won't use it. And TeX in maths is absolutely not going anywhere. MathJax gets this, so MathJax has been successful.


The thing is that TeX math requires a lot of shit, it basically means implementing a full Tex parser and parsing a bunch of things that exist in libraries in the web browser as well as rendering support. MathML being an xml derivative only requires rendering support.


Full TeX is not a good fit for the web as it's designed to typeset paginated documents at a size known at write time. You would standardise on some subset of Math mode LaTeX like MathJax does.

The challenge is then picking the subset of LaTeX. Then maybe someday someone would write a web-LaTeX preprocessor with macros and the like.


It would also mean another Turing complete language embedded in browsers, in addition to… JavaScript, XSLT, GLSL (WebGL), WebAssembly, CSS itself if you squint, fonts, WebSQL (TIL some browsers still support it)… probably more I’m not thinking of.

I guess one more wouldn’t hurt.


A Turing INcomplete TeX copy would be nice. I.e. no macro facility, with common escape sequence implemented in hard code.

I do not encounter TeX users who write their own macros often.


> I do not encounter TeX users who write their own macros often.

But they use packages that they got off CTAN that were written by someone who is not at central office (not that there is a central office, but one would be needed if you stripped out the ability to write serious macros since there would have to be someone adding approved features).


Developers use macros. Now since they are developers, they had less problem develop with a programming language and may prefer to do so than using the TeX macro system. The alt-TeX can simply be extended with plugins or modules.


svg


If you mean that SVG is Turing complete, I was thinking of it, but not having much experience with it, I'm not sure what exactly is Turing complete there (without XSLT, which I mentioned).

If you mean something else, please elaborate :)


SVG animation using SMIL is likely Turing complete, without thinking too hard about this.


TeX is not a web standard. It's not even compatible with how markup languages work to put information on the web. Specific problems that are not addressed either by MathML or by TeX:

1. Accessibility, especially regarding screen readers. There are so many different ways to parse TeX and generate the "same" equation, that there would be no way for a screen reader to produce something understandable for those users that need one. Presentation MathML is just as bad, but the best way to solve this is to move closer to existing web content, not to rely on pre-HTML tech.

2. Text Styling that browsers rely on is incompatible with TeX. I'm not really big on CSS, but it's a standard that works, which can't be said for MathML or TeX. The solution we currently have is to basically implement a js or server side TeX parser that outputs span + css/svg to position the text into a readable equation. It would be much better to have a solution that is compatible with browsers natively. Especially one that would allow web developers to use a different font than Computer Modern.

3. Searchability. Because of the flexibility of TeX/LaTeX, you can have many different ways to render the same mathematical equation. This is okay if your goal is print/PDF, but it doesn't work as well for search on the web. Especially if that search engine is expecting something human native, rather than a string of curly bracers and backslashes.


To clarify, do you mean some subset of TeX, or the same but with some convenient methods from LaTeX, or full TeX, or the same but with some LaTeX, or just full blown LaTeX?

Note that all of these were designed for stand-alone static documents.


Me? I kind of have what I want, it's MathJax. MathJax is a TeX-lite without macros, in essence. And it's used EVERYWHERE.

Just develop a standard based on MathJax, godamit.


The problem with LaTeX is that it still mixes content and styling.

For example, when I've got a final answer I have a macro that I've named "fa", which will insert double underline. This is an attempt on my part to give semantic meaning to the final answer. However, since that macro is mine and not standard it doesn't help much in the grander scheme of things.

LaTeX should have had an absolute separation of style and content.


Yes, this worked so great on the web /s

I read this complaint on the old thread and I think we had 3.. 4 of those "semantic web" standards by now? But here we are, everything is a bunch of divs and extracting meaning from web sites is a task for deep learning neural networks.


Well, at least in math there's a somewhat formal notation for most things at this point? Obviously, mathematicians don't all agree on the precise notation, but there's generalizable ideas like "grouping symbols" (parens, brackets) and "left-grouping symbols" (upper-sigma, upper-pi), etc. etc. that inform the layout? Am I hopelessly misinformed on this? This kind of thing should suffice for 95%+ of things, and if you are an exception then you get to play in "lay it out yourself" land.

One issue that I had with LaTeX formulas was exactly the thing that parent poster was pointing out: You really had to describe the layout of the formula; not just its expression ("... and have at it, layout engine"). It is/was really just a kludge around the box model of TeX in the worst possible way.

Yes, you could produce the most beautiful formulas of them all, but that's just because you spent a huge amount of time learning (La)TeX and tweaking the exact expression of each individual formula[1]. Don't get me wrong, it's was still miles better than the competition at the time if you cared about the quality of the output -- not to mention the severe resource constrains -- but surely we can do better these days? Surely?!?

Btw, I don't think parent poster was talking "semantic web" at all, as I read it at least.

[1] Same deal with pseudocode. Oh god, the amount of time I spent tweaking pseodocode in my university years.


> Btw, I don't think parent poster was talking "semantic web" at all, as I read it at least.

Correct.


TeX is to typeset mathematics as a shell script is to a specific set of actions taken by a computer. Neither come close to precisely defining the desired output without a mountain of intermediate stuff that (a) needs to be present (b) can and does change and break things. This doesn’t mean that there’s anything wrong with TeX, it just means there are square pegs and round holes.


To expand on that, LaTeX is to TeX what Unix is to shells scripts.

Oh and if you don't include at least some LaTeX then anyone used to LaTeX (which is pretty much everyone using TeX) will be annoyed.


Say what you want about MathML but as of now it's the best standard we have for putting math on the web. And there seems to finally be a little bit of traction developing w/r/t getting MathML support into Chromium (and Chrome).

Consider that, as of Feb 14 2017, the "MathML support" issue was the #8 top starred issue for Blink, Google finally seem to be paying a little bit of attention to this.

https://bugs.chromium.org/p/chromium/issues/detail?id=6606

We (layout team and igalia) have a tentative plan to build a MathML implementation on top of LayoutNG and Custom Layout. I've marked this as blocked on CSS Custom Layout and LayoutNG.


> Say what you want about MathML but as of now it's the best standard we have for putting math on the web

I would argue that this holds true for (La)TeX, most sites use JS implementations of it and show the raw (La)TeX code as a fallback (or in an image form) if the user has JS disabled.


That approach works well in terms of compatibility, but my sense is that it's usually much slower than MathML, and with equation-heavy documents can be extremely slow.

I might be unaware of something, though.

MathML isn't perfect, but I much prefer it to anything else on the web at the moment. I'd almost rather see an updated MathML spec than something new, especially one js-based.


MathJaX is sluggish because it's translating stuff after the page loads (and it takes the target browser + window size into account, so it's hard to move it out of the browser).

KaTeX can work as a preprocessor (but has less coverage of special environments and macros), and looks very promising to me. (And as long as you keep the original text in an attribute or hidden element, you can always migrate to something else later.)

The fidelity of MathML that I've seen has been terrible. The only people I've seen make it work is Apple, and there it's only working for their proprietary iBooks files. They render parts of the equation in SVG on top of the MathML, and they've got a special XML file that's tweaking a bunch of MathML layout parameters. I've tried copy/pasting the MathML into an epub, and it looks completely different, even when viewed in the iBooks app.


Could you explain what makes in-browser MathML support better than rudimentary support of LaTeX's math mode?


If you could get in-browser support for LaTeX, that would be great. It might arguably be better than MathML. But do any browsers support that today, and is there any initiative underway to get such support? If so, I'm not aware of it. MathML, OTOH, is supported by Firefox, and I think by Safari, and it there's at least some reason to think Chrome may eventually add MathML support. Not sure where Edge stands on this. But in either case, from a pragmatic standpoint, I believe MathML is close to giving us quality "math on the web" than anything else. That said, I'd be happy to be proven wrong if something else is truly better positioned to do that.


Since the advent of MathJax, the best bet for anyone wanting to present maths on the web has been to write the text in LaTeX and then render with MathJax. The result is that there is a large set of existing web-sites around that have LaTeX source and not MathML source.

No I am no JavaScript fan, and would be very glad if mathse were supported natively in web rendering toolkits. But at least mathjax does gives some sort of workable solution: wehere "workable" means "users can read it" and "authors can write it".

MathML, being unsupported by Chrome fails first thing, and MathML fails the second thing by design, because it was never really meant to be human editable.


What's wrong with mathjax?


The fact that you have to load a large javascript library to faithfully render math equations. I ended up disabling it on my Jupyter notebook server because of it's load time.


MathML rendering is unlikely to be significantly better in many use cases.

Besides, once MathJax is cached, it loads pretty fast.


Load time, not rendering time. Code in the browser won't need to be compiled over and over at runtime.


The render time is fairly fast on most modern browsers on desktop machines (though there's much more variance on mobile devices for some reason).

For the most part, it's good enough for the professional mathematicians on mathoverflow.net, where the math can get quite hairy. (I was active there many years ago, and even then the render speed was better than acceptable)


So just current state of adoption? Kinda lame but such is progress I suppose


TeX is a macro language which makes it non trivial to debug. The output is generated in a non-obvious way from loosely structured input. That being said, TeX math markup is a superior, human friendly format suitable for input to a translator that outputs MathML just as most people aren't writing web page content directly in HTML.


It's very frustrating every time I'm trying to read some webpage via Pocket app and it has formulas rendered with Mathjax (which is very popular because MathML is failed and pre-rendering formulas as images requires complicated tooling) and they don't work in Pocket.



true but we have a better alternative from Khan Academy:

https://khan.github.io/KaTeX/


KaTeX suffers the same issues as MathJax; it has to render some subset of Math LaTeX to something web browsers can render. We now have two standards. All the CSS issues in the article apply as much to KaTeX as anything else.


Yes, we need something better. The correct solution is to have Unicode combining characters, as anything else will require a lot of separate work to be properly supported.

To think about how Unicode combining characters could work, just look at what Mathematica can do with just a few shotkeys: like ctrl-2, ctrl-- (ctrl-5), ctrl-6, ctrl-7 etc.

The matching Unicode combination characters would respectively be: place under a square root, put a something to the right below (and above), put an exponent, put something over.

With these 6 combining characters, you could already solve a large part of the problem and write 90% of the equations: for ex, if you want to type the sum of i=1 to 10 of the square root of alpha to the k bar power:

Type: 𝚺 (ctrl--) i=1 (ctrl-5) 10 (ctrl-2) α (ctrl-6) k (ctrl-7) _

With a proper keymap or shortcuts support, you could write (and render) equations just as fast as you write them by hand. I know, because I take all my notes with Mathematica and the only "magic" I use beside Mathematica combining shortkeys is a third level Unicode mapping for greek letters and some mathematical symbol like infinity, so that AltGr a gives me alpha, AltGr 0 gives me infinity etc.

Also, unlike what you read above, where only sigma and alpha stand out, it would show up in your browser, and you could copy-paste that in any email or text forum -- like HN or reddit!! No need for MathML support, that would be implemented straight in the Unicode rendering engine with the next batch of Unicode changes.

I have been trying to get some people involved, to try to submit a Unicode Math proposal. Nobody seems interested. Maybe with MathML dead, proper Unicode math combining characters will have a better chance.

(NB: in the above, I do not use a combining over bar for k, even if that is possible at the moment with what I think is called a macron. The idea is more general - what if you want to write a letter instead of just a bar over k? we have a few exponents like numbers and latin letters, but what if you want to write greek letters to the top right corner?)


I don’t think shoving all of this complexity in the already incredibly complex OpenType text shaping engines is a good solution here.

Your matrix example below is a good example of the can of worms that opens: there’s an explosion of internal state in the layout engine and a lot of things that Unicode has at least some success in defining (like “are these strings the same except for case” or “when is a set of codepoints a single character”) would become even harder and the set of badly handled corner cases would explode. It’s also unlikely you’d want to have it map that closely to Mathematica’s key bindings since those are designed to let you do things out of order and/or change things.

In the end you’ll just be shifting who ends up refusing to implement your standard from the browser engine to a lower level.


It's a neat idea, but I'm not entirely sold.

How would you implement, amongst others: vectors and matrices, matched auto-sizing delimiters (\left and \right) \operatorname, \limits, \displaystyle, \textstyle? In my line of work, every other line of maths I write requires at least one of these LaTeX features.

Also: \underset / \overset, \underbracket / \overbracket


For vectors, they already exist in Unicode as combining characters so nothing fancy is needed. Just map one of your keys to U+20d7 and use that as you would with an "accent", like the French acute or the German umlaut. Cf http://www.fileformat.info/info/unicode/char/20d7/index.htm

For matrices, here is how you can do it Mathematica style : a (ctrl-enter) b will put b vertically under a, "matrix style". Do it a few times if you need a few rows. (ctrl-), creates additional columns. You need a grammar, with say separators of records, but it wouldn't be hard to defie, and there are already characters for that.

FYI, if you want a above b, but for the fraction a/b, use (ctrl-/) : it will likewise put one above the other, but separated by a bar

This isn't rocket science. It already works in Mathematica. It just requires defining combining characters and a grammar -- or instead of reinventing the wheel, we could reuse something like Mathematica's grammar, which is already quite efficient at that.

Of course, for more complex math, more combining characters will be needed. I just wanted to show here how it would be possible to support most of the casual math notation with a dozen Unicode combining characters.


Those aren't terribly more complicated than some of the rendering in existing languages. For instance ก้้้้้้้้้้้้้้้้้้้้


This is a really wonderful idea. I love the thought that math support could become as ubiquitous as support for unicode strings. (You could search the web for math!!!)

Math is a language, and right now probably the worst supported language in unicode (of those that have been added at all.) Philosophically, this really seems like the right place to put it.


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

There's actually some work on that.


Though I agree with the top comment that the line cited is hardly legible:

W_δ₁ρ₁σ₂^3β = U_δ₁ρ₁^3β+1/8π^2 ∫_α₁^α₂dα'₂ [(U_δ₁ρ₁^2β-α'₂U_ρ₁σ₂^1β)/U_ρ₁σ₂^0β]

Now imagine that same example with the few combining characters I proposed: W_δ₁ρ₁σ₂^3β becomes W (ctrl--) δ₁ρ₁σ₂ (ctrl-5) 3β and it would render much more nicely.


The applications that support this Unicode Math today (Microsoft's Office) provide a lot of typing shortcuts including converting LaTeX \tags into their equivalents. I think the balance in the "plain text" over-verbose rendering of the Unicode Math was to make sure it copy/pastes adequately and flaws in that a bit easier to spot in "plain text" form outside of document math zones and math-supporting OpenType fonts, than some of the combining character options might yield.


I think you also need parenthesis, in mathematica they are inplicititally inserted in the notebook W (ctrl--) δ₁ρ₁σ₂ (ctrl-5) 3β {W (ctrl--) δ₁}ρ₁σ₂ (ctrl-5) 3β {W (ctrl--) δ₁ρ₁}σ₂ (ctrl-5) 3β {W (ctrl--) δ₁ρ₁σ₂} (ctrl-5) 3β

I believe that such a standard would be extremely non-extensible.


Weren't all of these issues solved with latex? Why do we need to start over all for the purpose of making everything xml?


What about VRML ? SMIL ?


Yeah, these too. So? What about them?


two good old things that were forgotten




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

Search: