Skip directly to content

Writer: A Blogging Theme for Developers

I'm happy to introduce Writer, a Drupal theme designed for developers who blog.

The story is quite simple. I am a front-end developer who blogs. I searched the Drupal theme repository, but I was unable to find a blogging theme designed specifically for developers. So I made one.

This theme was designed using three driving principles:

  • Brutally simple design
  • Fantastic typography
  • Support for code snippets

These principles guided me through the trade-offs and helped me make various design decisions. Let's get into the details.

Brutally simple design

Developers have different needs than other bloggers. They don't need sponsors or advertisements. They don't need dancing emoticons or pink text on a purple background. They need... well, I wasn't exactly sure what they needed. So I began asking them.

Design-wise, the answer was always "something simple." Basic. Clean. As I continued my research, I looked up the blogs of many prolific developers to see what designs they used. Lo, and behold, the pattern was the same: "something simple."

... and others like the blogs for Armin Ronacher, Brandan Lennox, Wynn Netherland, Daniel Eden, Brandon Keepers, Frank Chimero, and Geoff Greer.

After checking out those designs and being sufficiently inspired, I brought my favorite attributes from all of them into Writer. Some of those attributes were:

  • Three-tone color Palette: #F7F7F7, #888888, #292929 (There's just something nice about nearly-black on nearly-white)
  • Single column layout. Say no to sidebars.
  • The golden ratio (1:1.62) was used for font and line-height relationships.

Fantastic Typography

On a design this simple, the typography is extremely important. This theme uses three fantastic fonts:

These fonts are all hosted by Google Fonts and it's almost embarrassing how much time I put into finding and selecting them. Huge thanks to these font builders who chose to share their craft free of charge. I'm really pleased with the result.

Support for Code Snippets

If you had 4 hours to dig around through Drupal contributed modules and third party libraries, you could figure out a way to get styled code snippets on your site. But you don't have that kind of time, so Writer comes with 4 code styles out of the box. Just go to the theme's settings (at /admin/build/themes/settings/writer for Drupal 6, and /admin/appearance/settings/writer, for Drupal 7) and select the one you want.

Image showing theme settings for code snippets

This table shows what each style looks like for blocks of code (left) and for inline code (right).

Image showing examples of the four code snippet styles

You can also see the live demo here.

To invoke the style when you are blogging, wrap blocks of code in "pre" tags or wrap inline code with "code" tags.

Image showing examples of how to render styled code snippets

That's all there is to it.

A higher purpose.

There are many great Drupal developers who continue to use Garland or Bartik (the default Drupal themes) as the theme for their blog. These themes are fine but they were never designed to be used for a blog (not to mention that some would say their overuse has made them tacky). I don't blame them too much... their alternative options are often bleak. Sometimes when I browse themes at Drupal.org, I feel like I'm browsing the web in 1994.

We developers deserve better.

What does RTBC mean?

If you ever spend time in the Drupal.org issue queues, the Drupal forums, or Drupal-centric IRC chatrooms, you'll see people mentioning RTBC. But what does RTBC mean?

RTBC means "Reviewed and Tested by the Community"

Let me use an example. Lets say you have made changes to a file and you submit those changes for inclusion in Drupal in the form of a patch. That patch is uploaded through the issue comments on Drupal.org where other people can see it. This begins a process whereby people try out your patch and set the issue status as "Needs Work" whenever the patch needs more work, or "Needs Review" whenever the patch has been updated and needs to be reviewed again. If the patch is reviewed and the reviewer finds it in good working condition, then that reviewer can set the status to "Reviewed and Tested by the Community."

Other information about RTBC:

  • Anybody with a Drupal.org account can set a ticket to RTBC.
  • RTBC status should be set by the person who tests the update and finds that it passes all relevant criteria.
  • The person who updated the code should not set their own ticket status to RTBC.
  • Once an issue has the status of RTBC, somebody with 'commit access' gives it another review and, if it is good, commits it to the project.

2012 Retrospective

I really love the Google Zeitgeist videos for the spirit in which they reflect on each year (see the ones for 2010, 2011, and 2012). These are fantastic for looking back at the big events we all experienced throughout the year.

I also like to put together an annual retrospective (see the ones for 2010 and 2011) to consider the things my family and I have experienced and the ways that we have grown. Let's jump in.

2012 was amazing.

Our family grew by 33%, if you count number of people, or only by 3.5%, if you are counting biomass. We added 11,527 miles to our car and, collectively, we stepped foot in 1 Country, 1 Ocean, 8 airports and 23 States. Since last year, the number of books I read decreased by 58% but the number of blogs I subscribed to increased by 113%. I tweeted 176 times, posted 111 things on Facebook, and built 5 websites [1][2][3][4][5].

It was also the first year I:

Programmed a game
Put up a Facebook ad
Spoke on a radio show
Landed a salary
Saw a giant squid
Got a tweet from someone with 20K+ followers
Paid money for an eBook
Ran 5k at the National Mall
Ate food out of a dumpster
Met the President
Held my own garage sale
Visited San Diego, San Francisco, Portland, Boston, and Washington DC
Walked through the Redwood Forest
Bled the brake lines on our car
Was interviewed on television
Attempted to grow a Mustache (I'll spare you a link to that one)
Moved across the country
Got a smartphone
Ate octopus
Had an FBI background check
Bought a couch
Watched the US Presidential Debates
Graduated college
Had a son
Saw Marine One
Took a shower when the water couldn't get as cold as I wanted
Cleaned up after a Hurricane
Saw a Jackson Pollack
Sent out a Christmas card
Juggled three diapers in the air
Had my Gmail account compromised
Contributed to open source

Then again, Holly made an 18 pound boy, entirely from her own bodily resources… which is something I could never do. It was also the first year she:

Spent 7 hours on a plane with 2 children under 2 years old
Made a homemade apple pie without accidentally substituting salt for sugar
Took a child to the emergency room
Went inside the Washington DC Temple
Hosted Thanksgiving dinner
Was elected county delegate at republican convention
Learned self-hypnosis
Ate chicken at Joe's Crab Shack
Hit a traffic cone

What a year.

(Detailed Stats: 2011: 3 family members, 283 lbs, mileage=153629, read 12 books, total blog subscriptions=24. 2012: 4 family members, 293 lbs, mileage=165156, read 5 books, total blog subscriptions=51)

Understanding the Command Line

If you have ever watched an experienced computer person use a command line, it is mind-boggling. You instantly have no clue what is going on. They are executing commands faster than you can process what they are typing. It's gives you the impression that they are some sort of super-genius, like they could map out the human genome in their mind or memorize pi to a billion digits. It invites the thought that no normal human should be able to do this.

And yet, they are normal humans.

My circumstances forced me to learn how to navigate a command line. It's something I naively didn't expect I would need to learn. I was wrong. However, in the middle of my toiling, I had an 'Aha' moment. It was a realization. Suddenly, I got it. I understood what a command line was. It is something that is obvious to everybody who knows it, but shrouded in mystery to those who don't.

I realized that a command line was an alternative interface you could use to do everything you normally do on a computer. You can create a new folder, move files into that folder, move the folder into the trash, and empty the trash bin. You can perform a search, locate a file, navigate to the file, and open it in the program of your choice. The command line is an alternative interface to the "desktop" interface you usually use. In fact, not too long ago there was no desktop interface and the command line was the only way to operate a computer.

I know that this is like junior high computer class material, but like I said, it was an 'Aha' moment.

And suddenly, I felt a sense of understanding for people of old age, who have no idea how to operate a computer. I understood that feeling of apprehension like I was about to break something, or the confusion over what are the basic workflows of operating a computer. I felt dumb asking questions every 10 seconds… dumb for wanting a friend to double check what I was about to do, just in case it wouldn't bring the outcome I wanted.

It's a perspective I hope I don't soon forget.

(by the way, if you are also seeking to understand the command line, this is the best tutorial I've ever found on the topic)

Linchpin: Are You Indispensible?

by: 
Seth Godin
Cover for the book Linchpin
Read: 
Dec 2012
3

This book is all about how to make yourself into an indispensable employee, no matter what line of work you are in. I gotta tell you, I was so excited to read this book that perhaps I expected too much. Don't get me wrong, the book was a good read and it hammered home some solid principles (like the importance of being an artist, spending emotional energy, and overcoming the lizard brain) but it was hard to distill those principles down into concrete steps. Seth even mentions how abstract it is and then punts the responsibility, saying that only you can figure out how to apply the principles in your situation. The result was a good book that missed a good opportunity.

Pages