Use a "dead man's switch" for reporting errors: Make the job submit some success metric to some monitor (could be on another machine), and if that success indicator doesn't come in, throw an alert.
I personally enjoy playing around with fractals - I've built several fractal rendering programs (this is the latest), and they are quite fun to play around with. While they are more art from math than art from code, there are a lot of creative things you can do in code to visualize different features of fractals - Inigo Quiles has great examples of this, as well as non-fractal procedural art such as SDFs.
Like a lot of graphics programmers, I fell into the rabbit hole of rendering fractals. However, I never stopped - over the past couple of years I have slowly been building one of the most sophisticated Mandelbrot/Julia rendering programs that I am aware of. It has a mostly intuitive user interface, and does all of the calculations on the GPU. It has to use a bunch of mathematical tricks to get around the limits of single-point precision available in shaders. Because of the GPU rendering algorithm, I've managed to view fractal locations at around 10^250 times magnification with near real-time performance.
I also built a really in-depth compositing/coloring system, allowing you to make some really crazy images and get a lot of variation even for the same location:
Although it has only been me working on it, I think it is in a pretty mature state so far, and I would gladly take PRs/issues if anyone happens to be interested. It should support any OS if you compile it from source, but I don't have binary releases set up yet.
I assume you have already tried the official tutorials, but Go By Example is a great "learn by doing" kind of tutorial. Others that I found in a quick DDG search:
For anyone who is confused: This is exploiting an old soundness bug in the Rust compiler that is still present. The GitHub issue page has this comment from maintainers:
we already had a crate published on crates.io before which used this bug to transmute in safe code, see #25860 (comment).
this issue is a priority to fix for the types team and has been so for years now. there is a reason for why it is not yet fixed. fixing it relies on where-bounds on binders which are blocked on the next-generation trait solver. we are actively working on this and cannot fix the unsoundness before it's done.
This is probably not the solution you are looking for, given your opinion of the company, but I wonder if using their 1.1.1.1 app (which acts as a mini VPN to a Cloudflare endpoint and changes your public IP) would fix that for you. The upside is it's free, the downside is that it is a Cloudflare-run VPN.
For anyone who is still confused about what causes this: Firefox launches copies of itself when creating new website instances (usually when loading a website that has not already been loaded). Because of this, if it is updated in the background (through any means; I usually see this after a manual system update), Firefox has to restart when you try and load a new site because it cannot create any compatible copies of itself, since the old version is the one that is still running and the copies would use the new (updated) version.
The solution is to only update when Firefox is closed, or restart it when it asks.
I believe you are correct; if the unsafe code can cause undefined behavior if input data is not following a specific contract, then the entire function should be labeled unsafe so the caller knows that.
The other option is to check to make sure the contract is valid, and return an error or panic if it is not. That function would be sound, as no inputs cause undefined behavior.
Actually looking forward to the btrfs swapfile hibernation; I have tried setting it up on my machine before but the documentation was never clear on whether it would work (or why mine wasn't).
Just going to ask this just in case: have you tried doing a full update and reboot? If you updated and have not rebooted, sometimes drivers get messed up.
My computer was taking too long to start up, which I interpreted as failing to boot, but in hindsight was probably just my hard drive being slow. So, I booted into recovery mode, and ran an update. At one point, apt said "there are unnecessary packages" and would I like to remove them? I figured that apt knew better than I did (after all, maybe a package dropped a dependency), so I said yes.
It was after I noticed the very large number of packages that I suspected I messed up. Turns out, apt uninstalled the entire desktop environment, and network manager, so I had to boot into a USB drive with Network Manager installed, chroot into my main drive, and reinstall plasma. As a bonus, I think I missed the main group for the plasma desktop and only installed only most of it, so some of my extensions just didn't work anymore.
I haven't taken it myself, but "The Last Algorithms Course You'll Need" is free and is written by The Primeagen. He works at Netflix and runs a programming-focused YouTube channel, and as far as I can tell is very knowledgeable and level-headed.
Not all ad blockers remove elements from web pages, and if they acted that predictably you could detect the ad blocker by detecting whether an expected element is hidden.
I have not looked through an ad blocker's code, but I don't believe it is that simple.
Use a "dead man's switch" for reporting errors: Make the job submit some success metric to some monitor (could be on another machine), and if that success indicator doesn't come in, throw an alert.
I personally enjoy playing around with fractals - I've built several fractal rendering programs (this is the latest), and they are quite fun to play around with. While they are more art from math than art from code, there are a lot of creative things you can do in code to visualize different features of fractals - Inigo Quiles has great examples of this, as well as non-fractal procedural art such as SDFs.
https://github.com/KiranWells/corgi
Like a lot of graphics programmers, I fell into the rabbit hole of rendering fractals. However, I never stopped - over the past couple of years I have slowly been building one of the most sophisticated Mandelbrot/Julia rendering programs that I am aware of. It has a mostly intuitive user interface, and does all of the calculations on the GPU. It has to use a bunch of mathematical tricks to get around the limits of single-point precision available in shaders. Because of the GPU rendering algorithm, I've managed to view fractal locations at around 10^250 times magnification with near real-time performance.
I also built a really in-depth compositing/coloring system, allowing you to make some really crazy images and get a lot of variation even for the same location:
Although it has only been me working on it, I think it is in a pretty mature state so far, and I would gladly take PRs/issues if anyone happens to be interested. It should support any OS if you compile it from source, but I don't have binary releases set up yet.
I assume you have already tried the official tutorials, but Go By Example is a great "learn by doing" kind of tutorial. Others that I found in a quick DDG search:
For anyone who is confused: This is exploiting an old soundness bug in the Rust compiler that is still present. The GitHub issue page has this comment from maintainers:
To be honest, you can say the same about any large cloud provider. What happens if AWS, or Azure, or Google Cloud go down, or become terrible?
This is probably not the solution you are looking for, given your opinion of the company, but I wonder if using their 1.1.1.1 app (which acts as a mini VPN to a Cloudflare endpoint and changes your public IP) would fix that for you. The upside is it's free, the downside is that it is a Cloudflare-run VPN.
You might look into displaying images in the terminal as well; many modern terminals support showing actual images natively
Yep; sometimes I will be able to do a search and then when I try to click on a result it has me restart.
For anyone who is still confused about what causes this: Firefox launches copies of itself when creating new website instances (usually when loading a website that has not already been loaded). Because of this, if it is updated in the background (through any means; I usually see this after a manual system update), Firefox has to restart when you try and load a new site because it cannot create any compatible copies of itself, since the old version is the one that is still running and the copies would use the new (updated) version.
The solution is to only update when Firefox is closed, or restart it when it asks.
I believe you are correct; if the unsafe code can cause undefined behavior if input data is not following a specific contract, then the entire function should be labeled unsafe so the caller knows that.
The other option is to check to make sure the contract is valid, and return an error or panic if it is not. That function would be sound, as no inputs cause undefined behavior.
Actually looking forward to the btrfs swapfile hibernation; I have tried setting it up on my machine before but the documentation was never clear on whether it would work (or why mine wasn't).
Check out Ollama and its extensions for VSCode; might save you some money paying for other services if your computer can run models locally.
Unfortunately, I don't have experience with mangohud. Does Legacy work without it? And does mangohud work with other games?
Just going to ask this just in case: have you tried doing a full update and reboot? If you updated and have not rebooted, sometimes drivers get messed up.
My computer was taking too long to start up, which I interpreted as failing to boot, but in hindsight was probably just my hard drive being slow. So, I booted into recovery mode, and ran an update. At one point, apt said "there are unnecessary packages" and would I like to remove them? I figured that apt knew better than I did (after all, maybe a package dropped a dependency), so I said yes.
It was after I noticed the very large number of packages that I suspected I messed up. Turns out, apt uninstalled the entire desktop environment, and network manager, so I had to boot into a USB drive with Network Manager installed, chroot into my main drive, and reinstall plasma. As a bonus, I think I missed the main group for the plasma desktop and only installed only most of it, so some of my extensions just didn't work anymore.
The link they use is working for me; what is the code you are using to fetch the data?
Also,
dbg!()is a very useful macro for inspecting state. Might help see what is going on.That link seems broken (the date is wrong). This worked for me:
https://this-week-in-rust.org/blog/2023/11/08/this-week-in-rust-520/
I haven't taken it myself, but "The Last Algorithms Course You'll Need" is free and is written by The Primeagen. He works at Netflix and runs a programming-focused YouTube channel, and as far as I can tell is very knowledgeable and level-headed.
Not all ad blockers remove elements from web pages, and if they acted that predictably you could detect the ad blocker by detecting whether an expected element is hidden.
I have not looked through an ad blocker's code, but I don't believe it is that simple.