Aussie living in the San Francisco Bay Area.
Coding since 1998.
.NET Foundation member. C# fan
https://d.sb/
Mastodon: @dan@d.sb

  • 0 Posts
  • 138 Comments
Joined 1 year ago
cake
Cake day: June 14th, 2023

help-circle






  • Your data really isn’t worth that much.

    Also, it’s a common misconception that large tech companies like Google and Meta sell your data. They don’t. The data is what makes the company valuable - they’re not going to give away their competitive advantage. Instead, advertisers can target people based on the data. The advertisers never actually see the data nor exactly who their ads are reaching (it’s just aggregate anonymized data).

    On Google and Facebook, even individuals can use the same tools that large advertisers use to list their ads, and see exactly what they see.






  • I took down the home page of one of the top 5 websites for around 5 minutes.

    There were two existing functions that were written by a different team: An encode method that took a name of something (only used internally, never shown to the user) and returned a numeric identifier for it, and a decode method that did the opposite.

    Some existing code already used encode, but I had to use decode in my new code. Added the code, rolled it out to 80% of employees, and it seemed to work fine. Next day, I rolled it out to 5% public and it still seemed okay.

    Once I rolled it out to everyone, it all broke.

    Turns out that while the encode function used a static map built at build-time (and was thus just an O(1) lookup at runtime), decode connected to a database that was only ever designed for internal use. The DB only had ten replicas, which was nowhere near enough to handle hundreds of thousands of concurrent users.

    Luckily, it’s commonplace to use feature flags changes, which is how I could roll it out just to employees initially. The devops team were able to find stack traces of the error from the prod logs, find my code, find the commit that added it, find the name of the killswitch, and disable my code, before I even noticed that there was a problem. No code rollback needed.

    That was probably 7 years ago now. Thankfully I haven’t made any mistakes as large as that one again!

    Always use feature flags for major changes, especially if they’re risky!





  • Otherwise I feel like it’s a bit pointless to put so much work into a system that can’t be kept secure,

    You just need to recompile stuff when needed :D

    I think it’s designed mostly to be a learning experience rather than as a daily driver. It serves that role very well!


  • dan@upvote.autoLinux@lemmy.mlNiche Distro Users: Why?
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    2 months ago

    Kinda enjoying the process of piecing stuff

    At the risk of sounding crazy… You might enjoy Linux From Scratch (LFS) and Beyond Linux From Scratch (BLFS). Maybe not as a daily driver, but it’s a great way to learn how everything works, since (as the name suggests) you build everything from scratch. No package manager, just tarballs of source code. It really helps with getting an understanding of how everything works.

    BLFS even includes instructions for building Xorg and all the major desktop environments.



  • I can’t remember examples off the top of my head, but there’s been some GUI programs I’ve wanted to install that are in Fedora’s repos but not in Debian’s. I’ll have to check my installed packages at home and see.

    Debian’s packages can also be very old, even in unstable. That’s to be expected - Debian focuses on stability rather than going for the cutting edge - but it can cause issues when using it in a desktop environment (as opposed to a server environment). I’ve got a Framework 16 laptop and AMD contributed a bunch of bugfixes in the 6.9 kernel, which took a while to make it to bookworm-backports.

    Debian is fantastic as a server OS and I’ve been using it for over 20 years, but on the desktop I ended up liking Fedora more.


  • Which C++ redistributable do I need to run this program? It’s not the newest one or the year before that. It’s not the one provided by the installer. It’s 2013 (in this case only)!

    Luckily, the Linux equivalent (glibc) is mostly backwards compatible. You can still hit issues if you have a binary blob that’s been compiled against a newer version of glibc than what comes with your distro, or if it’s compiled against an extremely old version of glibc, but that’s not too common.

    Why does every distro need yet another package manager

    A lot of them have been around for a very long time - dpkg (then apt) since 1994, RPM (then yum then dnf) since 1997 - and there’s no one package manager that’s clearly better than the others.

    APT is so nice and easy… I hope DNF is the same.

    dnf is just as easy, and in my experience, Fedora’s repos are pretty comprehensive and have a lot of things that Debian’s and Ubuntu’s don’t.