Archive for the ‘hibernate’ Category

Wicket based Thoof launches private beta

Saturday, June 16th, 2007

The veil has been lifted. Thoof is now officially in private beta (and I got to play around with it a bit). Given that the famous (from Revver and other successful website) entrepreneur Ian Clarke is behind this effort and that Jonathan Locke is one of the architects behind the site, the foundation is solid.

Thoof

VentureBeat writes:

Like Digg, Thoof provides a synopsis of articles on its home page —this includes headline, brief summary, and tags to designate topic matter. It then provides a link to the article, and sends the reader to the original source.

That’s where the similarities with Digg end. It doesn’t let otherreaders rank the articles for you. Rather, it offers articles to youbased on what knows about you, such as IP address (which providesgeographical location), the browser you use, your operating system andthe site you were on when you clicked through to Thoof — all of whichoffer subtle clues about you. Then, additionally, as you searcharticles, it tracks the tags of the articles you read. Finally, it maysoon begin asking you a random question from time to time, to gathermore information.

Thoof was also covered by Michael Arrington’s TechCrunch and he seems sceptical, as most of the previous attempts (SearchFox, Findory and more) did not succeed or even ended up in the deadpool. Many of the comments seem to share the sentiment. However, Ian Clarke explained more of the new selection algorithm behind the site, and if it works, I predict a bright future. In the private beta run I already saw a couple of links I liked (and I hadn’t even clicked!).

Now this may look to the regular reader that I’m promoting a web site because a friend is working on it, but there’s more to it: it is Wicket based (which is one of the reasons Jonathan was asked to come aboard I presume). If it is a successful endeavor (and I trust Ian Clarke to be correct here), then it may become the biggest website running Wicket.

I like the unobtrusive Ajax functionality they built in: when you click the header of a story, the browser sends a notification to the server using Ajax, and then replaces the story panel with a ‘this story has been read’ variant). In the mean time the news article has been loaded in a new window.

Read/unread article

If you have some Wicket experience, you can see how they construct their pages based on the markup: ListView or Repeaters, and Panels and Behaviors have been put to good use. I expect there will be some tweaking going on (removing superfluous span tags, or too enthousiastic use of Ajax component replacement) but on the whole it really looks great.

All in all, a very exiting time for Thoof and its creators, and I hope they succeed.

Hibernate 3.1-something performance problems cont'd

Tuesday, November 28th, 2006

In a response to my previous rambling, Benoit was kindly enough to point me at a severely under-documented Hibernate configuration property:

hibernate.jdbc.wrap_result_sets = true

I did some performance tests with getting some date out of our database and look and behold:

Method                                       Time(ms)     Count
oracle.findColumn(String)                      2793       19292
oracle.getLong(String)                         1630       12836
oracle.getBigDecimal(String)                    397        1068
oracle.getInt(String)                           258        2152
oracle.getString(String)                        192        1068
oracle.getTimestamp(String)                     190        1068
oracle.getDouble(String)                        101        1068
oracle.getBoolean(String)                        21          32

hibernate.ResultSetWrapper.findColumn(String)   409       19292
hibernate.ResultSetWrapper.getLong(String)      225       12836
hibernate.ResultSetWrapper.getInt(String)        63        2152
hibernate.ResultSetWrapper.getBigDecimal(String) 52        1068
hibernate.ResultSetWrapper.getDouble(String)     21        1068
hibernate.ResultSetWrapper.getTimeStamp(String)  21        1068
hibernate.ResultSetWrapper.getString(String)     20        1068
hibernate.ResultSetWrapper.getBoolean(String)     3          32

If you use Oracle in combination with Hibernate, I urge you to use the setting Benoit kindly provided (your mileage may vary though).

Hibernate 3.1-something performance problems

Monday, November 27th, 2006

In our current project, we found out that Hibernate uses the column-names in queries to retrieve data from the resultsets. Now this is usually not a problem (it debugs pretty good thank you very much), but it adds quite the overhead for our Oracle driver. About 50% or more of the time for retreiving objects (dehydrating them) is spent in finding the correct column.

We are using a pretty archaic version of Hibernate (3.1 something), and therefore I was looking at 3.2 to see if this has improved. I found the following todo comment in the dehydrate logic:

for ( int i = 0; i //TODO:  this is kinda slow...
    }
}

Something tells me there is room for improvement.

Patent claim on Hibernate revisited

Friday, June 30th, 2006

Acccording to InfoQ the patent case against Hibernate was meticulously planned.

  • They filed the suit in the one place where no patent case was lost
  • They filed the suit right within the JBoss Red Hat due dilligence period (either instant settlement by JBoss or a possible cancellation of the acquisition)

Unfortunately we haven’t heard the last of this.

Repeat after me:

Software Patents Are Bad

Hibernate: patented?

Thursday, June 29th, 2006

And of course, now that Red Hat has brought the big bugs (slip of the tongue: bucks was meant) to Hibernate, someone wants to cash in on that money.

Apparently, some company holds a Patent on ORM. So why only Hibernate and not Toplink, iBatis, or any other ORM framework that is out there?

Fortunately there seems to be a lot of prior art for ORM solutions, so this patent will probably not hold up in court. There is one lesson to learn here, repeat after me:

Software Patents Suck

ps. thanks for pointing out the typo.