KiranWells

u/KiranWells@pawb.social
4 posts · 58 comments

Recent posts

Recent comments

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:

A grid of 9 rendered fractals, each one with the same rendered location but drastically different coloring styles.

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.

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.

on *Permanently Deleted* · c/firefox · 12 pts · 2y

Yep; sometimes I will be able to do a search and then when I try to click on a result it has me restart.

on *Permanently Deleted* · c/firefox · 38 pts · 2y

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.

on *Permanently Deleted* · c/linux · 10 pts · 2y

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.

on *Permanently Deleted* · c/me_irl · 6 pts · 2y

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.