It’s funny how things change when you least expect it. Writing software frequently has twists and turns. How so? This time last month I was just about finished writing my first library in the Rust programming language. Now? Well, let me explain.
Libraries — and not the kind that stores books — are the name of the game right now. My first Rust library handles Base85 encoding, transforming arbitrary binary gibberish into text gibberish. What makes it so special is that it’s more efficient than the main way of doing this on the Internet, Base64. Mensago uses it all over the place. Afterward, I began rewriting another library, EZNaCl, in Rust. I originally wrote it because working with cryptography is hard, and the code I wrote makes it significantly easier to work with and debug. That library’s done now, too.
From there I moved onto a much more involved project: the messaging library I mentioned last time called Oganesson. I had a better idea how to make it better, so I spent some time reworking the plumbing. Today I discovered that the entire library itself isn’t needed. I moved parts of the code to different projects and it won’t be long before it can go away entirely.
One of the cool things I created from the work I just spent on this library is a new way of packaging data. Some of you might have heard of JSON. I made something like it that works very nicely and doesn’t need special handling for binary data. This new way of packaging information, called data serialization in the industry, is called JBinPack, but the library that I’m making out of the old code is called gobinpack. Not a great name, but good names are really hard to come by nowadays and the people who might use it, programmers, won’t care much anyway.
Where To From Here
We’re about to start seeing some really exciting times in the next few months. Just short of 3 years into this and it won’t be long before I’ll finally be able to start working on Mensago Connect. What’s so great about this? It’s the desktop program that goes with all this infrastructure. With as excited as this next part makes me, I have a really hard time keeping secrets.
Up to now, I’ve said very little about Connect. There’s been no point. Without a server to work with, building a client is more than a little silly. There’s also a lot of self-imposed pressure to build it well. For Mensago to succeed, a user’s experience with it has to be nothing short of stellar. Lots of thinking, lots of research, lots of designing, and no code whatsoever so far. The guiding question is this: how would Outlook look and work if it had been written by an experience-focused company like Apple in 2021 as a standalone product instead of being bundled in with other office software in 1997 by Microsoft?
I don’t claim to be an expert on design, programming, or just about anything else. I’m just a guy trying to help out, and I definitely won’t say that the work I do is comparable to what the big guys do on a regular basis. With that said, studying great products in the space has been very helpful. Up to this point I have done little beyond planning and designing mockups of the interface. Please note that these are merely rough ideas and the final product will probably have some significant differences from what you see here. At the same time, it’s nice to at least see the direction the software will go. Enjoy!