The Blog
Sometimes we write stuff.
You can read it here now, or later with the RSS feed,
or Subscribe to our (almost weekly) newsletter.
-
That time Marvel secretly endorsed my podcast with “the greatest comic book cover of all time”
This is a blog post that has nothing to do with Good Enough, but I was told “There needs to be a record of this somewhere on the internet!” and I don’t have my own blog.
Years ago my friend and I ran a radio show called Gorilla Madness, which we also spun out into a podcast after we graduated. It was a half-decade of silly stupid fun that I miss dearly. No, you can’t listen to it, it’s very embarrassing and I like my job.
Anyway, one of our friend-fans was an editor at Marvel, and he was the only member of the street team (inside joke) that actually engaged in
gorillaguerilla marketing tactics: he snuck us into a comic book. -
Our Favorite Video Games Right Now
While everyone at Good Enough is their own kind of nerd, thank you very much, as builders of the web you probably expect that we also play video games. And we do! Well, collectively we do, but not to an unhealthy degree. Usually.
I asked the team to share with me what their current favorite game console was, as well as the games they are playing right now. The Nintendo Switch is the big winner amongst our crowd, which is interesting because Nintendo definitely seems to abide by the mantra of good enough hardware.
-
Cosmic Maelstrom
As Barry wrote in his recent blogpost, we're busy building prototypes here at Good Enough.
It's weird to be in this situation. Most of the Good Enough team are used to working on just one software at a time, focusing on steadily improving it. But right now we're doing the opposite. For the next few months we'll have no revenue and no customers. Most afternoons, we won't even know what we'll be working on the next morning. Exciting times! 😅
-
· Matthew Lettini · TIL
TIL: Don’t forget your Web Manifest file
We’re primarily a web shop. We’re dipping our toes into mobile app development, but our collective expertise is in making products and services for the web. And like everyone else, our use of the web has shifted from our desktops and laptops to our phones.
As we’re creating and prototyping new ideas, we keep developing websites that we think might also be good apps. So a few of us are using “Add to Home Screen” on these products, which has mostly been great, but we ran into something annoying: we couldn’t figure out how to hide the Safari toolbars as we navigate this new website-as-app.
-
Cool URLs Don’t Die
If you've been reading our newsletter (and you should be reading our newsletter) you will have seen that I've been building some printers.
This is actually the resurrection of a project I began in 2012 with the help of some colleagues, and while I've been updating it, it's been fun to explore some of the original posts and tweets about the project. Quite a few people made their own printer to connect to the open-source architecture, and it was great to read about their experiences.
... except now, 11 years later, pretty much all of those links are dead. Personal blogs are either gone, or redirect en masse to some new domain. Company blogs share a similar fate: with a few notable exceptions, blogs don't survive company website redesigns, let alone when the company is bought or ceases trading. Even links on esteemed and ongoing tech blogs like Wired haven't survived, despite the content still being available if you search hard enough.
And you know what? That's not cool. Cool URLs don't change. And Cool URLs shouldn't die either. URLs that die are not good enough.
-
· Barry Hess · TIL
TIL: Deploying a Sinatra app to Render.com
This morning I wanted to deploy a simple Sinatra app to Render.com. It wasn’t super obvious to me, so I figured I’d write down what worked in the end.
First, a Gemfile:
# Gemfile
source 'https://rubygems.org'
gem 'sinatra'
gem 'sinatra-contrib'
gem 'puma'* I’m pretty sure
sinatra-contrib
is not necessary.Also at this point in time you’ll need to
bundle lock --add-platform x86_64-linux
for your Render.com deployment to work.Here’s my
main.rb
"hello world" app: -
My Tears of the Kingdom Addiction
I don’t know how big my internet social bubble really is, but it feels like everyone in
the worldthat bubble has been playing a lot of The Legend of Zelda: Tears of the Kingdom lately. Me included! It’s amazing, and I’m thoroughly engrossed—I think I’ve stayed up playing until 3:00am multiple nights in the past two weeks. That was easier when I was younger, but now my late-30s body and mind feels like mush the next day. My Switch says I’ve put in over 55 hours so far…Why am I staying up playing so late? Can I sue Nintendo for making this game too addicting? (Feel free to reach out with legitimate legal advice.)
For those outside the Zelda Zeitgeist, Tears of the Kingdom is yet another game where you control the hero (Link) and traverse the world and story to save the princess. It’s a franchise known for using pretty much the same story arc, but set in different places and with different mechanics. What makes TOTK a 10/10 game of the year award winner and making me addicted is two-fold:
-
Beware of Free Software
If I want a slice of pizza, I don't expect it to be free. In fact, if you try to offer me a slice of free pizza, I'd suspect there's something wrong with it.
And ever since my kids can understand me, I've taught them to be careful of free stuff. Nothing is free!* Don't take any free candies from strangers!
But on the internet, we expect things to be free. We're more than happy when Big Corporations offer us free software. Want to upload thousands of photos and videos to share with your family, all for the price of nothing? Come on in! While you're at it, can I offer you free email, too?
-
· James Adam · TIL
TIL: Turbo Stream broadcasting needs default_url_options to be set
We've been using Turbo Streams in some of our recent prototypes, which makes it really easy and fun to get responsive and fun interactions set up. However, we kept having issues with images sent in a turbo stream response.
If the response was delivered by a normal controller render, e.g.
class ThingController < ApplicationController
def update
@thing = Thing.find(params[:id])
if @thing.update(thing_params)
respond_to do |format|
format.turbo_stream # renders `update.turbo_stream.erb`
end
end
end
end... then any images included in that template would render as you'd expect.
However, any rendering that was triggered by one of the
broadcast_...
methods from turbo-rails — which is how you get content to update in "real time" across many clients — would break. So changing the controller above to something more like this: -
The Element of Surprise
Good Enough happens to be a remote team. This isn't from some strongly-held belief that remote is best, but rather as a side effect of how we all happened to meet each other. We met remotely, we did not end up all moving into some commune, and so to work together we must work remotely.
Recently we have been talking about what motivates us. The things we said in that conversation could probably turn into a really useful blog post, but I'm not going to write about them right now. I will share that my biggest motivation happens to be this small team itself.
To be able to be in a group like Good Enough where everyone has incredible experience to bring to bear, well, it’s just a complete joy. One of the many benefits fully remote affords is that of surprise. In just a few short months I’m already getting surprised almost daily by the things this team has built.