Status Update: January 2025

Published on to joshleeb's blog

G’day!

It’s been a couple of months since the last status update. I took a bit of a break from writing, coding, and personal projects in general but now we’re back with the first update of the year!

This month I started work on Tera, the precursor to Ica. Tera and Ica are graphical code editors. Where Ica is intended to become my daily-driver, Tera is a learning project to help me better understand the problem space. I also hope to use Tera as the subject for a tutorial series (inspired by the Build Your Own Text Editor series) on how to make your own graphical code editor.

The focus so far has been on the low-level text stack.

The soft-wrapping implementation has been where most of my time on Tera has gone this month. It’s not particularly complicated though I have implemented it three of four times to try and find the simplest and most understandable approach. It might just be me but my brain doesn’t do well with juggling handfuls of indexes and iterators each with a different reference frame.

Figure 1. Screengrab of soft-wrapping in Tera.

Next up I’ll be cleaning out and documenting the text module as a small gift to my future self. Then the last piece for the text subsystem will be text styling which is required for features such as selection and syntax highlighting. My hope is to complete both of these tasks in February so I can make a start on the editing components in March.

I also took some time this month to dig out my Corne LP keyboard. I’ve been practicing using it as a replacement for my current daily-driver (a Keychron S1 board). So far I’m faster and more accurate on the Corne for English prose, but it’s coding, symbols, and vim bindings that need some serious improvement.

The bindings for the Corne are fairly standard and you can take a look at the QMK code here. While I have no plans to change from a QWERTY layout, I will be continuing to tweak the locations of the symbol and mod keys heavily.

I also tried home row mods for the first time, but they weren’t to my liking. Still, I think it would be really nice to get down to a 36 key layout without them. 34 keys might be a bit of a stretch for me.

Figure 2. My Corne LP keyboard.

Over the break I regularly found myself thinking about Pinto too. It’s taken a back seat to Ica and Tera since it became usable on a daily basis which was back in July 2024. Now, I want to keep the momentum that’s started with Tera going following the research and exploration from last year.

Although I don’t see myself getting back to Pinto for a little while I am still very keen to continue thinking about it. I suspect that these thoughts will lead me to the conclusion that bookmarking is not the right solution for the web (at least for me) but I need to first restate the problem and get back to first-principles on this project.

Lastly, over the holiday period I’ve received a number of messages with words of encouragement and thanks for the posts on this site. To those who reached out, and to everyone who has read some of my posts, I cannot thank you enough. Knowing people are enjoying the writing and status updates, and finding the content entertaining and useful brings me so much joy.

This year I’ll be continuing with the monthly updates; continuing to progress Tera towards a tutorial series and work towards Ica; continuing to think about Pinto, the web, and conviviality. Beyond that I’m sure there will be many other interesting posts and projects, as my backlog for both continue to grow.

That’s all for now, see you next month!