• 17 Posts
  • 257 Comments
Joined 5 years ago
cake
Cake day: May 31st, 2020

help-circle
  • I thought about creating something like that and the major problem that I see is that lots of meme templates do have copyright and the font that’s typically used for memes, Impact, isn’t free either. Well, and it isn’t done by merely developing a software and offering it for download. You would need to host the meme templates or some editor webpage, which is a whole 'nother skillset.

    If we say that users bring their own meme template, and it can be a free font that looks similar to Impact, and it’s not to be hosted as a webpage, then it would be quite doable.
    You would “just” need to call the ImageMagick library with the right parameters. Still not trivial, but the path to get there is fairly straightforward. I could imagine that something like that already exists as an open-source project…




  • I find it so tricky, too. With the maintainers that I see struggling, it’s rarely a lack of contributions that fucks them up, but rather a lack of maintainers. And they can’t easily onboard other maintainers, because:

    1. there’s hardly anyone willing to invest enough time into your project to be a particularly helpful maintainer.
    2. everyone’s just strangers on the internet, who may or may not want to ship malware as part of your project.

    Like, I even have a friend who’s excited for a project that I’m building, but so far, they’re purely cheerleading (which is appreciated), because they do have projects of their own that they find fun, and in particular also a life outside of programming.
    I do not currently struggle with maintainership (because I haven’t announced my projects anywhere publicly 🤪), but yeah, it just feels like it’s asking for a lot, if I were to try to get that friend on board. In particular also, because not many aspects of maintainership are fun.


  • The thing I never understood about PowerShell is that it’s partially more verbose than C#, which is one of the most verbose programming languages in existence. It just feels like you might as well go for a full-fledged programming language at that point.

    The appeal of Bash et al is that the scripting is almost the same as the interactive usage, which you already know. But because PowerShell is so verbose, I’m really not sure people do use it interactively.

    I guess, that code snippet in the article makes somewhat of a difference, in that PowerShell offers better features for interop between processes. But man, that still feels like it could’ve been a library instead…




  • I agree in general, that a crash is much better than silently failing, but well, to give you some of the nuance I’ve already mostly figured out:

    • In a script or CLI, you may never need to move beyond just crashing.
    • In a GUI application or app, a crash may be good (so long as unsaved data can be recovered), but you likely need to collect additional information for what the program was doing when the crash happened.
    • In a backend service, a crash can be problematic when it isn’t actually necessary, since it can be abused for Denial-of-Service attacks. Still infinitely better than failing silently, but yeah, you gotta invest into logging, monitoring and alerting, so you don’t need to crash to make it visible.
    • In a library, you generally don’t want to trigger a crash, unless an irrecoverable error happens, because you don’t know where it’ll be used.

  • Currently implementing error handling for a library I’m building and the process is basically to just throw all of the information I can find into there. It makes the error handling code quite verbose, but there’s no easy way for me to know whether the underlying errors expose that information already, so this is actually easier to deal with. 🫠



  • Ephera@lemmy.mltoProgrammer Humor@lemmy.mlCareer Advice
    link
    fedilink
    English
    arrow-up
    0
    ·
    30 days ago

    Last year, money was running out in our project and the guy who had trained me decided he’d take the L and move to another project, so we could continue in the project. And yeah, suddenly I was in the role of the lead developer.

    Like, don’t get me wrong, I would’ve been the one to be moved to another project, if I wasn’t up for the task. It’s not like I was a complete dumbass.
    But it did still feel more like “I guess, we doin’ lead development now” rather than something I had intentionally worked towards.





  • Ephera@lemmy.mlOPtoOpen Source@lemmy.mlWhat's up with FUTO?
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 month ago

    From a communication viewpoint, that is fair, but to my knowledge (from being a professional software developer), effectively any license that is not ‘open-source’ or ‘free’ is by definition proprietary.

    Because those two terms describe licensing standards (the only established ones that I know of). Whereas I believe, “proprietary license” uses this meaning of proprietary:

    Nonstandard and controlled by one particular organization.

    So, they wrote that license themselves is the point. What it says in there is secondary in meaning.

    This is so highly relevant because in legal disputes, there is certain license compatibilities which are known to be possible.
    You can take a library licensed under the MIT license and use it in a project that uses the Apache-2.0 license and you’re perfectly fine. This is the foundation of why the open-source ecosystem exists at all.

    But you cannot take the source code from FUTO and use it in a differently licensed project, because no legal precedents exist to support this. (I believe, the FUTO license also actively prohibits this in some way, but that’s beside the point.)
    This has massive implications. Like, yeah, you can look at the code, but it is useless. If FUTO closes shop or enshittifies, you cannot fork their projects.
    And because you cannot legally re-use their source code in other projects, likely no one looks at it in depth either.




  • There’s no way they actually checked that it works. It includes code for:

    • XDG
    • GNOME
    • “GNOME_old”
    • KDE

    Verifying this would mean logging into several different desktop environments.

    It’s also extremely fragile code, running external commands and filtering through various files. There just is no good API on Linux for querying whether the desktop environment is using a dark theme, so it’s doing absolutely inane shit that no sane developer would type out.

    Because it’s a maintenance nightmare. Because they almost certainly don’t actually need to solve this. That’s software development 101, to not write code that you don’t actually need. But apparently some devs never got the memo that this is because of the maintenance cost, not because you weren’t able to generate the code up until now.


  • I figured, I’d involuntarily sign up for counter suggestions by posting this. 😅

    Using lib.escape is a good idea, thanks.

    But yeah, basically I want to configure Alacritty and I’m using the respective home-manager module.
    Even more specifically, I want to pass stuff, including a regex, into the settings parameter, which more-or-less just takes the Nix expression that I shove in and then outputs it as TOML on disk.

    As for how I would’ve liked this to work:

    But the TOML is templated with "double-quotes", so I do need to escape the regex after all.

    I did just try to understand how the Alacritty module does the templating and found this gem:

    # TODO: why is this needed? Is there a better way to retain escape sequences?
    "substituteInPlace $out --replace-quiet '\\\\' '\\'"
    

    Source

    So, that doesn’t fill me with a whole lot of confidence. 🙃

    But yeah, it’s working now without me having to write a whole bunch of backslashes, so that’s good enough in my book.


  • I guess, there’s technically nothing which dictates that a debugger has to work by stepping through a program. It could also present you some diagram of variable values changing over time. But yeah, gonna be hard to find a more useful representation than those values being interleaved with your logs, at least for most applications. I have heard of more advanced debuggers being used in gamedev, which makes sense, since logs aren’t nearly as useful there.

    But yeah, given that most people think of the stepping debuggers, them being the default advice does feel emblematic of our industry still shying away from concurrency.


  • This meme brought to you by me trying to pass a regex from Nix into a TOML, which is certainly not the worst backslash orgy I’ve seen, but tragic in its own right. Both Nix and TOML have a way to specify raw strings, which do not need escaping. But Nix uses a normal string when passing into TOML, so I do have to escape anyways. 🫠

    My regex also contains a double-quote, which was just guesswork as to how many backslashes I need there.