Random thoughts about my interests in Java, consulting, scripting in Java and software development (especially for small and medium size organizations).
Monday, March 10, 2008
Free Groovy and Grails lunch and learn
Over the last year, I have become a huge fan of Groovy and Grails. I believe the speed of development combined with the short learning curve and the power of the Java platform will make them the future of the Java platform. If you want know why I believe this, I am offering a free hour and a half lunch and learn to companies in the Central Ohio area. This is a presentation I gave at CodeMash and to several companies in the area. The presentation defines Groovy and Grails and then demonstrates their capabilities with a live coding demo including some AJAX examples. If you are interested in learning more about scheduling me to speak at your next lunch and learn, please email me at groovy@juddsolutions.com.
Groovy Ant task is for Groovy Scripts
Groovy includes an Ant task for executing either file based or embedded Groovy. I recently discovered the file option denoted by the src attribute must be a Groovy script and not a Groovy class containing a main method. If you have used the Java task, you might expect the Ant arg set to be passed as a parameters to the main method since it is the common Ant convention for passing command line arguments. However, as you can see in the following snippet of code from org.codehaus.groovy.ant.Groovy, a GroovyShell is created and the args are passed as a property to the script.
final GroovyShell groovy = new GroovyShell(classLoader, new Binding(), configuration);This behavior was unexpected since it does not follow the normal Ant convention and because the documentation states the src attribute is a File containing Groovy statements rather than stating it expects a Groovy Script.
try {
final Script script = groovy.parse(txt, scriptName);
script.setProperty("ant", new AntBuilder(this));
// code removed for brevity
script.setProperty("args", cmdline.getCommandline());
script.run();
}
Tuesday, March 4, 2008
Excellent cell phone browsing experience with Opera Mini
I have a MOTORAZR V3 from Sprint. I have been some what satisfied with my browsing experience and the embedded Obigo browser for websites designed for mobile content. However websites not designed for mobile content look awful. So when I hard the Java Posse talk about a J2ME based browser I had to give it a try. The browser is the free Opera Mini browser. It was easy to install, just use your embedded mobile browser and click on a link and it installs. Sites designed for mobile content look incredible while sites not designed for mobile also look good. For regular content, it renders a scaled down version and gives you the ability to zoom in and move about the page. The other great thing is unlike embedded browsers, it is easily upgrade able. If you are not pleased with your current mobile browsing experience you should give Opera Mini a try. It is not as nice as the iPhone browsing experience but if you have a standard phone for making phone calls this might make you look at your phone differently.
Tuesday, February 26, 2008
Announcing FallME 0.6.0
FallME 0.6.0 is now available. In addition to a forms initialization enhancement, there is now a example application. We hope to have a better example and tutorial soon.
Sunday, February 17, 2008
Will Grails Hurt the Spring and Hibernate Brands?
Groovy and Grails are really starting to get some well deserved attention especially after the release of Grails 1.0. Grails has a chance of being a game changing technology. For example one of the things Grails does is make Spring and Hibernate web development really easy and for the most part makes those frameworks transparent. As evidence of the transparency, you can read Graeme Rocher, Grails project lead, blog entry about his experience at the Spring Experience conference. Graeme discovered that most people did not realize Grails had anything to do with Spring.
Could Grails cause Spring and Hibernate to become the BASF of the Java community and adopt the tag line of "We don't make a lot of the products you develop with. We make a lot of the products you develop with better". It is hard to tell at this point. But it is probably a good idea for the companies offering Spring and/or Hibernate services to take a hard look at Grails and consider providing Grails services as well.
Could Grails cause Spring and Hibernate to become the BASF of the Java community and adopt the tag line of "We don't make a lot of the products you develop with. We make a lot of the products you develop with better". It is hard to tell at this point. But it is probably a good idea for the companies offering Spring and/or Hibernate services to take a hard look at Grails and consider providing Grails services as well.
Tuesday, February 12, 2008
Amazon Web Services at COJUG
Mike Culver of Amazon spoke about Amazon's Web Service offerings today at COJUG. His presentations were a little different between the lunch and evening meetings but between both of them, he covered the following:
Amazon Elastic Compute Cloud (Amazon EC2)
Amazon Flexible Payments Service (Amazon FPS)
Amazon SimpleDB
Amazon Simple Storage Service (Amazon S3)
Amazon Simple Queue Service (Amazon SQS)
Mike made a great business case for each of these services and how then can really benefit different types of scaling concerns at an unbelievable price. He also stressed their incredibly high level of security and redundancy. He told us the government uses them for storage because of their high level of physical and data security as well as how auditors aggressively test disaster recovery.
I am very impressed with what I heard and saw. I have not seen any other infrastructure in my travels that can compare. Amazingly enough, I heard two other podcasts today that talked about these services unrelated to any Amazon propaganda. I hope I get to work with some of these technologies in the near future.
Amazon Elastic Compute Cloud (Amazon EC2)
Amazon Flexible Payments Service (Amazon FPS)
Amazon SimpleDB
Amazon Simple Storage Service (Amazon S3)
Amazon Simple Queue Service (Amazon SQS)
Mike made a great business case for each of these services and how then can really benefit different types of scaling concerns at an unbelievable price. He also stressed their incredibly high level of security and redundancy. He told us the government uses them for storage because of their high level of physical and data security as well as how auditors aggressively test disaster recovery.
I am very impressed with what I heard and saw. I have not seen any other infrastructure in my travels that can compare. Amazingly enough, I heard two other podcasts today that talked about these services unrelated to any Amazon propaganda. I hope I get to work with some of these technologies in the near future.
Monday, February 4, 2008
Grails Encourages Best Practices
You know how every Apple Mac user says there is something special about the Mac? They can't usually put their finger on it but they say something like "it just does what I expect it" or "it does what is right". Well that's the way I feel about Grails. Recently I wrote my first real tag in Grails and I was just amazed at how it felt and how it does the right thing by encouraging best practices. For starters, writing tag libraries is incredibly easy (Read the Piragua Blog for details on how to write a Grails tag.). So why is this a best practice? Well I have seen a lot of scriptlets written in JSPs that should have been reusable JSP tags. But because it was to difficult or time consuming for a developer to actually spend the time to create a JSP tag or even more difficult yet a JSF component it simply was not done. But with Grails tags it is so simple there is no excuse.
Another example is tag and controller integration tests automatically inject mock request, response and session objects. I have seen many projects with no unit tests for the web components or unit tests that require deploying the application because they do not use mock objects. By automatically including mock objects developers no more have to download and add jars for mock web frameworks or even create instances of the mock objects. This should save time and help improve unit tests.
Another example is tag and controller integration tests automatically inject mock request, response and session objects. I have seen many projects with no unit tests for the web components or unit tests that require deploying the application because they do not use mock objects. By automatically including mock objects developers no more have to download and add jars for mock web frameworks or even create instances of the mock objects. This should save time and help improve unit tests.
Subscribe to:
Posts (Atom)
AWS EC2 Hibernate Java SDK v2 Example
I recently wanted to automate the creation of developer VMs in AWS using EC2 instances. To improve the developer experience (DX), I didn...
-
In May of 2009, I wrote the blog post The Ultimate Enterprise Java Build Solution . Over the past 7 years since I wrote the post I have help...
-
Early in my career I took on the role of setting up and operating the build infrastructure of many of the projects I have consulted on. I st...
-
Class loading issues are a common frustration for many Java developers. The dreaded java.langClassNotFoundException means they can forget a...