A Few Cool Technologies (2014-11-15)

I wanted to point out a few cool technologies that I’ve come across lately. I decided to put a date on the title, because I imagine I’ll do this fairly regularly as I come across cool stuff.

The first couple tools (Docker and OpenShift) are for both admins and developers. The last one (Code School) is more directly relevant to developers–specifically folks who are looking to learn something new.

Docker

I know I’m a little late to the game on this one, but I’ve been living primarily in the Windows ecosystem over the last year or so. I didn’t hear about Docker until Microsoft announced that they’re incorporating the platform into Azure. And it’s a smart move! Docker isn’t the only technology of its kind, but it’s the one that everyone is talking about, and it’s clearly going to get credit for being the game-changer.

I’m going to assume that you know what a virtual machine is and have some idea how useful they are. But the downside of virtual machines (VM) is that, in terms of system resource usage, they can be expensive to distribute, maintain, and use. A VM makes a lot of sense if you need to split a server into multiple virtual servers, but if you only need it to run one legacy application, it’s pretty cumbersome.

Emerging as an alternative to VMs for one-off applications (among other uses) is something called a “container,” which basically allows an application to bring its own little environment with it. One way to think about it is that a virtual machine is kind of like building a guest house on your property for a family of five to use. Other than relying on the same utilities running to the property, you won’t interact a whole lot. Docker is more like having a guest in the spare bedroom. For the most part, they’ll keep to themselves, and if they like Jif better than Skippy, they’ll bring their own peanut butter. But they’re still in the same house and sharing a lot of the same resources.

If you do development, testing, or are in charge of moving applications from one environment to another in a Linux or Windows environment, Docker should be on your radar. There’s a pretty sweet slide show here. And here’s a hands-on.

OpenShift

Akin to Docker is Red Hat’s OpenShift, which is actually going to be incorporating Docker into its next version. OpenShift is a Platform as a Service (PaaS) product like Heroku or the Google App Engine. I’m not going to go into much detail here, because I’m going to point you to a great deep dive passed along to me by Scott McCarty, a Red Hat Solutions Architect. (Yes, I drank the Kool-Aid. But so will you.)  I’m also going to let Red Hat do the talking on what PaaS is in their words.

But in short, PaaS takes a lot of the administrative work of distributing a cloud application off of your plate. Want to set up a new WordPress site to your cloud but wish you could get straight to coding or deploying existing code and bypass the infrastructure and platform setup? Well, OpenShift has something they advertise as One-Click Deployment for WordPress. And it’s pretty much as simple as it sounds. You’ll have configuration to do, of course, but you’d have to do that anyway. It’s got a growing list of software already supported, but it’s also extensible. You don’t have to wait on Red Hat to get up to speed and add Hadoop, for example. If you’ve got the chops, you can take the initiative and add it to the mix yourself.

Code School

Finally, I wanted to give a shout out to Code School. I was recently told to start getting up to speed on Angular.js, and my manager recommended a Code School tutorial. I’m used to text-based tutorials with code samples that you just kind of copy and paste, then maybe tweak to see what happens–at least when it comes to the free stuff. Code School, however, took me by surprise. These folks are producing some pretty amazing screencast content, and whether you are just getting started as a code, want to add new arrows to your quiver, or just get a better idea of what the heck CoffeeScript or Ember.js might be, I’d recommend checking out their course offering. They have everything from basic HTML and CSS to R to mobile-first web design.

Most of it is geared toward front-end web development, so if you’re trying to do bare metal programming on your Raspberry Pi, this probably isn’t for you.

The coolest thing is that after each morsel, they have challenges. Yes, it’s gamified and you can earn points for completing challenges. If you’re into that, all the better. But gamified or not, it actually forces you to apply each piece as you learn it and makes you get it right before you can proceed. Sometimes you can just copy what you saw in the video exactly, and that’s good for making sure you’re paying attention to the important parts at least. But as you progress, they throw little changes into the challenge code that wasn’t in the video, forcing you to actually think about and gain an understanding of the relationships among the different components to be able to get them working together properly.

It’s also fun. Angular.js actually has a theme song. Where else are you gonna get that with your code?

Love and kisses,

Tyler