Monday, October 29, 2007

Paris, not the city.

Dave is like a shark in this bit. He smells blood in the water and just keeps it up.

Wednesday, October 24, 2007

Catalyst, Ruby, and MVC in general

Ruby is all the rage these days so I decided to give a look. First I have to say it is wicked cool. You can do a lot with a few lines of code. If you need to prototype a site in a short amount of time then this is the tool for you. The downside, from what I read, is scalability. This is from a rails developer, Alex Payne, working on twitter:

By various metrics Twitter is the biggest Rails site on the net right
now. Running on Rails has forced us to deal with scaling issues -
issues that any growing site eventually contends with - far sooner
than I think we would on another framework.The common wisdom in the Rails community at this time is that scaling Rails is a matter of cost: just throw more CPUs at it. The problem
is that more instances of Rails (running as part of a Mongrel
cluster, in our case) means more requests to your database. At this
point in time there’s no facility in Rails to talk to more than one
database at a time. The solutions to this are caching the hell out
of everything and setting up multiple read-only slave databases,
neither of which are quick fixes to implement. So it’s not just
cost, it’s time, and time is that much more precious when people can[’t]
reach your site.None of these scaling approaches are as fun and easy as developing
for Rails. All the convenience methods and syntactical sugar that
makes Rails such a pleasure for coders ends up being absolutely
punishing, performance-wise. Once you hit a certain threshold of
traffic, either you need to strip out all the costly neat stuff that
Rails does for you (RJS, ActiveRecord, ActiveSupport, etc.) or move
the slow parts of your application out of Rails, or both.It’s also worth mentioning that there shouldn’t be doubt in anybody’s mind at this point that Ruby itself is slow. It’s great that people
are hard at work on faster implementations of the language, but right
now, it’s tough. If you’re looking to deploy a big web application
and you’re language-agnostic, realize that the same operation in Ruby
will take less time in Python. All of us working on Twitter are big
Ruby fans, but I think it’s worth being frank that this isn’t one of
those relativistic language issues. Ruby is slow. 1


One thing that Alex points to is Ruby, saying that Ruby it-self is slow. I have read a few other posts that lead me to believe that this is the case. So I started playing with Catalyst which is a MVC framework for Perl. I have to saying that I was pretty impressed with Catalyst as well. It has the added advantage if plugging in different view classes and even mix and matching them in the same project. Its not as elegant as Rails, then again Perl is not really known for its elegance in general. I have developed in Perl for a long time and love it as language. So this seems like a good fit.

Then I really get thinking of the MVC framework in general. MVC stands for Model, View, Controller. This is not a new paradigm it has been around in Java for years. You start with a model class that describes your data. This could be a database connection or a standard container class. You also have a view class that handles how your model will be displayed to the world. Finally there are controller classes that interact with the user by display the model through the view class and handling the user input. The controller is the glue between the user and your application. In Java typically you would roll these your-self which gives you a good deal control.

The Rails/Catalyst model seems slightly different in that they are trying to handle more of that for you. In the Rails land the View part is pretty well out of your control. You use the templating language they provide. The model is more or less locked down as well which allows you to focus your coding on the controller. The advantage is you have less to worry about so you can focus on the portion of the app that is really important. Like I said above that is really cool.

Here is what distress me. We are moving the developer further away from core pieces of development. I think that a part of the twitter problem is that they rely on ruby to write SQL for them and to display information. Yes it takes the developer less lines of code but that code didn't just disappear, it has to be handled somewhere. There is a trade off in ease of development and performance.

The Rails problem isnt new right? Do you code your project in VB or C?

1 Alex Payne Interview

Wednesday, October 17, 2007

Goodbye Cornell (for now)

Im going to be leaving my position here at Cornell, which is in some ways very sad for me. As it turns out its sad for some my co-workers as well. Here is what one of them wrote to me:


Shawn, I wanted to give you the chance to review my farewell message to you. As always, your input is unvaluable to me.


It is with mixed feelings and the taste of bile in my mouth that I bid farewell to Shawn Bower. Shawn is leaving the PeopleSoft developer’s group after a much acclaimed – by him, anyway – stay of nearly two months. As I understand it, that’s about 14 months for a dog. Needless to say, that comparison was made purposely.


I would like to recount Shawn’s many successes while working with the developers but I understand that the lawyers are still looking for them. Not one to impede justice let me just say that Shawn will be missed around here. His lack of attention to detail, his willingness to never lend a hand when needed and his relentless pursuit of mediocrity kept his name on many a person’s lips. I would repeat what was often said of him but I’ve sworn off cursing.


In the short time with us, Shawn has brought about many changes within Information Systems. First, the physical security of Maple Avenue will be beefed up, finally. Second, Human Resources has assured us that future background checks will be more thorough and written references in crayon will not be accepted. Third, direct deposits of paychecks to bank accounts in the Cayman Islands will be more thoroughly scrutinized. I would like to say on his behalf that rumors that Shawn was making money on eBay from his cubicle are false. His main source of income was, of course, from his gambling web site.


On a personal note, I would like to thank Shawn for the friendship we’ve had during his time here. Who can ever forget the time he arranged for the fumigation of my office or the rumors he started of a paternity suit on my behalf. Ah, good times. (As a note, had Shawn stayed at IS, I was assured by HR that I had actionable evidence of bullying and a hostile work environment. So, saved by the bell, huh, Shawn?)


So join me in wishing Shawn good riddance and best of luck on his new endeavor. I’m sure that Shawn will succeed in whatever he tries, as long as it doesn’t require more effort than it takes to breath.


Break a leg, Shawn! Seriously, I mean it.

Update: He did in fact break my leg.

Tuesday, October 9, 2007

Sunday, October 7, 2007

X-Wing Downed

John first brought us the story of the real life X-Wing, now I have this follow-up video. (it blows up)

Saturday, October 6, 2007

Cornell Football

Cornell Football For the few of you that I didnt see there it was a very awesome day for a game. Groton won the halftime challenge. Cornell lost the game ... what more is there to say?