Yes, I’m reaching for holidays, but using names of days instead of just early/mid/late-whichever-month makes it harder (for me!) to distinguish one post the next. Whereas, the difference between Global Day of Parents and World Oceans Day is useless for sequencing (which there’s already a date for), but easier to tell that they’re different in a list.
Plus, there are multiple celebrations/remembrances every day and the fixed observances will change day of the week from year to year, making it less likely to repeat a post title.
So no, this isn’t the “I checked the calendar, and you might be interested to know…” shtick. Though if you decide to celebrate Culture Freedom Day in future years because of the post, that’s a handy side-benefit.
Anyway, after a long time nibbling around the edges, Uxuyu has finally moved forward, again, and I actually got to work on it all week. The account thread’s “status check” now returns all known accounts to the main thread, and the non-followed threads are also checked, though not as frequently as the followed accounts.
And, because of that, mentions now work…or, rather, they work as well as the user interface will easily allow. This still needs more work to be able to read the mentions, but after a heap of refactoring, since the non-followed feeds are processed in the same way as the followed feeds and Uxuyu pulls out URLs and referenced accounts in each post, it’s now possible to pull out any reference to the user’s own feed.
With that handled (and yet more refactoring and catching a few bugs), the list of mentions gets pushed to the mention panel, where each post is converted to a button with the user’s name and how long ago the local user was mentioned.
Then, some sleight of hand!
You see, I had two problems at this point: There’s still no scrolling in Proton Native and now there are buttons to show mentions in feeds that aren’t otherwise displayed, with nothing for them to do. Conveniently, they have the same solution…paging.
That is, all things being equal, running Uxuyu (as of Thursday) on my laptop only shows the most recent eleven posts of the people I follow or any specific person I follow. So, I’ve updated my twtxt configuration file (
limit_timeline) to only show the most recent eleven posts. However, if I slip a page number into the
state, I can get the fiftieth page by showing the eleven posts starting with (11 x 49) #539, ending at #550.
And with that set into place, I can now show any run of eleven (or whatever the local
limit_timeline is) posts from any user, by changing the page number along with the user. At the same time—and with much less work—I can add “older posts” and “newer posts” buttons to page through the history.
The user needs to configure the number of posts separately, unfortunately, since I have no way of knowing how many post fit on the screen. But that’s still not terrible, and I can (and should) eventually add an Uxuyu-specific configuration file to override my default colors, font size, and so forth. And that option can be done away with, once Proton Native is more ready for that sort of work.
Since I have been using Visual Studio Code more frequently (the tools are better than working manually, of course, but it’s much more difficult to look at multiple projects at the same time), I started wondering how “free” it is in terms of being Free Software.
It turns out that it’s very close, but the Microsoft builds include telemetry features, which isn’t really optimal. Conveniently, somebody already did this thinking, creating VSCodium, saving me from wasting my time trying to build the application, myself.
The two applications don’t share configuration files, so I needed to make changes—such as using Victor Mono and setting the comments to show as italicized—but now I shouldn’t need to worry about Microsoft slipping anything creepy into their builds.
Unrelated to VSCodium, it appears that my recent computer slowdown woes have largely been due to…gPodder? It sounds bizarre, but I caught it taking a third of one CPU core. And shutting it down when I don’t need it has resulted in fewer crashes. It’s a shame, because I like (and highly recommend) gPodder, but this temporary solution’ll work well enough for now.
It looks like Uxuyu might be getting close to some sort of “minimum viable product,” which will be interesting to announce, when the time comes. But there are still a few major features that need to be put in.
- The most important step is probably going to be to start scraping the major twtxt user registries, automatically discovering new users.
- Probably the easiest feature would be adding an external configuration file—just like I already do for Miniboost—to override my application defaults; the existing configuration options are in an object specifically to support this feature, in fact. At some point, it might even be useful to move all configuration into the Uxuyu file, so that there’s no need to install twtxt at all, for people who want to avoid it for whatever reason.
- Before trying to cut ties with the twtxt application, though, I need some sort of user management, to follow and unfollow users.
- Now that all discovered feeds (as far as I can tell) are being pulled, it should be easy to add a search facility, possibly even extending the filtering currently used to limit messages to followed accounts or a specific user. Similarly, it should be easy to add a “firehose” feed of every post available.
- It’s probably a good idea to “age out” feeds. That is, if a feed no longer seems to be available or hasn’t been updated in a while, it makes sense to start checking it less frequently, so that the thread isn’t wasting time looking for updates that aren’t there. I’m already checking the last time the feed was found and the last post date in the database, so it shouldn’t be too hard to come up with a formula that doesn’t waste client resources pulling data that probably isn’t useful.
Will I get to all of these in the near future? Probably not, and certainly not this week. But at least a few of these should be compelling enough to make happen sooner than later, with account management likely being the lowest priority; anybody who’s willing to run Uxuyu from the command line can also edit the configuration file to add someone’s timeline, if they really want.
And I still have other projects. I may start creating repositories so that I can try browser plugins, Visual Studio Code (or VSCodium) plugins, and so forth, since those are a big part of an upcoming project idea.
On top of that, I see it’s time to upgrade a couple of packages, so that’ll probably happen, too.
Credits: The header image is Coast of Nørre Vorupør at sunset by Slaunger, made available under the terms of Creative Commons Attribution-Share Alike 3.0 Unported.
Tags: programming project devjournal uxuyu