1. 3

    Came to say something along the lines of “naming things is hard but FYI ‘spack’ is a derogatory term for someone with mental illness, at least where I’m from in the UK”

    But then I saw it’d a pretty big package already, yikes!

    1. 1

      Git?

      Derogatory terms not aimed at people seem fine in our space.

      1. 4

        Semi-agree, except mental illness and disability are protected characteristics so different to calling someone a git

        1. 1

          There are inclusive and non-inclusive insults. Git is not aimed at a particular group and does not insult the target by likening them to a particular target group. It’s not a fantastic idea to name your project after an insult[1] but at least git doesn’t attack a particular group.

          [1] Linus’ disarming rationale for the naming was that he always names projects after himself. Since the original name for Linux was Freax, there’s a bit of a precedent for this.

        2. 1

          The same concerns were mentioned on Lobsters when it was shared 2 years ago.

          Unclear though if the authors are aware, as I couldn’t find any discussion of the name in their issue tracker.

        1. 4

          I try to keep up with technology, but I also wish that announcements like this would at least provide an idea up front of what WirePlumber is, or PipeWire and why it is important that Fedora 35 now ships with this software.

          Doing a quick search:

          WirePlumber: Session / policy manager implementation for PipeWire

          PipeWire: Next-generation cross-desktop audio and video server

          This seems to be some sort of tool to help manage a replacement for PulseAudio and brings yet another sound stack to Linux? I found some more information here: https://pipewire.org

          1. 2

            This seems to be a common theme with Collabora’s blog posts… “Version X of Foobar Y released” without explaining anything about what it is, why it matters, and how it all fits together with related projects.

            It’s unfortunate because my impression is that Collabora does a lot of interesting work with various open source projects, but their announcements are quite hard to follow.

            1. 2

              Thanks for the feedback, we’ll try to make our blog posts easier to understand going forward!

            2. 2

              Take a look at this interview in Fedora Magazine, it answers quite a few questions! https://fedoramagazine.org/wireplumber-the-new-pipewire-session-manager/

              1. 1

                As mentioned in another reply it’s compatible with all other major sound stacks. But it also handles video devices like webcams so multiple applications can access a single webcam at the same time.

              1. 1

                I have no idea what that is, but it’s awful. It’s got some custom scrolling behaviour that is both super-janky, and goes in the wrong direction, at least on a mac.

                1. 2

                  Calling it “awful” based on just the scrolling behaviour seems a bit extreme to me… 😕

                  1. 1

                    Well I think interfering with basic standard user interface functionality like scrolling is awful.

                    1. 1

                      Okay, but it seems odd to ascribe malicious intent… I think the more likely explanation is there are a few small bugs that can be fixed, and perhaps they did not test it on macOS. I doubt they want the scrolling to be janky and upside-down, so you could report an issue to let them know.

                  2. 1

                    I have no idea what that is

                    I have no idea what it is either. From the title, I assumed it was a web browser written with QML, but it looks as if it’s a very slow UI for a list of links to web pages that talk about QML?

                    @raymii, since you posted this, can you tell us what it is?

                    1. 1

                      A browser indeed. From the GitHub page:

                      Canonic is an experimental QML web browser developed in the Qt framework and licensed under GPL3

                      https://github.com/canonic/canonic

                      The submitted URL is a version compiled to WebAssembly, so, a browser in your browser.

                      1. 1

                        Thanks. Running it in a web browser is a neat trick, but it seems to hit the single origin policy so it can’t actually load any web pages other than the one from the domain serving it.

                  1. 1

                    I am enjoying this series; I have the table of contents open on my phone for me to refresh every few days and find new articles.

                    1. 1

                      There is also a feed available on the site as well.

                    1. 3

                      For the “2-10 people team working on a popular OSS project where the issue tracker gets a lot of requests from (thousands of) users” context, I believe it’s common to have a rotating role on the team where a chunk of time is spent triaging the issues as the come in to keep things manageable.

                      As one example that I know of personally, Element Web (a Matrix client) currently has about 10 new issues per day. They use various labelling and automation techniques to wrangle them as they come in.

                      As another related example from a larger team, VS Code’s issue tracking and triage processes are worth a look as well.

                      One caveat is that the above are both examples of popular OSS projects where a team is working on them as a full time job as part of their employment at the main company managing the project. That may or may not be the meaning of “team” you have in mind. A team made up of part time contributors may need very different processes.

                      1. 5

                        Weggli is built on top of the tree-sitter parsing library and its C and C++ grammars.

                        That’s surprising to read. Given that things like clang-format and libclang exist, I would expect clang internals to be usable for this use-case, and to give better results than tree-sitter.

                        1. 1

                          weggli does not require the ability to build the software and can work with incomplete sources or missing dependencies.

                          Perhaps it is the latter of those two features that tree-sitter enables?

                          1. 1

                            clang-format doesn’t require ability to build.

                          2. 1

                            Maybe it’s more that they wanted to write Weggli in Rust, and so libclang and friends were harder to reach for?

                          1. 14

                            For a related but slightly different perspective on PL history, see also @hwayne’s 10 Most(ly dead) Influential Programming Languages.

                            1. 5

                              I have no idea why COBOL is listed as mostly dead. There are way more COBOL jobs than Elm or OCaml and as many COBOL jobs as there are Clojure ones. COBOL is dead on Github, but it’s very much alive in the real world.

                              1. 7

                                The entire thing was a spite-inspired by the original article leaving off Pascal because it was “mostly dead”, so I tried to fit everything into the “mostly dead” gimmick.

                                1. 1

                                  Of the four mother languages, ALGOL is the most “dead”; Everybody still knows about LISP, COBOL still powers tons of legacy systems, and most scientific packages still have some FORTRAN. But I’ve met plenty of programmers who haven’t even heard of ALGOL. You’d think it’d be the least important of the mother languages, but it’s the opposite. Of the four, only LISP comes anywhere close to the pervasive importance of ALGOL.

                              1. 8

                                Looks cool, my quick feedback is that your 02-12-06 time format is confusing.

                                1. 6

                                  Agreed, please use the ISO 8601 (YYYY-MM-DD) date format. 🤓

                                  1. 4

                                    Agreed, what is this horror

                                    Got 212,432 snapshots, from 96-10-23 18:55:02 to 21-05-30 14:37:26.

                                    1. 1

                                      Oh, that didn’t cross my mind. I’ll probably add back those two digits, then!

                                    1. 8

                                      I’m slightly disappointed to see that this article is mostly about making Firefox look faster rather than actually making it faster.

                                      I’m also curious, what does XUL.dll contain? I remember reading articles about replacing XUL with HTML for interfaces, why is XUL.dll still needed?

                                      1. 22

                                        The visual and perceived performance wins are arguably easier to explain and visualize and were an explicit focus on the for the major release in June. This isn’t just lipstick on a pig though. An unresponsive UI is a big. Regardless of whether the browser doing work under hood or not.

                                        But the IOUtils stuff has some really clear wins in interacting with the disk. Process switching and process pre-allocation also have som really good wins that aren’t just “perceived performance”.

                                        1. 5

                                          But the IOUtils stuff has some really clear wins in interacting with the disk. Process switching and process pre-allocation also have som really good wins that aren’t just “perceived performance”.

                                          No numbers were provided for these unfortunately. :’(

                                        2. 11

                                          I’m also curious, what does XUL.dll contain? I remember reading articles about replacing XUL with HTML for interfaces, why is XUL.dll still needed?

                                          That’s basically “the rendering engine”. The Gecko build system uses libxul / xul.dll as the name for the core rendering code in Firefox. There’s no real connection between the file name and whether XUL elements are still used or not.

                                          Not sure why it’s not just named “Gecko”, but that probably requires even more archaeology…

                                          1. 3

                                            It’s because XUL refers to ‘XML User Interface Language’, which is how Gecko was originally meant to be interfaced with. Gecko sits under XUL, and XUL hasn’t been completely replaced yet.

                                            “There is no Gecko, only XUL”

                                            1. 2

                                              I see, thanks!

                                            2. 4

                                              I’m slightly disappointed to see that this article is mostly about making Firefox look faster rather than actually making it faster.

                                              User-perceived performance can be just as important as actual performance. There are tons of tricks for this and many go back decades while still being relevant today. For example: screenshotting your UI to instantly paint it back to the screen when the user reopens/resumes your app. It’ll still be a moment before you’re actually ready for user interaction, but most of the time it’s actually good enough to offer the illusion of readiness: a user will almost always spend a moment or two looking at the contents of the screen again before actually trying to initiate a more complex interaction, so you don’t actually have to be ready for interaction instantly.

                                              IIRC this is how the multitasking on many mobile operating systems works today – apps get screenshotted when you switch away from them, and may be suspended or even closed in the background while not being used. But showing the screenshot in the task switching UI and immediately painting it when you come back to that app gives just enough illusion of continual running and instant response that most people don’t notice most of the time.

                                              1. 1

                                                Yeah but what’s better, implementing complex machinery to make your slow software look faster, or implementing complex machinery to make your slow software faster ? I’d argue that making the software actually faster is always better, and if it is faster, it’ll look faster too, no need to trick the user.

                                                I agree that there comes a point where you made your software as fast as it can be and all that remains is making it look faster, but that still makes for disappointing articles to me. I prefer reading about making software faster than reading about making software perceptually faster.

                                                1. 5

                                                  What’s better is for it to be faster and more usable to the user, regardless of the method. The above noted screenshotting/painting is more than a trick. It gives users the ability to read and ingest what was already on the screen which gets them back to what they were doing faster. That’s much more important than, say, a 50% reduction in load time from 2s to 1s. Those numbers are satisfying for people who love to look at numbers, but really doesn’t mean anything to the end-user experience.

                                                  1. 2

                                                    That’s the thing: sometimes speed isn’t a good thing. For instance, you could have your UI draw to the screen as fast as possible, but if you do that, you’ll end up with screen tearing, which makes the user experience worse. If you slow things down a tad (which doesn’t consume any resources, because the software it just waiting), the UI gives the perception of working better. Also, some slowdowns are there to give feedback to the user, such as animations when you click buttons, or resize things: these give the perception that something is happening, and create a causal link in the user’s head between what they just did and what’s happening, which it harder to get when something just appears out of nowhere.

                                                    It’s not about tricking the user, even if there happens to be some smoke and mirrors involved, but about giving the user feedback. People like things to be fluid (which is what screenshotting a window for fast starts gives you), not abrupt. You might say that you’d be OK with this, but to give you a real-world example: if you were taking a taxi, would you be OK with your driver taking hard turns even if it got you to your destination a bit faster? Unless you were under severe time pressure, probably not.

                                                    If you want to be genuinely disappointed, there are user interfaces out there that introduce delays for other reasons. You’ve probably encountered UIs in the wild that seem to take a longer time to do things that seems reasonable, such as giving the result of some sort of calculation or some search results for flights or hotel booking. Those delays are there not because they serve a purpose, but to increase trust in the result. This is because people’s brains are broken, and if you give them an answer straight away, it seems as if you’re not doing any work, which makes the result less trustworthy. However, if you introduce a short delay or give the results back in chunks, it gives the perception that the machine is doing real work, thus making the results more “trustworthy”.

                                                    So no, faster is not always better, much as we might wish it to be.

                                                    1. 1

                                                      For instance, you could have your UI draw to the screen as fast as possible, but if you do that, you’ll end up with screen tearing, which makes the user experience worse. If you slow things down a tad (which doesn’t consume any resources, because the software it just waiting)

                                                      This is a bad example. Doing things as fast as possible and then waiting for the next frame is the best thing to do, it allows the CPU to go back to idling and preserves battery. Making the software faster here means more time idling means more battery saved.

                                                      Also, some slowdowns are there to give feedback to the user, such as animations when you click buttons, or resize things

                                                      I hate animations and always disable them when I can. I understand that other people feel differently about them, but I don’t care, that still makes reading articles about perceptual performance improvements disappointing when I go in expecting actual performance improvements.

                                                      You might say that you’d be OK with this, but to give you a real-world example: if you were taking a taxi, would you be OK with your driver taking hard turns even if it got you to your destination a bit faster?

                                                      That’s a bad example. Having abrupt screen changes is different from being thrown around in a car.

                                                      such as giving the result of some sort of calculation or some search results for flights or hotel booking. Those delays are there not because they serve a purpose, but to increase trust in the result.

                                                      Making things perceptually slower is not what we are talking about. We are talking about making things perceptually faster.

                                                      So no, faster is not always better, much as we might wish it to be.

                                                      Making your software actually faster when you want it to be perceptually faster is better than just making it perceptually faster. That was my point and I don’t think any of your arguments proved it wrong.

                                                2. 2

                                                  It’s a legacy name.

                                                1. 1

                                                  Hmm, seems like a staging URL…? Similar content also appears to available at https://www.edgedb.com/docs/tutorial/queries.

                                                  1. 1

                                                    That’s the link I put, but lobsters changed it when I hit post…

                                                    1. 3

                                                      Probably because the page says that this is the canonical URL:

                                                      <link rel="canonical" href="https://website-atgsmhega-edgedb.vercel.app/docs/tutorial/queries"/>
                                                      
                                                      1. 2

                                                        Ah, indeed. I messaged them on Twitter about this issue.

                                                  1. 2

                                                    Interesting post! 🙂

                                                    Please consider adding some kind of RSS / Atom / JSON feed to your blog so I can follow and be notified of updates in the future.

                                                    1. 6

                                                      I have 37 windows open, with some 75+ tabs.

                                                      This is where I don’t follow. I never have that, how would you even know what’s on all those?I also don’t have tons icons on my desktop nor hundreds of files in my download folder.

                                                      I also use the internet a lot, but it doesn’t mean my workspace is a unorganized mess. Isn’t the issue here that the person writing is just a bit messy?

                                                      1. 3

                                                        Yeah, right now I’ve got 4 tabs open in Chrome for work, and 9 in Firefox for not-work. I used to be a “open 40 tabs and work my way through” sort of guy, but then I realised I was recklessly wasting resources, both meat and silicon, and that I always ended up just mass-closing them as a declaration of tab-bankruptcy twice a week anyway.

                                                        1. 2

                                                          I use the “Reading List” feature of Safari heavily; I’m sure the other browsers have equivalents. It’s a flat bookmark list that shows up in a sidebar and flags items as “unread” until you click them. Adding the current page to it is super low friction, just one click/tap/keystroke. Sometimes I add a page to it immediately, sometimes I’ll leave it open in a tab for a few days; then I periodically clean up tabs and add their URLs to the reading list.

                                                        2. 2

                                                          I personally have at this very moment… 39 browser windows open with… runs script… 688 total tabs open.

                                                          I use Tree Style Tabs in Firefox to easily view many tabs per window. I also use Window Titler to give each window a label. Each window is focused on a topic or project. I keep the window around indefinitely until the project is completed or the topic is no longer interesting.

                                                          This browser workflow works quite well for me, but I wish I could have something like it more generally across all applications. A virtual desktop per topic doesn’t necessarily seem quite right… I’d like some way to group all the “things” (windows, apps, files, etc) for a topic, and it should be possible for each thing to be a part of multiple topics at the same time.

                                                        1. 5

                                                          I see a lot of posts on Firefox vs Chrome (or in this case Chromium) and it always seems to be people lobbying for others to use Firefox for any number of moral or security reasons. The problem that I see with a lot of this is that Firefox just isn’t as good of a user experience as Chromium-based browsers. Maybe Mozilla has the best intentions as a company, but if their product is subjectively worse, there’s nothing you can really do.

                                                          I’ve personally tried going back to Firefox multiple times and it doesn’t fulfill what I need, so I inevitably switch back to Vivaldi.

                                                          1. 10

                                                            This is really subjective. I tried using ungoogled-chromium but switched back to Firefox. I used Vivaldi for a while but switched to Firefox as well. Before I was using the fork of Firefox called Pale Moon but I got concerned with the lack of updates (due to how small is the team).

                                                            1. 2

                                                              Sure it is, but almost 80% of the world is using a chromium browser right now and Firefox is stagnant at best, slowly losing ground. Firefox even benefits from being around longer, having a ton of good will, and some name recognition and it still can’t gain market.

                                                              1. 8

                                                                It also didn’t get advertised everytime you visit Google from another browser. It also isn’t installed by default on every Android phone.

                                                                1. 8

                                                                  Firefox also isn’t installed by default by a bunch of PC vendors.

                                                                  1. 1

                                                                    Firefox already had its brand established for years before that happened. It’s also worth noting that Microsoft ships with its browser (which is now a Chromium variant, but wasn’t until recently) and doesn’t even use Google as the search engine, so the vast majority of new users don’t start with a browser that’s going directly to google to even see that message.

                                                                    1. 2

                                                                      And yet they start with a browser and why replace something if what you have already works discounting those pesky moral reasons as if those are not worth anything.

                                                                  2. 4

                                                                    Among technical users who understand browsers, sure, you might choose a browser on subjective grounds like the UX you prefer. (Disclaimer: I prefer the UX of Firefox, and happily use it just fine.)

                                                                    Most people do not know what a browser even is. They search for things on Google and install the “website opener” from Google (Chrome) because that’s what Google tells you to do at every opportunity if you are using any other browser.

                                                                    When some players have a soap box to scream about their option every minute and others do not, it will never matter how good the UX of Firefox is. There’s no way to compete with endless free marketing to people who largely don’t know the difference.

                                                                    1. 1

                                                                      If that were the case, people would switch back to Edge and Safari because both Windows and MacOS ask you to switch back, try it out again, etc every so often.

                                                                      The UX of firefox is ok (they keep ripping off the UI of Opera/Vivaldi though fwiw and have been doing so forever), but it functionally does not work in many cases where it should. Or it behaves oddly. Also, from a pure developer perspective, their dev tools are inferior to what has come out of the chromium project. They used to have the lead in that with Firebug, too, but they get outpaced.

                                                                2. 2

                                                                  Yeah, I switched to Firefox recently and my computer has been idling high ever since. Any remotely complicated site being left as the foreground tab seems to be the culprit.

                                                                1. 1

                                                                  Assuming I’m following your needs correctly, I would recommend https://forwardemail.net. It has a free tier for easy testing. The paid tier is needed to hide the redirect target address, along with other extra features. I’ve been using it for several years, and it works quite well!

                                                                  1. 4

                                                                    Sandboxing and locking out access to the filesystem is why I, as a user, run screaming from Android. Sacrificing usefuless on the alter of security and correctness. A terrifying future.

                                                                    1. 3

                                                                      It can be done properly. Suppose the file picker dialog is a separate process with a different set of capabilities. An application such as a webbrowser can then save files anywhere, without having the capabilities to do so, just by using a capability to a file handed over by the file picker dialog.

                                                                      1. 4

                                                                        That’s more or less exactly how it works in macOS for sandboxed (App Store) apps. The file picker runs out of process and when a file is chosen by the user the application is granted access to it. Prior to that it had no access.

                                                                      2. 2

                                                                        I agree that locking things away from the user in the name of security is a terrible choice that unfortunately seems to often be the default in today’s systems (such as iOS, Android, macOS, etc). (In some cases, it’s done more to preserve app store monopolies than for actual security…)

                                                                        In the case of this article, it is not described explicitly, but my impression is the author mainly wants to isolate program state and configuration by default, not to prevent user access, but so that programs can’t easily trample on one another.

                                                                        I strongly agree there should always be a path to modify anything on the system as a user.

                                                                        1. 2

                                                                          It doesn’t need to sacrifice usability. The less a random program can do without my consent, the more likely I am to be willing to run it. That’s a big win for usability. Most programs don’t need to have access to every file that I own, I am completely happy with a sandboxing policy that requires an external process (e.g. a file picker or a shell) to explicitly authorise access to specific files. Even if I trust the author of a particular program to be non-malicious, I still might use it to access a file or network service that exploits a bug and compromises it. I’d much prefer that such a compromise only gives an attacker access to the files that I’ve opened with the program that invocation, rather than my entire home directory.

                                                                        1. 1

                                                                          Looks like an interesting effort, thanks for sharing this! 😄

                                                                          I guess this might be a draft version, since some of the links seem to be missing… For anyone else curious to see more of the implementation, these repos seem to be related:

                                                                          1. 18

                                                                            I like to think about these things, but don’t have much hope. Here are my points:

                                                                            • Networking shouldn’t be an afterthought. Distributed computing should not be as difficult as it is. Transparently interacting or using resources from other systems should be something you don’t have to think about. I don’t care about hardware. I don’t care about CPU architectures. I don’t care about GPUs. I don’t care about drivers. All computers form an transnational turing machine.
                                                                            • Object capabilities should be a primitive concept. Imagine sharing a screen: That shouldn’t be the hassle it is, you should just be able to give someone read access to a segment or the whole display. The same applies to Files (but we probably shouldn’t have files), Hardware access, etc.
                                                                            • Hypertext should be a everywhere. The web has shown how attractive the idea is, but browsers are cursed to contain it, which is getting harder and harder. Project Xandu had good ideas about this, and HTTP is a shallow copy. We need complex links that can point to miscelanious parts of the system, and ideally also have back-references. You probably want a lof of cryptography for something like thise, to avoid the centralisation of power.
                                                                            • Logic and UI should be separate. Unix programms regard the standard output and input as the default UI, everything else is a side effect. Instead we should have the ability for a program (or procedure, algorithm, …) to produce complex data, that doesn’t only mean something in a specific environment (Powershell), but is universally understood. A terminal-like environment could display the results line-by-line, but it should be transformed into a graphical representation using a table, or a graph (or whatever one might come up with later).
                                                                            • Programming should not be a specialist’s affair. We have two classes of people, those who are at the mercy of computers, and those who can use them. This shouldn’t be the case, because the former are in a much weeker position, getting lost, getting overwhelmed, and sometimes even abused by those who know better. A proper operating system cannot be based on the lie, that you don’t need to know anything to use a computer: To be a responsible user, you need to know some basics. A simple programming language (I would like something like Scheme, but that’s just be) should be integrated into the system, and the user shouldn’t fear it. It’s a direct link to the raw computational power that can be used.

                                                                            In some sense, I like to think of it like Plan 9, without the Unix legacy, but that seems to simplistic. The interesting thing about Unix, is that despite it’s limitations, it creates the fantasy of something better. Inbetween it’s ideal power and it’s practical shortcomings, one can imagine what could have been.

                                                                            1. 14

                                                                              Programming should not be a specialist’s affair. We have two classes of people, those who are at the mercy of computers, and those who can use them. This shouldn’t be the case, because the former are in a much weeker position, getting lost, getting overwhelmed, and sometimes even abused by those who know better. A proper operating system cannot be based on the lie, that you don’t need to know anything to use a computer: To be a responsible user, you need to know some basics. A simple programming language (I would like something like Scheme, but that’s just be) should be integrated into the system, and the user shouldn’t fear it. It’s a direct link to the raw computational power that can be used.

                                                                              I think the ultimate problem is that most people don’t want to program. They want to accomplish a task, and for the most part, someone else has programmed the tool to accomplish the task. They don’t want to build the tool. Us freaks who want to write tools are few and far. It’s trhe same reason cars have mechanics.

                                                                              1. 5

                                                                                I don’t think that programming has to be the same as “building the tool”, but more along the lines of what @spc476 mentions with Excel. Especially when you take “Logic and UI should be separate”, one can imagine that programming doesn’t even have to mean “writing text in a text editor”, but could be a GUI afair, where you work on connection tools in a graphical representation, trivially connecting components of your system, without depending on another tool.

                                                                                Yes, not everyone want’s to be a car mechanic, nor do I, but to drive a car you need to get a drivers license, and that is the reason we can assume people can take some basic responsibility. We don’t have that for computers, and that’s why the responsibility has to be delegated to Microsoft or Apple. If we want to think of a computer as a tool, not a toy, I argue that a basic understanding for computational thinking should be assumable, and would help everyone.

                                                                                1. 3

                                                                                  I sincerely believe enso (née Luna) has a serious fighting chance to fill this gap. Though they’re taking their time :)

                                                                              2. 11
                                                                                • Networking: QNX was network transparent. It was wild running a command on computer 1, referencing a file from computer 2, piping the output to a program on computer 3 which sent the output to a device on computer 4. All from the command line. The IPC was fast [1] and network transparent, and used for just about everything.
                                                                                • Hypertext: The only operating system I know of that uses extensive form of hypertext is TempleOS (I don’t think it’s HTML but it is a form of hypertext) that extends pervasively throughout the system.
                                                                                • Logic and UI: There are bits and pieces of this in existence. AmigaOS has Rexx, which allows one to script GUI programs. Apple has (had?) something similar. Given that most GUI based programs are based around an event loop, it should be possible to pump events to get programs to do stuff.
                                                                                • Programming: True, but there is Excel, which is a programming language that doesn’t feel like one. Given an easy way to automate a GUI (similar to expect on the command line), and teaching people that computers excel (heh) at repeated actions could go a long way in giving non-programmers power.

                                                                                [1] In the early-to-mid 90s, I had friends that worked at a local software company that wrote and sold custom X Window servers. Their fastest X Window server ran on QNX.

                                                                                1. 3

                                                                                  Programming: True, but there is Excel, which is a programming language that doesn’t feel like one. Given an easy way to automate a GUI (similar to expect on the command line), and teaching people that computers excel (heh) at repeated actions could go a long way in giving non-programmers power.

                                                                                  One program idea I’ve had was a spreadsheet that users could “compile” into a simple gui. Analysts already use it as an adhoc RAD tool. Why not give them an actual custom GUI for their efforts?

                                                                                  1. 3

                                                                                    There was something like that in KDE, it was called krusader or something like that.

                                                                                2. 8

                                                                                  Transparently interacting or using resources from other systems should be something you don’t have to think about.

                                                                                  Then everyone will run headlong into the fallacies of distributed computing, unfortunately. This is why things like CORBA and DistriibutedObjects failed. Networking is not transparent, much as we would like it to be.

                                                                                  At least not in a normal imperative programming paradigm, like RPC. You can get a lot of transparency at a higher level through things like async replication, e.g. Dropbox or [plug] Couchbase Mobile. But even then you have to be aware & tolerant of things like partitions and conflicts.

                                                                                  1. 4

                                                                                    Your first point is pretty much what Barrelfish is designed for, go check it out!

                                                                                    1. 4

                                                                                      Programming should not be a specialist’s affair. We have two classes of people, those who are at the mercy of computers, and those who can use them.

                                                                                      Indeed, the power dynamics are way out of control in software today. On the orange site, @akkartik describes this well via an analogy to food production: nearly all software today is restaurant-style, while almost none of it is home-cooked.

                                                                                      For anyone interested in this topic, I would suggest looking into the Malleable Systems Collective (the Matrix room is most active) and Future of Coding communities, as it comes up in those places regularly.

                                                                                      1. 3

                                                                                        Programming should not be a specialist’s affair.

                                                                                        Jonathan Edwards has been working on this problem for a long time. It goes well beyond the OS.

                                                                                        1. 2

                                                                                          The same applies to Files (but we probably shouldn’t have files)

                                                                                          Could you elaborate on this? Why no files?

                                                                                          Logic and UI should be separate. Unix programms regard the standard output and input as the default UI, everything else is a side effect. Instead we should have the ability for a program (or procedure, algorithm, …) to produce complex data, that doesn’t only mean something in a specific environment (Powershell), but is universally understood. A terminal-like environment could display the results line-by-line, but it should be transformed into a graphical representation using a table, or a graph (or whatever one might come up with later).

                                                                                          There was an interesting newsletter post about emacs being interface independent. I’m not too familiar with emacs, but it struck me as an intriguing and beautiful idea.

                                                                                          1. 5

                                                                                            Could you elaborate on this? Why no files?

                                                                                            Maybe it’s clearer, if I say file system. It might be too much to throw out the concept of a digital document, but I have come to think that file systems, as we know them on POSIX systems, are too low level. Pure text, without hyperlinks would be a wierd thing in an operating system where everything is interconnected, and why directories shoudln’t have to be a simple tree (because tools like find(1) couldn’t do proper DFS in the 70’s), but instead could be any graph structure of sets, or even computed.

                                                                                        1. 3

                                                                                          This is some exciting technology, I wonder why they are not highlighting why it doesn’t work in Private Mode (I guess because WebRTC is disabled there). Also seeing an sqlite database with a go-sqlite-js through WASM in your browser definitively gives some living in the future vibe.

                                                                                          1. 2

                                                                                            Firefox currently blocks access to IndexedDB in private browsing mode, and the P2P client uses this for storage as it runs. Looks like there’s a recent effort to fix this on the Firefox side.

                                                                                            1. 2

                                                                                              Thank you for this information, very much appreciated.

                                                                                            2. 1

                                                                                              Or past if we consider websql(ite).

                                                                                            1. 2

                                                                                              I was plotting a course to build an experience like this into Firefox a while back. I hope it will eventually come to pass as part of the browser some day, as I believe that’s the best way to make it feel like an integrated experience with the other tools already in the browser.

                                                                                              For now, it’s nice to see tools like Polypane, Sizzy, and others experiment with similar ideas as separate tools. It’s quite nice to see at least 2 views at the same time when working on a responsive site.

                                                                                              1. 1

                                                                                                For anyone curious who may not want to watch the video, here are some related links: