I've finally finished my Advent of Code optimization blog post, just in time before the new year
https://cprimozic.net/blog/optimizing-advent-of-code-2024/
1.1.2025 05:00I've finally finished my Advent of Code optimization blog post, just in time before the new...The last one I think
28.12.2024 03:07The last one I thinkI'm using this as motivation to write alt texts for these diagrams
28.12.2024 03:06I'm using this as motivation to write alt texts for these diagramsAnother one
27.12.2024 16:44Another oneI'm finally working on a new blog post: a rundown of the very cool optimizations I used to compute Advent of Code 2024 day 9 part 2 as fast as possible
I'm using TikZ to create the visualizations, which creates SVGs that have a nice academic vibe to them
27.12.2024 01:58I'm finally working on a new blog post: a rundown of the very cool optimizations I used to compute Advent of Code 2024 day 9 part 2 as...A new one for me:
Someone has created a fake Twitter account for one of my side projects. It's filled with dozens of seemingly AI-generated posts trying to make it look like it's partnering with some crypto pump-and-dump website
Fascinating times we live in
26.12.2024 19:02A new one for me:Someone has created a fake Twitter account for one of my side projects. It's filled with dozens of seemingly...I wrote up some notes about how I used constrained cubic bezier curves in the envelope generator for my browser-based synthesizer
https://cprimozic.net/notes/posts/creating-constrained-bezier-curves-for-an-envelope-generator/
They look and sound much better than the x^n function I had before, and I the math involved turned out to be very neat
26.12.2024 04:09I wrote up some notes about how I used constrained cubic bezier curves in the envelope generator for my browser-based...I saw my excuse to pull in Z3 to solve today's advent of code (day 13) and I took it
It was a bit like using a hydraulic press to crush an empty soda can, but I never pass up an opportunity to use Z3
13.12.2024 07:19I saw my excuse to pull in Z3 to solve today's advent of code (day 13) and I took itIt was a bit like using a hydraulic press to crush...Some person or org has been aggressively scraping data from Spotify through an API of one of my web apps
I blocked their IP, and two days later they started it back up but some kind of proxy service that sends the requests from hundreds of unique residential IPs - lol
Don't tell them, but they're still using the python-requests user agent, so I just blocked them in a sneaky way at the application level instead
The scraping has continued for days since then, so they seem to not have noticed...
13.12.2024 03:08Some person or org has been aggressively scraping data from Spotify through an API of one of my web appsI blocked their IP, and two days...GCP has some killer products that really put it ahead (especially Cloud Run, BigQuery, and its giga-cheap archival storage with instant retrieval)
Azure felt so incredibly Enterprise-focused and convoluted, but I've used it the least by far so it could just my unfamiliarity.
30.11.2024 05:04GCP has some killer products that really put it ahead (especially Cloud Run, BigQuery, and its giga-cheap archival storage with instant...Having used all three, here's how I'd rank the main public clouds (considering ease of use, features, pricing, etc.):
1. GCP
2. AWS
3. Azure
Honorable Mention: Cloudflare. It's prob. my favorite, but it doesn't have everything that a "fully fledged" public cloud would have
30.11.2024 05:04Having used all three, here's how I'd rank the main public clouds (considering ease of use, features, pricing, etc.):1. GCP2. AWS3....I'm moving away from using ORMs to interact with databases in my projects
As soon as you try to do anything even slightly complicated or outside of the most common patterns, you're stuck fighting against it and the ORM becomes an active detriment rather than a convenience
I know this is isn't necessarily a hot take, but it's something I'm reminded of over and over
It's the most leaky abstraction I can think of and causes other problems like making poor-performing queries very hard to identify
24.11.2024 00:30I'm moving away from using ORMs to interact with databases in my projectsAs soon as you try to do anything even slightly complicated or...I'm following the crowd a bit and have set up a Bluesky:
https://bsky.app/profile/ameo.dev
I really do love Mastodon and plan on x-posting everything important to Twitter, Bluesky, and here
I'll certainly follow back on Bluesky anyone following me here!
12.11.2024 21:14I'm following the crowd a bit and have set up a Bluesky:https://bsky.app/profile/ameo.devI really do love Mastodon and plan on x-posting...I've been working on a screen-space reflection impl for my 3D projects over the weekend
Every part of SSR feels very hacky. It's an extremely clever algorithm and can provide realistic outcomes if tuned just right, but I see the appeal in raytracing and more physically-based methods.
It's one of those things where there are a dozen params to tune and you have to get set them just right for your specific scene in order to get good results
#3d #ssr #graphics #3drendering
11.11.2024 07:01I've been working on a screen-space reflection impl for my 3D projects over the weekendEvery part of SSR feels very hacky. It's an...I recently realized that my browser extensions and userscripts were adding 50+ ms of loading time to every page I visited - even when not doing anything
I went through and disabled all but those that I really need. Even 50ms can make things feel less snappy in my experience
2.10.2024 22:07I recently realized that my browser extensions and userscripts were adding 50+ ms of loading time to every page I visited - even when not...I'm finally getting around to porting over the amazing CSG.js library (https://evanw.github.io/csg.js/) to Rust for use with my other geometry processing stuff
The basic impl seems to be working. These two cubes are fused into a single surface with no interior geometry
#csg #geometry #compgeo #rust #rustlang
31.7.2024 21:45I'm finally getting around to porting over the amazing CSG.js library (https://evanw.github.io/csg.js/) to Rust for use with my other...New blog post is out:
https://cprimozic.net/blog/tools-and-techniques-for-procedural-gamedev/
A small rundown of some of the shader tricks and software features I've built + use for my 3D experiments in semi-procedural gamedev
#graphics #threejs #procgen #generative #shaders #gamedev
27.7.2024 18:09New blog post is out:https://cprimozic.net/blog/tools-and-techniques-for-procedural-gamedev/A small rundown of some of the shader tricks and...Just finished re-reading Permutation City by Greg Egan
Certainly still my favorite book of all time. The ideas it explores hugely expanded my perspective when I first read it during college, and now I'm finding myself unable to stop thinking about them all over again
24.7.2024 23:46Just finished re-reading Permutation City by Greg EganCertainly still my favorite book of all time. The ideas it explores hugely expanded my...A first for me, I've fixed an actual bug in Chrome/Chromium!
https://crbug.com/40686236 and https://crbug.com/40592236 specifically
I kept running into it while working with web audio and figured I'd try fixing it myself
Now I have to figure out their review process and hopefully get it merged
19.7.2024 19:41A first for me, I've fixed an actual bug in Chrome/Chromium!https://crbug.com/40686236 and https://crbug.com/40592236 specificallyI kept...TIL that AVIF files are now supported by all modern browsers
I'm switching all the textures I'm using for my browser-based 3D work to use AVIF instead of JPEG
The compression ratios are just massively better, and features like noise synthesis really help avoid visible artifacts for certain kinds of textures
15.7.2024 09:26TIL that AVIF files are now supported by all modern browsersI'm switching all the textures I'm using for my browser-based 3D work to...