Introduction: Beneath the Hood of My New Blog

Oh, hello there. I’m Ryan Benhase. Welcome to my new blog.

I say “new” not only because this is my first post, but also because I’ve had blog before, where I’d previously written about everything from astrophysics to politics, philosophy to short stories— basically anything that interested me. That all ended several months ago when I realized I just didn’t have the time to continue writing on these topics, and that even though there was a small audience interested in what I had to say, there wasn’t any real benefit to society. I wasn’t an expert on the topics I wrote about, after all; I was just an average guy (and aspiring Renaissance man) looking to share his two cents with the world. In truth, my old blog was scarcely more than a time-consuming exercise in vanity, and perhaps— at times— a creative outlet. So, poof! There went the old RyanBenhase.com.

Why The Return to the Blogosphere?

I may be far from an expert in astrophysics, but one field where I am sort of an expert is web development. I’ve been hacking around with HTML code since I was in middle school (back when <blink> tags and scrolling marquees, sadly, all-but-dominated the web), and I’m now professionally employed as a web and systems developer at a digital marketing agency; I’ve also worked as a freelancer, owned my own business, and made plenty of mistakes along the way (but nevertheless survived to tell the tale).

Many developers (myself included) enjoy contributing to open-source projects by developing/reviewing code or writing documentation in their spare time, but I’ve always had a passion for writing and for helping others learn new things. My hope is that this blog will become more than a creative outlet; I’d love for it to be a resource for other developers, both experienced and new, to turn to for ideas, inspiration, helpful code snippets, and advice.

But what sort of things, specifically, will this blog cover? Well, a good place to start would be by discussing the various technologies powering this blog itself, most of which will probably come up often in future posts. These certainly aren’t the only approaches you can take, of course, but at least for me, it’s been a winning combination.

So What’s Powering My New Blog?

HTML5

This is sort of a given, and it probably doesn’t require much explanation (although I’m bound to write more about the HTML5 spec in the future). Simply put, HTML is a markup language which provides the structure or backbone of a website.

CSS3

This is another given, as CSS (cascading style sheets) is what controls the look and feel of a website, from colors and fonts to more advanced features like rounded corners, gradients, box shadows, and transitions. I’m sure I’ll be writing on this extensively.

PHP

PHP is a versatile, open-source server-side language. It’s well-documented and easy for beginners to learn on their own, which can be both good and bad (many amateur PHP developers know just enough to be dangerous). I do know some other languages (Ruby, Python, Java, etc.), but I use PHP every day, and thus, I’ll be covering it a lot on this blog.

JavaScript / jQuery

Almost every website you visit relies on JavaScript, a dynamic programming language which can be used either client-side (in your browser) or server-side. In this case, I’m relying completely on client-side JS, although I may blog about server-side environments like Node.js in the future. Along with this, I make frequent use of the jQuery library, which can significantly speed up development time and make your code easier to follow (although it isn’t always necessary and may sometimes be overkill).

MySQL

MySQL is a database server; a database generally stores things like a website’s content or user data and supplies it where it’s needed. There are a number of other excellent database options out there (PostgreSQL, MariaDB, NoSQL solutions like MongoDB, etc.), but MySQL is the most popular open source database, and it’s the one used by my content management system of choice, which happens to be…

WordPress

WordPress is the world’s most popular content management system, and it’s 100% free, open-source software. I’ve used other good CMSes in the past (e.g. Drupal), but WordPress has gradually become my favorite to use on an everyday basis, and I have quite a bit of experience with it. Developing themes and plugins for WordPress is quite easy to learn, and WordPress comes with an extensive developer reference which can help you get started; suffice it to say that I’ll be writing about it a lot here.

WPEngine

Every website needs to be hosted somewhere, and there are lots of great solutions (and some not-so-great ones) out there. I’m admittedly not usually a fan of shared hosting (even though it’s cheap), and I’ve gone for virtual private servers (VPS) in the past from providers like Linode. That said, WPEngine is a fully-managed WordPress hosting solution which takes most of the pain out of managing your own web server, and they do a great job overall. It’s quite nice not to have to worry about, say, keeping Linux up-to-date or making sure my backup snapshots are working; it’s best to leave that to experts who make it their full-time job.

Apache / nginx

WPEngine uses a combination of Apache and nginx to host their sites; I usually develop my sites locally on Apache alone. I’ll be sharing more about how I manage all of that, from setting up virtual hosts to configuring your server in your httpd.conf file.

Responsive WordPress Theme

This site is responsive, which basically just means it fits any screen size and still looks nice (removing the need to develop a separate mobile site). There are some nice responsive frameworks out there (i.e. Bootstrap, Foundation, etc.), but since this is a simple blog, I’ve opted to keep things as lightweight as possible. In the past, I have used Eddie Machado’s Bones starter theme to get things up and running quickly and efficiently, but in this case, I opted to begin with Underscores, which is even more stripped-down.

Sass / SCSS

Baked-into this theme is a CSS extension language (also referred to as a CSS preprocessor or a dynamic stylesheet language) called Sass (Synatically Awesome Style Sheets), which I can’t recommend enough. It speeds up your development time quite significantly, keeps your style directives much more organized, and allows you to do some pretty nifty things which can’t be done in plain CSS (variables, nested style directives, mixins, inheritance, math, etc.) Best of all, it compiles into plain-old CSS, and the SCSS syntax I use is 100% compatible with CSS (meaning that a regular .css stylesheet is already valid SCSS). I’ll definitely be covering this (and releasing some useful samples) down the road.

Additional Tools Used

Git Push Deployments

I use Git for version control, and I don’t know how I’d live without it. I’ll be singing its praises on this site before very long, but it’s worth noting that WPEngine offers a service for using Git to actually deploy your site straight from your local development copy to either your staging server or production environment (or both!). All it takes is a simple Git Push command, made easy by the command line interface or a nice GUI (I often use SourceTree).

CodeKit

CodeKit is a dream to work with, as it can compile my Sass, minify my Javascripts, and (thanks to built-in Bower) install thousands of components with ease. Oh, and it automatically refreshes my browser window when I make a change to a project, which is surprisingly nice. You’ll need to have a Mac to use it, and it’s currently selling for $32, but it’s definitely worth that price (and possibly even the price of buying a new Mac).

Coda

There are a number of decent IDEs out there, but Coda (again, Mac software) is just what I need for most projects; lightweight and easy on the eyes. I rarely fire up NetBeans or Zend Studio anymore, and if I just need a simple text editor (e.g. editing for a config file), I’ll use TextWrangler.

Sequel Pro

Sequel Pro is a clean, attractive, and intuitive database management app for MySQL. That’s really all that needs to be said.

VirtualBox

I use VirtualBox whenever I need to fire up a virtual machine to, say, test a website in Internet Explorer. You may prefer Parallels or VMWare, but the nice thing about VirtualBox is that it’s free.

ImageOptim

I hesitated to include this in the list, but it’s become such a regular part of my workflow that I figured I should. ImageOptim is another Mac app which quite useful for optimizing photos and other images for the web. Seriously, have mercy on your users and shrink those file sizes.

This is Just the Beginning…

Okay, so if you’ve made it this far down the page and you’re still reading, congratulations! You either have an incredible attention span or a heckuva lot of perseverance. Anyway, while this list is rather long, it really only scratches the surface of what I’ll be covering on this blog… but you have to start somewhere, right?

Keep checking back in for updates, or if you’d like, you can subscribe to my feed or subscribe to email updates.

Happy coding!