RSS RSS feed | Atom Atom feed

NoFluffJustStuff Gateway Java Symposium - Day 3

Day three's events began at 8am and ended at 5:00pm. A continental breakfast was served from 8am-9am with the first presentation beginning at 9am. The following are the sessions I attended along with any random thoughts.

Better, Faster, Lighter Java (Bruce Tate)
Better, Faster, Lighter Java was about everything EJB isn't. Bruce started off by explaining how Java has gone from a 4MB download to a 40MB download in less than 10 years. He also brought up the fact that deprecated method's rarely are actually deprecated. The only examples our group could come up with were situations where leaving the method would actually break something. Otherwise, deprecated methods have been left to rot for backward compatibility purposes. We also discussed how EJB had been around for sometime and newer lighter weight frameworks like Spring were not far behind feature wise. To cut to the chase, this session could have been called, "EJB's are usually not necessary and there are much better ways to get the benefits they provide". Bruce stated that a lightweight container, like Spring, was the future and that EJB's were dying. While I have to agree that EJB's are abused and not needed in many cases, there are a lot developers out there with this skill set so they will likely die a slow death.

TDD for the web tier (Rick Hightower)
Lets see, hmm. How do I put this. To be blunt, this presentation sucked from start to finish. While Rick may know the subject very well and write decent books, an effective presenter he is not. Not to mention, his slide presentation could have taken the entire 3 days to cover. This session was suppose to be about junit, httpunit, dbunit, strutstestcase, cactus, and jWebUnit. I think we may have completed the junit part, it was hard to tell since I was too busy fighting to keep my eye's open. Sorry for sounding bitter, but this presentation was painful. Instead of throwing up a editor and giving a hello world presentation of a couple of these tools(obviously there was no way to cover all of them), we were subjected to bullet point after bullet point of ways to use them. I got nothing out of this presentation except that I will never attend any of Rick's seminars again.

AOP with AspectJ and Eclipse plugin (Venkat Subramaniam)
To start off with, im very thankful that I got to this room early. It became overly crowded in a matter of no time. I guess you could say that AOP was the buzzword of choice this past weekend. While I can honestly say that I understood the basics of AOP beforehand, I learned a bunch from Venkat. His presentation style was similar to Stuart Halloway. Lots of little tiny programs that did nothing but get the point across. I learn best in this environment. Venkat had a single program where he instantiated a JMenuPanel that contained 2 menu items. When you ran the program, both were available. He then proceeded to put logic to determine if your locale was US and gray out one of the options. The next step was to explain that this type of logic might be useful all over and that copy/paste was not the best solution. Instead he moved this code into an aspect and applied it that way. It was a clear and meaningful example that most people enjoyed.

Introduction to Spring(Bruce Tate)
The last presentation that I attended was on the spring framework. Bruce did a pretty good job here, but like in all his other presentations he lacked real code. This presentation was really nothing more than an overview of spring, how it compared to struts, and how easy it was to keep your object testable using it. My favorite statement from the presentation was, "Good OO design is more important that any framework". This idea is very foreign to EJB since Session beans like monolithic utility classes and Entity beans are similar persistence via peanut butter. Spring or spring like frameworks are on my radar and will be something I dig into soon.

To summarize the weekend, I would have to say the NFJS Tour was a success again this year and that it was worth every penny. If my company hadn't paid for it, I would have. A coworker of mine brought up the fact that the tour is in Chicago in the September timeframe. I will seriously consider going to it as well if the topics are different enough.

NoFluffJustStuff Gateway Java Symposium - Day 2

Day two's events began at 8am and ended at 5:30pm. A continental breakfast was served from 8am-9am with the first presentation beginning at 9am. The following are the sessions I attended along with any random thoughts.

Tapestry by Example (Erik Hatcher)
I thought this session was really good. It had a totally hands on style. Erik started with nothing and banged out a sample app in a matter of 90 minutes. Other than a beret of off the wall questions, the seminar went pretty smooth. The parts of Tapestry that I liked most were "Previewable HTML", correct line numbers in stacktrace's, and there seemed to be less moving parts than Struts. One overwhelming thought was, do I really need to learn another framework that competes with struts. Good or bad, struts is fairly widespread and my efforts would probably be better spent learning more advanced ways to use struts or looking at a lightweight framework like Spring.

Pragmatic Mock Objects (Dave Thomas)
Pragmatic Mock Objects was a tough topic to glean information from since I have never really relied on them before. Sure, I've stubbed out classes before but Dave was very clear that mock objects were much more than that. Unit testing is a personal goal of mine. Im hoping to start incorporating unit tests into every line of code that I write, very soon. I think this shift would be much easier if I didn't spend my time working with the web tier. Even though there are frameworks to aid in unit testing web apps, they never seem very easy to use. Although I've never fully bought into XP, I think there is tremendous value in writing unit tests. I have also had problems believing that TDD is about design and not testing. Well, maybe but testing seems to be a pretty big one to me, I wouldn't discount the safety net that it provides.

Metaprogramming (Stuart Halloway)
As I mentioned previously, Stuart was probably my favorite speaker at this years symposium. His session on Metaprogramming was much of the same. In a nutshell, metaprogramming means writing code that manipulates code. To be more specific, automating repetitive tasks that cannot easily be automated within the language. Stuart picked out a handful of patterns, explained why they existed, and offered better ways of solving the problems.

Programming with Hibernate(Bruce Tate)
This presentation was a bit disappointing. It was made up of entirely powerpoint presentations with no coding examples. Sure he had some code splatter on a slide or two, but at no point did he open up an editor to show or run any code. I liked Bruce's Bitter EJB talk last year, so I expected this to be a good session. Turned out, I was wrong. Other than giving a general overview of Hibernate, Bruce didn't do much to sell the framework. Instead he seemed to be more partial to JDO instead. On a few occasions, he mentioned advantages JDO had over Hibernate.

NoFluffJustStuff Gateway Java Symposium - Day 1

For the second year in a row, I have been fortunate enough for my company to spring for admission to the NoFluffJustStuff Gateway Java Symposium. Well today was the first day of the 3 day conference. Registration began at noon and the introduction started at 1pm. The day was comprised of 3 seminars, dinner, and finally the expert panel discussion where the panel answered questions from the audience. The thing that I really like about these kinds of conference's is the close interaction with the speakers. One thing that I was a bit disappointed with was the fact that there was no keynote address like last year. Dave Thomas was the keynote presenter last year and did a fantastic job. Oh well, maybe next year. Below, i've listed the presentations that I attended and my thoughts on them.

Decoupling Patterns - untangling that knot of code (Dave Thomas)
This was probably the most frightening presentation that I've seen to date. It's like Dave has been working on my team for the past three years. In detail, Dave described situations that my team faces on a weekly basis. He also touched on several key indicators that your code might be becoming too coupled and ways to remedy the situation. In a nutshell, he recommended package level visibility to across the board with one or more facade's into the package. This seems like a reasonable approach and was fairly straight forward. The thing he didn't spend much time on was the return type's or objects from the facade. This is the part that I have always struggled with. If package a depends on package b, what package should the shared objects(return types and parameters) belong to? This seems quite easy if they are domain objects, but 95% of the time this is not the case. In the past i've come to the conclusion that duplication of code(i.e. data classes not business logic) may sometimes be a good idea if it makes dependency management easier. All in all, this presentation was everything I expected it to be.

Advanced Version Control with CVS (Dave Thomas)
To start off, this presentation wasn't quite as "Advanced" as I would have liked it to be. It dealt with more of the day to day operations that a configuration manager would deal with. I did learn a few tricks along the way though. The merging of changes between two tags into head was something I didn't know about and seemed very useful. I have every confidence that I could have went to the resident CM guy at work(not by choice) and he would have guided me in the right direction. The things I wanted to learn about were advanced ways to hook code formatters up cvs so all commits were formatted appropriately. I have been an end user in the past were this happened but I don't have the foggiest idea how to set it up. I would have also liked to learn more about the various triggers that can be set up when commits occur. To make a long story short, the pieces that I hoped for would not have applied to most CM processes. They are unique things that Im interested in. Obviously, Dave's talk wasn't catered to me :)
Dave, as always, was a tremendous speaker keeping the attendees attentive at all times. I really enjoy the injection of his British humor in each and every facet of technology.

Classloading in Java: Building Dynamic Systems without pain (Stuart Halloway)
I missed Stuart's presentations last year so I didn't really know what to expect. He started off with, "This isn't one of the cool new topics or buzzwords that most people came to hear about. Classloading hasn't drastically changed since the Java 1.2 days....". His witt was just as entertaining as the topic he was covering. With that being said, this presentation alone will likely save me hours and hours debugging classloader issues that were somewhat foreign to me in the past. Like most Java guys I understood what a classloader did, the hierarchy of classloaders, heck I even screwed up my own classpath a time or two. The things that I hadn't thought about or read about were the gems here. Learning the differences between implicit classloading, explicit classloading, and mixing the two was invaluable. The best part was that he wrote code on the fly to demonstrate both. I learn best using these hello world typle applications as building blocks and then expanding on them. I will try and attend more of his presentations throughout the weekend.

Expert Panel
David Geary, Mike Clark, Stuart Halloway, Dave Thomas, Erik Hatcher
The expert panel was pretty good. Topics discussed included off shoring, next new big thing, thoughts on JDK 1.5, JavaServerFaces, and dynamically typed languages. All in all, the discussions were good. Audience participation wasn't the best, but that might have had to do with the fact that is was 8:00pm on a Friday night. Maybe tomorrow's will be different, who knows.