1. 9

What are you doing this week? Feel free to share!

Keep in mind it’s OK to do nothing at all, too.

  1.  

  2. 5

    Configuring static site generation for tombrow.com, then using what I learn to set up a homepage for my fiancé. Anyone know if Google Domains would be a nicer place to keep my domains than 1and1 is?

    Documenting the code I use for keyboard remapping in macOS. I might write a short post to try to persuade people of the benefit of mapping Ctrl-[ to Escape and Fn-hjkl to arrow keys.

    Cutting some more drawer organizers using the laser at the maker space.

    1. 4

      I’m making a small dungeon crawler in the vein of Wizardry and Etrian Odyssey based on a couple in-jokes of one of my friend groups, using LÖVE, as a small learning project.

      Dunno if I’ll release it (because I’m using friends’ photos), but I want to make a bigger one with similar gameplay eventually. I’ve always wanted to make a game so I figure I should start at some point.

      1. 1

        Cool, you could checkout the newly released game called noita for inspiration on wizards and dungeons.

        1. 1

          Looks neat but not quite what I had in mind, Wizardry and EO are first-person, turn-based and you can only move on a grid. Might check it out though.

          1. 1

            Ah my mistake, I read dungeon crawler and wizardry and my mind jumped there. :)

      2. 3

        Trying to catch up on hours at work. Last week was short due to several doctor’s visits, and me wanting to take a week a bit slower due to a long week the week before, I wasn’t able to get much time in at work. This week I’m playing catch-up.

        I’m also thinking about trying to write some more Nim code, the next project I have in mind is porting https://idea.junglecoder.com from Erlang to Nim, to see what that would take. I might write a Nim script to slurp data out of ets tables while I’m at it, just to see how that goes.

        But mostly, going to be working this week, side projects are pretty solidly on the back burner for now.

        1. 1

          I came across idea.junglecoder.com the other day. Have you written at all about it? I quite like the simplicity of it, and the way it’s organized. How is it updated?

          1. 2

            I’ve written little snippets about here on it itself, see: https://idea.junglecoder.com/view/idea/34 and https://idea.junglecoder.com/view/idea/40, but never a more full write-up.

            The long and short of is that it’s Erlang+Cowboy+ets, with on-the-fly rendered markdown. Everything administrative lives behind /admin routes, which are protected by nginx basic auth. So you can add ideas under /admin, and edit ideas under idea specific links. It’s just basic http POST forms right now.

            Unfortunately, I ran out of steam to work on this before I learned the best practices for learning best practices for erlang releases, and working with Erlang was higher friction than working with Go. Not in the writing of code, per-se, but in getting things to build with erlang.mk (the build system I chose), adding packages, and in figuring out how to add dependencies. The markdown parsing package I found is very fiddly with how it renders markdown.

            The upshot of this is that right now the 2 instances of this that I run, I run in tmux panes, and the code is split up into more files than I’d normally use, and I had to write more code for datastore interaction than I’d normally write, since ETS tables don’t have a lot of the convenience code that code that interacts with SQL databases often does in other languages. Those are all motivations for moving to Nim, I anticipate all of that being easier to manage.

        2. 3

          For work, I’m writing a new piece on formally verifying database migrations. For fun, lots of cigar box juggling and prepping for a Saturday dinner party.

          1. 3

            At work I’m alternating between fixing bugs for our upcoming release and changing our Jenkins pipelines (again).

            Outside of work I’m creating a new Common Lisp binding to GDAL. Thanks to Autowrap, it’s already useable, but I’d like to add a Lisp-y layer on top to avoid manual memory allocation. I’m hoping I can get away with a few with- macros, but haven’t looked at it enough to know exactly what it will look like yet.

            1. 2

              porting an amount of go code to rust.

              If anyone wants some very short term paid work (on the order of a few days) helping me, I’d be interested, pm me here, or flick me an email at ac@acha.ninja.

              1. 2

                I’m contemplating code mining search and navigation tools.

                I’m sort of disgruntled and unhappy with the lot of them.

                Part of the task is extracting the information of what symbol is defined or declared or referenced where….. Especially in the presence of the horrid macro preprocessor all of the tools get it wrong.

                A couple of months back I wrote a nifty script… it ate the output of objdump –dwarf

                Hey! The dwarf debugging data format knows everything the compiler knew… I think I can extend the idea (maybe pulling in libdwarf) and then I have a get it perfectly right data source about the code.

                The other side is the query side. And sadly the best query tool on the planet is SQL. Probably sqlite or postgresql. So I want to dump all the stuff dwarf knows into a sql database.

                And then probably I can serve it via language server protocol.

                But I’m overcommitted so I’m just contemplating….

                1. 2

                  For what it’s worth, I was able to do a fair bit of code analysis recently with a combination of RipGrep, LinqPad (though any easily scripted UI, such as Tcl/TK could work) on top of RipGrep, and SQLite table with a UI editor to record my observations. I was tracing how stored procedures are defined and executed in a small-to-medium codebase (roughly 78K in the filetypes I was concerned with).

                  Granted, I didn’t have to deal with crazy macro abuse, but I was able to successfully build a better understanding of the codebase in the process.

                  I am curious to hear how this plays out.

                  1. 1

                    We carve up our code base into many products via fiddling include paths and #if spaghetti…..

                    …add in a touch of macro meta programming (yes, you can meta program in C preprocessor macros, and yes, it’s fairly mind bending stuff to do and maintain)

                    So all regexp based tagging systems don’t quite get it right, because fundamentally they can’t.

                  2. 1

                    That’s a good idea.

                  3. 2

                    I’m going to try to get my little C build system project into a working state.

                    Hopefully I can also do Hacktoberfest but I first have to see what my employer thinks.

                    1. 1

                      I’m always curious about build systems… What’s new & interesting about your project?

                      1. 1

                        Well, my build system is more or less mainly for me. It’s aiming to solve problems that I have currently with building C.

                        Mainly that: I hate make because Makefiles are way too tedious to write. I hate cmake because configuration is a nightmare and I still have to specify all my source files manually. I haven’t touched GNU autotools, but given that it’s GNU, I’m more than certain that auto is a misnomer.

                        In my opinion, a build system should just be told to build something, with as minimal configuration as possible, and produce a binary. So that’s what I’m aiming to do. Right now I’m hoping to get it to the point where it can scan the project directory and parse C source files to build a dependency graph that it can then follow to run the compiler correctly. Eventually, I want it to be able to do all the standard things a build system does.

                        1. 4

                          Not to steal your thunder, but you may find djb’s redo at least worth a design looking at while you’re doing your research. People don’t really seem to know about it. It’s been implemented multiple times, too.

                          1. 1

                            This is actually really interesting. I am to do more with my project, but only because it’s specific to C/C++. I think I might have to use redo sometime in the future.

                    2. 1

                      Finally starting the new project that’s been held in front of me for like a month.

                      1. 1

                        I’m working on finding a new job. Tired of being asked to give up all my weekends and all my nights. I’m a great developer and deserve to be treated like a living human being.

                        1. 1

                          On my own time, I’d like to get back to coding and writing about coding. I remain fascinated by how senior coders think about what they do.

                          There are three topics I read about this past week on lobsters that caught my interest. One was on TDD, one was on abstractions, and one was on unit tests.

                          I didn’t really like any of them, actually. I hate to nitpick people, there are some really great ideas in each, but I think each of the concepts are presented in such a roundabout and obfuscated way that it hurts understanding. So I’m trying to figure out some way to gather them all together and respond in some way where I’m not actually attacking anybody and their writing. I don’t do that.

                          So far, no joy. Maybe I can come up with a theme, tone, and thesis before Friday. I don’t know. I’m busy in a lot of other areas this week.

                          1. 1

                            Tweaking HTML for a login flow in a Java application for which I do not have access to the source, and which takes several minutes to compile and deploy to test every time I tweak a form field. Also, continuing to look for a new job!

                            I’ve ordered quite a bit of seed which should be coming in this week. So I’ll be starting some of those off, a little late in the season but better late than never. This is my first year seriously trying to grow a large portion of our vegetables, so it will be a big learning experience.