1. 12

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

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

  1. 4

    Working on a small targeted graph explorer for our data set at work. It’s our innovation/fun sprint and I think it I can answer the “what do we not know” question.

    Outside of work, continuing to protest. The feds showing up in Portland brought new life and new people out, and it feels new even though we’ve been going for nearly 2 months.

    1. 3

      Week two of being back after 4 months leave. I think we’re having a planning session with my team, so we can decide what we want to do in the next week or two. I’m still catching up a lot on what happened and what code got written. I’ve been doing a lot of backlog management and email digging, i expect to do much of the same this week (although the backlog is starting to look pretty sharp)

      1. 1

        Week two of being back after 4 months leave.

        Were you on parental leave?

        1. 4

          I was! Now I’m a Pentadad!

          1. 2

            Pentadad

            Is that…5 kids?

            Talk about life on hard mode. :)

            1. 4

              From a logistics standpoint it’s not that bad. Eldest is 10, and on average the elder 3 can help with their younger siblings. 😄

              1. 1

                I’ve heard it said that after 4, each additional child is no further strain on the parents, mostly as a result of older kids being more useful and parenting needing to be lower effort (not helicoptering) to have that many kids already.

              2. 2

                At least it’s not octodad.

                Nobody suspects a thing

        2. 3

          I’m on leave for the week but when I’m not hanging with my wife and kid, I’m using my spare time to implement a design system for work. While it is “working” its something I’ve been wanting to try for years but will never get a chance to do. It’s been fun so far and without the rigors of a normal workday, it’s been relaxing.

          1. 3

            I’m coding some simple simulations in Ebiten “A dead simple 2D game library for Go”. This means refreshing my vector math knowledge so I’m writing a tiny library too.

            Some people took me up on a free coding mentorship offer so I have some time booked in for that. I’m excited to catch up with all three (maybe four) of them!

            1. 2

              Do you know what the typical solutions for sounds are in Go video games?

              1. 1

                I’m afraid I don’t but maybe someone will chime in 🙂. I’ve only used Ebiten’s audio package which worked for my basic use cases.

                1. 2

                  Ah, if they have an audio package, that’s enough of a thing for me. I just didn’t see it at a glance.

            2. 3

              Working through “Get Programming with Haskell” and wrote my first Haskell program on my own, a program to print types of chunks in a PNG. I’ll be improving this program to handle more of the PNG spec.

              2D C99 Game Engine. Just mundane work setting up UI parameters so you can configure things full screen and resolutions.

              1. 3

                Taking latter half of the week off to get some rest and relax my mind.

                1. 2

                  Vacation this week, which means I hang out with the family a lot and do random hacking in the evening sometimes.

                  I finished up my fish async git prompt today. It retrieves the branch synchronously, and fetches dirty status asynchronously. I need to figure out how to disown the dirty check job while still being able to retrieve the exit code from it. This really only effects the UX of closing your terminal when a dirty check in a repo with a lot of history is still running.

                  A big contributor to the problem is the fact that macOS provides nothing in the way of a tmpfs, so I have to smuggle the result of the dirty check (e.g. dirty/not dirty) back to the foreground process somehow. In my case, I’m using the return code currently; my preference would be to use shared memory, or some other in-memory persistent store. However, shared memory is not accessible (AFAIK) from the shell via built-in CLI tools. If you know of somewhere else analogous, please let me know. I envy Linux’s /dev/shm :(

                  Due to this, I feel like a fount of knowledge on the subject of async fish scripting, so I’ll probably write up something on that as an excuse to reboot my blog.

                  1. 2

                    Working on wrapping up a first staging deployment of a fairly sizeable data sharing platform at work before I take my first proper annual paid leave next week for the first time in I think over eight years. Can’t remember, my brain is doing this thing where I break out in sweats thinking about how am I going to be able to afford not being paid for a week, then realizing that I don’t have to worry about it…

                    On the side i’ve got an disease surveillance platform i’m working on that I’ve broken a few pieces out of it (text editor, UI components, general components, and a few other bits) into a smaller task management / knowledge management app to put up in the app stores to try and generate a bit of revenue to feed into the larger application. It’s taking more time than I thought it would overall with a full-time job going and doing this stuff on the side but it’s bought me the time to think things throuhg more thoroughly for how I implement certain aspects of things, especially data syncing and conflict management / resolution.

                    1. 2

                      Having finished js regexp book last week, planning to catch up with a few pending blog posts and try to avoid regex for a while.

                      I’ll be rereading Mage Errant in preparation for beta-reading the fourth book.

                      1. 2

                        I’ve found that I can’t deep-dive every CS-related topic on every essay. It becomes quite easy for commenters to pick this or that thing I didn’t deep-dive on and make some observation like “But you missed X!!” and then we’re stuck in infinite internet negative comment-land.

                        Based on that, I think I’ll do a short video on type theory. Whenever I mention types I always get pushback. Everybody has their own favorite way of looking at types and their importance (or not). It’d be good to see if I can cover the major bases in 10-20 minutes or so. Of course, it’ll still be wrong/incomplete, but it’ll be good practice and perhaps something to point to the next time somebody tries to bust my chops when I mention types. Plus it’s fun. :)

                        1. 3

                          I think you’re giving the comment section too much power. They’re not the ones putting the work in to put content out there that is meant to educate and enlighten. All they do is sit behind their keyboard and write pedantic comments into textboxes.

                          1. 3

                            I think you can safely ignore most of the people pointing out what’s wrong with the stuff you put out! Keep pursuing what’s interesting and fun and I promise people are learning from it. I also like to think that most people are smart enough to know that there are caveats to any educational content!

                          2. 2

                            One of my teams is a remote, contract one, and they’re having trouble with code quality and engineering discipline, so that’s an unfun conversation to start having. Otherwise, my wife is taking the kids camping this weekend so I took Friday and Monday off and am going to just have four days at home by myself, for the first time in five years.

                            1. 1

                              Would you mind giving an example regarding your team’s “having trouble”? I’m curious most about the “engineering discipline” issues.

                              1. 2

                                So it’s not entirely on them; the company has some pretty primitive systems in place around eg releases; certain parts of the system require coordination between teams and a very specific set of steps for deployments to succeed. This team has been rocky on those systems – so I have to talk about it with the team and reiterate the necessity of following the playbooks to the letter. They’re good guys and not bad engineers, but their team has sort of fallen into a management blind spot before I took them over.

                            2. 1

                              I’m on vacation until August. Besides doing vacation stuff I’ve been trying out Hugo and so far I really like what I see. After the vacation I’m gonna start a new job so that will be interesting!

                              1. 1

                                Bossman is on vacation for the week so I’m captaining the ship for a long project we’ve been working on involving integrating a an e-commerce site that we purchased into our production environment.

                                Going to make some house music at some point.

                                1. 1

                                  Working on my BSc thesis on privacy risk assessment in text mining and planning a series of blog posts about Data Driven Fantasy Football for the next season.

                                  1. 1

                                    Setting up a bunch of marketing infrastructure for a company I’ve been working with including:

                                    • Mailing list setup, integration
                                    • Website do-over
                                    • Marketing automation integration built around the mailing list and a newsletter using automated curation with a manual filter

                                    I’m really happy to finally start this as it consolidates a lot of stuff I’ve been working on for years in one project, is really measurable and should provide solid measurable returns over the next year.

                                    1. 1

                                      I’m working on a few fun projects:

                                      • A redesign for my personal website
                                      • Building the leg armor for my Mandalorian cosplay
                                      • Working on a digital exhibition project (re-imagining/re-creation of an old project called Digital Flow)
                                      1. 1

                                        This week at work I’m focusing more on admin tooling and general quality of life improvements. The biggest one that I’m struggling with mentally is that I need to adjust the way that I’m handling events (sports games) that should be de-duplicated based on their time. Right now I’ve got something like this:

                                          scope :existing, -> (date, teams, duration=nil) {
                                            # If the date we're sent is at midnight (TBA time) then we count any games between
                                            # the teams on the same day as existing. Otherwise we only count games that are within
                                            # 90 minutes of the specified time OR that are currently TBA games.
                                            if duration.nil?
                                              _timespan = (date == Time.zone.parse(date.to_s).midnight) ? by_date(date) : within(90.minutes, date)
                                            else
                                              _timespan = within(duration, date)
                                            end
                                        
                                            if teams.length == 2
                                              _timespan.with_teams(teams[0], teams[1])
                                                .or(by_tba(date).with_teams(teams[0], teams[1]))
                                            else
                                              _timespan.by_team(teams[0])
                                                .or(by_tba(date).by_team(teams[0]))
                                            end
                                          }
                                        

                                        And that works like a charm… except for the fact that some sports handle things differently, so 90.minutes works fine for a soccer game but in football it’d be awesome if that could be 12.hours. I’m not sure how to make the time duration change based on a separate column (sport_id) without passing it directly into the query (which is why there’s a duration parameter built in currently – I’ve been passing a special duration manually when needed). Can’t be that hard to figure out, though.


                                        Outside of work, I think my news aggregation and classification app Kudzu is going really well! I’ve got a decent tagging and search going now, but the UI still isn’t exactly wonderful. There’s also the problem of it just not being a very interesting app without topic tags, but right now I’m the only one applying tags… so I should definitely work on an auto-tagging setup at some point soon.

                                        1. 1

                                          I am slowly working on a TIC-80 game. It’s slow, mostly because of time and energy levels at the end of the day. There’s not a lot left to figure out, so hopefully it’s a matter of making more graphics, and finding the time to type things out… but, we shall see!

                                          1. 1

                                            Polishing up my new resume site (https://joshuaclanton.dev) and sending in a job application or two.

                                            The site is built with Eleventy and hosted on Netlify’s free tier. I have only positive things to say about both of them.

                                            1. 1

                                              Nice typography and details. Good luck with the applications!