Monday, October 24, 2005

No Fluff Just Stuff

I just finished (well actually, yesterday) attending a software development conference called No Fluff, Just Stuff.  I've been to a couple of other training seminars in the past which have left me disappointed, but if you have an opportunity to attend one of these, I highly recommend that you do so.


There were a lot of great speakers on a variety of topics.  I attended talks on Java Concurrency in Java 5, Ruby/Ruby on Rails (very, very cool), AJAX, ”guerilla” web techniques, regular expressions, testing the web tier, code metrics and agile development methodologies.  I walked out of just about all of them feeling that I took away some useful information and some good pointers for further, in-depth research on the topic.

Ruby/Ruby on Rails was probably the most interesting.  Dave Thomas gave the presentations and I thought he was a great speaker.  The syntax of Ruby looks a little daunting because the syntax is very different from C/Java, but it looks as though once you understand it you can express some pretty powerful stuff without writing a lot of complicated code.  I’m really intrigued and it’s been quite a long time since I tackled a new language, so I bought a book on the subject and look forward to geeking out with it.

The AJAX-related talks were also very cool.  There’s really not anything inherently complicated about doing AJAX, but it does require a shift in your mind-set as to what you can do in web applications.   Something like Google maps looks very impressive when you compare it to your standard web app where you enter some data and submit a form, but one of the speakers showed an application that he and another developer put together in a couple of hours that replicates a lot of the surface features of Google maps.  To be fair, all he really showed was the ability to pan around the map, so I’m not sure what percentage of the Google maps stuff they really implemented.   Without knowing the “tricks” involved it would seem almost impossible to implement, but they showed that once you understand those tricks, it’s not really so hard.

The Java concurrency talk was a good refresher course to some extent, in particular the new threading API’s in Java 5.  I came away from that talk thinking of a lot of code that I’ve worked on that could (and probably should) be refactored.

The regular expressions talk was also good.  I’ve actually bought a book on the subject already (yes, I have quite a backlog of reading materials) and this talk covered a lot of the same basics that I’ve already covered in the book, but he also touched on a few areas I hadn’t yet covered.  It was definitely a good introduction for folks that had never used regular expressions at all.  They are something that I don’t find myself needing to use a lot, but every so often a problem that is well suited to their use crops up, and I find myself wishing I was more comfortable using them.  

The guerilla web techniques had testing the web tier talks were very good as well.  It was probably about 50% review of stuff I was already familiar with, and about 50% new information.  That may sound low, but given past experience any time you go to one of these where half of the stuff is new, that’s pretty good.  A lot of good stuff comes just from people asking questions and learning how others in the session do things, and finding links to cool new tools.

The agile development methodologies talk was a bit disappointing.  I thought it was going to cover a lot of the different agile methodologies that are out there.  I buy into a lot of the agile precepts, and have had a lot of exposure to XP.  I have problems with certain aspects of XP, so I was anxious to hear about some of the other alternative agile approaches.  Unfortunately, about 80% of the talk was about why traditional heavyweight methodologies often fail, another 15% covered XP practices and 5% was racing through the rest of the slides giving short shrift to everything else.   I guess I just wasn’t the target audience – I was anticipating more like 15% why agile is good, and the rest equally divided discussing the different methodologies.  Oh, well.

The only presentation that I really didn’t get much out of was the one on use code metrics to target code for refactoring.  The presenter seemed like a bright guy, but as far as the presentation itself, he was really unprepared.  There were lots of things he was supposedly going to show us but … “oops” … he had deleted whatever files had the contents and couldn’t figure out how to regenerate them (though he spent some time trying).  The other thing that was a little annoying was that there were three or four other people in the class who apparently all knew him and each other, and they seemed to all feel compelled to “help out” by monopolizing the discussion in the class.  I don’t think the guy ended up covering quite half of the material.

Aside from a couple of minor disappointments, the conference was really a great experience.  Really, the worst part of it was not really anything that I experienced, but rather, the many things that I didn’t.  Since it was such a short conference, none of the sessions were repeated, and in many cases I found myself having to choose between 2 or 3 really interesting sounding presentations at any given time.  You’re never quite sure if you’re making the right choice.  But, as problems go, I’d say that’s a pretty good one for a conference to have.

Wednesday, October 19, 2005

Eureka! Whoops!

It's been one of those days. I've known about a problem in a web application that I'm working on, and have made several passes at solving the problem. Basically, an applet which is part of this application gets about 95% through its startup process and then freezes. But it is worse than just freezing the applet itself. The Java console--indeed, Internet Explorer itself--completely freeze when this occurs. The app isn’t spinning madly away, spiking the CPU and greedily eating cycles. Instead, the applet and IE are just brain dead, refusing to respond to input or even to repaint. No errors, no stack trace, just a hard freeze that requires using Task Manager to kill the zombified processes off. The Java console is so screwed up that you can't even scroll back to see any diagnostic trace messages that may have been displayed.


So, I have taken several stabs at diagnosing this problem. I've worked on it for hours at a time, and eventually given up, with the hope that if I just walk away from it for awhile and focus on something else, I will either be struck with divine inspiration, or perhaps more realistically, when I come back to it I will have a fresh perspective and may come up with some new approaches to solving the problem.

This bug acquired new urgency as our QA department finally noticed this rather egregious problem and entered it into our defect tracking system.

So today, filled with apprehension and dread, I once again began looking into the problem. Before long, I was certain I had identified the problem. Eureka! Make the change, rebuild, test. Whoops! Still not working. Same symptoms. Well, maybe that wasn’t the problem after all. Much cursing ensues inside my head, along with the voice telling me that I will never figure this out, I’m too dumb and finally everyone will find out how incompetent I am. (My inner voice can be quite melodramatic). This cycle repeated several times, as I rode an emotional roller coaster. At least, I kept telling myself, I keep finding things that are wrong instead of just being stuck at a dead-end like I have been for so long.

Fortunately, after several iterations of alternating between glee and despair, I finally got the problem fixed. Victory is mine. Woohoo! One less thing to worry about. Now on to the remaining 19 product defects I have to work on.

Tuesday, October 11, 2005

Email appears to be back in action ...

While I haven't gotten any clarification from Vizaweb as to exactly what the problem was, it appears that my email is slowly filling my inbox. Email sent now appears to be going through pretty quick, and it looks like the email from the past few days hasn't been lost -- they continue to trickle in. Something must have gotten "stuck" (don't you love it when I use those big technical terms?) and now it appears to be processing through the backlog.

I haven't been very happy with how long its taken to get this fixed, but I'm kind of lazy, so for now I guess I won't switch web hosts. Another episode like this will probably push me over the edge though!

Suffering from withdrawals ...

Just a quick note to let my faithful readers know that my email has been out since sometime on Friday 10/7. My hosting provider (vizaweb) has been, shall we say, less than responsive in getting these issues ironed out. I'm in the process of moving my hosting to a different provider, and I'll post here once that happens.