I’ve been working on a playground for making 3D art with lisp and math (using “signed distance functions,” if that means anything to you). At the moment it’s mostly a curiosity: you can make cubes and spheres and stuff, apply a very limited set of spatial transformations, assign simple surfaces, and that’s pretty much it.
But! Last weekend I started working on adding expressions to the tool, so you can say things like “the color of this shape gets darker when the surface normal’s y component is negative” or color = red + perlin-noise * blue or whatever. Which is fun, but the real fun is writing expressions for shapes: “the radius of this sphere is the sine of its y coordinate” – and now you have a wobbly sphere.
My thing will never be as flexible/general as writing shaders by hand, but this is going to significantly narrow the gap. And it will mean that I can support animations! Which I’m very excited about. So my goal this week is to wrap up the expression rewrite, update the “tutorial,” and then probably just play with procedural animation for a while. Teach my yorp how to walk. Maybe record a video of myself making something?
I just managed to build a standalone binary web app in Common Lisp AND consequently how to embed it in a desktop browser window with Neutralino (light Electron). Excited times, expect news, a demo and documentation! (even cooler: it’s about book management) So, I’ll spend more time on it, but I have to come back to client requests and on what brings an income this week…
Sure, count on me to publish blog posts and write more documentation (especially on the Cookbook). Developing in CL has always been a pleasure. The difficulty in building this was to find how to go around the little warts. There have been… a few. They slowed me down, but they were actually not difficult to solve. Often, I asked on Discord and someone had an answer. I find I didn’t have issues with CL libraries or the implementation themselves, only with all the little inconsistencies and the difficulty of doing something for the first time, and where googling doesn’t throw much results (it does more, now). Example: running my binary with Systemd: SO question. I had to know the answer because the year before I had resolved how to run the webserver from a binary (put it in the foreground: easy, but I had needed to ask). Example: I use Deploy to build the binary and ship a couple foreign libraries. Yes, but it complains about libssl, what to do? It was easy, but undocumented. Another path un-explored was how to ship the Djula HTML templates into the binary. This required cooperation with the maintainer (he’s great). Etc, etc, etc.
My stack: SBCL, Hunchentoot, easy-routes, Djula templates, Mito and sqlite3 for the DB. A bit of HTMX, a bit of JavaScript, very classical web app.
Running the whole with Neutralino was a no-brainer since I have my sandalone binary available.
Turns out sleeping well is important, and if you can pay for a good mattress that suits your body then it’s probably worth it. Problem is finding a good mattress that suits your body.
Maybe I can actually get some work done on Garnet now? I dunno, we’ll see.
if you can pay for a good mattress that suits your body then it’s probably worth it. Problem is finding a good mattress that suits your body.
If you managed that, I congratulate you. I hope it works out as well as you expect. And if it doesn’t seem to at first, I hope a modest increase in your daily amount of vigorous physical activity straightens it right out.
(My track record on that front is so bad that I’m loathe to offer any commentary, let alone advice. But I will observe that everything else goes better for me when I increase my daily amount of physical activity, even by just a little bit.)
Continuing to work on my spatial-sway pet project (to be renamed spatial-shell soon, mostly because it should work with i3 almost for free). It is very nice to see that it already has significantly changed my daily setup. I will soon push my new waybar configuration, that truly gives a Material Shell feel to it.
Getting somewhere with the homelab refresh, and settled on NixOS as the base OS for RPis/Gen8 Microservers. Gradually bringing up the spare hardware and configuring it.
Garage to Office conversion is almost at the point I have to start finishing it with paint and flooring. Likely have to at least make a choice on materials, if not start the fit out this week. Homelab might fall by the wayside in that case.
Oh, and an unexpected four day week at work. Monday is a UK Bank Holiday I’d entirely forgotten about.
I found a nice trail recently, so hopefully I’ll get out to do some trail running.
I want to add unicode support to my fuzzy finder, and I want to learn more about unicode and utf-8 in general. I have done a lot of reading about code points, graphemes, normalization, but I really want to understand it at a deeper level. So I think I’ll study libgrapheme and maybe reimplement it in Zig to take advantage of comptime rather than generating new source files with a makefile.
We’re revamping how the app I work on keeps track of inventory quantities. It is a very deep, fundamental change to the entire conceptual model. A different set of inputs producing a different set of outputs.
Currently trying to come up with a sane way to support people using both the old and the new versions of the app to manage the same inventory items, which we’ll need if we want to let individual users opt into the new version before we roll it out to everyone.
I’m not even sure a good solution can exist at all, given the distance between the old and new models, but being able to support a gradual rollout to early adopters is valuable enough to justify me spending time trying to figure it out.
👶🏼 WEDNESDAY. 😱
I’ve been working on a playground for making 3D art with lisp and math (using “signed distance functions,” if that means anything to you). At the moment it’s mostly a curiosity: you can make cubes and spheres and stuff, apply a very limited set of spatial transformations, assign simple surfaces, and that’s pretty much it.
But! Last weekend I started working on adding expressions to the tool, so you can say things like “the color of this shape gets darker when the surface normal’s y component is negative” or
color = red + perlin-noise * blue
or whatever. Which is fun, but the real fun is writing expressions for shapes: “the radius of this sphere is the sine of its y coordinate” – and now you have a wobbly sphere.My thing will never be as flexible/general as writing shaders by hand, but this is going to significantly narrow the gap. And it will mean that I can support animations! Which I’m very excited about. So my goal this week is to wrap up the expression rewrite, update the “tutorial,” and then probably just play with procedural animation for a while. Teach my yorp how to walk. Maybe record a video of myself making something?
I am telling my team that I’m transitioning from management to IC. I’ll also be planning the transition with my boss and my replacement.
Taking my first serious time off in years. Skiing with family, which has been pretty good so far!
I just managed to build a standalone binary web app in Common Lisp AND consequently how to embed it in a desktop browser window with Neutralino (light Electron). Excited times, expect news, a demo and documentation! (even cooler: it’s about book management) So, I’ll spend more time on it, but I have to come back to client requests and on what brings an income this week…
Oooh, I’d love to know more about this someday. How did Common Lisp treat you? What impl did you use? What was your web stack like? etc.
Sure, count on me to publish blog posts and write more documentation (especially on the Cookbook). Developing in CL has always been a pleasure. The difficulty in building this was to find how to go around the little warts. There have been… a few. They slowed me down, but they were actually not difficult to solve. Often, I asked on Discord and someone had an answer. I find I didn’t have issues with CL libraries or the implementation themselves, only with all the little inconsistencies and the difficulty of doing something for the first time, and where googling doesn’t throw much results (it does more, now). Example: running my binary with Systemd: SO question. I had to know the answer because the year before I had resolved how to run the webserver from a binary (put it in the foreground: easy, but I had needed to ask). Example: I use Deploy to build the binary and ship a couple foreign libraries. Yes, but it complains about libssl, what to do? It was easy, but undocumented. Another path un-explored was how to ship the Djula HTML templates into the binary. This required cooperation with the maintainer (he’s great). Etc, etc, etc.
My stack: SBCL, Hunchentoot, easy-routes, Djula templates, Mito and sqlite3 for the DB. A bit of HTMX, a bit of JavaScript, very classical web app.
Running the whole with Neutralino was a no-brainer since I have my sandalone binary available.
Turns out sleeping well is important, and if you can pay for a good mattress that suits your body then it’s probably worth it. Problem is finding a good mattress that suits your body.
Maybe I can actually get some work done on Garnet now? I dunno, we’ll see.
If you managed that, I congratulate you. I hope it works out as well as you expect. And if it doesn’t seem to at first, I hope a modest increase in your daily amount of vigorous physical activity straightens it right out.
(My track record on that front is so bad that I’m loathe to offer any commentary, let alone advice. But I will observe that everything else goes better for me when I increase my daily amount of physical activity, even by just a little bit.)
Continuing to work on my
spatial-sway
pet project (to be renamedspatial-shell
soon, mostly because it should work withi3
almost for free). It is very nice to see that it already has significantly changed my daily setup. I will soon push my newwaybar
configuration, that truly gives a Material Shell feel to it.Getting somewhere with the homelab refresh, and settled on NixOS as the base OS for RPis/Gen8 Microservers. Gradually bringing up the spare hardware and configuring it.
Garage to Office conversion is almost at the point I have to start finishing it with paint and flooring. Likely have to at least make a choice on materials, if not start the fit out this week. Homelab might fall by the wayside in that case.
Oh, and an unexpected four day week at work. Monday is a UK Bank Holiday I’d entirely forgotten about.
I found a nice trail recently, so hopefully I’ll get out to do some trail running.
I want to add unicode support to my fuzzy finder, and I want to learn more about unicode and utf-8 in general. I have done a lot of reading about code points, graphemes, normalization, but I really want to understand it at a deeper level. So I think I’ll study libgrapheme and maybe reimplement it in Zig to take advantage of comptime rather than generating new source files with a makefile.
We’re revamping how the app I work on keeps track of inventory quantities. It is a very deep, fundamental change to the entire conceptual model. A different set of inputs producing a different set of outputs.
Currently trying to come up with a sane way to support people using both the old and the new versions of the app to manage the same inventory items, which we’ll need if we want to let individual users opt into the new version before we roll it out to everyone.
I’m not even sure a good solution can exist at all, given the distance between the old and new models, but being able to support a gradual rollout to early adopters is valuable enough to justify me spending time trying to figure it out.