No worries. I’ve wasted more time on lesser mistakes than this. I also once made everyone an admin by forgetting a single ampersand. That was a fun eight hours.
I’m Hunter Perrin. I’m a software engineer.
I wrote an email service: https://port87.com
I write free software: https://github.com/sciactive
No worries. I’ve wasted more time on lesser mistakes than this. I also once made everyone an admin by forgetting a single ampersand. That was a fun eight hours.
You don’t, really. And even a trustworthy open source project can be infiltrated or sabotaged. Basically, you just have to rely on the reputation of the organization or developers behind it.
That’s good to hear. Now I wish MLB would drop Twitter.
I don’t really like this. If my project has one dependency that is one year behind, that’s the same measure as if I have 52 dependencies that are all only one week behind.
As a general indicator, this might be interesting, but it is not useful in determining anything about a piece of software.
You also might want to remain behind, if you support old versions of a runtime, and you shouldn’t be penalized for that. As long as you haven’t missed any security updates, you’re fine.
Imagine if WinRAR had to pay Microsoft every time someone installed it.
The right choice is a Framework laptop. But if not that one, then a cheaper Framework laptop.
I use an Acer Spin 5, and I really like it, but my next laptop is definitely going to be a Framework. The fact that I can never upgrade my Acer’s CPU is just sad. Even if the screen, keyboard, trackpad, etc, all work great, eventually it’ll just be ewaste.
TypeScript might not be here to stay, but typed JavaScript definitely is. I’ve switched to writing 100% TypeScript, and haven’t looked back. The fact that just adding types to one of my (admittedly more complex) libraries surfaced 3 unknown bugs was eye opening to me.
That’s so sad. Rest in peace.
It’s astounding to me how transphobes will always call transphobia “basic biology”. Like, hey, maybe learn just a tad of advanced biology. Imagine thinking you can build a house because you took shop class in high school.
(And yes, I realize they don’t actually care about biology.)
I don’t think I want to use that laptop.
What in the absolute fuck is in that thumbnail??
I always thought this was a funny scene, because if you know what the parts of a printer are called, it’s obvious what “PC Load Letter” means. So Michael is obviously just bad at his job.
Load letter sized paper into the paper cassette, in case you didn’t know.
Any operating system can run Python just fine. That being said, your laptop would benefit from a light weight system like Linux with Xfce or Lxde. I’ve never heard of a programming course requiring a specific OS (aside from courses on OS specific tools, like Cocoa).
I believe they’re discontinuing the 13” size.
[everyone liked this]
You’re probably gonna wanna look somewhere else for non-JavaScript.
ActivityPub was basically written to support everything any social network could do, so there aren’t really well defined ways to do anything. An example is that there’s no standard markup language for notes. They can be text, HTML, markdown, whatever. It was the first W3C spec I read through, and I’m used to reading IETF specs. Maybe I’m just not used to how W3C does things, but the spec left me with a lot of open questions. It’s ambiguous about how things work in a number of areas. Especially about what things are allowed in other things. There are parts where you get the impression that something can only be an array, but then later it’ll show an example where it’s a single item not inside an array.
It was also supposed to be both a server and client protocol, so that any server should be able to talk to any client, but they don’t cover at all how to actually authenticate the client to the server. Oauth is the standard, but there’s no standard way to add your client to any given ActivityPub server. So you just have to code for whatever server you want to talk to.
So essentially what I mean is that you can’t build functioning software just by reading the spec. You must look at existing implementations to see what they do before you have any hope of working with them. To me, that means ActivityPub is an incomplete spec. I hope they remedy that with an update.
I’ve heard of Nostr. It looks really great on paper, but in reality, it’s filled with spam and cryptobros. It’s not moderatable, which makes it a target for spam and scams.
I’d recommend something like SFTP or WebDAV. They’re incredibly well defined and very useful to have an implementation of your own. I’ve written my own WebDAV server called Nephele, and it was really fun once I got it communicating with other software. Now I use it on my own server and I back up all my computers to it.
A long time ago I wrote an XMPP client which was really fun. I wouldn’t say it’s as useful as the others because not many people are on it, but it’s a great protocol.
One thing that I found really fun and very educational was to find a protocol or format I found cool (something like XMPP, WebDAV, SSH, gzip, etc) and try to implement it in a place that wasn’t immediately obvious how (like, if you’re trying to learn Go, maybe don’t pick WebDAV, cause it’s already implemented in the standard library). I like to print out the RFCs or specs and put them in a binder. Then I read through and highlight important bits and put little sticky flags on the page. Then as I implement it, I’ll reference that printout.
It’s an incredible feeling when you get to the point that your software is talking to someone else’s software and it’s all working. And it really teaches you how the software you use every day really works under the hood.
Btw, I wouldn’t recommend the ActivityPub protocol. Even though it’s really useful and really powerful, I don’t consider it to be written very well or novice friendly. There are a lot of places where it is either ambiguous or just flat out contradicts itself. If you find a protocol like that, it can make you want to pull your hair out.
One to many: my primary key is other table’s foreign keys.
Many to one: other table’s primary key is my foreign keys.
Many to many: my primary key and other table’s primary key are all foreign keys that connect each other in some other table.
So yeah, you’ve got it right. :)