Archive for July, 2007

A Java Guy’s Take On Ruby

After years of Java programming, I thought it was a time for a change. Doing Web 2.0ish things in Java was just simply a pain in the a**.

I researched Python and decided it was not for me because of its philosophy that there is only one way to do something right. I am a firm believer in there is more than one way to skin a cat. And besides, I liked what they were doing over at 37signals so I gave Ruby a shot.

Now dont get me wrong, Ruby is soooo much more enjoyable than Java. But there are a few things that make me wonder what the heck they are smoking over there. Here are my gripes.

  • Hackish 3d party libraries. The gems I’ve been using seem to have been hacked until they worked then forgotten. I don’t see any resemblence to a well thought out library. Maybe that is to be expected coming from Java where everything is over-thought out and over-engineered.
  • Bizzare method names. Things like String.gsub instead of replaceAll, and String.squeeze, and Array.fetch. Maybe these have their roots in God-forsaken Perl.
  • Rediculous abbreviations like eql or elsif. I mean seriously: elsif?? We couldnt just use: elseif or “else if”? Or if we absolutely have to save ourselves from typing that one or two characters why not bash’s elif?
  • #{some_string} is a tad decorative. What’s the issue with using some standard like, oh I dont know, maybe the “+” sign?
  • But thats about it so far so it’s not all that bad, although I sometimes feel as if the object orientation wasn’t setup as cleanly as it could have been. But I will say this: compared to programming in Java, Ruby is awesome.

    I did cheat on Ruby for a day with Smalltalk. I love the concept of Smalltalk but its just not cutting the mustard. I dont like the idea of having a GUI that I have to work from – I work from the shell. When I code I want to use the mouse as little as possible. IntelliJ IDEA really spoils you because its so beneficial to use yet you can switch to the shell easily. With Smalltalk you are stuck in this virtual environment and its really cool, but its almost too graphical. You have to add your Smalltalk “classes” through the class browser and that gets old really quick. And everytime I did something I got a grip of messages giving me tons of options and each option is twice as cryptic as the one before it. Not to mention that the GUI is horrific, and they color code their buttons, and there are cheesy graphics that popup around the windows, and the whole thing feels like you cant just grab it and go code, but that you have to change your entire life to subscribe to this crazy but incredibly tempting cult. Simply too much change for a chef.

    So I ended up going back to Ruby and if the method names continue to drive me insane then I’ll write an include that will overload them. But as of now, I’ll just bury my nose in their documentation and spin a few brian cycles trying to figure out if I could use some of these cryptic methods in my project.

    July 24, 2007 at 2:05 am 3 comments

    89.1% Success Rate

    After reviewing the last 17 recipes that users have added to meChef.com, it appears that my ingredient matching algorithm has successfully matched 89.1% of the ingredients. I’ll be an honest guy and not round up until its over 89.5% 🙂

    Those 17 recipes had a grand total of 156 ingredients, and 139 were automatically identified. That means that when a user adds the recipe to their grocery list, those identified ingredients will automatically be combined together with other recipes that have the same ingredients.

    And that is the whole point of the site – when you create your grocery lists it takes the ingredients that recipes have in common and automatically adds them together so you dont have to. Anything in your pantry is also automatically deducted so – you guessed it – you dont have to.

    July 23, 2007 at 3:55 am Leave a comment

    Cooking, not algebra

    Its tedious planning a good meal. You have to:

  • figure out the recipes you want to make
  • scale the to the proper servings
  • list all the ingredients
  • add the ingredients up
  • subtract out whatever you already have
  • go shopping
  • cook
  • I would much rather:

  • figure out the recipes you want to make
  • go shopping
  • cook
  • So naturally I made a website with recipes on it and had it do the adding and subtracting of ingredients for me. Now, this little project has turned into an ingredient combination algorithm obsession with no signs of letting me out of its grip.

    The site is functional, definitly not pretty in the VC funded web 2.0 sense of the word, and easy to use. I know for a fact that its easy to use because my own mother told me so. And mom’s never lie.

    The whole idea is to copy and paste your recipe in, save it, then when you add it to a grocery list it combines any common ingredients together for you. You dont have to pick out the ingredients from a list – it figures out what the ingredient is automatically. When you add recipes together the ingredients are summed up for you, and your life begins its sweet ascent.

    So now I click on recipes, print a list, shop, cook. And the food tastes better because of it.

    Try making your own grocery list

    July 21, 2007 at 2:19 am Leave a comment

    Announcement: My Website Combine Recipes

    Make grocery lists from your recipes; the ingredients are added up and pantry items are removed – automatically!

    Although the current version is functional, we will post updates here as the meChef ingredient combination algorithm is refined and our ingredient database is expanded.

    July 21, 2007 at 1:53 am Leave a comment


    Categories