What Employers Are Looking For in a Junior Rails Developer

I just published a post on the [Treehouse blog](http://blog.teamtreehouse.com) called What Employers Are Looking For in a Junior Rails Developer. Check it out! Or don’t. I’m not the boss of you.

Part of my job as the Ruby teacher for Treehouse is to stay on top of what employers are looking for when hiring people to fill Ruby and Rails positions. The landscape changes often but below are some of the trends that I’ve noticed. Having a willingness to learn, being able to embrace new technologies, staying motivated, and strong communication skills are important for any job. The following list focuses more on the technical side of things.


Rails 4, MySQL, and Emoji (Mysql2::Error: Incorrect string value error.)

You might think that you’re safe inserting most utf8 data in to mysql when you’ve specified that the charset is utf-8. Sadly, however, you’d be wrong. The problem is that the utf8 character set takes up 3 bytes when stored in a VARCHAR column. Emoji characters, on the other hand, take up 4 bytes.

The solution is in 2 parts:

Change the encoding of your table and fields:

ALTER TABLE `[table]` 
MODIFY [column] VARCHAR(250)
    CHARACTER SET utf8mb4 COLLATE utf8mb4_bin

Tell the mysql2 adapter about it:

  adapter: mysql2
  database: db
  encoding: utf8mb4
  collation: utf8mb4_unicode_ci

Hope this helps someone!

Installing Ruby, Rails, and MySQL on Mac OS X Lion

This is a quick heads-up! I have a blog post up on the Think Vitamin blog on installing Ruby, Rails, and MySQL on Mac OS X Lion. The instructions will also work on Snow Leopard (sorry Leopard users) and it walks through setting up gcc, homebrew, git, and mysql. It also uses RVM to install the latest release of Ruby. Check it out.

db Bistro Burger Review

Buger at Bistro Moderne.png

Taking a small break break from normal ruby and programming related posts, I reviewed what’s widely regarded as one of the best burgers in New York over on my friend’s Orlando food blog. Spoiler: it was really good (if the picture doesn’t do it justice, that is) but maybe not the best burger ever. Check it out for the full review.

CoffeeScript and Rails 3

After all of the debate with the news that CoffeeScript will be bundled in Rails 3.1, I made a new site: http://doihavetousecoffeescriptinrails.com/.

If you’re looking for a real article on the subject, Peter Cooper has a great post on Ruby Inside summarizing Rails 3.1, CoffeeScript, jQuery, and SASS.

Employee Scheduling Software

I’ve been working on this for a while and finally think it’s good enough to release to the world. You can now sign up for my employee scheduling software. Scheduling is employee scheduling software that lets you manage your work schedules quickly and easily. It’s best suited for businesses that have employees that work something other than the typical 9-5 shifts such as restaurants, offices, etc.

Employee Scheduling

If you make schedules, Scheduling allows you to easily make a schedule, remember requests for time off, post the schedule for employees, and more.

If you’re an employee, Scheduling allows you to easily request time off, communicate with the rest of your office via the wall, and quickly and easily see when you work.

Tech wise, it’s written using Rails 3, resque, Apache, and passenger. There are a lot of places I’d like to take this software and look forward to maintaining the app and adding more features. I’ll also do some technical posts later about getting everything working.

So check out the app, tell your friends, and let me know what you think!

Automatically updating your IP with DNSimple


I’ve been using DNSimple for most a lot of my domain hosting lately. It’s a great service and I highly recommend checking them out for domain hosting. Recently I went out of town but wanted some way to be able to SSH home if I needed to. Luckily, DNSimple has a nice REST API that lets me update records easily. I created a "home" record for one of my domains and created a script to auto update:

IP="`curl http://icanhazip.com/"
curl -H "Accept: application/json" \
     --basic -u "$LOGIN:$PASSWORD" \
     -H "Content-Type: application/json" \
     -i -X PUT https://DNSimple.com/domains/$DOMAIN_ID/records/$RECORD_ID.json \
     -d {"record":{"content":"$IP"}}

It uses the awesome new jsonip service to grab your ip. It then does a quick sed parsing on that output to grab just your ip. Finally it does a put to the record in DNSimple updating it with the new information. You must have already created a record and domain in order for this to work. I saved this script as dnsimple_update.sh in my ~/bin directory.

Fill in your login and password credentials (or set some environment variables) and domain and record ids and you’re good to go. You can get your domain and record ids by hovering over the edit link in the advanced editor in DNSimple for the record you want and copying and pasting the domain and record ids.

Finally, I set it to run as a cronjob every 15 minutes:

# m h  dom mon dow   command
*/15 * * * * /home/my_user/bin/DNSimple_update.sh

This worked out very well and with some port forwarding on my home router I was able to ssh in to my home machines without any problems.

Update: Kristopher Murata gave a correction to the script in the comments since jsonip changed their format. Twice!! Thanks, Kris!

On The Internet


I launched a new podcast! On The Internet is a quick snippet of the latest news from the tech industry. It’s like Weekend Update from Saturday Night Live but for Tech news. I hope you enjoy it and find it funny.