I am a Ruby on Rails consultant in Nashville

615-852-6559 or josh@joshcrews.com


Services

  • Business solutions

    Do you run a business with a pain point that custom software can solve? Do you have a sales or product opportunity that a web application help you with? I have years of experience in sales and accounting (and software development) that can help you reach that goal.

  • Ruby consulting

    For businesses who need a senior developer to come on board for 2 - 8 weeks

  • Save my Ruby Project

    For people who have an existing Ruby software project that’s lost development momentum and needs to get finished or revitalized.

  • Startup consulting

    Strategy and technical expertise to navigate the technology options and get your product out there quickly and on-budget.

  • Rapid Prototyping

    For when you alpha version of an idea fast to demo investors and potential customers. I can build you a prototype of your idea in a few days.

  • Rails mentoring

    For people learning Ruby on Rails who’d like guidance.


Case Studies

MogoWorkbook

HelloMogo is a creative agency that builds online publishing tools for publishers and churches. They wanted to build a new interactive ebook platform that would allow content creators to build their own interactive ebooks.

MogoWorkbook is the platform we built with me as the Ruby on Rails consultant. You can see one of the storefronts at DCC Interactive

I did not do the graphic design, which was done by Dwayne at HelloMogo.

The Skillery

The Skillery is a online marketplace for offline classes and workshops. Anyone can signup to teach a class on a topic they know and start selling tickets.

Matt bootstrapped the site by manually listing the first classes (which was a great idea and got him started and online quickly). He approached me about creating a self-registering site with ticketing management and The Skillery 2.0 was born!

I did not do the design (which is great) for the site, Matt sourced that directly working with a local designer.

Foalio

Foalio is a graphic designer’s portfolio and job board site–kinda like Dribbble.

Scott Anderson had already refined his startup idea into a beaufiful static site. I was able to come along and build the backend for Foalio in Rails so that it came alive and launched to the public.

I did not do the design for the site, Scott did.

Musikpitch

Musikpitch is 99designs (crowdsourced / competition model) for getting custom music and jingles

Scott McInstosh had the idea and quickly raised some seed capital to turn it into a business. I build the backend in Rails, and we were able to take Musikpitch from idea to launch in 3 months.

I did not do the design myself. Scott and I worked together running a design contest.

Testimonials

Testimonial: Matt Dudley of The Skillery

Hi, my name is Matt Dudley. I am the founder of the Skillery. I have worked with Josh for several months now. He’s been great to work with.

He was on time and on budget. He was clear about what to expect before we go into the project. And it has been everything he said it would be.

One of the things I really appreciate about Josh is the way he helps me think through the features I want to add to understand if it really servers the business goals that I’ve communicated with him. He is really fantastic about helping me talk though that.

Testimonial: Scott McIntosh of Musikpitch

Hi I’m Scott McIntosh, Nashville-based entrepreneur in the music business.I’ve worked with Josh on a couple projects: StartMySong.com (he did an amazing job) and most recently on Musikpitch.com. I like working with Josh because he’s extremely creative, he’s very quick with his turn around.

It’s not a hold hand scenario at all, I can sit down with Josh and start giving him my ideas. He gets the ideas right away, immediately starts thinking about the tools he can use to make those ideas possible, and then move forward with putting together the project with the quickest turnaround I’ve ever seen.

From discussing with my fellow entrepreneurs, Josh is probably one of the best developers in Nashville. We all believe that he has magic powers.


Working Together and My Process


Pricing

$150 / hour
or
$1,000 / day
or
Flat bid your project
(I can usually give you a price at your first meeting)

Blog Highlights

How I Lost 32 Pounds

I recently just hit a goal I made to lose 32 pounds in 16 weeks. I am so excited!

I wanted to share how I did it because I’ve tried and failed many times to lose weight but these steps worked for me.

The Basics

  1. Set a reward prize for hitting your goal
  2. Write down your weight every day
  3. Limit the hours that you can eat

Set a goal and a reward prize

The prize

This was the most effective part of the plan.

I set a reward that my family would go to Disney World for a week if I could lose 32 pounds.

A trip to Disney World at this point in my life was the most motivation prize I could imagine.

How to select a weight loss prize

Select a reward prize so motivating that the thought of skipping meals and feeling hungry feels like a light exchange in order to win your prize.

That’s the kind of prize you’ll need to get you through the tough days losing weight.

How to fund a reward prize

DO NOT borrow money for a reward prize. Debt isn’t worth it.

Here’s some ideas on how to fund a motivating reward prize

1. Choose something that doesn’t cost money, or very little money

This might be something you’ve always wanted from your spouse.

Examples are

  1. They agree to put the kids to bed for a year
  2. They agree to stop smoking
  3. They agree to a weekly date night for 6 months

Or a free prize might be permission from yourself to do something you feel too scared to normally do.

Examples are

  1. Quitting a job you hate
  2. Moving to a new place
  3. Creating a startup company or non-profit

2. Find a sponsor of your weight loss challenge

Maybe your parents or in-laws would pay for all or part of your reward. Maybe your employer– fat people cost the health insurance plan more.

3. Consider funding it yourself as an investment

Here’s something I did: run a life insurance quote on yourself at your current weight, and then at your goal weight.

My “fat” quote was 50% more than the “skinny” quote. For me that was thousands of dollars just in life insurance savings.

The life insurance quote difference shows just one financial difference losing weight makes on your long term health.

Being overweight and obese lowers life expectancy and greatly increases what you can expect to spend on healthcare over your lifetime. Obesity increase your chances for cancer, diabetes and heart disease.

You should consider funding your reward trip as a lifetime investment in yourself.

You’ll also

  1. Feel better every day
  2. Think more clearly
  3. Have more energy for your work and family
  4. Spend less on food

So if you have savings or investments consider funding your own reward.

You’ll only have to spend the money if you actually lose the weight. If you don’t hit your goal, you’ll still have lost some weight and have spent nothing.

Do not borrow money to do this. Debt is not worth it.

The goal

Set whatever weight loss goal you want, given that the goal is a healthy weight for you and the goal is doable.

Healthy weight for you

If you need help picking a goal, I recommend getting your Body Mass Index (BMI) to 25. A 25 BMI is the normal weight / overweight border for the CDC, Center for Disease Control.

To calculate your present BMI the formula is

1
(Weight (lbs) / (Height (in) squared)) * 703

Here’s mine with the numbers filled in:

1
(186 / (70 squared)) * 703 = 26.68 BMI

If that’s confusing, just google “BMI calculator” and punch in your numbers.

Then play around with the weight number until you get it to BMI 25 and make that your goal.

This is just one suggestion, pick whatever goal you feel is wise.

Doable goal

I planned to lose 2 pounds per week, and did it, but I think that was a little too fast. If I were to do it again, I would choose 1.5 pounds per week.

I would not plan to lose more than 2 pounds per week. I bet you’ll either fail or succeed and crash.

Write down your weight every day

To follow my plan, you must write down your weight every day.

Stephie and I lost weight together and wrote it down on a piece of paper taped to the kitchen wall.

I also updated our weight online so that friends and family could track our progress and we’d have more accountability. I made the site myself, fatgrapher.com

I would also encourage you to keep writing down your weight, even if you fall behind and don’t hit your goal.

In order to change something, you need to be measuring it. So even if you are failing to lose weight, step one is to measure your weight everyday. So keep this discipline even if you are not succeeding in weight loss at the moment.

Limit the hours that you can eat

This diet is different in that it does not care

  1. What foods you can/can’t eat
  2. How much food you eat
  3. Recording the food you eat
  4. How much you exercise

This diet works on “time-boxing” the hours available in the day for you to eat.

The 8-hour eating window

Start the diet by picking an 8-hour window you can eat each day.

If you like breakfast, you may like 7am - 3pm. If you like dinner, you may like 11am - 7pm.

Which 8-hours doesn’t matter.

It doesn’t matter if you need to adapt the 8-hour window to meet different day’s needs.

Weeks into your diet, feel free to tighten the 8-hour window down in order to stay on track to hit your goal.

For me the 8-hour rule was uncomfortable, but after I got used to it I shrunk it to 7 and 6 hour windows to keep losing 2 pounds per week.

Why does the 8-hour diet work?

Two links:

  1. The Fast Diet website and The Fast Diet book on Amazon This book has a lot of the great studies on “intermittent fasting” to explain why short fasts are great for your health.

  2. Dr. Mercola on intermittent fasting

Fasting helps stabilize your blood sugar / insulin levels and brings your feeding/grazing urges under control.

In the 8-hour eating window, there’s 16 hours of not eating each day which gives you the benefits of fasting without the risks of longer fasts.

An 8 hour eating window will also reduce your daily calorie intake compared to not having an eating window.

For me having an eating window as my only weight loss strategy kept things really simple. I only had to know what time it was to decide if I could eat. Not eating outside the window was sometimes hard (sometimes very hard), but it was simple.

Conclusion

That’s the plan that worked for me. We are leaving for Disney World in 2 days and I’m really excited!

If you’d like to lose weight, and think this plan will help, I’d love to hear about it: josh@joshcrews.com. I can answer questions before you get started, answer questions while you are dieting, and would love to hear if anyone has success after trying any of these ideas!

Here it is again, 3 steps:

  1. Set a reward prize for hitting your goal
  2. Write down your weight every day
  3. Limit the hours that you can eat

Good luck!

Getting Inherited Resources Gem to Work With Strong Parameters

Are you getting this error working with inherited_resources ?

1
ActiveModel::ForbiddenAttributesError (ActiveModel::ForbiddenAttributesError)

It’s a conflict between Strong Parameters, new by default in Rails 4 and Inherited Resources.

Strong Parameters’ purpose is to make the developer specifically say which attributes are ‘clean’ to submit via a form. Inherited Resources’ purpose is to make restful controllers automated so that the developer doesn’t have to specify much at all.

Two ways to make them work together

1. Squash strong parameters

Effectively subvert strong parameters, and make it allow everything. This is a good approach if you trust the inputs (like it’s coming from the admins).

To do this, go to any inherited_resources controller and add

1
2
3
  def build_resource_params
    [params.require(resource_instance_name).permit!]
  end

This method is especially effective if you have a group of controllers (like your admin controllers for each resource) inherited from one parent controller (I call mine Admin::ResourcesController). If you are doing that, you just have to add that method to your parent controller and you are done because all the other controller inherited from it.

Here’s a peak at what my Admin::ResourcesController looks like

1
2
3
4
5
6
7
8
9
10
11
class Admin::ResourcesController < AdminController
  inherit_resources
  defaults :route_prefix => 'admin'
  respond_to :html
  actions :all

  def build_resource_params
    [params.require(resource_instance_name).permit!]
  end

end

2. Specify clean parameters per controller

1
2
3
  def build_resource_params
    [params.require(:employee).permit(:name, :email, :favorite_food)]
  end

Where ‘employee’ is the model being create/updated, and :name, :email, :favorite_food are the fields allowed to be updated.

Headshot photo of Josh by Eric Brown, @ebrown_photo on twitter.