1. 40

    If you absolutely have to use reddit, for the love of all that’s good, use old.reddit.com.

    1. 14

      I also recommend the the old reddit redirect addon: https://addons.mozilla.org/en-US/firefox/addon/old-reddit-redirect/

      IDK if it still happens, but there was a time when you would suddenly be dumped onto the new reddit while browsing old reddit, and this solves that issue.

      1. 1

        it happens when clicking a link from modmail on mobile. very annoying since I can’t even see how to moderate a post in the new UI; I have to manually edit the URL first and add back the ‘old’.

        1. 2

          if you phone is anything but iOS i think you can install the addon

      2. 7

        I am always fascinated by these antiquated interfaces, such as youtube’s &disable_polymer=1, m.facebook.com, text.npr.org, lite.cnn.io. They limit spying opportunities greatly and often allow being free of javascript and still have a worthwhile experience. Interestingly, none of these services offer official RSS despite making sites much more scrapable.

        Probably shouldn’t talk about it, cause they start taking them down for reasons mentioned above :).

        1. 14

          I always have a suspicion that these kind of “antiquated” interfaces as you call them might actually exist when the developers of the system like to use the system but dislike all the crap that marketing and sales makes them put into the UI. You know, to have a usable system for themselves.

          1. 3

            I agree. I think mbasic is kept around because otherwise a significant portion of users would quit Facebook.

          2. 7

            I’m surprised there is a m.facebook.com, because Facebook has had a mbasic.facebook.com that’s even more stripped down.

            1. 5

              When you have a database, you can build many different interfaces for the same data.

              For example, have you heard of Facebook API?

              Also, there’s 0.facebook.com. Facebook pays ISPs in poor areas to provide free access to it.

            2. 4

              such as youtube’s &disable_polymer=1,

              Do you just append this to the URL? It doesn’t seem to change anything on my system.

              1. 7

                I think that has been removed now. It used to do something and I even have a Firefox plugin that automatically adds it, since the Polymer version used to work really badly in Firefox.

                1. 5

                  It sadly seems to be true, a shame.

                  You can try out idiotbox.codemadness.org and invidio.us for unofficial solutions.

                2. 4

                  I don’t think they’re antiquated, I think accessibility is a modern concept, and they work very hard to keep them accessible.

                  I think mbasic is way more impressive than www.facebook.com.

                  1. 3

                    It is a joke from perspective of the ‘modern’ design. I think they are the most impressive and probs the best solutions for people who care from usable and accessible sites.

                3. 1

                  I do, and I do.

                  There’s a setting in the global preferences that works almost always, except on unmasked mobile.

                1. 11

                  It’s funny how much of stereotypical programming culture is just basically a rollback of the progress the industry has made in past few decades. We all wanted GUIs, IDEs, and especially TrueType fonts in 1991, after all. Now it seems like we actively sacrifice all this on the altar of an empty simplicity that works by ignoring problems that the kind of Unix programmer doesn’t want to solve.

                  1. 4

                    Because the progress is called into questioning after the fact that it takes absurdly powerful machines to have chat. It is not empty simplicity, just critical thinking.

                    1. 9

                      Sure, you could hook up two serial character terminals and have chat with probably just two Z80s, but the actual reality for your chat example is:

                      • People write in non-latin script languages that require complex text rendering, and wish to write in their native tongue with no compromise

                      • People are using multiple devices, some with incredibly complex radio infrastructure, which is almost certainly routed over networking hardware that got more complex to handle the kinds of networking topologies that the designers of IPv4 couldn’t imagine - then synchronizing and pushing state between them

                      • Delivering formatting, rich media, hypertext

                      And for our original example of outline fonts, the concerns are also:

                      • Printing and publication, no one wants bitmap fonts in their newspaper

                      • The diversity of displays and human eyesight

                      Seriously, this obsession with things like bitmapped fonts is basically making me think programmers don’t care about anyone but other programmers, use cases and real-world complexity beyond spherical cows be damned.

                      1. 4

                        programmers don’t care about anyone but other programmers

                        You just now noticed? :-) I’d say it even stronger: most people, no matter their vocation, care only for their own needs and preferences, unless paid to do otherwise. And I believe it’s just fine for us to make things that work for us; that’s empowerment. Modern text rendering is in no way threatened by the revival of bitmap fonts among certain types of programmers. It’s mostly just a fashion statement, but there are legitimate reasons to want simpler tech. Diversity is still acceptable, isn’t it?

                        1. 1

                          The diversity of displays and human eyesight

                          That’s the whole point of this article–throwing away bitmapped fonts is focusing on hidpi displays and ignoring existing technology that’s suitable for the rest. It’s not “vector fonts baaaaaad” it’s “we shouldn’t be prevented from choosing a bitmap option in cases where it makes more sense”.

                    1. 14

                      They are not meant to be resized so they stay at maximum in couple of sizes. That keeps them predictable and efficient.

                      Nice that it’s efficient, but what if I want to resize my font?

                      1. 3

                        Pick one that’s at the size you want?

                        1. 5

                          I frequently resize text on-demand though; it’s not impossible to do that with bitmap fonts by just selecting a different font (that’s what happens in xterm with the default fixed font), but it all seems hacky and hard to maintain to me.

                          1. 3

                            It seems hacky because of the reasons I stated. Most of energy goes into dealing with bitmap fonts, while your issue would be fine with the right fallback setup, but then fontconfig makes it really annoying to do so in any reliable way.

                            1. 5

                              That’s not really what I meant; if I want to make a fixed font I will essentially need to make a whole bunch of them, and every time I add/change a character I will need to update a bunch of them. Seems much more difficult to maintain to me. And as a user, you’ll be limited to the font sizes that the font author chose, instead of being able to set your own arbitrary size.

                              1. 5

                                Well, arbitrary sizing requires outline font and does not really work well on low PPI displays. Sharpness is in my opinion a worthy trade-off to do so.

                                1. 6

                                  It works great for me? I can zoom in and out and it always looks just fine to me at pretty much any size. I don’t get the whole “zomg, it looks terrible!” stuff.

                                  Sharpness is in my opinion a worthy trade-off to do so.

                                  Well, you’re not the one making the fonts.

                                  1. 1

                                    Ad hominem.

                                    I write opinion pieces and the nature of that is that I will be open with my criticism. I understand your values, but then if I were in your place I would consider buying 4K display for such purpose.

                      1. 8

                        I did run a site on werc for some time in the past. After dealing with its particularity it becomes a great midpoint between having a static site and having a dynamic site.

                        Of course, in my view, it is always more preferable to have a static site in majority of individual use cases.

                        1. 12

                          I would like to see more work put into engines which are static for normal users, but dynamic for logged-in users, e.g. the site author. It would be neat to integrate static site generation with dynamic posts, WebMentions &c.

                          1. 2

                            Varnish is probably what prevents that nice thing to happen, by doing the same thing as NAT for IPv4: it works without rethinking everything.

                        1. 11

                          I understand the rant, but I don’t understand why GNOME should be the focus of this anger. Projects adopt features according to their values, and as far as I know, the values of GNOME aren’t simplicity or preserving human-readable binary formats.

                          Bitmap fonts seem more (but not completely) in line with the values of projects like suckless. And I think they mostly work fine with bitmap fonts.

                          1. 3

                            GNOME is just a symptom in the case of this short text.

                          1. 36

                            There are good reasons for the complexity of text rendering. Developers don’t just add complexity for no reason. In general, if one says “why not just”, one is probably oversimplifying the problem.

                            1. 7

                              This article is arguing against “Why not just assume everyone has a high-DPI display since then we can ignore existing solutions and focus on the one that requires everyone to replace the equipment they already have which works fine.”

                              1. 14

                                It doesn’t require you to replace anything. I use vector fonts on a non-hidpi display just fine and, I figure I’m not the only one who has been doing this for at least a couple decades? I am however looking forward to upgrading to a hidpi display, not because I need to but because it’s simply better.

                              2. 3

                                Well, cause the problem used to be simpler. Using ‘why not just’ also calls into questioning the presuppositions and the nature of issues. The font rendering for typesetting is much less difficult as it is more predictable. Yes, fonts are weird and there are edge cases, but code is still mostly written in pure ASCII set.

                                Also, it is a rant and not a technical text for a reason.

                                1. 9

                                  The problem was never simpler, the solutions were merely incomplete, incorrect, and exclusionary.

                                  1. 1

                                    I think you’re being uncharitable. But, @lich also has a lot of unstated assumptions here. I think they are talking about font usage in a text-only programming environment in a terminal emulator, on a low-DPI display. So yeah, that’s a pretty narrow use case compared to, say, a web browser for use with every possible combination of typographic style and language in the Unicode universe, which is what @mwcampbell ‘s link is about. But it’s a valid enough use case, and relevant in this forum, where people are interested in OS development and simpler solutions in general. The modern typographic rendering libraries are not being threatened here, and of course they’re not going away. But they are so massive and complex as to be exclusionary in their own way.

                                2. 2

                                  Developers don’t just add complexity for no reason.

                                  HAHAHAHA AHAHAHAHA AAAAHAHAHAHA! ahhhhgh…

                                1. 8

                                  Most of the bitmap fonts are just too small to be comfortable for me to read. Look at Proggy, a good-quality bitmap font, but it’s just too small to be readable by anyone old enough to drink.

                                  1. 8

                                    I hold a bit of a quarrel with 1 pixel wide bitmap fonts, the Atarist, Spleen and Terminus (at large sizes) fonts all solve the issue of being too small.

                                    1. 1

                                      That just means your monitor’s resolution is too high.

                                      1. 6

                                        High DPI screens are here to stay. There’s no reason for bitmap fonts not to come in appropriate sizes for it.

                                        There are huge readability advantages to well-designed bitmap fonts and I really wish I could get them on a nice screen.

                                        1. 3

                                          Terminus at 16x32, its largest available size, will give you 1mm-wide glyphs on a 200 PPI display. That’s about the physical size I use for code, YMMV of course. I don’t expect to switch to a bitmap font for everyday use, because I just don’t see any real advantage on a high-PPI display, and plenty of disadvantages. Seems like an aesthetic preference to me, and those kinds of debates are super boring; de gustibus non est disputandum. But there’s no technical reason not to have larger-sized bitmap fonts, if someone’s willing to do the work.

                                          1. 3

                                            This post has inspired me to try a few bitmap fonts and I’ve gotta say, if you can find one that fits your normal working size then it’s fantastic!

                                            Why? All else being equal, I can read smaller glyphs using a bitmap font, which means I can put more content on-screen at once.

                                          2. 2

                                            High DPI screens are here to stay.

                                            Are they? As of 2020, 1366x768 is still the most common display resolution. If I browse a store selling new laptops, 1080p is by far the most common resolution, and smaller resolutions than that are readily available. After ten years. High-DPI displays have taken over phones, but on laptops/desktops, they remain a niche choice, and niche choices can be taken away once manufacturers lose interest.

                                            High-DPI CRTs (although they were anything but ‘crisp’) used to be very common, until everyone switched to LCDs and happily stared at chunky 1280x1024 pixels for a good decade.

                                            1. 2

                                              Huh. I guess it’s just my sector then - my users are overwhelmingly on high DP screens.

                                      1. 4

                                        https://github.com/Francesco149/bdf2x You can scale your bitmap fonts with this and keep using them even on HIDPI displays.

                                        1. 3

                                          Nice, but the solution is not system based and thus is not sustainable in a long term. Still shows the niceness of bitmap fonts in terms of their hackability.

                                        1. 1

                                          Just use gopher with Markdown for formatting and it is actually static web which works fine when you have a client. Sadly i know of a single RSS client that support gopher:// urls. I will be thankful for anyone adding gopher support to their software, and it is not difficult as it is one of the simplest protocols.

                                          1. 2

                                            I think the problem is that if someone is willing to create a gopher feed, why wouldn’t they write minimal HTML instead? For example, do you see any benefits from danluu.com being available over gopher instead of HTTP/HTML?

                                            1. 1

                                              That’s like saying “static typing only rejects programs, why would you want one”. You could say it enables autocompletion, better performance, etc., but the primary value is rejection itself. Gopher forces minimal HTML-like content and that is valuable in itself.

                                              1. 2

                                                I suppose. I’m personally fine with umatrix and disabling JS by default, and would rather not have to use an entirely new program to read the sort of stuff I’m already reading online.

                                              2. 1

                                                Well, it’s not pure text, while in case of gopher - it is. Yes the difference is minuscule, at is a matter of couple of kilobytes but these things amass.

                                              3. 1

                                                I’m unfamiliar with Gopher servers, can they serve XML (which RSS is a subset of)?

                                                1. 1

                                                  Well, it is a text document, just under /0/ form and it works fine with a client that is able to use gopher protocol, which I only know 1 of. You can also use a gopher proxy for that.

                                                  Example: gopher://dataswamp.org/0/~lich/musings.atom.xml

                                                  1. 1

                                                    OK I’d love to know more but nothing on that site works with my client (w3m)

                                                    Index of gopher://dataswamp.org/1/

                                                    [unsupported]Happy helping ☃ here: Sorry, your selector does not start with / or contains ‘..’. That’s illegal here.

                                                    1. 1

                                                      Does w3m support gopher? Lynx does and my favourite gopher client is sacc.

                                                      1. 1

                                                        Yeah according to Wikipedia’s list of gopher clients it should but obviously it is in error. lynx works better!

                                              1. 2

                                                I’ve added this to my site now. I think this is different from /reading and /publishing as it increases the awareness of RSS in the modern internet age. And that matters as it stops the centralisation of web one step at the time.

                                                1. 5

                                                  Does anybody care about the environmental impact? This seems like a giant ad to buy a product instead to deal with a problem of outline fonts in user environments. Anybody who worked with fontconfig and ttf on level more advanced than MacOS menus would consider that this devil’s advocate position is worthwhile.

                                                  This position is to return to bitmap fonts. They are crips, easy to read (of course 1 pixel width is going a bit far). Then some people would actually have to downgrade. Please research bitmap fonts and found ones that fit you, and not produce more e-waste. Out of sight, out of mind does not apply to this planet. And displays, contrary to mentioned shoes, pans, beds, do not last.

                                                  If somebody wants HiDPI display that lasts, I would recommend using eINK, as for prolonged reading this would be much better. Of course, responsiveness would suffer, but a will towards high responsiveness would lead towards higher and higher power usage of displays.

                                                  1. 7

                                                    The tone of the article also hit me the wrong way. It also illustrates how wealthy tech geeks normalize new technology very quickly. Low-res to the author means 1920x1080.

                                                    The actual most common screen resolution at the moment? 1366x768. I use a 1366x768 screen, and I routinely run into websites that don’t display properly, made by web designers who think as the author does.

                                                    1. 3

                                                      And displays, contrary to mentioned shoes, pans, beds, do not last.

                                                      Why not? My screen has been used for 19084 hours (according to the OSD). At 5 days/week a 10 hours that’s more than 7 years.

                                                      1. 1

                                                        Of that I can only be jealous and it is, in my view, far from being a rule. If you want, please state what display it was.

                                                        1. 3

                                                          It’s a 19” Eizo.

                                                    1. 17

                                                      Honestly, I don’t get it. Why does it matter what the text looks like as long as it’s satisfactory?

                                                      1. 29

                                                        Different people have different thresholds for “satisfactory”, I guess?

                                                        1. 6

                                                          I don’t really buy this, it’s not satisfaction but habit. Sure, you realize there’s a difference when you change, it’s not like your brain has changed. It’s just the inverse effect of upgrading and admiring what’s better – but after a while you get used to it. Just like you’re not inhibited by this initial admiration, you won’t be by the initial annoyance.

                                                          In the end, it’s not pixels you’re looking at, but like art tells us, whatever we are looking at is in our head. And we’ve long passed the point where this kind of consumer scaring is necessary.

                                                          1. 2

                                                            I don’t really buy this, it’s not satisfaction but habit. Sure, you realize there’s a difference when you change, it’s not like your brain has changed.

                                                            What is “habit”, if not your brain changing to optimize itself for a particular use case?

                                                            1. 3

                                                              Fair enough, my point is that this change isn’t permanent, and all it takes for someone to forget about what resolution the screen is is a week or two (except if actually inhibits your work, of course).

                                                            2. 1

                                                              But what is satisfaction if not informed by habit?

                                                            3. 1

                                                              Something inexplicably obvious about it just doesn’t occur to me, it seems.

                                                              1. 1

                                                                …. which is fine! My wife can’t see the difference, either.

                                                            4. 16

                                                              After using retina and 4k displays for several years, when forced to use a 1080p, 96dpi monitor I find I no longer consider any text on it “satisfactory”. To me, it all looks painfully bad now that I’m accustomed to a sharper, higher quality experience. The eye strain after 8 hours of staring at fuzzy, low res fonts takes a real toll.

                                                              But others would be happy with a super low-res vt100, I’m sure. Everybody’s satisfactory is different.

                                                              1. 6

                                                                This reads to me like advice to avoid 4K as long as possible. If there’s no significant quantitative difference in efficiency/eyestrain between 4K and 1080p, and I’m currently happy with 1080p, switching to 4K will only make it more unpleasant for me to use perfectly useful 1080p monitors, pushing me to needlessly purchase more expensive monitors to replace those that I already have, and increasing consumerism.

                                                                1. 2

                                                                  You’re certainly free to stick with what you’re accustomed to. I have no compunctions about spending a lot of money to get the absolute most comfortable experience possible out of something I’m probably going to spend a year or more of my life, cumulatively, staring at. It’s one of the cheapest possible investments in the pleasantness of my career on a dollars-per-hour-used basis.

                                                                  1. 3

                                                                    Explained that way, I understand where you’re coming from. Even if there’s no objective benefit to upgrading your monitor, and you already feel “perfectly comfortable”, making work slightly more pleasant is desirable.

                                                                    Now, you still need to make the decision as to whether the benefit gained from the monitor upgrade is worth the money you’re spending on it, but that’s much more personal. Thanks for sharing your perspective!

                                                                  2. 2

                                                                    The eyestrain is already there, you are just accustomed to it

                                                                    1. 1

                                                                      Citation needed.

                                                                  3. 6

                                                                    Doesn’t the vt100 use a bitmap font? This being the actual true solution to get sharp fonts on a low res display - just use bitmaps at the correct size.

                                                                    1. 4

                                                                      The original VT100 is quite low-res and fuzzy. Later VT terminals used higher-resolution screens which looked better.

                                                                      1. 4

                                                                        There’s this fascinating story about how DEC used the fuzz to good effect in their bitmap font, as a primitive form of anti-aliasing. ‘Dot stretching’, phosphor response curves… well worth a quick read!

                                                                        1. 2

                                                                          This is wild. Thanks for the link!

                                                                      2. 2

                                                                        Bitmap fonts will avoid loss of sharpness due to antialiasing, but they’re not going to make an extremely low resolution screen any less low res, so I don’t know that I’d call 5 pixels arranged in a vaguely “e”-shape exactly “sharp”.

                                                                        1. 1

                                                                          There are bitmap fonts which are more high res than 5 pixels per “e”. Check out stuff like atarist for alternatives.

                                                                          1. 2

                                                                            We’re talking about the vt100. You can have high resolution bitmap fonts, but you can’t fix a low resolution screen with a high res bitmap font.

                                                                    2. 2

                                                                      I concur. To my eyes text with a 1.5x scaled 4K looks better than text with a 2x scaled 4K. I think the psychovisual system is complex and subjective enough to warrant “if you like it then it’s good”.

                                                                      1. 1

                                                                        Some people fetishize over fonts, font rendering, font shapes, dithering, smoothing and more such visual trickery. The author of this piece has published a programming font so I assume he puts more weight on font-related things than the average font consumer. Other people have other fetishes, my own is to cram as much onto the screen as I possibly can while still being able to distinguish what is written from the fly poop which partially conceals some characters on the screen. This makes that I always have to guffaw a bit when I see people lamenting the bad state of high-dpi support in Linux since the first thing I end up doing is turning all the stuff off so I can get 16 terminals on a 15” display. To each his own, I guess…

                                                                      1. 2

                                                                        That is a very subjective rationale. A better marketing name, in my view, would be: Python style pattern scanning and more!. Also it misses one of the basic feature that both cut(1) and awk(1) do posses: ability to read the file directly. Catting only makes sense when you want to concatenate multiple files.

                                                                        Other than that, quite an interesting utility with a unique approach.

                                                                        1. 3

                                                                          I’m being pedantic, but you can use this without cat using redirects, such as in choose 1 < file.txt

                                                                        1. 6

                                                                          I agree 100% with the author, and I would also add that email is probably the most energy efficient, and quite easy to setup on your own.

                                                                          It is fair, it works, but sadly people are slowly forgetting it and that is honestly scary. Seriously, I hate when people say they care about whatever environment is, and then launch gigantic webapp just to send couple texts.

                                                                          What a weird times we live in.

                                                                          1. 13

                                                                            [email is] quite easy to setup on your own.

                                                                            If you mean a client, I sort of agree. If you mean a server, I think you are dismissing a whole lot of evidence to the contrary.

                                                                            1. 4

                                                                              I said quite about the server. It is not something impossible, but it is a task that will take day or two for a proficient person.

                                                                              1. 11

                                                                                … followed by a lifetime of keeping the blasted thing patched and up to date with anything remotely resembling best practices, as those evolve.

                                                                                1. 3

                                                                                  Well that’s true for hosting anything.

                                                                            2. 5

                                                                              email is probably the most energy efficient

                                                                              Except for the thousands of CPU-years spent on Perl interpreting SpamAssassin code all over the world ;)

                                                                            1. 15

                                                                              I’ve been using dwm and st for some time now, but honestly, I see no point if you do not want to micro-manage your own environment.

                                                                              How many projects from the past, from the era before package management are still used commonly? I can’t come up with a single example. Dwm exploded quite recently (in UNIX-like history perspective) and it depends on Xlib which IMHO destroys entire claim of minimalism. C is not a ‘hackable’ language and having a set of patches just, in my view, leads to a mess of management, compatibility etc. I’d much rather uses either a WM written in a language that is much more open to code is config system (i.e. xmonad, stumpwm) or just resign from thinking about my tiling WM setup and move to spectrwm, i3, and others.

                                                                              On the other hand st… Well, it is really good terminal emulator for how terminal emulators are used these days, but please, if you package it, package it at least with Xresources and scrolling patches. A one groups radical opinion cannot determine terrible user experience from the standard way of installation.

                                                                              1. 2

                                                                                package it at least with Xresources and scrolling patches. A one groups radical opinion cannot determine terrible user experience from the standard way of installation.

                                                                                The entire point of st is that it doesn’t do scrolling: that’s what a terminal multiplexer is for. What next, add tabs?

                                                                                1. 4

                                                                                  Actually I think a terminal emulator with scrolling and tabs is a better alternative to stacking a terminal emulator and a terminal multiplexer. The reason is that with the former, you have a separate terminal emulator for each tab, and it natively supports scrolling. With the latter, you’re stacking two terminal emulators, because the multiplexer has to do its own interpretation of VT100 escape sequences to maintain its model of what should be on the screen. Stacking two terminal emulators strikes me as more complex.

                                                                                  1. 0

                                                                                    I do not like when I open a piece of software it does not contain basic functionality. That’s that. A task of good terminal emulator is to replace the mess that xterm is. For cases like scratchpad term scrollback is very useful.

                                                                                    Then, if you agree with suckless philosophy anyway, you would not use the packaged version anyway.

                                                                                    1. 2

                                                                                      I mean, there’s (presumably) a tension there; email is pretty basic but I don’t need my terminal emulator to embed its own email client.

                                                                                      If you’re using tmux anyways, it’s already got scrollback, subtabs etc; having those things implemented at two layers results in super confusing behavior when EG they both try to scroll.

                                                                                      1. 1

                                                                                        That’s interesting. I do agree with you that it’s a useful feature to have, in a vacuum. When all I want to do is just run some commands in a terminal, having scrollback in my terminal emulator is the simplest and easiest way of having scrollback.

                                                                                        But when you get into doing some more advanced stuff, having all the functionality implemented everywhere starts to get really annoying. For example, when you have vim open in a tmux window in a terminal emulator that has scrollback and tabs inside swaywm, you have about a million ways to do something like tabs/panes.

                                                                                        Vim itself supports tabs and splits and obviously scrolling too, then tmux supports tabs and splits and scrolling, then the terminal emulator also supports tabs and scrolling and often splits too, then the window manger also supports tabs and of course “splits” in the form of tiling two windows on a single monitor. I haven’t seen scrolling in a window manager but I’m sure it exists somewhere, I guess a ‘zooming’ feature that supports windows larger than your monitor resolution counts. It becomes a dance of modifier keys and prefixes and escaping prefixes with other prefixes and just a total fucking nightmare. I’ve even had the situation of that with an extra layer of tmux in there for when I’ve run ssh in tmux into a computer where I have connected to tmux, meaning I’m using ^B for one tmux prefix and ^A for another, or I’m using ^B^B to escape the prefix for the inner tmux, total madness I tell you.

                                                                                        So yeah I’m not super happy with using tmux for scrollback really, but I don’t want my terminal emulator to do it either.

                                                                                        When you analyse that layering and repetition of functionality, it turns out there’s deficiencies all the way up and down the stack. swaywm has tab containers because it’s useful to have multiple unrelated programmes inside a single set of tabs. And of course it has ‘splits’ in the form of being a tiling window manager, because sometimes you want multiple unrelated programmes to share a monitor. So why have the same functionality lower down as well? Why does tmux need splits. Well because you can use it in the terminal where there’s no display server, of course. So maybe the issue is actually that the virtual console doesn’t have tabs or splits. Yet it does kind of have tabs in the form of TTY1, TTY2, etc. But no splits.

                                                                                        Then of course there’s the issue of vim tabs and splits. Well vim has tabs and splits because they can share information and control in a way that separate vim instances running in a higher level tabbed or split interface can’t. But that’s a vim limitation. Emacs supports client/server functionality where you can have multiple instances of Emacs that are clients of an Emacs server process, and I think that NeoVim might support that too?

                                                                                        Ideally what I would want is to actually use something like tmux but split apart into the useful components: something to do the tabbing and splits (a window manager for terminal emulators), something to do the scrollback and something to do the persistence across logouts, as they’re all separate functionality. And if my editor supported client/server, then on a TTY I could use the tabs/splits part of tmux, the scrollback inside of that, with separate editor client instances inside those splits, while in my window manager I could use terminal emulator windows that run editor client instances, split and tabbed using my window manager.

                                                                                  1. 2

                                                                                    I think with contrib you step into the world of issues. Stuff already mentioned by @mjn, but then it is also how varied documentation will be in the contrib. Having a contrib directory means you will aim at producing software that is compatible with these pieces of software, but that is rarely true in longer and older projects. It becomes itself a hell to research and study.

                                                                                    Wikis are much more clearer as they go over peer review, and aim at explaining already existing parts of software and in case of incompatibility somebody will go out of their ways and speak out and what changes are needed.

                                                                                    Drew generally has very unique vision of software, but all this elements together are so uniquely his that his personality invades anything he does. Then, it does that in a way that if someone has been used to different way, they are again going to suffer. Unmaintained part of project sourcecode also sounds like a nice liability as are you in control of contrib, or are you not? This liability alone in my opinion makes argument for contrib much weaker.

                                                                                    1. 3

                                                                                      Wikis are much more clearer as they go over peer review,

                                                                                      I don’t really understand this claim. Perhaps you’re better at using wikis than I am, but I’ve never been able to figure out a good way to get a feed of all the edits on a wiki in a way that’s easy to go through, at least with MediaWiki. I have no doubt it’s possible but it seems like a pain. Really the point of a wiki is that anyone can edit it without having to get it reviewed first. Perfect for documentation, but not great for code.

                                                                                      In contrast, anything added to any free software project’s repository has to go through the mailing list (or pull request, etc.) where it goes through actual peer review.

                                                                                      Drew generally has very unique vision of software, but all this elements together are so uniquely his that his personality invades anything he does. Then, it does that in a way that if someone has been used to different way, they are again going to suffer.

                                                                                      I don’t think he does. Using mailing lists and email to maintain free software projects is a strategy as old as free software projects are. contrib directories are not new either. If anything I’d say the way he advocates doing it is the standard, default way of going about things and the GitHub approach is the quirky new way.

                                                                                      I don’t see how anyone is going to ‘suffer’ because they add a contrib directory to their project. It’s something people have done for yonks.

                                                                                      Unmaintained part of project sourcecode also sounds like a nice liability as are you in control of contrib, or are you not? This liability alone in my opinion makes argument for contrib much weaker.

                                                                                      Even bringing up the word ‘liability’ seems absurd to me. There’s no liability, there are no guarantees, it’s free software.

                                                                                    1. 3

                                                                                      I’ll be honest, I get the idea, but personally I am way more conservative (is that a right word for this) in building my blog. I do not get reasons why would this need to be so convoluted with dependencies on node, etc. but again, I am a UNIX madman. Anything can be easy on the eyes with your own choice of 10 or so lines of CSS.

                                                                                      On my blog everything is done by a shell script, again static, and also I manage to have a gopher site and a gopher atom feed.

                                                                                      I would hate on your page if it did not render in glinks, but as it does… whatever, it’s a blog - if it works and is readable on ereaders then its fine by me.

                                                                                      1. 3

                                                                                        On my blog everything is done by a shell script, again static, and also I manage to have a gopher site and a gopher atom feed.

                                                                                        I had a look at the script – it seems awfully like it would drive on and potentially upload a partial or corrupt version of the blog in the face of the failure of any the commands that it runs?

                                                                                        1. 2

                                                                                          That could apply to any code and that is something you accept and suppose. That is why you have backups.

                                                                                          1. 2

                                                                                            I guess? You might want to investigate the errexit and pipefail shell options, is all.

                                                                                            1. 2

                                                                                              Pipefail does not exist in dash(1). I take responsibility for my choices, and all the problems I’ve had with this setups resulted from my own laziness of not reading the specifications of the standards. Other than that, over past 2 years it has been a trusty and reliable setup that works both on http and on gopher.

                                                                                              Anyways, I’ll set -e as that does not hurt :).

                                                                                              1. 4

                                                                                                Sure! I would venture, though, that this is one possible answer to why people might prefer a more complex body of software; e.g., if that software checks for and handles errors in all of the operations it performs which can fail, is structured to ensure the system only moves from one well-defined state to another, etc.

                                                                                                1. 2

                                                                                                  So why hamstring yourself to dash? To guarantee compatibility with a random /bin/sh should you ever port to a long dead platform? (Except Solaris of course, where /bin/sh wasn’t posix compatible anyway). Bash has been a de facto standard and available almost everywhere for decades.

                                                                                                  1. 1

                                                                                                    It allows for most compatibility in terms of code. It would run on ksh (and I use openBSD a lot in my setups) and on zsh and on bash.

                                                                                                    1. 1

                                                                                                      It sounds like your answer is “because I like the challenge” which is perfectly fine, just be aware to yourself that it’s why you’re doing it.

                                                                                          2. 2

                                                                                            It’s like we are from different planets. I run a little static blog myself, and I understood barely half of this. I’m from a completely different culture.

                                                                                            1. 4

                                                                                              The original post gave me the same feeling. To me, that site looks like it’s written in very simple, plain HTML, without any interactivity or complex styling that would make it difficult or even onerous to write by hand.

                                                                                              It is, in fact, an artifact of an alien culture, produced by intricate machinery that I’ve never heard of.

                                                                                              1. 2

                                                                                                What do you mean, in reference to what?

                                                                                              2. 2

                                                                                                I would do the same if it wasn’t for the math I want rendered statically. I use KaTeX for this (and remark to parse the markdown). I’m not a fan of node.js and javascript in general, but it’s fine for this purpose, I guess.

                                                                                                1. 1

                                                                                                  Wouldn’t it be better to use HLatex which would then have some sign character and just connect the output of two preprocessors into one nice single solution (I have no experience with HLatex though, just was looking of how it would be done).

                                                                                                  1. 2

                                                                                                    I’m not familiar with HLatex and the only things I can find are packages to generate LaTeX files in Haskell, and to use Hangul (the Korean alphabet) in LaTeX. Neither are what I want.

                                                                                                    What you’re describing (using a sign character and merge the output of two tools) is basically what I’m doing: https://github.com/rubenvannieuwpoort/static-site-generator/blob/master/scripts/format-blogpost.js#L71

                                                                                                    (Not the most easy-to-read code, but the idea is that I use a regex to extract inline and display math to a separate array, and replace them by a signal character in the text. Then I process the array and the text seperately and replace the signal character by the entries of the array)

                                                                                                2. 1

                                                                                                  Yeah I understand, nothing wrong with a shell script if it does its job. I did think about doing something similar, not that barebones though, a generator like Zola maybe. That would produce an even smaller site but I’d still need to figure out where and how to deploy it. ci/cd, etc. This was basically the easiest thing I could do considering I do React for a living.

                                                                                                1. 21

                                                                                                  If I’m building a static site for a blog, I think the number one requirement will be stability of dependencies over time. I should be able to come back five years later and get it up and running without spending a day fixing all the broken things.

                                                                                                  Given my experience with NodeJS, I do not think it meets that standard. I’d probably give Ruby a pass too.

                                                                                                  Maybe something built on Rust or Go would be my first choice, since they build a single executable and don’t depend on a packaging environment to run.

                                                                                                  1. 5

                                                                                                    I’m pretty happy with hugo and Netlify. I seem to be averaging a post a year lately, but my handful of shell aliases and locally installed static binary for hugo are working fine.

                                                                                                    The only trouble I’ve had was that I used a theme as a git submodule and the author removed the upstream repo. Which just convinces me to remove even more dependencies.

                                                                                                    1. 3

                                                                                                      I built a blog with Hugo back when it was new, then came back to it a few years later and Hugo wouldn’t run (some incompatibility between Go and macOS), updated Hugo, and everything broke because they’d changed so many things with e.g. theming. I did get it working again, but it took a while.

                                                                                                      1. 4

                                                                                                        Ah, well, there you see my secret. I’ll just never update Hugo!

                                                                                                    2. 4

                                                                                                      I tend to agree. I wrote up a really nice SSG setup I put together with Flask, Jinja2, and Markdown, and a super simple Flask plugin called Frozen-Flask (for generating static HTML from Flask routes), which one can easily vendorize.

                                                                                                      https://lobste.rs/s/s91ry0/most_dynamic_static_site_you_ll_ever_see#c_jrzsib

                                                                                                      The nice thing about Flask and Jinja2 is that they are completely ubiquitous as a web app and template framework in the Python community, and its maintainers have essentially declared the projects “done” (+/- the odd security fix). Thus, coming back to a repo built with this setup years later, stuff Just Worked.

                                                                                                      Sometimes it’s best not to let perfect be the enemy of the good.

                                                                                                      1. 2

                                                                                                        I have some projects on Vercel / Zeit that are 3-4 years old, no problems with them whatsoever. It does lock you in a bit but it’s not a big deal since you can always next export.

                                                                                                      2. 1

                                                                                                        I mean my setup also fits the bill as it would have worked fine (except for markdown processor and rsync) in the 1980s.

                                                                                                        1. 2

                                                                                                          You’ve probably moved computers a few times since then. How much effort does it take to get the project up and running without the original dev environment? That’s my biggest concern regarding continuity.

                                                                                                          1. 1

                                                                                                            Well, you need a UNIX-like machine, a server with bunch of headers and footers of indexes and atoms (which I have for my blog) then just have some processor (I did not have this setup since the 80s as I wasn’t back there nor Atom/HTTP was :), I said 80s for hyperbole’s sake and the fact that most of the setup is through basic ed commands and Bourne shell (not bash) syntax).

                                                                                                            Ed sadly is less and less preinstalled in modern UNIX-like machines, but ed syntax has not changed for longer than majority of solutions here exist.

                                                                                                            I believe that Lindy effect is a good guide for designing such projects (continuous). Would it work right when the internet began - in my case, except for rsync and markdown, which are both just variables for generating html, which could be replaced with something else.

                                                                                                            1. 1

                                                                                                              That sounds like an extremely boring solution that will probably outlive me ;-)

                                                                                                      1. 2

                                                                                                        I mostly use the “News Downloader” plugin in KOReader on my e-reader.

                                                                                                        1. 2

                                                                                                          How do you deal with padding on websites and other messy stuff, do you just go over the pages you do not care about?

                                                                                                          I really wish to use it more.

                                                                                                          1. 2

                                                                                                            It works better with some feeds than others, so it really depends on individual feeds. I have a couple of feeds where it has to download the full article (because the feed only has a summary), and it ends up dragging in a load of extra stuff (comment sections, footers, etc.). However, at least for the feeds I’m reading, it tends to appear at the end, so I when I get to the end of the article text, I just stop.

                                                                                                            Over time, I’ve probably ended up whittling the feeds I read down to a subset that works well with KOReader (I do use other feed readers on other platforms). For content which works well on an e-reader, (text and pictures) it works really well: I get to read the articles away from all the distractions that you have on a computer or smart phone, on a screen that’s comfortable to look at, with my favourite font (alegreya :) ), and all the style tweaks that KOReader provides (once downloaded, articles are written as epubs, so they are treated just like any other book).

                                                                                                            The best solution is for the publisher to include the full article text (and nothing else) in the rss or atom feed. Many blogs do do this, and it makes it really simple for the client to produce something which is 100% useful content with zero effort (make sure to set download_full_article=false for feeds like this, so it doesn’t try to download the article instead). When the feed only contains a summary, we have to fetch the actual content from the website. As long as the website is fairly simple and focusses on the content, this still works well in most cases, but can add a little bit of noise with maybe a header, a footer and a comment section. As sites get more complex and add more non-content around and in between the actual content, it gets increasingly hard to separate the content from the garbage.

                                                                                                            Taking “modern” real-world html and trying to distill out the actual content is a very difficult problem, but there may be more we can do in future (We have per-feed options, so a solution wouldn’t have to work perfectly for every single feed for it to be included: It can be off by default, or able to be turned off for the odd site where it fails, as long as it was an improvement in enough cases to justify any added complexity. Practical suggestions and/or code are always welcome!).

                                                                                                            1. 2

                                                                                                              I can recommend the approach by miniwebproxy and filtering certain CSS elements for limiting content.

                                                                                                              Thanks for your reply.

                                                                                                              1. 2

                                                                                                                Thanks for the link! I’ll have a play with it later. From the description, it looks like it might also deal with the other issue, where what appears to be a simple image or code snippet when viewed in a browser is actually some complex dynamic-loading thing, which ends up being omitted from the output.

                                                                                                                1. 2

                                                                                                                  I actually implemented such patch to KOReader now so the issue is solved now and will be in 2020.06 version :).

                                                                                                                  1. 1

                                                                                                                    Excellent! I look forward to testing it out!