Monday, September 28, 2009

Book Review: The Definitive Guide to Spring Web Flow

Book Review: The Definitive Guide to Spring Web Flow
Author: Erwin Vervaet
Publisher: Apress Inc
ISBN: 978-1-4302-1624-7

The first thing about The Definitive Guide to Spring Web Flow that I noticed, and the book was very up front about, it only covers Spring Web Flow v1.0. In the introduction it states that this book only intends to cover the core concepts about Spring Web Flow and the details about v1.0. It states that v2.0 is dramatically different and is a subject for another book. If you’re starting out in Spring Web Flow then you might want to pass on this book and look for another book that specifically focuses on the Web Flow v2.0. However, if you have a need to learn v1.0 this may be a book for you.

The book starts out with an introduction to what Web Flow is and how to get it setup. It then proceeds to explain the basics of web flow and how to get the jars and setup an IDE. I think that this part is a little overkill since anyone with enough Java knowledge should know how to add the dependencies through Maven, Ivy or to manually copy of few jars and add them to your classpath. From there it takes you through the background of what is a web flow and how to plan a web flow in the code. From entry points to exceptions it covers the necessary points to get going with Spring Web Flow v1.0. Chapter 8 gets into the testing of a web flow and how to mock out the flow objects. This takes the unit testing to a new level in my case since in our traditional web applications that I have worked on we have not come close to testing the flows of a page with unit tests. At best we have only tested the individual pages in isolation. The next chapter walks you through an example application. Where other chapters may have left you wondering how to do something with minimal examples this is a full detailed application to get you started with Spring Web Flow. I wish more books would take this concept of using one full chapter and go through a application from start to finish like this.

The book continues on with some real world use cases and a short piece about how to extend web flow to meet any special needs that you may have. The real world cases was nice but I didn’t get much from that as I know where web flow will fit into the tools that I need it to and where I’m going to use it. The extending web flow chapter was a good quick coverage of how to manipulate the web flow for you unique cases. Maybe I read this part too quick, too late at night or the editors got to it and remove too much but I thought that it was lacking some of the good detail that was presented in the other chapters.

Overall, I do recommend this book with the caveats that you understand that this is about Spring Web Flow v1.0.

Tuesday, September 22, 2009

Book Review: Beginning Scala

Book Review: Beginning Scala
Author: David Pollock
Publisher: Apress Inc
ISBN: 978-1-4302-1989-7


I’ve been hearing about various other languages that are available for the JVM for a while. I’ve seen presentations at my local Java user group and at conferences like NFJS and TechFest however, until now I have not really checked into what all of the excitement is about. I just received the book Beginning Scala by David Pollak and read the first 4 chapters the first night. Over the next few days I finished out the rest of the book. I like the idea of a better than Java language as I will admit Java is not perfect. It takes more code than it should to accomplish some tasks. However, is Scala the best alternative to languages for the JVM, I think that the jury is still out. Scala brings to the table a more simple construct but does have a learning curve from Java. Scala is much more functional than Ruby, has better synchronization than Groovy and includes immutability which Java should have had in the first place. The only downside that I can see (and this is just from reading the book without experience in Scala) it may be a little too terse.

The book itself is a great introduction to Scala and if you have not used a dynamic language and want to start with Scala you need this book. It takes you through, rather quickly, the installation and basic syntax of the language. I wish that this part was explained a little more but it does get its point across. I would also like to see more comparisons against Java. Since most people that would be using this book would probably know Java it would be helpful to have more comparisons especially in the syntax area. The rest of the book walks you through using collections, JDBC and Scala’s strong suit concurrency plus a few other items. I also think that the author’s writing style and grammar was excellent for this type of book. Many times you read a book in the information technology field and there is poor sentence structure and spelling mistakes. I did not see any blatant issues at least in my first pass through the book.

The last chapter (9) gives you a compelling reason to start using Scala and introduce it into your corporate culture. Working at a large company that has known to not live on the technological edge, language wise, I know what kind of uphill battle it may be to bring a new language into a company. However, this language may be on my list to work with over the next year.

Saturday, June 20, 2009

Dallas Techfest 2009 review

Arrived at Dallas TechFest 2009 this morning. Found the place just fine but it may have been a little better if there was some signage at the doors to show people where the check in desk was. I had to walk around for a while to find it. Check in was a breeze but that might be because there wasn't many people here yet or just couldn't find the desk. Hmmm.

After check in I walked around to the vendors or at least the 3 that I saw so far. There may be others, I'll look later. I went to find the room for the first event. After arriving at the room I was disappointed to see just chairs in the middle of the room. Clearly the room was big enough to utilize a classroom style seating with tables to facilitate note taking, beverages and laptops! Yes, people like taking notes with laptops, this is a techfest, go figure... (Think NoFluff)

I started to get setup in the conference room got my laptop out and started to connect to the internet. Wait! What is the code? WTF No free internet access! Ok let me get my CC out and buy some. OK... Looking... Looking... WTF No place to purchase it on the site that I can see. I can't fully ding Dallas Techfest for this since Westin has a crappy site but next year lets hope for a location like No Fluff (Wait my Power cord just got kicked out by someone tripping over it. Now what was I saying? Oh ya.. ) I think that every tech conference should measure itself to the No Fluff style of setup. It works, it's efficient, and they don't charge for the internet. Ok, conf #1 is about to start.

First presentation complete on closures. From the examples it looks like a lot less code that is less complex visually. I think that I'll wait for the final proposal and it gets accepted into the core Java before I really start to investigate using this in any production work. Either that or when I work with Groovy.

Next I attended the TDD talk by Ben Rady. I saw a simular talk last year at JavaMUG and attended TDD talks from Neal Ford. Ben's talk was much more code example focused. I would love to see more of a persistence level TDD example at some point but it is a good discussion about TDD and why we all should be writing tests. Even if we don't write the tests first we need to be at least writing them. Tests create the confidence that your code works and other changes, enhancements or refactors do not affect the code under test control. I think that key to starting on this especially with a existing project is to just take pieces like Ben and Neal also mentioned, and refactor the code so some can be tested. Then repeat as necessary until you have effective code coverage.

After purchasing own lunch at Westin Grill. (Houston Techfest, and Dallas BigDesign Conf both provided box lunches for less conf cost, Hmmm) I headed back to the conf rooms. I joined Ben Rady for the 2nd part of his presentation on testing. This one was Continuous Testing using Infinitest. I have been using Infinitest since the last time that I saw this presentation at JavaMUG.org. Basically the same presentation but very effective. This really shows WHY we need to test and the benefits of continuous testing and how that affects the quality of code.

I attended Craig Walls' talk about what is new in Spring 3.0. Great talk as always Craig and I can't wait to start working with Spring 3 and try out some of the new features. It looks cool. Before attending this talk I was a little worried about the MVC changes and how that will affect legacy Spring code but per Craig it sounds like it will be a good change. I'm looking forward to using some of the new @Cookie, @RequestHeader annotations also.

Next I went to the Maven 2 talk from Ryan Breidenbach. Fabulous job Ryan. I attending the same talk at No Fluff a few weeks ago and it had most of the same content. This talk was so much better. Better speaker, maybe? Whatever the deal is I got a lot more out of this presentation than I did at No Fluff. (In fact that No Fluff session was the only session that I rated very poor)

All things considered this was a good conference and I would attend next year. I'm still a little confused over the whole pricing structure. First I heard that it was one price, then they gave out discounts, then they raised the price, then a different discount. Next year I just hope that everything is posted up front where we know when the early bird discount expires, when the discounts for user groups expires, etc. Also next year I hope they don't use the Westin Stonebriar. Nice place but it did not have enough parking and I hate the seating style. Rows of chairs for a tech conference? Who thought of that! Why not classroom style with thin long tables so we could take notes on a table, put our laptops on a table rather then holding them for the entire day. Think ergonomic! If anyone has any questions about how to put on a great conference they should attend a No Fluff event! We don't have to have the full buffet but a box lunch would be nice. Also don't forget the WIRELESS access!

I know that a lot of hard work went into this and I don't want to take away from any of that. They did a great job expecially with the speakers.

So what is next hmmmm... Spring One?

Today's tweets since no WIFI at Dallas Tech Fest

Here is the tweets that I would have done today if we had Free WIFI access at the Frisco Westin Stonebriar Resort. I've never heard of a Tech conference (and have never attending one until now) that didn't have free WIFI... Westin /dtf09 = #fail.


#dtf09 08:00 No WIFI access dtf09=#fail

#dtf09 08:15 2nd #fail No classroom style seating with tables? WTF! Not starting off well...

#dtf09 08:30 No internet access at Westin Stonebriar. Cost $10 per day but you can't sign up online? WTF #fail

#dtf09 09:00 Attending Closures talk by Paul Holser

#dtf09 09:36 my leg is already getting warm from my laptop. I'm sure that I'll have 3rd degree burns by the end of the day...

#dtf09 10:09 Closures almost over. Wish there was more business like examples. Overall good presentation.

#dtf09 10:15 TDD talk by @benready starting

#dtf09 11:30 TDD or variations is the way to create software. Much better than hacking at code.

#dtf09 11:35 So were at a hotel and we have to go out for lunch? WTF

#dtf09 13:00 Finished lunch at Westin grill. Good lunch but Houston Techfest provided a box lunch

#dtf09 13:30 Starting @benrady talk about continuous testing.

#dtf09 14:20 Infinitest @benrady love the talk 2nd time seen it really shows WHY we need to be testing

#dtf09 14:45 Wishing I had a iPhone for email and twitter access today.

#dtf09 15:00 Next is the one that I came for (mostly) What's new in Spring 3 by Craig Walls

#dtf09 16:30 About to start the last session of the day. I'm going to hang with Ryan and learn a little about Maven2

#dtf09 17:05 Good presentation but Ryan is also missing wireless and may have to cut it short because of it.

#dtf09 18:00 Dallas Techfest is over. Now I get to go home and send all my tweets? WTF

Sunday, June 14, 2009

Using JavaRebel to speed up development

I was at the last JavaMUG.org meeting where the creators of JavaRebel demonstrated how this software helps out by eliminating the need to restart Tomcat or the JVM while changing classes. The presentation was very compelling but I don't just jump to every piece of software that comes along which promises to help out development speed. However, I went ahead and tried it out the day after the meeting while I needed to make some changes to some code. It really worked. After a little configuration change to my development setup to put the classes in the WEB-INF/classes directory instead of a jar file in the WEB-INF/lib it was working. I made several changes to the classes and refreshed the browser, BINGO, changes were recognized. This must have saved me a few minutes of development time already in the short amount of time that I have been using it. It should save hours in the next year.

Wednesday, June 3, 2009

Monday, June 1, 2009

Big(D) Design conference reflection

I attended the first Big D Design conference this Saturday. Overall I was impressed about the structure of the conference and how well it seemed to flow in spite of the lack of time between sessions. It did feel rushed and I was extremely tired at the end of the day after trying to take in 9, YES --> NINE <--, one hour sessions in one day. That is a lot of conference sessions to take in for one day and retain the disparate information.

Some things that I liked about the conference. Good quality of speakers for a low cost conference. This does show how much good talent that we have in Dallas. Good central location for most people. At least it was easy access off Hwy 75. The meeting facility was in good condition and had enough room for most of the events/sessions. No problem with the food. It was a great little box lunch with sandwich, chips and cookie.

Some things that I did not like as much: Parking was not great but was acceptable. This may be attributed to not knowing much about the SMU campus. The only issue about the facility is it didn't have enough power outlets to charge up the laptop. I was out of power by the 3rd session until I was in a room that had more outlets. One conference room had classroom stadium seating but not all outlets under the desks were working. The last thing is the initial wait to check into the conference. I think that it took about 30 minutes to get checked in. I would have loved to use that time to walk around the sponsors tables or even get a little breakfast or coffee. However, by the time that I got in to the conference area the first session was about to start and I wanted to get a seat and make sure that we had wireless access.

Overall I am glad that I attended and will probably attend next year. However, that may depend on the content and speakers.