While I would like to say that with each passing day, 10C inches closer to being a complete solution, the reality is that the project goes in spurts based on how busy I am with client and day job tasks. This week has been a little different, though, as there seems to be just a trickle of tasks coming in from bill-paying sources. This means the day job responsibilities can get cleared out during regular working hours and the rest of the computer time can be spent working on my 2,500+ day old pet project. The hours have been put to excellent use.

Over the last seven days there has been a noticeable improvement in site load times as various SQL procedures have been tweaked and modified for performance. In one case there was an inefficient index that needed tuning. A nice benefit to the changes seems to be less pressure on the CPU, as the system load is now about 20% lower than this time last week despite a very slight increase in traffic. These little back-end updates always bring a smile to my face, but I understand that most people will not care if an API call takes 150ms instead of 300ms.

A tangible update that people can see is now live on Nice.Social where the home timeline view has been restored as well as the ability to Follow, Mute, and Block. While many may laugh at the perceived simplicity of these functions1, the fact they're back gives people one less reason to write the system off. To keep things performant, I've rolled a lot of this data into a single data table with columns for attributes. This makes it much easier to manage situations where updates need to cascade2 very quickly. There are also a number of CSS tweaks that fix issues with the dark mode and a new way of showing geographic data in the form of a static map.

Looking at how much has been accomplished since Monday, I can honestly say that I'm closer to being somewhat satisfied with the tool. There is still a lot to be done, but the core basics are being knocked off one by one.

Tomorrow will be the last day I get to work on the site for a little while, so any released updates will need to be good ones. Right now I'm leaning towards password recovery and the start of a 10C landing page.

Maybe by the time the typhoons start to hit3, I'll be less embarrassed by the state of the UIs.

  1. They certainly are simple to write, but once you start working with databases that contain millions of records in the Post table, things slow to a crawl. I wanted a design that would scale to tens of millions before needing attention.

  2. When an account is blocked, the follow and star attributes are reset to no while any existing pin is removed. Keeping all of this on a single table means these rules can be built into a trigger rather than a stored procedure.

  3. They generally come this way starting in late July.