The second edition of _The (ANSI) C Programming Language_ by Kernighan and Ritchie apparently has a fun easter egg about recursion.

In other news, manually soldering SMT Optoelectronics without breaking them is hard.

I got a label printer as a gift. So of course this is the first thing I printed!

Here's one of the other projects I'm working on at work: A real-time web interface for a Cryo-Electron Microscope.

This dashboard view shows the results of micrograph analyses as they trickle in from the compute cluster.

Hooray science!

I'm going to try to be a more interesting person on Mastodon this year! Hooray 2020, and new year's resolutions!

So here's a screenshot of an app I'm working on.

It's a GUI that helps you prepare molecules for processing by our research lab's server-side molecular design software.

Who would be insane enough to solder surface-mount parts without a PCB? Apparently me.

Had to make these little wires for a thing. Dang, soldering these tiny little parts is hard! Dunno if I could do it without that amazing low-temp solder paste. Even still, I keep melting the plastic. No one will see the mess once I put the shrink tubes on though.

Hard at work today printing little white domes with my LulzBot Mini 2. Got the 0.25 mm print nozzle installed today and now I can do ultra-detailed little prints. They’re so tiny!

The first layer settings for this height leave very thin lines which don’t stick to the print bed very well. Looks like I’ll have to venture away from the default slicer settings.

Hmmm... that print didn’t go well. I ended up with a hairy elephant.

My 3D printer finally arrived!! Let the games begin!

I ordered a LulzBot Mini 2. So far, everything about this printer screams quality. I can’t wait to see what it can do!

Nothing makes soldering these ridiculously tiny parts easier than my Quad Hands! Love it!

Finally got a world-space technique for ambient occlusion working in my molecule renderer! The extra darkening at corners really helps with depth perception and makes the objects easier to visually parse.

More progress on my interactive molecule app for work, called MolScope. It's built using Kludge, my and wrapper for .

Here's an example of depth buffering from a more complicated application that uses Kludge: molecule rendering.

This is an N-terminal Alanine molecule rendered in a space-filling style.

Those spheres are actually not meshes. They're rendered directly in the fragment shader, so they're pixel-perfect at any resolution. The fragment shader generates the depth information too.

I just updated my Kludge library (a thin wrapper for ) to expose an API for depth buffering!

Here's some fully-working sample code if you want to see how to use depth buffers in Kludge:
github.com/cuchaz/hello-kludge

Even though the blue triangle is drawn after the red one, it has a farther z value, so it gets clipped by depth buffer testing.

It's such a small change, but it's nice we no longer need `args: Array<String>` in main() declarations.

I just updated my Kludge project, an idiomatic API for :

github.com/cuchaz/kludge

Finally got my single-board-computer working as a USB device! :blobaww:

Now to get the host side working.

And here's a shoutout to the Linux kernel for letting me do almost all of this in user-space! :linux:

Mastodon for Tech Folks

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!