Year Two

My Gemini adventure began in earnest on July 21, 2020, when I started work on Lagrange. That is now a little over a year ago.

A lot has happened during the past 12 months! I've made 48 releases and ~2500 commits, and have spent countless hours writing code and browsing Geminispace, enjoying nearly every second of it. My to-do list seems to only grow as I tick items off, and there are many fun and exciting ideas waiting for their turn.

Still, I remain very cognizant of the overarching objectives: Lagrange should be simple and streamlined, light-weight (as a GUI app, so relatively speaking), and focused on the task of browsing Geminispace and experiencing what it has to offer.


There's no denying that phones are nowadays the actual personal computers, and traditional PCs are more like home appliances, to be used deliberately and in a more formal manner. Therefore, it's increasingly important for apps to be designed for and run well on mobile devices.

Work has been progressing pretty well on the iOS port, although building it using one's own UI toolkit is an uphill battle. However, I'm expecting that this will pay off when I move onto working on the Android port: apart from a handful of OS-specific APIs, the custom UI and SDL-based code should run without major changes. Many little things will need fine-tuning to better fit into the general Android UX (swipe scrolling, etc.), but it should be 90% there without any additional work.

Speaking of the Android port, so far I've only got my development environment set up, and can build an SDL example app to run on an Android 9 phone. Should be good enough to get started when the time comes.

I'll likely focus on iOS for a couple of weeks now that v1.6 has been released and its worst bugs have been fixed. 🀞 At some point soon I'm hoping to add some native iOS context menus and maybe even switch the UI font to San Francisco so things don't look quite as alien.

Gemlog Booster

This is the first gemlog post I'm making via Titan.

It only took a couple of hours to cobble together a little Python script that listens to Titan requests and updates files in the gemlog directory, automatically updating feeds and indices, and commits the changes to a Git repository.

It feels rather strange writing this using my own app, in a text editor widget I wrote myself. I'm slightly terrified that suddenly everything will be deleted when the app crashes for no reason, but I think the safeguards built into the new Upload dialog should keep me safe. It's autosaving every couple of seconds, and the backup is kept until the upload is successfully completed.

Now that I'm actually writing a longer piece of text here, it's quite evident that a few UX improvements are needed. I really want to resize the dialog larger, maybe even just maximize it to the full window size. At least it should expand vertically as much as the window has room for. Also, for `text/gemini` content, coloring the lines based on type would be a nice little bonus.

Another thing that urgently needs improvement is the selection of the client certificate. The Upload dialog needs to have some sort of dropdown/popup for this. At the moment I need to first open the "titan://" URL I want an identity for, cancel the Upload dialog, then go to the sidebar to activate an identity, and finally reopen the upload... At least the identity is remembered once the selection has been made.

I'm hoping/expecting/fearing that having this more convenient way to post will encourage doing so more often. We shall see!

πŸ“… 2021-07-31

🏷 Lagrange, Gemini

CC-BY-SA 4.0

The original Gemtext version of this page can be accessed with a Gemini client: gemini://