• 1 Post
  • 422 Comments
Joined 1 year ago
cake
Cake day: May 29th, 2024

help-circle
  • That was a good comment, thanks.

    I’ll try to clarify a little bit more about what I was talking about and reply to some stuff.

    • Window Manager: This is Niri, but of course everyone will have their own preferences for their window manager. For foot pedals you can just search “USB foot pedal” and get lots of results for ordering that sort of thing online. You might also be interested in macro pads, which are basically just little keyboards with extra keys you can use to supplement your primary keyboard. Of course you still have to set that up in software, but it seems like this program can do that for you (I haven’t done this myself, so no guarantees lol).
    • Better Markup, Responsive Terminal UI, Unified UI: When I mention these things I’m mostly thinking of The Mother of All Demos. You can watch recordings of it on youtube, and its quite remarkable, Douglas Engelbart demonstrates things like rich text (nested lists, collapsible sections), hyperlinks, word processing, the computer mouse, and a slew of other things, all back in 1968 when most people were barely even using an interactive shell (as batch processing was the norm). But the really interesting thing about that demo, in my opinion, is how unified the UI was. It was built for handling a data structure that was basically a linked list of text strings: showing you different views of that data structure and editing it in different ways (opening and collapsing subsections, displaying only a single subsection, ‘following’ a link like clicking on a hypertext link, its hard to explain succinctly, the best way is just to watch the demo). Which of course works for things like lists of groceries or whatever, but works just as well for files in a file tree, items in a configuration file, the syntax tree of a piece of computer code, or a version control tree. On NLS (the system shown off in the demo), you could use the same interface, the shortcut keys, for interacting with all of these. I don’t necessarily think that we should copy NLS in every detail, but you can see what I mean when I say that I think the terminal, file explorer, and document editor could have the same UI. IMO these are all ‘text dominated’ tasks that could probably be manipulated in the same way.
    • Auto Complete: In the first part I’m talking about being able to type something like example.mp4 ffmpeg, instead of ffmpeg example.mp4. In the second case you need to know that ffmpeg exists to begin trying to manipulate the video file, in the first case you could hypothetically type example.mp4 [tab] then get a list of programs that are registered as being able to handle mp4 files, allowing you to discover ffmpeg’s existence. This discoverability is one of the big reasons that graphical interfaces are perceived as more user friendly than a terminal. That’s what I mean when I say using a noun verb syntax would be more similar to right click (specifically right click --> open with). Of course you’d still want the ability to force a specific program to try to ingest a type of file its not associated with, but you can do that with [right click] --> [open with] too.
    • Config Links to Manual: I have heard of that but I haven’t used it much (I probably should though). If it works for shell commands I don’t see why the same technique couldn’t work for config files. The real problem is that so many programs use very different formatting for their configs, and they’d all have to publish detailed descriptions of their syntax in a metasyntax language, along with detailed English documentation of their behavior. So it would be a lot of work to implement. I don’t think this is impossible, but I don’t think its likely to happen any time soon.
    • Indexed Full Text Search: Grep is fine for what it is, but its not indexed search. Search indexing is what allows sites like Google and Wikipedia to search billions of documents, very fast, and with very little CPU and disk usage. Recoll is a program that can do this (and it works on pdfs and epubs too), after you select what directories you want to use it on and build the index, but in my opinion this should be a standard part of the OS’s functionality.
    • Tags: BeOS (made a typo earlier with the capitalization) was an OS that was around during the 90s. Among a few other neat features it had a file system that let you add arbitrary metadata attributes to files, and optionally index them (a little bit like having Hydrus built into the file system and file explorer). In such a system an email program could be implemented just by adding extra attributes to a bunch of text files in a folder. That makes the email program easier to implement, since it can piggyback off of OS functionality instead of having to come up with something itself, but the real power of that kind of setup is that other programs, like command line utilities, could inspect, search, and modify that metadata in a very easy standardized way.
    • File System Snapshot With Version Control: You wouldn’t want to make snapshots for every single change, and you probably wouldn’t want to keep the full snapshot history for your entire computer (although for some folders you could maybe do either/both of these). Rather you’d mostly take snapshots of your whole disk before big updates or changes, and use them as a restore point (so you typically wouldn’t keep ones that are years old). You can do this without file system level snapshots, using programs like Timeshift, but its cheaper from a disk space standpoint to use file system snapshots, and also much faster to create / restore. OpenSuse uses BTRFS to do this, and even lets you boot into old snapshots from the grub menu.
    • Plan 9: Plan 9 was built as a successor to Unix, meant to be less crufty and to take the ‘everything is a file’ philosophy further. For example to take a screenshot in Plan 9 you can execute cat /dev/screen | topng > screenshot.png. Even other devices on the network are represented as (virtual) files in a folder, and everything is accomplished using file operations.
    • Namespaces: In general computing a namespace is a mapping from a set of names (or identifiers or whatever) to a set of objects or resources. So, URLs for example, are a namespace that maps a text strings to IP addresses. In Plan 9 a namespace is a mapping between the file system as presented to a specific program, and the actual file system. Processes can modify the namespace of their child processes, allowing them to redirect their inputs and outputs. This lets you do a lot of stuff, for example in plan 9 every program can run without a display server, because every program tries to write directly to the screen ‘file’. If you start a program up using a display server and desktop environment its output is redirected to an input on the display server instead. Same goes for audio, and IPC, and so on and so forth, since everything is accomplished using file operations. Using this you can containerize applications, or even run an entire plan 9 userspace nested within the actual userspace. This was invented in the 90s, way before Docker or even the common use of virtual machines. Rather than use a special tool to accomplish something specific, it was accomplished using standard functionality of the OS, that was designed to be applicable to a wide range of situations. This is a common theme in the things I’ve mentioned.

  • Does anyone here have any ideas about how computer interfaces should work? Or, in other words what sort of features would you want in an ‘ideal’ (for you) computer system?

    I’ve been thinking about this for awhile, and I have some wishes:

    • A scrolling/tiling window manager like Niri.
    • A rich / hypertext format that’s more powerful than markup but less powerful than HTML + CSS.
    • A terminal that’s capable of outputting and rendering the above format: tables, collapsible sections, links, etc.
    • Some sort of unified UI that combines a file explorer, document viewer / editor, and terminal.
    • A terminal / scripting language that’s more discoverable than what we have. Perhaps by using a noun verb format instead of a verb noun format. Combine that with a ZSH-like (or IDE-like) autocomplete for command options, but add a small text description to each option and allow the user to do an incremental search of this text (with synonyms) by pressing a hotkey. These two things make interacting with files a little bit like right clicking (by listing valid operations for a given type of object) and a little like doing a text search on a settings menu, respectively. This could be accomplished without giving up the power of linguistic composition.
    • A terminal / scripting language that’s better than bash (not a high bar), straightforward and simple, and somewhat fast to evaluate (as far as interpreted languages can be fast), but not super complicated under the hood like Python is.
    • A series of linked wiki articles written in the above mentioned markup language, stored locally, that tells you how the OS works and how to use it. Instead of having to go to an external website to find out the steps your init process takes to start your computer, you read a plain english document describing them, with hyperlinks to the corresponding articles for the processes it interacts with. Like man pages but answers “how is it configured, and why that way”, rather than just “how do I configure it”. Some of these pages, or portions of them, might need to be dynamically generated depending on what packages you have installed. The pages should be organized such that the top level (or home page) give the most generalized and basic descriptions, with links to FAQs and how-tos, and the deeper you drill down the more specific and technical the articles get.
    • A NixOS-like declarative configuration system that uses config files written in the above mentioned markup language. The various config files should link to the corresponding wiki articles and vice versa.
    • An indexed full text search for the above mentioned documents (and any user generated documents).
    • A BeOs-like database file system, with tags and attributes.
    • File system level snapshots integrated into version control and the declarative configuration system mentioned earlier.
    • A plan9-like ‘everything is a file’ philosophy, as well as plan9’s hierarchical namespaces.
    • Containerized applications and permissions using the above mentioned namespaces.

    A lot of the above already exists, but only in pieces instead of in a fully unified system. Or else in a unified system that does some of these things, but not all of them.


  • I actually wonder how long it would take to notice if all your mRNA stopped working.

    I don’t think neuron action potentials rely directly on mRNA, so I think you’d be able to keep thinking for a bit, and probably moving your muscles too. The closest comparable thing is people that received massive radiation doses (can’t make new RNA out of shredded DNA) and in those cases it takes a bit before you start melting.



  • drosophila@lemmy.blahaj.zonetoScience Memes@mander.xyzBlack Holes
    link
    fedilink
    English
    arrow-up
    16
    ·
    edit-2
    7 days ago

    I mean, the gravitational gradient is much higher. To me this kind of sounds like saying “there’s nothing that special about a 10 watt laser, an LED lightbulb puts out the same amount of light”, but a 10 watt laser is enough to instantly and permanently blind you.

    Its true that there’s nothing that special about orbiting a black hole, but I think its not really logically inconsistent (inasmuch as a superhero can be logically consistent) to say “even if superman could survive dipping into a sun he probably wouldn’t be too happy if he stuck his arm into an event horizon”.






  • However, this fuckin’ half-in/half-out state has become the engine of a manifold of security issues, primarily bc nobody but nerds or industry specialists knows that much about it yet. That has led to rushed, busy, or just plain lazy devs and engineers to either keep IPv6 sockets listening, unguarded, or to just block them outright and redirect traffic to IPv4 anyway.

    Its kind of interesting to me how conservative the IT industry is with stuff like this.

    The industry loves to say “move fast and break things” or “innovate and disrupt”, but that generally only applies to things that can be shat out in a two week long Python project (or shat out in 2 weeks after publicly funded universities spent years figuring out the algorithm for you). For anything foundational, like CPU architecture, operating systems, or the basic assumptions about how UI should work, they’re terrified of change.


  • This is why I laugh about people holding up the US constitution as some sort of sacred document, when the right to free speech and the right to peaceably assemble has literally never been respected ever in the history of the country.

    Not immediately after the country was founded and the Alien and Sedition acts were passed.

    Not when abolitionists were protesting slavery.

    Not when unionists were fighting for the right to collectively bargain.

    Not during WWII when people were rounded up and put into camps for the crime of being Japanese.

    Not during the red scare or the civil rights movement, and certainly not at any point after that.


  • Oh? Is the orange man building nuclear plants and high speed rail at a rapid pace and for super cheap?

    No? Then can you explain to me why this comment is relevant at all? I’m aware that China has shitty policies in regards to some minorities, but are you insinuating that’s the reason they’re able to build infrastructure so quickly?

    No? Then who is being oppressed when companies are forced to “tow the line” and complete a project quickly instead of stopping to sue each other and/or the state constantly like they do in North American? Am I supposed to feel bad for Guangxi LiuGong Machinery Co? Is China Energy Engineering Corp Ltd crying in the corner?




  • Companies and individuals play by different rules.

    When a big company purchases software a team of people from both parties (whose entire job and career are based on doing this) negotiate with each other to decide exactly who is liable for what and to what degree.

    When you purchase software you agree to let the company fuck you over at their leisure because you literally do not have enough hours in the day to even read everything you agree to, let alone understand it, let alone argue with it. And even if you did you don’t have enough bargaining power to make a large company care.





  • I understand your frustration and I apologize for reading into your comments something you didn’t mean. I, too, wish people would say what they mean and mean what they say, and that when you say something its taken to mean what you said.

    Unfortunately very often people will make a very reasonable (even factually true) point as a preamble to support something very unreasonable. If you agree with the reasonable point the person will then act like you agree with the unreasonable one. This is not only more time consuming and tiring to argue against, it also lends a great deal more credibility to the unreasonable point than it is really owed. To the uninformed reader to looks like the two sides of the argument partially agree, when nothing could be further from the truth. Its immensely frustrating to have your words used against you like this, so many people try and preempt it by jumping straight to (what they assume to be) the unreasonable point and arguing against it directly.

    This is toxic for actual discussion. It means that good faith actors have to add all sorts of qualifications and clarifications about where they stand before they say anything about anything, which is tiring in itself. But its the world that we live in. If someone makes an unqualified comment about the CO2 emissions of volcanoes in a thread about anthropogenic climate change people are going to assume that they don’t think climate change is real. And, operating that way, those people will be right more often than they’re wrong.