Doctacosa

🪶 I'm a real blog! Maybe? 🤔 Thoughts by Stéphane, often in English, parfois en français!

Let's review how I handle my backups and how I save my data. I'm primarily a Windows user, so most of these tools are designed to be used in a Windows environment, but some are also cross-platform.

A basic tool in place to cover my documents, images, music and similar is Microsoft's OneDrive. It's cross-platform, runs quietly in the background and keeps a copy of everything in the cloud. It works nicely enough and lets me access many of my files remotely on demand, which has proven useful multiple times. But, and this is a big but, OneDrive is not a backup system. It's local + cloud storage, which can replicate your content on multiple devices, but it synchronizes automatically – if you accidentally delete or overwrite something, it's going to do the same on the cloud copy. You need something else to accompany it.

That's where FreeFileSync steps in. This piece of software is designed to sync content from one source to the other, and I trigger it manually once in a while. One major benefit of using it instead of copying entire folders manually is that it only adds, updates and deletes what needs to be, so it's much faster. You can save a set of rules to apply, so you can save individual sources with their own parameters. One of these rules copies the content of my OneDrive folder in a separate directory so I have a version that doesn't risk blowing up if the platform fails or I make an error.

Another one in the toolbox is Duplicati. It's set to make daily backups of some folders, notably the metadata of my Plex server. It can do incremental backups along with keeping set periods (like, say, the last 3 days, a week ago and a month ago), giving me the opportunity to roll back at various points in time in case something gets corrupted.

Finally, there's StableBit DrivePool. I have a storage array in a few hard drives outside of my main computer where the heavier content gets stored (videos, backups, endless Minecraft world saves...). I have it set to automatically store all the content on at least two different drives of the array. This way, if one hard drive fails, I have a good copy on a second one. I picked this option instead of a traditional RAID array as the files can be directly accessed on each drive as needed – no need to wait for the array to rebuild itself when adding or removing drives, it can be instantly accessed.

How effective is all this? You never really know until you need it, of course. Coincidentally, the secondary hard drive on my desktop computer died some weeks ago and I haven't lost anything important, nor have felt the urge to replace it. So far, so good!

#tools #backups

– Doctacosa

This has been bugging me for a while now.

I want a good email client. Not something web-based, a real thing, with downloaded messages and all that. For some years now, that's been Microsoft Outlook, the giant in the room. It's been good enough, fast, stable, although I had a few nagging issues with it. The key issue is that Outlook works great for emails themselves, but anything else (calendar, contacts, notes...) assumes that you're communicating with an Exchange server. If you're like me, with custom CalDav and CardDav addresses hosted elsewhere, there's no real way to make it work. Something as simple as having your calendar and contacts hosted by Google is not possible either. It's too bad, because I can only use one facet of a software that could do so much more.

For the calendar and contacts aspects, I had been using the built-in apps of Windows 10/11. They've been surprisingly competent in doing what I needed: integrating with third party services while giving me reliable notifications when something scheduled was coming up. Unfortunately, Microsoft is set to deprecate those, forcing me to look for a replacement. Oddly enough, a major lack of competent calendars on Windows that also support CalDav.

The obvious replacement for the above is the New Outlook, which is currently in beta and should have most of the features I need. Unfortunately, as it's been widely reported, the new Outlook doesn't actually work directly with your IMAP accounts: everything goes through Microsoft's servers. This is not acceptable for something that I mean to live stand-alone – I'd be using webmail otherwise! As the company wants to eventually replace the current Outlook with this new version, I need to look elsewhere.

An obvious candidate is Mozilla Thunderbird. It does it all, including the integration with third party services. I've used it before. It's my current client at work. It's recently had a large update to overhaul its looks and give it some air of modernity. Yet there are some nagging user interface issues that annoy me. For example, it's a small thing, but the calendar will display an event stretching over several days as several individual blocks instead of a line. It makes it more difficult to read your agenda at a glance. Unrelated but still on my radar, the XMPP chat integration is functional but is really rough to use. I'm hoping it gets better. All the building blocks are there, but it needs some polishing.

My main browser, Vivaldi, has introduced mail, calendar and related features some time ago. I had really been looking forward to these, but I can't say I like its user interface. It feels cramped and somewhat counterintuitive on many points and I keep bouncing off it. Maybe it will mature over time, it would be nice to have an all-in-one solution that works well! Netscape Communicator says hello.

After yet another search, hoping to find something new, I unearthed eM Client. My first impression was that it was like Outlook, but done right: the inbox structure is similar to my current one, while I can easily integrate my CalDav calendar and CardDav address book! Bonus, the interface is pretty customizable. I've been using it for a few days now, and it's been holding up. I'm surprised it hasn't come up earlier, since I went looking several times!

The main thing holding me back from switching right now is that it would be more challenging to switch back if I change my mind. Any valid email client will include an importer from Outlook, since it's unavoidable. However, they usually don't include an exporter in a compatible format, so it's a one-way trip. The same goes for eM Client: you can import from Outlook or Thunderbird, but you can only export as individual .eml files. There are ways to go around this, but as someone who likes to have a way out, it's something to keep in mind!

Side note, and I don't know what's up with this, but the Apple world is surprisingly good at offering solid options. Both MacOS and iOS have several options I'd love to try if they were available on other platforms.

Here's hoping I finally found my champion!

#email #calendar #contacts #caldav #carddav #outlook #thunderbird #vivaldi #emclient

– Doctacosa

Launching a blog in 2024, what a silly idea.

Or is it?

For me, it's a statement: I want to own my little corner of the Internet, as I've always done. It's not so much about running a successful blog as it is about having my own writing place, out of the control of any of the big platforms. It also provides me with a convenient location to link my thoughts on any other site or chat platform.

This blog is new, but there are already dozens of older posts. This is because I've imported the content I've written previously in other places, making sure that it survives the whims of Big Tech™. Check out some of my most commonly used tags to find something that could interest you.

I'll be writing with no set schedule, most often about technology, my thoughts, the progression of my projects or anything else I feel like.

This blog gets posted on the Fediverse as @doctacosa@blog.interordi.com, if you want to follow it. Replies are not displayed here at the moment; to interact, you might want to get in touch with me directly! You can also follow my posts through the RSS feed.

For more, see the pages linked above!

#blog #personal #projects #introduction

– Doctacosa

In my last post, I wrote about owning my data on platforms that I control. The core point I made is about how “I prefer to be on platforms that aren't at the whim of someone else”, for a variety of reasons. For example, I can get shut down for any reason elsewhere, without warning, and I don't want my work to go to waste. This is all based on what-if scenarios, of course...

... until Facebook went and shut down the Creeper's Lab page without any explanation, just a few days ago. We've apparently violated the “community guidelines”, without any extra details provided. Facebook being what it is, there's no human involvement. I filed for an appeal, which simply consisted of pressing an “Appeal” button without a chance to ask or add information. This was denied, so the page is now permanently marked as closed after 12 years of serving the community.

I'm not sure yet what to do with this. Try again and relaunch a new page? Swear off the platform entirely? I don't know. I'm not doing this for me, as I don't especially like most social media platforms; I'm doing it to reach people where they are and share updates where they have a chance to see them. Anyone reading this has suggestions on the next step? Maybe you're affected and want to share something!

If anything, this just motivates me on not depending on any single platform. Being too involved with a single place risks losing so much more if something like this happens.

Side note, I spent a good amount posting ads on Facebook in the past few years to attract more players to the Creeper's Lab. They were more than happy to take my money then, without pesky community guidelines getting in the way...

#facebook #socialmedia #creeperslab

– Doctacosa

Something that's been a driving force for a lot of the things I do online is to own my data.

I started my website on my own domain, Interordi.com, back in 2000 so that I would have an address that's mine. It's also what's become my email home. While a bunch of people jumped on Gmail when it launched in 2005, I stayed at my own domain. The web host itself has changed a few times since, but the contact point hasn't.

Likewise, I've never been big on social media as I prefer to be on platforms that aren't at the whim of someone else. This comes at the cost of some visibility: I would probably attract more attention by being more active there, but then it comes at the cost of being at the whim of the owners of said platforms. Those who follow me know how much I criticized the changes that have plagued Twitter / X in the past year and a half.

This is one of the reasons why I started running a Minecraft server, too! I wanted to play in a place where the world would be protected and have a long life instead of facing resets, or risking going offline as its owner lost interest. I knew in the worst case that I'd cut down on maintenance and updates, but could always play whenever I wanted.

In the same spirit, I've been thinking more and more about my online writings such as this one. Over time, I've written posts here on Patreon, on my own forums, on Tumblr and elsewhere. I'd like this to be regrouped somewhere that I own, from where I can share links on other platforms. This is why I've been playing with the idea of starting a blog. I probably wouldn't be very active on it, but it would be a me place, where I don't have to worry about a platform unexpectedly shutting down or becoming non-viable. Would it be popular? Probably not, and that's okay – I just want to consolidate my cozy corner of the Internet!

That's pretty much always been my driving force, and I don't see it changing anytime soon.

#online_presence #projects

– Doctacosa

Sign up to some online service, pick a username, password... and an avatar.

I had been using the same one for several years, and I wanted to change it for something cleaner. But what could it be? I'm not a fan of having my own face there and I didn't want something generic like a travel picture. Maybe a shadowed profile? Or some personal item?

After some thinking, I decided to embrace the gamer that I am and keep the Minecraft head I had been using for some time now. After all, I modeled that skin after my actual head! I changed its perspective with an angle that feels more natural, added detailing like the glasses that aren't glued to the face, and muted the background to create something less look-at-me.

Here's the before (2017) and the after (2024)!

Avatar change

Sci-fi fans who look hard enough might notice a small reference I put in the background. Do you see it?

I also took this opportunity to pick a new color to flag personal items, such as calendar appointments. Whenever I mention this, people are quick to point out the Interordi red as an option, but I see this as the “product” color, what I offer. What I wanted was a “me” color, separate from this. Red is already used, green is identified with the Creeper's Lab, I like orange but I wasn't feeling it... Eventually, I settled on teal. I like teal. And it goes well with a lot of things.

I took this opportunity to regroup all these colors I use on a single page, as a quick reference. The next time I need to set a color somewhere, I won't need to open each site's source code to look for it – I've got a convenient reference right there!

#branding #personal

– Doctacosa

As you know, I'm often rotating between multiple projects. Some need maintenance, others are in the spotlight, while priorities can suddenly change. I'm usually good at shifting from one thing to the other, but sometimes, it doesn't go as well as I'd like.

Part of the work I've been doing lately involves an overhaul of the player profiles. The first step is to improve the current code structure and make it more flexible. A good chunk of the display is made using JavaScript, with the Vue library. I've adopted Vue as it handles smoothly several things I want to do while it can be easily reused in various places. It already powers part of the current profiles, while the Creeper's Lab Companion and the Interordi Accounts section are all done with it. It works well. My problem is, I never really mastered it.

This means that I often have to look up how to do things that should be simple. Let's say I need to use the variable “players”. Depending on where I want to use it, I need to write it as “this.players”, or “players”. Sometimes, both are even accepted! It's a small thing, but I'm constantly tripping over which to use, which leads to bugs creeping into the code all the time. How to bind variables between objects is also a thing I often have to review.

Practice makes perfect, of course! The catch is, I'm not there yet. What I would probably need to do is spend several continuous weeks working with Vue, until it becomes second nature, then I wouldn't need to constantly look up the documentation and double-check my own work.

#development #projects

– Doctacosa

One idea I had in mind in January last year was to try different things, or build up some prototypes, just to satisfy my curiosity. One year later, I can say mission accomplished! But what did I do, after all? Let's look back.

In January, I experimented with self-hosting various tools in a low-maintenance format. I ended up adopting YunoHost to handle some tools like my news feeds, project tracking, online visits counter and more. Since installing it, it's been very easy to use without requiring me to waste time just trying to keep it running, so I consider this a pretty big win.

In February, I wanted to experiment with the Fediverse in some way or another. I compared some of the various platforms and ended up adopting Misskey, hosted on the YunoHost from January. It's now open to the public and running smoothly, but the updates to it haven't followed as expected – I might need to look at an alternative since it's now several months and a major version out of date.

Mars saw me putting a focus on push notifications. Now that iOS 16.1 supports them for web apps, I wanted to exploit them to reach as many people as possible. That's now live in the Creeper's Lab Companion for all platforms, giving people an opportunity to stay updated on the latest news if they want to. This work will be reused for Osmium later.

April was a time of experimentation about chat alternatives. Discord is working well for us, but I don't want to grow too attached to a platform I don't control, so I did some experiments with XMPP and Matrix. These didn't go too far due to various technical and software limits. I'll have to revisit this.

May was dedicated to spring cleaning on the Creeper's Lab. Nothing extraordinary happened; instead, I used the opportunity to smooth out some rough edges and improve the automation of some components. Shiny new things are good, keeping what you already have is even better!

Part of June went into building a prototype for a news reader, as I was looking to develop an alternative to simply following sources on social media. I ended up shelving the project after discovering that existing tools like Inoreader already do pretty much everything I had in mind.

July went into studying tools integrating (but not requiring!) Discord. Unlike the chat search from April, this was all about building different methods to access the same things, like a tighter forum integration. I polished an existing prototype while drafting some other concepts. Part of this is still on the drawing board.

August is when I decided to put an extra effort on improving my online presence. I finally figured out a simple web address that's all about me (interordi.com/stephane) while making an effort on my visibility on some social media platforms. I still have a lot more to do on this – I offer various tools and online communities, but people need to know they exist... and that I'm behind them!

An exception happened in September, where I used my available time to play catch-up on various things. I was feeling rather overwhelmed at the time, so rather than spread myself too thin by playing with something new, I focused on getting back in control of everything happening at the time.

October was basically split in half, as I was on vacations during the first half. The second had all my energy going into the launch of Osmium, which finally happened after so many efforts!

November is when I decided to make a push to add new achievements to the Creeper's Lab. This had been planned for a long time, I finally had all the building blocks together, so it was time to assemble them. This was a big hit with the community, proving that the effort was worth it!

Closing the year in December, I've looked at replacing the JavaScript library I use for pie charts, line graphs and the like. The one I was relying on was getting old and difficult to use. I ended up adopting Chart.js as a modern alternative that's much more flexible. It's not integrated on any visible page yet, but I've been preparing its integration in several places.

And that's it for a year! Some of these took time to do, others happened across a single Saturday or two, but forcing myself to have a different target every month ensured I wasn't just doing standard dev work. This gave me an opening to do a few things that I was already thinking about but never had the opportunity to make happen. I'm considering doing something similar this year, if only to see if some of my ideas are worth pursuing or not!

#projects #personal #recap

– Doctacosa

You might have seen this already: Osmium went live a bit over two weeks ago!

This new project's goal is to allow gamers who play on multiple platforms (PC, consoles and so on) to view all their gaming progress, including achievements, trophies and statistics, in a single place. The current version supports three of these platforms: Creeper's Lab, GOG and Steam. While this might seem limited at first, this is only the beginning: I've investigated about a dozen platform so far and I've run tests with several of them to check their viability. I'm planning to take this far!

My initial efforts after the launch went into stabilizing the imports and making sure that accounts were working properly. While this system is new, it relies on the same Interordi Accounts that people already have for their Creeper's Lab whitelist, Interordi forums and more, so making sure that everything works together nicely was key. And with some of these accounts now going back 20 years, it can be interesting at times.

The next steps will focus on improving the data loading speeds, filtering and adding more viewing options. Then, as I invite more and more people to join, ensure that everything runs smoothly as new platforms get added!

My Patreon page's overall campaign has always been to help support my various ongoing projects, although the focus (and why most joined!) has obviously been on the Creeper's Lab. When it gets introduced, the premium access to Osmium will be given to my highest Patreon backers as a thank you. More to come on this later!

#osmium #patreon #projects

– Doctacosa

This summer, I covered how I dealt with a surge of traffic caused by posting on the Fediverse. While it solved that specific issue, it turned out I wasn't quite done.

The list of online players was now cached; that is, read separately then stored locally instead of being read each time. A simple, elegant solution that led the display to be delayed by a minute at most. I had designed something specific for this, and all was good... for a while.

Some of the monthly challenges also involve reading data from the servers. For example, this month's Race Away challenge shows the top position of all our runners. This is again read directly from the game servers and is susceptible to cause the same overload issue as the global list of players.

This time, I chose to take a different approach. I've written a generic function that accepts any data source to save it locally. This reusable element is easy to integrate anywhere, allowing me to cover anything that could use it. I've since updated the list of online players to rely on this, lowering the load on the web server.

A positive side-effect of this new method is that the information is cached then displayed, no matter what. If the remote server becomes unavailable for any reason, it will keep displaying the older information until the problem is fixed instead of offering a blank box. This is also useful when I'm working on something offline, like developing software on a train with no Internet connection: as long as I've read the information once, it will keep on working just fine, letting me run tests easily!

#webdev #website

– Doctacosa