1. 11
  1. 15

    If this were 2007 this comment would be an obscenity-laced screed about Yet Another Broken RSS Generator Script. I worked on an RSS reader then, and had to deal with so very many broken feeds created by primitive scripts, that resulted in bug reports against our product. Thank god that’s over.

    From quick inspection I noticed that your shell script will produce bad XML if a post title contains any XML metacharacters like “&” or “<“. It’s also likely that it emits the wrong date format, but that’s a nightmare in itself as different versions of the RSS “spec” call for incompatible formats and scripts tend to splat any kind of (often localized) dates into the feed, so a real world feed reader has to be prepared to parse anything.

    As for the plain-text ASCII stuff, I’ll just say that it’s sad to give in to the limitations of a tool (the typewriter) that was already considered a bastardization of typesetting in the mid-1800s. I mean, retro can be fun, or an interesting exercise in minimalism, but this is like listening to nothing but chiptune music or watching movies through an 8-bit color palette.

    1. 3

      The RSS feed is valid.

      “x will break if I do y”, then don’t do it, or learn why it breaks and use a solution.

      “it’s sad …”, it’s discouraging you dismiss the whole point of the limitation.

      1. 8

        If you actually use an actual typewriter, instead of a typewriter dependent on the entire world’s telegraph network and a power plant, you are already set for a human lifetime. Use the right tool for the job, even if the “job” is to retro-wank.

        1. 6

          If you want to enforce a rule that you never use an ampersand or less-than sign in the first few lines of any post, that’s fine. (Maybe you just like to live dangerously.) But posting a script that has these limitations, without any warning about them, is IMHO irresponsible. By analogy, it’s like posting some C code that manipulates a string, without pointing out that BTW it assumes the string is under 32 bytes else it will overflow a buffer.

          I honestly don’t see a point in your typewriter limitation. You want to avoid complexity, fine, but be aware your monospaced ASCII is sitting atop a very complex software stack. TCP, HTTP and XML are not simple; they’re far more complex than a Markdown parser.

      2. 9

        ASCII plaintext looks ugly when rendered in a web browser with default settings, and also doesn’t support most languages other than English that you might want to write in. Of course that’s what Unicode is for, and UTF-8-encoded Unicode is as standard as ASCII is. But it has legitimately more essential complexity. There’s no particular virtue in restricting yourself to writing in ASCII to facilitate the (laudable) goals of making your writing difficult to censor or easilly-accessible outside of social media walled gardens.

        There’s also no particular virtue in including a URL pointing at an image hosted on Google’s website (which they could remove or change at any time), as opposed to rendering it in HTML or a similar document-rendering format.

        Look at that, you can see that image if you want by clicking. (Hi Google)

        I can’t, actually! I have to copy-paste the link and open it in a new tab (which I didn’t bother to do). Firefox, at least the version of it I’m using today, doesn’t automatically create a clickable link when someone writes a URL in a txt document. It easily could - plenty of other software does this automatically, including presumably whatever browser the author was using. But that already speaks to a meaningful difference in how the choice of renderer even for this ASCII text document affects the experience of reading it.

        1. 3

          You are free to decide what format you use, but good luck on getting anyone to bother installing some ancientware to read it. :)

          I didn’t say Unicode, but if I did, you’d get someone who would say “it’s too complex”. My text is English is ASCII is sufficient. Why would I use anything else?

          Yeah the link is clickable in any browser if you triple click + right click + left click open.

          And that’s if you open it with a browser. If you used an RSS reader it’d be better.

          1. 7

            Even for English ASCII is only barely sufficient: naïve, Beyoncé, Pokémon, née, £, €, never mind things such as ‘Angled quotes’ or nicer dashes (–). I mean, you can obviously write without these things, but I find it limiting.

            ISO 8859 solves most of these issues by the way; if you really want to avoid Unicode then I recommend you use ISO-8859-15 instead of ASCII.

            Actually, if you intend to write something for long-term use/archival then specifying the exact encoding used in the document itself is probably a good idea.

            1. 1

              I didn’t know this! I will definitely recommend ISO8859 and use it. Thank you for mentioning!

            2. 2

              Plain text has accessibility issues too, btw. Text-to-speech software is really assisted by markup that identifies emphasized/italic words to improve pronunciation, segregates URLs from the text, etc. And such software usually turns plain text tables into word salad since it can’t tell that you’re wrapping text in multiple columns.

              I believe TTS also detects header tags and allows the user to skim through an outline.

              You could eliminate most of those issues by using Markdown. As a bonus, it would be easy to set up some server side tools to render the pages as HTML.

              1. 3

                My extremely simple TTS here on Linux has no issue reading any of my posts.

              2. 1

                My text is English is ASCII is sufficient. Why would I use anything else?

                Your article also implies it will work for others. If someone is writing for pretty much any audience other than English speakers then ascii is a total no-go, this includes most other Latin alphabet users e.g. Germany, France.

                It is good that you have such an elegant solution for your own use-case, but I think that any coherent vision of the future of the internet has to include the whole world and not just the US and UK.

                ISO 8859 is an improvement but still only extends the coverage to Europe and some of the middle east, excluding all Asian languages.

                I would be very interested in a version of this that follows the same principles but uses unicode. If people say “it’s too complex” they can change the encoding, but human language is simply bigger than ascii. If someone suggested you render all images in greyscale because colours are too complex, I don’t think they would be taken seriously.

                I only mention all of this because in general I approve of your efforts and would like to see more of this kind of thing. I am sick of all the bells and whistles and inefficiencies of the web. Thanks for trying to keep things simple.

                1. 2

                  As I said in my other comment, you’re free to use whatever format, but for me, plain text meets my goals. I said ASCII but yes Unicode is totally acceptable. Again it’s up to you to choose the formats which you think will survive your lifetime. IMO UTF-8 is probably totally fine.

                  If someone suggested you render all images in greyscale because colours are too complex, I don’t think they would be taken seriously.

                  Why not? I think to dismiss this is naive :).

                  Thank you for your thank you :)

              3. 1

                Auto-linking would be pretty easy to write in JavaScript and would have good graceful fallback: the plain text still works fine, but if you have JavaScript enabled then you get some improved usability. That said, there’s no reason that you couldn’t do the same with client-side Markdown rendering. Markdown is pretty readable in raw form, so you fall all the way back to that if someone is using telnet / openssl s_client to get the raw text. If you put the JavaScript bit in a separate file then there’s just a tiny amount of HTML header and footer boilerplate that someone who wants the raw content has to extract.

                Of course, images hosted elsewhere will become broken links over time or if the person who downloaded the text doesn’t have an Internet connection. You can make these fully self-contained by using data: URLs and embedding the base64-encoded images. If you want to reduce filesize, you can yyEnc the images and put them in hidden cdata elements at the end of the page, then (again) use some client-side rendering to translate yyEnc to base64 and rewrite the URLs.

                1. 1

                  Auto-linking would be pretty easy to write in JavaScript and would have good graceful fallback

                  I thought of doing exactly this, but avoided it, because surely someone would’ve said “uh oh you used JavaScript”. Really I can’t win.

                  1. 1

                    I don’t think I’ve heard people complain when JavaScript is used, only when things don’t gracefully fall back if it’s disabled.

                2. 1

                  Yeah I kept wondering if that was a google chrome thing.

                3. 1

                  For my own website I have a more complex system. By default it renders html but I also generate ASCII as well as pdf files.

                  Another important aspect, my RSS contain my full article. And I also use a slightly more complex script to generate RSS from files and not generate the RSS directly from my static page generator.

                  And latest but nice touch, I use a generic build system that is incredibly smarter and faster than all previous specialized static site generators (https://hackage.haskell.org/package/shake).

                  That being said I fully agree with the spirit of this blog post. We should self host as much as we can because you could always be put out of big centralized products. But instead of just keeping things in my personal area I duplicate them. I have github and self-hosted gitea. I use both espial and pinboard. I use espial notes to tweet, etc…

                  If you are curious here is a post about it https://her.esy.fun/posts/0004-how-i-internet/index.html

                  I haven’t written about how I use shake yet.