stephenc

@stephenc@waveform.social
0 Post – 33 Comments
Joined 1 years ago

Disciple of Christ and software engineer, concurrency wizard subclass.

Things I like: programming (probably in Rust), computer hardware, music, guitars, synthesizers, video games

I like Ubuntu Server. It's got a nice installer that is simple and straight to the point, and lots of documentation. I'm also very familiar with it if I need to troubleshoot.

That said, I don't like snaps and every new version pushes them harder. I'm currently learning openSUSE to see if it can become my new go-to for servers.

I always run Linux servers headless, so how the distro does GUI (if an option) is not relevant to me in this scenario.

2 more...

Well I guess I am part of "they" since I have my own programming language pet project. Why did I create it? Because I wanted to, mostly. Sure, there are also some finer language design choices I wanted to choose differently for my preference, but mainly I just wanted to learn how.

Welcome to JavaScript! This is the expected behavior. For the life of me, it still boggles my mind. I refuse to write JavaScript anymore.

I'd call it Paradox Lang, or PL for short. It even has features that are contradictory to each other, you just have to declare which mode you want at the top of every file. Can you imagine. :)

The only feature it doesn't have is "lightweight and minimal language".

Quite a few languages that are major players now started as hobby languages.

2 more...

I'd love a desktop client. :P No web shenanigans, maybe GTK or something.

And talk about it on a self-hostable platform, no less.

I'd call myself a backend developer. Primarily we build data stores and APIs that encapsulate low-level business logic for cloud applications. Some backend teams mostly make CRUD APIs, but my team tends to work at a lower level, such as file objects, transformations, CDNs, bulk operations, etc.

Things we have to deal with include:

  • If holding 100 billion objects is expected, we need to figure out the most important access patterns for that data and how to incorporate it into an API that will scale horizontally and have reasonable and stable performance. This can be tricky, as the best solution is sometimes more complex than using a simple SQL database. Sometimes specialized database types, or multiple databases holding different aspects of the data are required. This is very close to the sorts of things a DBA might do.
  • If files can be included or attached, we need to design a redundant file system solution for holding those files. Sometimes its as simple as plugging into a cloud object storage like S3, sometimes the requirements dictate something different. Basically figuring out what off-the-shelf cloud solutions we can use and how to use them, or when to build something custom.
  • Batch job processing is a big thing. Our biggest project required us to create our own scheduling system based on containers and clusters and autoscaling nodes based on load in order to handle a million tasks per day. This is an example where you may do things similar to what an SRE team might do, managing infrastructure with your code.
  • Lots of API design stuff. Higher-level backend developers and frontend developers don't want to know or care about the complex stuff under the hood, they just want us to provide a simple API that just does what they want. Sometimes it can be tricky to design an intuitive API that abstracts over some of the hairy details.
  • Cost is a big deal too and sometimes you have to be good at estimating costs and figures. When the operating budget is strained and 80% of it is backend (because well duh, it does most of the work) then management will be looking at you to either optimize costs to run the software, or to prove that the operating costs are reasonable for the expected results.

So sometimes wearing multiple hats. Personally I enjoy what I do a lot because it always presents a challenge. I love solving complex problems, and almost monthly I get to play around with large-scale software problems where the naive approach will almost certainly perform like crap and needs a more clever design.

We're a cloud-first company though so primarily in the context of that.

That's sort of a good problem to have; it means Lemmy is gaining a lot of attention. Hopefully people stick around long enough to reform their communities in Lemmy while people upgrade and add new servers to handle the demand.

It's a little late for that, Lemmy's API is mostly in place and already being used.

I'm personally OK with the old-school way of one account per community/server. All I really want is forums with (1) a nice clean UI, (2) nice mobile app, and (3) open APIs. Most popular forum software meets only one, or even none of these. Lemmy has all three of these. Federation is maybe nice icing on the cake, but I could take it or leave it personally. Maybe that's denying the whole point of Lemmy, but I don't care.

You're going to have a tough time finding projects to contribute too. A mind-boggling number of projects are hosted on GitHub. Probably a majority of all open-source code in existence.

Want to know what is worse than GoDaddy? Network Solutions.

I just use a folder of photos and then use digiKam to manage them. But it's just me, I don't need to share photos with anyone else. I like digiKam but it doesn't play great with concurrent users out of the box. I think there's a way to use a shared database though.

I still like individual forums and use them on occasion. For me, the reason why Reddit was better is because of the UI. The default phpBB skin is awful for following a dialog in my opinion; Reddit's much more compact threads free of annoying signature blocks and giant user profile panels is much nicer. Personally I'd be perfectly happy to go back to the days of individual forum accounts if the forums had nice UIs like Reddit or Lemmy. Even Flarum is an example of a traditional forum software with a decent UI. The big missing thing though is threaded conversation which I much prefer over a flat forum, something that Lemmy offers.

I bounced around a bunch of different apps after leaving Evernote myself some 6-7 years ago. Evernote was cool, but started getting worse. I can only imagine how bad it is now. I also learned that migrating away from Evernote's walled garden is a bit difficult.

I don't have any recommendations for ones with a web editor. I specifically wanted a local app for my notes, which Evernote seemed less interested in and more interested in pushing their web app. After Evernote I've been using a folder of plain-old Markdown files, synced to my home server, and using various editors for those Markdown files. Things I've tried include VSCode, Typora, and QOwnNotes.

Today I use Obsidian and haven't hopped around for the last 2 years. I love Obsidian and have basically no complaints about it. Again no web editing, but if you just want local files (that can sync across devices) then Obsidian is excellent.

I have always been a laptop guy my whole life because the portability, flexibility and comfortability of them.

Decades ago, I would say that laptops didn't really have these attributes. Back in the day, they were heavy, most had short battery life, and were very slow compared to a decent desktop. Laptops have come a long way in three decades. :)

PHP used to be my main language. When they started adding more advanced type features it interested me. Then I got bitten by the strong typing bug and started teaching myself Haskell. I didn't end up getting very far, but now I strongly prefer strong and static typing.

I don't dislike PHP, even now. If I wanted to use an interpreted language for a web project, I'd probably pick PHP. I sure like it better than Python, Ruby, and JS. I just don't find myself wanting that kind of language anymore though.

Well with Arabic numerals, zero is also the most physically round. :)

I use Seafile... can give a partial recommendation

Love mdadm, it's simple and straightforward.

This is my least favorite part of Seafile. If there were a competitive alternative that used a flat file storage backend then I'd switch to that in a heartbeat. But alas, I still have not found one, so I will continue into my 6th year of using Seafile...

Worth noting in 6 years I haven't had any actual trouble with Seafile's storage, and the few times I've needed to I've been able to export data to a normal file system using seaf-fsck even if Seafile isn't running. I'm just not 100% comfortable with it anyway so I understand the apprehension. I'd rather use a standard filesystem and be able to use standard tooling on it.

I am also pretty interested in btrfs. I recently redid my laptop and did btrfs for everything there. No btrfs on my server yet though. Ext4 is just really optimal for data recovery. Maybe if I redo my server sometime in the future I'll start with btrfs.

First, how do I self host:

  • Proxmox on custom PC hardware
  • Kubernetes for containerization (via Microk8s, but I really hate it, will move to k3s at some point)
    • Just about everything I can runs as a K8s deployment

What I self-host:

  • Seafile: Does all my file storage, NAS, and sync duties. No, I haven't found a better alternative yet.
  • PiHole
  • Home Assistant
  • Subspace wireguard
  • VictoriaMetrics
  • Grafana
  • Also a TP-Link Omada controller on a Rock64 lying around

That's actually about it at the moment.

share the load

Cloud storage is expensive. Physical storage is cheaper in the long run. Might be a good candidate to actually self-host on-prem. Throw a bunch of SATA SSDs at it, which are astonishingly dirt cheap nowadays and probably fast enough for a medium-sized instance; maybe add an NVMe disk cache if you want to be fancy.

One of these months (or years...) fiber will finally be available in my area, at which point I'm going to move most of my servers from the cloud to on-prem. But for now I can't, because 10 Mbps upload is a pretty tight bottleneck...

My dad used to name each machine after a different character from Transformers.

Uh... Google Domains... damn.

Well actually it depends, I have things spread across different registrars for different things. For all my personal stuff I have been using https://www.namesilo.com/ for over 5 years with not much to complain about. They generally have good prices and support quite a few TLDs, and no nonsense. Though they've been in a control panel redesign limbo for like 2 years which is pretty annoying, especially since I liked the old one better.

For IT stuff that I do for nonprofits and other orgs I've used Google Domains, but I guess that will have to change. Mostly because it integrates well with Google Workspace. I already use Cloudflare for a few of these things, so maybe I'll just move the domains to Cloudflare too. Generally I'm pretty happy with most things Cloudflare.

I hear excellent things about Porkbun but have never used it myself.

And the clients are actually really great, competitive with the features of the best cloud storage clients.

My Grafana dashboard says 81 watts at the moment. This includes a slightly beefy Intel computer running Proxmox, with a Kubernetes cluster inside, a few other small ARM servers, and my networking stack which is a router, 1 switch, 1 AP, and a modem. Also the main server is full of spinning rust disks. I haven't done much to optimize power consumption.

I mean, 2 and 4 have been true already for quite some time in my experience.

I do the same, except with Seafile. On my phone I use Keepass2Android which has built-in support for syncing a database over WebDAV. Works flawlessly.