{ Steven Haddox's Blog }

Remote Pairing With SSH, Tmux, and Vim

| Comments

Why Would You Do This?

I’m not going to go into an in-depth lecture about Agile Development or Extreme Programming, aka XP, but I will tell you that in my new company we’ve decided to embrace some of these practices; however, one of our team members lives in a state far far away (but luckily in the same time zone). This morning was my first opportunity to pair with him and so I setup an environment to allow us to share a terminal window quickly and easily with the following process.

Setup Dependencies

This process assumes that you already have a working development environment utilizing tools like Homebrew, RVM (or equivalent), and OS X / Linux.

1. Create Your Sandbox

Before your pair can access your system you’ll need to do a few things.

  1. Create a new user on your system, I went with pair. Unless you want to share your entire home folder with your office…
  2. Enable ssh authentication
  3. Ensure that tmux is installed (brew install tmux on OS X, see the Homebrew link earlier for details)
  4. Turn on Remote Login for the pair user only under Sharing in System Preferences on your Mac (if you’re on Linux I’m sure you can handle setting up ssh key-based auth).
  5. If you haven’t yet, make sure you have your Firewall enabled on your now publicly facing Mac.
  6. Have your pair send you their id_rsa.pub and add that key to your new pair user’s ~/.ssh/authorized_keys file.
  7. Remember to append your own id_rsa.pub file to the pair user’s ~/.ssh/authorized_keys file.
  8. Disable SSH Password Authentication on your Mac (or similar with Linux)
  9. Setup your development system to have a static IP on your router.
  10. Configure your router to forward port 22 to your development system’s static IP address.

Y U NO Love Glyphish Icons?!

| Comments

Once upon a time, I came across a tweet that recommended supporting a KickStarter project called Glyphish. His goal seemed more than reasonable, a mere $500 in backing requested, and he’d create over a hundred beautiful and unique iPhone application icons for use in your own apps!

Glyphish Original Set Preview Glyphish Original Set Being Designed

What started as an amazing project has only grown into something even more epic. Joseph has been supporting Glyphish relentessly since his first project in mid-2009. Now Glyphish has an overwhelming 400 icons for the same low initial price of only $25.00! The great thing is, Joseph created the larger set of icons as another KickStarter project, even though he could have easily have marketed himself by then. I love when fellow developers and designers stick to their roots.

Glyphish Pro Set Preview Glyphish Pro Social & State Icons

I know this might read a little bit like an ad, but it’s probably because I have always been infatuated with these icons. I’ve been trying to get off my butt to make an iPhone application ever since iPhones were first jailbroken just so I could have an excuse to use Glyphish icons. I’ve been a completely lazy developer and haven’t gotten around to completing my goals, but I’ve still never regretted supporting this project from the beginning. The amount of effort that goes into these icons is visible from the time you first see them, and Joseph has never disappointed in adding even more icons with the same level of quality for about three years now. Now that I’m finally getting around to playing with creating some basic iOS applications, I’m glad I have these in my library to use anywhere I see fit!

If you don’t want to be stuck creating your own icons, struggling to convert open source icons, or paying a fortune for icons to use in your applictions (be it a web application, iOS application, or probably even Android/Blackberry/Windows app) you should pick up a set from Glyphish. This is just a no brainer for me as I honestly think I would’ve paid over $100 per set with the quality and uniqueness that Glyphish provides. As testament to that you can look at the list of companies who use Glyphish icons in their own applications:

  • Apple
  • Google
  • Twitter
  • Foursquare
  • 37signals
  • Facebook
  • WordPress

Thanks Joseph for being a designer with a keen eye and well below-reasonable prices. Keep up the amazing work!

One Last Thing!

The original set that I loved so much, is available for free these days. You’ll see it right in the left-hand column as “Glyphish Free” for your use! That’s right, you can even try out Joseph’s amazing work without having to pay. I can assure you, that once you do, you’ll be wishing you could give hime more than he’s asking for as he’s earned every penny!

Be sure to visit Glyphish’s Site to pick up these amazing icons ASAP!

Migrating to Octopress From Jekyll

| Comments

So I’ve finally gotten around to taking an interest in my blog again. I’ve been working on a logo with a designer (who’s been insanely busy) for over half a year now, but finally decided to move forward with my blog since I have a little free time. To start this transition I began by deciding that, although I love Jekyll, I need something with a little less maintenance and a little more out of the box. Say hello to, @octopress!

I’ve been wanting to migrate to Octopress for probably half a year as well, but just haven’t made the time for it. The migration has been really painless so far. The only major effort will be modifying all my old HTML WordPress posts into Markdown syntax (there has to be an automated way to do this somehow right?!) Octopress provides some awesome defaults though that I’ve been wanting to integrate or had partially integrated into my own Jekyll implementation for a while such as:

  • Semantic HTML5 theme
  • Mobile themes
  • Sidebar partials
  • Fluid layout
  • Categories
  • Archive views
  • Theming

A new competitor has recently shown up, Jekyll Bootstrap, but after looking at it for a bit I still felt like Octopress was the right choice for me! However, if you’re looking to migrate to a Jekyll type blog then I’d encourage you to look at both options to figure out which one fits your needs and styles best!

Happy hacking!

A Change in Priorities

| Comments

A new year has come upon us, and along with it a lot of people making resolutions. I’ve never been a fan of resolutions (at least as far back as high school). They’ve always seemed empty to me, just words that never find any meaning or purpose the majority of the time. Instead I’ve always been a fan of having personal goals. The majority of my life I’ve never bothered to orient my goals around the new year, but instead just worked towards them until they are completed and then re-evaluate what I wanted to do next and set new goals.

This year is not horrendously different, but the timeframe falls in line very closely with the new year so I may as well put my goals in writing today. Because just as much as I don’t believe in resolutions, I also believe that goals don’t have any real commitment if you’re not willing to put them in writing.

I spend over two hours every day commuting to work. This provides me with time to do a lot of things. One of the things I enjoy most about my drive is the opportunity to honestly evaluate myself, who I am, who I want to be, and how I’m doing at getting there. I’ll simply say that, right now, I have a long way to go. With that in mind here are my current goals, which are a pretty big shift from some of my past goals.

My Current Goals

  • Say no to “side-work”

    Side-work is a project that I take on for little extra tidbits of money for whatever reason. Often I take on side-projects just be nice and help someone at a very discounted rate (either for my portfolio I’ve never created, or just because they’re a friend, etc.) This year I’m going to focus on finishing up my last three or four side-projects within the month of January and then just say no.

  • Only accept extra work to support life-goals

    I’m not opposed to taking on projects just because I’m saying no to “side-work”; however, those projects will require being billed at a significant enough rate to put a large dent into something our family is saving towards (e.g. our new car, or a down-payment for a house, etc.) In other words, this is my commitment to stop giving out discounted work. It has been impacting my family too negatively to let it continue. I feel that my reputation and skill-set is strong enough after 10+ years of full-time web development that I don’t need to build my portfolio by offering discounted rates.

  • Spend time with my family