Solar Pi Thoughts

The Solar Pi is an idea I had for a project/concept art project: a Raspberry Pi powered directly from a solar panel, hosting a website. When the sun is down, the site isn’t available. There are other solar powered websites out there, but forgoing storage is an interesting idea.

It wouldn’t have to be a Pi, other single board computers could work. The key is that the load is light enough that a solar panel itself can power it without much reserve, over a reasonable period during the day. With a larger panel, even during overcast days you might be able to keep it running somewhat. The idea is to see how useful you can make this without introducing a battery, although I’m considering a supercapacitor to provide enough storage to shutdown gracefully, and handle a single cloud going overhead.

Spiritually, this is similar to things like solar water pumping off-grid: the sun powers the pump whenever it’s out, and you pump water into a tank for use. That’s your energy (and water) storage. Or, a solar vent fan. Conventional grid-tied solar is like using the grid as a battery, although if you time your loads right you can end up using it this way too.

This has gotten me thinking about a couple things. For one, maybe running a mail server too? Email should, in theory, work if a receiving server becomes unavailable. It would be neat to include this as well.

Another idea: what about leveraging something like syncthing? The website could be shared on the Pi, and then others would just download it when it’s online. Not only that, but users could help distribute it as well.

Amusingly, given my home network, the site would probably sit behind a proxy. In other words, another web server and mail server that would relay to the Pi. These would almost certainly be powered from the grid, although I may tackle that as an other project. It kind of takes the starch out of the initial proposal, but from my perspective at least it’s kind of fun to set this all up.

The Fediverse

I’m an engineer. I enjoy working with technology, even when I find it frustrating. I enjoy solving problems using technology, and having it available for others to use and perhaps solve their own problems.

I work primarily with hardware, but I have a foot in the software realm. I’ve been a Linux user going back to high school, and also dabble in the BSDs. I’ve run my own servers and networking. I’ve had varying presences on the web, and over the years have run things like blogs and forums off my own machines. Email as well.

Technology is neat, and I was never one to leave it all to the ‘professionals’ at some big social media company. Not that I never partook, I signed up for Twitter at some point back in the day, and was on Facebook not long after it started. But I liked the idea of doing it myself.

In 2018 I signed up for an account on mastodon.social, the flagship Mastodon instance. This is part of the Fediverse, instances of Mastodon or other web-based software that can communicate with each other. So instead of an account with a big service like Twitter, you sign up at one someone, presumably a much smaller entity set up, and can talk to people on other instances. It could be a huge instance (like mastodon.social), or a smaller one (like hackers.town which I eventually migrated to). The Fediverse is known for microblogging services like Mastodon or GoToSocial, but there are others like PeerTube for video sharing and Pixelfed for something like an Instagram replacement as well.

The Fediverse is neat because of the promise of taking social media into one’s own hands. You can run an instance if you want, or at the very least pick one that aligns with your values, interests, and outlook. You could of course have multiple accounts on different instances (something I actually recommend, at least having a backup) to. While it sometimes gets talked about, in general Fediverse users aren’t interested in having an algorithm drive engagement, or some entity datamining them for the purposes of surveillance capitalism.

A lot of users made their way to Mastodon instances after recent events at Twitter (eg, the company being bought by a billionaire). Even prior to that, others had been coming over from marginalized communities, such as LGTB+, who saw it has a safe haven. The problem is, of course, that people are jerks, and moderating them is difficult. This was/is true at Twitter, and has been and continues to be a problem on the Fediverse.

To be honest, there are some real cesspools out on the Fediverse. They tend to be ‘free speech’ instances which deliberately don’t bother moderating, but they can also be instances in which the moderators simply don’t do a good enough job. It could be because it grew to big, or because the people running it just don’t care. These instances tend to get defederated – an instance that doesn’t federate with them doesn’t communicate with them, so if my instance defederates with the instance my friend is on, we can no longer communicate. Of course, I could if I had a backup account on an instance that does federate with my friend.

At first glance, defederation might seem like a weakness. You have all sorts of people running instances, and, you might think, when they don’t get along the whole network fragments. I contend that it is a useful tool, albeit one that should be used as a last resort. If an instance is a source of constant harassment, for instance, it makes sense to cut it off. Because you can. You don’t have to interact with anyone if you don’t want to, which is an important part of having freedom of speech. You don’t owe anyone a platform.

So is the Fediverse just destined to fall apart once everyone defederates with everyone else? If you jump in, there is a community there. There are enough instances federating with each other that, even if they are divided amongst somewhat isolated groups of island chains instead of one big amorphous blob of users, you can find people. Discovery isn’t so much like Twitter with its algorithm, hash tags important. While I haven’t used Twitter extensively myself, I could see it easier to discover/be discovered there. But I, personally, enjoy the feel of the Fediverse.

The issue is this: technology can move us forward. It can give us new approaches to solving problems, and new tools to use. But we can’t just throw it at social problems. I think the Fediverse and similar ideas of decentralization are steps in the right direction, but they’re not going to fix every problem seen with conventional social media. There are going to be jerks and assholes out there, and inadequate attempts at dealing with them. We’ll be facing them in the Fediverse, the difference is that it’s up to us and not the opaque actions of a big company.

Email is Fine for What It is

In theory, you should be able to host your own email server. That, in turn, should allow you to exchange emails with other people with email servers. This is a form of federation, where users on each system can talk to users on another. A similar example of this on the web-side of things would be the fediverse, including Mastodon.

Email, however, has been around for a while. These days, chances are that a user of email is doing so through a big provider like Google or Microsoft. In addition to needing the expertise to set up one’s own server, there’s also maintenance, and of course, fighting spam. As such, outsourcing email is attractive, and as long as you own the domain you can always take it somewhere else.

I’ve hosted my own email, on a machine I control, for years. I have mixed feelings about recommending this to people. It works for me, but it’s not always easy, and I still do keep accounts around with the bigger providers for certain things. But, much of my email needs are self-hosted. I do it primarily because I can, and I want to be able to. I don’t want it to become a thing that only the big providers can handle, and I see this as doing my part.

I know there are others like me, but I know a lot of sentiment exists to the effect that this is a losing battle, and it’s really not worth doing. In the fight to save users from spam, it can be difficult to get emails to go through to the big providers. This makes it difficult to run your own. And if your server is on a residential IP range, good luck – this will probably get you blocked by itself. (I use an external relay.)

Large companies do manage to run successful email servers; usually there are IT staff there to maintain it, and maintain enough of a reputation that deliverability isn’t a problem. (They could also just outsource.) For an individual, I think it’s understandable to not want to deal with this. But, I think we need to take a step back and think about what email can be: a way to exchange messages between users on different computers.

Think about it: What if you didn’t need to worry about being able to deliver email to anyone with an email address? Or receive likewise? It sounds counterintuitive, after all you’d want postal mail to be able to come to you from anywhere. But maybe you also have your friend just drop something off at your doorstep, without using the public post office. Maybe they don’t even do it at your mailing address, or maybe you have a secret location in the woods. The postal service has advantages, but you don’t need it to physically exchange packages.

The idea of the tildeverse is to treat Linux/Unix servers like their own social network. What if two of these communities wanted to allow their users to exchange email with each other, and only those two? Email (technically, the simple mail transfer protocol or SMTP) works fine for this. And if you only intend to connect the two hosts, they could blacklist everything else. Or, perhaps even firewall other hosts, or just connect via VPN.

Or, maybe you and your friend just want to exchange emails with each other, and you each have an internet-connected machine running at each of your houses. You could do similar, and without either server using a block list, it’s possible to do it just with residential connections (no relay host like I mentioned earlier). Encryption would probably be a good idea for going over the internet, but otherwise the setup could be pretty simple.

Obviously, just getting a free email with a big provider is simpler. But, for anyone who wants to self-host some of their email communication, email may not have to be that complicated, so long as you’re willing to limit its scope.

Switching Blogging Software

For whatever reason, I’ve been wanting to try an alternate way of composing this blog. Now, I’m not a frequent blogger, as you can see. I’ve daydreamed of putting more content at this site, but I tend to be slow at getting around to it. I’m not sure if switching to a different platform would make me write more, but there is peace of mind involved.

WordPress is actually pretty nice. It does a lot of things, and is pretty much a content management system (CMS), as opposed to just a blog platform. It’s probably a great choice if you need to throw something up like a personal or professional blog, website for your business, or whatever. Especially if you have something where a bunch of people will be logging in and creating content.

I continue to use it because it makes things like formatting, as well as managing and uploading images easy. That, and it’s easy to throw a new theme on the site. While those are pluses, it also does so much, and requires PHP and MariaDB (MySQL). These are pretty standard if you’re just looking for someplace to host your blog, but for a self-hoster such as myself, simplifying things is attractive.

Static site generators have become popular these days – you compose your content with a text editor using Markdown, and the generator uses a template to generate your site as a bunch of HTML files. Then you just stick them on your server by whatever means, eg rsync. I’ve looked at these, and have been toying with writing my own. My reasoning is that I would have to switch from WordPress, and while a lot of what’s available would probably work great, I might as well take this as an opportunity to give it a try. It might be fun or something.

In reality, this is at the bottom of a list of projects, but I daydream now and then. WordPress is a complex beast, but it’s easy to install and keep going, and that makes a big difference.

Actually, I have been playing with WriteFreely as well, and have set up a secondary blog with it here. It’s a single Go executable, and I wanted to mess with it because you can follow it from the Fediverse. I’m not sure this will completely replace my blogging here, but it’s something I’m trying out.