Show HN: Fancy fonts you can use almost anywhere - <AUTHOR> https://beautifuldingbats.com/hey-howd-you-do-that <comment> X-Istence This is (ab)using unicode, for example the F is actually a Mathematical Bold Fraktur Capital F:

[https://www.compart.com/en/unicode/U+1D571](https://www.compart.com/en/unicode/U+1D571)

This is terrible for screen readers and the like which are unable to read or understand these unicode characters making accessibility a real concern.

<comment><AUTHOR> I wonder actually. Google seems to understand these, you can search with them. I wouldn't be surprised if screen readers understand these symbols. They're originally for Mathematics, and I'm sure there's plenty of blind mathematicians.

<comment><USER3> Wow, that's actually pretty neat: [https://www.google.com/search?q=site%3Anews.ycombinator.com%...](https://www.google.com/search?q=site%3Anews.ycombinator.com%2F+Fancy+fonts+you+can+use+almost+anywhere)

Anyone know if there are any existing libraries that do this conversion?

<comment><USER4> The ICU [1] transliterator does this. Here is an example showing how to use it:

        icu::ErrorCode status;
        auto t = icu::Transliterator::createInstance("Any-Latin; NFKD", UTRANS_FORWARD, status);
        t->transliterate("unicode string");

[1] [http://site.icu-project.org/](http://site.icu-project.org/)

</comment></comment></comment></comment><comment><USER5> HN is a plain-text site, so we originally buried this. But then we got an email we couldn't refuse (see below). So have at it.

All: Please don't submit stories with non-plaintext titles, and please don't post non-plaintext comments in other threads. Thanks!

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-

𝕀 𝕣𝕖𝕔𝕖𝕟𝕥𝕝𝕪 𝕡𝕠𝕤𝕥𝕖𝕕 𝕒 𝕡𝕣𝕠𝕛𝕖𝕔𝕥 𝕥𝕠 𝕊𝕙𝕠𝕨 ℍℕ,

𝒶 𝓌ℯ𝒷𝓈𝒾𝓉ℯ 𝓉𝒽𝒶𝓉 𝒸ℴ𝓃𝓋ℯ𝓇𝓉𝓈 𝓉ℯ𝓍𝓉 𝒾𝓃𝓉ℴ

𝔐𝔞𝔱𝔥𝔢𝔪𝔞𝔱𝔦𝔠𝔞𝔩 𝔄𝔩𝔭𝔥𝔞𝔫𝔲𝔪𝔢𝔯𝔦𝔠 𝔖𝔶𝔪𝔟𝔬𝔩𝔰.

𝐓𝐨 𝐦𝐲 𝐬𝐮𝐫𝐩𝐫𝐢𝐬𝐞 𝐚𝐧𝐝 𝐝𝐞𝐥𝐢𝐠𝐡𝐭 𝐢𝐭 𝐬𝐡𝐨𝐭 𝐭𝐨 𝐭𝐡𝐞 𝐭𝐨𝐩,

🅸'🆅🅴 🅽🅴🆅🅴🆁 🅷🅰🅳 🆂🆄🅲🅷 🆂🆄🅲🅲🅴🆂🆂,

𝚋𝚞𝚝 𝚝𝚑𝚎𝚗 𝚒𝚝 𝚠𝚊𝚜 𝚛𝚎𝚖𝚘𝚟𝚎𝚍, 𝚒𝚝 𝚜𝚎𝚎𝚖𝚎𝚍 𝙷𝙽

𝔣𝔢𝔞𝔯𝔢𝔡 𝔴𝔢'𝔡 𝔞𝔟𝔲𝔰𝔢 𝔬𝔲𝔯 𝔫𝔢𝔴-𝔣𝔬𝔲𝔫𝔡 𝔭𝔬𝔴𝔢𝔯.

𝙉𝙖𝙩𝙪𝙧𝙖𝙡𝙡𝙮, 𝙄 𝙘𝙤𝙣𝙨𝙞𝙙𝙚𝙧 𝙩𝙝𝙞𝙨 𝙖𝙣 𝙞𝙣𝙟𝙪𝙨𝙩𝙞𝙘𝙚,

𝔸𝕟𝕕 𝕒𝕤𝕜 𝕥𝕙𝕒𝕥 𝕪𝕠𝕦 𝕔𝕠𝕟𝕤𝕚𝕕𝕖𝕣 𝕞𝕪 𝕡𝕝𝕚𝕘𝕙𝕥…

𝑰 𝒂𝒎 𝒂 𝒚𝒐𝒖𝒏𝒈 𝒘𝒆𝒃 𝒅𝒆𝒗𝒆𝒍𝒐𝒑𝒆𝒓,

𝖔𝖋 𝖔𝖓𝖑𝖞 𝖙𝖜𝖔 𝖘𝖈𝖔𝖗𝖊 𝖆𝖓𝖉 𝖊𝖎𝖌𝖍𝖙 𝖞𝖊𝖆𝖗𝖘.

𝕥𝕣𝕪𝕚𝕟𝕘 𝕥𝕠 𝕞𝕒𝕜𝕖 𝕞𝕪 𝕨𝕒𝕪 𝕚𝕟 𝕒𝕟 𝕦𝕟𝕗𝕠𝕣𝕘𝕚𝕧𝕚𝕟𝕘 𝕨𝕠𝕣𝕝𝕕.

𝒲𝒽𝒾𝓁ℯ 𝓉𝒽𝒾𝓈 𝓉ℴℴ𝓁 𝒾𝓈 ℯ𝓃𝓉𝒾𝓇ℯ𝓁𝓎 𝒻𝓇ℯℯ,

𝚒𝚝 𝚠𝚘𝚞𝚕𝚍 𝚑𝚎𝚕𝚙 𝚖𝚎 𝚋𝚞𝚒𝚕𝚍 𝚌𝚘𝚗𝚗𝚎𝚌𝚝𝚒𝚘𝚗𝚜.

🅢🅞 🅟🅛🅔🅐🅢🅔 🅟🅤🅣 🅘🅣 🅑🅐🅒🅚

𝑰'𝒅 𝒓𝒆𝒂𝒍𝒍𝒚 𝒂𝒑𝒑𝒓𝒆𝒄𝒊𝒂𝒕𝒆 𝒊𝒕

<comment><USER6> TIL score = 20

<comment><USER7> Yeah I wouldn't call 48 young. Btw "4 score and 10" is still basically how the French say 90.

<comment><USER8> > Yeah I wouldn't call 48 young

I read this as sarcastic/self-deprecating humor

<comment><AUTHOR> I was just about to go to bed, when I had the thought—did i write two score? and sure enough, i did.

I meant one. I'm one score and eight.

</comment></comment></comment></comment></comment><comment><USER9> Ỹ̹̼̰͚̺̥ẻ̥̏p͔̭͙̐ͪ̇͊,̤̪̯̙̣ ̰̣̼̻̺͈a̜͚̟ll ̮̼̙̗o͇f̜ t̳̬͍̤͖h̝o͉͚̩̗s̠͙̗̝̬͕ͅḙ͇̬̱͔̟ ͖̘̖͉ͅa͇̥̖͎̜͇r͓̳e͔̙͙ ̞̦͈u̪̤̳̟̞̰s̼̣̩̗i̭̯n͔̟̞͕̹g̩͇͍̗͖̻ ͕̪̮̩v͙̳͍̞͓ͅa̹̫̰ͅlịd̯͚̘̯ ̤̙A̜̪S̗͎͖̥̠̳C͇̮I͓̭̟̲I̦̟̲/̶̞̞̱͈̰̣͙̥̹̪̯͚̝͈̹̹ ̛͈̱̻͍̬̟͙̰̠̟̖̕Ú̡͉͙̻̗͙̭͉̖̖n̨̡̗̩͈̭̻͕̭͇͇̲͙̖̫̯̜͚͈ͅì̷̪͎̜̜̠͇̩͙̗̯͍̮̜͖̮͓͓̫c̺͉̦͓͙̤̼̰̀͠ͅo̯̜̥̣̯͕̻̮͘͡d̖͉͈̬͍̩͚̬̯̰̳̀́͞ͅe̡̗̻̫͕̙̘̲̫̦͉̬̖̭̺͡͝ ͖̺̳̟͓͇c̠̟͎̼̲̳h͖̣͕̯a̜͔͉̼̮r̗a̰̘̭͚̠̮̝c̱̰̦͕̰ͅͅt͉er̟͉̫͍̥̦s͈͖̤̞.

...

日本の作品も (🅙🅐🅟🅐🅝🅔🅢🅔 also works)

中国也有作品 (ℭ𝔥𝔦𝔫𝔢𝔰𝔢 too)

etc.

╔═════════════════════════════════════════════════════════════════════════════════════════╗

║ Those have been around for a very long time and were very popular on teen blogging platforms like skyrock, myspace, etc. ║

╚═════════════════════════════════════════════════════════════════════════════════════════╝

ヾ(^-^)ノ

<comment><USER10> We called those corrupted-looking fonts "Zalgo"

<comment><USER11> Name coming from this post IIRC: [https://stackoverflow.com/a/1732454/1091116](https://stackoverflow.com/a/1732454/1091116)

<comment><USER12> Zalgo comic edits started on SomethingAwful many many years ago, and had a resurgence on 4chan many years ago that lead to the Zalgo text corrupter.

<comment><USER13> >Zalgo comic edits started on SomethingAwful

Everything started on SomethingAwful many many years ago.

<comment><USER14> All your base

<comment><USER15> How are you, gentlemen?

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> Please don't use this. Concrete example: if you use the OpenDyslexia font and have configured your browser to override individual website's fonts, this is what you see: [https://i.imgur.com/aCk2ShW.png](https://i.imgur.com/aCk2ShW.png)

</comment><comment><USER17> I'm just seeing black boxes with X marks inside. Can't read a thing. This is on chrome on my Moto G4.

<comment><USER18> Update your browser (or install firefox mobile) - works just fine on my motog

<comment><USER17> Firefox just shows gray boxes. Both browsers are the latest available: 71.0.3578.98 for chrome and 63.0.2 for firefox. Automatic updates are on as is the default, I think, for everybody. There are no pending updates right now for anything. I'm using the android that came with the phone, which is stock android 7.

Anyway, the point of my post was to show that "you can use almost anywhere" should be taken with an appropriate amount of salt. I take a spoonful.

</comment></comment></comment><comment><USER19> Note: To see what Unicode characters are in a piece of text, one can paste them into a tool like Uniview: [https://r12a.github.io/uniview/](https://r12a.github.io/uniview/) (Developed by one of the W3C i18n people)

</comment><comment><USER20> 𝒞ℯ𝒸𝒾 𝓃'ℯ𝓈𝓉 𝓅𝒶𝓈 𝓊𝓃 𝒻ℴ𝓃𝓉

<comment><USER21> *une (car une police)

</comment></comment><comment><USER22> Interesting, looks like Firefox automatically resolves these to the real letters in the address bar, but leaves them as is for google search. Nice job aggregating these into an easy-to-use font.

<comment><USER23> I'm guessing you mean on a desktop? On my Android phone, Firefox renders each letter as a grey box. Had to switch to Chrome to see the actual text :(

<comment><USER24> Seen a few comments like this. Old Version of Android? Because my FF on Android 8.1 renders it flawlessly.

<comment><USER25> What fonts are present (and therefore what characters will render successfully) depends not just on the version of Android, but also on the decisions of the device vendor about what to include.

<comment><USER23> I have an Android One phone running 8.1.0. I would normally expect font issues to be related to the underlying OS, but then I don't understand why Chrome works and Firefox doesn't.

</comment></comment></comment></comment></comment><comment><USER26> Nice! Submission's UI is way slicker, but for more options and a more OG-web feel, this page is my go-to for these: [http://qaz.wtf/u/convert.cgi?text=This+is+pretty+fun+too.+Do...](http://qaz.wtf/u/convert.cgi?text=This+is+pretty+fun+too.+Do+something+for+your+group+tag)

</comment><comment><USER27> I've been using [http://qaz.wtf/u/convert.cgi](http://qaz.wtf/u/convert.cgi) for ages. Little bit more dated interface, but same idea. That utility also does some pseudo-alphabets using characters from other scripts.

</comment><comment><USER28> Doesn't seem to work on Android devices. All I see is missing unicode characters. Roboto doesn't seem to have have these glyphs.

On Mac, most of the glyps in the title seem to be from STIX font.

<comment><USER29> Works for me, Chrome on OxygenOS (OnePlus).

<comment><USER14> LG G6 Stock 7.0. Everything is a grey block

</comment></comment></comment><comment><USER30> There is some explanation here: [https://news.ycombinator.com/item?id=18468045](https://news.ycombinator.com/item?id=18468045)

</comment><comment><USER31> It should definitely include Zalgo Text (or Cthulhu text as I know it): [https://www.zalgotextgenerator.com/](https://www.zalgotextgenerator.com/)

I know it from the first reply here, which I would say it's a well known StackOverflow question/answer by now: [https://stackoverflow.com/q/1732348/938236](https://stackoverflow.com/q/1732348/938236)

</comment><comment><USER32> 𝖋𝖆𝖓𝖈𝖞 𝚏𝚊𝚗𝚌𝚢 𝕗𝕒𝕟𝕔𝕪 𝒻𝒶𝓃𝒸𝓎 𝙛𝙖𝙣𝙘𝙮 ⓕⓐⓝⓒⓨ 🅵🅰🅽🅲🆈

<comment><USER33> Interesting - I thought using Unicode characters would break text search capability - but when I did the old Ctrl-F 'find' in Chrome and looked for the word 'fancy', it detected all of the above. Intriguing, because in another thread here, there is mention of a gothic 'a' not being treated as a standard letter 'a'...

<comment><USER34> One of the hardest parts of Unicode is properly implementing tolower() - <USER2> is often used for text search.

I haven't delved into the symbol area of Unicode you're talking about here but I'd bet those all evaluate to "fancy".

<comment><USER34> [Edit]: Except that's probably not what's going on here. Someone went out of their way to treat symbols containing text as plain text for searching.

</comment></comment></comment></comment><comment><USER35> Whenever Fraktur comes up I feel compelled to link to one of my favorite Wikipedia articles, about a German ideological debate centered around two font faces, Antiqua and Fraktur: [https://en.wikipedia.org/wiki/Antiqua%E2%80%93Fraktur_disput...](https://en.wikipedia.org/wiki/Antiqua%E2%80%93Fraktur_dispute)

</comment><comment><USER36> I notice this is already being abused in submissions to HN. Sigh. A user being able to override a site's restrictions on their input seems like a horrendous idea, not to mention the accessibility implications.

Just looking at the comment section here I have concluded that this is a blight on the web. Sites (unfortunately) should go ahead and update to strip this BS out

</comment><comment><USER37> ...and break the crap out of most software.

<comment><USER38> And yet it works in the weirdest places. Saving some of the text in a file and opening it in a Python interpreter works fine, it even counts the numbers of letters right.

<comment><USER39> You can even use it in your Python code, for better or worse:

      for 𝖓 in 𝖗𝖆𝖓𝖌𝖊(50):
          if 𝕟 % 15 == 0:
              𝕡𝕣𝕚𝕟𝕥("𝔽𝕚𝕫𝕫𝕓𝕦𝕫𝕫")
          elif 𝓃 % 3 == 0:
              𝓅𝓇𝒾𝓃𝓉("ℱ𝒾𝓏𝓏")
          elif 𝓷 % 5 == 0:
              𝓹𝓻𝓲𝓷𝓽("𝓑𝓾𝔃𝔃")
          else:
              𝒑𝒓𝒊𝒏𝒕(𝒏)

The identifiers are normalized.

</comment></comment></comment><comment><USER40> This is fantastic. How does this work?

<comment><USER41> 🄸 🄱🄴🄻🄸🄴🅅🄴 🅃🄷🄴🅈'🅁🄴 🅄🄽🄸🄲🄾🄳🄴 🄲🄷🄰🅁🄰🄲🅃🄴🅁🅂

</comment></comment><comment><USER42> I am partial to using Unicode Emoji to add graphics/icons to applications that don't support those. Surprisingly, almost no software removes emoji symbol range (HN does, wisely). But this seems more annoying than clever. I mean, it's still text, except barely readable and bound to break some common-sense UI interactions.

</comment><comment><USER43> I upvoted this post for two reasons: 1) Unicode fuckery 2) I want it to end up next to the Millitext post from today

</comment><comment><USER44> On my Firefox for Android, this is unreadable. I had to use Firefox on Windows to see what is this all about.

<comment><USER45> My Firefox (63) on Android (8 I think, it's a galaxy s7) renders everything on this Page just fine.

</comment></comment><comment><USER46> Very cool. I don't know if this counts as a bug as it's not really the intended use, but if I copy one of the results and then paste it into the "Write something here..." input, all the results then match the pasted style rather than being re-styled.

<comment><AUTHOR> Thanks, this is intended. It makes the code less complicated, but also means you can add the different fonts together more easily, which is particularly good for mobile.

</comment></comment><comment><USER47> Seems like a good place to plug this: [https://itunes.apple.com/us/app/glitchtext/id1412938752?ls=1...](https://itunes.apple.com/us/app/glitchtext/id1412938752?ls=1&mt=8)

</comment><comment><USER48> This is awesome! But how does it work? I don't understand how this is possible

<comment><USER49> 𝕀, 𝕥𝕠𝕠, 𝕤𝕠𝕝𝕚𝕔𝕚𝕥 𝕒𝕟 𝕖𝕩𝕡𝕝𝕒𝕚𝕟𝕒𝕥𝕚𝕠𝕟 𝕗𝕣𝕠𝕞 𝕥𝕙𝕖 𝕔𝕣𝕖𝕒𝕥𝕠𝕣 𝕒𝕤 𝕥𝕠 𝕙𝕠𝕨 𝕥𝕠 𝕒𝕔𝕙𝕚𝕖𝕧𝕖 𝕥𝕙𝕚𝕤 𝕣𝕖𝕞𝕒𝕣𝕜𝕒𝕓𝕝𝕖 𝕗𝕖𝕒𝕥.

<comment><AUTHOR> In the early 2000s, unicode added a block of Mathematical Alphanumeric Symbols. The styles stay constant because 𝖊, ℯ, and 𝓮 might mean different things.

<comment><USER49> 𝙄 𝙩𝙝𝙖𝙣𝙠 𝙮𝙤𝙪

</comment></comment></comment></comment><comment><USER10> There's a program/extension somewhere that allows these extra "fonts" in facebook comments sections... One of my family members started typing in some weird math font that broke on my old tablet.

</comment><comment><USER50> I tried some diacritics letters and the site didn't handle those. Is it issue of the site? or those special characters don't include various latin based diacritics? German Umlauts? Polish ąęćłńóśźż ? etc

<comment><USER51> These special characters were put in Unicode based on their use as identifiers in maths and such. Diacritics aren't used there, so a tool exploiting those character ranges can't support them either.

These characters aren't meant to be used to write words and sentences in.

</comment></comment><comment><USER52>
      ~ $ 𝖑𝖘 -𝖑𝖆
      fish: Unknown command '𝖑𝖘'

No surprise here.

</comment><comment><USER53> not sure if it's been mentioned already but [https://tell.wtf](https://tell.wtf) offers a similar service to this along with a rather intelligent unicode pallete and the ability to draw characters to try and match characters you're looking for. also, since z̼͖̺̠̰͇̙̓͛ͮͩͦ̎ͦ̑ͅa̘̫͈̭͌͛͌̇̇̍l͕͖͉̭̰ͬ̍ͤ͆̊ͨg͎͚̥͎͔͕ͥ̿o͎̜̓̇ͫ̉͊ͨ͊ was mentioned, [https://eeemo.net](https://eeemo.net) ftw

</comment><comment><USER43> I suggest you also check out the tools on [http://qaz.wtf/u/](http://qaz.wtf/u/)

</comment><comment><USER54> Would you mind checking UTF-8 support on the fonts? It seems the fonts don't support it.

You can use this as an example: ěščřžýáíasdfghjk

</comment><comment><USER55> 𝗧𝗵𝗶𝘀 𝗱𝗲𝗳𝗶𝗻𝗶𝘁𝗲𝗹𝘆 𝗹𝗼𝗼𝗸𝘀 𝗮𝗯𝘂𝘀𝗶𝘃𝗲... 𝘆𝗼𝘂 𝗰𝗮𝗻 𝗲.𝗴. 𝗽𝘂𝘁 𝗺𝗼𝗿𝗲 𝗲𝗺𝗽𝗵𝗮𝘀𝗶𝘀 𝗼𝗻 𝘆𝗼𝘂𝗿 𝗰𝗼𝗺𝗺𝗲𝗻𝘁 𝘃𝘀 𝗼𝘁𝗵𝗲𝗿𝘀 𝗯𝘆 𝘄𝗿𝗶𝘁𝗶𝗻𝗴 𝗶𝘁 𝘄𝗶𝘁𝗵 𝗮 𝗯𝗼𝗹𝗱𝗲𝗿 𝗳𝗼𝗻𝘁.

</comment><comment><USER56> 𝔹𝕖 𝕟𝕚𝕔𝕖 (𝕠𝕣 𝕟𝕠𝕥) 𝕒𝕤 𝕒 𝕡𝕝𝕦𝕘𝕚𝕟 𝕗𝕠𝕣 𝕥𝕙𝕖 𝕓𝕣𝕠𝕨𝕤𝕖𝕣

</comment><comment><USER57> It's not actually a fancy font but different Unicode codepoints. "a" is not "𝖆" as far as Unicode is concerned. The Latin alphabet is mapped into Unicode for different uses.

In the end abuse of these characters will lead to even more variants being created covering the accented letters too. You can't leave out all the languages that have an extended alphabet, can you?

[https://xkcd.com/1726/](https://xkcd.com/1726/)

</comment><comment><USER58> Doesn't work on stock galaxy S7. Just a whole bunch of boxes with crosses through them.

</comment><comment><USER59> 𝓂𝓎 𝓃𝒶𝓂ℯ 𝒥ℯ𝒻𝒻

<comment><USER60> 🅘🅝🅒🅞🅡🅡🅔🅒🅣 Your name is obviously 𝕄𝔸𝕏

</comment></comment><comment><USER61> 𝕷𝖊𝖙'𝖘 𝖘𝖊𝖊 𝖍𝖔𝖜 𝖋𝖆𝖘𝖙 𝖙𝖍𝖎𝖘 𝖎𝖘 𝖆𝖇𝖚𝖘𝖊𝖉 𝖙𝖔 𝖉𝖗𝖆𝖜 𝖆𝖙𝖙𝖊𝖓𝖙𝖎𝖔𝖓 𝖙𝖔 𝕳𝕹 𝖘𝖚𝖇𝖒𝖎𝖘𝖘𝖎𝖔𝖓𝖘 𝖆𝖓𝖉 𝖈𝖔𝖒𝖒𝖊𝖓𝖙𝖘.

<comment><USER62> I think it will be a good way to attract downvotes moreso than attention.

<comment><USER10> I'm getting AOL chatroom flashbacks. When do we start using color faders again?

<comment><USER63> I'll fire up the trivia bot...

</comment></comment></comment></comment><comment><USER64> 𝖂𝖊𝖑𝖑, 𝖙𝖍𝖊𝖗𝖊 𝖌𝖔𝖊𝖘 𝖙𝖍𝖊 𝖒𝖔𝖉𝖊𝖗𝖆𝖙𝖔𝖗𝖘 𝖊𝖞𝖊𝖘𝖎𝖌𝖍𝖙 ...

</comment><comment><USER65> 𝕨𝕙𝕠𝕒, 𝕥𝕙𝕚𝕤 𝕚𝕤 𝕔𝕠𝕠𝕝! 𝕋𝕙𝕒𝕟𝕜𝕤

</comment><comment><USER66> 𝙳𝚎𝚖𝚘𝚌𝚛𝚊𝚌𝚢 𝚠𝚊𝚜 𝚑𝚊𝚌𝚔𝚎𝚍

<comment><USER10> 𝚃𝚑𝚎 𝚐𝚘𝚟𝚎𝚛𝚗𝚖𝚎𝚗𝚝... 𝚍𝚘𝚎𝚜 𝚜𝚝𝚞𝚏𝚏

</comment></comment><comment><USER67> And chaos ensued...

</comment><comment><USER68> 𝘼𝙬𝙚𝙨𝙤𝙢𝙚

</comment><comment><USER49> 𝖁𝖊𝖗𝖞 𝖎𝖒𝖕𝖗𝖊𝖘𝖘𝖎𝖛𝖊, 𝖇𝖚𝖉𝖉𝖞!

</comment><comment><USER69> ℍ𝕠𝕝𝕪 𝕔𝕣𝕒𝕡

</comment><comment><USER70> I crave 𝕥𝕙𝕖 𝕗𝕠𝕣𝕓𝕚𝕕𝕕𝕖𝕟 𝕥𝕦𝕟𝕒

<comment><USER71> can't stop laughing! X-D

</comment></comment><comment><USER72> "𝑻𝒉𝒊𝒔 𝒒𝒖𝒐𝒕𝒆 𝒊𝒔 𝒐𝒇𝒕𝒆𝒏 𝒇𝒂𝒍𝒔𝒆𝒍𝒚 𝒂𝒕𝒕𝒓𝒊𝒃𝒖𝒕𝒆𝒅 𝒕𝒐 𝑴𝒂𝒓𝒌 𝑻𝒘𝒂𝒊𝒏"</comment>


In Mathematics, Mistakes Aren't What They Used to Be - <AUTHOR> http://www.nautil.us/issue/24/error/in-mathematics-mistakes-arent-what-they-used-to-be <comment><USER2> I do not find that the article insists strongly enough on the fact that computer-aided _verification_ of proofs is not, in any way, a threat to human creativity in mathematics.

You can just understand proof assistants as an effort to design a language for mathematical proofs, and a procedure to verify them mechanically. (Spelled out like this, it sounds a lot like Hilbert's program -- we have just understood since then that you cannot hope to have a "perfect" proof assistant.) The availability of computers means that you can actually implement the verification process and run it, but if you do not want to involve computers in the process (because you do not "trust" them, or whatever), you could always check such proofs by hand, in principle.

In a sense, a proof designed for a computer assistant is one that can be verified without any intelligence required from the reader.

<comment><USER3> The recent financial crisis shows even those who claim to understand the math, do not, let alone even being able progress on probability (hmm what are the odds all this could go wrong? Nah).

<comment><USER4> More accurately you might say that the people who understand the math are somewhat segregated from the people who make the decisions.

</comment></comment></comment><comment><USER5> I wonder which proof assistant he is using. His presentation[1] mentions Coq but Wkipedia[2] lists several others. Is Coq kind of a standard tool or are there others that are widely used.

[1] [https://www.math.ias.edu/vladimir/sites/math.ias.edu.vladimi...](https://www.math.ias.edu/vladimir/sites/math.ias.edu.vladimir/files/2014_IAS.pdf)

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

<comment><USER6> Yes, Voevodsky works in Coq. Some other people in the "univalent foundations" project that Voevodsky started have also done some developments in Agda.

Apart from Voevodsky's work, there are several other big math formalization projects. Perhaps the biggest ones are the formalization of the Feit-Thompson theorem (done by Georges Gonthier and his collaborators, in Coq), and the proof of the Kepler conjecture (done by Thomas Hales and his collaborators, in Isabelle/HOL and HOL Light).

<comment><USER7> does using Coq mean that the math he is seeking to prove is based on / formulated in a Constructivist style ([http://en.wikipedia.org/wiki/Constructivism_%28mathematics%2...](http://en.wikipedia.org/wiki/Constructivism_%28mathematics%29)), or only that the verification program itself requires such Constructivist properties?

<comment><USER6> I don't think Voevodksky himself has any constructivist leanings. The univalent foundations developments make use of various axioms that have no known constructive meaning (e.g. the law of the excluded middle, and the famous univalence axiom itself), and which are motivated because there are known models in which they hold.

On the other hand, many of his collaborators are interested in the project precisely because it uses Coq and they like constructive mathematics. So the HoTT book only uses exluded middle when necessary (and carefully tracks where), and developing a computational interpretation of univalence is considered to be an important task.

Edit to add: So why would someone who doesn't care about constructivism want to use Coq? Because it's based around typed objects. Apparently, homotopy theorists had for a long time been aware that instead of basing mathematics on sets, and then constructing equivalence classes on top of those, you could take homotopy types as primitive.. something like basing mathematics on blobs rather than points. This was all considered theoretical and impractical--until someone noticed that the logic provided by Intensional Type Theory (as implemented in e.g. Coq) can be considered to do exactly this!

</comment></comment></comment></comment><comment><USER8> I'm surprised they didn't mention Leslie Lamport. He apparently started writing "structured proofs" decades ago, and then developed a system TLA+ to do the same thing in a computer.

I am hazy on the details, but I think TLA+ proofs are just checked by brute force, and not with an actual theorem prover? It's for distributed algorithms with a large but finite number of states.

So it's not exactly the same as what's discussed in the article, but it's definitely related. I would appreciate if anyone has any clarification on this point.

[https://scholar.google.com/scholar?cluster=14553320809011812...](https://scholar.google.com/scholar?cluster=14553320809011812377&hl=en&as_sdt=0,5&sciodt=0,5)

"A method of writing proofs is described that makes it harder to _prove things that are not true_. The method, based on hierarchical structuring, is simple and practical. The author's twenty years of experience writing such proofs is discussed."

[http://research.microsoft.com/en- us/um/people/lamport/pubs/p...](http://research.microsoft.com/en- us/um/people/lamport/pubs/pubs.html#wired)

<comment><USER9> TLA+ is better described as a verification tool than as a proof assistant, and is better suited to analysis of software systems than to analysis of the sort of mathematics in which Voevodsky is involved. The most striking characteristics that make Coq and other tools based on dependent type theories interesting to Voevodsky are absent from systems like TLA+.

TLA+ is sufficiently different from Coq -- and in ways essential to Voevodsky's intentions -- that discussion of TLA+ in this article would be out of place.

In addition, there is a huge community of people who have worked with theorem provers for the past 20 years or more; it's not clear to me why the author would single out TLA+/Lamport over any of these other systems/researchers.

<comment><USER8> Sure, but the motivation is the same: to avoid proving things that aren't true. Lamport and Voevodsky are in different fields, and use different tools, but that just means that comparing their journeys is all the more interesting.

If it were a technical journal, maybe they wouldn't be related. But they're definitely related for a popular article.

<comment><USER9> _> If it were a technical journal, maybe they wouldn't be related. But they're definitely related for a popular article._

Hence my last paragraph -- they're only related in the sense that the entire formal methods/verification/theorem proving community is related. Given the hundreds of systems/researchers that would make for interesting additions to the story, it's not surprising that TLA+ isn't mentioned.

(Incidentally, the author's choice representative for "other people are doing this too" \-- Automath -- is probably just as good of a choice as TLA+.)

</comment></comment></comment></comment><comment><USER10> It's interesting that computer science also struggles with similar issues: program verification. But at least with a program you can run it and have it check itself to some extent (eg with invariants). But Voevodsky is talking about a whole other level of difficulty, akin to writing a massive program but not being able to run it.

<comment><USER11> You can run it, it's just that the operation of the program is not interesting. Voevodsky's system is proof relevant so, at least, the programs themselves are interesting, but other models exist where the programs aren't even interesting. Their mere existence is all that matters.

<comment><USER10> Yes, once you formalize (in computer code) a bit of mathematics you can run it, but i'm pointing out that you don't need to formalize (the correctness of) a program in order to run it. I guess it is not much of a distinction, because a (non-formalized) mathematical argument can also carry "invariants" (like loop invariants in a for-loop) that somehow cross-check its correctness.

<comment><USER9> You also don't have to prove a theorem in order to use it.

To give an elementary example, you can conjecture that a given mapping is something-morphism between two groups and use that morphism to carry out a proof about one group in terms of a known result about the other group.

In fact, "conjecture lemma; verify main result is true using the conjectured lemma; go back an prove lemma" is a bog standard problem solving technique in Mathematics...

 _edit: Oh, I see what you mean is bit more nuanced than I understood at first. But this is still true -- often you can probably check that the mapping you 've written down is a something-morphism locally, for the elements you're working with atm. I'm stretching the example now, but you get my point? I imagine this is probably not unheard of in research-grade mathematics -- e.g. we don't have a general proof for "really cool conjecture" so we check it in special cases whereever we think it might be useful to have... idk._

</comment></comment></comment></comment><comment><AUTHOR> > Broadly speaking, the argument against the use of computers is a lament for > the loss of the human element: intuition and understanding. Acknowledging > something as true because the computer says so is not the same as knowing > why it is true. One might reckon it's analogous to relying on an Internet > mash-up of reviews about the mysteries of Venice, rather than going there > and splurging on the water taxi and experiencing the magic for oneself. But > then again, the same conundrum arises in building upon previous results > rather than working from scratch.

</comment><comment><USER12> the article seems to be based on the presentation by Voevodsky himself,

[http://www.math.ias.edu/~vladimir/Site3/Univalent_Foundation...](http://www.math.ias.edu/~vladimir/Site3/Univalent_Foundations_files/2014_IAS.pdf)

<comment><USER13> This is the same Voevodsky that came up with the univalence axiom[1] that is foundational in HoTT[2] (homotopy type theory)?

What's not to love about:

        The univalence axiom states:

             (A = B) ≃ (A ≃ B)

        "In other words, identity is equivalent to equivalence. In particular, one may say that 'equivalent types are identical'."

[1] [https://en.wikipedia.org/wiki/Homotopy_type_theory#Univalenc...](https://en.wikipedia.org/wiki/Homotopy_type_theory#Univalence_axiom)

[2] [http://homotopytypetheory.org/book/](http://homotopytypetheory.org/book/)

<comment><USER10> Isn't this just like memoization? So somehow the axiom is saying that memoization is built into the language. (Not sure if i'm making any sense..)

<comment><USER10> Well, it was a serious question. Like in the python language you can create a string a="foo" and another b="foo" and a==b but it's not true that a is b. So it seems like this univalent axiom is saying that this does not happen, and so a is b.

I wish I knew enough about functional languages to ask the same question there.

<comment><USER14> Well, it's saying more than that. It states that the notions of 'equivalence' and 'isomorphism' are basically the same thing in this new language (NB: I'm not really a mathematician).

Equality is already a very overloaded term in mathematics, but roughly means "these are the same thing" \- X^2 is 'equal to' X * X for example, or in most cases we think simply of the identity relation on some set or whatever. Isomorphism states that two things can be 'transformed' into each other through the existence of a function, along with its inverse.

For example, the sets {A, B, C} and {1, 2, 3} are not equal, but isomorphic because you can define a bijection between them: A = 1, B = 2, C = 3. In some sense equality is 'more rigid' than an isomorphism, obviously. Also, you have to choose the bijection explicitly here because in this case, more than 1 valid one exists, which is another aspect of an isomorphisms 'identity'.

The univalence axiom states that in this new constructive mathematical framework, 'equality' and 'isomorphism' are exactly the same thing.

I suppose in some sense you can view concepts like "object identity" and "object state" in some languages like Java in the same bucket, because while two Java objects may be "equal in terms of state" (members all the same) they might not be "equal in terms of identity" (because they point to different heap objects).

But this kind of distinction mostly doesn't make sense in functional programming languages because you often throw the notion of 'value identity' out the window, so 'equality' in these languages is defined solely as mathematical equality - that we can 'normalize' two expressions to the same final form. 'isomorphism' then, normally just has an interpretation like two functions `a -> b` and its inverse `b -> a`, so even in these languages, we aren't quite talking about the same things.

HoTT is much more radical than all of this when you look at it together of course - because it's more like saying if you have two proofs that x = y, you can think of 'x' and 'y' as points in space, and proof of equality is a path from x to y in this space - so two proofs of equality are just two distinct paths.

The 'space' on which these points exist is actually not sets but 'types', which is like a set, but also including propositions too. So now the set 'X' and propositions about X exist together. Proving some proposition requires 'constructing' a value of that propositions' type, using the elements and propositions already existing. In a language like Haskell, to implement a function of type 'f :: A -> B' requires being able to 'construct' a B given a value of type A - to do this, in effect, is a proof that 'A -> B' does in fact exist, because you built it.

Also, under this interpretation of 'space', which is topological, equivalent paths give rise to notions of 'homotopy' (saying a path A can be 'morphed into' a path B), so if you have two 'paths' representing the proofs of x = y, these 'paths' admit a homotopy between them. And furthermore you can have notions of homotopies between homotopies, etc etc. So things get very 'higher order'. Types can also be viewed as an 'infinity groupoid', which is a thing that not only has elements and isomorphisms between elements, but isomorphisms between isomorphisms, and isomorphisms between _those_ , infinitely. So if you squint you can see how this infinity-groupoid notion of 'higher order' isomorphisms between other isomorphisms, and higher order homotopies, are all very closely linked. It's all very strange and unifying and delightful.

That's the extremely handwavy explanation that is might be pretty fluffy, but it might help.

<comment><USER15> [http://www.math.harvard.edu/~mazur/preprints/when_is_one.pdf](http://www.math.harvard.edu/~mazur/preprints/when_is_one.pdf)

"When is one thing equal to some other thing", by Mazur

</comment></comment></comment></comment></comment></comment><comment><USER16> The Oxford dictionary "intuition" as "immediate apprehension by the mind, without the need for reasoning"

When people emphasise intuition in mathematics it suggests that

(i) that they have never tried to teach mathematics formally and explicitly without appeal to intuition —if they had, it would have been a most refreshing experience for them and for those of their students that were sufficiently well-educated to appreciate simplification

(ii) that they have never taken the trouble to learn how to let the rules of the formal game guide their "writing of papers" —if they had, they would have discovered how to do mathematics way beyond their former powers.

EW Dijkstra

<comment><USER17> If formally precise reasoning would be all there is to it, computers could do all math for us. However, even in that formal-if-anyhing-is area, they fail. Computers can't solve instances of the Halting problem or the Tiling problem, whose solution is immediately _intuitively_ clear to a human. Those solution can also be immediately verified by fellow humans, via the informal communication method of 'speech'. The reasoning involved can't be verified by computers.

A nice overview was given by Peter of Conscious Entities recently: [http://www.consciousentities.com/?p=1918](http://www.consciousentities.com/?p=1918).

<comment><USER18> Actually computers can solve many instances of the halting problem. [http://en.wikipedia.org/wiki/Microsoft_Terminator](http://en.wikipedia.org/wiki/Microsoft_Terminator)

<comment><USER17> Yes. The point is there are many instances that humans can solve, but computers can't. My sentence was not meant to imply computers cannot solve any instances of the halting problem at all.

</comment></comment></comment></comment><comment><USER10> Conway is listed as being negative about using computer verified proofs, but he is well known for trashing set theory (or at least strongly protesting the shackles of set theory). So I wonder what he thinks of this new univalent foundation.

<comment><USER19> I found a mistake in one of his proofs in his book "On Numbers and Games" using computer verified proofs. It was only a mistake in the proof, that is, the proof was easy to correct and the result was still true, but it shows that noone is above mistakes. So using a computer can certainly drastically reduce the probability of an error.

<comment><USER20> Good job. What proof, may I ask? What was the mistake, and what tool did you use? Is there a paper on this I can read?

<comment><USER19> I was using Isabelle. There is indeed a paper about this: [http://link.springer.com/chapter/10.1007%2F11921240_19](http://link.springer.com/chapter/10.1007%2F11921240_19), and the flaw is described on page 284.

</comment></comment></comment></comment><comment><USER21> I wonder if more computer-aided proofs will lead mathematicians to discover serious conflicts in their ontologies. Critical parts of mathematics, and even the way we talk about it, may eventually need to be reworked.

<comment><USER22> Very doubtful.

Within the formalized version of mathematics, some sort of namespace mechanism will probably be necessary to deal with terminology collisions.

And certain things commonly thought of as one notion might need to be split up into multiple notions (example: in some contexts, "function" means "set of pairs satisfying the vertical line test"; in other contexts, "function" means "set of pairs satisfying vertical line test, along with designated 'codomain').

But at most, this amounts to changing the wallpaper. The structure itself is sound unless something really shocking happens like a proof that PA is inconsistent or something. Such a shocking event needn't hinge on computer- aided proofs (although computer-aided proofs will surely help to convince mathematicians who would otherwise assume such a startling result must be mistaken).

<comment><USER23> I also doubt it.

The critical parts in mathematics are the foundations and basics. These have been studied over and over again by many smart people. I think if there is something wrong, it would have been found. If you are familiar with mathematics you will probably agree with this assessment.

And, in the unlikely case that there is an issue, then it will be worked around, so no harm is done to the rest of mathematics. Luckily, in mathematics, we make the world (axioms and definitons) like we wish it to be. There is a famous quote I don't recall right now about mathematics being now in the garden of eden and mathematics shall never be forced to leave it again.

However, non-critical parts of mathematics like advanced research is often plagued by mistakes.

Computer-verified proofs are the necessary future of mathematics.

One little remark, people often assign more attributes to functions than just the mapping-tuples itself and optionally the codomain. Often the arithmetic formulation of the mapping is part of the function because we want to differentiate based on the way the function is written.</comment></comment></comment>


How a Watch Works (1949) [video] - <AUTHOR> https://www.youtube.com/watch?v=TQd-0YXqmR0

<comment><USER2> I've never understood why these old instructional films so often seem much better at getting things across and making them stick in my mind than more modern material.

A couple other examples.

1\. A 1959 film from Bell Labs on wave behavior that made standing wave, reflections, energy loss due to impedance mismatch, and impedance matching much clearer than anything else I've seen: [1].

2\. A 1937 explanation of how the differential in a car works: [2]. Here is another upload of that which is lower resolution, but has more from the same source in the sidebar [3].

I suppose it could be something akin to survivorship bias that makes old educational films seem so good--the bad ones don't get remembered 60 years later.

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

[2] [https://www.youtube.com/watch?v=K4JhruinbWc](https://www.youtube.com/watch?v=K4JhruinbWc)

[3] [https://www.youtube.com/watch?v=yYAw79386WI](https://www.youtube.com/watch?v=yYAw79386WI)

</comment><comment><USER3> This is spam. Someone copied an out of copyright industrial film from the Internet Archive and "monetized" it on YouTube.[1]

The Internet Archive has a good selection of other Jam Handy films. Recommended: "American Maker" and "Master Hands". There's also a long series of Chevrolet-sponsored films on brakes, suspensions, differentials, engines, and such.

[1] [https://archive.org/details/HowaWatc1949](https://archive.org/details/HowaWatc1949)</comment>


The Surface Studio - <AUTHOR> https://www.penny-arcade.com/news/post/2016/10/26/the-surface-studio <comment><USER2> I always appreciate Gabe's stance. I'm not an artist, and so these devices aren't for me, but it's really cool to hear from someone whose job is to actually produce content on a day to day basis, and to produce the kind of content these devices are targeting.

It feels much more relevant than hearing random hot takes on the internet about how the number after the graphics card name should be larger.

<comment><USER3> I'm not an artist either, but it is occasionally useful to be able to interact with a screen with fingers or a stylus instead of a mouse. Also, the screen has a 3:2 aspect ratio. :D</comment></comment>


Interesting Reflections of an 18 year old Programmer - <AUTHOR> http://wakecodesleep.com/post/1454678482/reflection <comment><USER2> Sounds very similar to my story, also left home and started work immediately, only doing my degree in late 20s.

Now 30, I've worked in 8 countries, developed on Linux, OS X, Windows & iPhone, for web, desktop and mobile.

First salary was $200/month (in South Africa) :) Happily, that has improved by a few orders of magnitude.

It really is a great experience to have had, though sometimes I wish I had gone down the academic route and aimed for some place like MIT/Stanford.

But fuck it, one life.

<comment><USER3> What are you doing now that earns $200000/month?

<comment><USER4> I wondered the same. Or it may be a case of not knowing what "orders of magnitude" means.

<comment><USER5> Being a programmer one might like to think in base-2 orders :)

<comment><USER6> And as a physicist or mathematician, he would probably do base-e orders.

</comment></comment></comment></comment></comment><comment><USER7> I think it's worth pointing out that "high school" in the UK finishes at 16, so he didn't so much as drop out of school as decide to not go to sixth- form/college (which is optional - and is usually two years and fits between high school and university).

Still it was a brave decision, and it obviously was the right one for him - it's a very impressive story! Congrats!

<comment><USER8> Yeah, it was the choice between skipping further education or going straight in to work that was my dilemma rather than "dropping out" of education as it would be in the US, etc.

</comment></comment><comment><USER9> When I first saw the headline for this story my immediate thought was "What does an 18 year old know!"

but it turned out to be a very interesting monologue about this guys experiences in the trade. It also highlights the how fragile web companies can be

</comment><comment><USER10> _After about 2 weeks (seriously!) in the job the new employee just got up and left, never to be seen again. On the day he quit we were actually in a team meeting and once it was over, the employee collected his things, called a taxi and got a train back home to his parent's house. The only reason Greg and I were told as to why he decided to quit was apparently because "he'd rather play video games than work". No lie._

Excuse my ignorance, but just how exactly do these types of people get hired? Nepotism?

<comment><USER8> I believe our boss was pretty desperate to hire another developer asap (I'm not exactly sure why..) and we had known the guy for several months/year prior to offering him the job (so yeah, he sort of got the job as he was close to being a friend). We did interview him though and he was actually a fairly good PHP coder just a bit socially awkward at times (which wasn't an issue). Oh and he was also willing to work on a very low wage (something like £9k p/a) so that was a big bonus for our boss. Thinking back, I'm not that surprised he quit so soon considering he was only on £9k, lol. Thanks for reading the post though by the way :-)

</comment></comment><comment><USER11> I read through the whole article, and I must say I'm really impressed with what Simon's done in the few years after graduatiion. Question, though: (Simon, if you're reading this) are you planning to go to university, say in a year or two?

I'd imagine it'll be worth the experience!

<comment><USER8> If I'm not where I want to be in 2 years time then I'll most definitely consider going to college/university to get a degree/qualification of some sort :)

</comment></comment><comment><USER12> Really appreciate the post. Shows what it takes to take on something on your own. And he's still a teenager!! Here in India people finish school when they are 18 and go directly to college!

</comment><comment><USER13> As crazy as this time feels right now, it gets worse/better over time. Whatever you're doing now, it will be more in 5 years time. You will look back and ask yourself, "how could I have been so naive?" But at the same time, you couldn't imagine what more you could have known. And this continues, it develops and expands. If you take it for what it is, it's incredibly exciting, because it means the best days are still to come.</comment>


The Meta-Circular Evaluator (2016) - <AUTHOR> http://www.rooijakkers.software/posts/2016-04-25-metacircular-evaluator/ <comment><USER2> That's a very interesting topic and nice write-up, thank you for sharing!

For comparison, here is a small interpreter for a subset of Prolog, written in Prolog:

        mi([]).
        mi([G|Gs]) :-
                clause_(G, Body),
                mi(Body),
                mi(Gs).

This states that: First, the empty conjunction (of goals) is true, and second, if there is at least one goal left, than the conjunction is true _if_ there is a suitable clause whose body evaluates to true, and the same holds for all remaining goals.

For example, we can define append/3 as follows in this representation:

        clause_(append([], Ys, Ys), []).
        clause_(append([X|Xs], Ys, [X|Zs]), [append(Xs,Ys,Zs)]).

and then evaluate it with our interpreter:

        ?- mi([append([a,b,c], [d,e], Ls)]).
        Ls = [a, b, c, d, e].

Characteristically, it also works in other directions. For example:

        ?- mi([append([a,b,c], Rs, [a,b,c,d,e])]).
        Rs = [d, e].

and also:

        ?- mi([append(As, Bs, [x,y])]).
        As = [],
        Bs = [x, y] ;
        As = [x],
        Bs = [y] ;
        As = [x, y],
        Bs = [] ;
        false.

Now the point: The clauses of the meta-interpreter itself can _also_ be stated in this form, namely as:

        clause_(mi([]), []).
        clause_(mi([G|Gs]), [clause_(G,Body),mi(Body),mi(Gs)]).

Now we only have to define what clause_/2 means, which we can do with:

        clause_(clause_(G, Body), []) :- clause_(G, Body).

And now we can use our meta-interpreter to evaluate its own code as it interprets a program, arbitrarily deeply layered:

       ?- mi([mi([mi([append([a,b,c],[d,e],Ls)])])]).
       Ls = [a, b, c, d, e].

Hence, Prolog admits a meta-circular evaluator in at most 5 lines of code. With a better representation for clauses (using list differences), you can reduce the interpreter to 4 lines of code and at the same time make it tail- recursive.

<comment><USER3> Nice- but why only half a meta-interpreter? A complete Prolog meta-interpreter should still be able to interpret iself, no?

<comment><USER2> Yes, a complete Prolog meta-interpreter would definitely be meta-circular.

However, it is quite hard to write an interpreter for complete Prolog, both in Prolog and also in other languages. Take for example handling of !/0\. It is not easy to add handling of !/0 to the meta-interpreter I showed, especially if you want to retain meta-circularity. You cannot simply use a !/0 on the meta-level, because that does not get cut transparency right. One way to express !/0 on the meta-level is to use catch/3 and throw/1\. However, if you do this and want to retain meta-circularity, then you must also handle catch/3 and throw/1 correctly, and soon you really will have to handle almost the entire language, which is quite complex to implement even though it has a very simple syntactic structure.

With "cut transparency", I mean that the scope of !/0 depends on its context. For example, we have:

        ?- member(X, [a,b,c]), ( true -> ! ).
        X = a.

and on the other hand:

        ?- member(X, [a,b,c]), ( ! -> true ).
        X = a ;
        X = b ;
        X = c.

Such properties make an interpreter for complete Prolog rather complex, and for this reason I have shown a meta-circular interpreter that can handle only a (Turing-complete) subset of Prolog. Thank you for your interest!

<comment><USER3> Ah. My apologies. As usual I lack precision. I was thinking of a meta- interpreter for the logically pure subset of Prolog- no cuts, or exceptions.

That should be covered by the classic Prolog meta-interpreter, no? I mean this one:

      prove(true,_Ps).
      prove((L1,Ls),Ps):-
        prove(L1,Ps)
        prove(Ls,Ps).
      prove((L1),Ps):-
        clause(L1,B)
        prove(B,Ps).

<comment><USER2> This would work if clause/2 always _failed_ if there is no matching clause. Indeed, in some systems, that was the case. But now, clause/2 may and will throw an error for example on:

        ?- clause(true, B).
        ERROR: No permission to access private_procedure `true/0'

See also the Prolog ISO standard:

        clause(+head, ?callable_term)

        22.214.171.124 Errors

          ...
          c) The predicate indicator Pred of Head is that of a
          private procedure
          - permission_error(access, private_procedure, Pred).
          ...

In this interpreter, the third clause of prove/2 is also applicable if the others are applicable, because L1 subsumes both true and terms of the form (X,Y). For this reason, we get for example:

       ?- prove((true,true), _), false.
       ERROR: No permission to access private_procedure `true/0'

whereas we expect this to _succeed_ , because (true,true) does. Hence, to make this interpreter actually work, more must be added, and to make it meta- circular (i.e., able to interpret its own code), these features must then also be handled.

In the representation I used, these issues do not arise because I am using a so-called _clean_ representation. With such a representation, I can tell for certain what the individual goals are, as the individual goals are symbolically distinguished from _conjunctions_ of goals.

<comment><USER3> I didn't think of the case of a missing clause. Thanks for the explanation :)

</comment></comment></comment></comment></comment></comment><comment><USER4> The post is based on SICP, and the author briefly discusses dynamic scoping after finding it in some other blog posts or something. In fact, the first edition of SICP contained a discussion of dynamic scoping. I don't know why it was removed from the second edition, because it's an interesting and important topic. Dynamic scoping also features in the SICP videos [1], which were produced around the time the first edition came out.

[1] [https://www.youtube.com/watch?v=t5EI5fXX8K0&feature=youtu.be...](https://www.youtube.com/watch?v=t5EI5fXX8K0&feature=youtu.be&t=1098)</comment>


Google researches and implements an 8-point plan to become better managers - <AUTHOR>

http://www.nytimes.com/2011/03/13/business/13hire.html?_r=1&pagewanted=all <comment><USER2> see: <http://news.ycombinator.com/item?id=2317467></comment>


State of Remote Work: How Covid-19 Is Driving Video Conferencing into Meetings - <AUTHOR> https://woven.com/blog/state-of-remote-work-video-conferencing <comment><AUTHOR> As a nomad for 2 1/2 years, I took remote work for granted. I was really surprised to see this sudden & massive spike over literally just the past week. Crazy.</comment>


Image Shows Chinese Submarine Entering Mysterious Cave at S. China Sea Base - <AUTHOR> https://www.thedrive.com/the-war-zone/35837/image-shows-chinese-submarine-entering-mysterious-cave-facility-at-south-china-sea-base? <comment><USER2> Sub pens have been a thing since the middle of the previous century. [https://en.wikipedia.org/wiki/Submarine_pen](https://en.wikipedia.org/wiki/Submarine_pen)

I wouldn't be surprised to learn King's Bay or Kitsap also have "mysterious caves", although not-so-mysterious reinforced concrete seems cheaper and more common, and a quick google makes it seem like I'd have to do image searches on Яндекс or 百度 to find them...

(One of the sillier things about not having disbanded the cavalry until after I was born is that my country had bunkers which contained horse stalls and manure tips.)

<comment><USER2> No pens apparent from Google Maps unless the lift bays are reinforced (Faslane's isn't?), so I guess the USN is confident in their local air supremacy.

<comment><USER3> The Royal Navy apparently considered an underground base for its missile subs to be located in the Loch Glendhu area in the North West Highlands. However, the US Navy wanted its submarines to be based closer to an airport and the Royal Navy wanted to be close to the US Navy...

I'm rather glad Loch Glendhu is left unspoiled but it does mean the current infrastructure for UK nuclear submarines is rather close to Glasgow and the largest population centre in Scotland.

Source: [https://www.amazon.co.uk/Silent-Deep-Royal-Submarine- Service...](https://www.amazon.co.uk/Silent-Deep-Royal-Submarine- Service/dp/1846145805)

NB That book is worth it just for the description of the infamous Perisher course, let alone the stories about Rickover...

</comment></comment></comment><comment><USER4> Nice. Here it is in Google Earth.[1]

[1] [https://earth.google.com/web/search/Yulin,+Guangxi,+China/@1...](https://earth.google.com/web/search/Yulin,+Guangxi,+firstname.lastname@example.com,109.69268367,87.9074439a,55.67821423d,35y,50.00696383h,79.68150192t,0r/)

</comment><comment><USER5> Very cool.

Military installations that exploit natural features are always interesting. It reminds me of some of the aircraft hangars used by the Swiss air force - carved right into the mountains.

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

</comment><comment><USER6> Having this out in the open is great.

Letting citizens of other countries near the South China Sea know about the purpose of the islands raises general awareness of the consequences of certain actions.

</comment><comment><USER7> Island of Vis in Croatia has one, legacy of Yugoslavia, you can swim in. It's a fun experience.

<comment><USER8> Where exactly?

<comment><USER9> Got curious and went looking, this looks like the one:

Ex. Yugoslavian military shelter for submarines D117, 21480, Rogačić, Croatia

[https://goo.gl/maps/imWgUufegJoe1ZsGA](https://goo.gl/maps/imWgUufegJoe1ZsGA)

<comment><USER7> That's the one. Island is relatively small and has interesting military installations on it.

</comment></comment></comment></comment><comment><USER10> So block the entry way and the whole facility is out of action?

Seems a significant single point of failure.

<comment><AUTHOR> If you're in their territorial waters, you're in trouble.

</comment></comment><comment><USER11> Here is the VirtualGlobetrotting: Military - Bases google map [1] The map includes a lot of background information on each identified location.

1\. [https://www.google.com/maps/d/viewer?mid=1OipNxc8-CLspaQsYwF...](https://www.google.com/maps/d/viewer?mid=1OipNxc8-CLspaQsYwFoFXtehjz0&usp=sharing)

</comment><comment><USER12> There was a submarine cave in the James Bond movie Die Another Day</comment>


Big data sets you can use with Open Source R - <AUTHOR> http://www.reddit.com/r/opensource/comments/1lq19n/big_data_sets_you_can_use_with_open_source_r/

<comment><USER2> This is a hacker news link to a reddit post that points to a blog post that references the actual link.

Here is the direct link: [http://www.inside-r.org/howto/finding-data- internet](http://www.inside-r.org/howto/finding-data-internet)</comment>


Irc bot using markov chains and individual user ranking - <AUTHOR> http://adamdomoney.posterous.com/irc-bot-with-markov-chains-and-user-ranking-i-0

<comment><AUTHOR> Posted this at 1:30 am last night and only recieved like 50 views. Last time I release late in the night.

Dying to find out what you think - my most detailed blog yet and personally Im not sure how I did. Feedback appreciated.</comment>


Spotify for books - <AUTHOR> http://www.economist.com/news/business/21640357-authors-and-publishers-may-constrain-rise-e-book-subscriptions-spotify-books

<comment><USER2> It relies on annoyingly bad 3rd-party software (so it's not 'fun' like I imagine a Spotify for books would be) but in the US you can get ebooks and audiobooks from your local library.

My wife is a master at this, with library cards in three cities (where we live, where we used to live, and where she grew up). She's literally never not reading a book and she's got a deep bench of books-to-be-read all lined up.

Some libraries are actually going DIY: [http://evoke.cvlsites.org/](http://evoke.cvlsites.org/)

</comment><comment><USER3> " _There should be a Netflix for books._ "

" _THE LIBRARY_ "

[http://www.johnnywander.com/comics/24](http://www.johnnywander.com/comics/24)

</comment><comment><USER4> The audio books situation is even more obviously pathetic, at least in Audible's case. On Audible, for $15 a month you get to listen to, wait for it, ONE book! Worse than that, each additional books costs. Worse still is that prices appear to be at or near hard-back prices. And to add insult to injury, this arrangement prevents the purchasing of books on iOS devices (I guess because Amazon doesn't want to pay the 30%)!

Compare this to Hulu, Netflix and Spotify which offer unlimited consumption (although with incomplete libraries) for around $10 per month.

<comment><USER5> I agree the normal prices are very high, but I've learned that the key to Audible seems to be waiting for good sales to come around. They have members- only daily deals and other sales fairly regularly. I bought several books today because they are having a $6.95 members-only sale on a lot of popular titles right now.

</comment></comment><comment><USER6> Actual physical books are still pretty good; I can't speak for other countries, but the county in the UK I live in (as is common in all UK counties, I believe) will fetch books for you from anywhere else in the county for fifty pence a pop, and if they haven't got it in county the inter-library loans turn out to be astonishingly fast and remarkably good value.

I have requested some quite obtuse books over the past year and they've managed them all so far; coming from the British Library in London, a university maths library in Leeds, a university library in Exeter, somewhere I couldn't even tell where it came from, and so on. If you like reading, and you don't absolutely need the convenience of the book weighing very little and being quite small (i.e. an eReader of some kind - I'm a fan of old Sony models), physical books from a national library network are still really good.

</comment><comment><USER7> I have had Kindle Unlimited for a few months. It saves me money most months...I was reading about $20-$30 worth of books per month before, now I'm down to about $15 (Unlimited has a good selection, but there are still significant titles that aren't available via Unlimited). My local library offers ebooks, and even has a pretty good selection, but everything I ever want is always checked out and has a waiting list, so I end up buying a lot more than borrowing. It's worrying that there may be a future in which people need paid for subscriptions for a functional library (since I can foresee a day not too far away where printed books are considered relics).

</comment><comment><USER8> O'Reilly's Safari Books Online has had this for years.</comment>


No New Categories - <AUTHOR> https://www.gkogan.co/blog/category-creation/?r=1 <comment><USER2> Nice post as always Greg.

To those who aren't familiar, gk1 is a regular HN commenter / contributor and excellent consultant who knows his stuff.

This piece is also a gold mine of info for those looking to grow their consulting practices:

[https://www.gkogan.co/blog/consulting- advice/](https://www.gkogan.co/blog/consulting-advice/)

(no current affiliation other than being a former client via Scalyr)

<comment><AUTHOR> Thank you Noah! I appreciate you saying that.

</comment></comment><comment><USER3> Really great article! I think that another element driving the push to brand oneself a category-creator is the ego factor. Everybody wants to consider themselves a category redefining innovation powerhouse.

</comment><comment><USER4> in the table at the bottom, how does fastly count as a "new category"? Aren't they doing fairly typical CDN stuff?

<comment><AUTHOR> Good observation -- you're the second person to point this out to me. (The first person said "It's basically Akamai with better DX.") That column refers to what they market, not necessarily what others think of them. Although we just think of them as a CDN, they are trying to market themselves in a new category. The dissonance shows why creating a new category takes more than just persistent marketing.

<comment><USER5> As you wrote in your article, the new category becomes "another thing that needs explaining", and Fastly doesn't explain it well.

I guess what's happening is that these companies spend a lot of time internally discussing and refining their product and their marketing, and then one day someone comes up with a term for that, and everyone agrees that that is a great way to express _all that_. But nobody outside the company knows what _all that_ is, because they don't have the same background, so they're just like, what is an edge cloud?

</comment></comment></comment><comment><USER6> Excellent and detailed rebuttal to the book "Play Bigger" which pushes the "make up a new category and become 'Category King'" philosophy

</comment><comment><USER7> Quoting from a Gartner analyst soils the article.

Whatever one says they do, what they actually always do is whatever the customer who spends the most money says. So the only meaningful information that ever comes out of Gartner is what the most money wants said.

For some people, that is useful information, just because it tells them which way to jump to stay in tune with the big money.

</comment><comment><USER8> very interesting read, thanks for writing this, positioning in the toolbox of startups is often misunderstood and this helps a lot to put it into context

great article to point to in the future

</comment><comment><USER9> Presenting the communications-focused smartphones of old the consumption- focused smartphones of today together as categorical equivalents seems like a failure of language. That was the disruption.

<comment><AUTHOR> The point is that both were called smartphones.

<comment><USER10> So... something that's very different from what's already out there isn't a new category, because it's using an old name. But something that is just like what's out there already but has a new name isn't a new category either.

New products and new markets are popping up all the time. They don't come into existence fully formed like Athena, and they may keep the name of what they evolved from, but they are very different. My "smart phone" isn't a phone, it's a handheld computer that includes a phone as a minor function. I use my "phone" as a phone about as often as I use my "computer" for computation.

<comment><USER9> Makes me wish I was European enough to be able to call it my "handy" (as in handheld computer) and have anyone take me seriously.</comment></comment></comment></comment>


US town rejects solar panels fearing they 'suck up all the energy from the sun' - <AUTHOR> http://www.independent.co.uk/news/world/americas/us-town-rejects-solar-panels-amid-fears-they-suck-up-all-the-energy-from-the-sun-a6771526.html <comment><USER2> The title of this article puts (single) quotes around the phrase "suck up all the energy from the sun", but it is not a quote. From reading the more direct source, this looks like the true rejection:

> She added that the only people profiting are the landowners who sell their > land, the solar companies, and the electrical companies. [...] The town > would not benefit from the solar farms because they are not located within > the town limits, but only in the extraterritorial sections. The only funding > the town would get is about $7,000 per year to train the fire department in > case something goes wrong.

Ie, they have a point of leverage (zoning) and they want the solar companies to pay more (with taxes or other development projects) for the right to develop that land. I'm not sure whether I'd take their side or not, but they're clearly not stupid.

<comment><USER3> > During the Woodland Town Council meeting, one local man, Bobby Mann, said > solar farms would suck up all the energy from the sun and businesses would > not go to Woodland, the Roanoke-Chowan News Herald reported.

> Jane Mann, a retired science teacher, said she was concerned the panels > would prevent plants in the area from photosynthesizing, stopping them from > growing.

> Ms Mann said she had seen areas near solar panels where plants are brown and > dead because they did not get enough sunlight.

> She also questioned the high number of cancer deaths in the area, saying no > one could tell her solar panels didn't cause cancer.

As an American, I apologize for the ignorance (and I'm being generous) of the residents of Woodland, North Carolina (Population: 766)

<comment><USER4> As an American, I apologize for the poor reading skills of this comment's author.

If you actually read the original source, there was a grand total of _one couple_ that was quoted as saying _anything like_ what the Independent's headline attributed to the town as a whole.

Read further, and you will find that the question before the meeting was not about the merits of solar power but that the company wanted _additional_ parcels of land _rezoned_ , parcels that were not intended for industrial use in the first place. They have been able to put solar farms anywhere else they wanted that was zoned appropriately.

The area already has a substantial installed base of solar. Quoting the article: "Three other solar farms had previously been accepted by the town council, with one of the (sic) now putting solar panels up."

<comment><USER3> Can you explain the problem with having parcels rezoned for solar generation in a town under 800 people? The location was picked precisely because of the nearby transmission substation.

</comment></comment></comment></comment><comment><USER5> If you read the original:

[http://www.roanoke- chowannewsherald.com/2015/12/08/woodland-...](http://www.roanoke- chowannewsherald.com/2015/12/08/woodland-rejects-solar-farm/)

And see what they really said/meant they sound far far less crazy. It's pretty clear they don't think solar panels are using up the energy from the sun.

<comment><USER6> Well, the original article shows that these citizens are concerned that the business is not going to do good to the town, but they did make some, let's say, debatable addition.

 _[Jane Mann] is a retired Northampton science teacher and is concerned that photosynthesis, which depends upon sunlight, would not happen and would keep the plants from growing. She said she has observed areas near solar panels where the plants are brown and dead because they did not get enough sunlight._

If you put a plant next to, or under, a solar panel, it won't get enough direct sunlight. But "areas near solar panels" would probably be deforested anyway.

Another two excerpts from that article, I'm not sure they are much more reasonable than stated by the OP.

 _She also questioned the high number of cancer deaths in the area, saying no one could tell her that solar panels didn't cause cancer._

 _[Bobby Mann] said the solar farms would suck up all the energy from the sun and businesses would not come to Woodland._

</comment></comment><comment><USER7> As long as I have lived I still find it hard to accept that educated people can be this ignorant about basic science. Then again stories in the press often carefully leave out the real story so you can't always believe what you read.

<comment><USER7> As per the above comment this is one of those stories edited to make people sound stupid.

<comment><USER8> All the parts that make people sound stupid are right there in the original story.

<comment><USER4> Grand total: _two_ such people.

</comment></comment></comment></comment><comment><USER9> Town also rejects seaport. The extra ships will make the ocean rise.</comment>


Stingray: 3D Game Engine and Design Visualization - <AUTHOR> http://www.autodesk.com/products/stingray/overview <comment><USER2> I guess this is a response to Unity and Unreal Engine, but given that both have free versions and vibrant communities and large dedicated development teams, I think it is a tough market for Autodesk to enter if it isn't going to dedicate very serious resources and a long-term focus.

<comment><USER3> if the integration to a 3ds max/maya pipeline and the quality is amazing they have a chance. otherwise pretty hard

<comment><USER4> > 3ds max/maya pipeline

Those, however, aren't free - far from it. At least with Unity you only have to shell out cash once you have [likely] made that cash from the sales you made with the free version. With this you need to shell out the cash up-front, for possibly one of the most ludicrously priced products in existence.

I can't see this going very far.

</comment></comment></comment><comment><USER5> If Autodesk gets the visualization crowd using Stingray, they have a chance. The games market is a highly competitive and some would say unforgiving career, while the visualization market tends to be previsualization of very large projects, with matching expectations in the compensation of those involved and time frames of delivery. Simply offering a road to a less exhausting career could be the path to success for Stingray.

</comment><comment><USER6> Autodesk acquired bitsquid ([http://bitsquid.se/](http://bitsquid.se/)) last year. Btw their blog contains great ressources on game dev: [http://bitsquid.blogspot.com](http://bitsquid.blogspot.com)

</comment><comment><USER7> I can't find the info on the website, is it possible to code in C++? All I see is the LUA scripting. The engine look really artist oriented, but I think the first people you want to attract for a commercial product are the programmers.

<comment><USER8> With photorealism not being a speed problem but more of a artistic problem, i think its natural that tools focus on artists rather than programmers.

Movie-like assets for games are hard, expensive and artists who master all the skills that it takes are rare.

</comment></comment><comment><USER9> No hookup to Motionbuilder, I see. _Sigh_.

If Stingray had that single feature, this would have been a case of "shut up and take my money". As it is, not so much.</comment>


Leaves from the mental portfolio of a Eurasian (1890) - <AUTHOR> http://essays.quotidiana.org/far/leaves_mental_portfolio/

<comment><USER2> "I believe that some day a great part of the world will be Eurasian."

Considering this was 1890, and that she was experiencing all these prejudices, a remarkable prediction on her part. We're still a ways away, but in 2010, 15% of new marriages in the U.S. were interracial. [1]

[1] [http://mic.com/articles/87359/national-geographic- determined...](http://mic.com/articles/87359/national-geographic-determined- what-americans-will-look-like-in-2050-and-it-s-beautiful)

<comment><USER3> Technology and time removed frontiers, people used to be tribes, then burgs, then kingdoms, nations, USofX. Soon the notion of native, race and country may be very very blurry.

</comment></comment><comment><USER4> I am a mixed person. Her experience resonates even 125 years later.

<comment><USER5> Apropos of nothing much, sometimes, when I visit friends who are now married (to people from very similar genetic backgrounds) and have children, I look at them and their spouse and their children and how eerily similar they all look, and it creeps me out a little. Feels like some kind of repressed incest vibe.

Not often, but sometimes. It creeps up on me. I generally do not say this out loud :)</comment></comment>


Show HN: AutoAnimations – Animate all inserted and removed DOM elements - <AUTHOR> https://github.com/OutSystems/AutoAnimations <comment><USER3> Wow, overriding methods in the HTMLElement prototype to animate everything. It's so crazy it might work.

I think the readme should explain how it works though, and that it is a huge hack.

<comment><USER4> Huh, I was expecting MutationObserver[1] (which is the 'proper' way to do this, by the way). Not sure about the performance though - <USER2> probably comes with more overhead.

[1]: [https://developer.mozilla.org/en/docs/Web/API/MutationObserv...](https://developer.mozilla.org/en/docs/Web/API/MutationObserver)

<comment><AUTHOR> Yup, that's certainly another option. Haven't tried it, but I would say that the asynchronous nature of mutationobserver would make this blink the elements before animating them.

<comment><USER5> In my experience you can change an element with a Mutation Observer before it is rendered.

<comment><AUTHOR> cool, in that case I'll definetly try it.

</comment></comment></comment></comment></comment><comment><USER6> First off all, thanks for the great idea!

This library will be very valuable when it's polished. But currently it's a little bit rough around the edges.

I've tried to used it on my React app by dropping the script on the page, and here are the issues I've found:

1\. For some reason 'window.Velocity' was always 'undefined' for me. I had to replace 'window.Velocity' with '$.Velocity' on line 34 and replace 'Velocity' with '$.Velocity' on lines 160, 162, 167, 169. After that animations started to work, but:

2\. During some operations, elements that should unmount from the page failed to do so.

3\. After playing with expanding/collapsing a tree, based on <ul> and <li>, I started getting <li>'s without parent <ul>'s and a corresponding error from React:

"Uncaught Error: Invariant Violation: findComponentRoot(..., .0.4.1.0.18.104.22.168.0.2.0.$98350.0.0): Unable to find element. This probably means the DOM was unexpectedly mutated (e.g., by the browser), usually due to forgetting a <tbody> when using tables, nesting tags like <form>, <p>, or <a>, or using non-SVG elements in an <svg> parent. Try inspecting the child nodes of the element with React ID ``. "

I think this happens when I trigger an action while animation is still running.

4\. I have a button that opens a modal dialog and also covers the background with a <div> that has "opacity: 0.5". But suddenly after including this library this <div> ends up having "opacity: 1".

5\. Another issue with modal window from previous point, is that animation happens only when I pop-up the window for the first time. On second and subsequent pop-ups there is no animation.

6\. (not related to my app) In README you suggest that users of React initialize your library after the initial render is done. But the library itself doesn't provide a convenient mechanism to do so (for example, exporting AutoAnimation function). I had to modify the script in order to call AutoAnimation after the initial render (which, by the way, seemed to have the same effect as simply dropping the script into the page)

Feel free to contact me by e-mail if you need more information to fix this issues: sergey[dot]smyshlyaev[at]gmail[dot]com

<comment><AUTHOR> Yes, it is rough, and your feedback will help with that. In fact, at start, I was looking to do this in ReactDom but I didn't find the right hooks for it. I'll contact you soon see what can be done about all those issues.

<comment><AUTHOR> I believe I've fixed 1 and 4. Regarding the others it might, related to the way react does things, I'm trying to get some help form the React community to see how this could eb done in a better way.</comment></comment></comment>


Programming podcasts? - <AUTHOR>

Is there anyone that follow any programming podcasts of any kind? Are there any good ones? I would love to watch one if there is any web oriented ones, html5, python, php, etc. <comment><USER2> There's IT Conversations, updated every week or so: <http://itc.conversationsnetwork.org/>

Boagworld: <http://boagworld.com/>

FLOSS Weekly: <http://twit.tv/FLOSS>

</comment><comment><USER3> Here's a great list of podcasts. You're sure to find one here.

[http://stackoverflow.com/questions/1644/what-good- technology...](http://stackoverflow.com/questions/1644/what-good-technology- podcasts-are-out-there)

</comment><comment><USER4> the changelog: <http://thechangelog.com/>

Ruby5: <http://ruby5.envylabs.com/>

Java Posse: <http://javaposse.com/>

</comment><comment><USER5> this developers life <http://thisdeveloperslife.com/></comment>


Have you heard of question party? - <AUTHOR> http://questionparty.com/

<comment><USER2> This is cool, though I'm partial to the idea because I like exploring methods of acquiring linguistic data. Although the data they are getting isn't entirely useful because of their methods (the answers are free form). The questions tend to not be properly answerable without some kind of context ("What will next time bring?"), but it's interesting to see a large number of answers to a specific question.

This reminds me of Open Mind Common Sense (<http://openmind.media.mit.edu/>) which does a much better job of capturing data that can be used as a linguistic resource.

</comment><comment><USER3> I don't get it

<comment><AUTHOR> its just an interesting experiment imo

</comment></comment><comment><USER4> I'm getting some 4chan style questions here and nonsensical things such as "Who attends your workshops" and "Did you ask the forums about your problem?".

What is this site supposed to be?</comment>


Using GraphQL to Improve Data Hydration in Uber Customer Care Platform - <AUTHOR> https://eng.uber.com/graphql-data-hydration-customer-care/ <comment> seph-reed Looked it up. "Data Hydration" basically means filling an outline of an object. For instance `{ thing, foo }` hydrated might be `{ thing: "hello", foo: "bar" }`.

Not yet a fan of this new buzz word. Might have called it "prop filling" or "struct instantiation" or... I dunno. Surely there's a more inferable way to describe this than "hydration."

<comment><USER2> I think hydration as a phrase/concept has been around in the OOP world for a while, in the context of ORMs. At least I remember it as far back as 2011-ish. Its not an Uber-ism

<comment> seph-reed What's an uber-ism?</comment></comment></comment>