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
permalinkAnd 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
permalinkMy 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
permalinkI 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
permalinkJust used exiftool and lots of zsh globbing to strip all metadata from JPEGs and PNGs used to build the static hyperbola site. #hypstatic
permalinkhyperbola/logo repository was merged into the hyperbola-static monorepo! There is only one repo used to build this site now! #hypstatic #bazel #monorepo
permalinkforce a rebuild #hypstatic
permalinkWoo! hyperbola no longer requires webpack to build. Hundreds of dependencies removed! The build uses eslint for bundling. #webpack #hypstatic
permalinkI 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
permalinkI've been toying with the idea of removing all pagination from #hypstatic
permalinkThere 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
permalinkwith 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
permalinkI'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.
permalinkyikes and pagintated navigation for archive pages had month and year mixed up in the link. #hypstatic #fail
permalinkooof. 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
permalinkSince 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
permalinkThis 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
permalinkIn the process nukes 1000s of lines from package-lock.json #hypstatic
permalinkJust upgraded hyperbo.la's build pipeline to #webpack 5 #hypstatic
permalinkAs of last night, all hyperbo.la AWS infrastructure is torn down. github.com/hyperbola/hyperbola/pull/111 #aws #terraform #devops #hypstatic
permalinkTo 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
permalinkThe 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
permalinkhyperbola 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
permalinkAnd just like that, dependabot is enabled for hyperbola-static, the WIP lifeastream branch is merged, and the CI is spruced up #hypstatic
permalinkThis 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
permalinkThere 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
permalinkLooking 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
permalinkSwitching to a static site built with webpack at least affords the opportunity to have an integration test that the site compiles. #automation #hypstatic
permalinkThere is no automated build and no test suite. #automation #hypstatic
permalinkDependency management in Python makes me sad. #fail #python #hypstatic
permalinkI've lost my ability to develop locally since I don't want to install VirtualBox on my new laptop. #fail #hypstatic
permalinkI run an outdated version of Django. #django #fail #hypstatic
permalinkThe terraform config for this project is on 0.12 and I have no desire to update it to 0.13. #fail #terraform #automation #hypstatic
permalinkI 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
permalinkRemaining pieces are implementing hashtag browsing pages and the date archive browsing pages #hypstatic
permalinkMost of my updates these days are either in the Artichoke Discord or @artichokeruby Twitter #hypstatic
permalinkThe AWS infra that the current site runs on is $50 a month I do not need to spend. #aws #cost #hypstatic
permalinkI'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