Dain Sundstrom (of Geronimo) IM’d me about http://www.koders.com.
Look at a view of an open source project
I like the “Labor cost to develop” tag :)
and:
Dain Sundstrom (of Geronimo) IM’d me about http://www.koders.com.
Look at a view of an open source project
I like the “Labor cost to develop” tag :)
and:
I have been talking to a lot of people about metadata annotations. Although I think they are very useful, I also worry about annotation hell (which I see in some .Net apps).
I think that some people get confused between:
We see this a lot when people move into AOP. People get scared that they can’t SEE that a cross cutting concern module is affecting their code. Some tools help out here, and they are only getting better.
I think the key is that I want to modularize the concern in one place. I want it DRY. Then, if I need to change something, I can do so in that one place, rather than throughout the code (the whole point).
However, people tend to want to put @CrossCuttingConcern on all of the areas in the code to GET AROUND the problem that they aren’t using a tool that shows them, or allows them to configure something at that point.
I think it is going to be interesting to see us mature more, and have views in our code which come from external areas. I should be able to change a pointcut in one place, and have my source view change if it now applies to different places (ADJT in Eclipse).
So, I hope to not mistake the urge to be able to view things, with the ability to assign them in the place that makes sense.
Although I am using Groovy and enjoying it, I will admit to being a bit worried about it.
It has fantastic potential, but I didn’t know if it would have the push to get there. It is always tough if you are developing open source without a company(ies) behind you.
The Groovy London Meetup has just finished (I wish I could have gotten over there), and I am really excited at what I see.
They have ironed out some of the wrinkles in the language, and should be set to use Janino and tools for the parser. Good error messages should be here.
The Java platform is a good one. Where I listen to Miguel talk about Mono and platform vs. language, it reasonates. We can have the same thing with Java. Groovy is just one of these languages, and we have a choice of the tool for the particular solution!
Let’s get Groovy and finish it up!
A few langauge changes
// these are all valid
def x = 1
String x = 1
def String x = 1
def x
String x// however these are invalid declarations of a variable as it could be a typeo
x = 1
x
OR: Maybe the ‘any’ keyword will be chosen (my preference):
- defining intialized variables/fields:
String foo = “wombat”
Integer i = 45
any bar = “gizmo”- defining methods:
void someMethod() { … }
any someOtherMethod() { … }
String someStringMethod() { … }
return is not optional UNLESS your block has only one expression
foo() {
println 5
+5 // compile error as this is a dumb expression }would generate a compile error. It must be one of these instead…
foo() {
println 5+
5
}foo() {
println 5 +5
}foo() {
println 5
return +5
}
I was just in the ApacheCon keynote with Miguel de Icaza. He walked through a history of his world, showing information on GNOME and Mono.
He went into some detail on the WHY certain decisions were made.
Although I don’t agree with everything he does (e.g. he prefers Linux over Mac OS X :) he was a fantastic personality.
It was so fresh to listen to a smart person speak VERY honestly. No corporate crap. Just feeling and passion.
I am a big fan of IKVM, and think it is very interesting that Java and .NET bytecode can be run in the same place. There is a lot of potential here.
I didn’t quite agree about the portability issues with Mono. I think that the majority of Microsofties are still using COM, and dink with the registry, etc etc…
Great stuff.
With the new Spring 1.1.2 release, I can move an app away from CVS HEAD (I know. bad boy).
I was using the new redirect: notion in Spring MVC where I was able to change:
Get rid of the new RedirectView() so the Controller doesn’t even know that I am doing a redirect
return new ModelAndView(getSuccessView(), “id”, foo.getId());
Use the new redirect: syntax in my action-servlet.xml
<property name=”successView”><value>redirect:/listAuctions.html</value></property>
Set the redirectContextRelative attribute to true in my Velocty View Resolved (this is true by default)
<bean id=”viewResolver”
class=”org.springframework.web.servlet.view.velocity.VelocityViewResolver”>
<property name=”exposeSpringMacroHelpers”><value>true</value></property>
<property name=”requestContextAttribute”><value>rc</value></property>
<property name=”redirectContextRelative”><value>true</value></property>
<property name=”cache”><value>true</value></property>
<property name=”prefix”><value>/WEB-INF/velocity/</value></property>
<property name=”suffix”><value>.vm</value></property>
</bean>
Spring 1.1.2 has been released
Dear Spring community,
I’m pleased to announce that Spring 1.1.2 has just been released. This is a bugfix and minor enhancement release. Among the new features are:
* added support for multi-dimensional collections to BeanWrapperImpl (e.g. “map[myKey][0]” or “map[myKey][0].name”)
* added “getType(name)” method to BeanFactory interface, checking the type of object that “getBean” would return
* added “getBeansOfType(type)” convenience method to ListableBeanFactory interface, without explicit filters
* added PropertyPathFactoryBean, allowing to evaluate the property path of a target bean and expose the result
* allow “bean*” rather than “bean+” in XML bean definitions, i.e. no bean definitions in a file (just imports)* AbstractApplicationContext automatically registers a context-aware ResourceArrayPropertyEditor for Resource arrays
* added GenericApplicationContext class, allowing for arbitrary definition formats (via a single internal BeanFactory)
* improved ResourceBundleMessageSource and ReloadableResourceBundleMessageSource implementations
* added “setText(plainText, htmlText)” method to MimeMessageHelper, for alternative texts in the same mail* added “objectResult(collection,type)” and “intResult”/”longResult(collection)” convenience methods to DataAccessUtils
* added support for pre-bound Sessions (e.g. OpenSessionInViewFilter/Interceptor) with JTA and TransactionManagerLookup
* added “load(entity, id)” method to HibernateOperations and HibernateTemplate
* added “initialize” and “closeIterator” methods to HibernateOperations/Template, following “Hibernate.initialize/close”
* added “queryCacheRegion” property to HibernateTemplate, specifying the cache region used for queries* added ServletContextResourcePatternResolver, to find matching resources within a web app even in an unexpanded WAR
* added “defaultStatusCode” property to SimpleMappingExceptionResolver, specifying the HTTP status code for error views
* UrlBasedViewResolver supports a “redirect:” prefix now, for convenient redirects through special view names
* added “springMessage”/”springMessageText” macros for Velocity and “message”/”messageText” macros for FreeMarkerFor details, please have a look at the changelog.
Note that this Spring distribution comes with an updated HSQLDB version, namely 1.7.2.7. Unfortunately, the HSQLDB 1.7.2 branch is incompatible with 1.7.1 in some areas. While all Spring sample apps have been adapted accordingly, please be aware that updating your own applications with the new hsqldb.jar requires your HSQLDB server to be updated too (i.e. both need to run version 1.7.2). Furthermore, watch out when running on JBoss <3.2.6, which ships with HSQLDB 1.7.1 in the server classpath.
Cheers,
Juergen
I have run into a few problems with HSQLDB mismatches. It has sometimes gotten quite mystical on how the problems came about.
Brian McCallister got Groovy while in the Apache Derby tutorial at ApacheCon (I am at ApacheCon myself).
select count(*), groovyEval(’foo = ["woof", "meow"]; foo.join(” — “) ‘) from fortunes;
1 |2
————————–
13686 |woof — meow1 row selected
Cool. It is interesting to think how the eval could dig in more
Dave Thomas wrote a thoughtful entry on IoC and Ruby.
He takes a look at one of the IoC implementations available for Ruby, Needle.
One of the problems that Dave has with IoC is the “magic”:
One of the problems I have with the current IOC implementations is the “then a miracle happens” stuff. You
Congrats to the Apache Geronimo team.
They posted Milestone 3 of Geronimo 1.0.
Features
Also read:
What a pleasure it is to be able to go into Help and see:
Congrats to the great Mozilla team. I had been dissapointed with Netscape 4, and thought we were destined to a world of IE.
Now there is a new player, and I am happy. I just have to wait for the great plugin writers to catch up with the latest release!
My posts, status updates, link blog, and anything else I do on the web is here:
I am honoured to be working with my long time friend and collaborator Ben Galbraith on helping to set the direction of the industry.