Nice! I’d like to mix in cycling as well, but but at 7am when I have time to exercise the streets are just too dangerous around here. It’s dicey enough on the sidewalk! :)
My regular expression engine is so close. It was ready two months ago, more or less, but I’ve been on a kick of “I’m not going to release it unless it’s fast enough to at least be in the same league as ‘fast’ regex engines.” Last night I got it to that point, I think: it can run 2500 expressions simultaneously across input at ~100Mbps.
I’ll continue moving my personal organization/todo/knowledge base to my new Fossil setup. It has gone much better than expected. I got the basics set up and customized the ticket system a bit. I’m stoked for the simplicity of having a single file to backup. Still, I can sync this (including wiki/tickets) between multiple computers while keeping control of my own data.
Prepping to move into a new role, where I’ll be doing much more FOSS development work for some exciting cloud native stuff.
As a side project, working on my image organization tool. Either starting with an elm frontend MVP to quickly move images into the correct folders, or starting from the bottom up with my “simple graph database on sqlite” abstraction. Maybe both!
I’m trying to get all of my computers bootstrapped from a chezmoi repo. I’ve got my Pinebook Pros running pretty well, but I haven’t nailed down my setup on my MNT Reform and other personal computers, and eventually I want it to setup my dotfiles on my web servers as well. The task is complicated by having my initializing scripts include an Ansible role, which may be a mistake.
In whatever little spare time I have, I am working on a (target of) < 600 lines$$ of C compiler for an sexp based language that can (hopefully) be used to bootstrap a better sexp based compiler based on the ideas of PreScheme. I’ve got about half the budget left to do code gen and a basic Hindley-Milner type checker.
$$ — and in no way is it 1 statement per line. The constraint is a challenge, and I do better on personal projects if I have to prove myself to myself. It’s a fun trick I recently reflected on and had some success with. I wrote a little “game engine” in < 200 lines of C with libSDL. It should be fairly trivial to bind as a library in other languages, but I’ve gotta be honest and say that that part never was validated because it seemed like a slog. ;)
Cracked open Xcode to write a small app for isometric hold training. Useful in precision sports like target pistol/rifle and possibly archery. It’s quite possible something like that already exists but it is almost easier writing your own than sifting thru the app store!
Swift has changed quite a bit since the last time I touched it: a quality I find unsettling in a programming language. Nonetheless the iOS version is almost finished now, and WatchOS is perhaps possible if I convince my wife to requisition her device.
Finishing the roll-out of tailscale to all the self hosted VMs I run.
I’ve struggled like crazy with implementing Wireguard and getting it past my NAT, but Tailscale works like magic, and for mobile too!
I can finally access my grocy using Pantry Party from my wife’s and my phone. You just plug the VM’s tailscale ‘magic DNS’ name in as the API endpoint and you’re off to the races, and the whole thing uses secure Wireguard tunnels.
Improving the automation of my newsletter about cybersecurity. At the moment it’s a bunch of small programs (Python or Go) running on my PC, but I am working to deploy on AWS Lambda and orchestrate them.
Ran some profiles on an application that’s having a bit of a load-spike issue. Discovered that a particular code path is spending an unexpectedly large amount of time on parsing URLs from strings, formatting URLs as strings, and general string-pasting.
On closer inspection, it’s calling a library that takes URLs as strings and returns URLs as strings… all of the functions in that library start with url.Parse() and all of them end with return u.String(). And of course all of the callers of that library already have URL objects, and they’re calling String() to format arguments and Parse()ing the result.
So I’m cutting a v2 of that library with a new API that will eliminate all of the back-and-forth, as well as cleaning up a couple other things that seemed like a good idea 6.5 years ago, but no longer.
Finishing the first working implementation of a small fzf/fzy replacement in Zig with a better fuzzy matcher. Also pushing the boundaries of Zig’s comptime and inevitably running into more compiler bugs :) Then some hiking and practicing for a piano accompaniment.
Working on putting the finishing touches before I formally accept an offer for a new job, where I will be working with Python and Elixir at a well-known fintech startup.
Recovering from a company retreat to Waikiki Beach, and trying to decide where to direct the excess mental energy I have from meeting my co-workers, even as I’m very physically tired from the travel. It was a very good, time. But airline travel was not kind to my 6’3” frame.
I also have house to keep up with now, and after reading a lot of a book on ADHD, I’m thinking about trying out a pocket notebook, and adding routines for End of Day and such to it.
I’m hacking on an old transport protocol implementation from the 80s. Is TCP Illustrated: The Implementation still the best reference on implementing low-level network protocols?
Weirdly, I found myself leveling up my use of email-related command line tools to prepare for a Tribunal case (bought a lemon car; trying to force the dealer to pay for repairs).
That and - if I get time - looking into a build failure for my Common Lisp Heroku buildpack.
You could do Craigslist posts and leave them up for a month. Or a mega Craigslist post. Or if your bulk trash service makes it possible, put up posts for free things next to your kerb, and give people the chance to salvage what they want before it’s thrown away; either way no longer your problem.
Storage companies routinely have to auction off lots of abandoned/unpaid stuff. They could likely put you in touch with whoever they work with if you just want it all gone for a lump sum.
In my free time I’m trying to polish my rss-to-email service. I think it mostly looks as good as my minimal UX abilities can manage. Last tweaks are the subscription list and the subscribe page. Moving from a simple radio button list to cards will allos me to present more information cleaner.
After that I’ll be moving back to backend improvements like implementing WebSub.
Running, every morning. Back to it after decades of sedentary decline.
I am going to join you! Although I will split the days between running and cycling.
Nice! I’d like to mix in cycling as well, but but at 7am when I have time to exercise the streets are just too dangerous around here. It’s dicey enough on the sidewalk! :)
My regular expression engine is so close. It was ready two months ago, more or less, but I’ve been on a kick of “I’m not going to release it unless it’s fast enough to at least be in the same league as ‘fast’ regex engines.” Last night I got it to that point, I think: it can run 2500 expressions simultaneously across input at ~100Mbps.
Where can I read more about it?
Nowhere yet. Soon, though.
I’ll continue moving my personal organization/todo/knowledge base to my new Fossil setup. It has gone much better than expected. I got the basics set up and customized the ticket system a bit. I’m stoked for the simplicity of having a single file to backup. Still, I can sync this (including wiki/tickets) between multiple computers while keeping control of my own data.
Finishing up some leftovers at my current job as I will be starting at a new place next month. Exciting.
I also managed to catch COVID-19 and have been self-isolating for 9 days now.
You doing okay? Self-isolating for 9 days is miserable enough even without having COVID as well.
Yep, thankfully I only had mild symptoms for first couple of days (i.e. sneezing and nausea).
Prepping to move into a new role, where I’ll be doing much more FOSS development work for some exciting cloud native stuff.
As a side project, working on my image organization tool. Either starting with an elm frontend MVP to quickly move images into the correct folders, or starting from the bottom up with my “simple graph database on sqlite” abstraction. Maybe both!
I’m trying to get all of my computers bootstrapped from a chezmoi repo. I’ve got my Pinebook Pros running pretty well, but I haven’t nailed down my setup on my MNT Reform and other personal computers, and eventually I want it to setup my dotfiles on my web servers as well. The task is complicated by having my initializing scripts include an Ansible role, which may be a mistake.
Probably doing work and trying to be creative with my novel thing that I try to work on but life has been a lot this year.
Doing a lot of work in Vue.js and would love to pick some one’s brain if they know a lot about the framework about a particular problem we have.
In whatever little spare time I have, I am working on a (target of) < 600 lines$$ of C compiler for an sexp based language that can (hopefully) be used to bootstrap a better sexp based compiler based on the ideas of PreScheme. I’ve got about half the budget left to do code gen and a basic Hindley-Milner type checker.
$$ — and in no way is it 1 statement per line. The constraint is a challenge, and I do better on personal projects if I have to prove myself to myself. It’s a fun trick I recently reflected on and had some success with. I wrote a little “game engine” in < 200 lines of C with libSDL. It should be fairly trivial to bind as a library in other languages, but I’ve gotta be honest and say that that part never was validated because it seemed like a slog. ;)
Cracked open Xcode to write a small app for isometric hold training. Useful in precision sports like target pistol/rifle and possibly archery. It’s quite possible something like that already exists but it is almost easier writing your own than sifting thru the app store!
Swift has changed quite a bit since the last time I touched it: a quality I find unsettling in a programming language. Nonetheless the iOS version is almost finished now, and WatchOS is perhaps possible if I convince my wife to requisition her device.
Finishing the roll-out of tailscale to all the self hosted VMs I run.
I’ve struggled like crazy with implementing Wireguard and getting it past my NAT, but Tailscale works like magic, and for mobile too!
I can finally access my grocy using Pantry Party from my wife’s and my phone. You just plug the VM’s tailscale ‘magic DNS’ name in as the API endpoint and you’re off to the races, and the whole thing uses secure Wireguard tunnels.
Improving the automation of my newsletter about cybersecurity. At the moment it’s a bunch of small programs (Python or Go) running on my PC, but I am working to deploy on AWS Lambda and orchestrate them.
Ran some profiles on an application that’s having a bit of a load-spike issue. Discovered that a particular code path is spending an unexpectedly large amount of time on parsing URLs from strings, formatting URLs as strings, and general string-pasting.
On closer inspection, it’s calling a library that takes URLs as strings and returns URLs as strings… all of the functions in that library start with
url.Parse()
and all of them end withreturn u.String()
. And of course all of the callers of that library already have URL objects, and they’re callingString()
to format arguments andParse()
ing the result.So I’m cutting a v2 of that library with a new API that will eliminate all of the back-and-forth, as well as cleaning up a couple other things that seemed like a good idea 6.5 years ago, but no longer.
Finishing the first working implementation of a small fzf/fzy replacement in Zig with a better fuzzy matcher. Also pushing the boundaries of Zig’s comptime and inevitably running into more compiler bugs :) Then some hiking and practicing for a piano accompaniment.
Working on putting the finishing touches before I formally accept an offer for a new job, where I will be working with Python and Elixir at a well-known fintech startup.
Recovering from a company retreat to Waikiki Beach, and trying to decide where to direct the excess mental energy I have from meeting my co-workers, even as I’m very physically tired from the travel. It was a very good, time. But airline travel was not kind to my 6’3” frame.
I also have house to keep up with now, and after reading a lot of a book on ADHD, I’m thinking about trying out a pocket notebook, and adding routines for End of Day and such to it.
Work: Doing the finishing steps of transitioning my team’s build system from Makefiles to Bazel, and upstreaming the open source fixes along the way.
Life: Closing on my first home purchase this Thursday or maybe Friday since Thursday is a bank holiday. And repairing my bike.
Work:
Personal:
Weirdly, I found myself leveling up my use of email-related command line tools to prepare for a Tribunal case (bought a lemon car; trying to force the dealer to pay for repairs).
That and - if I get time - looking into a build failure for my Common Lisp Heroku buildpack.
Trying to get rid of everything I have in storage.
How do you even sell so many small stuff? Maybe it would be easier to just throw it all away.
You could do Craigslist posts and leave them up for a month. Or a mega Craigslist post. Or if your bulk trash service makes it possible, put up posts for free things next to your kerb, and give people the chance to salvage what they want before it’s thrown away; either way no longer your problem.
Storage companies routinely have to auction off lots of abandoned/unpaid stuff. They could likely put you in touch with whoever they work with if you just want it all gone for a lump sum.
I don’t think they have that service, but I’ll call and check. Thanks.
In my free time I’m trying to polish my rss-to-email service. I think it mostly looks as good as my minimal UX abilities can manage. Last tweaks are the subscription list and the subscribe page. Moving from a simple radio button list to cards will allos me to present more information cleaner.
After that I’ll be moving back to backend improvements like implementing WebSub.