RSSAmplifier

Blog

House Absolute(ly Pointless)

Recent content on House Absolute(ly Pointless)

blog.urth.orgRSS feed ↗50 posts

Latest posts

I Vibe-Coded Some Apps

Recently, I’ve been using Claude to build some apps that I’ve always wanted, but which were too much work to do myself. The first is a bass guitar practice exercise app , which I’ve called “BèiSī 5000”. The “BèiSī” is the Mandarin for bass, 貝斯. Claude is very good at building webapps, and it was able to do the music presentation part with AlphaTab . But…

Who Says Recruiting Is Hard?

Name redacted because I’m a nice person? From an anonymous recruiter at Datacurve (YC 1 W24): Hey Dave! I saw your fix for typo in NodeFactory.bump docs on the Dioxus web framework and thought you’d be perfect for a project I’m running where we collaborate with top SWEs to push the capabilities of leading LLMs. Want to hear more? Yes, “my fix for typo” does mean…

How Good is Claude at Finding Bugs in My Code?

I recently tried using Claude to look at my ubi project and tell me about any bugs it found. To avoid having to pay for Claude Code, I used the web API and uploaded a tarball of the ubi crate , which contains all the important bits of ubi . I was curious to see how well it would do. AI tools for coding have improved a lot in the past year (and probably in the past month and week). Would it find a…

My Team at MongoDB Is Hiring a Lead Engineer

Have you ever tried to tell me what to do, only to find I ignored you? Well, now you can tell me what to do and I’ll have to listen to you! Want me to drop and do 50 push-ups? Sure! Shine your shoes? Done! Be your number one Yes Man? Yes, Boss! MongoDB is hiring a Lead Engineer to lead the Verification and Correctness team within Cluster to Cluster Synchronization. You will be leading and…

My Azure Pipelines Tooling Is Dead

Many years ago, in the glory days of 2019, when I was young and carefree, with the wind in my hair and all the youthful joy of the world in my soul, I created my ci-perl-helpers project for testing Perl modules in Azure Pipelines . Why Azure Pipelines? Well, at the time, GitHub Actions didn’t support caching, and it was generally immature. How things have changed. GitHub Actions is the de…

Should People Just Use Goreleaser Instead of `actions-rust-release`?

I’m cross-posting this from an issue I made for actions-rust-release . For context, I am the action’s author, and this is a serious question, not the start of a pitch for why you should use my action. TLDR; Does actions-rust-release serve any purpose that isn’t better served by goreleaser ? Here’s the issue body in full: Recently, I was considering adding some features to…

My actions-rust-cross Action Now Has Built-In Caching

I just released v1.0.0 Beta 1 of my actions-rust-cross GitHub Action . The big headline feature in this release is integration with the Swatinem/rust-cache action. This will include the target you provide to actions-rust-cross as part of the cache key, which from my testing means that it only caches the compilation output relevant to the target platform. The Swatinem/rust-cache action caches…

My New GitHub Action for Releasing Rust Projects

A while back I created a new GitHub Action for releasing Rust projects which produce binary releases (as opposed to crates). This works nicely with my Rust Cross Action to let me automate away most of the toil from releasing new versions of my Rust CLI tools like precious , ubi , and omegasort . Using it is pretty simple and can be done in one step: 1 2 3 4 5 - name : Publish artifacts and release…

My Team at MongoDB Has 3 Senior Dev Openings

My team at MongoDB is three Senior Engineers. For these positions you can be 100% remote in the US or Canada or you can choose to work from one our offices. Our schedule is based around our NYC office on the east coast, so if you’re on the west coast your hours would need to account for that. My team primarily works on MongoDB’s Cluster-to-Cluster Sync product . It’s an…

Short Reviews of the Anime I've Watched in Taiwan

I’ve been living in Taiwan since December 20 of last year and I’ll return on June 29. There’s a lot of things I enjoy about living here, and one of them is that the content on Netflix here is quite different. In particular, there’s a lot of anime available that’s only available through Crunchyroll 1 in the US. I also have had more free time here, so I’ve ended…

Eating Vegan in Taiwan

Last Updated: January, 2026 This is a post on finding vegan food in Taiwan, with some context on the history of vegetarian food here. It’s not a list of vegan restaurants. Instead, it’s a meta-post about navigating Taiwan as a vegan. About Me I’ve been vegan since late 1996, so over 27 years at the time of this post (December, 2023). I’m currently starting my eleventh visit…

Naming Your Binary Executable Releases

My universal binary installer tool, ubi , has to deal with a lot of “interesting” decisions when it comes to how people name their releases on GitHub. So in the interests of making the world of binary executable releases more machine-readable and a little less weird 1 , here are my recommendations on naming your release files. The TLDR is: Either use an extension or don’t include…

Come (Maybe) Be the Boss of Me

When I started at MongoDB in May of 2022 I was the fourth person on my team. Since then, we’ve hired six more engineers, bringing us to a total of 10 people. That’s a big team! That’s why we are hiring for a new Team Lead , so that we can split into two teams. I’m not sure which team I’ll end up on, but this is your chance to maybe be my new boss! If telling me what…

Sleep No More Is My New Favorite Videogame

Last Saturday my wife and I saw Sleep No More in New York City. It’s a mostly silent film noir style adaptation of Macbeth as a play/dance piece. There are no seats. Instead you follow the performers around the space, which is four floors of a converted hotel. You can walk through nearly all of the sets in full, and you can more or less go where you want. You don’t even have to follow…

Cross Compiling Rust Projects in GitHub Actions

The highlight of all this is my brand new GitHub Action for cross-compiling Rust projects . The rest of the post is about why and how I wrote it. I was recently working on the CI setup for my ubi project with a couple goals. First, I wanted to stop using unmaintained actions from the actions-rs organization . Second, I wanted to add many more release targets for different platforms and…

All My Perl Modules Are in Maintenance Mode

This is probably obvious to anyone paying attention to my CPAN releases over the past few years, but in case it’s not, I wanted to state this clearly. All of my Perl modules are in maintenance mode. Why? I no longer do any professional work with Perl, and I haven’t done any since 2017 or so. All of my most enjoyable personal projects are in Rust these days. Also, I’m a bit burned…

Big Changes in Precious v0.4.0

I just released version 0.4.0 of precious , my code quality meta-tool for configuring a collection of linters and tidiers for a project. The headline change for this release is that command invocation configuration has changed, with the old run_mode and chdir keys being deprecated. Don’t worry, you can safely upgrade to this release, as the old config keys still work and do not cause…

My Team at MongoDB is Hiring

My team at MongoDB is hiring a senior engineer . For this position you can be 100% remote or you can choose to work from one our offices. I’ve been at MongoDB since May of this year and so far it’s been great. If you have questions about the position, the team, or working at MongoDB, please reach out .

Fixing Some Bugs in My GitHub Profile Generator

A while back I was looking at the output from my GitHub profile generator and it seemed off. In particular, the language stats seemed off. The generator sums up how many bytes of code I’ve written for each language. and then calculates what percentage of my total output that represents. Here’s what it showed, more or less: Past Two Years All Time Perl: 76%, 9.5 MB Perl: 77%, 11.3 MB…

What's the Right Way to Merge a Pull Request?

Edit: In the discussion on /r/programming a comment from /u/nik9000 pointed me at what I think is the best solution. GitHub has a feature where the PR submitter can allow me to push directly to their fork. This means I can effectively edit their PR directly by checking it out and force pushing back to their fork of the repo! Apparently this has existed for a while but I didn’t notice it.…

My Perl and Raku Conference 2022 Write-Up

I went to The Perl and Raku Conference 2022 in Houston from June 22-24. Here’s my write-up. Again, I’d like to thank my employer, MongoDB , for paying for my flight and hotel during the conference. We’re hiring for a variety of engineering positions , with many remote options. Contact me if you have any questions about the company or positions, and I’ll see what I can do to…

Job Search 2022 Update: Postscript

I’ve been at MongoDB for six weeks now and it’s been great. BTW, we’re hiring and we have a lot of remote engineering positions 1 . Please email me if you have questions about working at MongoDB or about specific positions 2 . But that’s not why I’m writing this post. No, I’m writing because apparently my job search wasn’t quite done. Today. Today! TODAY!…

Restoring Window Positions in GNOME After Switching Monitor Inputs

I suspect that this title makes no sense to most people, so here’s the background. Like most normal people, I have four 1 computers in my office. I used to have three, but that was shameful, so I was very relieved to get a new laptop for my new job at MongoDB . A while back, I bought a USB switching device with a remote . This eliminated the need to physically switch my USB hub’s cable…

Software Job Search 2022 Retrospective: Coding Challenges

I did a lot of coding and design challenges during my recent job search! A lot a lot. And I have some thoughts about them. Want to read all about my job search? Here’s a list of past posts: Week 1 Week 1.1 Week 2 Week 3 Week 4 Week 5 The Last One I mostly have thoughts about the coding challenges. The design challenges were pretty much what you’d expect. They started with “design…

Job Search 2022 Update: The Last One

Assuming nothing unexpected and unhappy happens, this will be my final Job Search 2022 update. I accepted the offer from MongoDB and I start in a few weeks! Thanks again to David Golden for reaching out to me about MongoDB way back in early March. Ultimately, my thinking came down to a decision between startups and public companies. I realized that given my age and my early retirement goal, I can…

Job Search 2022 Update: Week 5

It’s week 5 and my brain is tired. Fortunately, I think I’m near the end. My current plan is to decide by Friday, April 15. I suspect that some of the companies I’m talking to won’t be in a position to make an offer then, but I already have some good offers, I want to finish this process, and there’s a limit to how long I can ask people to wait for me to decide. Once…

Job Search 2022 Update: Week 4

Has it been four weeks? I can’t remember. I’ve been told there was a time before the interviews, before the coding challenges, before the system design questions. But I can’t remember. That life is gone, lost in the haze. All I have now is the interviews, the endless stream of questions and scheduling requests. My only hope now is that this infinity will end, but how can infinity…

Yet Another GitHub Profile Generator

A number of the companies I’ve been interviewing with are using Guide to create an “interview guide” that they send to candidates. I really like this. It includes information about the interview topic, interviewer profiles, and relevant links to pages on the company website and/or blog. For one company, an interviewer profile linked to that person’s GitHub profile , so I…

Job Search 2022 Update: Week 3

Week 3 of my job search has come to a close, and boy is my brain tired! I’m looking forward to starting a new job just so I can do something less exhausting than interviewing all week. I had a lot of interviews (and a homework assignment) this week, but first, here’s where I stand with various places … First, the list of shame, which is those companies that have not responded…

Job Search 2022 Update: Week 2

Week 2 is over. My applications are moving forward in some places, and getting no response from some places. So it’s exactly what I’d expect. Last Sunday, I was looking at my job search spreadsheet and realized I’d somehow deleted 1Password, so I quickly put in an application there. That brings my application total to 18, plus I’ve had some sort of informal talks with a few…

Job Search 2022 Update: Week 1.1

So after my last update , I had one small change to write about. For reference, I live in Minneapolis, which means I’m in America/Chicago (US Central). I’d been talking to an (external) recruiter about positions at Namely. The recruiter told me they asked, “Are you willing to work east coast hours?”. I asked what that meant, since I’m very much not a morning person,…

Job Search 2022 Update: Week 1

Week 1 of my job search is coming to a close. Here’s an update on what I’ve been up to and where I’m at. See my first job search post for a TLDR of what I’m looking for. Please let me know if you have an opportunity that fits! First off, I’d like to thank the people who’ve reached out to me in various ways since my first post, as well as people I’ve…

Let the Job Search Begin; And My First Interviews

So it’s that time of my life again. The time when a not-so-young 1 man has to get a job because he can’t live off his savings forever. And that not-so-young man is me. If you know of something that might be a good fit for me please let me know . I wrote up a TLDR I’ve been sharing with recruiters that will help you figure out if something is a good fit for me. Level: Senior+…

Checking Tailwind Class Names at Compile Time with Rust

At the end of my last post, “Frontend Rust Without Node” , I talked about my big issue with using Tailwind CSS . It has a huge number of classes, I can’t remember their names, so I often typed them incorrectly. This made it difficult to figure out why my styling wasn’t doing what I thought. TLDR : Don’t care about how any of this works, but just want to use the…

Frontend Rust Without Node

When I started my frontend Rust project , I used a Seed project starter template that included Tailwind , webpack , some more JS frontend dev stuff, and some TypeScript glue code that launches the app. This was a lot of stuff. Stuff for me to install. Stuff for me to run. Stuff for me to (not) understand. So. Much. Stuff! To be clear, I don’t want to dump on the author of this template. For…

What Do I Want from My Next Job? 2022 Edition

The last time I wrote about this was 8 days after I left my last position, at ActiveState . Since writing that post, I’ve continued to think about what I want, and my thinking has evolved. TLDR: Top tier TC 1 or a 4 day week, and both would be ideal (but unlikely). 5+ weeks of PTO. Yes++ to Rust. No Java or PHP. No companies in certain fields like crypto. I want to do a significant amount of…

My Rust Frontend Experiences

As I mentioned in a previous post , I’ve been working on a music player for a while as a fun side project. Though since I’ve been jobless this has actually been my primary project, and I’ve probably spent more time coding than I did at work 1 . This almost looks like a real app but don't be fooled. Half the buttons don't work yet. My goal was always to build a backend that could…

My PDF Resume Script

Edit 2022-01-19: I’ve since moved the script to a public repo . Also, I’ve reformatted my resume to make it a bit shorter, so here’s a more recent PDF version . I only want to have one canonical resume , and I want to keep it on my personal website. That makes it trivial to update, and anyone with the link can see the latest version at all times. But unfortunately very few job…

Working with MusicBrainz Name Data

Since leaving my job last October I’ve been working on various personal projects for fun and learning. One of those is a music player 1 written entirely in Rust , including a web-based frontend using Seed , which is an Elm-like frontend framework in Rust. I’d like to write some other posts about that as well, but today let’s talk about artist names, specifically how these are…

What Do I Want from My Next Job?

I’m currently enjoying being unemployed , and I won’t be looking for a new position until some time in 2022, but I’ve been thinking about what I want from next position. There are many things I’d like , but what are my priorities? Update 2022: The more I’ve thought about this the more I’ve realized that I can achieve my goal of working less by aiming for higher…

Let the Funemployment Begin

Today was my last day at ActiveState . I enjoyed my nearly five years there (starting in February of 2017), but for a variety of reasons I decided to leave. I’m in the very fortunate position of being able to be jobless for a while, I’m not planning to look for anything new until January of 2022 at the earliest. I have some programming projects of my own that I plan to work on, and…

Writing a Postgres SQL Pretty Printer in Rust: Part 2

It’s been a few weeks since my last post on this project. I was distracted by Go reflection and security issues with Perl IP address modules . But now I can get back to my Postgres SQL pretty printer project 1 . One of the challenges for this project has been figuring out the best way to test it. I tried a standard unit test approach before giving up and settling on integration testing…

API Design and the Recent IP Address Module Issues

Earlier this week, I wrote about security issues in Perl IP address distros . I started thinking about why these issues showed up in so many distros, which got me thinking about how an API can make these types of problems harder or easier. Specifically, I’d like to talk about Data::Validate::IP . Let’s look at two functions exported by this module, is_ipv4 and is_private_ipv4 . On the…

Security Issues in Perl IP Address distros

Edit on 2021-03-29 21:40(ish) UTC: Added Net-Subnet (appears unaffected) and reordered the details to match the list at the top of the post. Edit on 2021-03-30 14:50(ish) UTC: Added Net-Works (appears unaffected). Edit on 2021-03-30 15:40(ish) UTC: Added Net-CIDR (some functions are affected). Edit on 2021-03-31 01:05(ish) UTC: Added Net-IPv4Addr (affected). Edit on 2021-04-05 01:21(ish) UTC:…

Down the Golang nil Rabbit Hole

Edit 2021-03-30 : Jeremy Mikkola wrote about some closely related topics back in 2017. Edit 2021-03-31 : Chris Siebenmann wrote a response to this post that explains exactly how interface values that are nil are typed. It’s more complicated than I thought! I’m not sure I have another Rust & Postgres blog post in me right now, so let’s learn something about Go instead. Recently I…

Writing a Postgres SQL Pretty Printer in Rust: Part 1.5

Last week I wrote the first post in this series , where I introduced the project and wrote about generating Rust code for the parsed Postgres AST. I also wrote about the need for wrapper enums in the generated code, but I don’t think I went into enough detail, based on questions and discussions I had after I shared that post in /r/rust . So this week I will go into more detail on exactly why…

Writing a Postgres SQL Pretty Printer in Rust: Part 1

This is the first of a planned series of blog posts about my pg-pretty project . I’ll cover some things I’ve learned about Rust and Postgres SQL, as well as some things I still don’t know. Series Links Part 1: Introduction to the project and generating Rust with Perl Part 1.5: More about enum wrappers and Serde’s externally tagged enum representation Part 2: How I’m…

2020 Predictions Reviewed

Last year in May I made some predictions . Now it’s time to find out how I did! Summary The summary is I was wrong. A lot. This should be no surprise. First, let’s take a look at my overall accuracy: The source data for this chart is a spreadsheet I made for my 2020 predictions . Overall, this should be fairly understandable but there’s one nuance that needs some explaining. In…

What I did on my winter vacation

TLDR: Helped my father move. Then I shaved all the yaks. Fur everywhere. Very messy. Because of the way holidays at ActiveState work, it’s very economical in terms of vacation days to take the last two weeks of the year off (Christmas and New year’s weeks). I had a fair bit of vacation left, so I decided to take the first week of the new year off as well, for a total of three weeks of…

My New Rube Goldberg Machine

My last post was about my local COVID tracker tool . While it worked well, I found having to re-run the report.pl script every time I wanted an update annoying. Plus, I wanted to share this on Facebook, but I have non-technical friends who would not be able to run it for themselves. So I decided to put up a hosted version, but I challenged myself. I wanted it to run entirely on someone…