Recently I've been on the "I should write a blog post" to "spend 2 hours updating dependencies across 4 language ecosystems in my blog's Bazel monorepo" pipeline. I should still write that blog post though #hypstatic #bazel

permalink

And proof that this setup is both good and bad – CI failed because I forgot to set the publish timestamp in the post YAML on the previous post. But CI ALSO failed because I forgot to run gazelle. #win #fail #bazel #hypstatic

permalink
Post Image

My artisanally hand-crafted blog generator is an unholy mix of JavaScript, YAML, Markdown, assets distributed by npm package, Golang, Rust, and Python these days, glued together with Starlark in Bazel (deployed to GH Pages) #hypstatic #bazel

permalink

I recently published a demo Bazel workspace that shows off many of the rules and tools I use in the monorepo for this website. #hypstatic #bazel #github github.com/lopopolo/bazel_tools_demo

permalink

Just used exiftool and lots of zsh globbing to strip all metadata from JPEGs and PNGs used to build the static hyperbola site. #hypstatic

permalink

hyperbola/logo repository was merged into the hyperbola-static monorepo! There is only one repo used to build this site now! #hypstatic #bazel #monorepo

permalink

force a rebuild #hypstatic

permalink

Woo! hyperbola no longer requires webpack to build. Hundreds of dependencies removed! The build uses eslint for bundling. #webpack #hypstatic

permalink

I just removed all pagination from the #hypstatic lifestream section #win this design choice dates all the way back to the first implementation of lifestream in 2010 #history

permalink

I've been toying with the idea of removing all pagination from #hypstatic

permalink

There is no more #webpack in #artichoke. All web properties have been migrated to esbuild, eta template engine, the Node fs API, and custom build scripts. This is simple, this is good. #hypstatic is next but there is a lot to unwind. #win

permalink

with the lopopolo IAM user gone, the only ones left were the IAM users in the #artichoke and #hypstatic GitHub organizations used for terraform CI in the project-infrastructure repos. I used the new GitHub Actions OpenID Connect provider to wire up AWS identity federation following this guide – scalesec.com/blog/identity-federation-for-github-actions-on-aws #security #github #aws #win

permalink

I'm not sure how long ago this happened, but I got ownership of the @hyperbola handle on #github to match the npm namespace. Some js libs, old infrastructure for dynamic hyperbola, and #hypstatic live there now. I've added a 'project-infrastructure' repo like in Artichoke which does infra as code for the GitHub organization and #aws setup.

permalink

yikes and pagintated navigation for archive pages had month and year mixed up in the link. #hypstatic #fail

permalink

ooof. While hacking on the lifestream part of the static site generator, uncovered that previous and next buttons for traversing lifestream permalinks had their polarity swapped. That bug has been there for over a year. #hypstatic #fail

permalink

Since cutting hyperbo.la over to GitHub Pages and tearing down most of the AWS infra, monthly AWS costs have been about $1.25. The biggest two items have been ~$0.50 each for S3 and Route53. #aws #cost #hypstatic

permalink

This PR also took the opportunity to hand-optimize and hand-make retina variants of all images in the blog and lifestream. This eliminated most of the large asset warnings from #webpack #performance #hypstatic

permalink

In the process nukes 1000s of lines from package-lock.json #hypstatic

permalink

Just upgraded hyperbo.la's build pipeline to #webpack 5 #hypstatic

permalink

As of last night, all hyperbo.la AWS infrastructure is torn down. github.com/hyperbola/hyperbola/pull/111 #aws #terraform #devops #hypstatic

permalink

To make this change on dynamic hyperbola would have meant 5-10 Ansible deploys to a Vagrant VM. Iteration speed would have been terrible. #devops #a11y #lighthouse #hypstatic

permalink

The static site with local #webpack development environment is already paying off! Google Lighthouse accessibility score for hyperbo.la is now 100 with increased text contrast. #a11y #lighthouse #hypstatic

permalink

hyperbola is deployed to GitHub Pages now! Executed via DNS cutover with terraform. Now to destroy the old infrastructure in AWS. #github #hypstatic #aws #terraform #hypstatic

permalink

And just like that, dependabot is enabled for hyperbola-static, the WIP lifeastream branch is merged, and the CI is spruced up #hypstatic

permalink

This is a setup that has worked well for artichokeruby.org. Set dependabot to autoupdate deps and the "maintenance" has been updating content. Deploys are automatic, regression testing of dep upgrades is automatic. #automation #hypstatic

permalink

There is Ansible, Packer, Terraform, JavaScript, Webpack, Python, Django, Ubuntu, nginx, EC2, Route53, ALB, S3. I think I can simplify this to GitHub Actions, GitHub Pages, Node, Webpack, and statically configured DNS with my registrar. #hypstatic

permalink

Looking at the commit history for Python hyperbola over the last 3 years shows that it hasn't been developed, only maintained. It is done, but the current repo is expensive to maintain. #hypstatic

permalink

Switching to a static site built with webpack at least affords the opportunity to have an integration test that the site compiles. #automation #hypstatic

permalink

There is no automated build and no test suite. #automation #hypstatic

permalink

Dependency management in Python makes me sad. #fail #python #hypstatic

permalink

I've lost my ability to develop locally since I don't want to install VirtualBox on my new laptop. #fail #hypstatic

permalink

I run an outdated version of Django. #django #fail #hypstatic

permalink

The terraform config for this project is on 0.12 and I have no desire to update it to 0.13. #fail #terraform #automation #hypstatic

permalink

I will miss the ease of adding lifestream posts via the Django admin UI, but given that I'm posting elsewhere these days, I don't think I'll miss it too much #hypstatic

permalink

Remaining pieces are implementing hashtag browsing pages and the date archive browsing pages #hypstatic

permalink

Most of my updates these days are either in the Artichoke Discord or @artichokeruby Twitter #hypstatic

permalink

The AWS infra that the current site runs on is $50 a month I do not need to spend. #aws #cost #hypstatic

permalink

I've had a work in progress fork of hyperbola to migrate to a static site hosted on GitHub pages for over 6 months. I can't find the time to finish it. #hypstatic

permalink