Feel free to tell what you plan on doing this weekend and even ask for help or feedback.
Please keep in mind it’s more than OK to do nothing at all too!
I graduated this morning and I’ll try to relax and “disconnect” my mind a bit before heading into my first full time career adventure starting in October!
Congratulations and best of luck!!!! I still have ~2 years left, but halfway there so the end is in sight!
Thanks and best of luck to you too!
Congratulations Ale, good luck with your new job!
Thanks Daniele! Appreciate it! 💪🏻
Good luckk !!
I just launched my first big side-project: https://forlater.email — an email-based bookmarking service! Going to add some more features for it over the weekend, and write up a quick blog post on the technical details behind it.
Looks pretty cool!
My dad is turning 70 and we are having a BBQ. This will be the first time my 11 months old son visits the village I am from. Pretty cool.
Working on a little toy game. I don’t know why, but it has been a lot of fun.
Last weekend I wrote a little on-GPU raycaster thing in an attempt to render soft shadows from the game scenery (read: squares and circles). It’s a “stealth” game, so light and shadow are very important, and you can turn lights on/off or shoot them out. Anyway, it worked okay, but there were a lot of quality tradeoffs to get decent performance with multiple lights (I got up to 7 at 60fps). But I had never done graphics or written fragment shaders or anything before so I was pretty proud and pleased with how it looked.
I showed it to a friend who does Actual Graphics Programming to ask about optimizing it. And he laughed, and held me in his arms, and whispered that it was going to be okay. And then he introduced me to signed distance fields. So yesterday I replaced my little hand-rolled crappy raycaster with something that uses 3D SDFs to cast shadows (even though it’s a 2D game… it makes sense) and the difference is unbelievable. Sharp, pixel-perfect shadows from arbitrary scene geometry, and I can do 17 lights at 60fps. But the quality difference is so large that it doesn’t even seem fair to compare – it’s not shadowing a low-resolution occlusion map; it’s shadowing the actual scene geometry.
I found this article to be a very good overview of the general technique:
With interactive demos that explain the general idea behind SDF raymarching.
(Although I use Aaltonen’s “improved” soft shadows, and I came up with a better technique to mitigate banding (I should email the author about that…). Also I am doing it in 3D, so some objects cast longer shadows than others, but the conversion to 3D is completely trivial… SDFs are crazy.)
Anyway, this weekend I’m going to integrate the new “lighting engine” into the actual game and then I can stop futzing with lights. And also tell everyone I meet how cool SDFs are. Then I can move on to procedural level generation. I found this paper:
To be the most compelling procedural level generation technique that I’ve heard of so far. I’m very attached to the idea of generating a level using a graph with production grammars, and then realizing that graph into a game. The “easy” version of this is a rectilinear planar embedding, where each “room” in the level is a square and they’re connected by corridors. But that’s boring. Ma et al.‘s technique is the only interesting example I have seen of this approach. So I’m going to implement something similar, although I have a lot of ideas that I think might improve the final output.
That sounds like so much fun. SDFs are freaking awesome. Valve used them for the custom sprays in Team Fortress 2, I think. More resources:
Been struggling with the motivation to actually build something to use them in however, life, pandemic, etc etc…
Learning more about time on computers. Timer data structures, leap units, mechanics around NTP. More conceptual things like “what even is a year”. Organizational/standards things like if there’s a difference between RFC 3339 and ISO 8601 and if so why are they often treated interchangeably…are there quirks and edge cases introduced? Is anything concrete or is it all just a mess of compromise and people winking at each other because we have to define time somehow?
I started a project that has to do with time, and y’know what? I’m this far in, may as well just see if this rabbit hole has a bottom…or at least walls.
I wrote a bit on that topic, though not touching on the different formats part. Maybe it can be helpful.
This looks awesome, thank you!
continue with https://interpreterbook.com/ along with my commentary on the book itself.
Hopefully catching up some much needed sleep! Insomnia has been rough lately :/
On the homelab front, I still need to finish deploying my personal infrastructure and get all my wireguard tunnels up. I have been building Ansible playbooks en-masse to re-create my environment should the need ever arise, I’m really trying to get in a mindset of “if it has an API or I can leverage a third party tool, I should be using it”, so trying to be as much as “hands off” my servers as possible.
Also doing some Python coding for a friend of mine, app is (mostly) working, but got some bugs to squash and code to optimize, perhaps it may never be finished as I keep thinking of things to add and breaking other things in the process ;)
I’m hoping I won’t need to make an urgent flight for my dad. Admitted with COVID. He’s immunocompromised.
Oh, that’s not good. Here’s hoping everything turns out for the best.
I want to do a color contrast pass in order to finish dark mode for Lobsters. And maybe some more Tetris with podcasts.
This looks great! Thanks for putting in the effort.
Cool topic. I feel like this is one of those minor superpowers that generally has to be cobbled together from gobs of sources.
Thanks. I was familiar with some of the command with personal use, reading/answering stackoverflow questions, etc. For some, I’m reading the manual and just trying out examples that make sense to me. I’m not a native English speaker and some of the documentation has been difficult to understand for me.
Spawnfest! https://spawnfest.org/ I’m doing a project in Erlang after working mostly in Elixir for the last couple years.
Probably writing something but not sure what to write about.
My left shoulder is still aching a bit from that 5G injection I got (/s) so light duties. Might get to finish the sun-dryer… thing I started making for my wife that’s been sitting half-done for several weeks.
I plan to integrate an image converting worker I made with a gallery I’m working on, the integration uses something like SQS which I made in Janet. I find it neat that I can make useful software run under 4MB of memory.
While the cloudflare images feature supports WebP, PNG, JPEG and GIF, mine also supports AVIF and JXL. The worker uses an alpine image I packaged with avif and jxl binaries. Unfortunately these newer formats are not well supported in brew on arm64 and are missing from many repositories.
WebP, PNG, JPEG and GIF
Maybe try Nix, you may have better luck with support and compact containers
Good question! I anxiously ran circles around this question in my head this morning, then realized what I was doing and decided to just start with the bottom of Maslow’s Hierarchy of Needs and go from there as necessary.
So, I’m going to get food, cook delicious things, and sleep a lot. It looks like a lovely weekend for a barbecue.
I’m currently automate tweeting contents from my site https://freestuff.dev/
Idea is I want to tweet all this product automatically.
Luckily Dlvr.it make it easy, I just add my RSS and done!
Feels good after automating repeated task
I’m working on logparser to produce HTML. I want to replace GoAccess on Subreply and Unfeeder with it.
After completing the Typescript conversion of the new frontend at work, the plan is to complete the work towards feature parity by the end of next week, so gonna spend half of the weekend on that, and the rest on hobby projects and resting.
I am in code cleanup and stabilization mode. I wrote my own terminal input library and I got tab completion and custom line formatting working in an interactive tool which needs it. For example: directory completion on tab works and if you’re inputting a command or a regex, it’ll turn green or red depending on if it’s valid or not. I’m struggling a bit since I’m don’t want to lock in a bad API by publishing the new version of the library which does this.
After 2y of development I’m finally planning to release V7 of Deployer: https://deployer.org
Well. It’s a plan.
Or maybe I’ll take a few days off next weekend to definitely finish it.
Or another 1y may pass.
Learning about Geometry and Tessellation shaders by implementing a visualization of “Dynamical Systems” from chapter 14 of Clifford Pickover’s book Computers, Pattern, Chaos and Beauty.
And Sunday I’m headed to a friend’s house for a few days to play with Ham radio gear and bike.
Last weekend I released a the source code to my first ClojuresSript application, and wrote an outline for a programming tutorial YouTube series. Goal this weekend is to get an episode recorded and released.
Taking son dinghy-sailing and fencing! Probably check in on my allotment too. And reading The Scarab Path.
Want to also check out https://www.tynker.com/ with my son as he wants to learn to make Minecraft mods. He’s 9, and has been going through a beginner’s Python book—but probably not ready for gradle & Java just yet.
Continuing on my poorly named ‘m-lang’ compile-to-js language, currently doing a re-write in ruby. First time I’ve written intentionally OO code since I don’t remember, it is funner than I remember.
Unless it goes faster than I suspect, probably: analyzing sub-exec behavior in util-linux and writing argparse parsers for picking out sub-execed arguments. :o)
Flying from JFK to SFO and playing Pokemon with my niggas