💾 Archived View for gemini.hitchhiker-linux.org › gemlog › projects_going_into_maintenance.gmi captured on 2024-03-21 at 15:22:32. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-11-04)
-=-=-=-=-=-=-
I've been doing some re-evaluation of my priorities recently in relation to my journey as a programmer. I've written previously about some of the issues that I have with the direction and leadership of the Rust project (as well as the toxicity of it's community at times). I've also mentioned that I have been getting re-aquainted with C. Honestly, I've been loving C.
One of the things that I have a bad habit of doing is starting too many projects at the same time. I suspect a lot of programmers share this trait of course. But when taken with the shift that I'm already in the middle of, that leaves me with a few projects that are kind of in limbo at the moment. So I guess I want to clarify their status "for the record".
The Eva browser got really pretty far along in development. I'm still proud of it, as even in an unfinished state it had certain features that were unique in the world of Gemini browsers. You could type searches into the url bar, prefix a search query with a search engine identifier, or type the short name of a bookmark in to visit that site. There was completion support available for all of those things plus history. I'm proud of what I accomplished with that code. That said, it was missing Titan support as well as client certificates. I also was beginning to see crashes that I believe were being caused by the Rust Gtk bindings, as well as being unhappy with the performance of Gtk4 on lower spec machines. There were also things that I would love to go back and fix because I've realized that they were less than ideal. For instance, I would love for pages to load one line at a time rather than the current method, which loads the entire page into memory, parses it and then renders the parsed output. This has proven to be slow and inefficient memory wise on large page loads.
For the time being, consider Eva as being on indefinite hiatus. I reserve the right to ressurrect it at some point in the future, but if I'm being honest I probably won't. I have ideas for a future replacement (which won't be written in Rust) which would share certain design elements with Eva as well as learning from it's mistakes, and in fact I'm working on a Gemtext parser in C at this very moment. Time will tell.
Dory was my Misfin protocol library. It also progressed pretty far, but I don't currently have the interest in Rust to finish it. Also, with the huge flurry of activity around Misfin it would likely be late to the party if I did finish it. So Dory is also going on indefinite hiatus.
Zterm is a Gtk3 terminal emulator written in Zig. I haven't kept it up to date for a while but didn't make any announcement about it until now. Zterm is going into maintenance mode. It's feature complete, so far as what I originally intended. Zig is, unfortunately, a moving target and I suspect that getting it to compile now would be a good bit of work.
In the case of Zterm I have a recommended replacecment actually. Mitchell Hashimoto is working on a cross platform terminal emulator called Ghostty that is totally from scratch, also written in Zig, but which has a community behind it already. I've been making small contributions to it, and am working on adding split panes to the Gtk/Linux port. This is a much better terminal emulator than Zterm ever could be due to Zterm just re-using Vte as a terminal widget. Ghostty is currently in a closed beta phase, with plans to fully open the source before it sees wide release.
The Toe finger server and Agis spartan server I will continue to maintain. They already do everything I want them to so it's just maintenance work. My capsule generator Zond also falls into this category. Gfret, my design tool for plotting the fret positions for guitars and such, will also continue to be maintained.
My little Vala text editor, Vapad, is going to be seeing a new release shortly which adds adaptive capability to the interface so it can run comfortably on phones and tablets. I won't be adding much in the way of new features, but I'll keep the project going. One thing that I do want to add to it at some point is spell checking.
Other than contributing to Ghostty, I've got a few newer things started. I have a rough sketch for Eva's potential replacement written in C, called Chandrayaa after the Indian moon lander. It's only a rough sketch of the interface right now, which is subject to change. The Gemtext parser I alluded to earlier is planned to be part of this project in the future.
I'm also continuing to work on an implementation of an archive and data serialization format that I created myself which I call Haggis. The intended use for Haggis is going to be as the basis of a package manager for Hitchhiker. Haggis has integrated checksumming for individual files making it especially well suited for this task. The highlights of the eventual package manager are that it will be able to download and update only those files which have actually changed in a given package, perform updates atomically, and should run much faster than we're used to seeing due to heavy use of multithreading and working at the file level rather than the package archive level.
All content for this site is licensed as CC BY-SA.
© 2023 by JeanG3nie