Threads for jmtd

  1. 13

    Every programmer who is not a games dev is a failed games dev. :-)

    1. 13

      I’m not sure that ‘failed’ is the right framing. I found game development really fun when I was a child and it was a great way of learning to program. The best way of learning to program is to write the kind of software that you care about. As a child, games counted for close to 100% of what I wanted to do with a computer, and easily 100% of what I wanted to do with a computer and couldn’t with existing off-the-shelf software, and so were the main thing to drive my interest in programming. As I grew older, I didn’t stop enjoying games, but I started doing a lot more things with computers. The set of things that I wanted to do with a computer but can’t do with existing software still has games in there somewhere, but as a tiny percentage and so I’m much happier playing off-the-shelf games and writing bespoke software in other domains.

      1. 7

        I have never been interested in game dev, even as a kid, despite playing tons of video games. In elementary school a bunch of my friends were tinkering around with GameMaker, but I never was interested. I toyed around with it for less than an hour before getting bored.

        1. 3

          I don’t know what this means. I’m neither a games dev nor a failed games dev. So… am I not a programmer?

          1. 1

            Don’t take it personal, I think that OP just tried to make a joke based on his own experience that just fell flat.

          2. 2

            That’s just nonsense.

          1. 2

            Vimwiki supports a similar, though less rich, syntax. That’s the only TODO list I’ve ever found to work for me (I only wish it worked on my phone, and no, I’m not going to try to use Vim on my phone). The part that makes it “work”, I think, is that my notes are right inline with my TODO items.

            1. 1

              Is that the task wiki add on for vimwiki or something native to it?

              1. 1

                It’s built-in. You just do * [ ] Do some stuff to create a TODO item, and then you can toggle it with ctrl-space.

                1. 1

                  Ah, thanks! Taskwiki (if you don’t know) extends vimwiki to store the todo items in “task warrior” aka /usr/bin/task. It uses the same short hand and i wasn’t really sure where vimwiki stopped and taskwiki started.

            1. 7

              As I recall, CGI was present very early on, definitely by 1995, and early websites definitely made use of it — obviously for form submission, but it was also sometimes used for serving pages.

              There were also early servers, like Netscape’s, that ran their own custom server-side app code — I don’t know for sure but I suspect they had their own C-level plugin system for running handlers in-process to avoid the high overhead of CGI.

              I’m still wondering why only PHP became available as an easy in-process scripting language. It’s not like you couldn’t build a similar system based on Python or Ruby or JS. Maybe it was the ubiquity of Apache, and the Apache developers not wanting to add another interpreter when “we already have PHP?”

              1. 14

                As mentioned in the article, there were other Apache modules providing similar functionality, such as mod_python. There were also CGI approaches to the same template-forward bent, such as Mason (which was perl). If there was anyone saying “why support another since we already have PHP?” it was admins on shared hosting services. Each additional module was yet another security threat vector and a customer service training.

                1. 6

                  I was at a talk given by Rasmus Lerdorf (creator of PHP) once and he claimed it was because the PHP implementation was the most basic, limited version possible and it therefore it was very simple to isolate different users from each other. This made PHP very popular with cheap shared hosters. Whereas the Perl implementation was much more thorough and hooked (not sure what the correct terms are) into the whole of Apache and therefore it needed a dedicated server. Much more expensive.

                  1. 2

                    Yeah. Even though mod_php is a single module loaded into a single Apache instance, it was designed with some sandboxing options like safe_mode. Or you could use PHP CGI and isolate things even better (running as the user’s UID).

                    Other language hosting modules for Apache like mod_perl didn’t offer the same semantics. I also recall mod_perl being pretty oriented towards having access to the web server’s configuration file to set it up. People did use Perl before the rise of PHP, but most often via CGI (remember iKonboard?)

                    1. 3

                      mod_perl was more oriented toward exposing the apache extension API so that you could build apache modules in perl, as I remember it. It got used to write some cool web applications (slashcode springs to mind) that’d have been hard to write (at that scale) any other way at the time. But mod_php was a very different beast, just aiming to be a quick way to get PHP to work well without the overhead of CGI.

                      I agree with the article… there’s nothing now (other than PHP, which I still use now for the kind of pages you mention, the same way I did in the early ‘00s) that’s nearly as low-friction as PHP was back then to just add a couple of dynamic elements to your static pages.

                      1. 2

                        Yeah, I was at a small web hosting company in the late ’90s, early 2000s, and we used PHP CGI with our shared hosting.

                  2. 10

                    It’s not like you couldn’t build a similar system based on Python or Ruby or JS.

                    Not quite. The article touches this, although not explicitly, you have to read a bit between the lines.

                    PHP allowed for easy jump in and out static and dynamic context like no other alternative. It still does this better than anything else. This was in the core of the language no need to install third party libraries. It also included a MySQL client library in its core with work out if the box. Essentially, it shipped with everything necessary in the typical setup. No need to fiddle with server set up.

                    The language was also arguably more approachable for beginners than perl with a multitude of simple data structures easily accessible through the infamous array() constructor. It also retained familiarity for C programmers, which were a big audience back then. While python for example, didn’t.

                    One thing I don’t agree with is the simplicity nor the deployment model. It’s only simple in the context of the old shared hosting reality. If you include setting up the server yourself like we do nowadays, it is actually more cumbersome than a language that just allows you to fire up a socket listening on port 80 and serve text responses.

                    It.s.how it was marketed and packages that made all the difference.

                    1. 9

                      Yes, but it was “better” in the sense of “making it easy to do things that are ultimately a lousy idea”. It’s a bit better now, but I used it back then and I remember what it was like.

                      Convenience feature: register_globals was on by default. No thinking about nasty arrays, your query params are just variables. Too bad it let anyone destroy the security of all but the most defensively coded apps using nothing more than the address bar.

                      Convenience feature: MySQL client out of the box. Arguably the biggest contributor to MySQL’s success. Too bad it was a clumsy direct port of the C API that made it far easier to write insecure code than secure. A halfway decent DB layer came much, much later.

                      Convenience feature: fopen makes URLs look just like files. Free DoS amplification!

                      Convenience feature: “template-forward”, aka “my pages are full of business logic, my functions are full of echo, and if I move anything around all the HTML breaks”. Well, I guess you weren’t going to be doing much refactoring in the first place but now you’ve got another reason not to.

                      The deployment story was the thing back then. The idea that you signed up with your provider, you FTP’d a couple files to the server, and… look ma, I’m on the internet! No configuration, no restarting, no addr.sin_port = htons(80). It was the “serverless” of its day.

                      1. 21

                        Yes, but it was “better” in the sense of “making it easy to do things that are ultimately a lousy idea”. It’s a bit better now, but I used it back then and I remember what it was like.

                        It was better, in the sense of democratizing web development. I wouldn’t be here, a couple decades later, if not for PHP making it easy when I was starting out. The fact that we can critique what beginners produced with it, or the lack of grand unified design behind it, does not diminish that fact. PHP was the Geocities of dynamic web apps, and the fact that people now recognize how important and influential Geocities was in making “play around with building a web site” easy should naturally lead into recognizing how important and influential PHP was in making “play around with building a dynamic web app” easy.

                        1. 3

                          Author here, I couldn’t have put it better. “PHP was the Geocities of dynamic web apps” — this is a brilliant way to put it. In fact I’m now peeved I didn’t think of putting it like this in the article. I’m stealing this phrase for future use. :)

                        2. 2

                          Absolutely. And indeed, I saw those things totally widespread to their full extent in plenty of code bases. To add a bit of [dark] humor to the conversation, I even whiteness code that would use PHP templating capabilities to assemble PHP code that was fed to eval() on demand.

                          But I am really not sure you can do anything about bad programmers. No matter how much safety you put in place. It.s a similar situation with C. People complaining of all the footguns.

                          Can you really blame a language for people doing things like throwing a string in an SQL query without escaping it? Or a number without asserting its type? I really don’t have a clear opinion here. Such things are really stupid. I .not sure it is very productive to design technology driven by a constant mitigation of such things.

                          EDIT: re-reading your post. So much nostalgia. The crazy things that we had. Makes me giggle. Register globals or magic quotes were indeed… punk, for lack of a better word. Ubernostrum put it really well in a sister comment.

                          1. 4

                            But I am really not sure you can do anything about bad programmers. No matter how much safety you put in place. […] Can you really blame a language for people doing things like throwing a string in an SQL query without escaping it?

                            Since you mention magic quotes … there’s a terrible feature that could have been a good feature! There are systems that make good use of types and knowledge of the target language to do auto-escaping with reasonable usability and static guarantees, where just dropping the thing into the query does the secure thing 98% of the time and throws an “I couldn’t figure this out, please hint me or use a lower-level function” compile error the other 2%. PHP could have given developers that. Instead it gave developers an automatic data destroyer masquerading as a security feature, again, enabled by default. That’s the kind of thing that pisses me off.

                        3. 3

                          I definitely had a lot of fun making mildly dynamic websites in PHP as a teen, but I wouldn’t want to get back to that model.

                          They might have a style selector at the top of each page, causing a cookie to be set, and the server to serve a different stylesheet on every subsequent page load. Perhaps there is a random quote of the day at the bottom of each payload.

                          JS in modern browsers allows that kind of dynamicity very nicely, and it’s easy to make it degrade gracefully to just a static page. It will even continue to work if you save the page to your own computer. :)

                        4. 6

                          I’m still wondering why only PHP became available as an easy in-process scripting language. It’s not like you couldn’t build a similar system based on Python or Ruby or JS. Maybe it was the ubiquity of Apache, and the Apache developers not wanting to add another interpreter when “we already have PHP?”

                          I am someone who is, these days, primarily known for doing Python stuff. But back in the early 2000s I did everything I could in PHP and only dabbled in Perl a bit because I had some regular business from clients who were using it.

                          And I can say beyond doubt that PHP won, in that era, because of the ease it offered. Ease of writing — just mix little bits of logic in your HTML! — and ease of deployment via mod_php, which for the developer was far easier than messing around with CGI or CGI-ish-but-resident things people were messing with back then. There are other commenters in this thread who disagree because they don’t like the results that came of making things so easy (especially for beginning programmers who didn’t yet know “the right way” to organize code, etc.) or don’t like the way PHP sort of organically grew from its roots as one guy’s pile of helper scripts, but none of that invalidates the ease PHP offered back then or the eagerness of many people, myself included, to enjoy that easiness.

                          1. 4

                            mod_php was always externally developed from Apache and lived in PHP’s source tree.

                            1. 3

                              The other options did exist. There were mod_perl and mod_python for in-process (JS wasn’t really a sensible server-side option at the time we’re talking about), mod_fastcgi and mod_lisp for better-than-CGI out-of-process (akin to uwsgi today), and various specialized mod_whatevers (like virgule) used by individual projects or companies. mod_perl probably ran a sizeable fraction of the commercial web at one point. But they didn’t take PHP’s niche for various reasons, but largely because they weren’t trying to.

                              1. 2

                                There was also the AOL webserver, which was scriptable with TCL. It looks like this was around in the early nineties, but perhaps it wasn’t open sourced yet at that point? That would definitely make it harder to gain momentum. Of course TCL was also a bit of an odd language. PHP still had the benefit of being a seamless “upgrade” from HTML - just add some logic here and there to your existing HTML files. That’s such a nice transition for people who never programmed before (and hell, even for people who had programmed before!).

                                Later on, when Ruby on Rails became prominent (ca 2006), it was still not “easy” to run it. It could run with CGI, but that was way too slow. So you basically had to use FastCGI, but that was a bit of a pain to set up. Then, a company named Phusion realised mod_passenger which supposedly made running Ruby (and later, other languages like Python) as easy as mod_php. The company I worked for never ran it because we were already using fastcgi with lighttpd and didn’t want to go back to Apache with its baroque XML-like config syntax.

                                1. 2

                                  I worked at at shared hosting at the time of the PHP boom. It all boiled down to the safe mode. No other popular competitor (Perl / Python) had it.

                                  Looking back, it would have been fairly cheap to create a decent language for the back-end development that would have worked way better. PHP language developers were notoriously inept at the time. Everyone competent was busy using C, Java, Python and/or sneering at the PHP crowd, though.

                                  1. 1

                                    It’s not like you couldn’t build a similar system based on Python or Ruby or JS.

                                    There’s ERuby which was exactly this. But by then PHP was entrenched.

                                    I did a side project recently in ERuby and it was a pleasure to return to it after >10 years away.

                                  1. 12

                                    I think the Unicode consortium made a huge mistake giving in to adding emojis to Unicode. It’s a bottomless pit, very politically charged and definitely ambiguous (compare for example the different emoji-styles across operating systems/fonts).

                                    It severely complicates most of the Unicode algorithms (grapheme cluster detection, word/sentence/line-segmentation, etc.) and, compared to dead and alive languages, feels very short-lived, like a fashion.

                                    How will emojis be seen in 50 years? I can already feel the second-hand-embarassment.

                                    1. 15

                                      It looks like people were already using emoji, and Unicode had to add them for compatibility. https://unicode.org/emoji/principles.html

                                      1. 13

                                        Every thread about emoji has a “Unicode shouldn’t have added them” comment (or several), and I feel like I then always step in to remind those commenters that basically every single chat/message system humans have built in the internet era has reinvented emoticons in some form or another, whether purely textual (“:-)” and “:/“ and friends) or custom graphics, or a mix of text abbreviations that get replaced by graphics.

                                        This suggests that they are a non-negotiable part of how humans conduct written communications in this era. Which means Unicode must find a way to capture them, by the nature of Unicode itself.

                                        1. 4

                                          This suggests that they are a non-negotiable part of how humans conduct written communications in this era. Which means Unicode must find a way to capture them, by the nature of Unicode itself.

                                          You might as well use the same argument to claim that Unicode should capture all words, too.

                                          1. 3

                                            Doesn’t it try? Morally, is there any difference between a code sequence of letters representing a word, and a code sequence of letters and combining characters that come together to create a single glyph?

                                          2. 1

                                            This is solved well with ligatures at the font level.

                                            Solving it at the font level has the additional benefit of not blocking the addition of new emoji on a standards body, as well as allowing graceful degradation to character sequences that anyone, including those on older software, can view.

                                            1. 8

                                              Ligatures can’t and don’t solve all the traditional emoticons, let alone emoji.

                                              Emoji are a part of written communication, no matter how much someone might personally dislike them, and as such belong in Unicode.

                                              1. 1

                                                Ligatures can’t and don’t solve all the traditional emoticons, let alone emoji.

                                                Why not? This approach is more or less used for flags, where flag emoji are – for political reasons like ‘TW’ – ligatures of country codes in a special unicode range. If you happen to put ‘Flag{T}’ beside ‘Flag{W}’, you may get the letters ‘TW’, or you may get a flag that enrages China, depending on your font.

                                                If you want to avoid ASCII ‘bar:(foo)’ from being interpreted as a smiley emoji , maybe unicode could standardize non-rendering ‘emoji brackets’ as a way of hinting to a font system that it could render a sequence of characters as an emoji ligature.

                                                There’s no need to restrict emoji to the slow pace of the unicode consortium, when dropping in a new font will get you the new hotness, especially since using text sequences will render legibly for everyone not using that font.

                                                This is win/win. It makes things more usable for those that dislike emoji, and it makes more emoji available to those that like emoji.

                                                1. 5

                                                  Because fonts cannot change emoticons into images? They have different meaning, so font ligature processing, which is essentially replaceAll(characters/glyphs/whatever, graphic), does not work.

                                                  No one can adopt a system font that magically turns one set of characters into another system. Because it can’t be adopted as the system font, then no apps get emoji. A person can’t simply change the default, for the same reason the system couldn’t: you made ligatures that potentially change meaning of bytes.

                                                  As far a font is concerned, there is no difference between :) in “see you :)” “(: I’ve seen this comment format somewhere :)” but you ligature “solution” makes the latter nonsense.

                                                  Emoticons also have characters that have no equivalent emoticon, either due to number of characters, or the lack of color.

                                                  Now, you may not like emoji, but arguing “we didn’t need it before” is pretty weak sauce: we didn’t have it. The goal of text is to communicate, and it is clear that a vast proportion of all people alive use emojis in their communication. So computers should be able to facilitate that communication rather than requiring workarounds.

                                                  The use of semagrams in alphabetic languages is nothing new - even hieroglyphics used semagrams.

                                                  1. 2

                                                    Because fonts cannot change emoticons into images?

                                                    That’s… just untrue.

                                                    You ignored the entire paragraph where I pointed out that flags ALREADY work this way. Then, you ignored the second paragraph which addresses the problem you mentioned in the third paragraph, where something like an RTL marker could mark emoji. Then you invented me saying “we didn’t need it before”.

                                                    In fact, you seem to have ignored everything I wrote.

                                                    It would be nice if you responded to what I said, rather than what you imagined I said.

                                                  2. 3

                                                    The simple counterpoint to this is to imagine the Unicode Consortium declaring that all the writing systems and characters which ever will be needed have been invented already — anything new will just be a variant or a ligature of something existing!

                                                    That would be dangerously incorrect, and would not work at all.

                                                    So, look. I get that some people really really really really don’t like emoji and wish they didn’t exist. But they do exist and they are a perfectly valid form of written communication and they are not sufficiently captured by ligatures or other attempts to layer on top of ASCII emoticons, any more than an early-2000s forum would have been happy with just the ASCII forms. For decades we’ve been used to a richer set of these, and it is right and proper for Unicode to include them. Complaints about them, to me, feel like ranting that kids these days say ”lol” instead of typing out the fully-punctuated-and-capitalized sentence “That is funny!”

                                                    1. 1

                                                      and they are not sufficiently captured by ligatures or other attempts to layer on top of ASCII emoticons, any more than an early-2000s forum would have been happy with just the ASCII forms.

                                                      So far in this thread, I’ve seen this asserted – but I don’t see why flags are appropriately captured by ligatures, while emoticons are not. What is the technical difference that allows one to work while the other does not?

                                                      Again, I’m arguing that for emoji lovers, ligatures are BETTER and MORE FUNCTIONAL than encoding emoji individually into unicode. That this would be an improvement in availability and usability, not a regression.

                                                      We already have messaging programs ignoring the emoji range and adding their own custom :emoji: sequences because Unicode moves too slowly for them. We can wait years for unicode to standardize animated party parrots, or we can add :party_parrot: as text that gets interpreted by our application. Slack, and most others programs, chose the latter. Not to mention adding stickers – which arguably need the same position in Unicode as emoji.

                                                      Unicode’s charter is to standardize existing practice. Why not let Unicode standardize the way that emoji ranges are worked around in practice, today, this with standardized “emoji brackets” that allow clients to mark any text sequence as an emoji ligature? This matches the way things actually work, and fills the need for custom emoji (and stickers) that the Unicode consortium is not serving.

                                                      1. 1

                                                        I offer the following counter proposal: since you seem to think it’s at least possible and perhaps even easy, I challenge you to pick, say, 20 code points at random from among the emoji and come up with distinct, memorable ASCII sequences you think would suffice to be ligature’d into those emoji. I think that this will help you to understand why I don’t think “just ligature them” is going to work.

                                                2. 2

                                                  This is solved well with ligatures at the font level.

                                                  Demonstrably false by the number of systems that screw up trying to auto detect smileys from colons and parentheses. 🙂 is unambiguous semantically; “:)” is not.

                                                  1. 4

                                                    I actually feel the opposite. “:)” is unambiguously a smiling face, and is mostly uniform in appearance across system UI fonts. The icon “🙂” is rendered differently depending on not only the operating system but also the specific app being used. The recipient of my message may see a completely different image then I intend for them to see. Even worse, the meaning and tone of my past emoji messages can completely change whenever Apple or Google or Telegram decides to redesign their emoji.

                                                    Too many apps have no way to disable auto-replacement of ascii faces.

                                              2. 5

                                                I was going to mock your post by pointing out all of the other stuff in Unicode which is “politically charged”, from Tibetan to Han unification to the Hangul do-over to that time that a single character was added just for Japan’s government. But this is a grand understatement of exactly how political and pervasive the Consortium’s work is. Peruse the list of versions of Unicode and you’ll see that we already have a “bottomless pit” of natural writing systems to catalogue.

                                                I think that the most inaccurate part of your claim is that emoji are “like a fashion”. Ideograms are millennia old and have been continuously used for communicating mathematics.

                                                1. 4

                                                  I think the Unicode consortium made a huge mistake giving in to adding emojis to Unicode. It’s a bottomless pit, very politically charged and definitely ambiguous (compare for example the different emoji-styles across operating systems/fonts).

                                                  This applies to other planes in Unicode, due to https://en.wikipedia.org/wiki/Han_unification

                                                  Also, any kind of character system is politically charged an interesting read here is: https://www.hastingsresearch.com/net/04-unicode-limitations.shtml (I do not agree with the points here and history has proven the author wrong, but it’s a good specimen to look at political unicode arguments pre-Emoji)

                                                  1. 2

                                                    It severely complicates most of the Unicode algorithms (grapheme cluster detection, word/sentence/line-segmentation, etc.)

                                                    If there were no emojis in Unicode, but everything else remained, would any of these things really be simpler? The impression I get is there are corner cases across the languages Unicode covers for all of the complexity, independent of emoji; emoji just exposes them to westerners more.

                                                  1. 5

                                                    I always recommend that people give taskwarrior a try. (There is a good vim integration too) It is an excellent tool that deserves to be better known https://taskwarrior.org/

                                                    1. 1

                                                      I currently use this (with the vimwiki integration) and is good but when you hit bugs it’s damn hard to debug them!

                                                    1. 3

                                                      I use the go-jira cli client.

                                                      I just type at a terminal jira browse PROJECT-1234 and my browser opens up, happy as you can be.

                                                      1. 1

                                                        I use this too. I patched mine to add support for managing external links. The project seems to be dead or nearly so, though, and I’ve ran into more and more problems that I’m close to giving up on it.

                                                        1. 1

                                                          Any concrete problems? It makes jira tolerable to me, and I only just found it, so I want my eyes to be wide open.

                                                          1. 1

                                                            The biggest issue is auth periodically fails for no obvious reason and when it does it retries too fast and gets blocked by the server for a while.

                                                      1. 9

                                                        Sometimes I think people designing things need to take a step back. One can see the chain of reasoning that results in --directory=/ --volatile=yes actually meaning only /usr being mounted, but on the face of it that’s pretty confusing.

                                                        1. 3

                                                          Totally agree. I much prefer just running a rootless container with my container I build semi regularly from puppet.

                                                          It ends up being the same as my host, but I can actually change what’s installed without polluting my host distro. I can also choose different distros.

                                                          I can see this getting better over time, but this feels like uncanny valley.

                                                          1. 1

                                                            Agreed. I also think they need a higher level command or option which encapsulates all of these options. Having an explosion of CLI options like that means it’s too low level and confusing for the user IMO.

                                                          1. 31

                                                            I think both OCaml and Haskell are here to stay and are ‘safe’ bets. Erlang will probably still be kicking as well.

                                                            1. 8

                                                              I’d like to think Haskell is a contender but it’s mutating quite fast and I’m not entirely convinced we can build all the older Haskell programs today, which doesn’t bode well for a higher magnitude timescale.

                                                              1. 11

                                                                Some of the programs are intentionally not buildable because older versions of the compiler used to accept code that wasn’t meant to be accepted.

                                                            1. 3

                                                              I’m always concerned about the potential foot guns of enabling features and losing my ability to boot.

                                                              There is a cool project (that admittingly I haven’t tried yet) ZFS Boot Menu[1] that solves a lot of these problems for Linux users. Roughly how it works is put a Linux kernel and an initramfs with a ZFS kernel module on a small non ZFS file system (eg efi system partition). Eliminating the need for a traditional bootloader to support zfs.

                                                              [1] https://zfsbootmenu.org/

                                                              1. 5

                                                                Eliminating the need for a traditional bootloader to support zfs.

                                                                The easiest is to have a separate /boot partition in an universal-ish filesystem like ext2 or vfat.

                                                                1. 4

                                                                  One of the most compelling features of ZFS on root in my opinion is boot environments. Any time something is about to change on my system a snapshot can be taken and a bootable clone created so in the event something breaks I can select the pre broken environment at the the bootloader.

                                                                  By putting /boot on a separate partition it creates the possibility of a split brain system where for example I’ve gotten a new kernel and some other important package has broken so I’ve booted into my old environment. In this scenario I’m booting (assuming the break wasn’t the kernel upgrade itself) but I’m on a newer kernel and my package manager believes that still on an older version.

                                                                  For a consistent environment, having /boot on zfs included is vital.

                                                                  1. 2

                                                                    When I upgrade my kernel I keep the old one around, sometimes more than one. So in that situation I’ll have it available if I booted an older root filesystem.

                                                                2. 1

                                                                  I have tried this. I love it. The install process even caught my custom-added kernel cmdline from grub and brought it along.

                                                                  Disclaimer: I know the maintainers (on IRC).

                                                                  1. 1

                                                                    I like the ZFS Boot Menu project.

                                                                    Do you know any Linux distribution that use it? Like I mean you just install such Linux as Ubuntu or Debian and after reboot you end up with Linux system with ZFS Boot Environments and ZFS Boot Menu setup?

                                                                    Regards.

                                                                    1. 2

                                                                      I don’t know, but I think it sounds like a decent idea.

                                                                  1. 5

                                                                    I wonder if they were aware of systemd’s existing dash encoding scheme.

                                                                      1. 1

                                                                        That’s it! Or at least that’s a tool to work with them.

                                                                        It’s domain specific, but for paths, having to escape dashes is a real pain in the bum :-)

                                                                    1. 2

                                                                      the kernel has moved its minimum GCC requirement to version 5.1

                                                                      Yeah, thanks for moving to a 5.x gcc and failing compilation on CentOS 7’s default gcc which is 8 years old, while still

                                                                      look to moving to the C99 standard — it is still over 20 years old

                                                                      I am a little bit confused where you can always have the latest and greatest linux kernel from upstream (lesser than 1 week old and being confident about it), but hesitant to trust a compiler or C standard that’s been there for 20 years. While asking developers to trust a compiler that’s 7 years old (gcc 5.1).

                                                                      1. 1

                                                                        Is anyone still updating centos7? It’s legacy now surely

                                                                        1. 2

                                                                          Centos7 still gets package updates via upstream, unlike 8.

                                                                          1. 1

                                                                            But there’s precious few of those. Only cve severity important or higher are applied by default, with other updates at Redhat’s discretion. Disclaimer: I work for red hat, but may still be misrepresenting their policy.

                                                                      1. 3

                                                                        I didn’t really understand this at first, but this technique is based on the fact that a struct inside a struct is essentially flattened out in terms of memory representation. The technique is called an intrusive data structure and it lets you do things generically (with macros) with only one linked list struct. I am used to making a new linked list struct for every data type in C - so it’s a pretty clever hack!

                                                                        1. 2

                                                                          These macros originated with 4BSD, as far as I can tell. Modified versions are present in the *BSD, Linux, and the NT kernel. They’re slightly terrifying because they require pointer arithmetic that removes type information, including using offsetof to identify the location of the field and then subtracting it.

                                                                          1. 1

                                                                            They’re quite useful! Like you said, it lets you write generic functions easily (you could write generic versions of a non intrusive list, but with indirection and allocation overhead). The other thing that’s very nice is they allow for local manipulation - if you have a reference to the struct, you can eg. remove it in O(1) from the containing list without traversing the list or even needing a reference to the list head. This can make cleanup code much simpler (like a C++ destructor could remove the object from lists it’s present in), and it also makes cases where you have a single item that needs to be present in multiple lists much easier to manage. They tend to show up a decent amount in systems and games programming.

                                                                            1. 1

                                                                              When I first saw this I thought it was genius. The macro to convert a list pointer to its parent is a fun piece of pointer arithmetic to unpick. It involves casting the literal 0 to a pointer.

                                                                              Another significant advantage is normal use (outside of that controlled and tested macro) doesn’t need casts: with the traditional list-struct-on-the-outside, you end up having to use void pointers for the payload, and there are many more opportunities to make a type error. Also the list structure and parent structure can be easily contiguous in memory.

                                                                            1. 21

                                                                              Ref the harmful consequences of the robustness principle, I think the user agent string and its role in compatibility is the pinnacle of failure on this metric for web standards: It enables exactly the wrong kind of compatibility and becomes a compatibility item in itself that shouldn’t be. Thus why browser sniffing is evil. As such, this kind of breakage is pure karma. May the UA string fade into unimportance.

                                                                              To be ridiculous, let’s continue the tradition of telling them what they want first and instead append the truth:

                                                                              Mozilla/5.0 (X11; Windows x86_64; KHTML) Chrome/99.0 (Wayland; Linux Aarch64; Gecko) Firefox/100.0

                                                                              1. 4

                                                                                Given Chrome’s dominance, they should flex their muscles and remove UA strings entirely. Let the world catch up to them.

                                                                                1. 8

                                                                                  It’s not removal, but they are definitely intending to reduce User Agent data, replacing a bunch of platform data with hard-coded strings. For example, Chrome on Android will (eventually) always report Linux; Android 10; K regardless of kernel, Android version, or phone model.

                                                                                  On the other hand, a bunch of that information is going to be exposed as Client Hints, so sites can still ask for information even if it’s not collected passively.

                                                                                  1. 3

                                                                                    Safari has frozen their User-Agent string: https://twitter.com/rmondello/status/943545865204989953

                                                                                    My Safari reports “Intel Mac OS X 10_15_7”, and I’m on ARM macOS 12.2.

                                                                                    1. 3

                                                                                      My hope is that more chaos → less value → disuse → easier to remove.

                                                                                      But the normative fix would be a new HTTP version.

                                                                                      1. 2

                                                                                        When making statements like this that support a chrome monopoly and giving google total control of the internet, I can’t help but wonder if you would have sided with MS and IE in the late 90s and early 2000s when they had the better (speed, features, site compatibility, etc) and a substantially weaker monopoly? (Remember, css was an IE driven feature, xhr was an ms created de facto standard)

                                                                                        1. 4

                                                                                          I don’t see anything about OP’s post that suggests they approve of chrome’s dominance, they’re just acknowledging it, and suggesting something they could do with that dominance that might improve things for the open web.

                                                                                          1. 4

                                                                                            I had intended my comment to be a little tongue in cheek, but on reread it doesn’t have any hint of “this is kind of a joke” so that’s on me.

                                                                                            I am strongly in favor of diversity of browsers, but like CSS coming from Microsoft’s dominance, it’s possible for the de facto leader to use their position to improve the situation for everyone. UA strings are bad and little-to-nothing is gained by continuing to use them (except for interoperability); either we should freeze them and make it a specified string, or they should be removed entirely.

                                                                                            I don’t like code churn or breaking changes but I also think infinite compatibility leads to bad code and the inability to write new conforming implementations (see the above link about the failures of the Robustness Principle, or Microsoft Excel’s awful date type maintaining compatibility with Lotus 1-2-3 to the detriment of everyone).

                                                                                            1. 1

                                                                                              Ah fair enough - I’ve had the occasional joking comment be read as serious :)

                                                                                              User agents are a challenging thing though simply because so many existing sites use them that they can’t simply be removed. I did think all the browsers agreed that only the version numbers would change from now on, but I don’t know how serious that was

                                                                                            2. 2

                                                                                              It’s too easy to make mistakes with UA strings. We could live in a world: If you need a feature, check whether it’s there. If a feature is there but not up to spec, it should be fixed.

                                                                                              1. 1

                                                                                                There are some bugs that can’t be reasonably detected and so the best option is a version check. The problem is that the majority of developers who look at the user agent are doing it instead of feature checks :-/

                                                                                        1. 4

                                                                                          “this wouldn’t have happened with ZFS” is a strange conclusion to come to after a user error. Also: I’d recommend a mundane backup strategy. having to package something smells of novelty. Although I’ve not heard of the system they mention, it might be fine.

                                                                                          1. 6

                                                                                            ZFS would have told you why the drive wasn’t in the array anymore, with a counter showing how many checksums failed (the last column in zpool status, it should be 0). The author would thus have known there was something wrong with the SSD, and think twice before mindlessly adding it to the array.

                                                                                            I’m not entirely sure what would happen if you add the SSD back to the array anyway, at the very least you must give it a clean bill of health with zpool clean. I would also expect that ZFS urges or maybe even forces you to do a resilver of the affected device, which would show the corruption again. The main problem with mdadm in this case was that when re-adding the device, it found it was already part of the array before and decided to trust it blindly, not remembering that it was thrown out earlier, or why.

                                                                                            1. 3

                                                                                              ZFS should resilver when you add the drive back the array and verify/update the data on the failed drive.

                                                                                            2. 5

                                                                                              the readme in the repo for that project says in bold text that it is experimental. which is exactly what i would avoid if i was looking for some reliable backup system… but to each their own.

                                                                                              1. 5

                                                                                                How was this user error? This raid array silently corrupted itself. Possibly because of the ram?

                                                                                                the filesystem in the treefort environment being backed by the local SSD storage for speed reasons, began to silently corrupt itself.

                                                                                                ZFS checksums the content of each block, so it would have been able to tell you that what you wrote is not what is there anymore. It could also choose the block from the disk that was NOT corrupted by matching the checksum. It would have also stopped changing things the moment it hit inconsistencies.

                                                                                                1. 2

                                                                                                  The drive failed out of the array and they added it back in.

                                                                                                  1. 4

                                                                                                    Yeah, but why did the array think it was fine when it had previously failed out?

                                                                                                    1. 2

                                                                                                      I don’t know, it’s a reasonable question but doesn’t change that fundamentally it was a user mistake. ZFS may have fewer sharp edges but it’s perfectly possible to do the wrong thing with ZFS too.

                                                                                              1. 2

                                                                                                I wrote my first ruby program in over 15 years last week. all my ruby experience predated rails, and I hit this situation almost immediately with my new program.

                                                                                                1. 4

                                                                                                  Podman does not ship with a GUI. It does not run Docker, but rather a Docker API-compatible replacement.

                                                                                                  Well.. sort-of. The command line is compatible with docker’s commands. But, since it’s daemonless, there’s no daemon to communicate with. So it doesn’t implement the API at all.

                                                                                                  This does matter if your tooling talked to the API, as some of mine does (via docker-py)

                                                                                                  1. 1

                                                                                                    Since a year or two ago or so, it implements the Docker API and you can start a service for that if you need it. The service can run as root or as your own user.

                                                                                                    However, since the Docker API is a bit and hoc, don’t expect it to work smoothly with tools that are tested only with Docker.

                                                                                                    1. 1

                                                                                                      Thanks: somehow I missed that. The tool I’m concerned about (part of a unit test suite) has only been tested with Docker so far but it’s not very big so it should be quite feasible to adapt it to the libpod API (or just work around any idiosyncrasies). I’ll look at that this week!

                                                                                                  1. 31

                                                                                                    The article doesn’t refute any of the arguments in the blog it’s responding to. Yet it has a point - Gemini seems to have taken off as a subculture.

                                                                                                    People rally around this protocol as a backlash against the complexity of the web, even though a non-complex website can be made with HTTP and HTML, and it can be read on low-powered computers with oldschool browsers like lynx or slightly more modern links, dillo or netsurf. Gemini is not about any of the technical features (or even the anti-features, if you will) but more about the emotion and ethos surrounding it.

                                                                                                    1. 11

                                                                                                      It’s simpler than that: Gemini is about having fun!

                                                                                                      1. 7

                                                                                                        Gemini is not about any of the technical features (or even the anti-features, if you will) but more about the emotion and ethos surrounding it.

                                                                                                        Gemini is an NFT.

                                                                                                        1. 1

                                                                                                          I can’t really see the similarity myself.

                                                                                                          1. 5

                                                                                                            It’s a technical solution to a social problem with a committed bunch of supporters who are Extremely Online.

                                                                                                            Thankfully there is no money involved however.

                                                                                                        2. 7

                                                                                                          It does address the charge of exclusionism. I would even respond to that charge in stronger terms: if you require every new project to be 100% inclusive from day 1, you’re a useful idiot for rich monopolists who have large departments devoted to marketing how inclusive and accessible they are[1].

                                                                                                          Reading pages on Gemini requires installing a program. We all used to do this, back in the day! It blows my mind that this is considered exclusionist.

                                                                                                          [1] Except they’re not really if you actually focus on the details. Why the fuck is the author of that other blog post not complaining about how exclusionist Twitter is? They can’t render 280 fucking characters without Javascript.

                                                                                                          1. 18

                                                                                                            Reading pages on Gemini requires installing a program. We all used to do this, back in the day! It blows my mind that this is considered exclusionist.

                                                                                                            People install apps on their phones and laptops all the time (lol you should see my “Messenger” app group.) Gemini isn’t exclusionist for asking for an app install, it’s exclusionary for being mostly text based, for emphasizing keyboard navigation, and for eschewing accessibility for minimalism. If I were ever interested in sharing math on Gemini it would be pretty much impossible; there’s no way to represent the markup. In theory you can share other formats, like HTML or images, but in practice the community strongly wants to stick to text/gemini.

                                                                                                            There’s also a decent amount of purity politics. See https://github.com/makeworld-the-better-one/amfora/issues/199 for example. It’s a set of cultural values that wants to exclude and circumscribe by default. There’s nothing wrong with this, but it makes the community by definition exclusionary.

                                                                                                            1. 10

                                                                                                              There’s also a decent amount of purity politics. See https://github.com/makeworld-the-better-one/amfora/issues/199 for example.

                                                                                                              I’ve been intrigued by the idea behind Gemini for awhile now (and Gopher before that) but reading through that conversation just made me absolutely certain that I never want anything to do with Gemini. To be fair, I now also doubt that they would want me involved in their community either :-)

                                                                                                              1. 14

                                                                                                                I mean, it’s mainly just Drew Devault who’s the issue in that exchange. If it makes you feel any better, he’s already been banned from Lobsters :)

                                                                                                                1. 1

                                                                                                                  I haven’t been here for a few months so this is news to me. Whoah.

                                                                                                                2. 9

                                                                                                                  That github issue made me so angry that I added a gemini title grabber to my IRC bot that would also fetch the favicon.txt file, just to spite that asshole.

                                                                                                                3. 4

                                                                                                                  Yeah, that’s totally valid. “Accessible” is a more precise keyword here than “inclusive” that isn’t talked about in either OP or the post it’s responding to. It’s true that plain text isn’t accessible.

                                                                                                                  I’ve been agonizing about this because my project is terminal-based. I’d characterize my current position as very/genuinely reluctantly excluding some people. I’d love to brainstorm ways to get around it with an accessibility expert.

                                                                                                                  1. 8

                                                                                                                    I’d love to brainstorm ways to get around it with an accessibility expert.

                                                                                                                    Yeah it’s something I’m a bit sensitive to because I have some really bad RSI issues. Personally, I’ve always learned much better with text than drawings (since I was a child), and when I found text interfaces on computers, I found them much easier to navigate around than graphical interfaces. Unfortunately I had a sports injury when I was young in my wrist, and years of coding have now made my RSI pretty bad. There are days when I get by with using only my left hand on an ambidextrous trackball. Those days using the terminal is a gigantic chore and I feel super bummed when I read the fashionable online TUI maximalism in tech spaces. And I’m relatively lucky and privileged, I wasn’t even born with an actual disability. I can only imagine what it’s like for folks with other accessibility issues.

                                                                                                                    I recall in the ’90s (though I may be conflating trends, so this might be more of a haphazard connection than a true connection) a desire to have the Web contain text and rich media to accommodate the information acquisition style most beneficial to the reader/viewer. By ideologically sticking to text the way Gemini does, I see Gemini making a strong statement that Geminauts should learn a certain way and that other types of learners (say graphical or aural learners) are not really considered. The Web as an open, welcoming technology then feels very different than the closed, specific community of Gemini.

                                                                                                                    That said, as a personal project, you can’t “fix the world”. Focusing on a niche is fine IMO. We all have finite time in our lives and we do what we can with our time.

                                                                                                                    1. 8

                                                                                                                      other types of learners (say graphical or aural learners

                                                                                                                      Just as a side note here: the idea that people have a “learning style” and one person will learn best with audio vs another best with visuals, has been widely refuted.

                                                                                                                      1. 3

                                                                                                                        Want to +1 your comment. I’m aware but I didn’t add that into my post and I don’t want folks to think that my statement is a statement on the pedagogy at large on education.

                                                                                                                      2. 2

                                                                                                                        Thanks! If you ever get around to trying out my thing, I’d love to hear any advice you have, whether on accessibility or anything else.

                                                                                                                      3. 1

                                                                                                                        There’s a big difference between a terminal-based application for people to explore and ‘the web is for normies and if you don’t join our clique “you’re a useful idiot for rich monopolists”’ – which is a rather exclusionary thing to say.

                                                                                                                        1. 1

                                                                                                                          I don’t actually use Gemini much! I don’t hang out on the mailing list, I don’t know anybody there. If I’m in a clique, it’s a clique of 1.

                                                                                                                          If you require every new project to be 100% inclusive from day 1, you’re a useful idiot for rich monopolists who have large departments devoted to marketing how inclusive and accessible they are

                                                                                                                          I stand by this statement in all particulars. But I’m not sure who I’m excluding from what by saying it.

                                                                                                                          1. 5

                                                                                                                            If you require every new project to be 100% inclusive from day 1, you’re a useful idiot for rich monopolists who have large departments devoted to marketing how inclusive and accessible they are

                                                                                                                            That statement implicitly assumes that projects will later be extended to be more inclusive.

                                                                                                                            The problem is, Gemini seems pretty hostile to any extensions made after day 1, and this seems to be a specific goal of the project. This means if they ever want to include accessibility, it has to be planned in from day 1.

                                                                                                                            1. 2

                                                                                                                              I’m not sure what accessibility it needs to include? It’s trivial to create an audio-only, reading only, braille-only, large print, high contrast, translated to any language, version of any gemini capsule. Lacking support for mathematical notation or music isn’t about accessibility, it’s about content.

                                                                                                                              1. 5

                                                                                                                                Questions I’d have:

                                                                                                                                • How would a screen reader know what language a capsule is? What if you use multiple languages in your capsule?
                                                                                                                                • How does a screen reader know what to parse and what not to (e.g. images)?
                                                                                                                                • Those Figlet ASCII art images are absolute garbage for a screen reader

                                                                                                                                It’s trivial to create an audio-only, reading only, braille-only, large print, high contrast, translated to any language, version of any gemini capsule

                                                                                                                                So it’s been said since the beginning of the protocol but all I’ve seen is TUI clients, an Emacs client, and a handful of GUI clients which are still not thinking about accessibility at all.

                                                                                                                                1. 5
                                                                                                                                  • The MIME type of the resource requested is included in the response, and it’s there where one can include a language tag (it’s even specified for text/gemini). At best, you can set a language per file, but if the document includes multiple languages, you are out of luck. But to be fair, does anyone actually tag foreign language words or phrases in HTML? I know I do (via tags) but I think I might be the only one.
                                                                                                                                  • Images (like gif and jpegs) aren’t displayed inline. Yes, it’s an issue knowing a link is to an image (and what type of image) until it’s requested.
                                                                                                                                  • The spec for text/gemini allow for “alt text” after the pre-formatted block marker, but there is no standard for how it should work, nor what it should contain. There’s been an insane amount of talk about the issue, but rarely (if ever) does someone even bother with a “proof-of-concept” to see how it might look or work (my biggest gripe with the Gemini community—mostly talk, no experimentation because actual working code is hard work and who wants to do that?)

                                                                                                                                  Disclaimer: I wrote the first available Gemini server which helped with identifying the worst bits of the protocol (I did not bother much with text/gemini). I pretty much left the community because of the community, but I still run my Gemini site (gemini://gemini.conman.org/ in case anyone is interested).

                                                                                                                                  1. 1
                                                                                                                                    • A screen reader would know the language the same way anyone ever does. Language Detection is a pretty reasonably solved problem, certainly for long-ish passages.
                                                                                                                                    • What images?
                                                                                                                                    • That’s a screen reader problem (actually an ascii art problem), not a protocol accessibility problem. The web is no better at dealing with bad actors.

                                                                                                                                    Feel free to write an Alexa client. It’d be pretty easy. (Like, legitimately so. It actually sounds kind of fun. I might try.)

                                                                                                                                    1. 1

                                                                                                                                      Those Figlet ASCII art images are absolute garbage for a screen reader

                                                                                                                                      The standard allows for an optional “alt text” to be attached to preformatted sections.

                                                                                                                                      Edit

                                                                                                                                      How would a screen reader know what language a capsule is? What if you use multiple languages in your capsule?

                                                                                                                                      The server I run (gemserv) has an optional directive indicating the language. I don’t know if it communicates this to the client though.

                                                                                                                          2. 2

                                                                                                                            I’m not familiar with the insider politics of Gemini. Now I’m regretting wading into this. I’d have kept quiet if either blog post said, “the people on the mailing list are rude,” something I’m not qualified or interested to debate.

                                                                                                                            1. 2

                                                                                                                              it’s exclusionary for being mostly text based

                                                                                                                              Like the Amish.

                                                                                                                              If people want to live without electricity, who am I to tell them otherwise?

                                                                                                                              If I were ever interested in sharing math on Gemini it would be pretty much impossible;

                                                                                                                              Yes yes, all your calculus I’m sure is quite good, but there are other things too, and you might say nothing quite captures the beauty of a rose like a picture of a rose, and that music is best heard not talked about, and to say nothing of the medium of games and interactivity, where even being able to see all the code can spoil the ending!

                                                                                                                              We already have something perfectly mediocre at representing all of those things, but we don’t have anything really great at just doing text and links besides Gemini.

                                                                                                                              There’s nothing wrong with this, but it makes the community by definition exclusionary.

                                                                                                                              I disagree wholeheartedly: A meetup for blind people isn’t exclusionary if a sighted person can join. You are so welcome! You’re free to consume or produce whatever content you want, but so are they, and your inability to share your math with me speaks more of your abilities than mine for simply lacking the eyes with which to “read” it.

                                                                                                                              1. 14

                                                                                                                                Like the Amish.

                                                                                                                                The Amish don’t proselytize. In fact I suspect they’d be relieved if the outside world stopped being fascinated by them. This does not describe most Gemini evangelists.

                                                                                                                                We already have something perfectly mediocre at representing all of those things, but we don’t have anything really great at just doing text and links besides Gemini.

                                                                                                                                Well, views differ. I see the lack of semantic content for emphasis as crippling, for text. And I really cannot see any reason for this to be the case apart of the rigid “each line should be parseable as a unit” argument, and “it’s up to the client to decide how to present”.

                                                                                                                                Quoting myself from here:

                                                                                                                                italics and boldface are good, I am still mad

                                                                                                                                You can’t reproduce most prose works without having fugly underscores or asterisks all over. This is defacing our cultural heritage. Asking the user/client to download on the side and using an external reader is a cop-out.

                                                                                                                                It’s increasingly apparent to me that gemtext is well suited for one thing: writing about and discussing gemtext and Gemini. A bargain-basement Sapir-Worf theory, in other words.

                                                                                                                                Gemtext is designed by someone who thought that the pinnacle of human communication is a 1990s Usenet post. Gutenberg and Aldus Manutius wept.

                                                                                                                                1. 2

                                                                                                                                  The Amish don’t proselytize.

                                                                                                                                  I think that depends on what you mean by proselytize; Many Amish vote, and they have Amish lobbyists, and some are even quite mission-oriented in how they talk of their faith (e.g. NOA). Some have certain rules that you have to follow if you want to participate in their community (like for example, visiting an Amish church), and both (to me) seem quite tolerant of the existence of other faiths.

                                                                                                                                  In any event, I don’t follow exactly is it about what Gemini “evangelism” that has anything to do with your inability to express yourself to blind people. To me, it’s like you’re telling people to remove the braille from elevators. Why? If you don’t want to use Gemini? Who is forcing you?

                                                                                                                                  I see the lack of semantic content for emphasis as crippling. … I really cannot see any reason for this.

                                                                                                                                  That’s too bad. Again, why do you care that something exists that isn’t for you? Do you bring your cat to dog-walking clubs as well? A child to the pub? Do you think everyone should like the things you like?

                                                                                                                                  1. 3

                                                                                                                                    I dunno man, I’m just here, working on my gemsite, participating on Antenna, hanging out in the #gemini IRC and generally having a good time. I’m sorry I’m not comporting myself befitting a member of the Church of Gemini.

                                                                                                                            2. 8

                                                                                                                              Twitter used to have a nice mobile site. It worked beautifully with text-mode browsers. I used to use it with edbrowse. They killed it in December 2019, a couple weeks after I quit twitter.

                                                                                                                              And then there’s twitter’s crusade against third-party clients. Third-party clients happen to be very popular with the blind.

                                                                                                                          1. 16

                                                                                                                            I wonder who at System76 was responsible for evaluating all possible directions they could invest in, and decided the desktop environment is the biggest deficiency of System76

                                                                                                                            1. 11

                                                                                                                              It’s also great marketing. I’ve heard “System76” way more since they have released Pop_OS. So while people may not be buying machines for the OS it seems that as a pretty popular distro it keeps the name in their head and they may be likely to buy a system on the next upgrade.

                                                                                                                              1. 1

                                                                                                                                Well I’d buy a machine, but they’re not selling anything with EU layouts or powercords.

                                                                                                                              2. 5

                                                                                                                                I know a few people who run Pop_OS, and none of them run it on a System76 machine, but they all choose Pop over Ubuntu for its Gnome hacks.

                                                                                                                                Gnome itself isn’t particularly friendly to hacks — the extension system is really half baked (though perhaps it’s one of the only uses of the Spidermonkey JS engine outside Firefox, that’s pretty cool!). KDE Plasma has quite a lot of features, but it doesn’t really focus on usability the way they could.

                                                                                                                                There’s a lot of room for disruption in the DE segment of the desktop Linux market. This is a small segment of an even smaller market, but it exists, and most people buying System76 machines are part of it.

                                                                                                                                Honestly, I think that if something more friendly than Gnome and KDE came along and was well-supported, it could really be a big deal. “Year of the Linux desktop” is a meme, but it’s something we’ve been flirting with for decades now and the main holdups are compatibility and usability. Compatibility isn’t a big deal if most of what we do on computers is web-based. If we can tame usability, there’s surely a fighting chance. It just needs the financial support of a company like System76 to be able to keep going.

                                                                                                                                1. 7

                                                                                                                                  There’s a lot of room for disruption in the DE segment of the desktop Linux market. This is a small segment of an even smaller market, but it exists, and most people buying System76 machines are part of it.

                                                                                                                                  It’s very difficult to do anything meaningful here. Consistency is one of the biggest features of a good DE. This was something that Apple was very good at before they went a bit crazy around 10.7 and they’re still better than most. To give a couple of trivial examples, every application on my Mac has the buttons the same way around in dialog boxes and uses verbs as labels. Every app that has a preferences panel can open it with command-, and has it in the same place in the menus. Neither of these is the case on Windows or any *NIX DE that I’ve used. Whether the Mac way is better or worse than any other system doesn’t really matter, the important thing is that when I’ve learned how to perform an operation on the Mac I can do the same thing on every Mac app.

                                                                                                                                  In contrast, *NIX applications mostly use one of two widget sets (though there is a long tail of other ones) each of which has subtly different behaviour for things like text navigation shortcut keys. Ones designed for a particular DE use the HIGs from that DE (or, at least, try to) and the KDE and GNOME ones say different things. Even something simple like having a consistent ‘open file’ dialog is very hard in this environment.

                                                                                                                                  Any new DE has a choice of either following the KDE or GNOME HIGs and not being significantly different, or having no major applications that follow the rules of the DE. You can tweak things like the window manager or application launcher but anything core to the behaviour of the environment is incredibly hard to do.

                                                                                                                                  1. 4

                                                                                                                                    There’s a lot of room for disruption in the DE segment of the desktop Linux market.

                                                                                                                                    Ok, so now we have :

                                                                                                                                    • kitchen sink / do everything : KDE

                                                                                                                                    • MacOS like : Gnome

                                                                                                                                    • MacOS lookalike : Elementary

                                                                                                                                    • Old Windows : Gnome 2 forks (eg MATE)

                                                                                                                                    • lightweight environments : XFCE / LXDE

                                                                                                                                    • tiling : i3, sway etc etc (super niche).

                                                                                                                                    • something new from scratch but not entirely different : Enlightment

                                                                                                                                    So what exactly can be disrupted here when there are so many options ? What is the disruptive angle ?

                                                                                                                                    1. 15

                                                                                                                                      I think you’re replying to @br, not to me, but your post makes me quite sad. All of the DEs that you list are basically variations on the 1984 Macintosh UI model. You have siloed applications, each of which owns one or more windows. Each window is owned by precisely one application and provides a sharp boundary between different UIs.

                                                                                                                                      The space of UI models beyond these constraints is huge.

                                                                                                                                      1. 5

                                                                                                                                        I think any divergence would be interesting, but it’s also punished by users - every time Gnome tries to diverge from Windows 98 (Gnome 3 is obvious, but this has happened long before - see spatial Nautilus), everyone screams at them.

                                                                                                                                      2. 3

                                                                                                                                        I would hesitate to call elementary or Gnome Mac-like. Taking elements more than others, sure. But there’s a lot of critical UI elements from Mac OS looking, and they admit they’re doing their own thing, which a casual poke would reveal that.

                                                                                                                                        I’d also argue KDE is more the Windows lookalike, considering how historically they slavishly copied whatever trends MS was doing at the time. (I’d say Gnome 2 draws more from both.)

                                                                                                                                        1. 3

                                                                                                                                          I’d also argue KDE is more the Windows lookalike, considering how historically they slavishly copied whatever trends MS was doing at the time

                                                                                                                                          I would have argued that at one point. I’d have argued it loudly around 2001, which is the last time that I really lived with it for longer than a 6 months.

                                                                                                                                          Having just spent a few days giving KDE an honest try for the first time in a while, though, I no longer think so.

                                                                                                                                          I’d characterize KDE as an attempt to copy all the trends for all time in Windows + Mac + UNIX add a few innovations, an all encompassing settings manager, and let each user choose their own specific mix of those.

                                                                                                                                          My current KDE setup after playing with it for a few days is like an unholy mix of Mac OS X Snow Leopard and i3, with a weird earthy colorscheme that might remind you of Windows XP’s olive scheme if it were a little more brown and less green.

                                                                                                                                          But all the options are here, from slavish mac adherence to slavish win3.1 adherence to slavish CDE adherence to pure Windows Vista. They’ve really left nothing out.

                                                                                                                                          1. 1

                                                                                                                                            But all the options are here, from slavish mac adherence to slavish win3.1 adherence to slavish CDE adherence to pure Windows Vista. They’ve really left nothing out.

                                                                                                                                            I stopped using KDE when 4.x came out (because it was basically tech preview and not usable), but before that I was a big fan of the 3.x series. They always had settings for everything. Good to hear they kept that around.

                                                                                                                                        2. 2

                                                                                                                                          GNOME really isn’t macOS like, either by accident or design.

                                                                                                                                        3. 3

                                                                                                                                          I am no longer buying this consistency thing and how the Mac is superior. So many things we do all day are web-apps which all look and function completely different. I use gmail, slack, github enterprise, office, what-have-you daily at work and they are all just browser tabs. None looks like the other and it is totally fine. The only real local apps I use are my IDE which is writen in Java and also looks nothing like the Mac, a terminal and a browser.

                                                                                                                                          1. 7

                                                                                                                                            Just because it’s what we’re forced to accept today doesn’t mean the current state we’re in is desirable. If you know what we’ve lost, you’d miss it too.

                                                                                                                                            1. 2

                                                                                                                                              I am saying that the time of native apps is over and it is not coming back. Webapps and webapps disguised as desktop applications a la Electron are going to dominate the future. Even traditionally desktop heavy things like IDEs are moving into the cloud and the browser. It may be unfortunate, but it is a reality. So even if the Mac was superior in its design the importance of that is fading quickly.

                                                                                                                                              1. 2

                                                                                                                                                “The time of native apps is over .. webapps … the future”

                                                                                                                                                Non-rhetorical question: Why is that, though?

                                                                                                                                                1. 4

                                                                                                                                                  Write once, deploy everywhere.

                                                                                                                                                  Google has done the hard work of implementing a JS platform for almost every computing platform in existence. By targeting that platform, you reach more users for less developer-hours.

                                                                                                                                                  1. 3

                                                                                                                                                    The web is the easiest and best understood application deployment platform there is. Want to upgrade all user? F5 and you are done. Best of all: it is cross platform

                                                                                                                                                  2. 1

                                                                                                                                                    I mean, if you really care about such things, the Mac has plenty of native applications and the users there still fight for such things. But you’re right that most don’t on most platforms, even the Mac.

                                                                                                                                                2. 2

                                                                                                                                                  And that’s why the Linux desktop I use most (outside of work) is… ChromeOS.

                                                                                                                                                  Now, I primarily use it for entertainment like video streaming. But with just a SSH client, I can access my “for fun” development machine too.

                                                                                                                                                3. 3

                                                                                                                                                  Any new DE has a choice of either following the KDE or GNOME HIGs and not being significantly different, or having no major applications that follow the rules of the DE. You can tweak things like the window manager or application launcher but anything core to the behaviour of the environment is incredibly hard to do.

                                                                                                                                                  Honestly, I’d say Windows is more easily extensible. I could write a shell extension and immediately reap its benefit in all applications - I couldn’t say the same for other DEs without probably having to patch the source, and that’ll be a pain.

                                                                                                                                                  1. 1

                                                                                                                                                    GNOME HIG also keeps changing, which creates more fragmentation.

                                                                                                                                                    20 years ago, they did express a desire of unification: https://lwn.net/Articles/8210/

                                                                                                                                                4. 1

                                                                                                                                                  It certainly is a differentiator.

                                                                                                                                                1. 5

                                                                                                                                                  Energy / electricity usage…?

                                                                                                                                                  1. 10

                                                                                                                                                    I thought it was refreshing to find an article that doesn’t mention that.

                                                                                                                                                    The excessive energy consumption is the larger societal harm, as I see it, but I also appreciate that we’re able to point out the legitimate technical flaws that reveal how the designers were thinking only in the short-term.

                                                                                                                                                    1. 13

                                                                                                                                                      To the best of my understanding, not enough people know about this wasteful aspects. Mainstream news often don’t mention it and instead hype up NFTs. NFT and cryptocurrencies also advertise a lot on shows and podcasts. Never with a mention of this. Sure, a lot of people on here (most) know about it but it seems underreported.

                                                                                                                                                    2. 4

                                                                                                                                                      That’s my number one concern too, but I was strangely glad that it was absent in this write up. It doesn’t mean it’s a non-issue, but it’s often the first thing that crypto people people try to rebut and ends up a discussion tar pit.

                                                                                                                                                      1. 3

                                                                                                                                                        I’ve seen people get out of pow (or out of crypto all together) once they learn about this. There are issues where it’s pointless how much info you try to dump because there’s an underlying values mismatch rather than an info mismatch, but I believe this isn’t one yet, as in, I think there are plenty who would change their minds about it they knew about the energy and electronics waste issues.

                                                                                                                                                      2. 0

                                                                                                                                                        This is mostly an issue for older chains using “Proof of Work” consensus like BTC and ETH

                                                                                                                                                        Basically all new Layer 1 chains these days (Solana, Terra, Cosmos, Avalanche, Polygon, Polkadot, Cardano etc.) use “Proof of Stake” which this is a non-issue for.

                                                                                                                                                        Also ETH is moving to “Proof of Stake” probably Q2 2022. It’s in progress, but difficult to migrate a behemoth like ETH when it’s already in production.

                                                                                                                                                        1. 1

                                                                                                                                                          This is partially the case; probably if BTC were using PoS the energy problem wouldn’t get much attention. But, while it wouldn’t be burning more oil than Ireland for it’s current level of activity, it still just scales really really poorly to have a huge network of nodes all verifying the same ledger. Redundancy buys you resiliency, but it also wastes resources. You don’t want more of it than you actually need.

                                                                                                                                                          When thinking about the future of the technology, it’s easy to wave away PoW, since solutions are known. But large scale ledgers are still doomed to be inefficient, just not so inefficient that it finds its way into mainstream news outlets.

                                                                                                                                                          1. 0

                                                                                                                                                            I mostly agree with you, and BTC is a bit doomed to become “digital gold” because of these inefficiencies.

                                                                                                                                                            But some of the newer PoS chains have a TPS comparable (and in some cases even surpassing) that of Visa and MasterCard, with negligible tx fees.

                                                                                                                                                            Pretty interesting stuff! I’m sure the tech will only continue to improve as it attracts more funding and smart engineers/researchers.

                                                                                                                                                            IMHO the biggest wart on crypto right now is BTC’s use of PoW, but there are some interesting approaches to that issue. See this thread about what the Swedish state-owned (!) energy company Vattenfall has to say on the topic: https://twitter.com/ercwl/status/1457114531314995206

                                                                                                                                                            TL;DR: PoW can be used as a buffer/load-balancer in a mostly fossil-free energy grid like ours.

                                                                                                                                                            1. 4

                                                                                                                                                              PoW can be used as a buffer/load-balancer in a mostly fossil-free energy grid like ours.

                                                                                                                                                              Vattenfall considered harmful when it comes to this. Of course they want to sell electricity. They were very slow at getting out of the coal business, only closing their last plants as late as two years ago. (Growing up in climate activism, Vattenfall was The Enemy for all their coal plants.) I do give them credit for finally getting out of coal, fifteen years after everybody else did, but the talk of PoW being good doesn’t become more true or credible for coming from them.

                                                                                                                                                              The world found out the other day that almost a fifth of the worlds BTC is mined in Kazakhstan on hard coal, the older, ever more inefficient coal plants. Ingen nyhetsgrej direkt because of course BTC is gonna thrive where electricity is underpriced because of externalities not being accounted for.

                                                                                                                                                              As I’ve said before:

                                                                                                                                                              Spending energy on proof of work is not decreasing any fossil burning. It’s just not.

                                                                                                                                                              As an analogy, let’s say I want my students to get safe jobs instead of risking their lives as guillotine testers and tightrope dancers.

                                                                                                                                                              I take a quick glance at the jobs section and see that hmm, safe jobs seem to be paying better over the long run, if not in the short run.

                                                                                                                                                              So I take my students’ paychecks and burn the money in a big old firepit in the yard.

                                                                                                                                                              They’re like “Miss, miss, why’d you burn all that cash!” I’m like “If I waste all your money, I’ll increase your demand for money, and the new money capital expenditure that is most efficient is gonna be safer jobs” they’re not gonna go “thank you miss! That makes sense! We’ll start working those safe desk jobs right away so you can pour more of that money in the firepit!”

                                                                                                                                                              Instead, they’re gonna go “OMG we’re starving and we need cash right now and all our money got burninated, we are gonna go have to go work as dynamite jugglers!”

                                                                                                                                                              They’re not gonna go “Thank you for saving money on paper by flushing the groceries directly into the toilet.”

                                                                                                                                                              Additionally, what’s often elided when discussing the electricity use of PoW is the e-waste. The actual hardware used to mine. That’s a huge climate impact for how quick the obsolescence and turnaround is.

                                                                                                                                                              1. 1

                                                                                                                                                                And now electricity is so expensive that the gvmt is gonna pop in 6000 000 000 SEK. To the extent that even one öre of that is because of PoW mining, that is severely messed up. Miners have ruthless disregard for externalities and the interconnectedness and interdependence of human activity. New inroads into plundering the Earth 💔.

                                                                                                                                                              2. 1

                                                                                                                                                                PoW can be used as a buffer/load-balancer in a mostly fossil-free energy grid like ours.

                                                                                                                                                                I can think of a few other methods for buffering, such as recharging gravity batteries. Waste heat is an undesirable side effect almost everywhere.

                                                                                                                                                            2. 1

                                                                                                                                                              You normally don’t see me complaining about PoS or other FBA variants, like MOB (which Moxie’s app Signal is involved in). I mean, as far as I can see it’s just as proprietary as PayPal and thus pretty pointless, but what I’m mostly complaining about is and has been PoW. You can often see me be pretty explicit about this in other threads. I’m not long in any cryptocurrency including PoS, but you’ll see me complaining about PoW specifically.

                                                                                                                                                              However, I am not going to gice ETH credit for being PoS before it is.

                                                                                                                                                              For example, Reddit is moving to the PoW version of ETH and therefore that’s not OK.