Recent Blog Posts

Poor Man's XHProf profiling of Drupal 8 Migrations and Drush commands

On a recent project, there was a Migration run that took a very long time, and I couldn't pinpoint why; there were multiple migrations, and none of the others took very long at all (usually processing at least hundreds if not thousands of nodes per minute). In Drupal 7, if you enabled the XHProf module, then you'd get a checkbox on the configuration page that would turn on profiling for all page requests and Drush commands.

In Drupal 8, the XHProf module was completely rewritten, and as a side effect, the Drush/CLI profiling functionality is not yet present (see: Profile drush/CLI with XHProf in Drupal 8).

Since I don't have the time right now to help figure out how to get things working through the official XHProf module, I decided to use a 'poor man's profiling' method to profile a Migration run:

Getting Emoji and multibyte characters on your Drupal 7 site with 7.50

Almost exactly a year ago, I wrote a blog post titled Solving the Emoji/character encoding problem in Drupal 7.

Since writing that post, Drupal 7 bugfixes and improvements have started to pick up steam as (a) many members of the community who were focused on launching Drupal 8 had time to take a breather and fix up some long-standing Drupal 7 bugs and improvements that hadn't yet been backported, and (b) there are two new D7 core maintainers. One of the patches I've been applying to many sites and hoping would get pulled into core for a long time was adding support for full UTF-8, which allows the entry of emojis, Asian symbols, and mathematical symbols that would break Drupal 7 sites running on MySQL previously.

My old blog post had a few steps that you could follow to make your Drupal 7 site 'mostly' support UTF-8, but there were some rough edges. Now that support is in core, the process for converting your existing site's database is more straightforward:

I hit inbox zero!

It's been over three years since the last time I completely drained my main inbox, and reached #inboxzero.

I've been hitting my inbox hard for the past year now, constantly fighting to get it down to < 50 emails... but every time I hit a holiday weekend, worked on a larger home project, or did something like publish a new project, the inbox would start flooding a bit more. I finally made it my goal this year to purge the emails and hit zero messages by the end of the July 4th weekend—and it worked!

Inbox Zero - July 4 2016

Here are a few things I've been doing this year to try to keep the volume down even further (ironically, the closer I've gotten to zero, the more daily emails I get—now up to about 120/day non-spam):

Raspberry Pi (or another device) suddenly not getting a DHCP address?

Tonight, after I made a couple changes to my wired in-house Gigabit network (I recently added a few Cat6 runs after moving my main Wireless router—in this case an AirPort Extreme base station), I noticed the Raspberry Pi webserver that was hosting wasn't reachable over the network, and Server started reporting an outage.

I have that particular device set using a DHCP Reservation based on it's MAC address, and it's been working like a champ for over a year. So something was strange, since I hadn't made any networking configuration changes on the Pi itself in a few months, nor had I unplugged it at all in the past month.

Speaking about Ansible Roles at AnsibleFest SF 2016

I'm excited to announce that I'll be speaking at AnsibleFest San Francisco 2016, on July 28th, giving a session titled Ansible Roles - for Fun and Profit!

Image from AnsibleFest London
Image from AnsibleFest London, earlier in the year.

AnsibleFest is the major bi-annual Ansible conference, full of case studies, sessions and announcements. I'm excited to finally be able to attend, as I've been an avid user of Ansible since 2013, even to the point of writing one of the most popular introductory books on Ansible, Ansible for DevOps.

Setup a FOSCAM WiFi camera directly connected to a Mac via Ethernet

I have two FOSCAM WiFi IP cameras set up in my house (in addition to an outdoor Arlo I use for security purposes), and generally all three of these cameras give a reliable connection and work without much intervention.

Recently, however, one of the FOSCAM cameras decided to stop connecting to the wireless network. I needed to get access to the camera via the wired interface, but I didn't want to have to bring the camera all the way to where my wired networking drops were located, because it's in a bit of an inconvenient area of the basement in the midst of some cleanup we're doing.

So I plugged the FOSCAM directly into my Mac's USB 3.0 ethernet adapter, and got blinky lights... but couldn't connect to the camera because it's wired connection is configured to use DHCP by default, and there's no Bonjour/zeroconf configuration.

To get around this and directly connect to the camera, I did the following:


Subscribe to Jeff Geerling's Blog