Threads for hapax

  1. 14

    This is probably quite a useful write-up for anyone looking to improve the Gemini spec.

    There are a few criticisms however that I don’t think are valid given the goals of the project:

    • The protocol was designed to be hard to extend and develop on; not versioning the protocol makes sense in this context.
    • The protocol was designed to make user tracking difficult and values simplicity. Closing connections after every response makes sense in this context. A resource pulling in more resources (and therefore benefiting from connection reuse) feels like it would be implicitly against the goals of the project.
    • I don’t know why anyone that was interested in Gemini would be using to throw around HTML, so the criticisms of it being a poor transport for the web feel pointless. That’s kinda the point.
    1. 7

      that’s kinda the point

      Precisely! I think the criticisms in the article are valid… If your goal is to have a Web replacement! Gemini’s trying to be a document only platform, not an OS/application platform. Not saying that the Web’s evolution into an OS/application platform is bad, but Gemini is actively trying to avoid that route.

      1. 23

        I don’t see how things like “have more precise descriptions”, “be more efficient” and “fix your security” are about being a web replacement. I read this criticism more as coming from an expert on protocols and their client-side implementations.

        I find it especially ironic that Gemini enforces using TLS, but then has such weak security guidelines as to make it essentially useless. That’s like all those folks running websites with self-signed TLS certs. The only advantage that gives you over an unsecured connection is when you have a passive attacker who can only eavesdrop but not actively put stuff on the wire. This article goes into detail as to why, with solid reasoning. But this kind of stuff is like arguing against a brick wall.

        Note that even his gripe about not being able to share multiple resources over one connection isn’t web-specific: a Gemini crawler or archiver would also massively benefit from doing this.

        1. 8

          a Gemini crawler or archiver would also massively benefit from doing this

          A significant bunch of Gemini fans are perfectly fine with gemspace being harder to crawl and archive.

          Anyway, Daniel’s critiques are on point, but it won’t sway most of the community. The shortcomings of the spec have been endlessly hashed out. The people losing out are the ones who would prefer Gemini to become a bit more mainstream, with support in curl and other tools (like Lynx). The solution, of course, is to code your own tool, which is what Gemini is explicitly designed to be easy to do.

          1. 9

            Seems like an unambiguous protocol specification would be a critically important part of making it easy to code your own tools, assuming you want them to talk to other peoples’ tools.

            1. 2

              There were plans for that, according to the FAQ (section 1.5):

              Going forward, the main focus of the project now is on growing the community around the protocol, as well as working on translating the existing specification into a more precise and formal version which might be considered for submission to internet standards bodies such as IETF and IANA.

              However, the main driver behind the protocol work (solderpunk) seems to have stepped back, and the mailing list used for discussions has been defunct for more than a year IIRC.

        2. 9

          That’s how I see Gemini too. The original post that inspired it all was titled “Pondering what’s inbetween gopher and the web.” It was a Gopher post to a community of Gopher users.

          So I think of Gemini as Gopher-plus rather than a Web-minus. If the intent was to be anything more than Gopher-plus, the spec would be open.

      1. 3

        I started reading this and was immediately charmed! I think this might finally be the time I learn a lisp language 👀

        1. 1

          I’m going to be helping plan a potentially big rearchitecture at work! excited for the possibilities but slightly nervous as I haven’t undertaken something like this before. On that note, if anyone’s ever migrated from firebase to a more conventional system architecture/backend, would love to chat about how it went and any pitfalls to look out for!

          1. 2

            Working on my talk I’m giving at the local Go meetup on Tuesday, and also on my silverbullet plug for posting to micro.blog!

            1. 1

              Setting up silverbullet, then trying to decide on which laptop I should get next for a Linux hacking machine.

              1. 2

                I like my Framework, for what that’s worth.

                1. 1

                  I’d forgotten about them! Look pretty dope, but out of my price range sadly :’( thinking of picking up a dell latitude 7280 and loading some Linux flavor onto it.

              1. 2

                Oh man, this is so cool! I love the approach of providing students with all the tools needed to use the system included, allows for a complete understanding of the system and lends itself to being easy to hack on. Great stuff!

                1. 3

                  That’s the kind of cool things that this entire-stack-in-one-file approach enables:

                  • they can convert a compiled RISC-U executable into input to Z3 and then ask Z3 about its properties.
                  • they have their own simple SAT-solver in examples/babysat.c
                  • they have their own fuzzer and symbolic execution engine!
                  • there’s a basic bare-metal version in machine/ that can boot on top of OpenSBI.
                1. 1

                  I got this set up on fly.io yesterday and am loving it so far! It was relatively painless to set up, and now I have notes that sync across my work machine, phone, and iPad. The core functionality is similar enough to Obsidian that I feel comfortable moving to silverbullet full time. There’s also plenty of space to develop my own plugs, something I’ll be looking into over the next few weeks.

                  1. 4

                    Now I’m considering that maybe buying an intel NUC for a closet server wasn’t such a good deal. It occurred to me as I was selling my five-year-old android phone on Craigslist for $40 what an incredible piece of technology it is that is now adjacent to junk. Multiple photo/video cameras, microphone, battery (built-in UPS!), screen with touch input, GPS, GPU, decent CPU, Wi-fi, 4G antenna (stay online even if your apartment loses power). Getting a rpi-like board with these capabilities would set you back a pretty penny. Anybody else have experience using these as mini servers?

                    1. 2

                      This is a great point. I have several old Android phones kicking around that I’ve wanted to start to hack on. My first idea was to try and build a cyberdeck with my old Pixel 4a, but I bet they could be used for mini server applications! Do you know of a way to easily get some Linux running on them by chance? seems like that’d be the first step

                    1. 3

                      Reminded me of encore.dev, which has a feature called Flow that shows an architecture diagram that’s always up to date.

                      1. 3

                        I hadn’t seen that, very impressive. I’ll spend some time looking at that further. Thank you!

                      1. 2

                        Great stuff! This has strong micro.blog energy. If I hadn’t invested time into my micro.blog and my mastodon profile, I’d probably try to get this up and running. Keep it up!

                        1. 2

                          Thanks! I’m a huge fun of micro.blog.

                        1. 2

                          I wonder how hard it would be to add Obsidian compatibility (same method of link resolving, block IDs, callout blocks) 🤔 It seems that it’s quite modular with its plugin system.

                          1. 4

                            If I could immediately import my obsidian notes that’d be amazing! Might start working on a plugin… Seems to cover most of the use cases I have for obsidian but is open source which is a big win for me.

                            1. 2

                              I was wondering the very same for other systems like Logseq or even Foam.

                              1. 1

                                Logseq has different file structure, IIRC you can separate directories with dots in wiki links. I prefer Obsidian’s approach, where you specify a path relative to the root of your vault. It uses shortened version if note name is unique.

                                1. 1

                                  Ah how interesting!

                            1. 2

                              still trying to find a notetaking app that ticks all my boxes:

                              • [ ] Web, mobile (either web or native, iPad and Android phone) clients
                              • [ ] Options for self hosting, or use of open file formats for easy export to a different client
                              • [ ] handwriting support at a minimum (apple pencil support)
                              • [ ] Not sucky UX

                              Logseq is a frontrunner, but is sadly lacking in handwriting support. This makes me think that I might just abandon handwriting notes on my iPad, but that also makes me feel weird because I bought it mainly for handwriting. Would love any suggestions from the lobsters community on notetaking apps!

                              1. 2

                                Obsidian with some handwriting plugin and you’ll be good to go. Really the best out there right now as Logseq is in very early stages and it’s slow. I use syncthing to sync between all devices.

                                P.S. Logseq probably also has such a plugin.

                              1. 1

                                Lately two things:

                                • a truly cross platform (web, iOS, Android) note taking app that supports handwriting but also markdown text and is either local-first or has easy export to portable formats
                                • A truly plug and play personal web server, along the lines of this post. Something that is easy enough for my mom to just plug in and start using.
                                1. 1

                                  TIL/today I did posts are one of the main things that I post on my blog. I’d highly recommend https://micro.blog to anyone trying to blog more often. There’s a great community there, plus everything can be hosted on your own infrastructure and integrate with Mastodon, indie web, etc. Something that lowered the barrier for me to write small blog posts about whatever I’m currently working on was to write a shell script that makes it as easy as mb to write a new post!

                                  1. 2

                                    I’d heard about Dark a long time ago, this post brought it back to my attention! Gave it a try, very impressed at the speed with which changes are made live.

                                    1. 2

                                      Thanks! This is one reason I feel confident about the vision for Darklang, even despite the challenges. I think there really isn’t anything like it anywhere else!

                                    1. 6

                                      I wonder if they’ll be using Oxide machines… sounds like they’re looking for what Oxide is selling

                                      1. 4

                                        Is Oxide actually shipping any racks yet?

                                        1. 8

                                          There’s a physical rack that visitors have taken photos of! This means they’re very close to the end of verification testing and moving into the Pilot stage

                                          1. 3

                                            They say by the end of the year, so in 2 months at most if all goes well.

                                        1. 5

                                          I’m less interested in immediate feedback to the query I’m writing. I’d rather have a tool that helps me write the cryptic dsl, like a symantic editor or something with suggestions. Maybe like those regex editors online

                                          1. 2

                                            this is fair; figuring out jq queries definitely takes some trial and error.

                                            1. 1

                                              I get that. For me, it’s all about visualising the input data and what’s produced with what I express in the jq filter. The shape of the data and how it morphs is a key part of my understanding of jq and the data itself.

                                            1. 3

                                              This is one of the first things I fix on a new machine – just did it a couple days ago! It makes sense that this would be a struggle for others as well but I’m not sure why I thought it was just a me thing :)

                                              1. 2

                                                This looks like a great overview! I might start going through these papers myself. I often fear that as our computing abstractions get more and more powerful, many engineers will forget/be unaware of the turtles down at the very bottom.

                                                1. 1

                                                  Started trying to use this at $DAYJOB today, and it like it! One downside I’ve seen after using it for a few hours is that it’s a bit clunky to use for more ad-hoc testing because you can’t (afaict) hit a specific endpoint you’ve defined within your hurl file. I wound up falling back on my usual combo of Postman/IntelliJ HTTP client for that part of my workflow. It does seem like it’s still useful for more structured testing though!