15 Nov, 2006

Published at 05:43PM

Tagged with webapps, ruby, rails, and reflection

This post has 1 comment

A mini-project every month

Once you’ve accomplish something, you feel comfortable doing it again. And why shouldn’t you? After all, you’ve already done it. And that’s exactly my problem. When it comes to programming I often feel so comfortable with something I’ve done already, I’ll do it again. And again. I’m not the best at exploring new alternatives; it can be hard to do something away from what you know already works. But the last thing I want to become is a developer who relies on the specifics of past experiences.

I think it’s safe to say my favorite language/framework (at this point) for the web is Ruby/Rails. So I naturally want to learn more about it, and how to master “the Rails way.” In an ideal state, along with the fact that I would have to be someone other than me, here’s what I would propose: develop a new mini-webapp every month. And if I were indeed someone other than myself, here are the requirements I would have:

  1. It can’t be anything done previously (unless it’s a reasonable expansion, such as adding an API)
  2. Each application would only contain one controller (hence, the mini).
  3. The interface would remain simple, but fully styled to keep me sharp on my CSS
  4. The level of difficulty would be such that I could not complete it in one week
  5. The wonderful Rails scaffolding would not be allowed
  6. Each application would have a due date of the last day of the month
  7. No direct help from anyone else (with the exception of forums)

Now, all I have to do is figure out how to become someone other than me, so I could actually do something like this. Really, I probably would do it if I had more time. And just in case I do, any suggestions for the first one?

Comments

Chris Wednesday, 15 Nov, 2006 Posted at 06:48PM

What I like to do is pick out Rails plugins or programming methodologies I’ve never used before, and create a new project to try them out.

Some random, possible starting points:
  • use Hpricot to build a scraper – possibly extend this to provide some interface to assist in writing a scraper (i.e. you provide a URL, it provides the source, and then you start putting in rules in a textarea and they get compiled and executed and you see the results instantly)
  • use RDParser to build a language parser

The key is to use a library/plugin/programming feature that you’ve never used before, because that is how to will learn the best. Especially diving into things like meta-programming. Just as a simple excercise, try building a module that you can use to reproduce the functionality of attr_reader, attr_writer, and attr_accessor.

One more good place to look for ideas – the Ruby standard reference and the standard library reference. Just browsing through the methods for Object and Kernel can be interesting – I do this sometimes, writing small apps just to try out a method I’ve never used before.

Do you have something to say about this post?
Retype the image to the right Spam Hint: Are You Human? Textile Formatting Tips

or

Ryan Heath | Site Management A Ruby on Rails production.

This site is a Formed Function. Formed Function LLC | @formedfunction | Get in Touch