Archive for July, 2005

Interesting Rails Sites

Here is a very short list of Ruby on Rails websites that take the ideas from 37signals Basecamp and apply them to their own apps. Each of these sites offer a small web app aimed at either individuals or small companies.

  • taskTHIS - this is a demo site showcasing Ruby on Rails and its AJAX support
  • Blinksale - A very nice little app for sending out invoices to clients. This site uses the same kind of pricing idea as Basecamp and Backpack, where there is a limited free account and monthy fees to unlock more functionality.

If I find more sites, I will add them to this post.

Simple Windows XP Font Improvement

Here is a very simple little tweak that you can do to get better looking fonts in Windows XP.

  • Right click on the desktop anywhere and pick Properties.
  • Then click on the Appearence tab.
  • On the lower right-hand side, you will see a button called Effects… Click on it to bring up the effects dialogue box.
  • Then, under the heading “Use the following method to smooth edges of screen fonts:”, make sure you have Clear Type selected and the associated check box checked.
screen capture showing clear type selection in Effects dialogue

Now you should have nice smooth anti-aliased fonts on your screen instead of jaggy fonts.

Simple Solutions Needed

A general axiom for problem solving:

If you are trying to solve a problem and your solution is getting more and more complex, then it is probably the wrong solution. However, if you find a simple solution to your problem, then that will be the right solution and the right path to follow.

Hibernate good, roll-your-own bad

This is probably old news for anyone in the J2EE industry, but for me, it is kinda new. The more I work with Hibernate the more I become convinced of two things:

  1. If you have any form of application that is more than a few tables you have to use some form of Object-Relational Mapping (ORM) tool.
  2. If you are going to use an ORM tool, then use an existing one instead of creating your own.

These are actually two rules layed out by Rod Johnston in a talk he gave on what was wrong with J2EE. Two rules that I definitely agree with.

From my own experience, where I work, we created our own ORM tool for an application. It worked, but only sort of. It needed a lot of work to bring it up to the specs that was required. However, at the same time as developers were looking at improving our own ORM tool, we were also investigating Hibernate. The more we examined our ORM tool, the more we realized that we were just reinventing the wheel. Everything we needed to add, Hibernate already had.

In addition, in a few benchmark tests we did, Hibernate either beat what we implemented or did as well. And this is without all the added features that we needed in our own ORM app. This proved that Hibernate was the clear winner.

In the end, the choice came down to using a proven tool that was implemented in thousands of applications and had a huge user and developer community behind it or deploy something that had never been proven and was only moderately tested.

No surprise that we are now using Hibernate as our ORM tool.

Is Distributed Computing Slow?

I don’t know very much about distributing computer, except what I know about it from the perspective of J2EE. However, everything that I read and hear says that it is slow. Web services are the newest craze, but I keep hearing that if you need speed, use something else. If you were to set up a true distributed app using J2EE and multiple app servers spread across multiple computers, then expect it to be slow.

So, my first question is: is this true? Are distributed computer application inherently slow? Are J2EE distributed apps inherently slow? Is there a way of creating a distributed app that is fast? Is there a way of transfering data across multiple computers quickly and efficiently? These are just a few of the question I have.

At work, we are probably looking at creating a distributed app, however, we need it to run incredibly fast processing millions of pieces of data every few minutes. However, this seems to go against what I keep hearing about these kinds of applications. On the other hand, Google runs the worlds biggest distributed application and it is also the fastest. Processing any request in under a second across thousands of computers. So somehow, there must be a way to speed these things up.

Password Strength Meter

Here is a cool little web app that tests the strength of your passwords. You type in a password and the app shows you, using a cool little bar, how strong your password is. If you have a really strong password, then the bar will be green. The weaker the password, the shorter the bar and the color moves from green to yellow to red. The site also has a list of Do’s and Don’ts for creating passwords along with a set of tips.

Hibernate Benchmarks, where art thou?

Does anyone know where I can find some real world benchmarks for Hibernate 3? I have done several Google searches and am coming up empty handed. The best I can find is an article on the Hibernate website where Gavin King tears apart one company for posting trivial, and in some cases poorly implemented, benchmarks of Hibernate.

In the meantime, assuming it is not breaking any EULAs, here is my very unscientific benchmark—roughly 100,000 database writes in 3 minutes. The only problem is that I have no idea if that is good, bad, or indifferent.

I guess what I am looking for most is someway of putting the above numbers into some context so I know how to interrupt them properly.

Next Page »