Oh The Huge Manatee

A blog about technology, open source, and the web... from someone who works with all three.

I’m Joining Microsoft, Because They’re Doing Open Source Right

I’m excited to announce that I’ve signed with Microsoft as a Principal Software Engineering Manager. I’m joining Microsoft because they are doing enterprise Open Source the Right Way, and I want to be a part of it. This is a sentence that I never believed I would write or say, so I want to explain.

First I have to acknowledge the history. I co-founded my first tech company just as the Halloween documents were leaked. That’s where the world learned that Microsoft considered Open Source (and Linux in particular) a threat, and was intentionally spreading FUD as a strategic counter. It was also the origin of their famous Embrace, Extend, and Extinguish strategy. The Microsoft approach to Open Source only got more aggressive from there, funneling money to SCO’s lawsuits against Linux and its users, calling OSS licensing a “cancer”, and accusing Linux of violating MS …

The 3 Skills You Need to Become a Rock Star Developer

A lot is made of so-called “rockstar developers” in any given language or framework. They have a seemingly magical knowledge of the language and API, finding obscure methods and writing best-practice code as if by instinct. I’d like to lift the curtain on this: it’s not that hard to be this kind of rock star. You can do it, too… even without a fancy computer science degree. If you know how to code in a given language, you just need 3 skills and some patience. It will take about a year of working this way to get there, but you’ll find people throwing around “the R word” sooner than you think.

1) Know how to explore the source

For most of us this c…

Why No Mainstream PHP Speakers Come to Drupalcon - and How We’re Changing That

I’ve learned something incredible as the PHP Track Chair for Drupalcon Vienna. The Drupal Association has no way to invite PHP speakers to Drupalcon.

This blew me away when I first learned about it. After all the work to bring mainstream PHP to Drupal core, after all the outreach to PHP-FIG, after all the talks Drupalists have given at major PHP conferences, how is this possible?

You see, basically every other PHP conference covers their speakers’ travel and accommodation costs. Drupalcon doesn’t, and never has. Historically it has to do with Drupalcon’s identity as a community conference, rather than a professional one. But it means the best PHP speakers never get to Drupalcon.

On one hand that’s great for our project: our speakers are all passionate volunteers! They’re specialists who care deeply about the project. On the other hand, it contributes to isolated, “stay on the island” thinking. If the only speakers we hear are Drupalists, where do we get new insights? If the only people at the BoF or code sprint table…

That Time I Resurrected My Linux MacBook Pro

In the airport last week, my laptop stopped booting.

I have a 2012 Macbook Pro – yes, that coveted “last good model” – and it runs Ubuntu Linux. It’s my roving office as I travel the world to conferences, performances, and job sites. So when I started it up at JFK airport this week and got a gray screen of death, I was a little concerned.

I tried starting into Startup Manager by holding the “Option” key. No bootable options appeared. Just an unhopeful file folder with a question mark. This was Not A Good Sign.

Generally this icon means that EFI couldn’t find a valid startup device. This is not the first time I’ve seen this – I’ve played with my boot options enough to mess this up for myself a few times! I breathed a heavy sigh and tried starting onto the…

Better PHP === Better Drupalists: The PHP Track at Drupalcon Vienna

One of the best parts of Drupal 8 is our shift to enterprise PHP coding structures. With tools like composer and Symfony’s structures like Events and Dependency Injection, Drupalists are learning to be great PHP developers, and vice-versa. Today, the fastest route to becoming a rock star Drupalist is through PHP.

I’m one of the PHP track chairs for Drupalcon Vienna, and this year our focus is better PHP === better Drupalists. How can better PHP make your life as a Drupal developer easier?

Stop Waiting for Feeds Module: How to Import RSS in Drupal 8

How do you import an RSS feed into entities with Drupal 8? In Drupal 6 and 7, you probably used the Feeds module. Feeds 7 made it easy (-ish) to click together a configuration that matches an RSS (or any XML, or CSV, or OPML, etc) source to a Drupal entity type, maps source data into Drupal fields, and runs an import with the site Cron. Where has that functionality gone in D8? I recently had to build a podcast mirror for a client that needed this functionality, and I was surprised at what I found.

Feeds module doesn’t have a stable release candidate, and it doesn’t look like one is coming any time soon. They’re still surveying people about what feeds module should even DO in D8. As the module page explains:

It’s not ready yet, but we are brainstorming…

Stay for Community

The Crellpocalypse in the Drupal world last week has shaken the entire community. This event and its handling have called our fundamental values and structures into question. We’ve had fights on social media, calls for Dries to step down, and valuable contributors stepping away from the community. I have friends on every side of the situation, but all I can think is: This seems like the perfect time for a singing, dancing, spandexed pageant about the Drupal community.

Why? For those who don’t know, I’m one of the authors of the DrupalCon Prenote, the “pre-keynote” show that kicks off DrupalCon right before Dries’ keynote. The organizer (and my officemate), Jeffrey A. “jam” McGuire and I have been living our own special version of the crisis (Read Jam’s post about taking sides on this here…

What Crell Doesn’t Want You to Know: How to Automate Letsencrypt on platform.sh

If you believe the docs and the twitters, there is no way to automate letsencrypt certificates updates on platform.sh. You have to create the certificates manually, upload them manually, and maintain them manually.

But as readers of this blog know, the docs are only the start of the story. I’ve really enjoyed working with platform.sh with one of my private clients, and I couldn’t believe that with all the flexibility – all the POWER – letsencrypt was really out of reach. I found a few attempts to script it, and one really great snippet on gitlab. But no one had ever really synthesized this stuff into an easy howto. So here we go.

1) Add some writeable directories where platform.sh CLI and letsencrypt need them.

Normally when Platform deploys your application, it puts it all in a read-only filesystem. We’re going to mount some spec…

Writing Drupal 8 Code for Drupal 7

A year ago I proposed a session for Drupalcon Mumbai and Drupalcon New Orleans, called “The best of both worlds”. It promised to show attendees how to write Drupal 8 code for Drupal 7 sites. I never ended up giving the session, but this week I got an email asking for more information. So in case it ever comes up again, here’s my own collection of resources on the subject.

The big improvement that’s hard for D7 developers to get used to is injected services. The service container module makes that possible in D7. The brilliant FabianX wrote it to make his life easier in writing render cache, and his is always a good example to follow! This module creates a service cont…