A custom instrument for a one-of-a-kind festival
I built an instrument/art installation for the best music + art festival around
I built an instrument/art installation for the best music + art festival around
I made a crazy display and the internet loved it.
The world's most impractical 1000-pixel display and anyone in the world can draw on it
Inspired by my friend Zuzana and her #30in30 experiment , I decided to make a photograph each day for 30 days. I found it very challenging! I'd fight to come up with one good image, post it at the end of the day, and then wake up and have to do it again the next day. Some were easy - I'd notice some good light, grab a few photos, done. Other days were a grind - walking or driving around looking…
Yet again, Joe provided the spark: I immediately knew I needed to build an app to let internet friends guess your height and find out just how much they were under- or over-estimating how tall you are. Justin Jackson's a great example : he gives off 6'1" energy (to me, anyhow) but he's actually 5'8". And I've seen him in person and I still thought he was taller! I have some experience building…
My buddy Chris Morrell was kind enough to have me on his extremely chill podcast, Over Engineered , to talk about my Pair-amid Scheme . We nerded out over making - Chris has an obsession with sewing pants, and I shared my Kilopixel project. I honestly didn't know this was going to be a video podcast, so...let me know if I did anything embarrassing. Give it a listen !
On my absurd podcast Cheese & Weather we covered a topic Jason Beggs has been requesting: what do we think of this soup that has been continuously simmering for 45 years ? Since that article was written in 2019 it's actually a 50 year old soup! I'll let you listen to the podcast to hear our take, but I was wondering: is there a single molecule of the soup that went into the pot in 1974? That's…
I was honored to chat with my friend Matt Stauffer on his new podcast, The Business of Laravel . We chatted about building a large wholesale platform on the TALL stack, building a team of happy and productive developers, effectively managing a remote team, and of course, my Pair-amid Scheme . Give it a listen! Thanks for having me, Matt!
I recorded my first tip video for the good people at Laravel News . Enjoy! There are a LOT of weird time zones in PHP Some favorites in America : eight in Indiana, three in North Dakota, twelve in Argentina, but I'm partial to America/Chicago. They come from timelib , which uses tz maintained by the Internet Assigned Numbers Authority . And honestly? tz is a pretty fascinating Git repo. Read this…
Take a chance on an internet stranger and see what happens
Laravel Herd is a fantastic application from the Germans wizards at Beyondco.de that makes it so easy to run PHP applications on your Mac or Windows machine. They offer a paid Pro version that provides MySQL, Meilisearch full text search, Redis, and more. I've been running those with Homebrew , and I wanted to consolidate my tooling. How to migrate from Homebrew MySQL to Laravel Herd Pro 1…
Laravel v10.44 just shipped with a new approach to global scopes: #[ScopedBy] . Using my codebase as an example: Products have a global scope that hides them if their Company is not visible. 1 <?php 2 3 namespace App\Models ; 4 5 use App\Models\Scopes\ CompanyVisibility ; 6 use Illuminate\Database\Eloquent\Attributes\ ScopedBy ; 7 8 #[ScopedBy([ CompanyVisibility ::class ])] 9 class Product 10 {…
I was just helping someone set up a hyper key and was surprised at how confusing most of the guides were. So here's my very simple version! Wait a sec, what's a hyper key? A hyper key is mapping a single key to <shift> + <control> + <option> + <command> so when you push that single key, you're really getting all of the modifier keys at once. It's useful for setting up global keyboard shortcuts…
I run a large marketplace application that has a Shopify sales channel application. Our users can connect this Shopify application to synchronize product data from their Shopify shops into our application, and to do that, we register webhooks via the Shopify API. Shopify uses webhooks to notify your application when an interesting event happens in a connected shop - for example, a new order, a…
I'm located in Wisconsin, where we typically have harsh winters - in January our average daily low is 15 °F (-15 °C) and our average daily high is 23 °F (-5 °C). I have a single car garage wood shop, and it's not easy or cheap to heat it, so I was intrigued when I learned about passive solar heaters. The idea is simple: you build a dark box that absorbs the sun and warms the air inside, which is…
Let's mash up two concepts: automated tests and disk defragmentation. MS-DOS 6.x included a defrag utility that honestly was just so satisfying to watch . The 90s were a different time, folks. Disk defragmentation took about an hour and physically rearranged the data on your hard drive so it was more efficient to read off the disk. When coding, we spend a lot of time looking at test output, and it…
This is the easiest backup solution I've found! I'm backing up production servers to specific S3 buckets using Restic . Create a new S3 bucket Log in to your S3 console and create a new bucket. You'll want to give it a sensible name - I like something like benholmen.server-name.backup - and be sure that you don't enable public access. Create AWS credentials You'll want to create some credentials…
Update July 2025 : you can now experiment with the Kilopixel and submit art to be drawn! Please, submit anything and everything at kilopx.com . A few years ago I had an idea to build a large, inefficient display with a web interface that anyone could interact with. I've noticed Danny Rozin's unconvenional mirrors over the years and then saw a 24 frames per hour movie player that got me thinking…
I had a very shower-y shower thought: why does turning my shower handle a tiny bit make such a huge difference in the comfort of the shower? Why are we wasting so much potential control area on water temperatures that no one wants? Who cares about ice cold, mildly cold, cold, or lukewarm water - that entire section of the control is wasted. I propose a more refined and humane control strategy.…
My nephew was graduating from high school and my sister in law asked me if I could recreate a sentimental cribbage board for him. She couldn't find anything quite like it, so a custom build was necessary. I love cribbage and I needed an excuse to get into the shop, so I said yes! Reference materials I never held the original cribbage board in my hands - just saw it in photos with a ruler for…
When you have a chance to work with some of the best developers in the Laravel ecosystem, you take it. And take it I did - my company hired Tighten to help get Hubventory off the ground and get a solid development team running. I was glad to chat with my friends Dave and Zuzana about working with Tighten on the project: Update: it turns out our silly cheese curd intro was the most popular part of…
lsyncd runs a daemon to watch your filesystem for changes, and when a change occurs, copy files to another location. This can be a different location on the same server or an entirely different location. I used it to sync a Wordpress installation from one server to another behind a load balancer, so uploading files or upgrading plugins on the primary server would immediately synchronize the…
I just set up Laravel Horizon to manage our queue in a multi-server environment. The documentation is a little thin in this area but the ultimate solution is pretty simple. Our environment We have a load balancer, two web servers, a database server, and a queue server. The database server runs Redis and the web servers and queue server are all configured to connect to it. We only want to process…
Here's how I set up a load balanced environment on Laravel Forge and deployed with Envoyer. What the heck are Forge and Envoyer? Forge is a service run by the Laravel crew that provisions and configures servers. They don't run the actual servers - you'll pay Amazon or DigitalOcean for that - but they provide a management layer that makes your life easy. You can host Laravel projects, general PHP…
I've recently become interested in creating timelapses with my Canon 20D DSLR and have discovered a workflow that uses all free and/or open source software to take your digital photo sequence and turn it into a timelapse video. Let's start with the camera. I'm using my 20D and I purchased an intervalometer from Amazon that allows me to shoot at virtually any interval and not have to haul my laptop…
This took up a good chunk of my afternoon. I have a client who wants to upload JPEG images to his website and have them automatically resized and watermarked with copyright information to discourage image theft. Resizing is a piece of cake --- I've done that before --- but getting the alpha transparency of a 24-bit PNG to overlay correctly was maddening. It turns out that the solution is actually…