What if I told you this was only ~10% of them?

a memento wall of kira's report cards for daycamp, even back when she was a puppy

Mesh Network made it to an art show!

Last night was the first art show at Atlas Local, and I was lucky enough that two different people wanted to collaborate!

First up, my friend Dorcas Lanyero and I collaborated in a giant Mesh Network inspired painting! It turned out incredibly; and there are still some bits we want to improve (such as actually painting on the photovolic shading/projections onto the vertical greenhouses)

A photograph of the Mesh Network painting: a verdant town ensconsed in a mountain with a waterfall nearby, a maglev train running behind the waterfall, and vertical greenhouses

 

Also: Em Blitstein embraced the inner 90s punk in us all and made a zine; with some of the liner notes and a poster design I’ve been toying around with!

A spread of Mesh Network inside Em Blitstein's zine; which includes some comments from the liner notes and a promotional poster I've been working on for the album

Ruby Passkeys Update

Posted a quick update about the Ruby Passkeys organization in the passkeys issue for Devise

 

The gist is:

  • There are very early alpha implementations for Devise and Warden, including a template repo
  • Once again, I am asking for desperately needed maintainers for this

City Skylines 2 really has to ship with proper transit & walkability 🤞🤞 DLCing that is ridiculous www.rockpapershotgun.com/paradox-a…

Glamping

a photo of my dog smiling at the camera in a camping scene

👋 Hey y’all! Unfortunately, I got laid off from my job. I’m actively looking for work; if you’re interested in hiring someone with 16+ years of practical, real-world, customer-focused development work; please reach out! 😄

I also love doing customer support, developer relations, build-chain improvements, and engineering management.

I’ve put together a “I’m for hire” page below

thomascannon.me/for-hire

I am delighted to inform you that this riiiiips louiezong.bandcamp.com/album/let…

HTTPS, Subdomained System Tests in Ruby on Rails

Getting puma to use self-signed certificates in Test

Install the localhost gem, which allows Puma to use self-signed certificates in your test environment: https://github.com/puma/puma/#self-signed-ssl-certificates-via-the-localhost-gem-for-development-use

group(:test) do
  gem 'localhost'
end

It’s not documented anywhere in Capybara, but Capybara’s built-in Puma handler allows you to issue a custom bindhttps://github.com/teamcapybara/capybara/pull/2028

Capybara.run_server = true
Capybara.server = :puma, { Host: "ssl://#{Capybara.server_host}"}

I found that you do need to explicitly pass the Capybara.run_server = true argument in your system tests

You also need to have Selenium Webdriver explicitly accept insecure hosts: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities/acceptInsecureCerts

For example:

Capybara.register_driver :chrome do |app|
  options = Selenium::WebDriver::Chrome::Options.new
  options.accept_insecure_certs = true
  Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end

With that, Capybara runs with self-signed certificates in development, and the WebDriver will accept them.

Running subdomained tests

Because of how macOS does not handle wildcard DNS resolution for localhost by default, if you need to run your tests using subdomains, you’ll need to use a loopback DNS service like nip.io
For example:

Capybara.app_host = "https://myapp.127.0.0.1.nip.io"

Depending on how your existing tests are setup, you might also need to setup a custom initializer block in config/environments/test.rb to override the tld_length

#config/environments/test.rb
Rails.application.configure do
  #...

config.hosts << “.127.0.0.1.nip.io”

if ENV[“PREP_SYSTEM_TESTS”].present? config.action_dispatch.tld_length = 5 # 127.0.0.1.nip.io = 5 top-level host details to throw out Rails.application.routes.default_url_options[:host] = “127.0.0.1.nip.io” # Necessary for routes to play nicely # … end end

The next project I’m working on: Data-augmented composition. In essence: a way to use data as an input for composition. It won’t drive the entire piece, because I still want a human elements but the transcendent nature of generative music is appealing to me

A diagram of my next project: data-augmented composition, to transform data into components that can be used for composition

I am now the proud owner of the most cumbersome sampler out there, thanks to #SuperMIDIPak (https://www.supermidipak.com)

A photof of a SuperMIDIPak cartridge

Rate Sheets are in general beta for Noko! nokotime.com/rate-shee…

See how you’re doing in 2023, and make sure you’re spending your work time on the most valuable projects

Which, upon reflection, is reaaaallllllyyyyyyyy fuckin shitty after the Super Bowl

Listening to Off The Wall for the first time, uh, and 2010s Justin Timberlake was really just copying the answers over MJ’s shoulder, wasn’t he?

The UJS pattern that Rails has (had? The Rails JS & documentation story is messy) is arguably the best bridge that’s been implemented between client & server.

It can be rigged up with basic data attributes, it is powered by the browser’s native event-handling. That makes it easy to extend/customize, it doesn’t get in your way, and there isn’t a deadly tight coupling between the client & server codebases

I’m BEGGING any competent iOS/macOS developer to build a competitor to TextExpander. It’s so damn clunky for no reason, the iOS keyboard straight-up doesn’t work, and their Electron UI is garbage. I’d pay a subscription for a replacement in a heartbeat

Yes I am 12

a screenshot of my Bandcamp promo codes, 69 (nice) have been redeemed

In a day of firsts, I also got my first YouTube review! youtu.be/fhmF-HnJp…

I hadn’t fully internalized some of the points he makes about my music, but hearing it said out loud there’s definitely stuff that’s right on the money

Also “this might be drier than usual” - is the story of my life 😂

The corollary of this software architecture discussion I posted a few weeks ago is that you’ve gotta be consistent about it.

In this week’s case, it means begrudgingly realizing “well, hell, this actually needs a rewrite.” Even though I’m not looking forward to it; it’s 100% going to help by reducing the number of hacks & simplifying the codebase.

microblog.thomascannon.me/2023/01/0…

Kept going to refresh & try to find @ivory@tapbots.social today on the App Store, subscribed to Premium. A mixture of excitement at a first-class Mastodon client, & seeing an indie developer get back up after the Twitter shitshow

I wish someone had told me punk would involve so many glue sticks & cardboard

🤯 this experiment paid off, it’s actually in a record shop. Now to wait and see if it sells 🤞🤞🤞

a physical LP-sized release of Mesh Network in a record shop

Graphic design is my passion

Graphic design is my passion