🎱 Josh Branchaud ✨
banner
jbranchaud.bsky.social
🎱 Josh Branchaud ✨
@jbranchaud.bsky.social
1.2K followers 370 following 1.4K posts
Free-Range Software Dev and Consultant ✨ PostgreSQL • Ruby on Rails • TypeScript • React ✨ 🏃🐈🍹🎱 (he/him) | Chicago | Work with me: visualmode.dev
Posts Media Videos Starter Packs
Pinned
The Ruby language and community have given me so much, so I thought I'd give a little something back as #RubyConf wraps.

Introducing Ruby Operator Lookup!

A one-stop directory for all the operators and symbols you'll see in Ruby programs. There are sooo many 😅

www.visualmode.dev/ruby-operators
We have a crossword puzzle book that we take on road trips, camping, and other kinds of travel.

Whenever we complete a puzzle, we write the date, who contributed, and a note about where we are and what we're up to.

It's fun to flip back through and reminisce.
I use the equivalent of this syntax in Ruby all the time. It’s a nice pattern.
TIL about the JS "Declarations in Conditionals" proposal

This lets you write const/let inside if/while block

Curious, would you use this?
I think I like it, could make code slightly less verbose and still explicit

(TC39 stage 1, will be presented for stage 2 next week)

github.com/tc39/proposa...
I’ve got to figure out a space heater for my office. HVAC isn’t pushing enough warm air into that room.

I like the idea of the oil-filled radiator style — slower but more energy efficient.

Their top pick (Vornado) sounds nice tho 🤔

www.nytimes.com/wirecutter/r...
The Best Space Heaters
Warm up a room and boost your home’s heating system with space heaters we’ve tested firsthand.
www.nytimes.com
Pretty cool that MacOS has a built-in command that you invoke. from the CLI to tell your display and system to not go to sleep — useful if you have stuff running and then go to grab some lunch.

github.com/jbranchaud/t...
github.com
Chicago Weather: always overpromising and underdelivering.
Incredible — I would have never imagined @chess.com doing a brand collab with old school RuneScape.
Reposted by 🎱 Josh Branchaud ✨
“I want you to understand what it is like to live in Chicago during this time.”

aphyr.com/posts/397-i-...
“Barbecue may not be the road to world peace, but it’s a start”
The way this Hammerspoon automation works is that I manually trigger it with `Cmd+Opt+Ctrl-s` and it looks at the front Chrome window, goes through all the tabs not in the "keep list", writes them to a timestamped entry in a JSON file, and then closes all those tabs.
🎉 Super proud to have hit the 5 year mark of VisualMode and being an independent software developer.

I continue to work with great clients on challenging projects. In particular I’m enjoying some recent modern Rails apps — this stack still has a big future.

www.visualmode.dev
VisualMode - Small-batch software development and consulting
Your business is built on software. You need that software to run like a well-oiled machine so that you can keep moving forward. VisualMode can help. We bring cross-discipline, full-stack expertise to...
www.visualmode.dev
One of my worst habits is feeling too precious about my Chrome tabs and never closing them until there are dozens or even 100+.

Wanting to give Hammerspoon (MacOS scripted automation tooling) a spin, I figured this would be a good task to take on.

Here's ChromeTabSaver!

github.com/jbranchaud/d...
github.com
One of my all-time favorite albums — Daft Punk’s Alive 2007
Intel MBP running Rails app unit test suite: 2min 23sec
M4 Max MBP running Rails app unit test suite: 12sec

Wowow 🤩🏎️
The *checks* described in the `strong_migrations` README contains a lot of examples of when you may need to use that pattern. Reading through it is a great way to build up an intuition for these things.

github.com/ankane/stron...
GitHub - ankane/strong_migrations: Catch unsafe migrations in development
Catch unsafe migrations in development. Contribute to ankane/strong_migrations development by creating an account on GitHub.
github.com
If you want to do *online* database schema migrations without degrading the performance of your system, the Expand and Contract Pattern is a great approach. And generally a great pattern to know about.

www.prisma.io/dataguide/ty...
Using the expand and contract pattern | Prisma's Data Guide
In this article, we introduce the expand and contract pattern to help migrate data and clients to a new schema.
www.prisma.io
Extremely cool to hear that someone recommended it 😊

That's a great idea. I'll see if I can figure out how to add that to the search and/or just add additional links for those that go to the % page.
I finally figured out that in VSCode/Cursor, if I hit cmd+p and type out the name of a file I want to create, I'll eventually filter everything else out and have a single option to create that file and the intervening directories if necessary.
Reposted by 🎱 Josh Branchaud ✨
*because of terrorism
Commentary: Just six months ago, my daughter would beg me for cotton candy from one of the after-school vendors, and we’d stay on the playground a little longer before heading home. Now, the vendors are gone, the playground is closed and the small routines have quietly disappeared because of fear.
Allison Pleas: Fear of ICE is stealing the simple moments in my Chicago neighborhood
The environment around my daughter’s predominantly Latino school has changed: The vendors are gone and the playground is closed.
trib.al
Reposted by 🎱 Josh Branchaud ✨
No one should have to put up with this shit but in particular kids should not have to put up with this shit
Indoor trick-or-treat events. Candy dropoffs. Neighbors patrolling with whistles.

This is how Chicagoans are helping kids have a safe and ICE-free Halloween this year: blockclubchi.co/47qJSzi.
Reposted by 🎱 Josh Branchaud ✨
heartbreaking and infuriating
Reposted by 🎱 Josh Branchaud ✨
Border Patrol officers stand outside their vehicles at a gas station near Bridgeport Tuesday in Chicago. Earlier in the day students from Little Village Lawndale High School held a walk out to protest recent immigration enforcement actions in the area.
I'm finding I like my tooling way better when I make (Neo)Vim act more like an IDE than when I make an IDE act more like (Neo)Vim.
I know a big part of this is probably due to not having 200 chrome tabs open (yet), but the difference in battery life between my 2020 Intel MBP and this new M4 MBP is astounding.