It’s instructive to see how different MathML is from other math markup languages. Here’s the quadratic formula:
In troff,
x = {-b +- sqrt { b sup 2 - 4ac}} over 2a
In TeX,
x = {-b \pm \sqrt{b^2-4ac}} \over {2a}
In plain Unicode,
𝑥 = (−𝑏 ± √(𝑏² − 4𝑎𝑐))⁄2𝑎
In MathML,
<mrow><mi>x</mi><mi>=</mi><mfrac><mrow><mi>−</mi><mi>b</mi><mi>±</mi><msqrt><mrow><msup><mi>b</mi><mi>2</mi></msup><mi>−</mi><mi>4ac</mi></mrow></msqrt></mrow><mi>2a</mi></mfrac></mrow>
MathML is simply unreasonable to write by hand. Most of the time it’s only ever used as an interchange format, automatically generated by tools.
Indeed, the only time I ever use it is with mandoc(1), the default manpage formatter on BSD, Illumos, and some Linuxes, which converts equations to MathML when converting manpages to HTML.
Again, I'm not saying this is good. Compared to the brevity of TeX or troff, it's difficult to accept. But XML is easier to read when you give in to its heavyweight structure and format it appropriately.
By the way, on my system (OSX, Chrome), the unicode version is beautiful. I had not realized it was a good math option.
Shouldn't the '=' and the minus and the other signs be inside <mo>, rather than <mi>, because they are binary operators, not identifiers? TeX for example, makes a clear distinction in terms of how much whitespace it would surround operators with, vs. identifiers.
In any case, I suspect MathML was intended as an intermediate computer-readable representation, not something that anyone would write by hand (MathJax can compile your LaTeX to MathML). I don't see what's wrong with an intermediate representation that's difficult to manipulate by hand. And unless I misunderstood the article, their point is that MathML is bad as an intermediate representation.
MathML was never intended to be written by hand any more than SVG was. It was designed to provide a standard output format for equation editors. Wolfram created MathML explicitly to prevent TeX from being adopted as a defacto standard on the web because TeX, being concerned only with visual appearance, does not do a good job of describing the structure or semantics of equations. MathML excels in both these areas, providing a fairly simple and standardised visual model which fits well with web browsers, and a rich semantic model.
In other words, MathML is great and it's a much better fit for web browsers than anything else on offer. Just don't write it by hand!
XML is not meant to be written primarily by hand (although I agree some XML languages could be more elegant). The markup part of XML is for the machine; if you remove it from your example, you'll get x=−b±b2−4ac2a, which is, basically, the text content that was meant for the humans.
Now, as a machine language XML is much better than troff or TeX, because it's very easy to parse: it's basically a syntax tree, the result of parsing those other formats, you don't even really parse it, just deserialize. Naturally, it's a very good interchange format. Technically it would be a much better option than a full-fledged JavaScript parser and typesetter because it would've removed the parsing part. (And this is only one of the advantages.)
I've found XML is more suited for proper indentation formatting and reading top to bottom not left to right. When it is in up to down and indented it is VERY readable and can be even more understandable as the elements are well implied.
Blargh. It annoys me that MathML was even a thing. We've already had a perfectly-fine and widely-used markup language for mathematical formulae; it's called TeX.
Ideally, I'd prefer that HTML5 include a <math> tag, or something similar, that takes TeX as input and produces formatted output. A side benefit would mean that every browser, and every system, in the world would have TeX installed!
> A side benefit would mean that every browser, and every system, in the world would have TeX installed!
TeX doesn't have dynamic reflow, is defined by a macro system that involves essentially monkey patching the parser as it goes, lacks anything resembling a DOM, wasn't designed with Unicode or internationalization in mind, is completely unparallelizable, doesn't interoperate with CSS, has its own concept of block and inline layout that doesn't allow for text wrapping around floats without hacks, requires multiple passes to compute various things like tables of contents, and wasn't designed for interactive-level performance. Something syntactically like TeX may well be the solution, but jamming TeX itself into the Web platform wouldn't end well.
TeX is analogous to Presentation MathML but doesn't solve the accessibility concerns because the semantic intent of the TeX source isn't always clear. (How do you read a \phantom{}? Or how can you know that "\left( 7 \atop 3 \right)" should be read as "7 choose 3"?)
> A side benefit would mean that every browser, and every system, in the world would have TeX installed!
Is to run that giant heap of probably not sandboxed or security-audited code in every client actually a thing I would want to have? I mean people are paranoid about js doing unwanted things, but a large distribution of tex code running inside the browser, really?
> widely-used markup language for mathematical formulae; it's called TeX.
For display yes, though it is far larger in scope than that and I wouldn't want to teach someone TeX just for a few formulas, and it is geared for display and not manipulation.
MathML was intended to be just for math type markup so is more concise in that respect, and IIRC was intended to allow automated manipulation in an easy manner (I wouldn't want to do it by hand due to the verbosity of it all, but understanding and manipulating the structure in code must be easier than trying to interpret TeX).
you cannot compute TeX... there are two versions of MathML: presentation MathML (which is like TeX) which shows only the look. And there is content MathML which describes semantic. So you are comparing only one side of the medal with TeX ;) See here https://en.wikipedia.org/wiki/MathML#Content_MathML
But I agree TeX is easier to write and read if you only care about the look and feel.
TeX is not a markup-language. It's a (actually two) turing-complete, proprietary (not defined by anything than it's implementation) programming language.
Having a context-free representation is IMHO a necessity for processing untrusted inputs (e.g. webpages). It also makes it a way faster.
I don't know how many of the people lamenting MathML ever came to exist are active math-on-the-web developers. I for one am dealing with third-party math equations on a daily basis and can only dream of the wonder of ubiquitous MathML support in all major browsers.
As things stand, math handling on the web is inconvenient at best and a nightmare at worst.
Some quick points about the comments here:
- MathML as a spec is akin to SVG, it's meant for the browser/machine first, and not for direct human consumption. You don't read/write SVG by hand, and neither you should MathML.
- Calling MathML a "failed web standard" is fine by me, as long as you continue the remark with "the Chrome and IE browsers have failed mathematicians" and "the math-on-the-web developers have failed as a community".
All you've really written here is that you want a spec and support for properly displaying math content in the browser, but then you jump to happily taking MathML because it already exists in some places. None of that addresses the critiques of MathML as a bad standard, one that fits poorly with the layout and display of the rest of the web.
The author here is saying we want a spec and support for properly displaying math content in the browser, so let's make a sane spec that works with the way the web works, not as if it's in an embedded foreign object viewer.
SVG is actually a great parallel In many instances it is easy to write by hand, until you go to any level of moderate complexity and hit the brick wall of SVG's usability. And that's when you wish it had a sane design, because there are a few aspects that are quite close.
- MathML as a spec is akin to SVG, it's meant for the browser/machine first, and not for direct human consumption. You don't read/write SVG by hand, and neither you should MathML.
Sadly that's not true for SVG. SVG has many parts that are only there to make writing/editing SVGs by hand easier. Circle, rectangle elements, the commas in the path strings (which follow relatively insane rules. Almost all implementations already had bugs in the correct parsing behaviour regarding commas/whitespace)
Do you think other kinds of content should be included in the web spec too? So, special tags for musical notation, special tags for all forms of maps and geographic, geological features, tags to represent chemical structures, tags for all major forms of engineering notation, etc?
To me, it's not that I don't think there is a use case for MathML, it's that it's too content-specific to make sense at the browser level.
The only way it makes sense in my head is if I think of math as a language that browsers should support on the basis of internationalization. That makes some sense to me, but if that's the idea then OP is right they should use standard notation (as we do for every other language) and not XML, and it shouldn't be styleable by CSS at all.
MathML as a spec is akin to SVG, it's meant for the browser/machine first, and not for direct human consumption. You don't read/write SVG by hand, and neither you should MathML.
That's true, but the problem is that MathML is fairly useless without a robust set of tools to manipulate it and some way to do efficient manipulation by hand. These tools didn't develop in any meaningful way and so people haven't adopted it.
MathML by itself is only half an answer without a way to easily convert a more human friendly format bidirectionally without loss of detail.
Some people write their math by hand in LaTeX or other formats, but many use visual tools and draw math similar to drawing diagrams. Then those tools generate whatever source code necessary.
In those scenarios, MathML would be much easier to deal with than most other formats. Also, Presentation MathML support is much easier to implement than full-scale support of LaTeX or other more complete math solutions including Content MathML.
Most of you guys seem to be suffering under a big misconception. MathML was never intended to be typed by humans. Perhaps a few programmers might need to do it but not mathematicians, students, engineers, scientists, etc. Saying things like "I hate typing mathematics in MathML" is much like saying "I hate typing my word processing documents in RTF". Just say no. Like most XML languages, MathML is a computer representation meant to be read/written by software. If you want to enter math notation, use TeX or an interactive math editor like MathType (my company's product).
One big advantage of MathML is the ability to copy-paste from webpages directly into software like Mathematica. I don't think there is currently any alternative to MathML in that respect. The author argues (rightly) about styling and presentation of MathML, but doesn't propose an alternative to this copy-paste problem. May be TeX, when you're using MathJax at least ?
The author knows this problems... he is dealing with that for years because he is one of the MathJax programmer or even inventor?! The question is if you want to maintain a huge standard in the browser (which is not the case for many browsers today) only for copy&pasting (maybe this can also be solved in another way with JS clipboard magic).
The syntax is pretty much the same in Mathematica:
- ToExpression[string, TeXForm] for expressions coming from TeX
- ToExpression[string, MathML] for expressions coming from MathML
But how do you grab the TeX formula? TeX'd up formulae usually have the TeX form in the alt-text portion for the image. For example, the first formula in https://en.wikipedia.org/wiki/Calculus#Fundamental_theorem has the alt-text \int_{a}^{b} f(x)\,dx = F(b) - F(a).
Wikipedia seems to be using a mechanism where TeX code is rendered into images, but on marking and copying into an editor becomes TeX again, wouldn't that be a sufficient solution for copying?
Many standards have failed for the web. Anybody remember VRML? Actually I like it that we have not a broad big big standard which includes MathML which only ~0,1% of people care about in the browser. MathML can stand on its own (encapsulated with JS like PDFs in Firefox) or you can abandon it entirely. You are free to choose. It's the best way for everybody.
Actually I like it that we have not a broad big big standard which includes MathML which only ~0,1% of people care about in the browser.
Did you read the article? That's exactly what we have right now. The author's #1 complaint is that MathML is currently a part of HTML5.
He would like it to be removed from the HTML standard so that MathML could evolve on its own, rather than being constrained by its status as a web standard that's not actually implemented by browsers.
I used VRML to render in realtime, 1994-99, using low end video game cards (overclocked) that output hi-res video, full screen Cosmo Player, record live to tape.
Retakes were trivial, frame rates were 100fps interlaced to video, silky movement - could even take live camera direction.
Otherwise rendering took weeks and most of the budget, mostly contracted for theatre backdrops & live VJing. IMHO VRML died because it was pre open source, Cosmo was locked up tight and never updated.
Realtime in browser 3D from 1994 to 1999, proto-machinima, fun times.
Since we're discussing various math rendering technologies for the web, I'd like to plug MathQuill [1]. The big advantage MathQuill has over other solutions is that the math is live editable in the browser in typeset form. We use it for input on the Desmos graphing calculator [2], and MathQuill is definitely the best WYSIWYG math editor that I have used anywhere, on the web or elsewhere.
"We need to get together with CSSWG/Houdini TF/etc to work out solutions that help those developers who actually solve the problem of math on the web."
Unfortunately, Houdini seems to have deprioritized font metrics info currently so this might not come soon. See this issue for more details:
One of my biggest complaints about Peter K's "MathML is a failed web standard" is that most people read that without taking note of "web" in the middle. MathML has been quite successful in publishing and as a computer representation. As far as whether or not MathML is a failed WEB standard, I have a lot more to say about that here: http://bit.ly/1ZLfCF8.
I think the way forward here with math and other niche document formats (like MusicXML) is to keep them out of the HTML standards and let people create web component libraries that handle rendering.
As a practical matter this will bring implementations to all browsers much faster than waiting for four large organizations to decide that a format is important and allocate resources. Even better is the real-world experience those libraries will gather so that maybe we get something better than what a committee would have designed in isolation.
For mat specifically, TeX really seems like a better way to go for now. I wrapped KaTeX in a web component so that it's easy to use in HTML: https://github.com/justinfagnani/katex-elements
"... MathML is effectively preventing mathematics from aligning with today’s and tomorrow’s web."
I'm probably one of the few that still likes to print things out or buy a physical copy of a book, but I also like reading/producing math for the internet and I often wish there were a better standard out there. I really appreciate how you've laid out several points that demonstrate the situation clearly.
I am building a project and doing research on math-aware search (my project is hosted on https://github.com/t-k-/the-day-after-tomorrow)
As for the search engine for math, it is a pity that MathML has become a standard "input" for mainstream research.
The most famous conference on Math search: NTCIR, is actually publishing its main dataset/corpus in MathML.
Converting MathML back into LaTeX is possible but error-prone for most moderate-complex expressions (I tried it using haskell pandoc).
This makes math-aware search engines have to include a MathML parser. And the most popular digital math document are still mostly written in LaTeX,
math search engine thus needs another tool (e.g. LaTeXML) to convert LaTeX to much more lengthy MathML stuffs.
As a researcher in this field, all I see is MathML brings a lot overhead to our life.
I think LaTeX is still the ideal way to "input" math expression, it is human-friendly and most commonly used math input.
While WEB standard should focus on "rendering" LaTeX.
I have to point it out that I am pretty comfortable about what MathJax provides, but if there needs to be a WEB standard on math,
I wish some day the standard way to write math expression in HTML is something like this: <math> x = \frac{-b \pm \sqrt{b^2 - 4ac}} {2a} </math>
[+] [-] bentley|10 years ago|reply
In troff, x = {-b +- sqrt { b sup 2 - 4ac}} over 2a
In TeX, x = {-b \pm \sqrt{b^2-4ac}} \over {2a}
In plain Unicode, 𝑥 = (−𝑏 ± √(𝑏² − 4𝑎𝑐))⁄2𝑎
In MathML, <mrow><mi>x</mi><mi>=</mi><mfrac><mrow><mi>−</mi><mi>b</mi><mi>±</mi><msqrt><mrow><msup><mi>b</mi><mi>2</mi></msup><mi>−</mi><mi>4ac</mi></mrow></msqrt></mrow><mi>2a</mi></mfrac></mrow>
MathML is simply unreasonable to write by hand. Most of the time it’s only ever used as an interchange format, automatically generated by tools.
Indeed, the only time I ever use it is with mandoc(1), the default manpage formatter on BSD, Illumos, and some Linuxes, which converts equations to MathML when converting manpages to HTML.
[+] [-] scott_s|10 years ago|reply
By the way, on my system (OSX, Chrome), the unicode version is beautiful. I had not realized it was a good math option.
[+] [-] conistonwater|10 years ago|reply
In any case, I suspect MathML was intended as an intermediate computer-readable representation, not something that anyone would write by hand (MathJax can compile your LaTeX to MathML). I don't see what's wrong with an intermediate representation that's difficult to manipulate by hand. And unless I misunderstood the article, their point is that MathML is bad as an intermediate representation.
[+] [-] spicyj|10 years ago|reply
[+] [-] jahewson|10 years ago|reply
In other words, MathML is great and it's a much better fit for web browsers than anything else on offer. Just don't write it by hand!
[+] [-] yepguy|10 years ago|reply
[1]: http://asciimath.org/
[+] [-] Mikhail_Edoshin|10 years ago|reply
Now, as a machine language XML is much better than troff or TeX, because it's very easy to parse: it's basically a syntax tree, the result of parsing those other formats, you don't even really parse it, just deserialize. Naturally, it's a very good interchange format. Technically it would be a much better option than a full-fledged JavaScript parser and typesetter because it would've removed the parsing part. (And this is only one of the advantages.)
[+] [-] wrp|10 years ago|reply
[+] [-] LarryMade2|10 years ago|reply
[+] [-] CaliforniaKarl|10 years ago|reply
Ideally, I'd prefer that HTML5 include a <math> tag, or something similar, that takes TeX as input and produces formatted output. A side benefit would mean that every browser, and every system, in the world would have TeX installed!
At least MathJax can take TeX as input.
[+] [-] pcwalton|10 years ago|reply
TeX doesn't have dynamic reflow, is defined by a macro system that involves essentially monkey patching the parser as it goes, lacks anything resembling a DOM, wasn't designed with Unicode or internationalization in mind, is completely unparallelizable, doesn't interoperate with CSS, has its own concept of block and inline layout that doesn't allow for text wrapping around floats without hacks, requires multiple passes to compute various things like tables of contents, and wasn't designed for interactive-level performance. Something syntactically like TeX may well be the solution, but jamming TeX itself into the Web platform wouldn't end well.
[+] [-] spicyj|10 years ago|reply
[+] [-] elcapitan|10 years ago|reply
Is to run that giant heap of probably not sandboxed or security-audited code in every client actually a thing I would want to have? I mean people are paranoid about js doing unwanted things, but a large distribution of tex code running inside the browser, really?
[+] [-] Tomte|10 years ago|reply
[+] [-] dspillett|10 years ago|reply
For display yes, though it is far larger in scope than that and I wouldn't want to teach someone TeX just for a few formulas, and it is geared for display and not manipulation.
MathML was intended to be just for math type markup so is more concise in that respect, and IIRC was intended to allow automated manipulation in an easy manner (I wouldn't want to do it by hand due to the verbosity of it all, but understanding and manipulating the structure in code must be easier than trying to interpret TeX).
[+] [-] therealmarv|10 years ago|reply
But I agree TeX is easier to write and read if you only care about the look and feel.
[+] [-] spankalee|10 years ago|reply
You use them like so:
[+] [-] hughw|10 years ago|reply
Update: I just read the rest of the comments and discovered KaTeX.
[+] [-] 1ris|10 years ago|reply
Having a context-free representation is IMHO a necessity for processing untrusted inputs (e.g. webpages). It also makes it a way faster.
[+] [-] dginev|10 years ago|reply
The details as to why are here: http://prodg.org/blog/mathml_please/2015-09-16/MathML%20on%2...!
As things stand, math handling on the web is inconvenient at best and a nightmare at worst.
Some quick points about the comments here:
- MathML as a spec is akin to SVG, it's meant for the browser/machine first, and not for direct human consumption. You don't read/write SVG by hand, and neither you should MathML.
- Calling MathML a "failed web standard" is fine by me, as long as you continue the remark with "the Chrome and IE browsers have failed mathematicians" and "the math-on-the-web developers have failed as a community".
[+] [-] magicalist|10 years ago|reply
The author here is saying we want a spec and support for properly displaying math content in the browser, so let's make a sane spec that works with the way the web works, not as if it's in an embedded foreign object viewer.
SVG is actually a great parallel In many instances it is easy to write by hand, until you go to any level of moderate complexity and hit the brick wall of SVG's usability. And that's when you wish it had a sane design, because there are a few aspects that are quite close.
[+] [-] legulere|10 years ago|reply
Sadly that's not true for SVG. SVG has many parts that are only there to make writing/editing SVGs by hand easier. Circle, rectangle elements, the commas in the path strings (which follow relatively insane rules. Almost all implementations already had bugs in the correct parsing behaviour regarding commas/whitespace)
[+] [-] erikpukinskis|10 years ago|reply
To me, it's not that I don't think there is a use case for MathML, it's that it's too content-specific to make sense at the browser level.
The only way it makes sense in my head is if I think of math as a language that browsers should support on the basis of internationalization. That makes some sense to me, but if that's the idea then OP is right they should use standard notation (as we do for every other language) and not XML, and it shouldn't be styleable by CSS at all.
[+] [-] ska|10 years ago|reply
MathML by itself is only half an answer without a way to easily convert a more human friendly format bidirectionally without loss of detail.
[+] [-] analyst74|10 years ago|reply
Some people write their math by hand in LaTeX or other formats, but many use visual tools and draw math similar to drawing diagrams. Then those tools generate whatever source code necessary.
In those scenarios, MathML would be much easier to deal with than most other formats. Also, Presentation MathML support is much easier to implement than full-scale support of LaTeX or other more complete math solutions including Content MathML.
[+] [-] PaulTopping|10 years ago|reply
[+] [-] satbyy|10 years ago|reply
[+] [-] therealmarv|10 years ago|reply
[+] [-] vlasev|10 years ago|reply
- ToExpression[string, TeXForm] for expressions coming from TeX
- ToExpression[string, MathML] for expressions coming from MathML
But how do you grab the TeX formula? TeX'd up formulae usually have the TeX form in the alt-text portion for the image. For example, the first formula in https://en.wikipedia.org/wiki/Calculus#Fundamental_theorem has the alt-text \int_{a}^{b} f(x)\,dx = F(b) - F(a).
[+] [-] elcapitan|10 years ago|reply
[+] [-] therealmarv|10 years ago|reply
[+] [-] pavlov|10 years ago|reply
Did you read the article? That's exactly what we have right now. The author's #1 complaint is that MathML is currently a part of HTML5.
He would like it to be removed from the HTML standard so that MathML could evolve on its own, rather than being constrained by its status as a web standard that's not actually implemented by browsers.
[+] [-] deepnet|10 years ago|reply
Retakes were trivial, frame rates were 100fps interlaced to video, silky movement - could even take live camera direction.
Otherwise rendering took weeks and most of the budget, mostly contracted for theatre backdrops & live VJing. IMHO VRML died because it was pre open source, Cosmo was locked up tight and never updated.
Realtime in browser 3D from 1994 to 1999, proto-machinima, fun times.
[+] [-] joshvm|10 years ago|reply
[+] [-] jwmerrill|10 years ago|reply
[1] http://mathquill.com/
[2] https://www.desmos.com/calculator
[+] [-] spicyj|10 years ago|reply
Unfortunately, Houdini seems to have deprioritized font metrics info currently so this might not come soon. See this issue for more details:
https://github.com/w3c/css-houdini-drafts/issues/135
(However, for math we often use webfonts anyway so it is practical to send down glyph metrics with the fonts. That's what both MathJax and KaTeX do.)
[+] [-] PaulTopping|10 years ago|reply
[+] [-] spankalee|10 years ago|reply
As a practical matter this will bring implementations to all browsers much faster than waiting for four large organizations to decide that a format is important and allocate resources. Even better is the real-world experience those libraries will gather so that maybe we get something better than what a committee would have designed in isolation.
For mat specifically, TeX really seems like a better way to go for now. I wrapped KaTeX in a web component so that it's easy to use in HTML: https://github.com/justinfagnani/katex-elements
You use it like:
I imagine the equivalent for music will be better than MusicXML[+] [-] intrasight|10 years ago|reply
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] mccourt|10 years ago|reply
I'm probably one of the few that still likes to print things out or buy a physical copy of a book, but I also like reading/producing math for the internet and I often wish there were a better standard out there. I really appreciate how you've laid out several points that demonstrate the situation clearly.
[+] [-] ga6840|10 years ago|reply
Converting MathML back into LaTeX is possible but error-prone for most moderate-complex expressions (I tried it using haskell pandoc). This makes math-aware search engines have to include a MathML parser. And the most popular digital math document are still mostly written in LaTeX, math search engine thus needs another tool (e.g. LaTeXML) to convert LaTeX to much more lengthy MathML stuffs. As a researcher in this field, all I see is MathML brings a lot overhead to our life.
I think LaTeX is still the ideal way to "input" math expression, it is human-friendly and most commonly used math input. While WEB standard should focus on "rendering" LaTeX. I have to point it out that I am pretty comfortable about what MathJax provides, but if there needs to be a WEB standard on math, I wish some day the standard way to write math expression in HTML is something like this: <math> x = \frac{-b \pm \sqrt{b^2 - 4ac}} {2a} </math>
Instead of: <math display="block"> <mrow> <mi>x</mi> <mo>=</mo> <mfrac> <mrow> <mo>−</mo> <mi>b</mi> <mo>±</mo> <msqrt> <mrow> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo>−</mo> <mn>4</mn> <mi>a</mi> <mi>c</mi> </mrow> </msqrt> </mrow> <mrow> <mn>2</mn> <mi>a</mi> </mrow> </mfrac> </mrow> </math>
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] _pmf_|10 years ago|reply
Well, the line's over there.
[+] [-] jjuhyun007|10 years ago|reply
[+] [-] StreamBright|10 years ago|reply
[+] [-] WhitneyLand|10 years ago|reply
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] cant_kant|10 years ago|reply
MathML is reinventing the wheel. Only, the MathML wheel is square, flat and breaks when used.
[+] [-] wodenokoto|10 years ago|reply
https://news.ycombinator.com/item?id=11445369