Tag Archives: ruby

Today We Are Rails Developers! Pt. 2: Choosing Your Project

So you’ve got joined a ruby club, installed the software,  signed up for github and Heroku, and finished some tutorials. Where do you go from there, Rails Developer? It is now time for you to choose a project to work on.

Projects are best way to learn a programming language because it forces you to apply your knowledge. Memorizing the API is all fine and good, but it’s not going to matter much if you can’t orchestrate it into something tangible. As I said, it’ll become your resume when you want to use Ruby on Rails professionally. Furthermore, the market for subscription-based web software is exploding right now. Your project has the potential to make you rich. Even with a small customer base of, say, 200 customers paying $20 a month, you are bringing in 6 figures of revenue with almost no marginal cost for more customers. Watch this presentation by DHH if you need more convincing.

The project I’m working on (for the purposes of this blog series, at least) is called Dramathea. It’s a website where community theater companies can promote their shows online. I plan to monetize it by selling preferred access to the front page and taking online ticket sales. It started out a few years ago as a PHP project, but now that I’ve discovered Rails, I think it would be a great way to learn the framework. Here are some tips that will help you choose your own project to work on.

1. Keep it Simple

37signals is making millions right now with this philosophy. Your project shouldn’t be complex, even if you are planning to monetize it right out of the gate. No one is going to use your software if it has the learning curve of a Boeing 747. This is probably the hardest guideline to follow because any application can turn into an over-bloated mess within a 10-minute requirements meeting. Have a core function, like listing plays in a certain city. If your users demand more features, by all means, add them, but make sure your site still does that one thing it was supposed to do.

2. Tempt Failure

The rush of gambling doesn’t come from winning alone. Losing a grand at blackjack and then doubling down is the experience that practically built Las Vegas. I don’t know if Dramathea is going to make any money. Community theater people are known for being cheap, so why would they spend money on my site when they could advertise on facebook for free? Then again, what other website is completely dedicated to community theater? What if my site is the easiest to use? I don’t know what’ll happen when I ship this site, and that’s all part of the fun.

3. Solve Your Own Problem

Many web app success stories come from people solving their own problems. My problem is finding live theater in the Fraser Valley. What’s yours?

3. Follow the Stress

If you can’t think of your own problem to solve, look around you. Listen.  It could be in conversations with your friends and family. It could be on threads in Reddit. Keep an eye out on fmylife.com. Wherever you find stress, headaches, and inefficiency, you will find your project.

5. Don’t Worry About People Stealing Your “Idea”

Industrial progress is being held back by myths like the Coca-cola formula and KFC’s 11 secret herbs and spices. You can’t really own an idea any more than you can own the equation, “2+2=4″. What you can own is the work that makes the idea a reality. You have to maintain the data, manage hosting, market to your initial user base, and yes, code the thing in the first place! Anyone who says you can make money from your ideas alone is probably selling you something.

6. Ship

As you can see from Facebook CEO Mark Zuckerberg’s l337 coding skills in 2001, it doesn’t matter where you start on the programming totem pole. You’ll be known by your time spent with the framework and the code you post on the internet. Those faltering first steps will only serve to inspire the developers yet to come.

Feel free to post links to your projects in the comments.

Here is the address for Dramathea: http://www.dramathea.com

Here is the github repository: http://github.com/jstrocel/Dramathea

Today We Are Ruby On Rails Developers!

My friends, it is time!

No longer shall we labor under the iron heel of spaghetti code, protected methods, and proprietary software. We must make a perilous journey to that golden land where all variables are objects and REST rules supreme! Today, we shall become: Ruby on Rails Developers!

This post is the start of a weekly series tracking my progress learning Ruby on Rails. Sure, there are probably better, more dedicated Rails blogs out there, (Alan Bailward’s Thinking in Rails is a good example) but because there are so many programmers out there who haven’t even tried it, one more travelogue into the world of Rails can’t hurt.

So what is Ruby on Rails? Most large websites like facebook, twitter, and even this blog use programming to dynamically generate pages. This programming can get very complicated as these sites get larger. Ruby on Rails is a framework that incorporates some base assumptions about how data-driven websites work. This makes it easier to program these websites and make changes to the overall structure. This screencast shows how you can use rails to create a simple database driven blog in 15 minutes.

This functionality can be expanded to cover everything we use on the web. Blogging, Todo lists, shoppings carts, Rails can even be used to serve up more advanced content like games and video. So, how does one become a Rails developer?

1. Find a local Ruby on Rails club

There are quite a few Ruby clubs operating around the world. Learning on-line is one thing, but you can get so much more out face-to-face coding sessions. It’s also a lot easier to stay motivated when you are coding alongside other people. I go to the Fraser Valley Ruby Brigade, which meets on Wednesday nights from 7:00-10:00pm at the Gourmet Gallery in Abbotsford, BC.

2. Install Ruby on Rails

The latest Ruby on Rails install instructions can be found at RubyonRails.org. You might run into some insurmountable problems using Rails on a Windows. Most Rails developers won’t bother troubleshooting the platform. I recommend following along with Curtis McHale‘s 2-part tutorial, The Best Windows Ruby on Rails Setup. He installs Rails by setting up ubuntu on Windows using Virtualbox. I still look back on it whenever I want to set up Linux on my windows laptop. Curtis is also a member of the Fraser Valley Ruby Brigade.

3. Get a github.com account

Github is a social coding and version control utility. It’s a good idea to post your Rails project here so you can manage your code and demonstrate what you’ve learned. Don’t worry if you are just creating copies of tutorial apps you find. Everyone passes through those first learning stages. If you want to program Rails apps for money, employers will care more about what’s in your github account rather than your years spent at the Very Big Software Company. You can find my Github repository here.

4. Get a Heroku Account

Once you’ve programmed your Rails app, where can you host it so that everyone can use it? Heroku hosts basic rails apps for free and sells additional capacity where necessary. You can use heroku as a test server before deploying to your own paid hosting (if you have any). As an example, here is a twitter clone that I wrote using a tutorial.

5. Go to Railstutorial.org

There are many Rails tutorial sites out there, but Michael Hartl’s Railstutorial.org is easily the best of the bunch. It not only teaches you the basics of Rails programming, it has instructions on how to properly use Github and Heroku so you can get real development workflow going.

Next week, I’ll be talking about my rails project, Dramathea, and the path to webapp stardom. See you next time!