Threads for skyfaller

  1. 6

    100 versions later

    This seems to be playing a little loose with the facts. At some point Firefox changed their versioning system to match Chrome, I assume so that it wouldn’t sound like Firefox was older or behind Chrome in development. Firefox did not literally travel from 1.0 to 100. So it probably either has fewer or more than 100 versions, depending on how you count. UPDATE: OK I was wrong, and that was sloppy of me, I should have actually checked instead of relying on my flawed memory. There are in fact at least 100 versions of Firefox. Seems like there are probably more than 100, but it’s not misleading to say that there are 100 versions if there are more than 100.

    That said, this looks like a great release with useful features. Caption for picture-in-picture video seems helpful, and I’m intrigued by “Users can now choose preferred color schemes for websites.” On Android, they finally have HTTPS-only mode, so I can ditch the HTTPS Everywhere extension.

    1. 6

      Wikipedia lists 100 major versions from 1 to 100.

      https://en.m.wikipedia.org/wiki/Firefox_version_history

      What did happen is that Mozilla adopted a 4 week release cycle in 2019 while Chrome was on a 6 week cycle until Q3 2021.

      1. 4

        They didn’t change their version scheme, they increased their release cadence.

        1. 7

          They didn’t change their version scheme

          Oh, but they did. In the early days they used a more “traditional” way of using the second number, so we had 1.5, and 3.5, and 3.6. After 5.0 (if I’m reading Wikipedia correctly) they switched to increasing the major version for every release regardless of its perceived significance. So there were in fact more than 100 Firefox releases.

          https://en.wikipedia.org/wiki/Firefox_early_version_history

          1. 3

            I kinda dislike this “bump major version” every release scheme, since it robs me of the ability to visually determine what may have really changed. For example, v2.5 to v2.6 is a “safe” upgrade, while v2.5 to v3.0 potentially has breaking changes. Now moving from v99 to v100 to v101, well, gotta carefully read release notes every single time.

            Oracle did something similar with JDK. We were on JDK 6 for several years, then 7 and then 8, until they ingested steroids and now we are on JDK 18! :-) :-)

            1. 7

              Sure for libraries, languages and APIs, but Firefox is an application. What is a breaking change in an application?

              1. 4

                I got really bummed when Chromium dropped the ability to operate over X forwarding in SSH a few years ago, back before I ditched Chromium.

                1. 1

                  Changing the user interface (e.g. keyboard shortcuts) in backwards-incompatible ways, for one.

                  And while it’s true that “Firefox is an application”, it’s also effectively a library with an API that’s used by numerous extensions, which has also been broken by new releases sometimes.

                  1. 1

                    My take is that it is the APIs that should be versioned because applications may expose multiple APIs that change at different rates and the version numbers are typically of interest to the API consumers, but not to human users.

                    I don’t think UI changes should be versioned. Just seems like a way to generate arguments.

                2. 6

                  It doesn’t apply to consumer software like Firefox, really. It’s not a library for which you care if it’s compatible. I don’t think version numbers even matter for consumer software these days.

                  1. 5

                    Every release contains important security updates. Can’t really skip a version.

                    1. 1

                      Those are all backported to the ESR release, right? I’ve just noticed that my distro packages that; perhaps I should switch to it as a way to get the security fixes without the constant stream of CADT UI “improvements”…

                      1. 2

                        Most. Not all, because different features and such. You can compare the security advisories.

                  2. 1

                    Oh, yeah, I guess that’s right. I was focused in on when they changed the release cycle and didn’t think about changes earlier than that. Thank you.

              1. 9

                It is unfortunate that these two Lobster posts were merged together, as I agree that the twitter thread is an uninteresting rant, but I actually found the blog post informative, even if it is also a rant. I would like to upvote the blog post but now I have to upvote both, I guess.

                1. 2

                  This seems like a very important development for literate programming. How hard would it be to port this software (or the general approach) to:

                  • C++ (SerenityOS?)
                  • Rust
                  • Zig

                  And other passionate programming communities welcoming to newcomers?

                  How likely is it that this software would ever be rewritten in a more modern language? A gradual approach with Rust or Zig could be fun. On the other hand, it seems like Graham Nelson has put a great deal of effort towards replicating the benefit of those modern ecosystems, such as inbuild competing with cargo, so maybe there won’t be enough motivation to drive a rewrite, if e.g. memory safety isn’t sufficient.

                  How likely is it that this will drive adoption of literate programming techniques in the wider software ecosystem?

                  1. 5

                    I think it’s very unlikely to drive adoption of literate programming. The cross section of programmers and literary folks overlaps a lot with interactive fiction people, so it seems like it will thrive in this niche.

                    I think literate programming requires significantly more effort than other approaches, so it’s a bit like calligraphy. You don’t want to go to the effort for systems undergoing a lot of rapid change. And all the literate programs you can find are systems that like to stand independent of their surroundings, building a standalone universe, and they’re all change-resistant. The wider world is more oriented to somewhat disposable programs that derive most of their strength from their ever-changing environment. Where programming is more like gluing together other systems, it seems like expensive work that is unlikely to bear much fruit.

                  1. 1

                    For a while now I’ve been trying to buy used equipment from a few generations back. Unfortunately used is generally mutually exclusive from energy efficient, as most of the gains in efficiency are still actively being made in the newest devices.

                    1. 11

                      I think if you include embodied emissions, the energy use of older equipment doesn’t look so bad.

                      That said, there are two straightforward reasons for even the most eco-conscious to care about energy use of old hardware, aside from the embodied emissions:

                      • If you need a certain amount of processing power to do a task, newer hardware will spend less energy to provide that. (Is there some other way to do that task without that specific amount of processing?)
                      • If you’re trying to minimize your energy use to stay within a hard constraint, e.g. you’re living off the grid and your solar panel is only so big.
                      1. 3

                        If you need a certain amount of processing power to do a task, newer hardware will spend less energy to provide that. (Is there some other way to do that task without that specific amount of processing?)

                        Not as an opposition to your argument, I think there are plenty of cases when that makes sense as the task requires a base amount of processing power. But the more processing power we have the more the tasks expand to match the processing power available when we could do with less, so there’s a tradeoff there.

                        1. 2

                          If you need a certain amount of processing power to do a task, newer hardware will spend less energy to provide that. (Is there some other way to do that task without that specific amount of processing?)

                          I see that there needs to be alternatives though, you could delegate it to another older machine to do the task (e.g. a local fileserver) or depending on connectivity rent a machine in the cloud.

                          I was thinking about the former for a while in regards to video editing where there’s so much evangelism around owning the latest hardware when for many needs one could do fine with use of proxy files and some tooling to facilitate batch processing (to create proxy files or compress) & final rendering elsewhere.

                          1. 2

                            Thanks, I completely agree with all this.

                            A harder question to answer is what is my ownership of the embodied emissions as the buyer of a used piece of equipment. Does a valuable resale market on its own drive more purchases of new equipment? If it does, how much debt do I owe to the emissions used to create it.

                            Unfortunately it’s difficult or impossible to quantify what is better in real world decisions, so everyone has to make a judgement call.

                            1. 2

                              Does a valuable resale market on its own drive more purchases of new equipment? If it does, how much debt do I owe to the emissions used to create it.

                              This is a good point, I do know some people buy the latest Macbook Pro like every year and resell their old one. I’ve heard similar anecdotes about the relationship between fast fashion and secondhand clothing stores.

                              That said, I think any such effect increasing sales of new equipment/merch is probably offset by strengthening the resale market (and most likely the repair industry as well). A society that doesn’t insist on everything being new, that values maintenance, would be a better society. It would be nice to get some numbers on this though… someone must have studied this.

                              Unfortunately it’s difficult or impossible to quantify what is better in real world decisions, so everyone has to make a judgement call.

                              Difficult for individuals, certainly, but I don’t see why this should be more difficult to quantify than any other aspect of emissions (for professional researchers).

                        1. 5

                          Personal: framework laptop kitted with wifi, 1 tb nvme, zfs on root, and 32 gigs of ram on one stick (for easy upgrading later to 64). I still like it, would still pick it again.

                          Work: 2018 mbp 16 inches, 16 gigs of ram. Given a chance I’d upgrade to an M1. I thrash out of ram without really trying.

                          1. 1

                            What OS do you use? How is the battery life with non-windows?

                            I’ve heard there have been battery issues under Linux.

                            1. 3

                              As far as I know, the issue is with Tiger Lake being broken, not capable of entering certain sleep states. It should manifest itself on Windows too. I’ve stopped using sleep, instead I turn off my laptop every time lid is closed. Fortunately, startup time is really small.

                              1. 2

                                I’m using Fedora on my Framework, as that’s what Framework was recommending as having the best hardware support when I got it. (They now also bill Ubuntu as “Essentially fully functional out of the box.”)

                                The problem I was having was that the laptop would completely drain its battery with the lid closed in “s2idle” mode. I was able to fix this by switching to “deep” sleep, at the cost of it taking ~10 seconds to wake up, which has not really inconvenienced me. https://github.com/junaruga/framework-laptop-config/wiki/Battery-Life:-Change-sleep-mode-from-s2idle-to-deep

                                There are probably more advanced things I could do to improve battery life, but with that straightforward fix, it doesn’t lose more than 10-20% of battery charge if left sleeping unplugged overnight. That’s good enough to be usable for my purposes.

                                1. 1

                                  This seems correct. I tell it to go into deep sleep, but the battery drain when suspended is still too high. Three days unplugged at most.

                                  But I use my suspend to ram ability, and the battery drain there is zero. I get about 6 hours active usage if I squeeze on my entirely untuned Void Linux install. I’m comfortable using about 30 to 50 percent of the battery on my most common flight routes (2.5, 3.5 hours flight time)

                                2. 1

                                   I tell it to go into deep sleep, but the battery drain when suspended is still too high. Three days unplugged at most.

                                  But I use my suspend to ram ability, and the battery drain there is zero. I get about 6 hours active usage if I squeeze on my entirely untuned Void Linux install. I’m comfortable using about 30 to 50 percent of the battery on my most common flight routes (2.5, 3.5 hours flight time)

                              1. 6

                                I’m glad to see this option because I’m interested in declarative UIs in general.

                                On the other hand, a top problem with UIs (in Rust and elsewhere) is lack of accessibility. Getting a11y right is a difficult and time-consuming task, so it is understandable that new / experimental UIs are not able to prioritize a11y, but it makes actually using any of these UI frameworks for production software ethically questionable.

                                I suspect the Rust community in the near future would be better served by pouring effort into making one or two UI libraries accessible (perhaps druid, which is also declarative ui?) rather than making more and more UI libraries that exclude people. That said, if a shared accessibility approach like accesskit is able to make many different UI libraries accessible, that would be a very pleasant outcome, allowing more diversity in UIs while including people who rely on a11y.

                                1. 2

                                  Hi! Author here. I would suggest you contribute to access kit (or similar) so I’d have something mature to use. cheers!

                                  1. 5

                                    Forgive me if I misinterpret your brief and casual comment, but this seems like an example of a toxic habit in the open source community: responding to criticism with “well, why don’t you fix it?”

                                    I understand the impulse, and it’s not inherently bad. If framed well, invitations to contribute and improve software can be empowering. Among the strengths of FOSS are:

                                    • the ability to study how a program works. This includes seeing where a11y concerns arise, and where they could be addressed.
                                    • the ability to add fixes yourself. In a friendly community-oriented project, those fixes can easily be contributed upstream. Even given a hostile, uncooperative upstream, the community can exercise the right to fork and maintain their own fixes elsewhere.

                                    This means that people who are interested in an issue like a11y can learn to program in a practical fashion, even if in a limited way just to “scratch their itch”, and make the software work for them. This sort of agency is impossible in the world of proprietary software, where you have no choice but to lobby the software company and hope they think helping you is profitable.

                                    Unfortunately, such recommendations to write code yourself are often framed poorly, in an off-putting fashion that sounds more like “I do not care about your concerns and I am uninterested in welcoming you to the community.” Rather than reading like an invitation to make the world better for all, it reads like gatekeeping (if you can’t code, your opinion doesn’t matter) and dismissal.

                                    This is especially damning in the context of accessibility, where sometimes participating in something like software development is physically impossible, because the tools necessary for collaboration do not take accessibility needs into account.

                                    Right now, tools developed using your UI library would contribute to that problem.

                                    1. 3

                                      Hey, I’d love to do accessibility. The is just a really early version of this library. There’s also no internationalization yet. It’s totally an experimental proof-of-concept, and got more attention than I expected.

                                      1. 2

                                        Wait - you hijacked OPs post to talk about your agenda for accessibility, and they are the toxic one? Accessibility is a good thing. But your comment had absolutely nothing to do with their post. You were talking about accessibility in general, and guilt tripped a person trying something out in a new project.

                                        They are right. If this is something that you are so passionate about, go ahead and fix the problem. Don’t put down other people’s work.

                                        1. 1

                                          If this project had been posted without a software license, someone might have commented about repos lacking licenses being a general problem on GitHub. Would this have nothing to do with the project?

                                          1. 1

                                            Strawman argument, because that’s not what you did here. You didn’t reference the posted project in any way.

                                            Remember, it’s easy to criticize. Your comments are low-effort. If you want to improve accessibility, it’s not a very good strategy to criticize tiny proof of concept libraries. A better strategy would be to devote time, and most importantly code, towards your goal.

                                  1. 4

                                    For an alternate approach to create a static website for an album or mixtape that can be hosted anywhere, see thebaer/cdr (demo).

                                    1. 3

                                      This looks great, but it is missing the ability to sell music (or merch or anything), so not quite equivalent. I love a good mixtape, though.

                                      A similar static site approach that does seem to provide a way to send money (through Liberapay): https://codeberg.org/simonrepp/faircamp

                                      1. 2

                                        This is great! It reminds me a lot of opentape, itself a spin-off of the “original”, now defunct, muxtape.

                                      1. 1

                                        I have very high hope for this to get a startup behind it

                                        1. 1

                                          I think the author doesn’t plan to quit their day job, but hopefully we’ll see some of the ideas enter mainstream VCSes

                                          The closest startup-backed thing might be https://getsturdy.com/.

                                          1. 4

                                            I do talk to Sturdy folks and I don’t think they are solving the same problems that JJ solved.

                                            I think the closest companies i have seen any success around this space that is NOT a big players are: SourceHut, Heptapod. Especially the way Heptapod took the Gitlab FOSS and reimplemented the Gitaly GRPC layer was particularly genius.

                                            Same could be done with JJ, enabling a self-hosted Gitlab instance to run both Git and JJ in parallel. Thats how you get BIG customers with self-hosted monorepo to try out the product.

                                            1. 3

                                              Founder of Sturdy here. I’d say our focus is a bit different. I have been thinking a lot about coding workflows at work and how feedback is exchanged.

                                              I’m very interested in the idea of exchanging feedback early, just like pair-programming, but being able to do so asynchronously, like PR reviews.

                                              By the way, I wanted to mention, Sturdy is also open-source - https://github.com/sturdy-dev/sturdy

                                              1. 3

                                                I don’t wish to nitpick, I’m glad you mentioned it’s OSS because I will now consider your product.

                                                That said, it seems to be better described as open core, since “This repository contains both OSS-licensed and non-OSS-licensed files”, because you have an “Enterprise” version. I’m having difficulty telling exactly which features are available in the core OSS product vs. the Enterprise version, the first page of the docs mentions the OSS version is missing “OAuth, incremental migrations to Sturdy, etc” but I don’t see an exhaustive list anywhere.

                                                1. 4

                                                  The structure is - files that are under any directory named enterprise are enterprise, for example, this package https://github.com/sturdy-dev/sturdy/tree/main/api/pkg/queue/enterprise

                                                  We use Go build tags, and in this setup, one can’t accidentally build/link non-oss code if they don’t explicitly pass -tags enterprise. Perhaps the readme can make it more clear, thanks for this feedback!

                                                2. 1

                                                  OOC, in Sturdy is there any support for commit messages? How does annotate work as an operation? Assuming you don’t have commit messages, have you found that limiting for when you have to do code archaeology?

                                                  1. 1

                                                    It will produce a commit message with the text provided in the description box, so in that sense, you can do code archeology. What we call workspaces are like live pull requests, and they are ready, they produce one commit - a big emphasis is keeping the units of work small.

                                                    1. 1

                                                      Interesting. Is there a way to stack workspaces at all? I often find I end up writing my changes in reverse of the order they need to land in a repo.

                                                      1. 1

                                                        There is a mechanism for taking one or multiple hunks and ‘forking’ out in a new workspace with just those changes. Doing proper stacking is of huge interest to me (I used to do stacked PRs at a previous job). At the moment we are still thinking of what a good UI/UX would look like for it.

                                            1. 12

                                              I’m using a shorter version of the null favicon code, I believe one that I found from an answer further down on the same Stack Overflow post:

                                              <link rel=icon href=data:,>
                                              

                                              You can see it in action on my test page, I haven’t found any issues with it. I’m not sure what the extra stuff in OP’s null favicon would do.

                                              1. 4

                                                Now I’m trying to think why I didn’t go with that one in the first place…

                                                The difference seems to be defining the empty favicon to base64 encoding, then using the = for padding. At least that’s as much as I can figure out from

                                                https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs

                                                and

                                                https://stackoverflow.com/questions/6916805/why-does-a-base64-encoded-string-have-an-sign-at-the-end

                                                1. 3

                                                  Nitpick: According to RFC 4648, = (a single lone equal sign) is not valid Base64. See the test vectors available here: https://tools.ietf.org/html/rfc4648

                                                  On the other hand it probably doesn’t matter that much in this case.

                                                  1. 2

                                                    That was bothering me, thanks! It’ll go in a todo for now, but I’ve got a note about it on the page at least

                                              1. 2

                                                I feel like there must be some reasonable middle ground. IIRC, Debian has a very clear separation between free software and non-free software, doesn’t install non-free stuff by default, but if you decide you want non-free, you can toggle it on and gain the additional functionality. Having ethical defaults and making it clear when you’re compromising principles/hackability for some short-term usability benefit seems like a good way to maximize user empowerment.

                                                Why exactly can’t GNU projects Guix act like Debian? (Or my understanding of Debian, if I’ve gotten that wrong.) Can someone explain like I’m five?

                                                One of my top reasons for being passionate about FOSS is I am very worried about the climate crisis / ecological destruction, and I consider the right to repair + keeping old hardware functional to be vital to reducing energy use + e-waste. Refusing to interoperate with hardware produced by unscrupulous companies seems to me to interfere with my ethical commitments to fight climate change, insofar as it interferes with salvage computing and making more efficient use of the devices we have.

                                                1. 4

                                                  Well. There’s an unofficial guix channel called nonguix that packages some nonfree and binary software, particularly the mainline Linux kernel with all of its nonfree firmwareand Firefox nightly. They even recently started running a substitution server. The Guix manual and other resources gives you everything you need to know to add this channel. But there process of finding and addinf it are up to you. It isn’t discussed in any of the official guix channels or on the website. That’s probably as good as it’s going to get and it’s a solution that satisfies many guix users (myself included).

                                                  There is a solution in place, but the author isnt a fan.

                                                  1. 2

                                                    What I’m trying to get a better understanding of is why hiding the solution is ethically necessary. What is the moral gain from having a hidden solution passed around under the table? It reminds me of security through obscurity… ethics through obscurity? nonguix is ethical so long as it’s hard to find? I find it unconvincing as an ethical strategy, but perhaps I’m misunderstanding or missing something.

                                                    Another way to approach this is, what would it take to convince the project to just be public and transparent about the existence of this compromise? What are there exact objections, and are there any possible ways to satisfy them without obscurity?

                                                    1. 4

                                                      The “compromise” is unofficial. The Guix project proper doesn’t have anything to be up front about because non guix isn’t a GNU project. As far as moral gains go I believe you’re thinking too hard about it. GNU guix was made as a GNU project, it has been upfront about its stance on non free hardware. A user has the tools to add non free or proprietary software to their system but Guix doesn’t promote that use case.

                                                      Non guix as a project has goals to package things that will never be made available in the official guix channel. There’s some contributer overlap but ultimately it is it’s own entity.

                                                  2. 4

                                                    I’ll say more about compromises and ethics.

                                                    I can be very uncompromising at times. For example, I hate cars, and when I had to move house, I decided to move house entirely by electric bicycle + cargo trailer. Exactly one car load traveled from my old apartment to my new house (in an electric car), everything else was hauled by bike. I learned a lot about moving heavy and bulky objects by bike, about the various biking routes through my city, and had some good times with friends who joined in to help with the bike caravan. Most of all, I proved that moving 11 miles uphill by bike was doable, given the right tools, and therefore shorter, flatter bicycle moves should be considered feasible.

                                                    Shortly after finishing the bike move, my family sold a house a few states away and wanted to give me some furniture from it. Aside from being exhausted, it was not practical to move the furniture that distance by bike (although I did travel to pack up that house using only trains + bicycles). My only choices were to risk the furniture being thrown out (a horrifying waste), or to accept a moving truck. This felt ironic after all of the effort I had just gone through to avoid using a moving van.

                                                    Did accepting a moving truck in the less ideal instance invalidate all of the work I’d put into avoiding cars in my bicycle move? Did it erase what I learned from the experience? Am I a bad person because I compromised that time, when I was able to be uncompromising before? No. The world is a better place in some small way because of my efforts, and if bike moves like mine can be replicated, improved, and scaled up, we might have a better chance of averting climate disaster. The measurable harm of the emissions from that moving truck are undeniable, and if our civilization wants to have a future, we’ll have to (re)learn how to move more stuff over longer distances with much less emissions / resource use. (Why couldn’t I book a container on a train to move house instead of a truck, for instance? Or on a sail cargo ship?) But it’s not right to pin our collective societal failure on me.

                                                    Compromising is just recognizing my limitations as an individual, or even as a small group of individuals. Solving collective problems requires collective action, and while experimenting with purism can be valuable in order to imagine a better future and learn how to build it, we need to be kind to ourselves in dealing with problems that all of humanity had a hand in creating. The issues are bigger than we are, and it is hubris to think we can solve them alone. Trying to do so is a recipe for burnout and personal suffering for only marginal gain, your efforts will be more sustainable and replicable if you can operate less painfully.

                                                  1. 74

                                                    The fact that the NFT spec only stores an image URL on the blockchain, and no hash to verify the image, is just absolutely astounding. Moxie is more generous than I am; IMO it highlights the grift that NFTs are – like whoever threw it together gave no thought to security or longevity.

                                                    1. 28

                                                      Yeah to me this is the “tell” that the main thing driving it is other people’s FOMO money.

                                                      Basically software devs in this ecosystem realized they didn’t have to do their jobs to make money. The whole system keeps working even if you don’t do your job!!!

                                                      You just have to repeat the memes long enough, and it doesn’t matter if the tech actually does what it says it does, because nobody’s checking! Nobody really wants to stand up their own copies of these things and check if it works.

                                                      There’s little benefit in that. The benefit is talking about it and repeating it to your friends.


                                                      I was interested in IPFS before it grew the blockchain component. I went back the original paper, and it is genuinely a good idea, and something we still need: a cross between git and BitTorrent (it mentions this in the abstract). I have long wanted Debian repos, PyPI, CPAN, etc. to be stored in such a system, i.e. consistently versioned with metadata.

                                                      But it’s 6 years later, and when I go to look at it, apparently it just doesn’t work very well. And it probably won’t because it grew so many components. (Gall’s law: to get a big working system, you have to start from a small working system.)

                                                      https://news.ycombinator.com/item?id=20137918

                                                      So what should we expect of IPFS? At five years old, is this a project that’s usable ‘here and now’, as the homepage promised in 2017? Are all the parts in place, just waiting for web and application developers to see the light? Have the stumbling blocks I noticed in 2017 been smoothed over?

                                                      No

                                                      IPFS is still not usable for websites.

                                                      https://esteroids.medium.com/how-can-ipfs-reach-wide-adoption-42b9a5011bdf

                                                      As one commenter astutely put it, “IPFS struggles to host a plaintext bulletin board with logins like you’d find in the late 80s”


                                                      And to give some light on the other side … Despite having some interest in BitCoin since 2013 or so, I first bought it last year.

                                                      Because the founder of SciHub asked for donations in crypto on her site. https://en.wikipedia.org/wiki/Alexandra_Elbakyan

                                                      So I just did it via CoinBase and I suppose it worked. So I would say there’s non-zero number of real use cases for cryptocurrency and blockchain. I think IPFS started out as genuine too, but it basically got ruined as working tech by an influx of money and employees.

                                                      1. 11

                                                        The situation with IPFS also affected gittorrent, another combination of git and bittorrent. Blockchains are like fig trees; as they grow, they choke whatever software projects originally gave them structure and purpose.

                                                        1. 2

                                                          Hm what happened to it? It doesn’t look like very much code.


                                                          Thinking more about the original comment … To “steel man” the blockchain, I do think there is a place for regular old web apps to serve data from a blockchain. I don’t think that is inherently a bad architecture. You just have to be honest about it!

                                                          I think there will always be a place for money in the blockchain, however niche, as the Scihub example shows.

                                                          It’s more logical for an end user like me to use Coinbase, which is centralized, but that’s OK. (Also big irony: it relies on sending your driver’s license in for verification, so it’s building on top of US state regulations which they want to be free of.)

                                                          One viewpoint I heard is “Bitcoin is a settlement network, not a payment network”. That is, the logical end user is banks and companies like Coinbase, not consumers. It could make sense to have a two-tiered system.

                                                          (Although then you have the same problem that those banks are subject to regulation of the countries they operate in, so you’ve lost a lot of the purported benefit of blockchain. I think people will gradually come to understand this and a much smaller set of use cases will be ironed out.)

                                                          But I do think the logical evolution of blockchain is to evolve to be less “consumer” and more “enterprise”.

                                                          I think the problems with the centralization of the cloud are real, and while web3 is mostly a BS term, and it’s not really a solution as is, I can see this type of distributed consensus as a useful primitive for small but important parts of real systems.

                                                        2. 2

                                                          I believe that the Dat protocol and its successor Hypercore are both basically Bittorrent plus version control, but with no connection to blockchains or cryptocurrency that I know of. Please correct me if I’m incorrect :)

                                                          I think Beaker Browser is a really cool project that suggests what could be done with Hypercore, but unfortunately a lot of websites and apps that were designed for its first iteration using Dat didn’t succeed in making the transition to the Hypercore version. I think the tech change cost it some momentum / users. Hopefully it will build up steam again, but I’m afraid IPFS has stolen its thunder by providing similar tech plus a chance to get rich quick :(

                                                          1. 2

                                                            Dat is so good aside from one critical flaw (IMHO, anyway): the “spec” is more or less “whatever the version you pull from NPM right now does.” Yes, there is some additional documentation, and a running reference implementation is great, but going a decade+ without a compatible version in some environment other than Node is a pretty big handicap and IMHO a major oversight by the project owners.

                                                            Secure Scuttlebutt suffers from the same problem, and the “rewrite it in Rust” efforts for both are at best implicitly— if not explicitly, as in the most recent SSB -> Rust work — aimed at performance, not broad interop or adoption.

                                                            So neither one can effectively run without hundreds of MBs of JS packages, there’s no support for languages that offer better native platform integration or type safety…heck, they don’t even ship TS definitions, and the internal APIs are so idiosyncratic it’s extremely difficult to build new apps on the platform.

                                                            In a world where I had infinite time and attention to spend on an open software + network stack I would love to built a libdat or libssb that was straightforward to link in a Python project, or an iOS app, or really anything that can do normal C FFI. Alas, I don’t, so I haven’t. Maybe someday.

                                                            1. 2

                                                              Hm I heard of Dat a few years ago, but I didn’t know about Hypercore. Thanks for the pointer!

                                                              I think eventually we will get something like this … just because there is a need. In the meantime I might write my own with shell scripts invoking git, and then curl or BitTorrent :)

                                                              I forget which post I read this in, but there are really 2 kinds of “decentralized systems”, i.e. ones that don’t rely on “the cloud”:

                                                              1. Something like git, where it’s trivial to stand up your own. BitTorrent is also in this category. As well as a web server with Apache or Nginx.
                                                              2. Something like BitCoin where there’s no central node.

                                                              Notably, it’s not only hard to run your own Ethereum node, but you also don’t want to run your own Ethereum network!

                                                              So the word is overloaded, and they have very different architectures. I care more about the first kind. So really I don’t want a global file system like IPFS – I’d rather have distributed storage that runs on a few nodes, is easy to administer, etc.

                                                              1. 1

                                                                Whoops, it seems Beaker Browser is being discontinued: https://github.com/beakerbrowser/beaker/discussions/1944

                                                                I’m not surprised but I am really sad about this. I thought it had a lot of potential for building a resilient web that could e.g. handle network outages by making it trivial to continue sharing websites over a LAN. It seemed to be great at sharing static websites which are where I’m putting my development efforts these days, but it appears the developer was frustrated by this and wanted people to share web apps instead.

                                                                Agregore looks like it may be continuing on with support for Hypercore, but it also supports IPFS and I saw not interacting with Protocol Labs and their reliance on / promotion of cryptocurrency as a significant feature.

                                                                1. 1

                                                                  IPFS is a very pure “better BitTorrent” and the fact that some web3 stuff hosts content on IPFS should not taint the protocol, even if you happen to hate web3. Lots of web1 content on IPFS too, the protocol predates web3 by a lot, etc

                                                                  1. 4

                                                                    Part of the problem here is that “hosts content on IPFS” is a misnomer, for the same reason that things aren’t “hosted on BitTorrent”. IPFS is a distribution mechanism, not a storage mechanism (despite what their marketing implies), and so something can only be distributed through IPFS - it needs to be hosted somewhere else, and that “somewhere else” is left undefined by IPFS.

                                                                    That might sound like pedantry, but it has some crucial implications: it means that by default, the network cannot provide meaningfully better availability than BitTorrent can, which is to say the availability is really bad and unsuitable for hosting websites on. You could address this by seeding your content from a server, but then what have you really accomplished, other than a potential ‘download accelerator’ (which is again distribution, not storage)?

                                                                    1. 1

                                                                      which is to say the availability is really bad and unsuitable for hosting websites on. You could address this by seeding your content from a server

                                                                      This seems like a contradiction. Of course you cannot host an IPFS powered website without seeding it from somewhere! That doesn’t make availability bad or unsuitable any more than HTTP is bad or unsuitable. What I love about IPFS is that I can pin my websites on any computer connected to the internet, and usually much more than one! No special setup is needed, and if I want to change what computer pins the content I can easily do so at any time without changing any settings anywhere else. It just seamlessly keeps working.

                                                                2. 1
                                                                  IPFS is still not usable for websites.
                                                                  

                                                                  I have been using IPFS for websites for years. It works great.

                                                                  1. 1

                                                                    Where do you persist user-mutable state and how?

                                                                    1. 2

                                                                      Websites do not have user-mutable state. I guess if you want your blog to have a user theme toggle or some other appy feature a website might want you can use a cookie or localStorage just as you would on the regular web.

                                                                3. 7

                                                                  Moxie is more generous than I am

                                                                  Indeed. That’s what makes this a balanced critique. Good-faith.

                                                                  1. 44

                                                                    I don’t think bad faith is necessary to provide valid criticism. The fact that NFTs are sold to the public as ‘stored forever in the blockchain’ and the reality is that there’s no actual mechanism storing anything other than a URL pointing to the content is almost by definition a scam. If I was going around selling ownership contracts to a house I don’t own, I’d be charged with fraud.

                                                                    1. 4

                                                                      I don’t think bad faith is necessary to provide valid criticism

                                                                      That’s not what I meant. When @tao_oat said “Moxie is more generous than I am”, the difference between a “generous” take and a “not generous” take can often be the assumption of good faith. Are you trying to take a keep a neutral eye while evaluating this argument, or are you just looking for more evidence confirm your existing bias, that’s the difference between having good faith or approaching a topic cynically.

                                                                      I think you’re prejudiced against NFTs and are just looking to criticize them. That’s fine, I think NFTs being used to attest art and their associated speculation is pretty stupid, so you aren’t gonna find me defending any of this. I also agree with each of Moxie’s criticisms. That said, I just don’t think the sort of cynical, charged rhetoric in this thread is indicative of good faith. Your comment even assumes a position from me that I don’t have. Good faith keeps discussions intellectually interesting IMO. I don’t have that much more to say here, I’ll let everyone else continue ranting in anger.

                                                                      1. 4

                                                                        FWIW I agree with you – on doing more research, a good-faith take would be that whoever wrote the ERC721 spec might have seen the promise of an image that changes over time. They might not have foreseen that art collectibles would be the primary driver behind NFTs. In the spec they write:

                                                                        A mechanism is provided to associate NFTs with URIs. We expect that many implementations will take advantage of this to provide metadata for each NFT. The image size recommendation is taken from Instagram, they probably know much about image usability. The URI MAY be mutable (i.e. it changes from time to time). We considered an NFT representing ownership of a house, in this case metadata about the house (image, occupants, etc.) can naturally change.

                                                                        (Though having a sentence like “The image size recommendation is taken from Instagram, they probably know much about image usability” in an official spec doesn’t exactly scream professionalism or care to me).

                                                                        I should direct my critique against those who push art NFTs without mentioning the serious technical issues, and not the spec authors themselves.

                                                                        I think the broader question is: when you keep seeing red flags in an ecosystem/community how long can or should you make an effort to retain good faith?

                                                                        1. 1

                                                                          I think the broader question is: when you keep seeing red flags in an ecosystem/community how long can or should you make an effort to retain good faith?

                                                                          I think that’s the wrong question to ask. Technology usually has two components. One is the design and engineering that goes into it. Think with XMPP the protocol and standards used to send/receive messages. The other is adoption: this can be success in number of users, its usage, or its revenue. There’s plenty of technologies, ones much less complicated and more “clearly” incremental than a blockchain, that have failed purely because their adoption was lacking, despite years of attempts to make themselves relevant. Examples here are Laserdisc, Betamax, HD-DVD, and more. Adoption of a technology has much more to do with culture, user-experience, or business considerations than the engineering behind the technology. These questions you’re asking, about whether the space is filled with hucksters and such, are questions affecting the adoption of the technology. Discussions concerning the adoption of a technology are much more complicated (well IMO at least, probably because I’m an engineer first and foremost!) than discussions dealing with the design and engineering behind a technology, and also off-topic for Lobsters (probably due to the challenge of dealing with the nature of those discussions properly.) I will say though, a space filled with fraud doesn’t exactly instill confidence, especially when it’s a person’s money or other resources on the line…

                                                                          But I also don’t think it’s necessary to get inordinately angry at the blockchain space. Businesses are made and die every day, some full of hucksters, others just blatant copies of existing businesses. Community projects are made and die every day. It’s the churn of human creativity. If humans knew exactly which projects would succeed and which would fail, then we’d already have solved our problems, wouldn’t we?

                                                                      2. 3

                                                                        I don’t really care for collectibles, real or virtual, but to be fair the NFT is stored in the blockchain. The media is not the NFT, just an associated decoration.

                                                                        1. 24

                                                                          This sounds like a solution looking for a problem, and then someone inventing a problem for the solution to fix. One thing I’ll give ‘crypto bros’ - specially those pumping the NFT racket - is that they’ve managed to befuddle the world into thinking they created something actually revolutionary. Every single problem the article describes is stuff anyone who understands this technology works could’ve guessed from day 1. Ultimately ‘web3’ is just a nebulous term that means nothing and everything, depending on who you ask and what time you ask them.

                                                                          1. 2

                                                                            Sure, I don’t collect baseball or magic cards either, so the while thing doesn’t connect with me personally.

                                                                          2. 18

                                                                            But nobody says that an NFT is a URL, i.e. a string starting with “https://…” Because nobody would find such a string, in itself, interesting enough to pay money for.

                                                                            The scam is that people describe and sell NFTs as being a file, or even a unique fingerprint of such a file, when they’re no such thing.

                                                                            It’s like selling you a painting, only it turns out you only bought the frame, and the gallery reserves the right to swap out the canvas for another one, or just take it away, at their pleasure.

                                                                            1. 8

                                                                              Yeah but the funny thing is: who cares if it was actually pinned to the right file?

                                                                              What’s to stop me from minting another NFT for the same artwork and selling it? I just have to convince enough people it’s valuable.

                                                                              As far as I can tell, the thing that makes NFTs “work” in any sense is specific pockets of social media, e.g. Twitter. Reality is socially constructed.

                                                                              Like the artist Beeple has to go on Twitter and say he’s selling some number that represents art that he created.

                                                                              https://twitter.com/beeple

                                                                              And other people witness that and they believe it is him, i.e. the person who keeps creating all the enjoyable pictures. Twitter and other centralized social networks provide some continuity of identity. lobste.rs does this too.

                                                                              If somebody else tries to sell an NFT of his artwork, maybe he can use Twitter to shame them or whatever. That’s about it.


                                                                              As far as I can see, social media is really the thing that matters, and not anything in the blockchain. It seems clear that no end users every really look at the blockchain and verify things. (Hell I didn’t when I sent the donation to the Scihub founder. Did it really get sent? I just trusted Coinbase.)

                                                                              So I think there’s no notion of identity, exclusivity, or authenticity on the blockchain. You always have to make some jump between the number/hash and the “thing”, and other people can make that jump too.

                                                                              I’d be interested in any arguments otherwise … I have never actually used NFTs or Ethereum, but it seems like there is an obvious hole either way.

                                                                              i.e. the blockchain is really built on trust built by social media; it can’t stand alone. Social media is very powerful – the former US president got elected in a large part because of it, and then he got blocked from it with huge consequences, and now he wishes he had his own Twitter and there are multiple efforts in that direction, etc. It has a lot of real consequences in the world, and is intimately connected to it. Blockchain doesn’t have that property at all!

                                                                              1. 9

                                                                                Right — I can just touch one pixel in the image, or add a no-op EXIF tag, and suddenly it’s a different file with a different digest that I can sell as a different NFT.

                                                                                That was my day-one objection to NFTs. In terms of my analogy, it’s like buying a limited edition print where I only have the artist’s promise she won’t issue more. But the realization that it’s just a URL makes them orders of magnitude sillier and more scam-like.

                                                                                1. 8

                                                                                  Yeah this has been beat to death, but I was reading conversations earlier this year, and one analogy is the company that used to sell naming rights to the stars:

                                                                                  https://news.ycombinator.com/item?id=26488430

                                                                                  Like they would sell you a certificate that a star was named after you.

                                                                                  Never mind that anybody can rename the same star for a different person, and sell that. Nobody ever used those names – not even the one scientist who might have a picture of that star or care about it. (Again, reality is socially constructed.)


                                                                                  Another problem is that you’re literally just getting the NFT number itself. You’re not getting the copyright to that work !!!

                                                                                  Like you could buy the NFT, and then the artist can sell the actual artwork to somebody else, which IS enforceable by copyright law !!! But your NFT isn’t.

                                                                                  Also with music, there are separate rights to perform songs in public places, to play recordings at bars, and to publish the sheet music. You do NOT get that if you buy an NFT of a song.

                                                                                  In fact I remember seeing a VC blog or podcast where this was brought up ….

                                                                                  And so that basically proves that it doesn’t matter if the NFT has an immutable hash or not. You’re buying a useless pointer to a thing, not anything related to the thing itself … so it doesn’t matter what’s in it!

                                                                              2. 3

                                                                                I don’t understand this sticking point. An NFT is just a provably-unique (i.e. non-fungible) thing maintained on a chain. What it maps to off-chain, or how it does so, is basically incidental. It’s a contract, meaningful only in a specific domain: for legal contracts, that domain is typically a government jurisdiction; for NFTs, it’s the chain on which they exist.

                                                                                1. 4

                                                                                  I think it’s because the loudest use is for art collectibles so people get hung up on that. For me the best analogy is baseball cards. No one would say “but the card doesn’t contain an actual baseball player! You don’t get the right to boss the real human around!” But somehow NFTs the detractors think should “be” the art or “be” the copyright in a way that they were never intended to be.

                                                                                  1. 7

                                                                                    The problem with that analogy is that the issuer of the baseball card could, if it were an NFT, blank the contents of the card or change it to something else at any point. If baseball cards had that property, would people trade them? If a baseball card just had a QR code on it that let you go to a web page of stats about the player, would they be as valuable? Would they keep being valuable once some of the servers hosting the stats went offline (or would ones pointing to dead URLs become more valuable?)? What about when someone buys the domain for a popular card and points it at a porn site?

                                                                                    1. 2

                                                                                      The problem with that analogy is that the issuer of the baseball card could, if it were an NFT, blank the contents of the card or change it to something else at any point.

                                                                                      In this analogy the NFT, the contract which exists on-chain, is itself the baseball card. The fact that one of the metadata fields of the NFT is a URL that may or may not resolve is more or less incidental.

                                                                                      Would they keep being valuable once some of the servers hosting the stats went offline (or would ones pointing to dead URLs become more valuable?)?

                                                                                      The important properties of NFTs are that, in the context of the chain on which they exist, they’re provably unique, non-fungible, and owned. A broken URL in the metadata doesn’t impact those properties. Of course, value is determined by the market, and the crypto markets are wildly irrational, so you may have a point.

                                                                                      1. 1

                                                                                        In this analogy the NFT, the contract which exists on-chain, is itself the baseball card. The fact that one of the metadata fields of the NFT is a URL that may or may not resolve is more or less incidental.

                                                                                        I’ll buy this, but practically speaking, what then is the use of the NFT? If you’re saying the URL isn’t important, what exactly are you buying?

                                                                                        1. 1

                                                                                          You’re buying something which is guaranteed to be unique and non-fungible, in the context of a specific chain. There is no intrinsic value, any more than a specific painting or whatever is valuable. The value relies on the market belief that the NFT’s chain-specific scarcity is valuable.

                                                                                          It’s kind of like a deed. The property isn’t legally yours until the relevant legal regime accepts that you own the deed. The deed isn’t the property but it uniquely represents the property in a specific domain.

                                                                                          But like value is not the only interesting thing about NFTs. The non-fungibility itself is novel and opens the door to lots of interesting things.

                                                                                    2. 2
                                                                                    3. 2

                                                                                      Sure, but that is absolutely not how NFTs are understood by 99.9999% of people. That mismatch is the scam.

                                                                            2. 3

                                                                              The fact that the NFT spec only stores an image URL on the blockchain

                                                                              This is not universally true. A lot of NFT projects use IPFS, Filecoin or similar decentralized storage.

                                                                              But for the ones using Amazon S3 it’s kinda hilarious, yes

                                                                              1. 3

                                                                                A lot of NFT projects use IPFS, Filecoin or similar decentralized storage.

                                                                                These solutions have a similar problem as with Bittorrent. The stuff that’s not popular won’t get seeded/hosted. It just adds one layer of indirection to the storage issue, but once the business that’s pushing NFTs goes out of business these files are probably not going to get shared.

                                                                                1. 1

                                                                                  I don’t see how that’s a problem in this context? If the URL is IPFS you have a hash, which was the objection being replied to here.

                                                                                  1. 1

                                                                                    My understanding of how this works is: the NFT is an object on the blockchain, whose rules enforce its uniqueness. We’re gonna assume the chain is going to be continued to be mined and therefore “exist” indefinitely.

                                                                                    The NFT contains a hash denoting a location on IPFS. Accessing it using an IPFS gateway will show the user the JPG portraying whatever they paid $2.4M in funny money for. But that JPG has to reside on disk somewhere. And when the company or user goes out of business or the VPS is decommissioned or they get kicked out of AWS for scamming, where is the JPG?

                                                                                    Of course, concerned parties can… right click on the image, save it to disk, and then use that as a source of data for the IPFS hash, but that does kind of put a lie to the popular imagination on how all this nonsense works.

                                                                                    1. 2

                                                                                      You can become a node in the IPFS network yourself, and host just the image.

                                                                                      1. 1

                                                                                        Just like the baseball player the “hash” (picture) on a baseball card may die, so may the hosting for an NFTs associated JPG go away. Of course if you want to preserve it you can simply pin it yourself and thus your own computer becomes a host for it. So it’s actually more resiliant than the baseball player :). The NFT is not the image, the image is an associated decoration

                                                                              1. 5

                                                                                A couple interesting projects I’ve come across written in Crystal:

                                                                                1. 3

                                                                                  There is also invidious which is a very nice alternative frontend for Youtube !

                                                                                  1. 1

                                                                                    Hmm, that’s only two data points, but it seems like a trend to write these alternate frontends in Crystal. I wonder why that would be? Is it because they might have written it in Ruby on Rails back in the day, and Crystal has some similar ergonomics? Or nostalgia / familiarity among a specific demographic, in other words?

                                                                                1. 4

                                                                                  I wish there were lighter alternatives to the full-blown Mastodon server when you want to self-host a (small?) federated news channel… 🤔

                                                                                  It’s good to see Gitea on the fediverse still, and the announce that they received a grant to work on the project makes it better. Well done.

                                                                                  1. 9

                                                                                    There’s Pleroma, which seems much lighter and more intended for smaller deployments.

                                                                                    1. 3

                                                                                      Even for pleroma you need a postgresql, I am expecting a rust with sqlite as db with api that’s compatible with pleroma.

                                                                                      1. 1

                                                                                        I have just given up on trying to make it run again. Pleroma is an endless source of pain. It’s bloated as hell.

                                                                                        An actual option would be more like https://humungus.tedunangst.com/r/honk

                                                                                      2. 14

                                                                                        There’s also the more whimsical honk: https://honk.tedunangst.com/

                                                                                        It’s written in Go, rather minimalist and lightweight.

                                                                                        Frankly one barrier holding me back from trying it is they’re using Mercurial for version control, and I barely understand git so I’m not eager to half-learn some other system. I’ll probably get around to it eventually.

                                                                                        EDIT: Given it has libsqlite3 as a dependency, I’m assuming it uses SQLite for its database.

                                                                                        1. 7

                                                                                          @tedu literally just publishes tarballs; you don’t need to care about the SCM whatsoever.

                                                                                          1. 3

                                                                                            Fair point, I was assuming I would want to hack on it at some point, but it should be perfectly usable without modifying the source yourself.

                                                                                          2. 6

                                                                                            Mercurial is 100x more user friendly than git, don’t be afraid! For a long time I dreamt of an alternative timeline, where Mercurial won the lottery of history and DVCS is just a thing silently humming in the background, while so obviously intuitive people don’t really need to think about it in their day-to-day. But eventually I accepted the reality and grew to respect and appreciate the fickle tool that’s now standard instead, having learnt the contorted gestures required to hold it such that I don’t gain and more deep scars, and to keep my attention level always high enough and movement speed slow enough so as to usually avoid even the passive-aggressive light bruises and smacks it considers “expression of affection”.

                                                                                            1. 7

                                                                                              Off topic: when it comes to VCS dreams, I don’t want Mercurial to come back, I want Pijul to win.

                                                                                              1. 1

                                                                                                What are the perks with it that you prefer over other solutions?

                                                                                                1. 3

                                                                                                  It makes collaboration and LTS branch maintenance considerably easier because any two patches that could be made independently can be applied independently in any order. Darcs had that many years ago, but never gained popularity due to its low performance. Pijul developers found a way to make that fast.

                                                                                                  1. 1

                                                                                                    Ohh, wow, it has the darcs thing?? I had no idea!

                                                                                                    1. 1

                                                                                                      Is this like hg graft?

                                                                                                2. 1

                                                                                                  I’d like to see the end user usability study that concluded Mercurial was the nice round figure of exactly “100× more user friendly that Git” as a result.

                                                                                                  1. 1

                                                                                                    Ouch, sorry; I sincerely only meant this as a subjective opinion and a rhetoric device; obvious as it may sound to you, it honestly didn’t even occur to me that it could be taken as a solid number; only now that you wrote I see this possibility, so I now realize it would be better if I at least prefixed it with an “IMO” or an “I find it…”; sorry again; ehh, I find again and again that this whole language thing is such a fickle beast and lossy protocol when trying to express things in my head, never ceasing to surprise me.

                                                                                                3. 1

                                                                                                  The nice thing about Mercurial is that there’s nothing to learn when you’re first getting started because it has a reasonable CLI UI. Don’t hesitate to try it.

                                                                                                4. 6

                                                                                                  I wish there were lighter alternatives to the full-blown Mastodon server when you want to self-host a (small?) federated news channel

                                                                                                  Same. I currently run Pleroma but compared to most other things I run it’s huge. I’ve been keeping a close eye on the https://github.com/superseriousbusiness/gotosocial project. It’s still in the early stage but they made an initial release last year and it looks promising.

                                                                                                  1. 1

                                                                                                    That’s a very interesting perspective, thanks.

                                                                                                    Lately I find myself wishing somebody would combine the “how to get off Google” genre of blog post with a “why language X is awesome” genre to create a “how to self-host/federate a whole lot of software using language X and minimal libraries”. There’s significant operational and security value in minimizing package dependencies. If you happen to be using lots of Golang services on your server that would be a very interesting case study.

                                                                                                1. 3

                                                                                                  I feel compelled to mention “hydra hosting”, where you have multiple remotes of equal status: https://seirdy.one/2020/11/18/git-workflow-1.html

                                                                                                  I haven’t tried this yet, in part because if e.g. your issues are not stored in your git repo, in practice the primary repo would be wherever you file your bugs. I’ve been considering storing my issues in git using https://github.com/MichaelMure/git-bug which would make all copies of the git repo more interchangeable. If I did that, hydra hosting starts to sound more attractive. One thing holding me back is that it doesn’t appear to have a SourceHut bridge yet.

                                                                                                  1. 2

                                                                                                    I feel like I’ve been looking for this term ‘hydra hosting’. My someday project has been how to approach this for files (not just git repos) using git-annex because it supports multiple ‘remotes’ that can have varying forms of state compared to a traditional serial mirroring approach. Only way I see it being practical though is through more ui-level interfaces for git-annex like https://github.com/andrewringler/git-annex-turtle (macos) supported on other operating systems.

                                                                                                  1. 20

                                                                                                    Thermonuclear take: Why use a “TUI”? You’re crudely imitating a real GUI with the crippling limitations of a vt220, when you’re in an environment that can almost certainly handle a real GUI.

                                                                                                    1. 17

                                                                                                      The biggest reasons for me:

                                                                                                      • Low resource usage
                                                                                                      • I can run it on a different machine and SSH to it (e.g. IRC bouncer)

                                                                                                      (And for a combination of those two: I can run it on a low-powered machine like my home raspberry pi server…)

                                                                                                      1. 7

                                                                                                        I’ve found that the richest TUIs are often very CPU heavy. Redrawing TUIs seems much more expensive than updating GUIs. It’s not very surprising since they’re not really meant for selective updates unlike current graphical technologies.

                                                                                                      2. 5

                                                                                                        Terminals are an excellent example of a mixed bag. There’s a lot about terminals that is not great, perhaps most importantly the use of inband signalling for control sequences. That said, they’re also a testament to what we can achieve when we avoid constantly reinventing everything all the time.

                                                                                                        There are absolutely limitations in the medium, but the limitations aren’t crippling or nobody would be getting anything done with terminal-based software. This is clearly just not true; people use a lot of terminal-based software to great effect all the time. Unlike most GUI frameworks, one even has a reasonable chance of building a piece of software that works the same way on lots of different platforms and over low-bandwidth or high-latency remote links.

                                                                                                        1. 9

                                                                                                          How are modern terminals not a case of reinventing? They’ve taken the old-school VT100 with its escape sequences and bolted on colors (several times), bold/italic/wide characters, mouse support, and so on. All of this in parallel with the development of GUIs, and mostly while running on top of an actual GUI.

                                                                                                          I’m not denying there’s a benefit to having richer I/O in a CLI process where you’re in a terminal anyway, but a lot of the fad for TUI apps (Spotify? Really?) seems to me like hairshirt computing and retro fetishization.

                                                                                                          If you’d asked 1986 me, sitting at my VT220 on a serial line to a VAX, whether I’d rather have a color terminal with a mouse or a Mac/Linux/Windows GUI desktop, I’d have thought you were crazy for even offering the first one.

                                                                                                          1. 5

                                                                                                            How are modern terminals not a case of reinventing? They’ve taken the old-school VT100 with its escape sequences and bolted on colors (several times), bold/italic/wide characters, mouse support, and so on. All of this in parallel with the development of GUIs, and mostly while running on top of an actual GUI.

                                                                                                            I would not consider it reinventing because in many cases, at least when done well, you can still use these modern applications on an actual VT220. Obviously that hardware doesn’t provide mouse input, and is a monochrome-only device; but the control sequences for each successive new wave of colour support have generally been crafted to be correctly ignored by earlier or less capable terminals and emulators. Again, it’s not perfect, but it’s nonetheless an impressive display of stable designs: backwards compatibility and long-term incremental improvement with tangible results for users.

                                                                                                            I’m not denying there’s a benefit to having richer I/O in a CLI process where you’re in a terminal anyway, but a lot of the fad for TUI apps (Spotify? Really?) seems to me like hairshirt computing and retro fetishization.

                                                                                                            I’m not sure what you mean by “hairshirt” but it certainly sounds like intentionally loaded, pejorative language. I have been using the desktop Spotify application for a while, and it uses a lot of resources to be impressively sluggish and unreliable. I expect a terminal-based client would probably feel snappy and meet my needs. Certainly Weechat does a lot better for me than the graphical Slack or Element clients do.

                                                                                                            I’m not going to make you use any of this software, but I would suggest that even if it is only a “fad”, who cares? If it makes people happy, and it hurts nobody, then people should probably just do it. Both graphical bitmap displays and character-cell terminals have been around for a long time; they both have pros and cons, and I don’t expect one size will ever fit all users or applications.

                                                                                                        2. 4

                                                                                                          That’s a very good question, honestly.

                                                                                                          However, I haven’t seen any kind of graphical application (like, using the whole set of features gotten from full access to visual display) yet still being competely usable from keyboard only. Except Emacs, which is a very nice example, but I intentionally wanted to avoid any kind of text editors in this discussion.

                                                                                                          After all, if I even stumble upon some sort of UI framework including full keyboard operation in REPL-style maner + shortcuts, showing various graphical data types (interactive tables, charts, data frames, scrollable windows, etc.) I’ll definitely test it thoroughly as long as it’s able to be shipped onto customers’ desktops (so yeah, Arcan is a suggestion, but not really fitting in current model of application deployment).

                                                                                                          1. 6

                                                                                                            Most GUI toolkits can be operated by keyboard? Windows was designed to be usable without a mouse, for instance.

                                                                                                            I do note that GUI vs. CLI (and other things like mouse/keyboard dependency) isn’t a dichotomy. See: CLIM.

                                                                                                            1. 1

                                                                                                              A couple examples of the top of my head (though I’m not trying to make the case that all GUI apps can be driven this way, and there are tons of terrible GUI apps out there) that do offer full keyboard operation:

                                                                                                              • IntelliJ IDEs
                                                                                                              • Pan newsreader
                                                                                                              • Nautilus file browser
                                                                                                              • Evince PDF reader
                                                                                                              • KeePassX

                                                                                                              Those are just some apps I regularly use with no mouse usage at all.

                                                                                                              1. 1

                                                                                                                Most well-implemented Mac apps can be used keyboard-only, thanks to Apple’s accessibility features and lesser-known keyboard shortcuts like those for activating the menu bar.

                                                                                                              2. 3

                                                                                                                I think it’s for the same reason people write web GUI even if native GUI is generally superior.

                                                                                                                1. 2

                                                                                                                  If I really mess up my Linux computer and I can’t get my window manager / X11 / Wayland to run, I can still get stuff done in TUIs while I attempt to fix it.

                                                                                                                  Also, while others point out low resource usage, I’ll specifically mention lack of GPU acceleration as a situation where I’d rather use a TUI. For example, software support for the GPU on my MNT Reform is spotty, which means some GUIs are painfully slow (e.g. Firefox crawls because WebRender doesn’t support the GPU), but there’s no noticeable difference in my terminal emulator.

                                                                                                                  1. 1

                                                                                                                    I currently do all my work sshed into my desktop in the office (combination of wfh and work’s security policies which mean I can’t access the code on my laptop). TUIs are great for that.

                                                                                                                    1. 1

                                                                                                                      Because TUI might be esoteric enough to avoid the attentions that might lead it into the same CADT that X11 got?

                                                                                                                      1. 4

                                                                                                                        Unix retrofetishists love TUI stuff, so no.

                                                                                                                        Besides, ncurses and the VT isn’t much better than X API-wise, anyways.

                                                                                                                        1. 1

                                                                                                                          Guess that’s true. Still want to shake my stick at them until they get off the grass.

                                                                                                                    1. 2

                                                                                                                      I realize that bringing this up may bog us down in some frustrating discourse about political correctness, but I do think that a serious barrier to bringing back finger is its name. Juvenile jokes about fingering someone are inevitable (“oh, when I said I want to finger her, I just meant the social network!”), and may contribute to a hostile environment for people with vulvas at a point in history where we should really know better.

                                                                                                                      If people are serious about bringing back the finger protocol, as some have become serious about resurrecting gopher, can we prioritize the “name” alias, or rewrite it in Rust and call it something clever and self-referential like “digits” that less closely resembles a sex act in English?

                                                                                                                      1. 12

                                                                                                                        or rewrite it in Rust and call it something clever and self-referential like “digits” that less closely resembles a sex act in English?

                                                                                                                        Or we could just be a little less jumpy about things in general. Especially as “finger” also has relevant and entirely non-sexual etymology as well:

                                                                                                                        The term “finger” has a definition of “to snitch” or “to identify”

                                                                                                                        FWIW I don’t like the phrase political correctness, as it’s been diluted beyond useful meaning. I’d argue that this isn’t a case of it, either: properly, it refers to whether a fact is politically safe to express or act upon. “Is Lysenkoism correct, Comrade?” “It doesn’t matter; it’s politically correct.”

                                                                                                                        So I think the real issue here is of what constitutes hypersensitivity to sexual terms - or even terms that could be interpreted as sexual; I’d be willing to bet that the author(s) of finger intended it as a double entendre.

                                                                                                                        1. 3

                                                                                                                          I don’t think this is about jumpiness as much as it is caring about people who have an experience different than your own.

                                                                                                                          There’s no question there’s a group of people to whom language around “fingering” causes discomfort and/or painful memories. I’m not sure what the size of that group is (maybe it’s small!), but it’s also unquestionably disproportionately women.

                                                                                                                          Since we’re trying to make software a more welcoming place for underrepresented groups, like women, it seems to me that @skyfaller is asking if this is a conversation we should have.

                                                                                                                          Meanwhile, it seems to me that you’re saying (a) you can’t imagine being in that group of people and that group of people should get over it, and moreover (b) the conversation is illegitimate.

                                                                                                                          The problem with the internet is how many people are now reachable. Is it hypersensitivity if you cause many thousands of people distress, even if the denominator is much much larger? If choosing your words empathetically is akin to censorship to you (Lysenkoism, comrade), I don’t know what to say. (edit: I’m sorry, I misread; I see you’re saying it’s not this. If anything I guess I just take issue with calling it hypersensitivity as opposed to discussing how much we should be sensitive.)

                                                                                                                          1. 10

                                                                                                                            The problem with the internet is how many people are now reachable. Is it hypersensitivity if you cause many thousands of people distress, even if the denominator is much much larger?

                                                                                                                            It’s hypersensitivity to be caused distress by the word finger. I’m sorry, but it’s silly to pretend otherwise.

                                                                                                                            1. 2

                                                                                                                              Another “I can’t imagine this bothering me” vote.

                                                                                                                              1. 3

                                                                                                                                But this reasoning is circular without some objectivity. You must be making some value judgments yourself without consulting an opinion panel, or “having a discussion”.

                                                                                                                            2. 4

                                                                                                                              If people get offended by something, I most certainly don’t care.

                                                                                                                              1. 3

                                                                                                                                I will first say that I love your thoughtfulness and your willingness to reconsider in the middle of a discussion. That’s what this should all be about. Kudos.

                                                                                                                                That being said, my inner Izzit jumped at this:

                                                                                                                                I’m not sure what the size of that group is (maybe it’s small!), but it’s also unquestionably disproportionately women.

                                                                                                                                Is it though? Can ‘men’ (whatever that means) not get fingered?

                                                                                                                                It does not invalidate your point that we need to be thoughtful and conscious in our language, but even when arguing for thoughtfulness, we can still be blind to our own bias (or ‘blind to our own view of reality shaped by our own lived experiences’).

                                                                                                                                All that to say - let’s have these discussions, but go out of our way to have them with people actually affected, whose version of reality looks nothing like ours - with humility.

                                                                                                                                Side story - probably unrelated: I feel violated when anyone on my team uses the word “bang”. I honestly feel enraged and it takes everything in my power to not throw my computer across the room anytime I’m invited to “bang this out with someone,” or when a team member relates how they solved a problem by staying up late and “banging it out.”

                                                                                                                                I have not said anything to these people. I probably never will. For reasons that you may or may not be able to imagine, based on your own lived experiences.

                                                                                                                                I honestly have no idea if they are aware of what it sounds like. I know for a fact they are not thinking of me (intending to get a reaction out of me, or how it would make me - or anyone else - feel).

                                                                                                                                1. 3

                                                                                                                                  All that to say - let’s have these discussions, but go out of our way to have them with people actually affected, whose version of reality looks nothing like ours - with humility.

                                                                                                                                  This should be printed on a shirt. You make an excellent point about my own biases and assumptions even in an attempt to try and be thoughtful about it in my personal vacuum. :+1:

                                                                                                                                2. 3

                                                                                                                                  If anything I guess I just take issue with calling it hypersensitivity as opposed to discussing how much we should be sensitive.

                                                                                                                                  Yes, this is the conversation I think we need to have: what is a desirable level of sensitivity, and when does it tip over to being excessive? The answer will be different for different people in different communities, but it should be an ongoing conversation that changes with the times, and doesn’t assume that because something has always been accepted that it should continue to be acceptable (and perhaps allows for language to move the other direction as well, e.g. if slurs like “queer” are reclaimed as words one can take pride in).

                                                                                                                                  Elsewhere in this thread, @david_chisnall lists other utilities that also lend themselves to double entendres:

                                                                                                                                  In contrast, finger always led to people making fingering jokes (mind you, with touch, unzip, mount, fsck, and so on, the UNIX command line doesn’t really provide a shortage of input for a dirty mind).

                                                                                                                                  I’ve seen t-shirts etc. that use these utility names to refer to sexual acts, but I will admit that for whatever reason these others did not set off alarm bells for me in quite the same way as finger. If I were god emperor of command line utilities, I might rename finger and leave the rest alone. Are there people who find one of these other utility names more troubling, and find finger to be acceptable?

                                                                                                                                  How do we decide when a name needs to be changed, or when the change is worth the effort / inconvenience? Is there a meaningful difference between many people experiencing mild discomfort and a few people experiencing extreme distress? How many people have to experience an issue, and how severe must that issue be, before we seriously discuss changing a name? How much should we care about how the worst people in a community behave vs. more common behavior? There will always be someone who finds something objectionable about anything, so we cannot take action on every objection, but it also doesn’t seem like we should ignore all objections.

                                                                                                                                  How do we weigh the current community vs. an aspirational community we hope to have? I think one important piece of context is that programming has been something of a boy’s club for decades, and if the profession wants to be more inclusive and welcoming, it perhaps should err on the side of being more sensitive. The absence of objections could be a sort of survivorship bias.

                                                                                                                                  I also think it’s worth taking a stand in favor of caring about people’s feelings, instead of making it cool to be cruel. Many people have an attitude of “fsck your feelings” until it’s their feelings that are hurt, and then they demand blood. We shouldn’t be ruled by people who refuse to consider any feelings they don’t share, any more than we should be ruled by puritans who object to everything.

                                                                                                                              2. 2

                                                                                                                                That angle is certainly one that’s been brought up time and again. And then you get questions about whether terms like domain driven design might also be problematic. I’m not sure where the line should be, and I don’t think I have the standing to weigh in very much.

                                                                                                                                Sometimes, it’s easy for me to see. For example, it is super clear to me that we should not refer to hacked-up solutions as (racial-slur)-rigged.

                                                                                                                                I do also tend to think that if people are saying that “finger” and “domain driven design” make it challenging for them to participate in the community, IMO we should just believe them and swap out the terms for different ones without the same issue.

                                                                                                                                But ideally, I’d like to have a heuristic to identify these terms before they actually make a person feel excluded, and I have a hard time identifying such a thing in the last two cases. I don’t like the idea of waiting till someone is uncomfortable participating because I repeated a term of art.

                                                                                                                                I know that I just need to accept that discomfort as a privilege (it sure beats feeling being afraid to participate!) but I still want to spot a way to be better.

                                                                                                                                1. 6

                                                                                                                                  I was really confused by the domain-drive design thing. First I clicked on the link to see what ‘domain’ meant that caused problems for folks, only to discover that it was the TLA, DDD, that was the problem. The person in the Twitter thread was claiming that this was a bra size, which confused me because I was under the impression that it was not. So I then ended up bra sizes on Wikipedia, and it turns out that we were both right: it isn’t in my locale: DDD in US sizes is called E in the UK (and it’s called F more commonly in the USA). So we have a thing whose name is completely fine, whose initialism happens to be the same as a locale-specific size for bras (but only in parts of the US) and this is a problem because porn apparently decides to use DDD to mean ‘big breasts’ (ignoring the fact that this is a ratio measurement and has nothing to do with absolute size, only the relative size of the cup and the band size). So the chain from the thing to the offensive thing is four long. Given a chain that long, I suspect I could link any word in any alphabet to a term that some people would find offensive.

                                                                                                                                  In contrast, finger always led to people making fingering jokes (mind you, with touch, unzip, mount, fsck, and so on, the UNIX command line doesn’t really provide a shortage of input for a dirty mind).

                                                                                                                                  1. 5

                                                                                                                                    Given a chain that long, I suspect I could link any word in any alphabet to a term that some people would find offensive.

                                                                                                                                    I don’t know the details of this specific case, but if someone is taking offense at the result of a chain that long, it’s reasonable to infer that they’re choosing to take offense.

                                                                                                                                    1. 1

                                                                                                                                      I don’t know the details of this specific case, but if someone is taking offense at the result of a chain that long, it’s reasonable to infer that they’re choosing to take offense.

                                                                                                                                      This is very close to getting political, but it’s not about choosing to take offence. Imagine being a non-dude, coming into a computer club where all young-isch dudes are talking about fingering each others and others (you can probably imagine the jokes). None of it is probably intended to offend anyone, and none of the comments or jokes will offend you…but being constantly surrounded by it will eventually just wear you down.

                                                                                                                                      TL;DR it’s not necessarily offensive, it’s inconsiderate and it’s just a part of everything else that is inconsiderate out on the internet.

                                                                                                                                      1. 3

                                                                                                                                        This is very close to getting political, but it’s not about choosing to take offence.

                                                                                                                                        Sure; I was referring to taking offense at Domain Driven Design because its acronym is also a bra size in some countries.

                                                                                                                                        I think a reasonable person could object to a utility with a name that’s a double entendre. I think at the point where you’re offended by Domain Driven Design, though, you’re looking for something to be offended by.

                                                                                                                                        1. 2

                                                                                                                                          Sure; I was referring to taking offense at Domain Driven Design because its acronym is also a bra size in some countries.

                                                                                                                                          Ah, I must have misunderstood your previous comment. Sorry about that.

                                                                                                                                          1. 2

                                                                                                                                            No offense taken ;)

                                                                                                                                            Seriously, lobste.rs has to be about the only place on the public Internet I feel comfortable actually discussing topics like these, in part because people tend to assume good intent and act politely ❤️

                                                                                                                                    2. 1

                                                                                                                                      It’s very common IME for American neo-puritans to assume that their own parochial, contingent cultural anxieties do and should apply unconditionally to the rest of the world. A form of cultural imperialism, I would say.

                                                                                                                                      I’m very much on board with attempting to empathize with people with lived experiences different from the majority demographic in a community, but does that mean that a single person from a morally-privileged group gets an unconditional veto over anything they object to?

                                                                                                                                    3. 2

                                                                                                                                      But ideally, I’d like to have a heuristic to identify these terms before they actually make a person feel excluded

                                                                                                                                      I don’t think that’s possible, since many of these are based on intentional mis-readings, or terms whose underlying language has dramatically shifted, or taking things out of context etc.

                                                                                                                                      The only thing one can do is either make a change, or stay silent in the face of a request for one. Making that call is hard and will depend on how many spoons you have when it comes in, honestly.

                                                                                                                                      1. 2

                                                                                                                                        many of these are based on intentional mis-readings

                                                                                                                                        I think I’m missing a reference here, because I am not aware of a situation where someone intentionally misread something and then felt excluded on that basis, let alone many of them. But I’m specifically referring to situations where someone wants to participate and feels uncomfortable doing so because of the language being used by others. Bad faith misreadings are entirely different.

                                                                                                                                        Making that call is hard and will depend on how many spoons you have

                                                                                                                                        Is that an auto-correct error? If not, can you tell me what “how many spoons” means in this context or point me to an explanation? I’m a native US English speaker, and that is new to me.

                                                                                                                                        I recognize that I’m engaging in wishful thinking. It doesn’t seem like a bad wish, though, to want to be smart enough to identify exclusionary things before they make someone feel excluded.

                                                                                                                                          1. 1

                                                                                                                                            Thank you. That’s much less crass than the idiom I usually use to reference that same thing. I plan to adopt that.

                                                                                                                                            1. 1

                                                                                                                                              I have taken to using the term “koalas” after Ze Frank’s “koalas in the rain” song.

                                                                                                                                      2. 1

                                                                                                                                        Sometimes, it’s easy for me to see. For example, it is super clear to me that we should not refer to hacked-up solutions as (racial-slur)-rigged.

                                                                                                                                        I had to Google that one - the only “rigged” phrase I knew already was jury-rigged, and I was wondering how anyone could find it offensive.

                                                                                                                                        Agreed that’s it’s pretty clear that the extreme cases like those are easy; it’s drawing a line between accidental exclusion and hysteria that’s difficult.

                                                                                                                                        Ironically, the term hysteria itself used to be deeply misogynistic; the root word is “hystera”, that is, “uterus”.

                                                                                                                                        1. 2

                                                                                                                                          I’m sorry to have made you google that but simultaneously glad that it wasn’t already in your vocabulary. I learned it from my supervisor at my first job in high school. When he was informed by more senior management that it wasn’t acceptable, he replaced it with the term “afro engineering”. IIRC he was given his walking papers shortly thereafter for a completely unrelated reason. The state of that part of the world at the time was that as long as you weren’t literally using the n-word, you weren’t being racist.

                                                                                                                                          1. 1

                                                                                                                                            I’m sorry to have made you google that but simultaneously glad that it wasn’t already in your vocabulary

                                                                                                                                            Probably just because I’m Australian. We have our own collection of similarly vile racial terms, just aimed at Aborigines :(

                                                                                                                                          2. 1

                                                                                                                                            The term “jerry-rigged” (or “jerry-built”) is the only other such form I know of, which I used to think was connected to the slang (slur?) term for Germans, but apparently it predates Germans being referred to as “Jerry” (circa WW1).

                                                                                                                                            1. 1

                                                                                                                                              Wikipedia has the etymology of this one, it’s a nautical term and has nothing to do with any group referred to as Jerry - the jerry variant is a more modern corruption. I learned something actually - I thought a Jurry Rig was a Napoleonic-era naval term, but apparently it’s a couple of hundred years older.

                                                                                                                                      1. 18

                                                                                                                                        This “the browser’s default styles suck therefore every webpage has an imperitive for CSS” meme is depressing. Like, yes, I sort of agree that since browser defaults are garbage it is responsible to include a couple lines of CSS to fix them. But that isn’t a reason we need CSS! We could fix the browsers!

                                                                                                                                        I think some CSS is super useful for other reasons, but it should always be possible to disable it and get a usable, readable webpage.

                                                                                                                                        1. 4

                                                                                                                                          Yes, while I support Gemini and related minimalist projects, I think there is also room for a simple web browser that basically just implements reader mode, no CSS or JS at all. It would only be useful for reading articles, not web apps or more complicated interactive websites, but for many use cases that would be more than adequate. Such a browser would be much simpler to implement, and might be possible for an individual to build from scratch, although parsing modern HTML5 is no joke (certainly much more complicated than gemtext).

                                                                                                                                          1. 3

                                                                                                                                            Yeah, I do agree with you. But I don’t think the browsers will ever fix that at source. Plus, design is so subjective that one person may find the browser defaults to be just fine, whereas other may loath them.

                                                                                                                                            1. 5

                                                                                                                                              But I don’t think the browsers will ever fix that at source.

                                                                                                                                              Yes, because that would break websites that use CSS. But if you come from a standpoint where websites wouldn’t use CSS, then browsers would immediately change default styles to be more readable. See the reader mode example used in the article: it doesn’t just make the page unstyled, it also makes it readable, like browsers would do by default if CSS didn’t exist.

                                                                                                                                              1. 3

                                                                                                                                                It would be very easy to detect unstyled websites and always put those in reader-mode. There’s a small gotcha if we’d want to allow JS in that reader-mode (to provide a default style for interactive elements) cause JS can set CSS, but that’s trivial to work around.

                                                                                                                                                Maybe we just need a head Element to instruct the browser to use reader-mode.

                                                                                                                                                1. 2

                                                                                                                                                  Yes, because that would break websites that use CSS.

                                                                                                                                                  It shouldn’t. The browsers don’t all use the same defaults, and their defaults can be changed to some extend already without breaking pages. Webpages with a lot of CSS use a reset so that browser defaults don’t matter. Webpages with only a little responsibly written CSS are already written to consider browser defaults a feature.

                                                                                                                                                  We’re not talking about a heavy theme from the browser here, just changing obviously bad defaults. Some browsers already use sans-serif by default, all should use a sensible sans-serif font from the system. Most already have some padding around the body, just need to make it reasonably sized (I find 5% left and right pretty good, but more than 1 or 2 em for sure). And so on. Maybe creme or slate background color based on if the browser is in dark mode or not. This kind of thing.

                                                                                                                                                  1. 4

                                                                                                                                                    We’re not talking about a heavy theme from the browser here, just changing obviously bad defaults.

                                                                                                                                                    Changing the default margin to center text is a big change. It would break a lot of websites.

                                                                                                                                                  2. 1

                                                                                                                                                    I don’t think it would break anything. The cascade ensures this wouldn’t happen.

                                                                                                                                                    A i understand it, it goes browser style > website style > user style with each in turn taking precedence over the last.

                                                                                                                                                    1. 3

                                                                                                                                                      I don’t think it would break anything. The cascade ensures this wouldn’t happen.

                                                                                                                                                      If every websites expects no margin to be set, and you set a default margin, a lot of websites will break. It should be obvious.

                                                                                                                                                  3. 4

                                                                                                                                                    We’ve all seemed to forget that we used to call web browsers “user agents”. They are an agent of the user and should be something the user controls!

                                                                                                                                                    You wrote:

                                                                                                                                                    As you can see from the screenshot above, the text spans the entire width of the screen. I also think that the text is too small. Even on my little 13” MacBook Air screen, constantly scanning my eyes from the far left to far right of the screen really strains my eyes.

                                                                                                                                                    This is why I think CSS should continue to exist.

                                                                                                                                                    In Netscape Navigator 4, I used to be able to set my preferred link color, background/foreground, fonts, etc. I was able to configure my user agent in such a way that it was comfortable for me to use. I’d expect in a world where the browser exists as a true engine of hypertext instead of as some quasi-hypertext/quasi-remote terminal engine, we’d see even deeper customization options than that.

                                                                                                                                                    1. 6

                                                                                                                                                      You still have a “user agent” and it still is customizable to a pretty high degree.

                                                                                                                                                      It just also happens to let web page authors suggest how to display the page, as a default in case you don’t choose to override it. And some people are good at coming up with helpful, useful styling. Some people are less good at it. But the world is richer for the variety they produce, just as the world is richer for the fact that we didn’t all standardize on exactly one font and list of rules for typesetting at the advent of movable type, but instead got a wide variety of books which experimented with different ways of doing things.

                                                                                                                                                      And the real logical conclusion of your argument is to require everyone to become as skilled at putting together their own user-specific styles are you are, which would ironically be a terribly disempowering thing for most users, who don’t want to put in that kind of time and effort.

                                                                                                                                                      1. 1

                                                                                                                                                        I think all modern browsers support user CSS. This takes precedence over any other CSS, so any element that is styled in your user CSS will see that style, even if it is also styled by the site’s CSS. CSS is very powerful and includes things like regex matches, so I can add a little superscript [pdf] next to any links that link to .pdf files and add a health warning next to any links that go to Facebook in my user CSS.

                                                                                                                                                        1. 1

                                                                                                                                                          Does my browser support user CSS? Certainly! Is that particularly useful in a world where a hyperlink to another site may be represented as an <a> tag, a button, a span/div with an onclick() handler, … … …? Not particularly: I either spend time building my user CSS to fit every site I interact with (hah!), or I use some type of best-effort tooling. And that’s often a huge pain. If you’ve never looked at the hoops Firefox jumps through to generate a ‘reader mode’ page, you should.

                                                                                                                                                          A counterfactual history where we didn’t get the ability to drive pixel-perfect design and instead picked up <article> and <menu> and other semantic friends early would look very different: my user agent could allow me to describe how I want to see my data presented, but more importantly, that control would exist over every site I visit.

                                                                                                                                                          1. 1

                                                                                                                                                            A counterfactual history where we didn’t get the ability to drive pixel-perfect design and instead picked up and and other semantic friends early would look very different: my user agent could allow me to describe how I want to see my data presented, but more importantly, that control would exist over every site I visit.

                                                                                                                                                            There was a problem with this history (which is what the W3C was pushing with XHTML): semantic markup makes it very easy to separate adverts and content and a UA will then always make the decision not to show adverts. When web standards are driven by a company that gets the vast majority of its revenue from adverts, this model could never exist. It’s far better from their perspective if the browser just renders pixels and the difference between ad pixels and content pixels is completely opaque.

                                                                                                                                                    2. 2

                                                                                                                                                      One of the original intents is that users would provide their own stylesheets. I don’t think that’d be as practical even in the 90s though; sites presume a default stylesheet that may not match your custom reality, nor would sites likely to use the same selectors or semantics elements for exactly the right purpose.

                                                                                                                                                      1. 2

                                                                                                                                                        Why wouldn’t that work? I understand not every single person is going to implement their own stylesheet, but os and browser vendors would likely have a nice default style and some themes one could choose from.

                                                                                                                                                        For people who want more, there would probably be a subreddit with fancy stylesheets to download for free. Browsers could make this easy by adding a button that makes it easy to switch between them.

                                                                                                                                                    1. 1

                                                                                                                                                      I have been working on creating a Hugo theme from scratch as well, in part using that same tutorial. Sadly, despite my efforts to keep it minimal, it has rapidly increased in complexity and may continue to do so. Still, people interested in minimal themes may find my struggles educational.

                                                                                                                                                      Here’s my theme’s source repo:

                                                                                                                                                      https://git.sr.ht/~skyfaller/maxethics-hugo

                                                                                                                                                      And a test site using that theme:

                                                                                                                                                      https://www.maximumethics.dev/

                                                                                                                                                      The repo for the content of that site:

                                                                                                                                                      https://git.sr.ht/~skyfaller/maximum-ethics-content

                                                                                                                                                      If I ever finish the theme / get it to a place where I’m happy with it, I will probably write it up and post it to Lobsters.

                                                                                                                                                      1. 2

                                                                                                                                                        Hey, I like this! Nice and minimal. Am I seeing correctly there’s no JS used for the theme (other than the counter thing you’ve got)? Will have to take a look at this for inspiration while making my own minimal theme. Cheers!

                                                                                                                                                        1. 2

                                                                                                                                                          Yeah, I hate JavaScript. Any JS I include will be optional, the theme should function fine with JS disabled in your browser. For example, I may use JS for video embeds, but leave a hyperlinked thumbnail for noscript users to take them directly to the video. (You would be able to avoid this entirely by not embedding videos.)

                                                                                                                                                          The counter JS is in the content added by the user (me in this case), not the theme. I actually think visitor stats are generally useless, I just wanted to experiment with more ethical counters I could set up for clients instead of Google Analytics if they insist (not everyone agrees with me). GoatCounter seems good so far.

                                                                                                                                                      1. 3

                                                                                                                                                        I’m trying to get all of my computers bootstrapped from a chezmoi repo. I’ve got my Pinebook Pros running pretty well, but I haven’t nailed down my setup on my MNT Reform and other personal computers, and eventually I want it to setup my dotfiles on my web servers as well. The task is complicated by having my initializing scripts include an Ansible role, which may be a mistake.

                                                                                                                                                        1. 3

                                                                                                                                                          Does anyone else find it a bit funny that a post about Hugo themes is hosted on SaaS Wordpress?

                                                                                                                                                          1. 2

                                                                                                                                                            I will say that dogfooding my own Hugo theme has helped me find bugs / edge cases / missing features, and I highly recommend it for anyone developing a theme. I have three websites running my theme and the slightly different use cases have highlighted different problems.

                                                                                                                                                            One problem is that, until I’m happy with my theme’s support for basic things like images and video embeds (no, I’m not satisfied with the out-of-the-box Hugo behavior), it’s difficult to write even self-referential posts where you might want to include screenshots of e.g. results of your theme code in different browsers. (The OP is a simple text post with code blocks that my theme currently handles fine, I’m just pointing out an example of the difficulties with dogfooding a work-in-progress theme.)