• 1 Post
  • 305 Comments
Joined 8 months ago
cake
Cake day: August 31st, 2025

help-circle










  • I self-host forgejo on a spare machine in my home. I also set up automatic encrypted backup using Restic on Backblaze (but any S3 compatible host will work). It might not be a perfect backup strategy, but it’s good enough for me, and perfectly manageable with my limited skills. Using wireguard, I can easily access it from outside my home. I also get much better uptime than Github lol

    Importantly, I do NOT share this with anyone. It’s purely for my own private development and personal projects (I have a ton of these). Even when contributing to something on github, I work in a mirror on my private forgejo, and only push to github to create the PR when it’s ready.

    Any open source projects I’ve released (I only have a few) go on Codeberg, but I still have a lot of projects I contribute to and rely on that are on Github. That’s really the hard part: getting other people to migrate to something else.





  • Yes and no. It depends on how you manage symbol visibility. There is such a thing as a “private” dependency. For example:

    • libA uses a patched version of libZ, and breaks ABI compat with the upstream version
    • Your program links with libA and upstream libZ dynamically

    If LibA links with libZ statically, and doesn’t expose any internal libZ structures through its own APIs, then there’s absolutely no problem. Your code will never directly interact with the internal libZ of libA.

    If LibZ is exposed by LibA, or LibA dynamically links with LibZ, then you have a problem. I’m not an expert on dynamic linkers, but they’re might be some platform specific workarounds you can do.

    Something else I’ve seen before is some libraries use preprocessor macros for their namespaces. That way, you can change the namespace (and thus symbol names) at compile time. That way, you can have multiple copies of the same library coexisting, even with type safety at compile time.




  • So they’re saying that the AGPL v3 additional terms for Only office include this:

    • the obligation to retain the original product logo
    • the denial of any rights to use the copyright holder’s trademarks

    How can you retain the original logo if you don’t have the right to use their trademarks? (I’m assuming they have a trademark for the logo)

    This feels like a sleazy attempt to find a loop hole in the AGPL language to restrict commercial use. Afaik, GPL licenses specifically allow commercial distribution, as not doing so would be a restriction on freedom.

    If Only Office doesn’t want people to do this, they could have very easily just chosen a different license from the beginning. I find it hard to see them as the good guy here.


  • You don’t actually need to “split” anything, you just read from different offsets per thread. Mmap might be the most efficient way to do this (or at least the easiest)

    Whether or not that’s going to run into hardware bottlenecks is a separate issue from designing a parallel algorithm. Idk what OP is trying to accomplish, but if their hardware is known (eg this is an internal tool meant to run in a data center), they’ll need to read up on their hardware and virtualization architecture to squeeze the most IO performance.

    But if parsing is actually the bottleneck, there’s a lot you can do to optimize it in software. Simdjson would be a good place to start.