RSSAmplifier

Blog

nickw.io

nickw.io

nickw.ioRSS feed ↗15 posts

Latest posts

Cheap Function Tracing

Cheap Function Tracing One thing that I always seem to be doing is performance engineering. And easily the most important thing is figuring out where your code is spending all its time. There is no shortage of tools that can answer this question, such as perf record , callgrind and kcachegrind in valgrind, gprof , or even Intel VTune . These tools are great, and help answer the question of what…

Logging User Interfaces

Logging User Interfaces I have been building a console for my side project rendering engine that captures log messages and displays them in a nice list that you can view in-engine without going out to the TTY. I've implemented this on top of fmtlib , and instead call ren::println() or ren::errln() and it appends the formatted line to a list somewhere which is then rendered using ImGui . This ends…

I added giscus comments to the site

I added giscus Comments to the site Just a little update to say I added giscus as a comment system to this blog. All the posts should work now out of the box with comments. I was surprised how easy it was to add. They even have a nice little site to help you out generating the html (though, I am using react with this library ). Anyways, just a quick update on that to the 2 people who check the…

Binding flecs to lua

Binding Flecs to Lua with Luajit FFI I've been waiting on multi-hour FPGA runs a lot lately for my thesis, so I picked up a side project to kill the time. I've been building a renderer/game engine/game in C++ using Vulkan . The engine is called "ren", cause it renders and I couldn't come up with anything else at the time. So far, it can load assets from disk and render them with a typical PBR…

Super Early Global Variables in C++

Super Early Global Variables in C++ I've had a problem for a while now where the code I'm writing in C++ can potentially run before the global constructor list is invoked by libc. Let's imagine, for example, that you are building a memory allocator to replace malloc : class Heap { Heap() { printf("Heap Constructed!\n"); } // ... }; static Heap the_heap; extern "C" void *malloc(size_t size) {…

Virtualization So Light, it Floats! Accelerating Floating Point Virtualization

See the URL for the full post.

Tracking Rates in C++

Tracking Rates in C++ Recently I have wanted to figure out how often a certain even happens in my research project, Alaska. For example, I want to know how many allocations have been made, and the rate (allocations per second) they are made at. Importantly, though, I want this tracking to occur in constant time and constant space (and ideally very quickly). As an example of what I wanted to have,…

Setting up RSS in a NextJS Blog

Setting up RSS in a NextJS Blog Since I'm working on getting this blog up and running, I wanted to also get RSS working well enough so folks can use their own readers. So far, I've found a few guides online on how to get it working in a nextjs site like I have, but I didn't really have much luck getting them working well enough so I'm documenting what I think works for me here. After a bit of…

Setting up my 'blog'

Setting up my "blog" or: getting emacs to fix all my problems I've realized recently that I've never really had a place to just write things down on the internet that wasn't something like Twitter, Mastodon , or something else. Those sites are too ephemeral and short-lived to really serve as something where I can post longer-formed So now I think I'm going to put some work into this "blog" in the…

Getting a Handle on Unmanaged Memory

See the URL for the full post.

Compiling Loop-Based Nested Parallelism for Irregular Workloads

See the URL for the full post.

CARAT KOP: Towards Protecting the Core HPC Kernel from Linux Kernel Modules

See the URL for the full post.

FPVM: Towards a Floating Point Virtual Machine

See the URL for the full post.

Isolating Functions at the Hardware Limit With Virtines

See the URL for the full post.

Visual Debugging with VGA

Visual Debugging with VGA NOTE: This is an old post from years ago I recently had a bit of a memory corruption bug with my kernel’s heap allocator and I thought I’d share how I went about debugging it. In a kernel it’s somewhat hard to debug code and off-by-one errors because it doesn’t crash like a user program and instead just keep chugging along. You have to either setup a remote GDB session or…