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?
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.
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 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.
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 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.
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).
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 is a clean, attractive, and intuitive database management app for MySQL. That’s really all that needs to be said.
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?