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
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
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
permalinkWith AWS SSO in place, I started using aws-vault locally for #terraform and AWS CLI. I learned about this tool at work. No IAM access keys with inline IAM policies! SSO + assume role for administrator access! #security #win
permalinkI took a hacksaw to my homebrew installation. I'm not sure how this happened but the brewfile I've been carrying around at one point had the entire dependency graph in it rather than the explicitly installed deps ... which made everything on my new Mac an explicitly installed dep. I had hundreds of libs installed for no reason. Burned everything down and started from scratch. #fail #win github.com/lopopolo/dotfiles/blob/fb9af6bd19df2149dba5a63a8db…
permalinkmacOS things – I tried out alacritty and tmux again but didn't switch away from iTerm2. I tried a bunch of fancy neovim LSP, floating pane, and lua config and then stripped all IDE bits out of vimrc to keep it just an editor. Finally enabled dark mode on my Mac (synced with the sunrise and sunset), switched to dark terminal and neovim color schemes. #win #vim
permalinkIt's been a while since I've posted about #artichoke, but I recently landed a #rust implementation of #ruby's `String` class. #win github.com/artichoke/artichoke/pull/1222
permalinkI got a PR in artichoke suggesting to bump down the frequency of dependabot updates to monthly. I applied this change across all artichoke, hyperbola, and lopopolo repositories. It has been a big quality of life improvement and cuts down on a lot of churn in JS dependencies. Applying dep updates once a month is 👍 #win #artichoke
permalinkYay! hyperbo.la is running Bootstrap v5. This upgrade was actually really small! Just some small changes to the Sass for customizing colors and updates to the navbar. #win
permalinkMore #artichoke updates since March: a marketing site at artichokeruby.org, prebuilt containers on Docker Hub hub.docker.com/r/artichokeruby/artichoke, and prebuilt nightlies github.com/artichoke/nightly/releases/latest #win
permalink#vscode and LLDB in VSCode were SO amazing to use. Within a couple of iterations, I was able to track down the use-after-free: github.com/artichoke/artichoke/pull/674 #fail #win #artichoke
permalinkAfter 50 PRs, I was able to put GH-442 to bed and remove the Rc wrapper from the Artichoke state github.com/artichoke/artichoke/pull/670 #win This refactor took 4 months #fail #rust #artichoke
permalinkNightly builds of Artichoke are available via ruby-build: rbenv install artichoke-dev #artichoke #win
permalinkI contributed a feature to #rust! Added an implementation to allow turning a &mut str into a String using the standard From trait #win #patch github.com/rust-lang/rust/pull/69661
permalinkMigrated all #artichoke CI to GitHub Actions #github #win Jobs and workflows are so much easier to reason about. And it's free 💪
permalinkAlso added many more converter implementations with macros. There are 988 TryConvert implementations. #win #fail #artichoke
permalinkThis change added new functionality: Converting to and from byte and string slices #win #artichoke
permalinkI reported an undocumented panic in #rust that was fixed today #patch #win github.com/rust-lang/rust/issues/63456
permalink#artichoke is the top trending repo on all of #github right now #win
permalinkI built an #artichoke #Wasm playground in the browser artichoke.github.io/artichoke #win
permalinkThat is a lot of code #artichoke #github #patch #win
permalinkThat is a lot of code #artichoke #github #patch #win
permalinkThe biggest accomplishment was redoing the #artichoke README github.com/artichoke/artichoke#readme Thought about project goals and differentiators from MRI. Added milestones to track progress in achieving goals #win #ruby #artichoke
permalinkferrocarril had different goals than artichoke: it wanted to run Rails. To do that, it had a lot of extra bits in it like gems, a Rack server, and sample apps. Nuked all of it #win #artichoke
permalinkI have Regexp#match? github.com/artichoke/ferrocarril/pull/93 #win #rust #ruby
permalinkI reported a #segfault in mruby and spoke directly with @matz! #win github.com/mruby/mruby/issues/4460 #patch
permalinkIt only took 49 build jobs, but the ferrocarril build is passing on CircleCI circleci.com/gh/artichoke/ferrocarril/47 This is the first time I've ever set up #ci for a side project #win
permalink#patch got another PR accepted in the Ansible + ACME + Route53 role I use for the hyperbola dev env load balancer #win github.com/mprahl/ansible-role-lets-encrypt-route-53/pull/15
permalinkI just used #github to create a reproducer case for a panic in a #rust library #win github.com/lopopolo/rust-embed-panic github.com/pyros2097/rust-embed/issues/61 #patch
permalinkI have eliminated all explicit casts in punchtop #rust #win github.com/lopopolo/punchtop/commit/1e41ca3
permalinkMore #rust safety: removed a cast to usize with the new usize::from_be_bytes converter github.com/lopopolo/punchtop/commit/2263c80 #win
permalinkThe game that I'm working on is punchtop github.com/lopopolo/punchtop #win #rust #powerhour
permalinkI made a small #rust crate called stream-util for a game I'm working on. github.com/lopopolo/punchtop/tree/master/stream-util allows graceful drains of tokio mpsc channels or canceling a futures Stream. Clippy pedantic and fully documented #win
permalinkAdd in some manual #terraform state edits and deleting things in the #aws console and we're recovered #fail #win
permalinkThat was a 35-commit weekend. New features and improved code quality. #win github.com/hyperbola/hyperbola/compare/918f6d0f..4c331eee
permalinkSignificantly refactored my #webpack static asset pipeline today. No longer build assets locally and check them in. Build happens as part of #ansible provisioning. #win github.com/hyperbola/hyperbola/commit/eaf5b3197
permalinkFurther #cost optimized my #AWS infra. Saved $3/month by turning off CloudWatch monitoring and making my ASG out of spot instances github.com/hyperbola/hyperbola/commit/ffa0e34 #win
permalinkThat was easy! hyperbola running on t3s now. #aws #terraform #win
permalinkhyperbola is ready for #django 2.1. github.com/hyperbola/hyperbola/commit/d92a79f. That was easy #win
permalinkSwitched from community PPA to official nginx-provided binaries. That was ... really easy: github.com/hyperbola/hyperbola/commit/5461837 #win #ansible
permalinkfor frklft.tires, I stopped using #terraform for managing the static content of the site. It now lives outside of my terraform code in a public directory, published explicitly with a make target #win
permalinkI made a thing! burnfastburnbright.com Bootstrap 4, route53 domains, and terraform made this really easy. went from 0 to 100 in about 1.5 hours. #win
permalinkhyperbola: now with multi-homed DNS. AWS Route 53 and CloudFlare, made possible by terraform. (In the process upgraded hyperbo.la mail to a 2048-bit DKIM key) #win #redundancy #devops
permalink4. addendum: I used #LetsEncrypt before migrating to AWS with a combination of cron, systemd timers, and dehydrated. ACM is easier, less error prone, and set-it-and-forget-it #win
permalinkmy #terraform life became much easier by using name_prefix instead of name. name and name_prefix parameters were never interpolated. Instead, use interpolation in tags. In practice this means config can change without rebuilding the world #win
permalinkConverted wiki from ELB to ALB this morning ... took a couple of hours. modified #terraform config and updated #ansible ... also converted from Let's Encrypt to ACM. github.com/hyperbola/hyperbola-tools/commit/23fb9a7 #win
permalinkOMG just rewrote my #git PS1 which runs as part of my PROMPT_COMMAND. Now 20% faster both inside and outside a repo. terminal feels so much faster now #win #performance github.com/lopopolo/dotfiles/commit/2d5054c4ce
permalinkMigrated terraform state from a private github repo to a private, encrypted S3 bucket. State infra is bulkheaded from main app and protected with prevent_destroy lifecycle #win #terraform #aws
permalinkand the #monitoring even triggered when I took the box down. #win
permalinkAdded liveness monitoring of healthz endpoints on wiki and hyperbo.la today #monitoring #devops #win healthz goes all the way through to rack/django
permalinkbastion is now in an ASG with an automatically bound (with user data) elastic IP. Yay fault-tolerant infra! #win #aws #terraform
permalinkjust automated a spreadsheet (concatenating several columns) with filter #win filter(L6:L, L6:L<>"") vs manually updating ranges #automation
permalinkEnabled cloudflare cdn on hyperbolacdn.com today. Took 4 clicks. #win
permalinkhyperbo.la staging and production are TLS enabled. Still have to turn on HSTS. #win #letsencrypt
permalinkSuccessfully migrated hyperbo.la and staging.hyperbo.la to a new host, hyperbola3. Ubuntu 16.04 and 8GB of RAM. Just shut down hyperbola1. #win
permalinksuccessfully did an out of band release not of master while in the process of migrating hyperbola to a new host #win #deployment #automation
permalinkWith this latest release, hyperbola has surpassed 500 commits! #win github.com/hyperbola/hyperbola/tree/2015-11-21-lifestream-tem…
permalinklifestream template refactor didn't yield any #performance wins, but the code is much cleaner now. #win
permalinkSped up the lifestream page by 30ms by caching the archive sidebar. More template speedups to be had by switching to python3 (str to unicode coercion in python2) #win #performance
permalinkI bought IntelliJ Ultimate and it has already been decently valuable: github.com/hyperbola/hyperbola/pull/28 ... fixing lots of warnings #win
permalinkFinally bootstrap-ified the last bits of #hyperbola: the frontpage and the lifestream entry panel #win
permalinkJust added CORS headers for web-fonts on my 2 assets domains through cloudflare ... whoa. This has apparently been broken for a while #fail #win #hyperbola
permalinkJust did 2 fully automated deployments to staging! #win #automation
permalinkGet optimized, HTML! Just added some middleware that minifies Django template HTML output #performance Google pagespeed really likes my site now (on Desktops) ... 94/100 #win
permalinkMy wiki is getting filled up with #devops documentation for #hyperbola #win Runbooks are fun!
permalinkWon best performance hack at the #Box #Hackathon last night #win
permalinkssh and an html/js terminal that will run anywhere I have chrome because of native client? Yes please #win #awesome chrome.google.com/webstore/detail/pnhechapfaindjhompbnflcldab…
permalinkscreen wipes are the best things ever for both laptop screens and glasses #win #thingsineedtobuy
permalinkjust discovered that once you're in cmd+TAB mode on OS X, cmd+` cycles backward. So much easier than cmd+shift+TAB #learnability? #fail #win
permalink