Archive for September, 2007

My JAOO summary

September 28th, 2007

Wow!

That’s the best description I could find for it. What a terrific conference. So many interesting tracks that was difficult to choose.

It was also an amazing opportunity to catch up with people from ThoughtWorks and Interface21. I met Mark Pollack from Spring.Net and now a Interface21 employee; Alef Arendsen, one of the founders of Interface21. I asked how Interface21 dealt with Spring as a product, albeit we’re competitors to some extend they didn’t think to twice to answer.

Erik Doernenburg, from ThoughtWorks, has probably seen my skeptical face when he said they have used Velocity for the new TheGuardian.co.uk. He has some very interesting arguments on when Rails is good or bad choice. Chad Fowler, on the enterprise apps panel said some things about Rails that I wouldnt expect from someone from the Ruby camp. Really, he knows what’s hype and knows that it’s not the best thing in the world since sliced bread.

Martin Fowler is an interesting guy. Kinda of a funny character. We had a chance to talk briefly on the Wednesday lunch. I can’t believe he doesn’t use a Mac because he thinks it’s too heavy. I said how cool it was that I finally been involved in a java project, so I didn’t have to start vmware fusion and could work directly on MacOSX, he said he used the same argument when creating code snippets for his book, which should have the same amount of java and c# snippets. Interesting. He attended to our ActiveRecord session, and in his words “it was OK, it was the AR pattern, you made your point clear”. Alright then…

Mark Pollack is an impressive guy. Although we may have our disagreements on castle vs spring, our agreements on other topics outweighs them. He used to have a consultancy/product business, so he knows where it hurts.

Roy and Ayende are funny people. Roy tries to make a joke of everything. I distinctly remember a sentence like “f… off all this domain driven design stuff, let’s get a dessert”. I couldnt agree more! Ayende has the energy to explicit agree/disagree with any statement and make a case for it. I’m more of the “let it go” type of person. I have my beliefs that basically reflect my experience, but I wouldnt get into endless discussions. In fact I pay to not join one :-)

Like Alef said, JAOO has such a reputation and name that now it’s self sustainable. It was so professional that it’s unbelievable.

Our talk on MonoRail was OK, I was really expecting more — I’m the one to blame. And I almost didn’t make to it. For some reason I thought it was supposed to start at 11, but it was at 9:30 !!

Erik Meyers keynote wasn’t fun. And during lunch we talked on how weird we feel about the direction he’s taking. His statements on SQL and Javascript were embarrassing, to say the least. The final panel, though, was enough to wash the dirty laundry and make him believe that there are people out there that likes JS, work with it and actually enjoys it. Btw, doesn’t he look like Colin from the ‘Whose Line is it anyway?’ show?

I can’t remember all the session I attended to, but I’m sure my beliefs were shifted a little to left, up, down and to the right. Michael Feathers made one about defects on software that was great. I think I need to learn more about Haskell. The one about Craftsmanship calls for a different attitude from us when dealing with users. I couldn’t agree more. Eric Evans session said how it’s important to focus on your core, not on the whole (big) app. That makes sense..

It was a great conference. I’m happy I went there.

Categories: JAOO | Top Of Page | 2 Comments » |

Our ActiveRecord presentation

September 25th, 2007

It went perfectly well. Based on our questions to the audience we had 80% of java people, 18% of exclusive .net developers and then 2% of rails developers. And guess what Mr Fowler and Mark Pollack (from Spring.net) were on the audience.

Two things: Ayende and I recorded this presentation (a rehearse) last night in the hotel and we’re thinking in publishing it. However there was a camera and a camera man on our presentation for some reason… not sure if they are going to make it available. If they don’t, we will publish the screencast.

Now, tomorrow is going to be the MR/Castle stack presentation which is big and is going to be challenging.

Btw, I attended to Eric Evans “Strategic design” presentation: it was awesome!

JAOO Day 1 – Part I

September 24th, 2007

The first comment is: I wish I had omnipresence powers. This conference is full of good stuff. I started on the .net road track checking Ayende’s presentation on Dsls with boo. Then lunch. Then Erlang – fantastic presentation! Just a quote:

“Industry standpoint: we don’t believe in mathematics, two phase commit always work”

Now Roy Osherove – dude, this guy is funny – is about to start his “Techniques for Testing Data Access Code”. Then I will attend to “Developing Software like a band plays Jazz” by Erich Gamma.

This week is promising!

Categories: JAOO | Top Of Page | 1 Comment » |

Off to JAOO’07 in Denmark

September 22nd, 2007

So I’m preparing myself to stay long hours in a plane to Amsterdam and then a couple of hours to get to Denmark. This is not fresh, especially to someone that is not fond of airplanes like me.

Anyway, hope Ayende and I can meet some users and convince people that will be attending on the Enterprise Frameworks track why Castle and .Net are also good choices. I also hope that Ayende and I find the time to screencast our presentations rehearsal and make them available soon.

Wish me a good trip ;-)

Categories: Castle, JAOO | Top Of Page | 3 Comments » |

What’s in Castle RC3

September 20th, 2007

So here’s a brief list of what has changed since RC2. The full list is bundled with the .msi installer, and are kept on the release notes folder.

ActiveRecord

  • Multiple db support without the need to extend ARBase
  • Refactored validation support to use the new Castle Validation
  • InPlaceConfigurationSource.Build() which is handy!
  • Added HqlNamedQuery
  • Lots of bug fixes

DynamicProxy

The RC3 is the first to include DynamicProxy 2 which has support for generics and is much much faster than version 1

MicroKernel/Windsor

  • Support for generic collections
  • Changed to use DynamicProxy 2
  • Added some sugar to IKernel and IWindsorContainer add/resolve methods
  • Child container support was improved, but still need some review – you’ve been warned
  • Added a simplistic eval support, you can do <?eval $BaseDirectory ?> on your config
  • Both DefaultKernel and WindsorContainer now implement IServiceProvider

MonoRail

  • Added Cache support (see the new Cache attribute)
  • Added IsPost/IsGet/IsPut/IsHead to Controller
  • Added Auto Form Validation
  • FormHelper is nearly perfection, still missing support for selects with multiple enabled
  • Support to register several view engines at once (bye composite view engine) – this is not as good as I’d like it to be. There’s no co-op among them..
  • Added handful of view components
  • Added support to test controllers, viewcomponents, wizard steps without the need to bring the ASP.Net to the table
  • Added JS generation support, and UpdatePage/UpdatePageTag view components
  • Format support on set operations, for example $Form.Select(“price”, [1..100], “%{textformat=’C'}”) is going to render the select elements with currency format
  • Added PaginationHelper.CreateCustomPage which is the most optimized way to deal with pagination
  • Added DiggStylePagination ViewComponent, based on Alex Henderson work
  • Added the following members to SmartDispatcherController (validation related) ValidationSummaryPerInstance : IDictionary, GetErrorSummary(object instance) : ErrorSummary, HasValidationError(object instance) : bool
  • Added ViewComponentDetails attribute (just like ControllerDetails)
  • Added ViewComponentParam attribute which tells MonoRail to bind the arguments as properties on your view component – reducing repetitive code rules
  • Added UrlHelper/UrlBuilder concept

Aspect#

Is out…

Components

  • Added Castle.Validator
  • Added Castle.DictionaryAdapter – still puzzled by this one
  • Improved Binder (another re-write of its implementation)

Other

  • Created the using.castleproject.org
  • Created the api.castleproject.org
  • Initial integration between the Castle.Services.Transaction with MS’ System.Transactions
  • Created Castle.Core

Well, basically that was it. We’ve been busy.

Categories: Castle | Top Of Page | 8 Comments » |

Castle Project 1.0 Release Candidate 3 is out

September 20th, 2007

Yep, you read that right, we finally made it. So grab yours while it’s hot ;-)

Categories: Castle | Top Of Page | 8 Comments » |

In regard of MonoRail and WebForms…

September 18th, 2007

One of our clients – which btw is with us since we started — decided to comment on that flamed thread in response to a Michael D. comment. I rest my case ;-)

The java guys “don’t get it”

September 18th, 2007

Just bumped into the twelve best practices for spring xml configurations, and the first one is “Avoid using autowiring”:

The property names of the OrderService class are used to match a bean instance in the container. Autowiring can potentially save some typing and reduce clutter. However, you should not use it in real-world projects because it sacrifices the explicitness and maintainability of the configurations. Many tutorials and presentations tout autowiring as a cool feature in Spring without mentioning this implication. In my opinion, like object-pooling in Spring, it is more a marketing feature. It seems like a good idea to make the XML configuration file smaller, but this will actually increase the complexity down the road, especially when you are working on a large project where many beans are defined. Spring allows you mix autowiring and explicit wiring, but the inconsistency will make the XML configurations even more confusing.

I can’t understand this uncontrolled passion that java programmers carry for xml. Even with the introduction of annotations (in 2004 for god’s sake) there still an awfully lot of xml that you have to write. Write and smile! And write more than you’d need to, as they discourage any other way in the name of “increase in complexity” that you would get if you lower the xml on your apps.

Why is that? Any serious app must have the equivalent in java LOC in xml?

I think that my decision to support and encourage autowiring on MicroKernel/Windsor was the most correct one. You just have to define a behavior, something that is easy to predict, that makes sense, that even people that wont read documentation can “get it” and you’re fine without xml.

Categories: Java | Top Of Page | 4 Comments » |

The top best feature on Mac OS

September 18th, 2007

IMHO the best thing on Mac OS is the location menu. It’s there, always there. Just click on the Apple icon and change your location, and the network is reconfigured.

picture-1.png

Is this available on Vista?

Java + SpringMVC = depressed programmer

September 14th, 2007

Check this

<spring:bind path="trade.buySell">
<input type="radio" 
       name="buySell" 
       value="true" 
       <core:if test="${status.value}">checked</core:if> >
	Buy
</input>
<input type="radio" 
       name="buySell" 
       value="false" 
       <core:if test="${! status.value}">checked</core:if> >
	Sell
</input>
</spring:bind>

Does it need to be so verbose?

Categories: General, Java | Top Of Page | 3 Comments » |