Threads for Rubenerd

  1. 1

    Finally getting around to trying OpenBSD 7.0 which just came out, and brewing some new coffee beans the roaster down the street started selling. I can never detect the “notes of cinammon, etc”, but still tastes amazing :’).

    1. 8

      “RSS” is like four distinct formats; the majority of which are underspecified garbage. When people say “RSS” do they usually mean “RSS 2.0” or is it still a mishmash like it was in the early aughts?

      1. 9

        At this point it’s mostly RSS 2.0 and Atom 1.0 from what I’ve seen.

        1. 6

          You got me thinking about this, so I did a quick check of my own subscribed feeds. Out of 451:

          • 359 are RSS 2.0
          • 81 are Atom 1.0 (2 were Atom 0.3, which I updated)
          • 11 are RSS 1.x (RDF)

          (It’s interesting that I can almost correlate formats. Atom has Google properties and self-publishers, RSS 1.x are mostly advisories, and RSS 2.0 is the de facto default).

          1. 2

            I was a big proponent of RSS2 for years, but these days it surprises me how popular the least specified option became.

            1. 1

              Is RSS2 XML? It looks as if it is, from a quick skim of some docs. This was the big reason I preferred Atom to RSS back in the day. RSS allowed embedding arbitrary HTML, which meant that you needed an HTML-aware parser to handle it. In particular, I could always embed Atom in XMPP and anything that could parse XMPP could handle it, even if it didn’t know what to do with it, whereas embedding RSS would cause the server to see invalid XML and drop the connection.

              On the other hand, not being XML was one of the reasons that RSS was more popular than Atom: you could embed whatever tag-soup HTML you’d written in an RSS feed and it would be valid. These days, the XML vision of allowing arbitrary document types to be embedded in others with graceful fallback if you didn’t understand them is largely gone. I haven’t used XMPP for years, HTML5 is not XML and so you can’t embed HTML5 in SVG, and even SVG seems to be largely dying in favour of imperative JavaScript and canvas.

              1. 4

                Every RSS variant is XML and requires well-formed XML. In all variants except Atom the only way to embed HTML is to escape it. I worked at a company ingesting every RSS or Atom feed that could be found and I don’t recall running across one that tried to embed tag soup unescaped as though that would work.

                RSS2 has two big problems: it doesn’t specify any way to tell if a description contains escaped HTML or plain text, and in practise people did both; and as an especial sin against XML it does not use a namespace, so you cannot easily embed it in other XML contexts. The latter is why all XMPP feed protocols use Atom, but Atom was created to fix both of these.

                RSS1 of course uses namespacing properly, being RDF. In practise it had the same problem about not knowing what kind of content people were embedding. I think probably there could have been an RSS1.5 that kept the RDF and put in the features from Atom that were needed, but back then (and sometimes today) even XML nerds didn’t always appreciate RDF enough to care about that.

                1. 2

                  I do believe RSS(2.0) is XML but the issue is how it handles embedded content. There were some subtle ambiguities regarding embedded HTML that Dave Winer simply wasn’t interested in addressing.

                  For example, in the RSS 0.92[1] spec at Userland, we can read

                  Further, 0.92 allows entity-encoded HTML in the of an item, to reflect actual practice by bloggers, who are often proficient HTML coders.


                  This is obviously not a future-proof spec.

                  Atom did the technically correct thing by insisting on unambiguous standards, damnit, but then they ran into the buzz-saw of “countercultural” bloggers who were on Winer’s side and disliked any restrictions or rewrites as akin to demands from The Man.

                  In the end, the Syndication Wars were a technical culture war, like the parallel XHTML vs HTML. Feed readers and parsers quickly learned to deal with feeds heuristically, just like HTML, and the requirements for strict standards compliance were seen as overly onerous in the real world.

                  I prided myself in having a standards-compliant Atom feed but it turns out my elements are apparently not up to spec. No-one has complained so far.

                  As an aside, Atom has no problem handling Gemini content, even if the intrusion of strict XML into the plaintext paradise of Gemini does feel a bit weird.

                  [1] RSS 2.0 is just a light re-skin of RSS 0.92 along with a version bump to indicate it’s “final”.

                  1. 2

                    That’s a shame. XMPP was a great transport for Atom (reliable delivery, push semantics). I hoped that it would eventually displace HTTP as the aggregator -> client transport at least, and ideally as the originator -> aggregator transport. From what I remember, neither Atom nor RSS on their own provided a good mechanism for handling large feeds: either they expired old entries and so aggregators had to cache everything or they kept old things and ended up with huge files. With XMPP, you could use HTML to fetch historical entries and XMPP to get tiny updates.

                    I suppose you could still transport RSS over XMPP in CDATA elements, but that feels like missing the point somewhat. The nice thing about Atom over XMPP was that your XMPP client could pull out a couple of core elements (e.g. title) for a notification and also push the rest to a dedicated reader application.

                    1. 3

                      XMPP is still a great protocol for atom, and we’re starting to see movement in the client space.

                      1. 1

                        Atom’s ambitions were always bigger than blogging. I keep forgetting XMPP (mostly because I never use it). Wasn’t atom to be a part of Pub/Sub too? Lots of bright ideas, lots of ambitions about computer-to-computer communications, when it all really just settled on… syndication. Before the silos took over, slinging JSON internally.

                        RSS at least kept it simple. Maybe that’s the lesson to take from all this…

                      2. 2

                        Note that Atom also allows embedded escaped HTML, it just requires that you say it is HTML instead of making the parser guess.

                        1. 1

                          Correct, I was unclear about that.

                2. 2

                  I’ve used (self-hosted) both tt-rss and freshrss (went back to tt-rss because it works with rssguard) and most of them will be able to use any RSS or Atom format. Some can even automatically get the feed for a YouTube channel (which is now sorta hidden / difficult to find).

                  1. 1

                    Yeah, as a publisher, RSS and Atom both stink. JSON-Feed is better, but no one uses it. NinJS is great, but even fewer people use it.

                    1. 2

                      What makes JSON-Feed better than RSS or Atom? I implement all three for my blog, and I found each just variations on a theme (with Atom being at least better described).

                      1. 1

                        Atom and RSS both have incomplete metadata and to actually describe a story in a reasonable way, you need to use one with namespaced tags from the other. JSON Feed has all the fields of both out of the box and a couple more, like link post support.

                        See the table in and notice that neither is a superset, whereas JSON Feed is

                        1. 1

                          I used a pre-existing library from CPAN when I added it to my blog engine, but I suspect the major appeal is that it’d be a lot easier to roll by hand for most devs than anything built on XML. I was hoping it’d take off for that reason, but it pretty much seems to have stalled out.

                        2. 1

                          I’ve been using atom for over a decade and I’ve always been happy with it. You can definitely tell it was standardized by someone for whom it wasn’t their first spec.

                          1. 1

                            It has pub date but not modified date. Seems really obvious that you want both.

                            1. 3

                              This seems incorrect to me.

                              From the link you posted in a sibling comment:

                              Atom has an array of entry objects. In JSON Feed these are item objects.

                              • Atom’s published and updated dates map to date_published and date_modified in JSON. Both Atom and JSON Feed use the same date format.
                              1. 2

                                Okay, it’s been a while since I implemented this. Looks like Atom does have updated. In general, Atom is better than RSS, for sure. I remember there being some missing tags in Atom, but I can’t recall what it was if it’s not updated time.

                      1. 2

                        Great post! I’ll admit I’ve never had a pressing need for a recommendation engine for RSS, if anything I’ve always had too much to read. But it’s something we’ll need to consider if we want to make the format viable and public again for regular people.

                        There is so much pushback against RSS, not least by social media companies who’d rather keep us to themselves. The best thing we can do is keep talking about it. You have a new subscriber :)

                        1. 3

                          I say as someone who’s well versed with tcsh(1): I’m really happy about this.

                          (Weirdly, the most pushback I’ve ever had on this site was advocating for more POSIX, etc. Go figure!)

                          1. 18

                            This is one of the things I wanted to write in response to but haven’t really been able to come up with a coherent response. Anyone who believes that “in the good old days” UNIX was a monolithic system where programs could be easily run on different UNIXes wasn’t there. Hell, even if you stuck with one vendor (Sun), you would have a hell of a time upgrading from SunOS to Solaris, not to mention, HP-UX, AIX, SCO UNIX (eugh), IRIX and many others. Each had their “quirks” and required a massive porting effort.

                            1. 3

                              Hi, author of that original post. You’re definiltey not wrong, unfortunately. My concern with that original post was the fact that Linux was heading in the same direction of doing their own thing, rather than POSIX or the Unix-way. We had a chance to do it better, with hindsight this time.

                              (Whether the Unix-way ever truly existed is another point I’m willing to concede!)

                              Having had time to think about it more, Linux does deserve more credit than I gave for it. By and large, porting Linux stuff to BSD now is easier than some of the commercial Unixen of late (yes, I was there, if only for a few years). But it does feel like we’re slowly going backwards.

                              1. 6

                                As a flip side to that, I think that getting away from POSIX and “The UNIX way” (whatever that means), is actually moving forwards. “The UNIX way” was conceived in the days when the standard interface was a jumped up printer, and 640KB of RAM was “enough for anyone”. Computers have exploded in capability since then, and “The UNIX way” was seeming outdated even 30 years ago (The UNIX-HATERS mailing list started in 1987). If you told Dennis Ritchie and Ken Thompson in the 70s that their OS would power a computer orders of magnitude more powerful than the PDP-11, and then told them it would fit in your pocket… Well, I dunno, Ken Thompson is still alive, ask him.

                                Anyways… My point is that the philosophical underpinnings of “The UNIX Way” have been stretched to the breaking point for a long time now, and arguably, for computer users, rather than developers, it broke a long time ago and they went to Windows or Mac. It’s useful as a metaphor for the KISS principle, but it just doesn’t match how people interface with Operating Systems today.

                                1. 2

                                  The Bell Labs people did do ‘Unix mark II’ in the late 1980s and early 1990s in the form of Plan 9. It was rather different from Unix while retaining the spirit (in many people’s view) and its C programming environment definitely didn’t attempt to stick to POSIX (although it did carry a number of elements forward). This isn’t the same as what they might do today, of course, but you can view it as some signposts.

                                  1. 1

                                    My apologies, I thought the Unix way/Unix philosophy/etc were widely understood. Probably the most famous of these was Doug McIlroy’s “Make each program do one thing well.” Even if we’re building orders of magnitude more complexity today, I think there are still lessons to that approach.

                                    I agree we have to move with the times, but thus far reinventions have so far looked like what Henry Spencer warned about with reinventing UNIX, poorly.

                                    1. 1

                                      “Make each program do one thing well.”

                                      The precept is violated by a program like ls. Why does it have different options for sorting by size, ctime etc? Isn’t it more flexible to simply pipe that through sort?

                                      sort itself has a -u option, unneeded as you can just filter it through uniq. Yet it’s a feature in both GNU and (Open)BSD versions.

                                      1. 1

                                        Are we at the splitting hairs or yak shaving stage now? I guess yaks can have Split Enz, like a Leaky Boat.

                                        My original post was that it was disengenuous to say “Unix won” when Linux did. @mattrose disagreed, saying that the past wasn’t a cross-platform utopia either (true, alongside his quote from famed Unix-fan Bill Gates). I opined we had the opportunity to do better this time, but Linux is making the same mistakes to the detriment of OSs like BSD. Heck, even macOS. Also, that those Unix guys had good ideas that I assert have stood the test of time despite the latest in a long line eager to replace them. The machine I’m writing this on now is proof.

                                        Se a vida é. Wait, that was the Pet Shop Boys, not Split Enz.

                                        1. 2

                                          Proponents of “the Unix way” espouse a strange dichotomy: they propose that the philosophy is superior to all competitors, and decry that the competitors are trouncing it in the market[1].

                                          Something has to give. Perhaps the penchant for it is an aesthetic preference, nothing more.

                                          [1] both in the economic one, and the marketplace of ideas.

                                          1. 2

                                            I totally understand the penchant for “the UNIX way”, and actually share it. It makes everything really simple. UNIX, at it’s base, is sending streams of text from one file-type object to another. It makes “do one thing well” really easy, as it enables combining the output of one program into the input of another program, and so you can write a program that enables that kind of pipelining. Even with non-text streams you can write that kind of pipeline, like gstreamer does, but…

                                            From a user perspective, it’s a nightmare. Instead of having to know one program, you have to know 10 or more to do the same thing, and there is no discoverability. With Excel or its equivalent, I can sum easily select a column of numbers and get the sum of that column. The easiest “UNIX way” of doing the equivalent is, something like cat file.csv | awk -F"," '{ (s+=$3) ; END {print s}' and it took me a while to figure out how to invoke awk to do that, and that required me to know that

                                            1. awk exists
                                            2. awk is good at splitting text into columns
                                            3. awk takes an input field-delimiter option

                                            And that is completely outside of all the awk syntax that I needed to actually write the command.

                                            This is why “the UNIX way” is being trounced in the market. When there’s a more complex, but user-friendly option, the conceptually simpler option is crowded out.

                                            The trick is to try and keep in mind the Einstein aphorism ““Everything should be as simple as it can be, but not simpler”

                                  2. 2

                                    My personal experience is with the shared GPU drivers; one pile of C code used to work for both Linux and BSD. The main change was the move into the kernel. As GPUs required more kernel-side scaffolding to boot, kernel-side memory management for GPU buffers, etc. the code had to start specializing towards kernel interfaces.

                                    In general, a lot of code has moved down into kernels. Audio and video codec awareness, block-device checksumming, encryption services, and more.

                                1. 4

                                  This is such a great writeup Vincent, especially the tree visualisation of how the tiles work. I went down the Xmonad -> dwm path, but this has given me enough motiviation to finally try.

                                  (The guide is also worth checking out for the guide to polybar).

                                  1. 6

                                    I do this with ZFS reservations for personal and small stuff. For prod I do FS monitoring.

                                    1. 2

                                      I’ve been getting back into 8-bit Commodore machines again for fun (certainly not for profit)! It’s been a nice mental break from Xen.

                                      … Those who don’t work on hypervisors would likely read that above and think I’m mad. Surely you try and achieve Zen.

                                      1. 3

                                        @Rubenerd have you received the new chip yet? I’m looking forward to seeing a functional 80 column mode, as I didn’t even know it was a thing!

                                        1. 3

                                          Hi, and thanks for the invite :). Not yet, it came from Germany so might be another week or so. I’m super keen to try it out. Screenshots show Desterm128 really pops with all that screen real estate!

                                          1. 2

                                            I’m looking forward to seeing a functional 80 column mode, as I didn’t even know it was a thing!

                                            But it is one of the primary features of the 128 (!).

                                            80 columns is a big deal for productivity.

                                            1. 3

                                              I used to have a 128 as a kid and while I’d booted into the green 128 mode, I don’t remember the 80 column mode except as maybe a hazy memory of the unit doing something extra weird.

                                              Maybe if my dad had been aware it existed he might have used it instead of upgrading to an IBM clone, and I might not have had access to it for games, so swings and roundabouts.