7 ms·
HN uses a very non standard way to visually represent comment trees — transparent gifs of different widths instead of real treelike data structures. The behavio
by yewenjie 6y ago
HN uses a very non standard way to visually represent comment trees — transparent gifs of different widths instead of real treelike data structures. The behavior of text based browsers is understandable.
- onion2k 6y agoThat might be non-standard now but spacer gifs did a lot of the heavy lifting in website layout between about 1995 and 2010.
- krapp 6y agoThe weird thing is, HTML already has (and had, even back then) a much simpler and more straightforward way to represent nested lists, but pg didn't want to use it because he thought W3C recommendations went against the spirit of explorational programming[0]. So the existing layout is the way it is just to be contrarian... which is remarkably on-brand for HN. [0]http://arclanguage.org/item?id=20788 http://arclanguage.org/item?id=20788
- Blikkentrekker 6y agoIf the domain not be well understood when one is crafting the markup for a layout as simple as Hacker News's, one simply lacks even the most basic experience. There is no need to use exploratory programming for such matters; it is a very common and well understood problem for which there are good and bad solutions. A simple `margin-left: 20px;` in CSS is a good solution; transparent spacing images are ridiculous.
- onion2k 6y agoone simply lacks even the most basic experience Considering pg's background I don't think it's that.
- Blikkentrekker 6y agoWhich is why I believe that the domain was quite well understood, and that exploratory programming to generate the markup for this simple website is a mistake.
- onion2k 6y agoexploratory programming to generate the markup for this simple website is a mistake You're wrong because you think the goal was to make a website. Judging by the arclanguage.org post linked earlier, the goal was to test the Arc language as an example of exploratory programming to make a web application, with the measure of success being "as little Arc code as possible". The HTML output was intentionally 'bad' from a web development perspective, but 'good' from an Arc perspective. Consequently if you judge it purely in terms of web development it does look pretty awful, but that isn't the context it was written in so that's not a fair way to look at it.
- krapp 6y agoTables and spacer gifs don't necessarily use less Arc code than a simpler layout would. The table layout might even use a bit more if it requires more iteration, macro expansion and branching to render. There are special case macros in the html library for generating parts of the forum table that wouldn't be necessary otherwise. Also, the goal clearly was to make a website, because pg made a website, and here we all are. Once you put your MVP online it's valid to criticize decisions made for it in that context.
- chc 6y agoWhile that's true, they haven't been commonly used for cases like indenting child comments since the '90s. You'd usually either indent with a table-based grid of some sort or (increasingly common as you got past the '90s) with margin/padding properties. The way Hacker News does it where every comment is a table with a spacer gif in the first column was never a standard practice AFAIK.
- stefan_ 6y agoTables were the design element de jure, so much so you could export your UI design straight to generated table HTML.
- cmiller1 6y agoI still remember how to lay out pages with tables. Just another in the long list of programming techs filling my brain that will never get used again like Hypertalk and Actionscript
- neom 6y agoYes, in dreamweaver I definitely moved stuff around using either gifs or transparent tables.
- GekkePrutser 6y agoAt least that was a lot better than using which most FrontPage users did. I cleaned up so much in that time :D
- jephson 6y agoA 2021 appeal to bring them back: https://www.joshwcomeau.com/react/modern-spacer-gif/ https://www.joshwcomeau.com/react/modern-spacer-gif/
- deleted 6y ago[deleted]
- abhisuri97 6y agoMe: There's no way that's true looks in inspect element Me: I stand corrected
- tyingq 6y agoNever meet your heroes.
- dunham 6y agoYeah, TIL. I've looked at the DOM before, but I saw multiple layers of tables and just assumed it was tables all the way down.
- eyelidlessness 6y agoOh my goodness. It’s worse than you probably think. I built a HN dark mode web extension (you can grab it on my GH under the same handle if you want) because it’s been asked for so many times... And the weird hacks I had to do (even basing it off of dang’s invitation to solve it with HN’s base stylesheet) were so unusual that I didn’t feel comfortable promoting it here or anywhere. There’s not just weird 90s style table layout/spacer gifs, there’s also just random font tags and inline color attributes for important (eg branding) elements. Every downvote greying is inline color attributes. I’d originally planned on a companion stylesheet for Algolia search and it was so different I just bailed. Edit: honestly given the forum, I wish they’d open source some portion of HN to allow improvement. I really want a better mobile view, which is easily achievable with CSS without using the API and hosting another domain. If there’s so little interest in UX improvement effort this is something we could pick up the slack on.
- eyelidlessness 6y agoI’m adding to specifically say to dang: you put probably horrific effort into maintaining this community and no ill will at all was meant to be directed toward you. I’m only sharing what I saw as a frame of reference for what’s currently in the HTML we consume every day and the challenge of tailoring it to other use cases.
- GekkePrutser 6y ago
- akalsz 6y agoThat makes sense then, w3m's inline image option was probably disabled for OP and the other two can't inline images at all.
- Blikkentrekker 6y agoVerily, I've not felt such disgust since I saw the characters from the Canadian Aboriginal Syllabics block-hack.
- aloisdg 6y agothe generics in go tricks?
- vaughnegut 6y agoWhat could possibly go wrong with `interface{}` and reflection?
- Blikkentrekker 6y agoWe have generics; we have the technology: https://i.redd.it/9uoa5ngjnba51.png https://i.redd.it/9uoa5ngjnba51.png
- dharmab 6y agoContext: https://www.reddit.com/r/rust/comments/5penft/parallelizing_enjarify_in_go_and_rust/dcsgk7n/ https://www.reddit.com/r/rust/comments/5penft/parallelizing_...
- austincheney 6y agoIt is more old than non standard. At one point this was near universal common practice. It is 90s era visual formatting for HTML before anybody used CSS. Dang has been quite clear that he is unpracticed with CSS. It wasn't CSS that killed this manner of formatting visual content, circa 2005-2010. It was lawyers as it isn't friendly to accessibility.
- Blikkentrekker 6y ago> It was lawyers as it isn't friendly to accessibility. That is the point, and that is why it was changed. The markup should reflect the structure and meaning of the document, so that accessibility tools and crawlers might better understand it. Ideally, with all CSS and Javascript turned off, it should look as a plain, white, unintereseting, but otherwise usable website.
- mssundaram 6y agoAh, so that's why Firefox reader mode renders it all flat