It's funny to go through all this Tom VII rabbit hole |
|
|
|
14889. Anonymous (50.35.110.217) –
10 Jun 2024 18:54:51
[ Green scream ]
I was somewhat shocked to find that the Epsom's version of the paper uses the fornication epithet "for) and" in describing C++: "AST pools. datatype declarations are for) and annoying in C++."
The Knuth version has the much more polite "AST pools. One of the main things I need to do is
create tree-structureddata to represent the abstract
syntax tree of the various languages involved.
This is very nice in ML (it is what the datatype declaration is for) and annoying in C++."
I also was disappointed that the style for "!" at the end of a line was inconsistent in the Knuth version. Just before "Maybe!" two lines above "The boxes-and-glue algorithm" does not extend beyond end-of-line, while, as expected, "10,000,000,000,000,000,000,000,000,000,000,000,000!" does. |
|
|
|
14887. Rory (82.39.107.48) –
10 Jun 2024 17:54:09
[ Green scream ]
Hi Tom
Two questions
Have you played Factorio? I think I'm the last person on the planet to discover it.
Is it possible to search your blog? Google is a bust - I presume you banished the spider
|
|
14886. Anonymous (78.129.35.193) –
10 Jun 2024 04:44:15
[ "April" 2024 ]
Since you like to meddle with the GPL justification, you may be surprised that there are many versions of the GPL 2.0, https://github.com/pombredanne/gpl-history/tree/master/allvers |
|
14885. Anonymous (162.247.72.193) –
08 Jun 2024 15:45:36
[ Green scream ]
Amazeballs video/project. You dot the i in me, and cross the t. |
|
14884. Tom 7 (74.109.249.246) –
08 Jun 2024 11:06:40
[ "April" 2024 ]
I added the Widths table, but it turns out there was another issue (which I could only find by stepping through pdf.js in the debugger!): Firefox really wants the "argument" to /FontName to begin with a slash. I guess that makes sense, but none of the validators I found reported any issue here!
FWIW I think the text rendering looks much better in Chrome, but I am happy to have it working in Firefox. Thank you everyone (especially mixmix) for the help and encouragement.
The PDFs on the site should work now. They still don't open in Illustrator; that would be nice to fix but I don't think it'd be a serious obstacle for the main use of the papers, which is to print them out and shred them.
I'll try to make the source code a bit easier to use when I find some more energy. |
|
14883. Tom 7 (74.109.249.246) –
08 Jun 2024 09:34:09
[ Green scream ]
mixmix: I do have a lot to say on all those things and the fact that you're interested is heartening! I am not going to think about making videos for at least 2 days, however. |
|
14882. mixmix (27.127.18.207) –
07 Jun 2024 21:53:44
[ Green scream ]
I really enjoyed the video, Tom! It's such a pleasure to watch you having fun together with your family.
Now, what does it take to make you produce a supplementary, low production cost video on BoVeX (full language description including its type system, semantics, lowering it down to the EL and the IL, and the register machine with its own primops), the boxes-and-glue algorithm, and the PDF generator?
We want to know everything, from how you compile mutually-recursive polymorphic functions through how you traverse the rephrasing tree (any hope for A*?) to how you cope with the missing kerning pairs. What you've tried, what did work and what didn't, what unexpected problems arose, and what's your secret on maintaining sanity while writing a compiler in C++. |
|
14881. jonas (37.191.60.209) –
07 Jun 2024 06:24:41
[ Green scream ]
The video about this project is now online at https://www.youtube.com/watch?v=Y65FRxE7uMc |
|
14880. Elijah (64.64.116.155) –
05 Jun 2024 12:13:10
[ Green scream ]
Super excited for it! Take your time :) |
|
14879. jonas (88.87.242.184) –
01 Jun 2024 16:18:45
[ Green scream ]
Joe: thank you, I was wondering if it was in that repository somewhere, but I'd still like a release too. |
|
14878. Joe (82.69.58.143) –
01 Jun 2024 16:12:03
[ Green scream ]
Is this what you are looking for, Jonas?
https://sourceforge.net/p/tom7misc/svn/HEAD/tree/trunk/rephrase/ |
|
14877. jonas (88.87.242.184) –
01 Jun 2024 10:12:40
[ Green scream ]
I'm less excited about the video, because the articles in the robot dance proceedings appear to describe the project well enough. I'd be more happy if you made a source code release of BoVeX, especially of the parts that do not require an expensive video card with 128 GB of RAM. The "Coming soon" message currently at "http://tom7.org/bovex/" is teasing me a bit too much. |
|
14876. TubbDoose (68.149.144.137) –
31 May 2024 23:40:55
[ Green scream ]
Excited for the video! |
|
14875. Anonymous (75.57.29.28) –
31 May 2024 21:55:07
[ ARST ARSW ]
Goodbye Conan link |
|
14874. Tom 7 (104.234.212.16) –
19 May 2024 11:10:43
[ "April" 2024 ]
Awesome, thank you!
I think the Widths table is a likely explanation. That would be redundant with the information already in the embedded font, so it would make sense that some readers would care and others would just use the font metrics. I have the widths from the TTF so it should be pretty easy to add that.
I am working on the video this weekend, so I will try not to let this distract me :) |
|
14873. mixmix (119.244.27.244) –
14 May 2024 23:48:01
[ "April" 2024 ]
OK, so I've spent a bit more time investigating the rendering issues some of the folks are having.
Turns out, there's actually plenty of PDF validators out there. I used one from pdf-online.com whose output looked reasonably constructive. Basically, I was immediately yelled at for a bunch of missing keys, one of which was Widths.
I checked https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf (page 255), and apparently it is really required. I couldn't find what a reader is supposed to do in case of its absence, so I guess it's implementation specific.
Then I went to see what pdf.js (which is what Firefox uses under the hood) does, and to my surprise instead of reading the actual glyph widths from the font data, it relies on BaseFont metrics: https://github.com/mozilla/pdf.js/blob/master/src/core/evaluator.js#L3986
If the referenced BaseFont is not a real thing, it falls back to Times Roman for serif typefaces and Helvetica sanswise: https://github.com/mozilla/pdf.js/blob/master/src/core/evaluator.js#L4046
A fun side note: because Font18 and its brothers (which is what Palatino goes by after https://sourceforge.net/p/tom7misc/svn/HEAD/tree/trunk/cc-lib/pdf.cc#l3808) are not known serif typefaces, nor do they contain the word "serif" in their name, pdf.js treats them on par with Helvetica.
I also was curious why reprocessing your paper seemingly fixes all issues so I compared the original with what macOS Preview exports it as, and it seems like it completely revamps the whole thing and even embeds the kerning values.
Speaking of kerning, it's apparently not very portable to rely on a PDF reader in hope it'd apply it. TIL: it may not and in some cases it absolutely doesn't. I didn't read too much of your code (trying not to spoil the fun), but if you in any way rely on kerning to position the word pieces, I suggest you use the TJ operator instead of Tj.
I hope all these discoveries don't distract you from making the video to which I'm really looking forward! |
|
14872. Anonymous (37.17.237.199) –
14 May 2024 07:55:05
[ "April" 2024 ]
I would pay for an online version of the monofixed version of the algorithm! |
|
14871. Tom 7 (74.109.249.246) –
11 May 2024 11:08:14
[ "April" 2024 ]
Right? I don't get it! I wish there was at least some kind of validator that would tell me "this is broken" instead of just looking wrong on some platforms. :( |
|
14870. Anonymous (37.214.70.215) –
11 May 2024 04:33:09
[ "April" 2024 ]
I can confirm that the version of the paper(s) attached to this post have kerning problems on both android and desktop firefox. Okular shows problems with kerning as well, however the wrong kerning looks different from firefox. Librera FD on android renders correctly. The version in SIGBOVIK proceedings looks fine in every program though. Shurely the "Portable Document Format" can't experience non-portable behavior, right? Right? |
|
14869. Anonymous (91.160.14.162) –
10 May 2024 01:26:53
[ "April" 2024 ]
Great paper(s) as always! No apparent kerning issue on chrome or android. |
|
14868. Anonymous (185.226.120.84) –
06 May 2024 07:31:05
[ "April" 2024 ]
So you are telling me I read through that whole paper with kerning from hell and it was just a display bug??? |
|
14867. Anonymous (119.244.27.244) –
04 May 2024 09:58:39
[ "April" 2024 ]
Firefox uses pdf.js to render PDFs under the hood, I checked its latest version but didn't see any warnings/errors despite the garbled kerning. I spent about half an hour trying to figure out what's going on but unfortunately found nothing. I suggest you generate a test PDF and create an issue at https://github.com/mozilla/pdf.js There's plenty of people who actually understand how PDF rendering works (unlike me). |
|