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

  • 0 Posts
  • 28 Comments
Joined 2 years ago
cake
Cake day: June 14th, 2023

help-circle




  • 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.



  • hperrin@lemmy.worldtoProgramming@programming.devSuggest a Laptop for me.
    link
    fedilink
    arrow-up
    5
    arrow-down
    1
    ·
    edit-2
    9 months ago

    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.




  • hperrin@lemmy.worldtoRisa@startrek.websiteIDIC
    link
    fedilink
    English
    arrow-up
    15
    ·
    9 months ago

    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.)




  • hperrin@lemmy.worldtoRisa@startrek.websiteNothing good
    link
    fedilink
    English
    arrow-up
    12
    arrow-down
    1
    ·
    1 year ago

    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.







  • 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.