I've been using Claude Code for many things lately such as coding, writing technical plans, drafting copy for review, analyzing harebrained financial scenarios, and summarizing articles that were probably written by AI. While sometimes Claude is writing commit messages for the work it's doing, I still, gasp , write code manually from time-to-time, and outside of my day job I'm not the best at…
Edit: Hello! I've decided to sunset the JobsByReferral.com project (which might have redirected you here). It was super fun while it lasted, but wasn't free to operate! Throughout June 2025, several of my developer friends had been laid off. We were discussing the state of the job market in tech (which is... Not Great, Bob), and were collectively surprised to find that searching for jobs on…
For side hustles in particular, this is what I want: I write up a GH issue in detail , including links to lines, files, and all the context needed for implementation. I can add images in the GH issue that will be used in the implementation (ie., to put onto a website). I give it a budget : "Max budget: $10.00" to keep scope manageable. Claude Code won't accept the issue if there's no budget…
Bit of a mouthful there but just look at the difference between Safari and Chrome rendering a page with a variable font. Chrome: Safari: At some point in the past, we used to be able to fix this with: -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; But, this no longer seems to have an effect. I landed on this Stack Overflow answer and indeed that fixes the issue: Safari…
In hindsight, this feels pretty obvious. But, I spent 20 minutes trying to track down why exactly a page wasn't pre-rendering like I had expected it to. I have some code in one of my pages that throws an error page if you're requesting the page from any IP other than our home IP (this is for a household info screen): const header = headers(); const ip = header.get('x-forwarded-for'); if…
Feeling inspired to start blogging again ✨. I recently started using an RSS reader again after a failed attempt at building our own . Landed on NetNewsWire and it really is quite lovely. Also easy to tinker with if you're into learning some macOS dev / Swift ( GitHub ). This blog itself isn't open source because it's running on our website platform that we've developed for FLX Websites (which I…
What is this post? This post identifies a growing technical challenge that some companies might experience after working with a large monolith (such as Rails or Django) that is tightly coupled to a front-end application (JavaScript). I'll provide an overview of the problems you might be facing today, and what those problems might lead to. I'll cover the major pieces of the back-end-to-front-end…
Note: this post originally appeared on the Localytics Engineering Blog here . AWS Lambda is an on-demand computation service that allows you to write code that responds to events, and can be executed at scale within the AWS ecosystem. It has some unique benefits that make working with it particularly desirable. It's cost-effective, scalable, and presents an alternative to spinning up heavy servers…
I use Supervisor on all of my servers to handle the running of non-daemonized processes, such as Gunicorn processes for Django apps. The truth is, though, that Supervisor is also a damn-awesome tool for local process management in OS X. Here are a few of the things I'm letting Supervisor handle: Running a Node app on port 80. Running nginx on port 80. Running a watched test-suite for a Node app.…
Recently I had the pleasure of upgrading from Django 1.4 to Django 1.5 . They've introduced some awesome new stuff like beefier timezone support and a configurable User model . However, there are some backwards-incompatible things you'll need to tend to. Django settings I ran into an issue with some app complaining about not being able to work with naive timezones. You'll need to add this to your…
For my latest project, Auto Swatch , I needed a process management system to handle the availability of critical services, like nginx, memcached, PostgreSQL, and the application's Gunicorn processes. We use Supervisor at Dwaiter , so this was my natural choice. "Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems."…
Earlier this week the Lion Burger crew ( @lionburger ) attended An Event Apart Boston 2009 ( @aneventapart ). The speaker lineup was outstanding, and their presentations did not disappoint. When Pete and I first arrived in Boston (me from Rochester, him from Acton, MA), we started talking about trying to build something that might make a splash at the event. We knew these conferences get a lot of…
Twenty-four hours ago, I was deploying applications from development to production environments in about 5-6 steps. Today, tomorrow and every day in the future, I'm doing it in 1 step, with Fabric . Fabric is: ...a simple pythonic remote deployment tool. It is designed to upload files to, and run shell commands on, a number of servers in parallel or serially. These commands are grouped in tasks…
We use Zope related software throughout our day at GateHouse Media. Specifically, we run a hosted solution, Zope4Media provided by Zope Corporation . Our level of involvement with the software on the development end of things is strictly limited to template development in ZPT . We also build a lot of other generic web applications separate from our Zope4Media installations. Naturally, it makes…
There's a growing concern of mine revolving around the desire to use JavaScript in conjunction with, or in replacement of, XHTML-based navigation on websites. There are a lot of resources out there investigating the use of JavaScript with regards to search engine performance, web accessibility , and web interoperability . I'm going to try and summarize my thoughts here, and establish general…
When I first set out to install Django on my Media Temple server running under mod_python, I ran into a few gotchas. Luckily, there are lots of people who've tried the same thing and were successful. Unfortunately, however, those tutorials and discussions are scattered all over the place, and there really is no definitive guide to installing Django on a (mt) Media Temple DV . Thus, I'll attempt to…
Customizing your Drupal user profile page is easier than you'd think. There are really only two steps: Create any custom profile fields Customize the output of the profile page Creating custom profile fields The first thing you'll need to do before you can begin adding custom profile fields is to enable the core module 'Profile'. This module is shipped with every Drupal installation. Simply head…
As some of you may or may not know, I'm completely redesigning my blog. Actually, this is the first time I've had time to design my blog in the first place. Anyhow, one of my major requirements for the new design is excellent code syntax highlighting support. Since I'm finally eating my own dog food and switching to Drupal , I'm using the Geshi filter module for syntax highlighting support. The…
Drupal is an excellent content management system. It provides far more than just content management. It provides well thought out and time-tested functionality for user management, security, page caching, and the ability to easily extend your Drupal website with custom code (along with many, many other features). Drupal, however, does not design your website. So, why do most Drupal themes look…
Using 'Primary links' for your Drupal site's main navigation menu is a great idea. However, most themes by default display primary links in such a way that if the menu has sub-child menus, they will not be displayed. Fortunately, the solution is much easier that you'd think. First off, the way that most themes generate primary links is like so: <? theme('links', $primary_links); As mentioned, this…
So we have some websites. A lot of websites . About 394 from last count. They're all newspaper sites, they all want blogs, and we want them to be using Drupal for their blog platform. Unfortunately, they're all hosted on a content management system that isn't really meant to be a robust blogging platform. So we had a predicament on our hands. How do we clone 300+ websites into Drupal sites? The…
There has been a boatload of discussion amongst the Drupal community regarding best practices for managing developement, staging and production environments with a Drupal codebase . The reason this is usually a sore subject for many Drupalers lies in Drupal's heavily database dependent site configuration and management. Thus, it becomes more difficult to manage Drupal sites across different…
One thing that always bothered the crap out of me about OS X was their implementation of 'Terminal'. Staring at a black box with only white text is quite unnerving. I'm not sure how their seemingly graphically-inclined designers at Apple could handle it. Anyways, there's fortunately an easy solution to this ginormous problem. There's an excellent tutorial that runs through the process of…
So now that I'm dipping into Drupal module development a bit, I ran into some 'roadblocks' that were fairly difficult to discover via default Drupal documentation. The first thing you should do if you're starting your first Drupal 6 module, is follow along with Drupal.org's Module Development Guide for Drupal 6 . That will step you through everything you'll need to know to write your first module.…
Please note: this tutorial was written for Drupal 5. Continuing from Part I and Part II in our 'From HTML mockup to a full Drupal site: a tutorial' series, this final part will focus on integrating our finished HTML / CSS mockup into our now final Drupal site. As I mentioned before, I'm omitting quite a bit of advanced (and some not-so-advanced) theming practices, intentionally. What were focusing…
Continuing on from Part I: Introduction and Installation . So we've got the makings of a site now. Let's build the site out to the client's content mockup and requirements spec. We'll build the navigation, add all of the content, build the content type for news and setup the appropriate views. After we're done with all of that, we'll focus on integrating our BeeEss theme with our new Drupal site…
So you've mocked up your latest client's site design in Photoshop, polished it all up, and coded it in XHTML and CSS. Now what? How will your client manage all of the content on the site? You surely don't want them calling you every 5 minutes with changes, now, do you? Well, fortunately, you don't have to be a programmer (any more) to implement a simple and easy-to-use content management system…
So we at GateHouse Media are quickly pushing developers within the organization to learn and master Drupal for many of our smaller, one-off projects. While chatting with Brandon Belew a few minutes ago, it became apparent that manually downloading and installing Drupal and many contributed modules can be quite cumbersome. After reading the Pro Drupal Development book, and becoming a recent…
So my intentions for this blog post are not to gloat about how 'uber cool' Mac's OS X is, or why everyone on PC should switch. We've seen far too many people do just that, so instead, I'll focus on my thoughts over the past couple months, during which I've completely migrated from Windows XP to OS X. Whenever you search for 'reasons to switch to mac', you'll see lots of blog posts and articles…