I’m broken. I can’t think, I can’t develop. The development world has changed again, and I no longer know how it works. I do know that it still works, and that there is a new approach to software engineering emerging. I don’t know if, like prompt engineering, this is a temporary phase; I know it is not a fad. I also know that there definitely is something to it. I brain…
What We Collect Nothing. Brutus does not collect, store, or share your personal information. What Others Collect When you add feeds or refresh podcasts, requests are sent directly to the podcast host. Those servers may log standard request info (like your IP address) according to their own policies. Brutus does not control or store that data. Brutus ships with a suggested OPML file for…
Its January 2025 and about a year since I decided to kick off chronicles again as noted in Reignition. From questioning whether it worked, to excitement in getting it running again. From briefly moving so quickly in the v0.5.0 release that I could barely stop to note it. To overwhelm and regret when midway through v0.8.0. To beginning to actually use it for real, where I noted: Of the next…
Navigating life with ADHD often involves developing strategies to manage daily challenges, particularly in professional environments. For me, a transformative moment came from understanding the role of working memory in ADHD. It reshaped how I approach tasks and manage my cognitive loads. There are many great blogs and discussions on this already, and I don’t intend to pile on with…
Today I released v0.4.0 of Chronicles. It is the culmination of the last six weeks of feature work, and the first real work in two years. The release notes summarize the associated changes; here I wanted to briefly reflect on the current state of the project and future plans. Iterating on base usability I called the last release “Base Usability — Well kind of”. When I first broke up the…
I’ve been feeling a kind of creative energy lately. Somehow curious again. Still tired, the way parents of young children are. Drained, the way employees of busy companies are. In a prior life being in a creative mood was a time for fun. For hacking and making mistakes. Learning new things and putting them down. Putting them on the shelf, which was not yet so full as to be its own source of…
I occassionally blog here. Email me to say hi. Design inspiration taken from the following sites: https://thesephist.com OpenAI blog https://justinjaffray.com https://manuelmoreale.com
This post is a review of (and thoughts about) Will Larson’s Staff Engineering book. Introduction I’ve worked at a few successful1 startups, yet rarely one’s that had proper engineering roles as such. If your tech career spawned out of IT like me, you might lack a conceptual framework for thinking about engineering leadership. There are hero programmer’s and prestige…
While planning drag and drop image support in Chronicles, I had some confusion about handling files once dropped. There are many tutorials out there but they often provide a “copy this code” approach and offer little insight. Many recommended using base64 encoding but that did not seem right. The more general problem of file uploading through a browser is one I occassionally return to,…
Recently I wrote a python script for syncing data to a 3rd party service. I needed to output various text files during its run, both for debugging and audit history. Ideally, I wanted a simple function which would allow the following: # Set some base directory via config working_dir = 'data' # Pass filenames and contents, with any directories # automatically created as necessary: # should output…
Introduction In my last attempt to build this app, search organically grew in prominence as I added new features. Originally the app was just date ordered markdown documents, and search was free text with a few added features. In this version, I wanted search to be more central and flexible. Rather than an adjunct on the selected journal, I thought it could be the main driver of what was on…
I finished another feature on Chronicles: “Focused headings” (demo). Focusing a heading finds all content under that heading, filters everything else out, then pins the heading to the top of the journal. A journal might typically have a range of topics across many days: After “Focusing” a heading, the heading element is fixed to the top, and the view filters any content not…
On July 2nd I re-booted a stalled side project of mine called Chronicles — a markdown based journaling application. On August 14th I shipped the first (very basic) phase of it. Nobody should be interested in this release, but it is an important milestone for me — something usable shipped. This is a brief retrospective on the first milestone. Getting in a rhythm with Go The thought of restarting…
When I first heard about Deno 1, I thought it would fizzle. A better Node sounded nice but I couldn’t see why it would take off. When it hit 1.0 and blew up on hackernews, I was surprised and a little excited. Maybe it had more steam than I thought. Node has warts and Typescript is great after all. Reading the announcement blog post, two points stood out to me:
Node supports exit codes and error logging but has important caveats I’ve learned the hard way. What follows is a summary of what I learned while fixing a failed Github Actions workflow. Errors and exit codes Consider this script which throws an error: throw new Error('all i do is fail'); This script fails, and two important things happen: It logs an error It exits with a non-zero exit code…
In this post, I’m going to cover creating your own blog with Gatsby, a React-based Static Site Generator. Motivation Content and static site generators Up and running with Gatsby Customizing Hosting Syndication Next steps Motivation Before getting to the background, lets (briefly) start with why. You could publish blog posts to Medium, Wordpress, or Ghost and be up and running immediately.…