site banner

Tinker Tuesday for August 27, 2024

This thread is for anyone working on personal projects to share their progress, and hold themselves somewhat accountable to a group of peers. We can coordinate weekly standup type meetings if their is interest.

Post your project, your progress from last week, and what you hope to accomplish this week.


Last week's thread was quite a bit less active than the original one, but I think this is an idea worth continuing, so here we are. Though one thing that might be worth discussing is the pacing of the thread. If there's not so much activity, maybe we can go from weekly to monthly, and if anyone want's to give weekly reports, they can do so under their project's top level comment. Let me know what you think!

3
Jump in the discussion.

No email address required.

I finally finished a potato experiment I've been meaning to do for years. Planted some in a trench at various depths, then hilled them as usual.
The ones planted at 3' grew a few normal fist-sized yellows at the deepest layer, but then dozens of tiny golfball sized ones on the higher stem.

Always wondered if there were diminishing returns to hilling. Looks like the sweet spot for large potatoes might be 10-16"

Last week was insanely productive. Had to get an application in for an accelerator. I have the end2end demo hosted and working.

Still building my 'AI moderator'. It is pretty close to ready. I'd be happy to offer it pro-bono for people on TheMotte. (Btw, does TheMotte have a moderation endpoint?)

Learnt JS and React and got my first really 'professional' looking website up and running. Lowkey, frontend development is rather straight forward in framework land. Claude helped a lot, but also, React has templates for everything. Love it. I'm surprised by how easy deployment has become. Firebase and similar tools give you fully working solutions for DB, auth, hosting, CI/CD straight out of the box with generous free tiers. Didn't try cursor, but upload your whole codebase to Claude is working remarkably well. I've lived in ML land for too long.

For the first time, I feel like I could run a 1 person company and perform every part of the job - Sales, BD, Design, FE, BE, ML, Deployment. Ofc, 24 hours is too little time in a day to do everything.....but the fact that it is possible to do by one person is a huge unlock.

I've been trying to get into the Unreal Engine, as Zorba recommended ages ago. I stopped using Unity last year when the big pricing policy debacle depleted the last of my trust in the company, spent a few months with Godot until I ended up banned from the Discord for very politely objecting to their using the platform for political activism, and so what's left but Unreal or making an engine of my own. Lacking the free time for the latter, I chose the former.

Unreal's system requirements turned out to be unexpectedly manageable though of course noticeably heavier than Godot. I had a lot of trouble getting it to compile anything I wrote without crashing, but eventually I managed to get that settled. Now I need to actually do things with it. I spent the last two weeks on vacation, and the month prior to that in a frenzy of job application processes (including one that had me do an extensive C++/Qt/QML coding task, so I managed to sneak in some relevant practice), but I hope to get back on track in the weeks to come.

Someone please ping me next week to request a progress update, however meager. Peer pressure always works on me.

Someone please ping me next week to request a progress update, however meager. Peer pressure always works on me.

Will be happy to. Anything specific you're planning to do?

Never gave Unreal a go so I can't offer much in terms of advice / reviews, but feel free to ping me if you want either.

Nothing specific, no. I have a bunch of ideas large and small, some of which I have previously built in other engines. I usually make little toy simulations for my own edification, concerning geology, meteorology, orbital mechanics etc. Nothing serious, nothing cutting-edge, and usually just to the point of "I can see where this is going" rather than any state fit for publication. I intend to continue doing this beacause I enjoy it. I might also stitch some of that together into something game-like, but that's not even a stretch goal, just an option.

I have considered sitting down and planning a more coherent project, but that's on hold until I better understand the engine and how quickly I can get things done with it.

and usually just to the point of "I can see where this is going" rather than any state fit for publication.

I get that, I had a whole bunch of projects like that too, but I wouldn't dismiss the usefulness for other people. For example:

toy simulations for my own edification, concerning geology, meteorology, orbital mechanics etc

Bro, post pics at least. I also played with orbital mechanics so I know how that one goes, but what can you even do with geology? You made some some earthquake simulator or something? Weather simulation is more obvious, but then I kinda want to know how much you can simulate with what kind of code.

Bro, post pics at least.

Your wish is my command. Witness my complete disregard for visual design.

/images/17249573044822352.webp

/images/17249573045198023.webp

/images/172495730452158.webp

Note that while the orbits are all circular, prograde and ecliptic, they needn't be - even that somewhat slapdash implementation supported any kind of standard kepler orbit.

The planet shows one specific experiment with geology and meteorology, althrough a very simple one. And the resulting elevations are obviously grossly exaggerated for ease of viewing.

Those images are all from my playing around with Godot. My Unity projects were a little more advanced in terms of simulation, but the visual presentation was about on the same level.

I also played with orbital mechanics so I know how that one goes, but what can you even do with geology? You made some some earthquake simulator or something?

I have a few semi-functional attempts behind me, but what I usually do is to split the surface mesh into tectonic plates, have some randomized mantle flow to drive the plates, then generate an elevation map from the collisions. That's the base level. Sometimes I try to complicate it further by accounting for material flow in subduction zones, having fun with hot spots, adding a third dimension to the mantle and crust or by keeping the tectonics simulation running instead of just taking a snapshot at some point. Once the terrain is baked, the weather simulation comes in to provide erosion, hydrology etc.

Weather simulation is more obvious, but then I kinda want to know how much you can simulate with what kind of code.

My simulation is baby-tier, of course. It's an extremely simplified hobbyist thing, after all. Split the atmosphere into a bunch of roughly equally distributed vertices that form a 3D mesh. Each vertex represents the local volume of air, and tracks temperature, pressure and moisture. And maybe some other stuff like aerosols, when I feel like it. Pressure differentials between neighboring vertices generate wind along the edges, which transports those air contents to other vertices. Wind also causes aeolian erosion in the terrain below. Clouds may form and rain may fall, which causes more erosion as water and surface material are carried off in streams that form along terrain edges. When those meet the sea, they deposit that material in the deltas. When all of that is settled, vegetaion grows where temperature and moisture allow it, glaciers and snowcaps form where the temperature is low enough (at least on planets with water and an atmosphere). Some more factors I forgot play into it all, but that's the rough shape of it.

And you can't actually see most of that because the visualization is too lazily done.

And you can't actually see most of that because the visualization is too lazily done.

That's a shame, but I understand. There's only so much work I'm willing to put into visualization as well (though I sometimes found it to be a more effective way of debugging).

Even if this stuff is "baby-tier" I'd again encourage you to push it to some repo, or at least go into the details of what you're making, like you did above. Stuff like this scratches my autism itch real good, and it's really enjoyable to read / watch / try out the code for myself.

That's a shame, but I understand. There's only so much work I'm willing to put into visualization as well (though I sometimes found it to be a more effective way of debugging).

I've lately been gravitating towards visualizing earlier because I noticed the same thing for myself. But as mentioned above, my adventures with Godot were cut short. Firstly because I noticed that my system for visualizing distant bodies using forced projection failed to account for a million things and was utter lunacy in retrospect (but I was too much of a happy amateur in just trying things out to foresee this), secondly because, as said, I got banhammered and that somewhat soured me on the whole ecosystem. I played around with the idea of setting up a rule for myself - implement nothing new until all older features are visualized; let nothing languish under the hood.

Even if this stuff is "baby-tier" I'd again encourage you to push it to some repo, or at least go into the details of what you're making, like you did above. Stuff like this scratches my autism itch real good, and it's really enjoyable to read / watch / try out the code for myself.

It sits nice and comfy in my private repo where mortal eyes are protected from the protean horrors that is my code-base. Well, it sits in half a dozen repos really, and much of the relevant code exists only in specific outdated versions and got scrapped to be replaced by new and improved versions that never actually came into being. Some of the oldest projects actually live in an abandoned dropbox with a few offline copies here and there. So I'm reluctant to make any of it public - it's a mess, it's heavily WIP projects frozen mid-experiment, tangles of loose ends, code fragments that date back over a decade to my earliest programming days.

I might make the repo for what I do with Unreal public since that will, by necessity from the difference in programming language, be a clean break and hopefully better-organized.

Firstly because I noticed that my system for visualizing distant bodies using forced projection failed to account for a million things and was utter lunacy in retrospect (but I was too much of a happy amateur in just trying things out to foresee this),

Heh, I think that's where I tapped out of my orbital mechanics project as well. Seeing Jupiter eat one of the moons that was supposed to fly in front of it was a bit too much.

I might make the repo for what I do with Unreal public since that will, by necessity from the difference in programming language, be a clean break and hopefully better-organized.

I'll try not to pester you too much about it, but I jusr want to say, I wouldn't worry about how well organized it is, or what others would say. The point of all this is to have some fun.

I've been working a bit on a "Intro To Circuit Design" sorta class, working to the point where high school students can build a small keyboard, starting from a KICAD schematic, deciding parts and constraints, going to the full process of ordering both circuit boards and parts, hot plate soldering, and loading in a basic firmware. Technically the software and main processor selection is based on this project, though I've stripped out most of the mini OLED screens in favor of just having a handful of handful of WS2812s a la this (partly to keep the part count down, partly for costs, and partly because finding a display module available in quantity <1000 from a vendor that will stay around more than a month is a fool's errand).

I've run it once before and it worked okay, but the nature of the keyboard (especially w/ n-key rollover) made it prone to crossing from repetitive enough to drill in concepts well over from into repetitive enough to bore younger students, especially given KICAD's everything. Made some tweaks, we'll see how it works.

Thanks for posting the thread arjin.

My own update is some mixed success with underwater hockey.

We have made progress on getting access to a new pool for the local area players.

Meanwhile I found that the university club will temporarily be unable to use their normal pool. Terrible timing for recruiting. I think the same thing happened last year. If the university wasn't generally incompetent I'd say they were trying to actively sabotage us.

The university offered to get pool times at nearby local pools in the meantime, but the times offered were garbage. Middle of the day or early early morning. Both of which are a no-go for a casual fun sport.

I'm hoping to turn this into a positive. The university club and the local area players have been disconnected for a while. I'm hoping to get more attendance by university players at the local area players practices. This disconnection is also partly the fault of the university. There was a rule implemented only a few years ago that forbid the non-students from playing in the student club practices.

I'll be attending a recruiting event tomorrow at the university.

Love the idea for Tinker Tuesday. My entry is aimed at nerdy programmers or people that love text based systems and version control systems:

I'm right now working on an Emacs Major Mode for the jujutsu version control system. My frontend is heavily inspired by magit, which is a git frontend for Emacs and then I mix in the visual organization of the jujutsu command line interface, which I think is well designed.

This is magit's status buffer and I've attached the jujutsu.el status buffer.

I love magit and was initially hesitant to even switch to jj, but the properties that jj brings with it have very quickly converted me to a user. So I needed a cool interface inside Emacs, which is where I do my development work. It's very usable via the command line, but hey.

What this project brought with it is that I've contrary to normal Emacs major mode development is that I've basically built it on the concepts of facebook's early react ideas. I'm using a vDOM and then manipulate the Emacs buffer like a DOM. We'll see if, when I release it, that will see adoption. I think it's a great way to think about visual systems and it maps pretty well to the text only world of Emacs.

My Roadmap before I release the code and announce it for real is:

  • process buffer where the command lines that were invoked is shown and the corresponding output by jj
  • log and evo log buffer with details like magit-log.

/images/1724832081427869.webp

Well that consumed my entire evening but jujutsu seems pretty cool. I did the tutorials and am excited to try it at work tomorrow!

I've completed more of the story I was writing on the original Maker's Monday thread. I skipped the previous Tuesday thread despite reaching my original 500-word goal because I wanted people to be able to consume the newest section of the story as a unit. Thank you to everyone who read, especially to @jake in particular for the helpful suggestions - I've taken most of the comments on board and I think the flow is improved after having incorporated the critique.

Here is the newest version of the story. Note the prose is still subject to change in places here and there since a significant amount was added in a short period of time. For users who read my previous draft, the new stuff starts at page 10-11, and now commenter access has been enabled so anyone can give feedback while they read.

https://docs.google.com/document/d/1vqE5UICjRdNvbwaZGDYKGigV5sl6tKRAVr_ts7NVplg/edit

Also, going off advice by @self_made_human, here's the notes and references for the story up to this point, if anyone's interested.

https://docs.google.com/document/d/1kSpEc7VWSJDkurQSDfFZ29dgoii025-ZbaYfs5jhQqc/edit

Great to read the new section, keep at it. I think I won't make any more suggestions until you're much farther along/done, or if there's something specific you want checked.

I recently purchased a Bambulabs 3d printer, and while I have been loving the thing overall, the automatic filament switcher has been giving me some trouble. The "AMS" holds four spools of filament, and has a pretty clever design where it can switch between the materials mid-print, so you can have multi-color or multi-material prints.

My problem is, the 1st, 2nd, and 4th spools work perfectly. The third spools starts to ingest filament, then proceeds to grind it to shreds while not feeding.

I've disassembled, cleaned, and reassembled the thing four times now, to no avail thus far, but tonight I make attempt number five. Wish me luck?

Good luck! Is it position number three that's broken, or the spool that you have loaded there?

Position number 3, to be exact - tried a number of filament types including the ones loaded to the other feeds, and they all exhibited the same behavior. I suspect it's the hub where the four PTFE tubes are combined which must have some sort of blockage, despite being able to manually feed through it, since that's the only piece I haven't fully taken apart yet.

Whew. I've been trying to hit 2000 words a day of fiction this week, and I'm largely succeeding. Currently at 6.1k written, and I'm not even quite done for today (I consider sun-thur my workdays). The downside is it's not words for the story I'm getting paid/have a publishing offer for, but honestly, I don't really care at this point. I don't need money in the short term, and I'm having way more fun writing drunken monkey wuxia and urban fantasy than I was writing isekai xianxia.

I'm enjoying the pace, aggressive as it is. It really feels like good exercise, like I'm building that writing muscle. The downside is I haven't had any time to work on my roguelike. But hey, there's only so many hours in a day.

HighSpace

This has been a slow week for me. Was quite busy with the kind of work that puts bread on the table, which left me with little energy to do even more programming afterwards.

Goals for last week were:

  • Add annotations for the FS2 scripting API (previously: "Document code with annotations").

I managed to finish the LUA annotation generator, but it's not exactly in a state that I can show off to the FS2 people, like I was planning earlier, but the latest Pull Request contains the (rather massive) file with the docs for the entire API. I think that will be enough for that task for a while.

  • Map AI: Aggro and chasing

I managed to make some progress, but this is still half-open with not much to show off, except a proof of concept involving the player ship having a very bad time.

  • Distinct icon for bomber wings

Didn't even manage to get to this bit, even thought it's one or two line of code :(

So tasks for this week will still be:

  • Finishing the map AI - Hopefully this week is more chill, and I'll be able to have some working proof of concept by this time next week
  • Icon for bomber wings