1. 79

Previously: https://lobste.rs/s/a3zlgq/what_software_do_you_dream_about_do_not

  1.  

    1. 50

      A next-gen scripting language; I feel like the current ontology of “Python, Ruby, JS and sometimes Lua” has some good room for improvement from the functional language/Rust/Gleam culture. Something with a strong-ish type system with sum types instead of 1990’s “OO everything”, gradual typing built in from the start, and still keeping an emphasis on fast iteration and smooth development. A compiler built around JIT or incremental recompilation might be nice. Julia and Crystal are steps in the right direction but personally neither really quite makes the leap from “good” to “excellent enough to want to learn and use vs just bashing something out in Python”. Roc might be going in the direction I want?

      A language-agnostic program runtime and software build/distribution system that stores programs and libraries as wasm or another openly-specified bytecode, then makes CPU-portable and efficient programs by AoT-compiling them to super-optimized static native code on installation. You know, like Android does with dex. I think this solves a lot of the issues that currently exist with DLL’s. It would let people distribute code as portable binary libraries, build code with portable libraries, not have the runtime overhead calling of dynamic linking, and enable the code inlining and optimizations it disallows. But you could still do things like distribute updated libraries or make plugins for a program (again as bytecode), plop them on an existing computer, and the system would just recompile the programs that need them. The main downside is it’s pretty difficult to always go from bytecode to native code as well as you can go from source code to native code.

      A browser scripting environment that enables automatic FFI generation for any language that can target wasm. This kinda exists but has the Slight Issue that any language using it essentially has to be able to talk with JS’s bonkers object model and API assumptions, which usually isn’t worth the effort vs just writing your damn thing in JS.

      A web browser that takes a sane subset of HTML and the browser API, and comes with lots of conformance and test suites so other people can make other browsers using the same subset of functionality.

      Something nicer than email, intended for resilience and abuse-resistance. (I’m dreaming about it, I don’t know how to do it.)

      Something nicer than Discord/Zulip/whatever for chat, built around a peer-to-peer pubsub model from the start but less grotty than XMPP.

      Something nicer than IPFS for sharing host-anywhere content-hashed data. And then a crypto identity system built on top of it that lets you do public-key signing and encryption of messages and stuff.

      About a million video games.

      …yeah, I don’t understand the people who ask “how do you come up with ideas for things to build?”

      1. 7

        Reminds me of UNCOL, TenDRA TDF, ANDF, Taos/Taos and even LLVM bitcode. Some more successful than others, some more effective at being actually architecture-neutral than others.

        1. 4

          Also ChrysaLisp, which is made by a former Taos engineer. It’s both a reimplementation/imagining of TaoVM, and an entire desktop environment and Lisp dialect, but you could focus just on the VM part.

          1. 2

            Oooh, thanks! Sounds like there’s lots of prior art to learn the mistakes of then. :D

          2. 6

            I’ve (not) been working on this in the background as a long-term project for a while, now, as someone who has zero experience with writing compilers; I call it Rumland (it was initially a pie in the sky idea of an ML-inspired typed scripting language that compiles to Ruby or otherwise interoperates w/ the Ruby ecosystem, then I decided to just do the most minimal, fastest-compiling ML-inspired typed scripting language I could.)

            I wanted a scripting language like a mini-Haskell that can do cold builds of at least small scale personal programs (< 100k SLOC), including linking, within tens of milliseconds on a half-decade-old mid-range machine. I wouldn’t mind compiling mid-range programs like ~500k SLOC w/ dozens of transitive dependencies that fast as well, but the main focus is personal programs of < 10k SLOC, then small (but really nice to use and good looking of course) open source projects off less than 100k SLOC.

            As soon as I get it compiling a very minimal language of only ADTs, functions, basic effect tracking, imports, and a tiny stdlib, I’ll lock any further changes that don’t maintain that build performance; if I have to give up all the Haskell-inspired niceties I have in mind, I’ll do it. (It’s not a public project, but I may one day make it one.)

            I’ve been keeping an eye on Roc as well, and it hits a lot of the same stuff I started this project for; I love that they do their own linking (and I love the recent growth in interest in linker performance in general, e.g. mold, wild).

            1. 4

              neither really quite makes the leap from “good” to “excellent enough to want to learn and use vs just bashing something out in Python”.

              This is the problem, though. Nothing can make a very compelling case vs. using Python, at least not enough to justify the learning cost. Of the languages you list, you can already use Gleam/Elixir for scripting. There’s also F# - I’ve personally used it as a scripting language for quite a bit. You have always been able to use lisps like Racket or Clojure (via Babashka) for scripting, and there’s a slew of neolangs that try to innovate in this space. But there’s nothing so compelling that would make you want to give up everything you have. Nobody wants to give up the comforts of a familiar language to learn one that is marginally better, and at the end of the day, that’s what all of these “next-gen” improvements are. That’s one of the reasons why I’m looking forward to the upcoming stabilization of cargo-script; Instead of a new language that has all the shiny features of rust that make it comy for me to use, I’d rather just use rust for scripting too, if I can help it.

              1. 6

                Yeah, but I’m a language nerd, so if the language is neat then for me the learning cost is potentially negative. :-P And lately a lot of my own scripting-language needs are not “get this big program to work robustly” or even “do a lot of talking with this particular domain-specific library”, but just juggling and automating fairly basic things. It feels kinda wrong to use Elixir or F# for such things, though maybe I should work harder on giving it a go. Jank also looks like it might make me actually want to write clojure, too.

                It’s just… It’s not that hard to write a shell-script-like pipeline that’s nicer than Python’s subprocess lib, and I would kick a puppy to the moon for something with the built-in facility to take a bunch of JSON, stuff it into a an in-memory table (or even a persistent one), and let me query it like the database it is instead of rolling my own indices and joins with hashtables checking for the fields I care about. …hell, that alone might be a killer feature to build a language around. There’s lots of annoying REST API’s out there that force you to do this sort of thing to get the information you want.

                1. 3

                  And lately a lot of my own scripting-language needs are not “get this big program to work robustly” or even “do a lot of talking with this particular domain-specific library”, but just juggling and automating fairly basic things. […]

                  It’s just… It’s not that hard to write a shell-script-like pipeline that’s nicer than Python’s subprocess lib

                  And in the parent comment:

                  A next-gen scripting language; I feel like the current ontology of “Python, Ruby, JS and sometimes Lua” has some good room for improvement from the functional language/Rust/Gleam culture. Something with a strong-ish type system with sum types instead of 1990’s “OO everything”, gradual typing built in from the start, and still keeping an emphasis on fast iteration and smooth development. A compiler built around JIT or incremental recompilation might be nice.

                  These strike me as requirements for very different languages: the first one is a shell language that revolves around running pipelines of commands while the second is a more traditional scripting language.

                  But the idea of exposing an SQLite database as a type in a shell language is interesting. I’ve been thinking of a slightly different angle: streaming an SQLite table contents as a way of providing statically-typed pipelines (still very fuzzy admittedly).

                  1. 3

                    I’d say F# fits what you want, especially the last bit. You can use LINQ to query over an array, so you could do basically everything you wrote. The only sticking point would be calling subprocesses, but I’m sure there’s a library that makes it easier, or you could write the boilerplate for that once and put it on nuget.

                    1. 1

                      Hmmm, thanks. I’ve used F# before for medium-sized things and it’s been pleasant but I’ve never tried using it for scripting stuff. Given that u/pyj agrees with you in the sibling comment, I’ll give it a try sometime.

                    2. 2

                      take a bunch of JSON, stuff it into a an in-memory table (or even a persistent one), and let me query it like the database

                      Have you played with kdb+/q at all?

                      1. 1

                        Never heard of it, I’ll have to check it out! Thanks.

                        1. 1

                          DuckDB is great for that.

                        2. 1

                          Somewhat in that direction is my Next Generation Shell. Preparing arguments for calling external programs, running external programs (curl to JSON API for example), parsing their output, handling their exit codes properly, small scale data manipulation are the intended use cases.

                          Small scripts “should not suffer” from language capabilities (no public static void main). If you decide to have main() you get automatic parsing of command line arguments to fit main() definition, of which you can have several because it’s a multimethod.

                          https://github.com/ngs-lang/ngs

                          https://github.com/ngs-lang/ngs/wiki/Use-Cases

                          Hope this helps

                        3. 5

                          Racker or Clojure

                          and also Common Lisp, specially with http://ciel-lang.org/ which can be seen as Babashka-like (without the platform limitations):

                          • it’s a batteries included Common Lisp binary
                          • that runs scripts fast, without a compilation step
                          • that improves on common pain points for newcomers
                          • it’s also a core image and a normal library, so than we can code interactively in our editor.

                          it’s still alhpa, we are refining it and adding more features.

                          1. 2

                            Ciel looks really cool. I read the docs yesterday and liked almost everything I saw. I feel like I want to start a new project with it, or maybe retrofit one I’ve started but haven’t done much with yet.

                          2. 1

                            There’s also F# - I’ve personally used it as a scripting language for quite a bit

                            I also tried using F# as a scripting replacement for Python, and had very similar experience and opinion as what you found. It was amazing to me how great it worked with .Net Core across Windows/Mac/Linux.

                          3. 3

                            …yeah, I don’t understand the people who ask “how do you come up with ideas for things to build?”

                            I don’t ask that exactly, but I do get stuck not having enough ideas about how to implement those ideas.

                            About a million video games.

                            This in particular, I have long lists of ideas but any one of them is just discouraging to think about how to produce the intended effect. I have a resolution to do at least one game jam this year, the last two years I’ve struggled after a fairly productive 2022 (when I was between jobs).

                            1. 3

                              but I do get stuck not having enough ideas about how to implement those ideas.

                              Hmmm, do we need «What software you’d try implementing, but would want to discuss implementation design first» threads?

                            2. 2

                              On the next-gen scripting language thing… and having chatted with you a bit about some of the past work we’ve both done… one thing I was thinking about the other day on the way back from a flight test campaign was how much the Lua scripting in ArduPilot scares me. It’s an incredibly powerful feature but also seems like it has potential to have unbounded runtime that could cause problems.

                              A potential solution I scribbled down was to use a more limited VM that is amenable to ahead-of-time verification for bounded execution time and remembered https://ebpf.io/. The pseudo-C code that you use to write most eBPF code is… not great and a long way away from being an easy scripting language, but it seems like a language similar to what you’re describing could be compiled down to something like eBPF and used safely for that kind of scripting.

                              1. 2

                                Ooh, yeah, scripting for high-safety systems sounds like a very interesting and very tricky proposition. Verification would be good, but you’d probably also need a good simulation framework. Do it well and there might be a pretty great market for it though, and Eris knows it’s a market that needs more convenient tools!

                              2. 2

                                Something nicer than IPFS for sharing host-anywhere content-hashed data.

                                It’s relatively easy to take https://github.com/n0-computer/iroh nowadays, and either built-in https://www.iroh.computer/proto/iroh-blobs , or just something custom with bao for incremental hash verification. Depending on what you want it to do exactly, could be a little spin on top of the minimal demo app they have: https://github.com/n0-computer/sendme

                                Something nicer than Discord/Zulip/whatever for chat, built around a peer-to-peer pubsub model from the start but less grotty than XMPP.

                                Something nicer than email, intended for resilience and abuse-resistance. (I’m dreaming about it, I don’t know how to do it.)

                                These are two things I could try to incorporate into https://github.com/dpc/rostra

                                With email-like applications the whole problem is the high level “how to do it”. We’d want something that anyone (or a lot of potential senders) could send you an email while preventing spam and abuse. These two contradict each other. I’m hoping a “only friend of my friends” could be a reasonable mdidleground, which is adjacent to what I’m already implementing.

                                1. 2

                                  Something nicer than IPFS for sharing host-anywhere content-hashed data. And then a crypto identity system built on top of it that lets you do public-key signing and encryption of messages and stuff.

                                  Sounds rather like Veilid

                                  1. 2

                                    Something nicer than IPFS for sharing host-anywhere content-hashed data. And then a crypto identity system built on top of it that lets you do public-key signing and encryption of messages and stuff.

                                    You might be interested in Peergos, which does cryptographic identity, signing and encryption on top of a much more efficient ipfs implementation.

                                    https://book.peergos.org

                                    1. 2

                                      I think this solves a lot of the issues that currently exist with DLL’s. It would let people distribute code as portable binary libraries, build code with portable libraries, not have the runtime overhead calling of dynamic linking, and enable the code inlining and optimizations it disallows.

                                      This sounds interesting. What would the ABI look like across langs?

                                      1. 2

                                        I dunno! Probably a lot like what any ABI looks like, which will be imperfect by necessity. The nice thing about wasm is you can use unmanaged memory with it, mostly unlike JVM or .NET, but then adding managed memory a la the GC proposal is a bit of a mess. So I kinda feel like the ABI is not the special part here and will never be able to be perfect, it just has to be something that does the job pretty well. An AOT compiler/optimizer should hopefully be able to make most of the ABI go away with whole-program opt when the program is turned into native code.

                                      2. 1

                                        Something nicer than Discord/Zulip/whatever for chat, built around a peer-to-peer pubsub model from the start but less grotty than XMPP.

                                        Not less “grotty” than XMPP, because it’s built on top of XMPP, but I recently found Applesauce, a project that plans to use https://spritely.institute/ and XMPP to build a peer-to-peer pubsub social networking platform like you describe.

                                        1. 1

                                          Your link is broken. Here’s the right one: https://spritely.institute

                                          1. 1

                                            Thank you for catching my mistake!

                                        2. 1

                                          rakudo (perl6) is pretty cool.

                                        3. 29

                                          A messaging client with virtual contacts and virtual group. That is, for a contact, it merges their messages from multiple protocols (email, signal, slack, …) into one conversation view; any reply, by default, responds via the protocol they last used. Similarly for a group, I can merge channels into a single view. (A “work” view that merges all my work channels into a single conversation / stream)

                                          I’m sure it wouldn’t work in practice, but I often dream about it.

                                          1. 5

                                            Both webOS and the Newton had this. I also really miss it, but I don’t know how to do it in today’s siloed world

                                            1. 3

                                              Oh yes, I’ve been dreaming of something like this as well! It could also display text messages, or that a phone call was made (without showing a recording; but even just the metadata would be useful).

                                              1. 4

                                                Totally!

                                                It kills me that the iOS Phone app shows calls inclusive of Facetime, WhatsApp, Signal, etc. It’s like 10% of the way there!

                                              2. 2

                                                I haven’t tried it but I think that’s how Beeper works.
                                                They’ve had trouble keeping iMessage working since it’s cat and mouse with Apple.

                                                1. 2

                                                  Thanks, I just gave it a whirl. I can’t seem to get it to merge contacts, though.

                                                2. 1

                                                  I started prototyping something like this 12 or 13 years ago as more of a CRM system but with a very similar conops. It’s such a gnarly problem and I think that problem has gotten even worse as a bunch of protocols have closed up again (XMPP and IMAP weren’t bad to integrate against back then). Would absolutely love to see (someone who isn’t me) build this tool!

                                                3. 18

                                                  I like to sing karaoke, and at pretty much every karaoke bar I’ve ever been to (in the US), the playback and the management of the queue/rotation are done by an application running on a Windows PC. And the most popular such systems still don’t have the seemingly obvious feature of letting singers submit their songs to the queue via a mobile app. So we have to talk to the DJ/host or write our songs on a slip, and the latter isn’t a practical option for me because I’m (partially) blind (though if I’m there with friends, they’re happy to do it for me). I also want to do fancier things like having a computer control the whole sound system, including mic volume and (tasteful) effects on the vocal.

                                                  The fact that the existing software is bound to Windows is itself a problem. Just yesterday evening, the DJ had to wait on Windows Update while rebooting to troubleshoot another problem where the wrong audio device was selected. He vented to me about how he tried to turn off Windows Update, but sooner or later Windows insists on installing the update anyway, and very often that process screws up some other aspect of his setup (he mentioned codecs; I didn’t probe further).

                                                  So I’ve been daydreaming, and talking to my long-suffering karaoke friends, about my ideal karaoke system for almost 10 years now.

                                                  In my ideal system, the main playback and queue management program would run on a headless single-board computer (a Raspberry Pi or the like), running an optimized base OS. The DJ would control the system over the network using a client app on a laptop, tablet, or whatever. And, as I said, the singers would connect to it from a mobile app, ideally without going out to a remote server and back once the connection is bootstrapped. The core playback engine would be optimized for low latency so that, at least as an optional add-on feature, that program could process mic input as well.

                                                  I’m happy to write about this at more length, or share parts of a design document I wrote a few years ago (as an email to a friend), if anyone’s interested. Like I said, I’ve been mulling over this for years.

                                                  1. 7

                                                    I’m not sure what it’s running on the backend, but if you’re ever in Portland, OR, check out Voicebox. For years now (10? more?) they’ve had a system that looks great on-screen, plus has extensive support on mobile web. You can submit to and reorder the queue, change volume and key shift, control the lights and disco ball, save favorites to a list, post funny pop-up messages on the screen while your friends sing, view your personal history with dates, and even submit requests to the venue for later. Check it out at vbsongs.com.

                                                    1. 3

                                                      Very cool. That’s for a private room though. I think there’s still a place for public karaoke mediated by a KJ, and that’s what I’d want to focus on.

                                                      1. 1

                                                        Also in portland i went to a karaoke bar and the DJ had a qrcode thing which would take you to a URL to queue.

                                                        1. 1

                                                          Which bar? I wonder how good their music selection was. A friend told me about one package he knows of that has that kind of queuing feature, but it only supports the karaoke music library provided by the same company.

                                                          1. [Comment removed by author]

                                                        2. 1

                                                          Yeah, now that you mention it, I’ve never seen a great public system.

                                                        3. 2

                                                          Well over 10! NodeConf 2011 had an after-party there. A prolific node developer (can’t remember who specifically) wrote an npm package for it while we were there.

                                                          1. 2

                                                            This rings a bell now that you mention it. Around then I was at Mapbox doing iOS stuff, but most of the company was into early Node and came out from DC for that conf.

                                                        4. 3

                                                          Not exactly what you are asking for but I think very close https://github.com/vicwomg/pikaraoke

                                                        5. 17

                                                          I would like a program that uses openstreetmap data, such as building heights and forest areas, as well as calculated position of the sun, to find good circular paths for taking a walk that lets you see the sun a bit. I live far north among tall trees and buildings and sometimes it’s quite a challenge to see the sun before it sets.

                                                          1. 12

                                                            Shademap seems to do about half of what you want: shademap.app

                                                            1. 2

                                                              shademap.app

                                                              this is amazing, thanks for the link

                                                              1. 2

                                                                Very interesting! Thanks for the tip!

                                                              2. 1

                                                                That’s a great idea, actually! I’d like such a tool, too! I’ve recently heard about OpenPV which is a german open-source web-based tool to calculate suitable positions to place PV panels and expected power generation. They rely on much the same data: building heights and vegetation, but OSM data wasn’t good enough for them. Still, maybe one could reuse some of their code.

                                                              3. 15

                                                                A federated uptime checker, or “mastodon for pingdom”. I’ll let you know when you’re offline if you let me know when I am”.

                                                                1. 2

                                                                  Ooh that’d be cool, I’d be happy to seed!

                                                                  1. 2

                                                                    I’m gonna build this someday soon I hope :)

                                                                    1. 2

                                                                      Would this be a goodness-of-everyone’s-heart thing? Why would people run it?

                                                                      (The Bittorrent in me is thinking about potential incentive models… how do we reward peers for telling us when we’re up since that is hopefully the common case?)

                                                                      1. 1

                                                                        The only reason to run it would be you have an online thing and you want to be notified when it’s offline. If you don’t have one of those then yeah goodness of your heart is probably the only reason to run it.

                                                                      2. 1

                                                                        I once got a ping from some random person on irc when my homepage was down. That felt very federated and small-web :) I mean it had probably been down for two days at least, but OTOH probably no one was affected except that person who told me.

                                                                      3. 13

                                                                        If I had the time I’d love to make something that teaches assembly by setting progressively harder challenges that you solve in a simulated RISC-V system. Something like what the Lichess website uses to teach Chess combined with the Little Man Computer.

                                                                        You would start with only RV32I and it would make you do some loading/storing and arithmetic and loops. Gradually the CPU would gain the M(ultiply), B(itmanip), and C(ompressed) extensions and you would have to complete challenges with limited instructions or memory. Eventually a second core would be added and you’d get the A(tomics) extension, or the privileged spec would be introduced and you’d have to correctly handle interrupts and syscalls from an unprivileged program.

                                                                        I think it would be a fun way to learn assembly and basic computer architecture and realistically someone could make and evaluate something like this for an undergraduate dissertation.

                                                                        1. 5

                                                                          Something I dream of, too. I’ve thought about how to build up in abstraction from something like a Zachtronics game, some discussion in this old blog post (and this older one).

                                                                          I tried doing this in a graduate program but never really got my act together. If you do find the time I’d love to see how it goes, please reach out if you’d like to talk through the design.

                                                                          (Edited a few times but) in case you haven’t seen it, there’s a neat modern take on assembly-ish programming puzzles in Human Resource Machine (and a parallel programming sequel!). The ambitious Turing Complete has you build a computer from gates and design a machine code for it.

                                                                          1. 3

                                                                            You might be interested in the games TIS-100, Exapunks, Shenzhen I/O, MHRD, and Comet 64.

                                                                            1. 4

                                                                              and peruse even more similar/adjacent over at awesome-engineering-games

                                                                              1. 1

                                                                                Ooo thank you for the link, I appreciate this!

                                                                              2. 1

                                                                                Shameless plug, but if anyone’s interested in one-instruction set architectures, I made a TIS-100-like subleq programming game that is free: https://jaredkrinke.itch.io/sic-1

                                                                              3. 2

                                                                                Have you seen human resource machine? It might not be the specific instruction set you’re after, but many of the elements you mentioned are there.

                                                                                Edit: whoops, I see a sibling poster already mentioned it. It’s a great game though.

                                                                                1. 2

                                                                                  Not specifically about assembly but nand2tetris sounds similar that it may be inspiring at least.

                                                                                2. 13

                                                                                  My own full-featured, daily-driver text editor and command shell. I don’t need such a thing and other existing alternatives would probably be better anyway, but I just think it would be cool to have my own. I could then say I am a true Jedi Master, having constructed my own lightsaber. I’ll probably do it eventually - i actually have almost all the prerequisite pieces at this point - but who knows when. The first months using it would surely be lots of pain as I do vim/bashisms out of habit and find they don’t work lol.

                                                                                  1. 13

                                                                                    Would love it if this existed. There should be enough info in LSPs to pull it off in a generic language agnostic way:

                                                                                    • mark some functions / classes in VSCode
                                                                                    • mark some arguments / locals
                                                                                    • click a button
                                                                                    • get a generated excalidraw diagram of the control and/or data flow for just the marked bits
                                                                                    • bonus points: automatically find the missing calls in between the marked functions (auto-updated as you mark more elements)
                                                                                    1. 3

                                                                                      I’m super curious about this now too. Back in 2009 I did something like this for a course project in grad school. It was only for Python and because of some of the hyper dynamic pieces (eval and friends) it wasn’t perfect or exact but it was really useful for navigating unknown codebases. Being able to put the starting point on main and the endpoint on file.write and seeing every path through the program that can write to a file is a really amazing superpower.

                                                                                      1. 1

                                                                                        Oh mannn I would love this too. The closest thing I’ve found is Intellij’s dataflow analysis, but it’s designed more for following dataflow too/from a single point in a program rather than between two points. I started looking at writing a vim plugin to do this one weekend, but never got around to reviewing enough about how LSPs work to make it happen…

                                                                                      2. 13

                                                                                        A smalltalk where every single message is defined as a file in the file system. To be one of the easiest glue languages.

                                                                                        • No subclasses
                                                                                        • Classes are defined as folders that have messages within them.
                                                                                        • Message signatures are the file name.
                                                                                        • If you want to share implementations you symlink from one message to the other message. This works perfectly well so long as the parameters you require being passed are at least the same in number between both messages.
                                                                                        • If a message is actually a dynamic object, then that dynamic object is used for the invocation instead, allowing full FFI transparently.
                                                                                        • If a message is actually an executable, then the program is run. The combination of this feature and the above feature allow for seamless integration between this language and any other.
                                                                                        • When you create a class, you can of course decide to symlink most of the implementations present in a base class.
                                                                                        • If you have a dependency, such as on another library, that dependency is probably bringing you a class. Well, that class can just be copied into your source tree. Tooling can then rise up around making sure that dependency is in date while innately you own your own dependency and can edit it like any other code.
                                                                                        • When the daemon starts, the initial message to pass is defined by the user on the command line. It could have some same default such as calling a Main main

                                                                                        When I first dreamed of this, I figured I would write it in C for the ability to load objects. These days I would write it in Zig because the ability to compile and load and work with the compiler at runtime is incredible.

                                                                                        This would change the nature of the image in smalltalk to be fully compatible with Git and modern deployment mechanisms of “tar it and copy.”

                                                                                          1. 1

                                                                                            Not before. It looks like a tool for treating arbitrary endpoints in a RESTful world as actors?

                                                                                            1. 2

                                                                                              I hadn’t considered it from that perspective; I guess so!

                                                                                              The way I’d internalised it was as mapping HTTP’s verbs and semantics to Smalltalk method dispatch. In section four they show how the principle can be extended to filesystems.

                                                                                              1. 3

                                                                                                Smalltalk method dispatch gets a nice separation between invocation and implementation.

                                                                                                Similar effect with HTTP verbs.

                                                                                                So does event streaming.

                                                                                                So do Doors for the Solaris filesystem.

                                                                                                These things end up increasing reuse, since you can “just” trigger an event or a PUT/GET or open a file or dispatch a message and your obligation has ended. If that invokes a whole world of IT compliance or business logic mazes or triggers a supercomputer batch job… you don’t care. Suddenly previously built components can, with minimal knowledge, be glued together. Assemble a table of ways to get the result you need, and put a little “cost” next to each one, and even business people can make some decisions about what gets glued to where to achieve your goals.

                                                                                                We have a lot of languages to do work. We have far fewer good options for glue languages. TCL tried a bit. Python tried a lot. Lua tried a bunch. None of them managed to really explode into “Glue all the things together” territory.

                                                                                                Hence my dream of doing this as local objects, functions, commands, and interpreted piles. Escape from “GusteauTalk” (as my .git repo is named for this project) into a Real Language as soon as you like.

                                                                                                I can’t do all my BigInt processing as HTTP calls, the overhead is too high. But local process execution, or Dylib invocations? I think we can do that.

                                                                                                1. 1

                                                                                                  Where do you put Plan 9 / 9p in this?

                                                                                                  1. 2

                                                                                                    It’s a useful implementation to study. I’m not really sure why it didn’t catch on when these other mechanisms did.

                                                                                          2. 3

                                                                                            If you want to share implementations you symlink from one message to the other message. This works perfectly well so long as the parameters you require being passed are at least the same in number between both messages.

                                                                                            Holy hell, this solves the diamond inheritance problem so effectively. If I recall (it’s been a long time), Smalltalk typically wants you to use mixins instead of subclasses. This approach is such a simple and effective way to do highly granular mixins. Very nice!

                                                                                            1. 2

                                                                                              If I recall (it’s been a long time), Smalltalk typically wants you to use mixins instead of subclasses.

                                                                                              Traditional Smalltalk doesn’t have mix-ins and does absolutely encourage subclassing; I think you’re thinking of Ruby. Many modern Smalltalks do have mix-ins in one form or another (e.g., Pharo has Traits), but that’s a fairly new additon, and IMHO doesn’t honestly mesh terribly well with the rest of the system

                                                                                            2. 2

                                                                                              Why message per file? What about smalltalk makes it hostile to writing code for it like a regular programming language, where you put all the code for a class in a text file, and you do inheritance via syntax in a text file rather than symlinking a bunch of stuff?

                                                                                              1. 2

                                                                                                Smalltalk has no syntax nor does it need syntax for defining the message interface. The per-file approach allows you to save the message interface as the filename, keeping it out of the syntax of the message itself. It also allows sharing implementations with different messages if suitable.

                                                                                                Smalltalk being image based makes it hostile to modern deployment mechanisms. Arguably these are not necessary with smalltalk, where you ship the image instead of shipping a separate built artifact, but it’s difficult to impossible to “dip your toe in” on doing so with such a radically different deployment story.

                                                                                                Smalltalk is designed generally around the Image. You write your code in the image and you ship the image. Anything to convert to git or whatever is a translation layer.

                                                                                                1. 2

                                                                                                  Is the image file (as a concept, not the ST implementation) really a barrier in this day and age of Docker? What if they were layered something like Docker, where you’d have the language runtime, on top of that you’d have two “branches” of images, one containing your running / frozen project, and another containing the common development tools alongside your project-specific tooling and any source code you consider important not exist in the distributable artefact? The two “VMs” would communicate using code defined at the lower language-runtime level that is common to both.

                                                                                                  1. 6

                                                                                                    Is the image file (as a concept, not the ST implementation) really a barrier in this day and age of Docker?

                                                                                                    No. The image is great for deploying server apps and that!s the one place Smalltalk is still used. The problem with the image abstraction is that it splits the world into Smalltalk and alien parts. If you want to use a library that is not Smalltalk, either it’s stateless or it breaks the image abstraction. This is why Étoilé moved away from image-based persistence to versioned object graphs for model objects, so that you had a clean language-level abstraction for separating persistent and ephemeral state and could either explicitly serialise foreign state or treat it as ephemeral.

                                                                                                    1. 2

                                                                                                      So long as it can be packaged in an OCI image, I think it’d not be a blocker to deployment. Things like devpods show that OCI images make a compelling base.

                                                                                                      Smalltalks generally don’t know what a filesystem even is, though.

                                                                                              2. 12

                                                                                                A terminal editor like vim (which I use) but completely redesigned to be more 2025 aware, even more 1990s aware :D With text menus for certain things that are hard to remember, integration with LLMs, tabs and so forth. I don’t like much to go outside the terminal app, nor alike IDE-alike stuff.

                                                                                                1. 27

                                                                                                  You’re looking for helix.

                                                                                                  1. 4

                                                                                                    Thanks, just downloaded, I’m trying it.

                                                                                                    1. 7

                                                                                                      Came here to say this.

                                                                                                      1. 3

                                                                                                        As soon as helix gets vim keybindings, I’ll use it.

                                                                                                        I gave the helix/kakoune bindings a college try. Did not like them at all, the way it deals with trailing spaces after words messes up my workflow.

                                                                                                        But the LSP integration and over all more modern interface is just so much better than neovim.

                                                                                                        1. 7

                                                                                                          There is a fork called evil-helix, not sure how good it is

                                                                                                          1. 3

                                                                                                            Helix is never getting vim keybindings, unfortunately. You can get Neovim to a comparable place, but it takes quite a bit of work. telescope.nvim for improved UI elements, which-key.nvim to display hints for key sequences, coc.nvim for code completion… and you may still need to mess around with LSP configs.

                                                                                                            1. 2

                                                                                                              I’m a fairly happy neovim user; I have all the functionality I need and none of what I want, in 300 or so lines of lua and a few plugins.

                                                                                                              But I have to admit that interacting with the helix “shell” (I don’t know if that’s the term; the colon command stuff) is much nicer than the vi legacy stuff. They’ve thought it through very nicely.

                                                                                                              Why won’t neovim get vim keybindings? Last I heard they were going to embed a scheme in it, I thought they were going full bore on configurability.

                                                                                                              1. 2

                                                                                                                The Helix project’s official stance is that they’re uninterested in enabling alternative editing paradigms. I would assume this philosophy will extend to the functionality exposed to the plugin system, although we won’t know for sure until said plugin system actually exists.

                                                                                                            2. 2

                                                                                                              There’s a vim-keybinding plugin for VS code, ever try it out? I found it not perfect, but quite satisfying. Doesn’t necessarily integrate well with menus and stuff though.

                                                                                                              1. 4

                                                                                                                what’s vscode got to do with terminal editors? :)

                                                                                                                1. 2

                                                                                                                  I missed that bit! Though it does better than most graphical editors, since you can tunnel it over SSH to work on a remote system. Not perfect, but works pretty well.

                                                                                                            3. 2

                                                                                                              nor alike IDE-alike stuff.

                                                                                                              I feel like helix tends a bit toward the IDE-alike direction. But OP also asks for “integration with LLMs” which is another thing I’d say tends toward the IDE-alike direction, so I can’t say I’m sure what @antirez means by that criterion.

                                                                                                              1. 1

                                                                                                                Or kak or zed or … what xi aspires to be, hows it doing?

                                                                                                                1. 1

                                                                                                                  Unless they finish plugin system, there’s no LLM integration yet. I do aware of workaround like helix-gpt

                                                                                                                2. 5

                                                                                                                  Have you seen flow?

                                                                                                                  1. 1

                                                                                                                    I’ve fully converted all my terminal editing over to flow, it just feels right

                                                                                                                  2. 3

                                                                                                                    What about emacs in the terminal with evil mode? That would hit a lot of your points.

                                                                                                                    1. 2

                                                                                                                      emacs definitely feels like an IDE to me when I’ve tried it. Even without a pile of plugins it still loads noticeably slower than the other terminal editors I’ve tried like vim, and then when I’ve asked about this, people tell me I need to learn “emacs server” which seems even more IDE-tastic. Lisp is cool and undoubtably there’s a lot of power & depth there, but like Nix I think I need to make it part of my personality to realize the benefits.

                                                                                                                      1. 2

                                                                                                                        I don’t even think you need to run emacs as a server, just have a little patience. Even with a huge framework’s worth of plugins my Emacs is useful in a couple of seconds.

                                                                                                                        1. 1

                                                                                                                          For my habits and workflow, 2 seconds to wait for a text file is completely unacceptable. What’s next, 2 seconds to open a new shell or change directories or wait for ls? Please do not advise me to “just” lower my standards and change my workflow to excuse poor software performance.

                                                                                                                          1. 3

                                                                                                                            For me, Emacs is started in daemon-mode when I log in (with systemd, but could be done perfectly well with one line in .xinitrc or even .profile). Then if I’m invoking it from the shell, I have a script that pops up a terminal frame instantly, and is suitable for using as $VISUAL for mail clients and such. I’m absolutely not trying to say you should do this, just that it’s the standard way for using a terminal Emacs in the “run editor, edit, quit” workflow (as opposed to the “never leave Emacs” workflow).

                                                                                                                            1. 1

                                                                                                                              It’s ridiculous to call loading an editing environment like Emacs “poor performance” with the features vs say Helix. Sometimes I use Helix for command line edits, usually I use Emacs for file editing. If you’re going to need all the fancy features of an editor you can wait <2 seconds like an adult, or use vim like an adult, but if you’re needing LLM integration and can’t wait shorter than a breath for your editor to load that is a you problem, not a problem with your editor.

                                                                                                                          2. 1

                                                                                                                            You really don’t need to make it part of your personality, but you do need to install it so you’ve got a server, and now make sure you’re running a version with aot compilation.

                                                                                                                            In fairness, I don’t think many people use stock vim or vs code as their daily driver either, because there are rich returns to mildly customizing your editor and investing in knowing it well.

                                                                                                                            1. 1

                                                                                                                              I don’t think many people use stock vim or vs code as their daily driver

                                                                                                                              I’m actually pretty curious about this. Does anyone know if there’s data on this?

                                                                                                                              I think my only Vim config for a long time was “set nocompatible” and “syntax on” (both of which I don’t seem to need these days). Oh, and “set nobackup”. VS Code, I think I only disabled wordwrap. Emacs required a bit of customization (cua-mode, SLIME, selecting a non-bright-white theme), but I’ve used it a lot less than Vim and VS Code. I used to be big on customization, but I guess I never got into customizing editors–not sure why…

                                                                                                                        2. 3

                                                                                                                          I’ve been plugging lazyvim hard of late, and I think it’d fit your needs without leaving vim and not spending an eternity configuring stuff:

                                                                                                                          text menus for certain things that are hard to remember

                                                                                                                          which-key + most things being bound to leader (i.e. space) make it super easy to find how to do things, and autocomplete on the command line takes you the rest of the way

                                                                                                                          integration with LLMs

                                                                                                                          Comes with one-button setup for copilot, supermaven and a couple others. IME it’s not as good as VS code but gets pretty close; I’ve definitely not felt IDE AI features give me enough value to switch.

                                                                                                                          tabs and so forth

                                                                                                                          Tabs by default and very sensible keybinds for switching between them! https://www.lazyvim.org/configuration/tips#navigating-around-multiple-buffers

                                                                                                                          1. 3

                                                                                                                            try helix or kakoune

                                                                                                                            1. 2

                                                                                                                              Vim does have built-in tabs since quite a few years, by the way.

                                                                                                                              Moreover, you might want to read the Vim help on menu support, there is at least something for terminal mode.

                                                                                                                              Neovim seems to have built-in support for a terminal split, by the way.

                                                                                                                              1. 3

                                                                                                                                Vim does have built-in tabs since quite a few years, by the way.

                                                                                                                                Yes, since 2006 to be more precise, so vim added support for tabs 19 years ago.

                                                                                                                                1. 2

                                                                                                                                  I know about terminal split, but I don’t believe that’s the way. It was much better with 1990s MS-DOS editors… where they tried to bring you some decent terminal UI. Btw I see that I was suggested to look at a few projects, I’ll do! Thanks.

                                                                                                                                  1. 1

                                                                                                                                    Of course — the terminal part was just «if I am listing features that can be used nowadays without relearning the editor, I can as well mention that». But overall the situation with new features in Vim or NeoVim is better than you described, so in case you find some dealbreakers with mentioned editors — hopefully not but who knows (I do find dealbreakers there) — you can get at least some of the way from Vim.

                                                                                                                                2. 2

                                                                                                                                  zed has a great vim mode (seriously)

                                                                                                                                3. 12

                                                                                                                                  I want apps that do NOT want me to log in to do basic things, that can still sync via files or at worst via OS syncing primitives (iCloud/Google Cloud) and just let me do my thing without trying to jam “smart”/AI/social networking/gamification features or taking control over my life. I’ve made quite a few lifestyle changes over the last couple of years and it’s been awful trying to find apps I can use to help me do those; each and every one of them wants to put you on a treadmill where you sign up, give it control over everything and do things its way so you can be upsold on a subscription and forever locked in. There’s a wide variety of basic, everyday tasks - like tracking your expenses, workouts or diet, building habits - where there’s absolutely no basic apps that just do one thing well any more.

                                                                                                                                  There definitely are open source tools for these categories, but in almost all cases they’re all “self hosted”. I’m so, so tired of self hosting. I don’t want to have or maintain a server! Please for god’s sake just let me have an app that can sync via synthing, git or iCloud sync! I’ll even pay for it PLEASE!

                                                                                                                                  I’ve gotten so peeved at this of late I’ve actually started working on the kind of app I want to see. I don’t have the time for it, but I’m hoping to plug away at it over the course of the year until I have something that at least works for me.

                                                                                                                                  1. 3

                                                                                                                                    A compromise that you might be interested in is Mullvad’s model, where they make you log in (because they want to limit how many devices you can use it on (to five, BTW (I love how the readership here will let me nest parentheses))) but they go to lenths to make logging in easy - you only have to log in when you start using a new device, and all you have to give the app is an 8-digit number.

                                                                                                                                    1. 4

                                                                                                                                      Why parenthesis can’t be nested in “normal” settings is beyond my comprehension.

                                                                                                                                    2. [Comment removed by author]

                                                                                                                                    3. 12

                                                                                                                                      A decent, modern configuration management tool that isn’t written in a dynamic language. Something like ansible written in Go.

                                                                                                                                      Edit: I never understood why Hashicorp didn’t create this. It could have used HCL. Maybe because Mitchell was friends with Adam Jacob?

                                                                                                                                      1. 2

                                                                                                                                        Perhaps Pulumi is close to what you’re describing? Supports Go, Typescript, C#, Java with fully typed SDKs for every cloud

                                                                                                                                        1. 1

                                                                                                                                          No. I’m looking for on host configuration management like chef, puppet and ansible.

                                                                                                                                        2. 1

                                                                                                                                          Like Jetportch, before it was discontinued?

                                                                                                                                            1. 1

                                                                                                                                              It’s still Python but https://pyinfra.com/

                                                                                                                                              I am massively pissed off by Ansible’s appalling slowness, and I think pyinfra’s “up to 10x faster” is unambitious. A better performance target should be more like rsync.

                                                                                                                                            2. 11

                                                                                                                                              I lead a group of singers (not really a “choir”) of varying ability. I want something that can they can use to drill musical exercises (unsupervised) to get better at the fundamentals of “proper” music. The closest I’ve found so far is https://utheory.com/app/skills . I use it with them for rhythm, but I also want something that will improve their singing on pitch. I also want to avoid them having to install a prioprietary, closed-source app, so an online website is preferred. Ideally, I want it to focus on just the specific skills that I think are most important for the group’s repertoire, and not others (which would overwhelm them, or waste their time).

                                                                                                                                              I have the technical chops to code something like this myself, but not the time.

                                                                                                                                              1. 3

                                                                                                                                                I’m a pianist and would like some software to help me with some aspects of sight reading. Though the ability tends to improve with extensive practice, I’d like some exercises directed at some patterns that I have more trouble with.

                                                                                                                                                1. 2

                                                                                                                                                  I haven’t used it much myself but the guy who built itch.io also made an app to practice sightreading: https://sightreading.training/

                                                                                                                                                  1. 4

                                                                                                                                                    Playing with this for a few minutes, it looks like it’s generating random note sequences, which isn’t at all what you want for sightreading training. Like chess positions, most note sequences don’t show up in common practice music, and being able to sightread quickly and effectively is based on being able to read large hunks of note sequences at once.

                                                                                                                                                    1. 1

                                                                                                                                                      Wow, that’s very nice, I tried it for a while and it will certainly be very helpful. Thanks!

                                                                                                                                                  2. 2

                                                                                                                                                    It’s not free or open source, but you can run Auralia in the browser. We used this in high school/college for sight singing and aural skills exercises because the old fashioned way (private 1:1 lessons with a tutor) is not scaleable even for small groups.

                                                                                                                                                    1. 1

                                                                                                                                                      That looks really good, though a bit pricey. Will consider it.

                                                                                                                                                    2. 1

                                                                                                                                                      I use https://tonedear.com/ for ear training myself and quite like it.

                                                                                                                                                      1. 1

                                                                                                                                                        That looks good for what it aims to do. Unfortunately, for my use case, it’s beyond the level I need for my group.

                                                                                                                                                    3. 11

                                                                                                                                                      A magit-style Emacs UI for Jujutsu.

                                                                                                                                                      1. 10
                                                                                                                                                        • A good modern outliner, like Grandview or something. Ideally cross-platform, not Electron, able to emit HTML or Word docs with styles and a few other formats.

                                                                                                                                                        • A linter for MP3 collections that can check artist names, look up album titles, fix metadata etc.

                                                                                                                                                        • A linter for Debian-family sources.list files, that can check and, ideally, fix them.

                                                                                                                                                        • A native bare-metal version of Oberon (and/or A2 with Bluebottle) for the Raspberry Pi

                                                                                                                                                        • An easy FOSS webmail tool that enforces plain text and bottom-posting.

                                                                                                                                                        And developing that theme…

                                                                                                                                                        • A tool that can behave as a mailling-list manager (majordomo style) and as a web forum in one, presenting each user with their preferred interface.

                                                                                                                                                        • A blog/website commenting system that can syndicate with others over NNTP, so you can have large commenting systems, accessible offline via a reader.

                                                                                                                                                        • Step 2, bring mailing lists and fora and RSS into that, plus ActivityPub, so it’s an all-in-one open-protocol syndicated decentralised FOSS social network site.

                                                                                                                                                        1. 6

                                                                                                                                                          A linter for MP3 collections that can check artist names, look up album titles, fix metadata etc.

                                                                                                                                                          https://picard.musicbrainz.org/ or https://beets.io/ mayhaps?

                                                                                                                                                          1. 1

                                                                                                                                                            Thank you! I will look into these.

                                                                                                                                                            I have heard of Beets before but it fell off the bottom on my eternal to do list…

                                                                                                                                                            1. 4

                                                                                                                                                              I use both – Picard is good at fixing a large sets of files and allowing you to manually tweak the results. I use beets to import new music and manage everything once the metadata is cleaned up.

                                                                                                                                                              1. 2

                                                                                                                                                                I’ve had good luck with Beets a while back, though it was quite slow at the time I used it. Good for linting and tagging stuff as batches, not so great for everyday use.

                                                                                                                                                            2. 5

                                                                                                                                                              A good modern outliner, like Grandview or something.

                                                                                                                                                              When OmniOutliner went full hipster, I wrote a clone of OO 3. It can import OO3 and OO2 files (newer OmniOutliner can’t do the latter) and is mostly feature complete (undo is a mess and some of the keyboard shortcuts need some improvement). Written in Cocoa. Should work with GNUstep without much effort. Adding other exports should be quite easy.

                                                                                                                                                              I haven’t had time to work on it for years. Patches welcome!

                                                                                                                                                              1. 1

                                                                                                                                                                What changed in OmniOutliner that you didn’t like?

                                                                                                                                                                1. 1

                                                                                                                                                                  I can’t remember, it was 8 years ago. 3 crashed on startup so I bought 5 but most of the feature I wanted were in Pro and it could no longer open any of my files from 2.

                                                                                                                                                              2. 2

                                                                                                                                                                A good modern outliner, like Grandview or something.

                                                                                                                                                                Some day, I need to sit down with someone who uses an outliner and observe their workflow. I think it’s the only way I will really grok what they do.

                                                                                                                                                                I’ve tried outliner plugins for various text editors, including org-mode in Emacs, but I always end up falling back to just plain text for note taking and Markdown/LaTeX for longer writing.

                                                                                                                                                                I found your outliner notes but your description of Word’s Outline Mode sounded a lot like org-mode. I mean, I get that you don’t like the Emacs UI, you won’t get any argument from me there, but in terms of actual functionality, they sound pretty similar. I feel like I’m missing something!

                                                                                                                                                                1. 4

                                                                                                                                                                  I’ve heard this before. Quite a few times now in fact.

                                                                                                                                                                  I’ve been urged to make a demo video for Youtube showing how I work in one.

                                                                                                                                                                  I had a very brief look at org-mode. From this I concluded that it is not even remotely comparable. Big disclaimer: I don’t really know it, or use it, or understand it. It looks to me as if it is the beginning of the germ of something that could with a decade’s work become an outliner.

                                                                                                                                                                  Let me give 2 trivial examples.

                                                                                                                                                                  From the structural point of view, I need a tool that enables me to edit text in 3D. I need it to track at least 5-10 level hierarchies and let me view only of those levels and above, automatically hiding all text below that level. It needs to be trivial to promote or demote text: this is a single-key operation. It needs to store the hierarchy info as metadata, not in the text itself and when text is promoted or demoted it automatically updates the metadata.

                                                                                                                                                                  It needs to offer tools for very quickly, with a keystroke, move views. So I’m down at level 8 working on a complex multi-step procedure, say. All higher levels are invisible off the top and bottom of the screen. With a few keystrokes I can zoom out and see the overall structure of top-level chapters, find the comparable section I was working on 200 pages away, move there, zoom in, open up more hidden levels, zoom in more, until I find the paragraph I wanted, not by location and not by keywords but by structural location in the document, copy some text, zoom back out, go back to where I was, zoom back in, paste the text and have it adopt the hierarchical position of the destination not the source.

                                                                                                                                                                  This is all in one pane in a single big document; if “leaf nodes” are sub documents or separate files it’s useless to me. Then I must do the mental work of tracking what is where when that’s the outliner’s job.

                                                                                                                                                                  Then at a formatting level:

                                                                                                                                                                  It should track all these levels by style and can format them from a stylesheet automatically, so it knows the styles for heading levels 1-8 on its own, independently defined in a separate file, and for body text and other functional styles such as image captions, footnotes, endnotes, etc.

                                                                                                                                                                  It should automatically generate and update tables of contexts and an index from this.

                                                                                                                                                                  No manual formatting: formatting is programmatic according to structure.

                                                                                                                                                                  At the end of 2016 I wrote a ~350 page technical manual in 6 weeks in MS Word 97 this way, running under WINE on Ubuntu 64-bit. Producing the repro-ready print version took an hour or two on the last day: I took a marketing doc from the client, deleted all the actual text in it to make it a style sheet, saved it as a template, and applied that template to my text to make a final document.

                                                                                                                                                                  Then there were some checks and fixes, sure, but it was a few steps.

                                                                                                                                                                  Result, 350 pages of text reformatted in the client’s fonts and colours, with their logos, headers, footers, etc. In a couple of mouse clicks.

                                                                                                                                                                  The formatting stuff is very handy but not essential.

                                                                                                                                                                  It’s the adding an additional level of dimension to text, so it has a structure, one that can be manipulated by the program not by the operator editing markup, that matters. If I had to do this with markup it would be so much more work it’s not worth doing it.

                                                                                                                                                                  The points are:

                                                                                                                                                                  • a powerful logical structure editor for a large body of text
                                                                                                                                                                  • tools for automatically maintaining and editing that structure by the software, not the user
                                                                                                                                                                  • tools for quickly, instantly, jumping between different levels of view of that structure as a navigation method

                                                                                                                                                                  It’s not markup, so at any moment you can just leave outline view and you have a plain text file, or a Word doc formatted with styles, so that someone can work with it who doesn’t know what an outline is.

                                                                                                                                                                  It’s not markup so when you move stuff around, up or down, or in and out of the tree, the program updates the tree not you, taking a mental task away and automating it.

                                                                                                                                                                  Org mode, by comparison, seems to me to be… a cute but clunky shopping list applet?

                                                                                                                                                                  LibreOffice Writer’s headings view is… not even that. It’s a way of labelling print preview?

                                                                                                                                                                  Both are useless toys to me.

                                                                                                                                                                  As a comparison, think of MS-DOS 3 EDLIN compared to Vim 9.1.

                                                                                                                                                                  Yes, both are text editors. Yes, both have a command mode. Both can let you edit text files and save them. There is a trivial resemblance in the commands: EDLIN

                                                                                                                                                                  1,5 d
                                                                                                                                                                  

                                                                                                                                                                  … to delete lines 1 through 5, which surely has some vaguely similar Vim equivalent. I don’t speak Vi.

                                                                                                                                                                  But functionally, the smaller simpler tool is so trivial compared to the grown-up one that you’d insult a user of the pro tool if you expected them to move to the simple one on the basis of their superficial resemblance.

                                                                                                                                                                  Does that help?

                                                                                                                                                                  1. 2

                                                                                                                                                                    I think you didn’t look deeply enough at org-mode to really get a handle on its capabilities – for which I don’t blame you: it’s an extremely deep rabbit hole. From your description, really only the requirements that outline level be metadata rather than text, and that it not be markup are not strictly met. All of the formatting and styles and document production (index, TOC) are there, but go by way of export to LaTeX (admittedly icky). The logical structure editing is there with functions and keybindings: you could maintain and edit the structure by hand, but you wouldn’t. I’m absolutely not saying you should use org-mode, either. If it’s not for you, it’s not for you.

                                                                                                                                                                    For reference, I use org-mode for:

                                                                                                                                                                    • At work, a GTD-style task management system
                                                                                                                                                                    • At work, a tool for maintaining notes, attaching them to projects, and writing documentation.
                                                                                                                                                                    • At home, a bullet-journal style notes and task management system
                                                                                                                                                                    • At home, a zettelkasten style ideas-management system
                                                                                                                                                                    • At home, a substitute for Scrivener for writing fiction.
                                                                                                                                                                    1. 1

                                                                                                                                                                      OK, fair enough.

                                                                                                                                                                      But they do seem vast holes in the functionality.

                                                                                                                                                                      I mean, let’s say I had a sub-sub-chapter, starting at level 5 and it’s got say 75 sections with across them all maybe 52 itemised procedures, each of one to a few pages, each with its own substructure of 4-5 levels of hierarchy and one pic per step…

                                                                                                                                                                      And the client says, you know what? Take that out, make it its own chapter.

                                                                                                                                                                      In Word, or Grandview or PC Outline, that is about 3 keystrokes and a few mouse clicks. Collapse hierarchy, select subsection, cut, move elsewhere, paste. Maybe shift-tab to promote once or twice.

                                                                                                                                                                      If the hierarchy is markup in the text, I have a day or 2’s work there re-editing that. Or I write something to do it, in which case, you know, https://xkcd.com/1319/ applies.

                                                                                                                                                                      Or I have to learn some vveeeeeeerrrry elaborate commands.

                                                                                                                                                                      As for outputting from (say) Emacs to a typesetting tool such as Latex… jeez, life is too short. I’m paid to write words, not formatting commands. This is what I hated about DocBook. I spent at least 5x more time on the markup than the words.

                                                                                                                                                                      I will pay money for software that makes that pain go away.

                                                                                                                                                                      1. 3

                                                                                                                                                                        In Word, or Grandview or PC Outline, that is about 3 keystrokes and a few mouse clicks.

                                                                                                                                                                        It’s also about 3 keystrokes in org-mode, if you remember the keybindings. A few more if you forget and need to M-x and scroll through completions. You don’t have to re-edit the text to fix the levels, there are commands bound to keystrokes to do that. Including obviously ways to cut a subtree and paste it at another level.

                                                                                                                                                                        I agree with you about the typesetting workflow sucking. But it’s not enough to get me to use Word. For most things, I just export directly to HTML or ePub.

                                                                                                                                                                        1. 2

                                                                                                                                                                          Oh, yes, a small PS. The client loved the manual and the next January re-hired me for a second edition, which took 1/4 of the time but paid about half as much again.

                                                                                                                                                                          1. 2

                                                                                                                                                                            If the hierarchy is markup in the text, I have a day or 2’s work there re-editing that. Or I write something to do it, in which case, you know, https://xkcd.com/1319/ applies.

                                                                                                                                                                            Outliner packages for Emacs/Vim/etc. contain exactly that thing, already written and with keybindings attached. (Usually the structure of hierarchical markup is specifically amenable to that, too). Usually the format involved is such that it is a one-line command to do the level change manually, too. Both the bindings and oneliners are unusable without preexisting knowledge of the corresponding editor, of course.

                                                                                                                                                                            As for outputting from (say) Emacs to a typesetting tool such as Latex… jeez, life is too short. I’m paid to write words, not formatting commands.

                                                                                                                                                                            Well, for output to LaTeX it is again the preexisting code that generates those formatting commands (with a very simple structure). But yeah, the natural pathway to be OK with LaTeX is sometimes being paid to write formulas not only words. I need to edit formulas a decimal order of magnitude larger than what I already refuse to even watch edited in MS Word Equation Editor.

                                                                                                                                                                        2. 2

                                                                                                                                                                          I’ve been urged to make a demo video for Youtube showing how I work in one.

                                                                                                                                                                          Oh, please do!

                                                                                                                                                                          It needs to be trivial to promote or demote text: this is a single-key operation.

                                                                                                                                                                          With the caveat that I too am not an experienced org-mode user, I’m pretty sure org-mode does do that. Well, it’s Emacs, so rather than a single key the default binding is probably some eldritch sequence of finger contortions, but the basic idea is the same.

                                                                                                                                                                          Actually, I just found this 5-minute YouTube video that I think demonstrates this in org-mode: Emacs Org Mode Demo 2021

                                                                                                                                                                          I’d be interested to know if that’s the kind of thing you mean. (And I genuinely would be interested to see your own demo video.)

                                                                                                                                                                          It’s not markup so when you move stuff around, up or down, or in and out of the tree, the program updates the tree not you, taking a mental task away and automating it.

                                                                                                                                                                          I think org-mode stores the hierarchy info as markup, similar to Markdown heading levels, but it still automatically updates it as text is promoted or demoted.

                                                                                                                                                                          It’s not markup, so at any moment you can just leave outline view and you have a plain text file, or a Word doc formatted with styles, so that someone can work with it who doesn’t know what an outline is.

                                                                                                                                                                          This is interesting. I guess it is easy to export from any outliner to some other format but usually that’s a one-way operation. In Microsoft Word, I could presumably do all my work in Outline View, then give the document to someone else who knows nothing about outliners, who then makes a bunch of changes in the normal Word manner, and then I could take the document with their changes and continue working on it in Outline View. As long as they haven’t done a load of manual formatting, that should be fine, right?

                                                                                                                                                                          Do other outliners have any equivalent functionality? If I gave someone a document that I created in Grandview, could they edit it (in what? a plain text editor?) and then give it back to me in a way that I could import back into Grandview?

                                                                                                                                                                          I don’t speak Vi.

                                                                                                                                                                          Incidentally, you pretty much do. In this case, the vaguely similar Vim equivalent is exactly 1,5 d. vi‘s command mode is ex, which is very slight variation on ed, on which EDLIN was based. We’ve come a long way in the last 45 years…

                                                                                                                                                                          1. 3

                                                                                                                                                                            In Microsoft Word, I could presumably do all my work in Outline View, then give the document to someone else who knows nothing about outliners, who then makes a bunch of changes in the normal Word manner, and then I could take the document with their changes and continue working on it in Outline View. As long as they haven’t done a load of manual formatting, that should be fine, right?

                                                                                                                                                                            Yep, pretty much. If they’ve combined or split paragraphs the structure will be damaged but it’s easy enough to fix. I’ve worked like this.

                                                                                                                                                                            If it’s been exported to a non-MS format and back, it’s gone.

                                                                                                                                                                            Do other outliners have any equivalent functionality? If I gave someone a document that I created in Grandview, could they edit it (in what? a plain text editor?) and then give it back to me in a way that I could import back into Grandview?

                                                                                                                                                                            Not that I know of.

                                                                                                                                                                            There was an Atom add-on called Folding Text or something that used an extended HTML format designed for family trees. That worked very well. Not FOSS, gone now. It could be done though.

                                                                                                                                                                            Incidentally, you pretty much do. In this case, the vaguely similar Vim equivalent is exactly 1,5 d.

                                                                                                                                                                            Yeah, I thought it might and that’s why I picked it. :-)

                                                                                                                                                                            vi‘s command mode is ex, which is very slight variation on ed, on which EDLIN was based. We’ve come a long way in the last 45 years…

                                                                                                                                                                            Aha!

                                                                                                                                                                            Well, that’s relative… I look at Vim and I see Edlin on a lot of steroids, TBH. It’s not appealing.

                                                                                                                                                                            1. 2

                                                                                                                                                                              My final sentence was meant to be sarcastic :)

                                                                                                                                                                              EDLIN and ex are siblings, or perhaps cousins, certainly very close relatives. They are both only trivially different from their recent ancestor, ed. You’re right that vi is a sort of interactive ex. The Bell Labs gang never took to vi as they couldn’t see the point. They stuck with ed until Rob Pike developed a proper graphical descendant, sam. (And then later acme.)

                                                                                                                                                                              Vim is interesting because it introduced text objects. As a recovering Vim addict, I have to admit that this makes editing with Vim a very different experience from vi, despite the initial similarities. Actually, now that I think about it, editing with Vim is somewhat analogous to the workflow you describe with outliners. Text objects allow you to operate on the syntactic structure of the document: rather than working at the level of characters or words, you edit sections, blocks, or paragraphs. If the text that you are editing is a computer program, then it is already a nested hierarchy of scopes, which makes it amenable to this sort of structured editing. It allows you to work and think in terms of the document or program’s logical structure.

                                                                                                                                                                              Yeah, it really does remind me of what you wrote about outliners:

                                                                                                                                                                              It’s the adding an additional level of dimension to text, so it has a structure, one that can be manipulated by the program not by the operator editing markup, that matters.

                                                                                                                                                                              That’s really very similar to what it’s like to edit source code with Vim. I hadn’t spotted that analogy before.

                                                                                                                                                                              1. 2

                                                                                                                                                                                My final sentence was meant to be sarcastic :)

                                                                                                                                                                                Yeah, I got that. ;-)

                                                                                                                                                                                EDLIN and ex are siblings, or perhaps cousins,

                                                                                                                                                                                I wasn’t aware of that, but the first “proper” editor I used was the default VAX/VMS editor circa 1985. Probably EDT. A bit later I started working with PCs and MS-DOS and had to learn EDLIN. The difference that struck me was that in EDT I could just type c (for change mode, I think, but it’s >40 years ago) and switch to a usable if clunky full-screen editor. Edlin didn’t have that.

                                                                                                                                                                                But I guessed that somewhere there was a common ancestor, or at least, someone somewhere copied the Edlin UI off an older minicomputer system.

                                                                                                                                                                                AFAIK CP/M didn’t have a standard text editor. When I learned CP/M it was on an Amstrad PCW with CP/M Plus and it came with RPED, an Amstrad innovation by CTO Roland Perry. It was actually pretty good.

                                                                                                                                                                                So my guess was that Edlin didn’t come from CP/M but maybe what inspired CP/M, which maybe meant DEC OS-8 or something.

                                                                                                                                                                                Wikipedia claims Edlin was inspired by CP/M ED inspired by Unix ed.

                                                                                                                                                                                There’s some commonality visible.

                                                                                                                                                                                In a saner better world, instead of ripping the IDE off QBASIC and making it DOS 5 EDITOR, they’d have extended Edlin with Vi-like full-screen mode. If that had been extended with a CUA UI like apps such as MS Word and WordPerfect were, then maybe the Unix folks wouldn’t cling so strongly to the archaic abomination of Vim’s UI. :-D

                                                                                                                                                                                That’s really very similar to what it’s like to edit source code with Vim. I hadn’t spotted that analogy before.

                                                                                                                                                                                This is a very interesting point, and I think we’re on to something here.

                                                                                                                                                                                I am not a programmer. I can but I’m rubbish so I don’t. Stopped about 1990 when my career led elsewhere.

                                                                                                                                                                                But I spent years as a technical writer, and both Red Hat and SUSE used the Docs as Code approach.

                                                                                                                                                                                (I don’t like it but I respect the ideas.)

                                                                                                                                                                                So I know several code editors. But I used them for English, encoded in AsciiDoc or XML. They are, IMHO, horrible tools for prose writers, but it can be done. It works.

                                                                                                                                                                                Programmers rave about code handling features that are in some of them which simply don’t work for human language text.

                                                                                                                                                                                I rave about outliners’ features for handling prose text.

                                                                                                                                                                                Maybe these features are actually in fact comparable?

                                                                                                                                                                                Maybe it would be possible to asbstract some of them out and work out an editor model that offers these tools but is independent of the actual text being edited?

                                                                                                                                                                                The result would be something that’s more powerful for both text and code. That non-coders could appreciate and use, and which could be independent of the need to parse the text and look for language-specific markers, and could just work at the level of lines and paragraphs?

                                                                                                                                                                                1. 1

                                                                                                                                                                                  I don’t think I ever actually used Edlin: certainly not for any substantial work. I didn’t join the DOS world until the DOS 5 Editor was already around. (Incidentally, I finally got around to trying out Tilde the other day: that colour scheme immediately gave me edit.com flashbacks!)

                                                                                                                                                                                  I came to computing via the ZX Spectrum so my idea of a “proper” editor includes rubber keys with multiple shifts and modes…

                                                                                                                                                                                  Maybe it would be possible to abstract some of them out and work out an editor model that offers these tools but is independent of the actual text being edited?

                                                                                                                                                                                  This sort of thing is why I want to properly understand the outliner workflow. I picture this as code folding but with useful editing operations. Code folding is usually just a display technique, perhaps with basic cut/copy/paste but nothing more than that. Combining it with outliner-style operations might be quite powerful.

                                                                                                                                                                                  For some programming languages with very regular syntax, we’ve had something like this for decades now: Lisp is the obvious example. I’m pretty sure SEdit provided structural editing on the Interlisp-D machines back in the 1970s. Today, we have various incarnations of paredit. I imagine you using an outliner to perform paredit-style edits to prose :)

                                                                                                                                                                                  Vim is not quite at that level. The trick to Vim’s use of text objects is that they are part of its command language: I don’t mean the ex commands (the ones mostly shared with ed/Edlin and the like) but the commands entered in what Vim calls normal mode.

                                                                                                                                                                                  In ye olde vi this was pretty limited. The commands consisted of a verb and a motion: a trivial example would be dw to delete to the end of a word, in which d is the verb and w is the motion. In effect, this is no different from selecting some text with a CUA shortcut (e.g. shift+ctrl+right arrow) and then hitting delete.

                                                                                                                                                                                  Vim improved this by adding text objects, which take the place of the motion in the command. So the equivalent trivial example might be daw to delete a word. The difference being that the whole word under the cursor will be deleted, rather than just deleting from the cursor to the end of the word. That’s obviously not a very interesting example: the power comes from the fact that there are many more text objects available, such as sentences, paragraphs and - the reason it works so well for programmers - any block of text delimited by pairs such as {}, [], (), "", XML tags, etc.

                                                                                                                                                                                  This does make for a nice editing experience: it takes away the need to worry about manually performing fiddly edits and instead the writer just thinks in terms of editing structural units.

                                                                                                                                                                                  However, these days there are other editors that offer something very similar while remaining compatible with CUA. For example, Sublime Text has the expand_selection command, which can select by word, delimiters, scope, etc., after which all the normal CUA cut/copy/paste shortcuts and suchlike will work.

                                                                                                                                                                                  1. 2

                                                                                                                                                                                    I don’t think I ever actually used Edlin: certainly not for any substantial work.

                                                                                                                                                                                    I did. Well, for trivial values of substantial: editing a batch file of 2-3 hundred lines feels substantial with a tool such as Edlin.

                                                                                                                                                                                    Occasionally in the DOS 3.x era I resorted, CP/M-style, to using a wordprocessor, such as WordStar, and exporting as plain text. It was a thing, and systems doing weird stuff because someone accidentally saved a script or a config file as formatted text was something one encountered now and again.

                                                                                                                                                                                    (Sometimes one was the culprit onesself.)

                                                                                                                                                                                    I didn’t join the DOS world until the DOS 5 Editor was already around.

                                                                                                                                                                                    Lucky you!

                                                                                                                                                                                    (Incidentally, I finally got around to trying out Tilde the other day: that colour scheme immediately gave me edit.com flashbacks!)

                                                                                                                                                                                    Yep. <3

                                                                                                                                                                                    I came to computing via the ZX Spectrum so my idea of a “proper” editor includes rubber keys with multiple shifts and modes…

                                                                                                                                                                                    Oh, cool, me too!

                                                                                                                                                                                    The BASIC code editor was, er, not great. Beta BASIC upgraded it into something quite all right though. (And the Spectrum 128 just totally replaced it.)

                                                                                                                                                                                    This sort of thing is why I want to properly understand the outliner workflow. I picture this as code folding but with useful editing operations. Code folding is usually just a display technique, perhaps with basic cut/copy/paste but nothing more than that. Combining it with outliner-style operations might be quite powerful.

                                                                                                                                                                                    Oh I see. I will have to try to find and explore some FOSS screen-recording tools, won’t I?

                                                                                                                                                                                    For some programming languages with very regular syntax, we’ve had something like this for decades now: Lisp is the obvious example. I’m pretty sure SEdit provided structural editing on the Interlisp-D machines back in the 1970s. Today, we have various incarnations of paredit. I imagine you using an outliner to perform paredit-style edits to prose :)

                                                                                                                                                                                    :-D

                                                                                                                                                                                    Vim improved this by adding text objects, which take the place of the motion in the command. So the equivalent trivial example might be daw to delete a word. The difference being that the whole word under the cursor will be deleted, rather than just deleting from the cursor to the end of the word. That’s obviously not a very interesting example: the power comes from the fact that there are many more text objects available, such as sentences, paragraphs and - the reason it works so well for programmers - any block of text delimited by pairs such as {}, [], (), “”, XML tags, etc.

                                                                                                                                                                                    Oh! Fascinating! That is a good explanation; thank you.

                                                                                                                                                                                    Doesn’t tempt me to try to use it again but it does explain an area I knew nothing about.

                                                                                                                                                                                    This does make for a nice editing experience: it takes away the need to worry about manually performing fiddly edits and instead the writer just thinks in terms of editing structural units.

                                                                                                                                                                                    I think ISWYM.

                                                                                                                                                                                    However, these days there are other editors that offer something very similar while remaining compatible with CUA. For example, Sublime Text has the expand_selection command, which can select by word, delimiters, scope, etc., after which all the normal CUA cut/copy/paste shortcuts and suchlike will work.

                                                                                                                                                                                    I think I tried it years ago, but again, for prose, it did not seem compelling…

                                                                                                                                                                                    1. 2

                                                                                                                                                                                      Oh I see. I will have to try to find and explore some FOSS screen-recording tools, won’t I?

                                                                                                                                                                                      If Word is launched inside Wine, for the finding part, I think the GUI «try this first» option is OBS nowadays, for command-line Xorg capture I’d recommend ffmpeg (ffmpeg -video_size 123x456 -framerate 25 -f x11grab -i :0.0+123,456 -y /tmp/xgrab.mp4)

                                                                                                                                                                                      OBS might also be a good option under Windows and MacOS.

                                                                                                                                                                                  2. 1

                                                                                                                                                                                    So far the features you have described for outlining (and the features people ask in LibreOffice forums but never receive) seem to be available in code-oriented editors (immediately or as plugins), they are just unusable unless you are thinking as «a programmer thinking about editing code in implementation-side abstractions». They are kind of easier to define for most code than for prose, too, I guess, so for code they are usually better supported already.

                                                                                                                                                                                    Maybe a workflow with even more metadata (the code-editing side will still treat it as markup, of course) could indeed be an improvement for both sides. Like, when shifting things around for better presentation one could leave markers «please don’t move these too things too far apart» and «remember that this part assumes that other part comes earlier».

                                                                                                                                                                                    However, I do sometimes have impression that nowadays one is not allowed to use computer for offloading information processing from humans unless the process is made esoteric enough. Which, by the way, may be the real reason Vim UI will be there despite the option to enable GVim menus and despite Cream config (a step towards normal UIs but not cutting off any of the old features) etc. — each step towards mainstream UIs might end up diluting the powerful-but-hard-to-learn features, so why risk it.

                                                                                                                                                                                    1. 1

                                                                                                                                                                                      So far the features you have described for outlining (and the features people ask in LibreOffice forums but never receive)

                                                                                                                                                                                      :-(

                                                                                                                                                                                      seem to be available in code-oriented editors (immediately or as plugins), they are just unusable unless you are thinking as «a programmer thinking about editing code in implementation-side abstractions». They are kind of easier to define for most code than for prose, too, I guess, so for code they are usually better supported already.

                                                                                                                                                                                      I think it’s not so much the same features but analagous ones.

                                                                                                                                                                                      Incidental aside: I have in the last year or 2 been using a good FOSS outliner! The snag is: it’s the editor embedded in LogSeq. There’s no way to export the structure, and it’s not meant as an outliner, it’s a note-taking tool.

                                                                                                                                                                                      It’s good but although it works in Markdown, it doesn’t seem to attempt to encode the structure in the Markdown – or at least not in any way that comes across to my other go-to Markdown editor, Panwriter.

                                                                                                                                                                                      I’ve been meaning to write about LogSeq but I fear I only use 10% of the functionality and I have no use for the rest, so it would not be a fair or complete write-up.

                                                                                                                                                                                      Maybe a workflow with even more metadata (the code-editing side will still treat it as markup, of course) could indeed be an improvement for both sides. Like, when shifting things around for better presentation one could leave markers «please don’t move these too things too far apart» and «remember that this part assumes that other part comes earlier».

                                                                                                                                                                                      That’s clever.

                                                                                                                                                                                      Word has 2 more strings to its bow that I found very useful: comments on documents, and of course, the track-changes option that lets you see what a later person editing a doc did.

                                                                                                                                                                                      It’s very useful and handy but not super radical. You can round-trip through LibreOffice with some success.

                                                                                                                                                                                      Integrating those annotations into Outline mode would be interesting…

                                                                                                                                                                                      However, I do sometimes have impression that nowadays one is not allowed to use computer for offloading information processing from humans unless the process is made esoteric enough.

                                                                                                                                                                                      I glumly agree.

                                                                                                                                                                                      Which, by the way, may be the real reason Vim UI will be there despite the option to enable GVim menus and despite Cream config (a step towards normal UIs but not cutting off any of the old features) etc. — each step towards mainstream UIs might end up diluting the powerful-but-hard-to-learn features, so why risk it.

                                                                                                                                                                                      A possible comparison: Google Docs.

                                                                                                                                                                                      The tools are very basic and limited compared to MS Office but they’re cheap, cooperative, and you don’t need to install anything.

                                                                                                                                                                                      So, for some organisations, they are enough, even though they’re a bit rubbish.

                                                                                                                                                                                      Which in turn makes Chromebooks viable: very very cut down PC laptops, with a very cut down Linux, that lets you run Web 2 applets usefully on £150 kit.

                                                                                                                                                                                      I do feel that there has to be some happy medium for a small team to confront and tackle here.

                                                                                                                                                                                      Step 1:

                                                                                                                                                                                      Isolate the important functionality of ChromeOS, Gmail, Google Apps etc. and re-implement the whole thing, front end OS and back end server using FOSS.

                                                                                                                                                                                      After 30 years of trying, nobody has successfully built a replacement for MS Office with Outlook and Exchange. Every FOSS effort failed.

                                                                                                                                                                                      But GMail+GApps succeeded, by not trying to be a complete replacement.

                                                                                                                                                                                      The FOSS world could make money from a FOSS ChromeOS.

                                                                                                                                                                                      Step 2:

                                                                                                                                                                                      Re-implement this limited functionality from scratch in some simple, very safe, hardened language, like Oberon or something. Produce a Canon Cat style computing/comms appliance that undercuts ChromeBooks by as much as Chromebooks undercut PCs and Macs.

                                                                                                                                                                                      Instead of a £1000 PC or fancy iPad, a £150 Chromebook does all many people need. No backups, no restore, no media, no apps, just the WWW and some clunky web apps.

                                                                                                                                                                                      So, now, instead of a £150 Chromebook, a £15 Raspberri Pi Pico level computer running an end-user-level suite of apps, absolutely bombproof, with 0.01% of the code of a modern Linux running a modern browser. But talking over internet protocols.

                                                                                                                                                                                      Something akin to Opera Mini for web access: render remotely on a server to keep the client minuscule.

                                                                                                                                                                                      1. 1

                                                                                                                                                                                        I think it’s not so much the same features but analagous ones.

                                                                                                                                                                                        I think when it is outlining prose with outliner-specific markup to ditch on export, it counts as same feautre on a different substrate.

                                                                                                                                                                                        When it is for code and following the code-dictated block structure, there it counts as analoguous but not identical.

                                                                                                                                                                                        I’ve been meaning to write about LogSeq but I fear I only use 10% of the functionality and I have no use for the rest, so it would not be a fair or complete write-up.

                                                                                                                                                                                        It will not be a fair writeup about LogSeq as intended, it will be a fair writeup about your workflow. Maybe call it «Misusing LogSeq for outlining» or something, to be upfront about it?

                                                                                                                                                                                        That’s clever.

                                                                                                                                                                                        Nope, clever would be designing at least rough tooling actually supporting this…

                                                                                                                                                                                        (Then one probably needs something crazy to actually use it, maybe supporting a round-trip through QVGE — graph editor, see another thread — to visualise and tune the tension of different «should-be-near» desirables…)

                                                                                                                                                                                        comments on documents, and of course, the track-changes option that lets you see what a later person editing a doc did.

                                                                                                                                                                                        On the markup-in-version-control side, these are the expected things, but implemented differently.

                                                                                                                                                                                        you don’t need to install anything.

                                                                                                                                                                                        But GMail+GApps succeeded, by not trying to be a complete replacement.

                                                                                                                                                                                        Nope. By having a marketing team, and working outside the normal software deployment decision making.

                                                                                                                                                                                        Which in turn makes Chromebooks viable: very very cut down PC laptops, with a very cut down Linux, that lets you run Web 2 applets usefully on £150 kit.

                                                                                                                                                                                        Don’t forget how Windows XP support like got extended by like 7 years overnight. Asus said that eeePC gets released with Linux and OpenOffice whatever MS says, and Windows XP will be available unless EoL, and Vista is too heavy.

                                                                                                                                                                                        LibreOffice + Firefox + Thunderbird on same-price-as-ChromeBook laptop is an option today with more functionality than Chromebook + Google Docs, it’s the question of who can push around the market.

                                                                                                                                                                                        Like, people use Windows 10 laptops at that price despite new Windows versions often being too bloated for those laptops.

                                                                                                                                                                                        0.01% of the code of a modern Linux running a modern browser.

                                                                                                                                                                                        That’s called X terminal, I have actually used some (way past their time, but hey, a few more usable seats for SSH and Netscape, and in those time X terminals unlike the compute side were not on a treadmill), and unless it is local, screen lag will probably become an issue.

                                                                                                                                                                                        Price-wise, I suspect that comfortable editing → screen refresh requirements → screen power consumption → battery requirements will make it hard undercutting by as much as you described.

                                                                                                                                                                                        1. 1

                                                                                                                                                                                          It will not be a fair writeup about LogSeq as intended, it will be a fair writeup about your workflow. Maybe call it «Misusing LogSeq for outlining» or something, to be upfront about it?

                                                                                                                                                                                          That is an idea. It might fly.

                                                                                                                                                                                          Nope, clever would be designing at least rough tooling actually supporting this…

                                                                                                                                                                                          It tends to be part of the nature of FOSS that the community needs something to start hacking on in order to build.

                                                                                                                                                                                          I looked for homebrew Unix-likes on Github a while ago, for something I was researching. I found many hundreds. I found dozens of indices trying to collate them all.

                                                                                                                                                                                          How many FOSS AmigaOS projects? 1.

                                                                                                                                                                                          How many FOSS Windows? 1.

                                                                                                                                                                                          How many FOSS classic MacOS clone? Zero.

                                                                                                                                                                                          If we had a decent FOSS standalone single-pane outliner for people to hack on…

                                                                                                                                                                                          (Then one probably needs something crazy to actually use it, maybe supporting a round-trip through QVGE — graph editor, see another thread — to visualise and tune the tension of different «should-be-near» desirables…)

                                                                                                                                                                                          Aieeeeee! That sounds hairy. I was merely thinking of something analagous to widow-and-orphan control.

                                                                                                                                                                                          https://practicaltypography.com/widow-and-orphan-control.html

                                                                                                                                                                                          Nope. By having a marketing team, and working outside the normal software deployment decision making.

                                                                                                                                                                                          I disagree. I mean, maybe that as well but not solely.

                                                                                                                                                                                          Gmail is a very good web app. One of the best ever. If you know how to do email properly, it supports things like plain-text email, inline replies, bottom-posting. Outlook, Oath, etc. can’t handle that.

                                                                                                                                                                                          It works splendidly with Google Calendar and Google Contacts. These integrate well with phones etc.

                                                                                                                                                                                          The productivity apps are shonky, but they get the job done.

                                                                                                                                                                                          No, I don’t agree that it’s just marketing.

                                                                                                                                                                                          Don’t forget how Windows XP support like got extended by like 7 years overnight. Asus said that eeePC gets released with Linux and OpenOffice whatever MS says, and Windows XP will be available unless EoL, and Vista is too heavy.

                                                                                                                                                                                          Sure, yes. But the netbook line – the name stolen from Psion – was just the failed Intel Classmate PC effort, taken commercial. And the Classmate PC was Intel’s attempt to deflect the OLPC XO-1.

                                                                                                                                                                                          LibreOffice + Firefox + Thunderbird on same-price-as-ChromeBook laptop is an option today with more functionality than Chromebook + Google Docs,

                                                                                                                                                                                          Sure but that’s not the point. The point is, that needs config and it needs maintenance. ChromeOS needs none. For home users, all it needs is a free Gmail account. For businesses it has fleet-management tools.

                                                                                                                                                                                          They have solved push updates, fleet deployment and management.

                                                                                                                                                                                          Like, people use Windows 10 laptops at that price despite new Windows versions often being too bloated for those laptops.

                                                                                                                                                                                          Sure. MS is flailing trying to muster a response. Apple smugly sits camped on the high end.

                                                                                                                                                                                          The Linux world is… gazing into the distance chewing the cud, or engaging in infighting over 12 different desktops.

                                                                                                                                                                                          That’s called X terminal, I have actually used some (way past their time, but hey, a few more usable seats for SSH and Netscape, and in those time X terminals unlike the compute side were not on a treadmill), and unless it is local, screen lag will probably become an issue.

                                                                                                                                                                                          Needs a compute host.

                                                                                                                                                                                          Something like an Oberon box doesn’t.

                                                                                                                                                                                          https://ignorethecode.net/blog/2009/04/22/oberon/

                                                                                                                                                                                          Price-wise, I suspect that comfortable editing → screen refresh requirements → screen power consumption → battery requirements will make it hard undercutting by as much as you described.

                                                                                                                                                                                          Yes. I was sort of assuming a “BYODKM” model here: existing keyboard, mouse, and display.

                                                                                                                                                                                          1. 1

                                                                                                                                                                                            I looked for homebrew Unix-likes on Github a while ago, for something I was researching. I found many hundreds.

                                                                                                                                                                                            How many FOSS Windows? 1.

                                                                                                                                                                                            You see…

                                                                                                                                                                                            A homebrew OS is defined by doing something reasonable.

                                                                                                                                                                                            A homebrew Unix-like is defined by similarity with a standard specifically crafted not to annoy too many implementors.

                                                                                                                                                                                            A FOSS Windows-like is defined by compatibility with something with a rich history and a strong backwards compatibility bias.

                                                                                                                                                                                            This is actually one of the core problems of the current software — information processing is exiled anyway, so the task is usually defined by compatibility with things without much structure. Lying-garbage hardware, websites locking information behind scripts needing overcomplicated APIs, … It’s always some high-volume task where a large part is logically incompatible with the idea of a clean design.

                                                                                                                                                                                            Outliners kind of have it better. Except that writing code biases people towards workflows where Vim/Emacs outliner plugins also work for prose. It feels like GUIs as a class of things are badly messed up too, so they are only undertaken as a last resort.

                                                                                                                                                                                            If you know how to do email properly, it supports things like plain-text email, inline replies, bottom-posting. Outlook, Oath, etc. can’t handle that.

                                                                                                                                                                                            Well, CEO of a non-profit where I worked has Outlook handle all that, before GMail but also while using a GMail account through Outlook.

                                                                                                                                                                                            The point is, that needs config and it needs maintenance.

                                                                                                                                                                                            It doesn’t actually need config as there are some quesionably setup preinstalled options. With autoupdaters a bit less annoying than Windows Update. (Which is why MS caved with Windows XP when it got clear that Asus were going to actually ship at scale unlike the others — they knew this thing will sell no matter what is installed as long as it boots at all)

                                                                                                                                                                                            The Linux world is… gazing into the distance chewing the cud, or engaging in infighting over 12 different desktops.

                                                                                                                                                                                            Given that it is a device where one can get Linux applications by installing an unlocker app, and a proper Linux setup easier than on many x86 Windows laptops, it is unclear what would it mean to have a response to it.

                                                                                                                                                                                            Needs a compute host.

                                                                                                                                                                                            Something like an Oberon box doesn’t.

                                                                                                                                                                                            Does it need to speak TLS3.2? This is a lower bound on code complexity. Does it need to reuse mass-market hardware? This is a very high lower bound on driver complexity.

                                                                                                                                                                                            Either is probably higher than a reasonably designed minimalistic OS on non-malicious hardware.

                                                                                                                                                                        3. 2
                                                                                                                                                                          • A linter for MP3 collections that can check artist names, look up album titles, fix metadata etc.

                                                                                                                                                                          I’ve used Ex Falso from the Quod Libet music player for that task a couple of times, and while not perfect, it does cover some of these jobs. I could see how one could start with that as prior art.

                                                                                                                                                                          1. 1

                                                                                                                                                                            That’s a new one to me. Thanks – will investigate.

                                                                                                                                                                          2. 2

                                                                                                                                                                            I have found a combination of asciidoctor and pandoc cover all my outlining needs

                                                                                                                                                                            1. 2

                                                                                                                                                                              I have used AsciiDoc professionally and Pandoc both professionally and in conjunction with my current writing tool Panwriter.

                                                                                                                                                                              Comparing them to Word’s outline view is like comparing a Suzuki Hayabusa motorcycle, which was about the time I bought my last solo bike the fastest machine in the world, with wearing roller skates. Or possibly even with skating down a slippery corridor in your socks, which I did at school.

                                                                                                                                                                              I mean, yes, both are tools that let you stay more or less upright and move faster than by walking or running, but that is as far as the comparison of performance goes.

                                                                                                                                                                              The hierarchy management tools of Adoc compared to Word are like… scratching marks in mud compared to a mediaeval illustrated manuscript.

                                                                                                                                                                              They’re both kinda sorta handwriting but that is about it.

                                                                                                                                                                              Honestly I’m a bit baffled by the comparison.

                                                                                                                                                                              I quite like AsciiDoc. I used to work in DocBook XML and ADoc is so much easier it’s a dream. I’ve done docs of many sections each of tens of pages in ADoc. It was fine.

                                                                                                                                                                              I am not damning it. I like it! But to compare it with writing in an outliner is like comparing whistling an ad jingle as you walk with a full concert orchestra doing Wagner’s entire Ring cycle.

                                                                                                                                                                              1. 1

                                                                                                                                                                                I misunderstood the assignment, lol. You have quite a way with words.

                                                                                                                                                                            2. 1

                                                                                                                                                                              Actually, given that your description of good outlining is quite tied to Word, maybe also tell what went wrong with outlining (or was it just WINE compatibility going out of the window?) in the recent MS Office versions? (There also seem to be Word add-ons for outlining, but obviously I have zero clue about evaluating them)

                                                                                                                                                                              1. 4

                                                                                                                                                                                your description of good outlining is quite tied to Word

                                                                                                                                                                                TBH there is a simple explanation from that: on the PC, outliners pretty much died with MS-DOS. Only one that I know of successfully made the leap to Windows, and that was the embedded outliner in MS Word. Word 5 and 6 for DOS do outlining: it’s not a new feature or anything.

                                                                                                                                                                                As such, it’s the only one I’ve really used since about the point when I personally switched my work machines to Windows NT in about 1994.

                                                                                                                                                                                I used PC Outline and was happy with it. My hobby project has Symantec Grandview in it, which is a descendant and is also fine but I’ve yet to use it heavily.

                                                                                                                                                                                So for anything recent I use MS Word has I have no alternative. I have looked at many FOSS extrinsic (two-pane) outliners such as TreeLine but they are entirely useless for my purposes.

                                                                                                                                                                                went wrong with outlining in the recent MS Office versions

                                                                                                                                                                                Nothing. It’s still there in 2016 and I use it on macOS. No addons needed. It’s not in Word for Android, or the web-based versions, though. It’s not in LibreOffice, or OnlyOffice, or I believe ThinkFree Office. I think WPS Office has a weird clunky one but while it’s Linux it’s not FOSS.

                                                                                                                                                                                There are usable macOS outliners as there have been for ~40 years, such as Bike. But I mostly write on Linux.

                                                                                                                                                                                So there is a sort of Venn diagram of 3 overlapping circles:

                                                                                                                                                                                • core outlining functionality which applies to plain text
                                                                                                                                                                                • desirable outlining functionality in a GUI app that can handle rich text
                                                                                                                                                                                • incidental non-core functionality which is handy if you want to take your outline directly to print or PDF or whatever.
                                                                                                                                                                                1. 1

                                                                                                                                                                                  Ouch. I read the LibreOffice forums about outlining. Indeed, it manages to sound weak in comparison to a Vim outliner I used.

                                                                                                                                                                                  It does sometimes look like sometimes tooling for information processing gets driven out of mainstream GUIs. I guess Word holds via the strong backwards compatibility, options with actively subpar-GUI develop niche things only usable from inside the userbase… and then something in the stereotype structure or incentive structure pushes a large part of mindshare away from converging on something with both mainstream GUI and good information processing thinking? Outliners might not be the scariest example even…

                                                                                                                                                                                  1. 2

                                                                                                                                                                                    Ouch. I read the LibreOffice forums about outlining. Indeed, it manages to sound weak in comparison to a Vim outliner I used.

                                                                                                                                                                                    Oh, yes. I think when LibreOffice 7.x came out, I knew someone peripherally involved and they were proud of the new headline view, and seemed terribly disappointed when I said it was so weak I couldn’t see any use for it at all.

                                                                                                                                                                            3. 9

                                                                                                                                                                              An industrial strength concatenative language. Something you can embed in C/Rust/Zig, that has a regular terminal REPL, an FFI, and a structural type system.

                                                                                                                                                                              After seeing concatenative languages, whenever I use a functional programming language, I’m always stopping and thinking “what would this look like concatenatively?” and realising it would almost always be shorter and cleaner. Basically better at being what FP advertises than FP is.

                                                                                                                                                                              All highly speculative of course. And you’d need to catch developers young before they’ve crystalised into their “that’s not programming, where’s the curly braces, I’m not used to it, therefore it’s bad” phase. But I think it’d be huge.

                                                                                                                                                                              1. 6

                                                                                                                                                                                I’m 99.4% sure you know about Factor. It doesn’t have the type system you want but it has everything else.

                                                                                                                                                                                1. 4

                                                                                                                                                                                  A lot of wonderful ideas from Factor, but IIRC It wanted to live in its own little Factor world. Had it’s own GUI for the repl and wanted do to the smalltalk/common lisp “image’ based programming thing.

                                                                                                                                                                                  In my fantasy, you can embed a concatentative language as easily as lua.

                                                                                                                                                                                  1. 3

                                                                                                                                                                                    What if your concat language was written in Lua, and compiled to straight-line lua?

                                                                                                                                                                                    I’ve made https://github.com/yumaikas/onion

                                                                                                                                                                                    It uses a stack effect checker to be able compile to code that uses local vars instead of a table-as-stack. This costs a little bit of stack expressiveness atm (certain constructs are only allowed a fixed arity, especially loops), but it also has good support for locals in the langauge that you can use to compensate atm

                                                                                                                                                                                    The upside is that it should perfom -as- fast as lua for most code (and this has borne out, for example, in performance comparions to other Lua-targeting Forths like Equinox)

                                                                                                                                                                                    1. 2

                                                                                                                                                                                      You’re right about the image thing, but it’s versatile - it has an FFI. (Still doesn’t have the type system you want though.)

                                                                                                                                                                                      1. 3

                                                                                                                                                                                        I feel like with these sorts of languages you need to do a degree of piggybacking. Which is why I mention the embedded stuff - I think that’s a really good one for any kind of really expressive language. Executable config.

                                                                                                                                                                                      2. 2

                                                                                                                                                                                        and wanted do to the smalltalk/common lisp “image’ based programming thing

                                                                                                                                                                                        I find this the most off-putting thing about Factor really. Just give me the language without the weird stuff.

                                                                                                                                                                                        1. 2

                                                                                                                                                                                          I think one of the issues / tensions there is that the people likely to be most interested, especially for embedding, can write or already have a pet forth stashed somewhere.

                                                                                                                                                                                          Maybe extending / forking an existing forth would be an option? E.g. pforth looks like it already has a relatively basic shell.

                                                                                                                                                                                        2. 3

                                                                                                                                                                                          Last I checked— which was years ago— Factor’s embedding API was more of a proof-of-concept.

                                                                                                                                                                                        3. 1

                                                                                                                                                                                          You might like Mirth: https://github.com/mirth-lang/mirth for having a type system.

                                                                                                                                                                                          Unfortunately, the most developed concat language right now is Factor, and it’s got some conceptual gaps in it’s core.

                                                                                                                                                                                        4. 9

                                                                                                                                                                                          A keybase rewrite

                                                                                                                                                                                          1. 1

                                                                                                                                                                                            there’s keyoxide.io that appears to do similar things but to be honest, i never really saw the value proposition in keybase

                                                                                                                                                                                            1. 1

                                                                                                                                                                                              To me, it was the best example of circle of trust. It was able to pull in many identity sources and delegate the trust decision to you, per relationship. Then, when that was established, you could do encrypted chat etc. From my perspective, it was working as intended and was unique as a meta-type thing. I hadn’t heard of keyoxide, thx.

                                                                                                                                                                                              1. 2

                                                                                                                                                                                                Oops, it’s keyoxide.org apparently!

                                                                                                                                                                                              2. 1

                                                                                                                                                                                                i never really saw the value proposition in keybase

                                                                                                                                                                                                IIRC I believe keybase came about after Edward Snowdon was trying to leak documents to journalists via GPG encrypted email. He knew the Twitter handles of the journalists but didn’t know the GPG key fingerprint. He got one journalists to tweet their GPG key fingerprint and he could go from there.

                                                                                                                                                                                                So someone made a good way link your GPG key to twitter.

                                                                                                                                                                                            2. 9

                                                                                                                                                                                              I want to recreate Alan Kay’s “STEPS To The Reinvention Of Programming” project, using a late-bound pure functional language instead of Lisp (Maru) as the underlying core language, plus, well, a lot of other improvements rooted in modernity and lessons learned. It needs GPU graphics and DAW-grade audio. I’ve actually made design notes, but it’s pretty bonkers to do as a one-person project.

                                                                                                                                                                                              1. 2

                                                                                                                                                                                                Hmm I remember this project, but it seems like they never released all the source?

                                                                                                                                                                                                It would be a lot easier to redo if they had, I imagine

                                                                                                                                                                                                This thread links to some random repos and code snippets, but I don’t think there was full source released (?)

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

                                                                                                                                                                                                https://github.com/damelang/nile

                                                                                                                                                                                                That is a bit unfortunate, if it was NSF funded

                                                                                                                                                                                                1. 5

                                                                                                                                                                                                  Last week, I was thinking that I should get all the source and build it. This week, I’m rethinking that. I’ve been reading accounts of people who tried. A HN comment from eigertam, who tried to do that ⟨https://news.ycombinator.com/item?id=26605649⟩:

                                                                                                                                                                                                  I got close to getting Frank working, but honestly, I’m not sure it’s worth it at this point. A lot of the work is 10-15 years old, and the last time I dove in, I ran into issues running 32-bit binaries. The individual components are more interesting and could be packaged together in some other way.

                                                                                                                                                                                                  The system is built in layers, with Frank being the top level GUI and universal document editor, and with Maru containing a low level core language / IR that is compiled at runtime into X86 machine code. I’d need a fully functioning 32 bit intel dev environment and execution environment to get the original code running. There are multiple copies of Maru out there. Maru looks quite complex and hard to understand. I looked at ⟨https://github.com/attila-lendvai/maru⟩, He spent maybe three years hacking the code. The last code commit says

                                                                                                                                                                                                  a blind stab at adding guix support to the .envrc

                                                                                                                                                                                                  i can’t fully test it because i can’t make either of the backends work. we manage to crash clang, and it’s not trivial to emit and run 32 bit binaries on a guix to test the x86 backend.

                                                                                                                                                                                                  Issue #8 says

                                                                                                                                                                                                  there’s a major bug in lambda’s capturing the wrong cell. it’s present in every version and implementation.
                                                                                                                                                                                                  IIRC, eval/closures/bug/1 is a reproducer of that.
                                                                                                                                                                                                  i didn’t understand well enough how cells are allocated and referenced, so i failed to fix it before i ran out of steam.

                                                                                                                                                                                                  So that’s a bit discouraging. Maybe I will later find that somebody else has got Frank working, in which case I will happily download that and play with it.

                                                                                                                                                                                                  Maru is extremely clever and interesting, and I’d like to learn from the design. But I think the Maru core language (that all the DSLs compile into) is probably wrong for my use case. I want to be able to compile high level code into high performance vectorized “kernels” that run on a CPU or GPU, for tasks like 3D rendering and real time audio generation. I want my version of the universal document editor to support live coding of animated 3D graphics and music.

                                                                                                                                                                                                  So I think I want a clean-slate reimplementation of the ideas, simpler and easier to hack than Maru, using a different virtual machine that supports my use cases.

                                                                                                                                                                                                  1. 3

                                                                                                                                                                                                    Alan was always very insistent that the important thing was not the implementation but the ideas. He caught a lot of flack for that, but I think he was right. Ian Piumarta was not great at design compromise. Maru’s just a little too clever, and the juice is likely not worth the squeeze. The STEPS project was always a bit hindered by NIH absolutism, although that was not unintentional either. Anyway, I think a principled fresh start is absolutely the way to do this, and it should not be altogether bonkers to do it yourself: another of Alan’s strongly-held positions was that the complete system should be understandable in full by one person.

                                                                                                                                                                                                    1. 2

                                                                                                                                                                                                      Yes, exactly. I’ve been thinking that if Maru is that hard to understand and that much of a tar pit, then it doesn’t really satisfy Alan’s design principles. So, I am continuing to think about what I would design and build to occupy Maru’s niche in the system.

                                                                                                                                                                                                      It’s far too early to present a design, but this week, I’m in favour of the compiler backend producing either C++ or WGSL (for the GPU). For JIT, I’ll just generate C++ code, compile it into a .o, and load it using dlopen. This will be small and simple: if I start with an LLVM code generator I’ll never finish the prototype. A systems programming language with god-tier metaprogramming and total syntactic extensibility will be fun to play with.

                                                                                                                                                                                                      I like Alan’s idea of “T-shirt programming”, where you factor your code into a collection of modules, where the full semantics of each can be printed on a T-shirt (if expressed using an appropriate DSL). So that’s the goal, to support this style of programming.

                                                                                                                                                                                              2. 8

                                                                                                                                                                                                I want an embeddable scripting language without a gc but a borrow checker like rust. Needs to be fast (so jit) and work on some preallocated heap to be usable for soft realtime requirements. I want this for scripting midi devices and run it in the audio thread for minimal latency. Plus points if it’s written in rust. There’s dyon but it comes with many experimental features and didn’t see any updates since a year :/ Maybe i will have time to work on this on some day and dive down this rabbit hole of creating your own programming language…

                                                                                                                                                                                                1. 2

                                                                                                                                                                                                  I mentioned this in a different subthread but I’d be really curious if an https://ebpf.io/what-is-ebpf/ based compilation target would work.

                                                                                                                                                                                                  1. 2

                                                                                                                                                                                                    I guess so, i guess also using some wasm vm would work

                                                                                                                                                                                                2. 7

                                                                                                                                                                                                  A worse-is-better source-editable desktop environment, integrated with a user-friendly revision tool. I’m thinking about something in an end-user-accessible language, something like Rebol, Tcl or Rexx — this is where the “worse is better” part is coming in, as otherwise this sounds a lot like Smalltalk. Picture adding a feature to your orthodox GUI file manager, and then “publishing” it to like-minded people on the end-user VCS forum.

                                                                                                                                                                                                  Also, a better virtual tabletop (VTT) for role-playing games. Native (no browser, no JVM), not oriented towards hi-fidelity GPU-based animated maps, but with concise scripting (definitely not Javascript). I’m thinking about Decker or even Autohotkey here as influences.

                                                                                                                                                                                                  A scripting-first WYSIWYG DTP system.

                                                                                                                                                                                                  1. 7

                                                                                                                                                                                                    A text editor with the flexibility of Emacs but designed to support GUI applications really well, to the extent that most apps could be rewritten to be embedded inside it. The benefit to this would be allowing programmable workflows and easier inter program communication.

                                                                                                                                                                                                    1. 7

                                                                                                                                                                                                      This was more or less Atom, the granddaddy of Electron applications. The primary disadvantage of its wild west plug-in model was that it was possible for extensions to do inefficient things on the main editing thread, making the whole application sluggish. It’d be cool to see a more sandboxed approach, with clear channels for inter-extension communication.

                                                                                                                                                                                                      1. 2

                                                                                                                                                                                                        I came in to write basically the same as https://lobste.rs/~crmsnbleyd.

                                                                                                                                                                                                        I think Eclipse comes closer. So basically I want Eclipse but in a nice language.

                                                                                                                                                                                                      2. 4

                                                                                                                                                                                                        I want to add a scheme or lisp interpreter to Zed and turn it into an Emacs.

                                                                                                                                                                                                      3. 6

                                                                                                                                                                                                        An implementation of Io that’s not buggy.

                                                                                                                                                                                                        1. 6

                                                                                                                                                                                                          Wasm component model support on top of seL4. Make it possible for anyone who can flip the cross compiler switch to build a wasm binary, copy that to a storage medium (e.g. SD card) and have it ran on seL4. Bonus point for a simple text file to configure capabilities, remotely comparable to config.txt in the RPi universe.

                                                                                                                                                                                                          Makes distribution easy like with raspbian (instead of python code, one has to copy over the .wasm file), but with a code closure less than 200.000 LoC all-in (of course depending on the Wasm interpreter used). Enables simple networked/fileIO/business logic apps to run. All without touching cmake or CAmkES.

                                                                                                                                                                                                          1. 5

                                                                                                                                                                                                            A UI system that extends progressive disclosure all the way to source code and modification—Users today often become power users by exploration. Some became developers due to View Source in their browsers. Connect those dots to smooth out the learning curve.

                                                                                                                                                                                                            A UI system that gives applications the task of information architecture but no option to apply branding to their basic appearance, and instead offers users a global stylesheet for their own control—Computing for me the user, thoroughly, not for one company after the next. Reader mode everywhere.

                                                                                                                                                                                                            An OS made from as high a proportion of memory-safe code as possible, way more process isolation, and a file system not resembling a bag of global variables—Our stacks are so tall; can’t we crunch them down?

                                                                                                                                                                                                            1. 1

                                                                                                                                                                                                              I have a feeling that «semantics-only defined UI which can be styled on the client side» was almost tried with X11, tried a bit with HTML, and both caved to the onslaught of pixel-hunting graphical design demands. Not sure how to make something large enough to be useful, but protected from that.

                                                                                                                                                                                                              1. 2

                                                                                                                                                                                                                Yeah, it’s a pipe dream for sure but it’s my pipe dream :)

                                                                                                                                                                                                                If anything I think a reason it could eventually be liked by industry is the ease of automating the use of that UI.

                                                                                                                                                                                                                1. 1

                                                                                                                                                                                                                  (Looking at Web and the reaction of some sites to scriptable use) Hmmm…

                                                                                                                                                                                                                  (Also, looking at Web and how it sometimes using notionally-information-architecture tooling for graphic design) Hmmm… And note that you can just drop CSS but keep a user stylesheet if you use Firefox.

                                                                                                                                                                                                                  I mean, it could maybe work out for the things that want to be scriptable and want to minimise the effort wasted on the basic GUI, but fail to extract a CLI core to wrap. Then it comes close to my entry about GUI-terminal.

                                                                                                                                                                                                                  1. 2

                                                                                                                                                                                                                    And note that you can just drop CSS but keep a user stylesheet if you use Firefox.

                                                                                                                                                                                                                    Which appeals to me, and is the relevant portion of what reader mode does.

                                                                                                                                                                                                                    However, I’m not trying to affect the web in particular. I want a truly user-centered GUI ecosystem.

                                                                                                                                                                                                                    1. 1

                                                                                                                                                                                                                      Given the thriving of terminal-emulator-only ecosystem, we need a GUI parallel to text-grid terminal emulators!

                                                                                                                                                                                                            2. 5

                                                                                                                                                                                                              I do this obscure form of juggling called “cigar box juggling”. There’s some software for visualizing the motion of balls and I think clubs but nothing for visualizing cigar boxes! I want something where I could map out a trick and see what it looks like.

                                                                                                                                                                                                              The problem is that while toss juggling has a highly formalized mathematical notation for describing the throws, and cigar box juggling does not. So it’d have be a combination of a rigid-body simulation and a manually animating paths of objects.

                                                                                                                                                                                                              1. 5

                                                                                                                                                                                                                I want a hierarchical TODO manager, featuring both dependencies between tasks and the ability to define subtasks that can be zoomed into/out of as I decide to work on various parts of my “grand vision”. Within each task, I also want to have cross-linked notes and comments, so that each task is in effect a wiki page. Ideally I’d be able to view the knowledge graph in a number of different ways, from a list of the things I can start on now to a gantt chart to the “nutter view” that resembles a pinboard covered with newspaper clippings connected by variously colored string.

                                                                                                                                                                                                                1. 2

                                                                                                                                                                                                                  Redmine seems relatively close? «Blocks» relation, subtasks, enough filters to search for subtasks of one task / top-level tasks, separate wiki and linear per-task comments. Gantt charts, yes. Graph presentation… maybe with a plugin? not sure…

                                                                                                                                                                                                                  1. 1

                                                                                                                                                                                                                    Sounds like org-roam.

                                                                                                                                                                                                                    That rabbit hole goes deep.

                                                                                                                                                                                                                  2. 5

                                                                                                                                                                                                                    An end-to-end encrpyted, decentralized, easy-to-use file sharing system with fine-grained ACLs.

                                                                                                                                                                                                                    I’m part of a small association with limited resources, with a need for file hosting and sharing, and with a need to be able to let users decide who can see, edit, create and delete files and folders. I was thinking this could be built on top of OpenPGP to use existing crypto, and then “just” encrypt each file/folder/metadata for each recipient who is supposed to have read rights and sending it out via “change sets”. Write rights could be enforced by each client when receiving such a change set. Change sets could even be transported via email/mailing list, or via a custom HTTP distribution endpoint.

                                                                                                                                                                                                                    I’ve seen a few p2p systems which came reasonably close to the functionality but I haven’t seen one providing end-to-end encryption out of the box. And of course, Android and iOS clients would be a must, too, as people in the association work a lot on their phones.

                                                                                                                                                                                                                    1. 1

                                                                                                                                                                                                                      I’m not following this space much, but there was this NLNet sponsored project recently? But I can’t find it anymore. Doubt it has the apps, but if the foundation is solid…

                                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                                        I’ve recently read about Willow and Earthstart, as well as Hyper Hyper Space and the Interpeer project - did you mean any of those? NLnet is funding soo much these days it seems, I’ve honestly lost track of all their projects.

                                                                                                                                                                                                                        1. 1

                                                                                                                                                                                                                          Willow

                                                                                                                                                                                                                          Yeah that one. Just curious if that handles the core of your request (I understand it’s a long way away from what you want, as an end user).

                                                                                                                                                                                                                          1. 2

                                                                                                                                                                                                                            I’ve only had skimmed it before but after your comment I dug a little deeper. I think you’re right that it already provides a lot of the core functionality: there are fine-grained, cryptographically secure permissions which can be delegated to other users. There’s even a proposal on how to do E2E encryption. Sync is thought of.

                                                                                                                                                                                                                            I think one thing that might lead to data loss is their join/merge protocol on conflicting changes. IIUC, they rely mostly on timestamps but I’m thinking that might lead to data loss if two people both working offline both modify the same i.e. blender scene. Then, the one who modified it last will overwrite the changes of the other. And that would lead to frustration and mistrust in the system, so I’d rather have system in which both modifications can coexist until they are manually and explicitly merged.

                                                                                                                                                                                                                            But probably it’d make sense to borrow a lot of ideas from the Willow specification!

                                                                                                                                                                                                                      2. 1

                                                                                                                                                                                                                        Been thinking about this too. The company I work for has the ACL part down pretty well with our tech. Feel like I could make something nice by combining it with Veilid when that’s mature enough.

                                                                                                                                                                                                                      3. 4

                                                                                                                                                                                                                        A general purpose and modern graph editor. In my head, I call this editor Pando

                                                                                                                                                                                                                        Graph languages are implemented in bespoke ways for a wide variety of applications from shader editors to 3d modeling tools to language design. All of them implement their own tools for making editing of the graph possible and all of them in my experience feel pretty bad. To make this work, the app would need a graph specification grammar which defines what nodes and what types of connections are allowed in a given graph file.

                                                                                                                                                                                                                        The version I dream about has these features:

                                                                                                                                                                                                                        • Efficient keyboard driven editing for graphs. Steal the best features from apps like houdini, unreal engine, blender etc. Really focus on user experience for graph authors
                                                                                                                                                                                                                        • Editing of the graph schema in the editor itself. Its no surprise that most language specifications reach for graphs to communicate their structure. This app should do the same.
                                                                                                                                                                                                                        • Allow breaking larger graphs out into multiple files for reuse if needed. Large complex graphs should be possible. I believe that a wide variety of organizational primitives haven’t been explored yet for graph editors.
                                                                                                                                                                                                                        • Code generator that produces parse code for a variety of common languages. The generator would ingest the specification for the file and output code to consume the graph file and output native plain old data types representing the nodes of the graph and their connections.
                                                                                                                                                                                                                        • A file format based on sqlite for efficiency and ease of parsing however the end user likes.
                                                                                                                                                                                                                        • Tooling to merge and track changes of the file on a change by change basis. Ideally this would enable somewhat automatic merging where possible and clear diff merging when no clear merge is available.
                                                                                                                                                                                                                        • An LSP like protocol for providing completions and change tracking live to external applications. This would be necessary to enable features like inline previewing of shader changes and live validation beyond just schema compliance
                                                                                                                                                                                                                        • A lightweight graphical interface with responsive text editing written natively for performance and to keep resources use to a minimum.

                                                                                                                                                                                                                        I want a tool that I can reach for without reservations when I have a problem that is best solved by a graph structure. I want it to be easy enough to make an adhoc visual language and I want it to be straightforward to consume that language in whatever application I’m working on. Say I want to define a graphics pipeline: Pando. Say I want to make a tree structure to track tasks for some complex project: Pando. Say I want to make a game engine with a real first class vfx story: Pando.

                                                                                                                                                                                                                        Graph editors keep popping up. Software adjacent jobs like visual effects artists, 3d modelers, language designers, etc use these tools for a reason. Learning to parse domain specific languages is a skill that many people dont have the time or energy to develop. Displaying those languages in a visual way that makes their inner structure clear often helps with that problem. Its high time that we treat this domain with the care that it deserves. I think an open source and defacto standard that any application can reach for would make the software industry better and more approachable.

                                                                                                                                                                                                                        1. 1

                                                                                                                                                                                                                          Probably also needs an extensible enough text-based format, if only for version control…

                                                                                                                                                                                                                          1. 1

                                                                                                                                                                                                                            I think a text format isn’t good enough. Instead I think a route I’d like to explore is embedding enough information in the sqlite format that automatic merges would be normal. I could imagine including change level details so that you could scrub through the history of a file very fluently. If done correctly, integration is possible with git. Sqlite has the benefit of performance, standardization etc. Having a standard format for the specification in the file itself as a separate database is really clean.

                                                                                                                                                                                                                            But to be honest the format question is an implementation detail. You might be right that a text format would be a good direction to explore.

                                                                                                                                                                                                                            1. 1

                                                                                                                                                                                                                              If you start thinking how to integrate with text-oriented VCS properly (including understandablle if not too readable diffs etc.) you risk needing to do something in the direction of my dream of a less clueless-about-nontrivial-cases VCS…

                                                                                                                                                                                                                              At some point I was trying to use VUE (Tufts Visual Understanding Environment) as the UI part of some graph flows. Much better than nothing, but leaves quite a bit to be desired even as that part… (It also surprised me by being a Java program using invalid XML as its file format. but not so invalid as to be actually problematic to integrate with)

                                                                                                                                                                                                                              1. 1

                                                                                                                                                                                                                                Yeah absolutely. Literally my only worry with a text format is that if you include things like edit traces, the diffs become too complicated and messy such that you you lose the benefits. I haven’t done as much research into what integrating with something like git would really entail so youre probably correct that its a non starter, but I figure we’re talking dream solution here ;)

                                                                                                                                                                                                                                Its good to hear that other people have encountered this problem though. It kinda blows my mind that a general-purpose graph editor hasn’t been built yet. I want one quite badly.

                                                                                                                                                                                                                                1. 1

                                                                                                                                                                                                                                  Annoyingly, there are issues with VUE (as in, the person who tries to make it usable with modern Java complains that there is no way to build a legally redistributable binary of VUE, which obviously has drawbacks). Do you know any graph editor which is at least usable enough for non-tree mindmaps (even if one accepts mouse use)? And sometimes one needs something to fix up GrapViz layouts…

                                                                                                                                                                                                                                  1. 1

                                                                                                                                                                                                                                    The closest I’ve ever gotten is obsidian canvas or similar tools like FigJam. But none of those are easily consumable by other applications. I use them mostly for mind mapping.

                                                                                                                                                                                                                                    To my knowledge no app what I’ve described above exists. I’d LOVE to be proven wrong though.

                                                                                                                                                                                                                                    1. 1

                                                                                                                                                                                                                                      Well, what you describe goes far beyond «minimally usable graph editor with semi-usable file format». Dia might be almost usable, but its UI is a little bit heavy for mindmap-style prototyping.

                                                                                                                                                                                                                                      OK, you talked me into checking, QVGE looks useful; not perfect, but developed. Might even be good enough for some sketch-and-consume applications…

                                                                                                                                                                                                                                      (Re: licensing — VUE mixed various opensource components, and it seems to have a) an incompatible set of licenses, b) unclear provenance of some class file which is not exactly same as upstream)

                                                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                                                        QVGE

                                                                                                                                                                                                                                        That is interesting! I will look into this soon.

                                                                                                                                                                                                                                    2. 1

                                                                                                                                                                                                                                      As for legal issues, Yikes. I think the only version of Pando that works is what which is open source and permissibly licensed. Ideally it would cultivate a community of people that extend and build out the vision. I don’t think any other model would really be flexible or adopted enough to work.

                                                                                                                                                                                                                                      Idk maybe some version where you hankshake that if your usage makes you some large amount of money you kick back could work. But it gets dicey. I would hope that donations would be enough.

                                                                                                                                                                                                                                    3. 1

                                                                                                                                                                                                                                      If you step back from the text-only nature of version control, really, what is needed? A way to mark “revisions” or “versions” or some form of state. State X, state Y, state Z. If you can go back to state X, then make changes for X1, X2, X3, etc. A way to merge state from say, X2 to Y to form Y1. What does text have to do with this? It’s just traditionally version control just deals with text, as that how source code is stored.

                                                                                                                                                                                                                                      1. 2

                                                                                                                                                                                                                                        A way to merge state from say, X2 to Y to form Y1. What does text have to do with this?

                                                                                                                                                                                                                                        Text permits useful yet syntax-oblivious diff and merge.

                                                                                                                                                                                                                                        1. 1

                                                                                                                                                                                                                                          I feel very similar to this. Further, the research into CRDTs have shown that merging with extra information included such as character by character changes might enable automatically correct merges in places where text alone wouldnt.

                                                                                                                                                                                                                              2. 4

                                                                                                                                                                                                                                A social/collaborative programming environment like Dynamicland, but with some connections between pages represented as object capabilities. And further given that, a way to share live (and limited) capabilities to resources on your phone with the room’s system, probably with something like Syndicate or Spritely Goblins.

                                                                                                                                                                                                                                Also something similar (though on a smaller scale) with a Smalltalk-style desktop interface. I wrote a bit about this a while back: https://www.terracrypt.net/posts/smalltalk-ocap.html

                                                                                                                                                                                                                                1. 2

                                                                                                                                                                                                                                  Focusing on the technicals for a sec instead of the programming environment –

                                                                                                                                                                                                                                  This sounds a bit like the actor model.

                                                                                                                                                                                                                                  I’m building something which is sort of an “actor app store” that works a bit like this: each actor has a well-defined RPC interface & state that lets you plug’n’play all sorts of cool gizmos (queues, cron triggers, collaborative documents, local-first sync, AI agents because it’s 2025, etc). Everything is a 1-click serverless deploy so there’s on setting up systemd processes or Unix futzing to get things connected.

                                                                                                                                                                                                                                  Ignoring the AI part – mcp.run also has a really interesting approach of doing something like what you described via the Model Context Protocol interface. First time we’ve really had all sorts of entities accessible via a standard interface in one single place.

                                                                                                                                                                                                                                  1. 2

                                                                                                                                                                                                                                    This sounds a bit like the actor model.

                                                                                                                                                                                                                                    It is. :) Spritely Goblins is an actor model implementation, and Syndicate is also an actor system, though in a slightly different/novel way.

                                                                                                                                                                                                                                    I think the capability side of it is more important than the actor model side though, in particular because capabilities make the actors composable in a way they otherwise wouldn’t be.

                                                                                                                                                                                                                                    mcp.run looks interesting, I’ll have to look into it a bit more. Browsing the docs it does feel a little bit like what I’m looking for… but probably not quite. (But I suppose for their use case they might not need the compositional abilities I’m looking for!)

                                                                                                                                                                                                                                2. 4

                                                                                                                                                                                                                                  Something with a DX like writing a CLI but for GUI and lighter weight than modern browsers.

                                                                                                                                                                                                                                  So that I can echo a few buttons and a text field and an image area with an image file path, and read the button clicks and text field updates (on focus loss or enter-pressed, problably).

                                                                                                                                                                                                                                  1. 4

                                                                                                                                                                                                                                    I would like an open source dwarf fortress-like that I could hack on.

                                                                                                                                                                                                                                    1. 4

                                                                                                                                                                                                                                      Social media browser extension that attaches an historical prediction score based on previous posts / writings to each user in a timeline.

                                                                                                                                                                                                                                      Could be based on manually/automatically converting claims into prediction market wagers, which then becomes the basis for the stats.

                                                                                                                                                                                                                                      For example: Elon Musk 10/657 success rate Jeff Bezos: 0/0 success rate

                                                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                                                        I’ve been working on something which includes this functionality (without the extension), so thank you for the idea!

                                                                                                                                                                                                                                      2. 4

                                                                                                                                                                                                                                        I’ve always liked the idea of a stochastic time-tracking tool like TagTime, but could never find an implementation that actually worked for me. Something that pinged me randomly, via a Poisson distribution, and asked me what I was doing at that moment.

                                                                                                                                                                                                                                        1. 3

                                                                                                                                                                                                                                          A sampling of my list:

                                                                                                                                                                                                                                          • A good key escrow service so I could recover from losing my keys. Bad thing: I don’t think there’s any good way to do this.
                                                                                                                                                                                                                                          • An easy way to do mutual encrypted backups for end users. So I can recommend people to buy a specific NAS, then install this backup software, sync with some friend, then backup up data mutually without being able to access the other’s data.
                                                                                                                                                                                                                                          • Something like YunoHost, but better. I started evaluating it, but while good, it still has rough edges. Self-hosting is more important than even, and making it easier is important.
                                                                                                                                                                                                                                          • A combination of software to browse the web in “readable” mode. There are many attempts to do this, but you’d still get a ton of blank pages for websites that require JS to load. Chromium has a CLI option to load a site, execute the JS, then dump the DOM as HTML, which should address this. This would make browsing on lightweight devices nice (esp. if you could offload the JS execution to a separate system).
                                                                                                                                                                                                                                          • Something like a Linux distro, but with WASM binaries and focusing on non-server apps. So I could create portable environments and run them off my home folder on Windows, macOS, and Linux. (And others.)
                                                                                                                                                                                                                                          1. 2

                                                                                                                                                                                                                                            For the Nas : https://hexos.com/ I don’t know what state it’s in now - it’s pretty new. But Linus from LTT invested in them specifically because he wanted a simple Nas system with buddy backup.

                                                                                                                                                                                                                                            1. 2

                                                                                                                                                                                                                                              OK, I’m glad I’m not the only person who thinks about buddy backups.

                                                                                                                                                                                                                                              Let’s see how they execute, although to recommend others, I would prefer an appliance.

                                                                                                                                                                                                                                            2. 2

                                                                                                                                                                                                                                              An easy way to do mutual encrypted backups for end users. So I can recommend people to buy a specific NAS, then install this backup software, sync with some friend, then backup up data mutually without being able to access the other’s data.

                                                                                                                                                                                                                                              For those who happen to be using ZFS anyway, ZFS is exactly this. I know it’s sadly difficult to install in some operating systems.

                                                                                                                                                                                                                                              1. 7

                                                                                                                                                                                                                                                TIL you can zfs send encrypted datasets. That’s very neat!

                                                                                                                                                                                                                                                1. 3

                                                                                                                                                                                                                                                  OMG IT’S THE NEATEST THING IN THE WORLD i mean sorry yes

                                                                                                                                                                                                                                                  1. 2

                                                                                                                                                                                                                                                    Though be aware that encrypted sends had a few bugs recently.

                                                                                                                                                                                                                                              2. 2

                                                                                                                                                                                                                                                I do read much of the web in the fetch/convert-to-text/open-in-vim mode.

                                                                                                                                                                                                                                                I tried Chromium’s dumping; this seems inferior to Firefox Marionette session.navigate which I use most of the time.

                                                                                                                                                                                                                                                An observation: a lot of sites are readable when you kill both scripts and CSS; some of them require curl-impersonate though.

                                                                                                                                                                                                                                                1. 2

                                                                                                                                                                                                                                                  A good key escrow service so I could recover from losing my keys. Bad thing: I don’t think there’s any good way to do this.

                                                                                                                                                                                                                                                  Funny you mention this, but I spent a few months designing an open-source key escrow via social recovery for $work the year before last. Sadly it wasn’t released. But it’s very possible!

                                                                                                                                                                                                                                                  1. 1

                                                                                                                                                                                                                                                    In theory this can be done. You can do n-m secret sharing so you have m contacts and n are required to agree to recover your account, but although I think in practice it would work, it seems unsatisfactory to me.

                                                                                                                                                                                                                                                    I already trust some parties with very sensitive things- even a bank safe deposit box might be enough, but I kinda wish there was something nicer.

                                                                                                                                                                                                                                                    1. 1

                                                                                                                                                                                                                                                      Two straightforward alternatives:

                                                                                                                                                                                                                                                      1. Put your secrets in 1Password. They have a whole emergency access thing.

                                                                                                                                                                                                                                                      2. Put your secrets on a USB drive and drop them off with a relative or in a safe deposit box.

                                                                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                                                                        I am familiar with Bitwarden’s “timed” access. It just doesn’t feel “complete”.

                                                                                                                                                                                                                                                        I’d rather print the passwords too, in addition of a USB drive. I think the safe deposit box feels right, because I already entrust my bank with my money. Trusting them with IT matters is different (too many banks with funky security policies), though, so in theory I would trust them to do key escrow for me- or even provide me a password manager, but in practice, it would not feel good either.

                                                                                                                                                                                                                                                  2. 1

                                                                                                                                                                                                                                                    Oh! I forgot my latest obsession.

                                                                                                                                                                                                                                                    A browser plugin to add transcripts/alt text to random websites. If I install this, before sharing an inaccessible comic strip (looking at you, xkcd and PA!), I can write my own transcript. Then, if I share it with vision-impaired users using the same browser plugin, they get my transcript.

                                                                                                                                                                                                                                                    1. 3

                                                                                                                                                                                                                                                      Xkcd already has community transcripts through explainxkcd: https://www.explainxkcd.com/wiki/index.php/Main_Page

                                                                                                                                                                                                                                                      So a plugin that pulls from that existing data source may be very feasible.

                                                                                                                                                                                                                                                    2. 1

                                                                                                                                                                                                                                                      The encrypted backup thingy: you can do that with synology

                                                                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                                                                        Peer-to-peer with some NAT hole punching, or you need to bring your own VPN?

                                                                                                                                                                                                                                                        1. 1

                                                                                                                                                                                                                                                          Your own VPN, or you can use their quickconnect service I guess

                                                                                                                                                                                                                                                    3. 3

                                                                                                                                                                                                                                                      A proper debugger for rust. I am so tired of firing up rust-gdb and discovering (once again) that it doesn’t understand traits.

                                                                                                                                                                                                                                                      1. 3

                                                                                                                                                                                                                                                        A cross-platform, embeddable (IE available as a library not just an executable) 2d retained-mode scene graph along the lines of what Flash used to provide, without any of the timeline stuff, available via C API and without being tied to its own language and (language) runtime.

                                                                                                                                                                                                                                                        1. 3

                                                                                                                                                                                                                                                          I really miss NewtonOS. I wish there was a modern equivalent. It could keep everything the same.

                                                                                                                                                                                                                                                          1. 3
                                                                                                                                                                                                                                                            1. 3

                                                                                                                                                                                                                                                              In 2021-2022, I spent hours analyzing Rust compiler source code. I created a theoretical model for safely managing unsafe operations during compile time with no need the ‘unsafe’ keyword, using a method similar to liquid types. However, the war in my country prevented me from progressing beyond the approach analysis phase.

                                                                                                                                                                                                                                                              Now, my coding focus has shifted to two game pet projects and finding a new job. The notebooks of compiler theory are, sadly, tucked away in a drawer. Despite being purely theoretical, those months of analysis sessions were enjoyable. It felt like solving sudoku.

                                                                                                                                                                                                                                                              1. 3
                                                                                                                                                                                                                                                                • mIRC, but for Matrix (and Linux),

                                                                                                                                                                                                                                                                • Total Commander, but for Linux and macOS (yes, I know about DoubleCommander),

                                                                                                                                                                                                                                                                • x64dbg, but for Linux (yes, I know about evan’s debugger),

                                                                                                                                                                                                                                                                • SoftICE, but for Linux,

                                                                                                                                                                                                                                                                • Autodesk Fusion, Siemens SolidEdge or Dassault SolidWorks but for Linux :).

                                                                                                                                                                                                                                                                1. 1

                                                                                                                                                                                                                                                                  mIRC, but for Matrix (and Linux),

                                                                                                                                                                                                                                                                  I feel the closest you’re going to get is Quaternion.

                                                                                                                                                                                                                                                                2. 3

                                                                                                                                                                                                                                                                  Note taking tool that saves tasks as caldav tasks to my calendar and keeps them in sync

                                                                                                                                                                                                                                                                  1. 3

                                                                                                                                                                                                                                                                    Why not use todoman or tasks.org?

                                                                                                                                                                                                                                                                    1. 1

                                                                                                                                                                                                                                                                      I use tasks.org. But I dont like having to write same thing twice in my notes and my tasks app to keep them in sync, I do a lot of journaling.

                                                                                                                                                                                                                                                                      I tried to do this with org-mode but i dislike org syntax. The closest I have is qownnotes that allows me to create tasks from the notes app and link them that way, but thats really it

                                                                                                                                                                                                                                                                  2. 3

                                                                                                                                                                                                                                                                    A modern email client with plugins, like vscode but for email. So for example a plugin to connect with a git repository and view email patches directly in the editor in a similar style to github. It would also have plugins for calendar and more. It’s not so much for myself, but more because I believe it’s what is holding a decentralized system back and why github is taking over.

                                                                                                                                                                                                                                                                    1. 2

                                                                                                                                                                                                                                                                      Yes! Why should emacs users have all the fun

                                                                                                                                                                                                                                                                    2. 2

                                                                                                                                                                                                                                                                      I’d like to have an open-source port scanner with a web interface. E.g. like http://www.dnstools.ch/port-scanner.html , but as open source, so that I can install it on my own server, and people can use it to scan their own PC for open ports.

                                                                                                                                                                                                                                                                      Background is that there are some network (German Freifunk, or the LAN at events like Chaos Communication Congress) which don’t have client isolation, so open TCP/UDP ports on a laptop can be accessed by other clients on the same LAN (this is different from home internet connections, where the clients are often behind the firewall provided by the DSL/cable router). I want to set up a server+website in such LANs so visitors can easily scan their laptops/phones for open ports.

                                                                                                                                                                                                                                                                      Bonus points if it also does other client scans (e.g. for insecure service settings); basically the scans from Nessus but with a simple web frontend.

                                                                                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                                                                                        I wonder if that could be done in a few lines of CGI script: essentially return the output of nmap on the connecting client, right?

                                                                                                                                                                                                                                                                        1. 1

                                                                                                                                                                                                                                                                          I believe that would port-scan the server’s, not the client’s network.

                                                                                                                                                                                                                                                                          1. 1

                                                                                                                                                                                                                                                                            That seems reductive. There are rainmap, rainmap-lite, and WebMap that prove it can be done and isn’t especially hard to implement, but none of those are anything like “a few lines of CGI script.”

                                                                                                                                                                                                                                                                            I think, more than any implementation challenges, the real obstacle to writing something like this is that nobody could sell it. If you tried to offer it as a service, you’d be kicked off your host before your first customer finished their trial period. And if everyone who wants to use it needs to stand up a web server themselves in the environment where they want to use it, well, that’s actually harder than standing up a box where you just run nmap, nmapfe, etc.

                                                                                                                                                                                                                                                                            It’s something I’d like to have too, but there are just no places where it makes sense to me.

                                                                                                                                                                                                                                                                          2. 1

                                                                                                                                                                                                                                                                            This might align with your interests:

                                                                                                                                                                                                                                                                            https://github.com/cldrn/rainmap-lite

                                                                                                                                                                                                                                                                          3. 2

                                                                                                                                                                                                                                                                            I want to be able to write SQL-like queries against the output of more or less arbitrary commands and data, but without a lot of bespoke pre-processing or otherwise stopping what I’m doing to make it work for tool X. I’ve been meaning to mess with Nushell more because it seems like they might be on the right track, but I’m not sure.

                                                                                                                                                                                                                                                                              1. 2

                                                                                                                                                                                                                                                                                Is Trustfall in this direction?

                                                                                                                                                                                                                                                                                1. 2

                                                                                                                                                                                                                                                                                  I second the other commenter re duckdb. It is an absolutely bonkers SQL tool. They extended sql to support static structs and type inference on json. So you get to query json without the hassle that is JSON schema. The db itself is meant to be a translation layer more than a storage abstraction, so by default you are working with inmemory scratch space, which feels a lot more like normal programming

                                                                                                                                                                                                                                                                                  1. 1

                                                                                                                                                                                                                                                                                    There’s OSQuery in this space too but it doesn’t work with everything out there abd I haven’t used it so can’t say how well it works.

                                                                                                                                                                                                                                                                                    Windows has a SQL interface for querying processes, at least in C#, but I can’t find it at the moment so I’m not sure it if it does more than processes or not.
                                                                                                                                                                                                                                                                                    I even tried ChatGPT expecting it to be good at this (I never use it) but it gave me powershell that lists processes and puts them in a DB to be queried!

                                                                                                                                                                                                                                                                                    1. 2

                                                                                                                                                                                                                                                                                      I think you are thinking about WMI, which can be queried using WQL. It’s much more than processes, but I found it a bit painful to use.

                                                                                                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                                                                                                        Indeed thanks!

                                                                                                                                                                                                                                                                                        For reference, the Querying with WQL docs, and a short example: SELECT * FROM Win32_Process.

                                                                                                                                                                                                                                                                                    2. 1

                                                                                                                                                                                                                                                                                      I don’t know of a good way to do this generically. jc has a lot of parsers for this, but unless something like libxo becomes a standard, Nushell (or even PowerShell for Linux!) is the only way.

                                                                                                                                                                                                                                                                                    3. 2

                                                                                                                                                                                                                                                                                      I would like a simple editor/small ide optimized for working from a touch interface (maybe based on js so this could be a cross platform web app). Sometimes i don’t have my laptop with me but would still be able to do some fast prototypes using my tablet or phone. Something with a repl would be nice. Not only for programming but also for doing fast sketches of interfaces using various layout component.

                                                                                                                                                                                                                                                                                      For now the most comfortable setup is using claude or chatgpt on mobile but this isn’t really the environment I was thinking about

                                                                                                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                                                                                                        I learned to program on an iPad using Codea. It’s not a generic programming environment, but it has an emphasis on the simplicity and fun of programming, I recommend messing with it – https://codea.io/

                                                                                                                                                                                                                                                                                        I don’t know how well it’s still maintained, but I’m quite font of Pythonista for an on-the-go Python environment – https://omz-software.com/pythonista/

                                                                                                                                                                                                                                                                                        Textastic lacks an LSP (afaik) but is a pretty good editor all things considered – https://apps.apple.com/us/app/textastic-code-editor/id1049254261

                                                                                                                                                                                                                                                                                        I frequently use Termius or Prompt with a pocket keyboard (https://apps.apple.com/us/app/textastic-code-editor/id1049254261) to be able to be able to monitor servers and hash out quick ideas.

                                                                                                                                                                                                                                                                                      2. 2

                                                                                                                                                                                                                                                                                        A messaging client/protocol that models conversations as trees - to allow for an explicit demarcation of “I am forking this conversation to a different topic”, then have both the original and new topic continue in separate threads. Also possibly some way to spontaneously form/break group chats, with new joiners to a group able to see a selected portion of the “current tree” history.

                                                                                                                                                                                                                                                                                        1. 1

                                                                                                                                                                                                                                                                                          I am also always longing for a federated/decentralized re-imagining of Google Wave

                                                                                                                                                                                                                                                                                          1. 2

                                                                                                                                                                                                                                                                                            Sometimes I wonder how much would be needed for Etherpad or HedgeDoc or something to be usable as a hybrid discussion/collective-notes environment. Willing to compromise on federation in the direction of «VCS-clonable». Definitely needs to track authorship, provide a way to look at what has been recently updated / updated by someone, personal mentions, mark-sufficiently-responded… but not sure what else is needed, and probably quite a lot more.

                                                                                                                                                                                                                                                                                          2. 1

                                                                                                                                                                                                                                                                                            Zulip goes all-in on forking the topics, in the sense that it is IM-ish but it is totally a supported workflow to split topics all the time, and reclassify messages between them even after the split. No tree structure left after all the juggling, though.

                                                                                                                                                                                                                                                                                            1. 1

                                                                                                                                                                                                                                                                                              Yup, I’ve recently started working on a sideproject on a team that uses Zulip as their main communication, and there’s a lot to like there. In my imagining, being able to see the conversation fork points is important, though I’m not sure if that’s actually true or would just look neat.

                                                                                                                                                                                                                                                                                          3. 2

                                                                                                                                                                                                                                                                                            for about ten years, on and off, i have wanted to write a proper kms / project tracker / crm hybrid for my work as a penetration tester / red team operator that could generate useful artifacts for clients, whether it be static (i.e., pdf) or — preferably — dynamic (i.e., a client “portal” side of the app).

                                                                                                                                                                                                                                                                                            The important other half is to be useful to me directly — tracking assets in the environment; scope and other important notes; “template findings” that you would then extend per-test; and other content used in the reporting side.

                                                                                                                                                                                                                                                                                            as the industry has shifted (or, is shifting), i’ve also taken liking to the idea of a more collaborative testing environment between the tester and the client (“purple team”), allowing for pre-determined test cases informed by mitre’s att&ck and such to directly assist in “tuning” blue team operations. consequently, i’d like to support that model too because i think it’s extremely useful to organisations who have some csf capability already.

                                                                                                                                                                                                                                                                                            there are a couple of solutions out there, but the proprietary ones are all oriented to selling to us, not for us, and the open-source ones are, well, quintessential open-source - good if you have the time to constantly tinker and extend, but not particularly helpful if you don’t. i think i’ve tried every single one and been left seriously wanting. they all seem to miss really basic things in one way or another that simply make them effectively worthless or incredibly frustrating for me to use. at this point i don’t think i’d trust one that isn’t built by someone who does similar work to me, which obviously doesn’t help.

                                                                                                                                                                                                                                                                                            it’s not a particularly difficult problem for me to solve, it just requires domain knowledge to be useful but the people with that knowledge aren’t writing applications. over the years i’ve created maybe 7 or 8 prototypes in ruby/rails, python/flask, python/django, go, and — last year, during some illness downtime — rust. i’ve just never been able to push through and finish it. i’d really like to, though.

                                                                                                                                                                                                                                                                                            1. 2

                                                                                                                                                                                                                                                                                              An SQL layer for FoundationDB

                                                                                                                                                                                                                                                                                                1. 5

                                                                                                                                                                                                                                                                                                  I’m too busy writing Forth to write a Forth, usually.

                                                                                                                                                                                                                                                                                                  1. 2

                                                                                                                                                                                                                                                                                                    I wish that was me :).

                                                                                                                                                                                                                                                                                                2. 2
                                                                                                                                                                                                                                                                                                  • A way to easily distribute Ruby applications like CLI tools. Bonus points if it’s a single self-contained binary that I can grab with curl in a setup script. I work on several projects that use different versions of Ruby, and any tools distributed as gems need to be reinstalled for every different Ruby version; it’s awful.
                                                                                                                                                                                                                                                                                                  • A modern open source desktop RSS reading application for Windows. Everything I’ve found is unmaintained, or closed source with a subscription, or doesn’t sync with services like Feedly.
                                                                                                                                                                                                                                                                                                  • A “fantasy console” with mobile development support. I’d love to tinker with tiny games on my tiny phone screen at odd times. This is on the PICO-8 roadmap, and I believe there’s an Android version of TIC-80. Pythonista might also be an option, except I don’t think the game APIs it exposes work on desktop.
                                                                                                                                                                                                                                                                                                  1. 2

                                                                                                                                                                                                                                                                                                    I’ve got pages and pages of notes and research links for software that actually assists in group decision making based around propositions. You have a system of discourse for posing questions, answering, clarifying, etc. and for proposing variations of the proposition. Then you have rank ordering of the variations. Basically, something to give to groups so they can ditch Robert’s rules of order as the obsolete thing they are.

                                                                                                                                                                                                                                                                                                    1. 2

                                                                                                                                                                                                                                                                                                      A program that can simulate all sorts of martial arts moves and visualize them with 3D characters. The program should also be able to rate and rank all known martial arts moves, and also use genetic algorithms to try to find even better moves.

                                                                                                                                                                                                                                                                                                      1. 2

                                                                                                                                                                                                                                                                                                        Moldable development environment like Glamourus Toolkit but written in better programming language (Elixir or Common lisp perhaps?).

                                                                                                                                                                                                                                                                                                        Emacs like text editor with Kakoune keybindings.

                                                                                                                                                                                                                                                                                                        Twin panel GUI file manager, scriptable like lf, with Vim bindings.

                                                                                                                                                                                                                                                                                                        Datomic but embeddable, like SQLite.

                                                                                                                                                                                                                                                                                                        1. 3

                                                                                                                                                                                                                                                                                                          idea: https://codeberg.org/mmontone/mold-desktop (Common Lisp) nowhere close to GT, but moldable and with cool demos.

                                                                                                                                                                                                                                                                                                          1. 1

                                                                                                                                                                                                                                                                                                            I’ll take a look, thanks!

                                                                                                                                                                                                                                                                                                          2. 2

                                                                                                                                                                                                                                                                                                            Emacs like text editor with Kakoune keybindings.

                                                                                                                                                                                                                                                                                                            meow

                                                                                                                                                                                                                                                                                                            1. 1

                                                                                                                                                                                                                                                                                                              It lacks the visual feedback I have in Kakoune when editing text with multiple selections.

                                                                                                                                                                                                                                                                                                            2. 1

                                                                                                                                                                                                                                                                                                              What’s wrong with Pharo?

                                                                                                                                                                                                                                                                                                              1. 2

                                                                                                                                                                                                                                                                                                                What’s the status of multicore in Pharo?

                                                                                                                                                                                                                                                                                                                1. 2

                                                                                                                                                                                                                                                                                                                  It’s slow, buggy and has poor support for concurrency and parallelism. Library availability is an issue. Documentation is quite poor.

                                                                                                                                                                                                                                                                                                              2. 2

                                                                                                                                                                                                                                                                                                                There’s a lot of features I’ve seen and liked in various debuggers and profilers that I’ve never seen integrated into a single tool. I want a debugger that’s great at visualizing data and was designed with time travel debugging from the start.

                                                                                                                                                                                                                                                                                                                1. 2

                                                                                                                                                                                                                                                                                                                  A local chat that detect similar local chat around (through zeroconf, geo, bt and wifi) and offer to start chat and send file of unlimited size.

                                                                                                                                                                                                                                                                                                                  Too many time I had to share things and needed some kind of account, an internet connection or a long term contact addition with someone.

                                                                                                                                                                                                                                                                                                                  Sharing pictures during holidays, sending a huge video file to a coworker, sharing files and code during a training session…

                                                                                                                                                                                                                                                                                                                  It’s all a pain in 2025. It should not be.

                                                                                                                                                                                                                                                                                                                  Basically, a better dukto r5 would be perfect.

                                                                                                                                                                                                                                                                                                                  1. 1

                                                                                                                                                                                                                                                                                                                    OK edited for clarity

                                                                                                                                                                                                                                                                                                                    Bonjour is a pidgin plugin that offers serverless xmpp named after the zeroconf technology of the same name developed by Apple

                                                                                                                                                                                                                                                                                                                    Orig: Bonjour is serverless xmpp developed by Apple supported by pidgin

                                                                                                                                                                                                                                                                                                                    1. 4

                                                                                                                                                                                                                                                                                                                      Bonjour is Apple’s implementation of mDNS to find other services in the local network. XEP-0174 uses it for chat, but that’s not part of Bonjour itself nor was it developed by Apple as far as I can tell.

                                                                                                                                                                                                                                                                                                                      1. 2

                                                                                                                                                                                                                                                                                                                        Ok I typed that badly formulated. The bonjour pidgin implementation (yes pidgin calls the messaging bonjour https://pidgin.im/help/protocols/bonjour/) is using the bonjour/zeroconf specification to offer a serverless XMPP implementation without need for accounts.

                                                                                                                                                                                                                                                                                                                        Rereading my original message I see how it is badly formulated (to put it mildly) so thank you for your correction. Was/am a bit sleep deprived

                                                                                                                                                                                                                                                                                                                  2. 1

                                                                                                                                                                                                                                                                                                                    Something to distribute the moderation and metadata editing part of private filesharing communites. Because they often have quite valuable context, that can get lost if site gets down. Maybe throw some provenance keys on blockchain – an actual use case for this tech, for once – and those can pull updated bundles of the former via DHT.

                                                                                                                                                                                                                                                                                                                    Granted I had some cannabis last evening.

                                                                                                                                                                                                                                                                                                                    1. 1

                                                                                                                                                                                                                                                                                                                      P2P sharing of structured (meta)data with distributed moderation (where different factions can usefully trust different versions) would definitely have wider applications!

                                                                                                                                                                                                                                                                                                                      Not sure that blockchain would be improving things compared to looking at a few popular trust-cliques and picking which looks more reasonable to you.

                                                                                                                                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                                                                                                                                        oh I didn’t even know trust-clique is an already implemented kind of software.

                                                                                                                                                                                                                                                                                                                        1. 2

                                                                                                                                                                                                                                                                                                                          Well, there is some web-of-trust stuff implemented in code, but here I meant that the user would have a way to search for trust-cliques (as a graph structure concept) within the available web-of-trust data, according to the user’s priorities, and choose to follow the judgement of the ones they trust.

                                                                                                                                                                                                                                                                                                                          1. 2

                                                                                                                                                                                                                                                                                                                            Yep, also end-user should be able to provide their own stacking of priorities between different anchors.

                                                                                                                                                                                                                                                                                                                    2. 1

                                                                                                                                                                                                                                                                                                                      Google Docs “like” platform for markdown.

                                                                                                                                                                                                                                                                                                                      • Folders and files without any additional abstractions like Google Docs / Google Drive
                                                                                                                                                                                                                                                                                                                      • Ability to share files with others, but private by default
                                                                                                                                                                                                                                                                                                                      • Real-time collaboration
                                                                                                                                                                                                                                                                                                                      • Everything is markdown with VIM keybinding supports (I think code-mirror handles this pretty nicely)
                                                                                                                                                                                                                                                                                                                      • Image upload support (drag and drop images in) similar to github’s edditor
                                                                                                                                                                                                                                                                                                                      • Good support for phones

                                                                                                                                                                                                                                                                                                                      Why:

                                                                                                                                                                                                                                                                                                                      • Org-mode is too tightly coupled to emacs which isn’t useful on a phone
                                                                                                                                                                                                                                                                                                                      • Markdown is plaintext, so easy to backup
                                                                                                                                                                                                                                                                                                                      • No extra whistles or abstractions
                                                                                                                                                                                                                                                                                                                      1. 1
                                                                                                                                                                                                                                                                                                                        • Simpler TLS protocol (i.e. x25519 + aegis/ascon)
                                                                                                                                                                                                                                                                                                                        • intrusive cross-platform IO (uring,epoll,kqueue,iocp backend)
                                                                                                                                                                                                                                                                                                                        • simpler general lossless compression format (lz + rANS)
                                                                                                                                                                                                                                                                                                                        • simple kv database (different tree i.e. lsm,btree,blob - per table)
                                                                                                                                                                                                                                                                                                                        • decentralized discord
                                                                                                                                                                                                                                                                                                                        1. 1

                                                                                                                                                                                                                                                                                                                          Would love it if this existed. There should be enough info in LSPs to pull it off in a generic language agnostic way:

                                                                                                                                                                                                                                                                                                                          • mark some functions / classes in VSCode
                                                                                                                                                                                                                                                                                                                          • mark some arguments / locals
                                                                                                                                                                                                                                                                                                                          • click a button
                                                                                                                                                                                                                                                                                                                          • get a generated excalidraw diagram of the control and/or data flow for just the marked bits
                                                                                                                                                                                                                                                                                                                          • bonus points: automatically find the missing calls in between the marked functions (auto-updated as you mark more elements)
                                                                                                                                                                                                                                                                                                                          1. 1

                                                                                                                                                                                                                                                                                                                            a sane (if possible?) minimal bluetooth stack for OpenBSD, just enough to support HID and audio devices.

                                                                                                                                                                                                                                                                                                                            1. 1

                                                                                                                                                                                                                                                                                                                              Lots and lots and lots but primarily, a web browser that is entirely built on top of a system inspired by Emacs – a small number of orthogonal primitives written to go fast and then a mutable, plastic environment on top of it that allows those primitives to be arbitrarily composed, thus serving as a user agent. You could I think sort of get to this with nyxt, I guess.

                                                                                                                                                                                                                                                                                                                              1. 1

                                                                                                                                                                                                                                                                                                                                One issue with user agents nowadays is that Web is (possibly maliciously) overcomplicated, so it’s very expensive to build a compatible browser engine out of reasonable primitives, and quite complicated to make entire-engine-as-primitive give enough user control.

                                                                                                                                                                                                                                                                                                                              2. 1

                                                                                                                                                                                                                                                                                                                                I just finished a research project that involved running quite a few methods and comparing them to each other. For caching my experiments I used redo (a build system, but can also be abused for this purpose). The way I structured my project, it meant that the naming of the experiments had to follow a somewhat rigid structure, which worked for my intended purposes, but I would really like to make the entire approach more flexible.

                                                                                                                                                                                                                                                                                                                                I came across mandala, which seems quite interesting and I am now looking a bit more into this code. Overall quite an interesting approach and something I am reading into now. One problem is that the caching seems to be done via sqlite, so that is no good when accessing the same store via an NFS. So I guess something that makes this approach scale across compute nodes would be great. I also haven’t yet kicked the tires properly, so I am also no sure how well this all scales.

                                                                                                                                                                                                                                                                                                                                Another thing I would like to have is something like scribble, but tuned for blog posts; including cross-referencing and including content from other modules. This is actually something I tried to approach with an LLM (Claude), but it failed miserably. I think in the end it would also be nice to have some literate programming component there as well; which at some point would need to have some caching as well (which would tie it up with the caching approach outlined above).

                                                                                                                                                                                                                                                                                                                                1. 1

                                                                                                                                                                                                                                                                                                                                  I’ve been wanting a simple vector editor. Think iA Writer, but for vector and bezier editing. Light and fast, a minimum set of functionality, but enough to do professional work. Ideally it would also have scripting support.

                                                                                                                                                                                                                                                                                                                                  The app Glyphs is probably the closest example but it’s primarily for designing type. Using it for lettering or other designs requires fighting the default setup.

                                                                                                                                                                                                                                                                                                                                  This is well beyond my ability to code, but I still have moments of “I think I need to do this”.

                                                                                                                                                                                                                                                                                                                                  1. 1

                                                                                                                                                                                                                                                                                                                                    Not software, but rather hardware. Benchtop signal anyzer with oscilloscope.

                                                                                                                                                                                                                                                                                                                                    Likely some RockChip SoC with it’s fast video inputs abused to read measurements, FPGA to sample digital inputs and marshal HMCAD1520 (or at least HMCAD1511) streams.

                                                                                                                                                                                                                                                                                                                                    Digital FPGA inputs would be arranged for 1st order sigma delta so that one could roughly measure voltage on slower digital links before switching to oscilloscope (which involves fiddling with probes).

                                                                                                                                                                                                                                                                                                                                    Ideally it would also include superhet frequency analyzer going at least from DC to 1 GHz, preferably to 3 GHz.

                                                                                                                                                                                                                                                                                                                                    Alpine-based image with 3D accelerated GUI app to control the hardware and stream data over 1Gbps interface as needed. But writing the software would likely be the fun part for me.

                                                                                                                                                                                                                                                                                                                                    The hardest part is a good analog frontend for the oscilloscopes that would tolerate 400V but reliably measure sub-1V signals.

                                                                                                                                                                                                                                                                                                                                    1. 1

                                                                                                                                                                                                                                                                                                                                      I have long wished for an easy to use multiprotocol VPN client for the Linux desktop. Setting up my Linux desktop to connect to a VPN is a pain, which is ironic, since setting up a VPN server on my Linux desktop is a breeze.

                                                                                                                                                                                                                                                                                                                                      For now, I just offload it to a network appliance.

                                                                                                                                                                                                                                                                                                                                      Second one would be a lisp editor that’s as easy to set up and use as drracket.

                                                                                                                                                                                                                                                                                                                                      Third one would be something like obsidian, but open source.

                                                                                                                                                                                                                                                                                                                                      Fifth one would be a dead simple end to end email encryption program.

                                                                                                                                                                                                                                                                                                                                      1. 3

                                                                                                                                                                                                                                                                                                                                        For #3 have you looked at LogSeq?

                                                                                                                                                                                                                                                                                                                                        1. 1

                                                                                                                                                                                                                                                                                                                                          Hadn’t heard of it. Looks pretty nice, thanks!

                                                                                                                                                                                                                                                                                                                                        2. 2

                                                                                                                                                                                                                                                                                                                                          Could you expand your wishes about E2EE email encryption in comparison to Delta.Chat?

                                                                                                                                                                                                                                                                                                                                          1. 1

                                                                                                                                                                                                                                                                                                                                            I did not know about delta.chat. Nifty. Thanks!

                                                                                                                                                                                                                                                                                                                                          2. 2

                                                                                                                                                                                                                                                                                                                                            Regarding VPN on linux desktops, I have difficulty understanding your pain - I’ve used NetworkManager ever since and the VPN plugins for that just work(tm) (tried with OpenVPN, some AnyConnect VPN and Wireguard). Which network management system are you using?

                                                                                                                                                                                                                                                                                                                                            Third one would be something like obsidian, but open source.

                                                                                                                                                                                                                                                                                                                                            Oof I hadn’t realized Obsidian isn’t open source! For that purpose I’ve been using zim for ages and I’m pretty happy with it. Development is slow but in a good way, and there’s a consistent community around it. Sure, it doesn’t use markdown as underlying storage but a custom wiki markup - but the basics for proper markdown support are already there, it’s just missing some love for proper markdown support.

                                                                                                                                                                                                                                                                                                                                            1. 1

                                                                                                                                                                                                                                                                                                                                              Almost 10 years ago I was trying to connect to an l2tp VPN – network manager didn’t work. It wasn’t urgent but it would have been a nice thing to have. It looks like there are some nice scripts now on github that might work.

                                                                                                                                                                                                                                                                                                                                              Zim looks cool