Thursday, August 28, 2008

Max Payne

I've played the game and I loved it. I also dig Mark Wahlberg, he's a decent actor. I've been keeping an eye on the new Max Payne movie for a bit. Now there's a a trailer out there!
http://www.youtube.com/watch?v=JboQmDIdKWs
This... Looks... Awesome!

Wednesday, August 27, 2008

Note to Self: Read About Automating Ubuntu Installs

The Ubuntu documentation mentions using preseeding files to automate the Ubuntu 8. I may end up having the Ubuntu installs be automated into VMWare anyway, so maybe just a clean VM is the way to go.

Wednesday, August 20, 2008

Hibernate-memcached 1.0 released into the wild!

This evening I decided it was time to release hibernate-memcached 1.0. It has all the features I intended for it to have and I haven't seen any problems come up with it at all, so it must be time. Please, spend some time checking it out, even if you don't think you're going to use it right now. I'd really love to get some feedback and see if there is anything folks would like to see it do in a future release.

If you have any questions or comments please drop a line here or even use the hibernate-memcached Google group.

So, what next?

Tuesday, August 19, 2008

Hibernate 3.3 and Hibernate-memcached

I spent some time looking over the new Cache SPI released in Hibernate 3.3.0.GA. Definitely a much more in-depth API compared to the old CacheProvider/Cache interfaces. Following the new interfaces (RegionFactory, Region) you can be much more aware as to your specific responsibilities in the caching system.

I have tested that hibernate-memcached remains compatible with hibernate-3.3.0 and everything looks fine. I am going to hold off on implementing a RegionFactory/Region based implementation for now and do that as a post 1.0 release. It will require some refactoring to the current code base to get it to play nice with both APIs (I'd like to stay compatible with 3.2 for a while).

So, look forward to a hibernate-memcached 1.0 release tonight, or maybe tomorrow.

P.S. Hello China! According to Google analytics, a link from javaeye.com is generating 250+ hits a day to the hibernate-memcached project site right now.

Wednesday, August 06, 2008

Maven: The Definitive Guide

An informative book about Maven2, free, online, and straight from the source (the guys at Sonatype. Thanks Tim et al!

Tuesday, August 05, 2008

Hibernate-memcached in the MySQL faq

I was stumbling through google analytics today and saw that there were some referrals coming from dev.mysql.com. Apparently they added a link to the project in both the 5.0 and 6.0 faqs.
Neat!

http://dev.mysql.com/doc/refman/5.0/en/ha-memcached-faq.html
http://dev.mysql.com/doc/refman/6.0/en/ha-memcached-faq.html

Saturday, July 26, 2008

Hibernate-memcached 1.0-RC1 Released

This morning I've released hibernate-memcached 1.0-RC1. This release contains the new Dogpile prevention feature as well as some minor refactoring. If you're using hibernate-memcached, or are even slightly interested in testing out using memcached in combination with hibernate as a second-level cache, you should check this version out.

If you have questions or problems please visit the hibernate-memcached google group.

Friday, July 11, 2008

Dogpile Prevention for Hibernate-memcached

I posted on the hibernate-memcached project that I was going to release a 1.0-RC1 soon. I will, but first I want to implement one more feature that I think people might like; Dogpile Prevention.

If you're only running 2 or 3 instances of your application this really isn't a problem. If you're running 42 instances there is the risk of a "dogpile". If a frequently used item drops from the cache after it's expiration time comes up you run the risk of many instances of your application working concurrently to restore the cached data. Each instance overwriting the other instances attempt to update the cache until everyone sees the data is no longer missing. Other caching systems attempt to remedy this with locking. That's a really bad thing most of the time for scaling as you'd never want to have all the instances of your application synchronized on what one of them is doing.

To remedy this in hibernate-memcached I will follow the patterns mentioned in the article above. This new feature will go in as a configurable option that is, by default, turned off. I plan to make it configurable per cache-region so enabling it would look like hibernate.memcached..dogpile.prevention=true. There is a slight bit of overhead to this is why it won't be on by default. I may make it configurable at the global level as well with something like hibernate.memcached.dogpile.prevention=true.

Once I get this in and tested I plan to release a 1.0-RC1 version of hibernate-memcached.

Wednesday, July 02, 2008

Jt - Java Pattern Oriented Framework

Folks actually built an application framework dedicated directly to GOF software patterns. I'm pretty sure this absolutely what patterns were never meant to be used for. Software design patterns are meant to be applied to specific scenarios were they can be proven to be useful. Not as some golden hammer that when repeatedly bashed into your project will somehow produce the holy grail.

Tuesday, July 01, 2008

A Fantastic Example of REST

I don't know how I've missed Joe Gregorio's "RESTify DayTrader" article. THIS is what REST is all about. Great stuff...

Monday, June 30, 2008

Remember the Milk

This is the coolest use of Twitter I have seen yet...
Remember the Milk

Friday, June 27, 2008

Open Source Application Monitoring from Orbitz

This week Orbitz announced that our internal monitoring api "ERMA" is now open source. ERMA (Extremely Reusable Monitoring API), as a framework for monitoring the health of simple applications or large distributed applications alike. The framework is based on Aspect Orient Programming and Complex Event Processing.

I've had the pleasure of using ERMA at Orbitz on many applications and projects. I've also had the fun of contributing code to the ERMA code base even though it didn't really belong to my team. Sort of an "internalized open-source" model if you will, it's how things get done at Orbitz.

I am a member of the core team that will continue to develop ERMA and expand it into new areas (such as ERMArb). We've got a lot of planning to do to see where we want to go with it. ERMA has been extremely useful at Orbitz and I can't wait to see what others do with it.

Read more about it...
at InfoQ
at CNET

Thursday, June 19, 2008

Buying a Laptop: Mac or PC

For the first time, I find myself in the market to buy my own laptop. I've been going back in forth in my head about this. On one hand is the Macbook Pro with all it's sexiness. On the other hand is the fact that I don't know a damn thing about using a Mac. I could buy a PC laptop and install Windows and Ubuntu on it easily and have the best of both worlds.

Then a friend of mine at work (Thanks Ross!) pointed out that the Mac can do this too. Apparently the Leopard OS comes with "Bootcamp" which allows you to run Windows natively. Then I can do my Windows only stuff (like my beloved Tivo-to-go) without much hassle.

I'm all in now. I'm buying a Macbook Pro

(oh look, my first post with a "Mac" label)

Tuesday, June 17, 2008

Firefox 3 Download Day

Today you'll make history with Firefox

Are you ready to make history? Are you ready to set a World Record? Today is Download Day. To become part of the official Guinness World Record you must download Firefox 3 by 17:00 UTC on June 18, 2008, or roughly 24 hours from now.

Thursday, June 12, 2008

Videos from Google I/O 2008

The folks at Google posted a few videos from Google I/O 2008 on YouTube. I'm not sure but it looks like they posted videos of all the sessions too, nice.

Tuesday, June 10, 2008

Hibernate-memcached 0.6 released

I've released version 0.6 of the hibernate-memcached integration. Mainly this was to fix the "nextTimestamp" stuff that hibernate uses for query caching. Apparently that value needs to be "course grained" when using a distributed cache.
hibernate-memcached at Googlecode

Friday, June 06, 2008

Grails 1.0.3 Released

Graeme Rocher announced the release of Grails 1.0.3 this morning. Great news, time to upgrade my apps!
Read Graeme's post

Saturday, May 31, 2008

Introducing hibernate-memcached

Some of you may, or may not (care), know I am a huge fan of memcached. Its combination of simplicity, elegance and performance make it fantastic choice for any real caching solution.

I've recently begun work on implementing a bridge for using memcached as a second-level cache for hibernate. The project is hosted at googlecode right now, and the code is currently available in the googlecode hosted subversion repositories. In the future I'll probably move it over to github, but subversion is much more accessible to the public at large still.

Adding hibernate-memcached to your hibernate based application is as simple as adding hibernate-memcached.jar, memcached.jar, and spy.jar to your classpath. This can also be done using Maven.

Enabling the hibernate-memcached cache is simple as adding two properties to your hibernate config.

hibernate.cache.provider_class=com.googlecode.hibernate.memcached.MemcachedCacheProvider
hibernate.memcached.servers=server1:11211 server2:11211

Property #1 tells Hibrnate to use the MemcachedCacheProvider. Property #2 tells the MemcachedClient in use what servers to use for the cache. It really is as simple as that.

There are many other configuration properties available to configure things like the default and per-region cache times, operation timeout, hash algorithm to use, and what key strategy to use.

The hibernate-memcached cache is working great for both individual entity caching and query caching. I currently have a lot of work to do around getting documentation up on the googlecode site. It is ready to play with and easy to setup, if anyone out there has the time to check out; please do! If you run into any questions or problems you can post them on the hibernate-memached google group, or open an issue at googlecode.

Thursday, May 22, 2008

SAP Memory Analyzier

I know nothing about SAP, but they built a nice memory analyzer worth checking out.
Check it out

Wednesday, May 21, 2008

Scalability Principles

Author Simon Brown discusses 7 principles of scalability.

1. Decrease processing time
2. Partition
3. Scalability is about concurrency
4. Requirements must be known
5. Test continuously
6. Architect up front
7. Look at the bigger picture

Check it out