« November 2002 | Main | January 2003 »

December 2002 Archives

December 2, 2002

QA and Testing

No. The reason for lousy software lies in two simple words. Inadequate testing.
If he's talking about QA, then he's dead wrong. According to studies in all other facets of production, a focus on increasing the quantity of QA will actually increase the number of defects. (That must somehow tie into Heisenburg's Uncertainty Principle, right?) Quality software requires testing, yes, but that should be the responsibility of the developer. Want to make high-quality software? Make the developers think that there is no QA. Even if you sneak some in unbeknownst to them. [ /dev/nul ]

Sorry, I have to disagree here. When you send more mine sweepers into a minefield more mines are found. Does the number of mines in the minefield increase? No, there is still just as many, just the number of known mines increases. What certinaly increases is what is known about the minefield, what descreases is the unknown quantity. That is what QA's role is: To make an unknown quanitity a known quanitity. QA doesn't fix the defects, the cataog and catagorize them, so that an intelligent decision can be made about release and which defects are worth sending back to be fixed.

But there is a point in your message that I mus agree with, a large portion of the testing should fall on the developers. The role of QA shold not be as crash test dummies (and you shouldn't hire crash test dummies either). QA should be (a) looking at the problem from perspectives that development hasn't thought of and (b) running the more involved and incricate tests that require a full time effort, like scalability load testing and "burn in" style testing. Given that the QA folks (generally) didn't write the code they are at a disticnt advantage for (a), and (b) generally requires a different skill set than a code cowboy would use.

To think that there should be no QA or that the developers should not know it exists is like wrapping a towel around your head to get past the Ravenous Bug-Blatter Beast of Traal.

December 4, 2002

Belated Solicited Opinion of NetBeans

Well, my mis-adventure with marketing folk has prompoted Oliver to write about their experience with NetBeans, so maybe I sohuld post my opinion that I was unkindly solicted about. First I'll start with the nits that anny me:

Startup Time
Yes, it is dog slow. Apparently they have a guilty consince about it since it was mentioned in the first e-mail without any real provocation. Seriously, what is it doing at start up? Re-hashing the file indexes or something? It is slow and it grinds my hard drive. And it's not inadiquate setup either, I got 512MB, 1Ghz, and -Xmx256m. Once it starts it's fine, so I just usually surf the web when it's starting up.
Bad Attitude about Bugs
I have one case and point for this one: using F12 on an ant build does not give the same support as if you used the built in java compiler. It worked in 3.3, the bug was know and a fix known before 3.4 shipped. But it didn't make the code freeze so it got shipped without it, jsu so they could make a date (that already slipped a week). The analysis in the bug said that it only affected users who were using keyboard only, and they could get the same effect with the mouse. The truth is that it's a lousy excuse not to include it because it's plain old anti-user. We are talking about funtionality that existed in a previous release that was lost in a future release, and it was wll known how to fix it. I have to agree with oliver that the atttiude towards some bugs needs to imporove, and featuritus should take a back seat to fixing bigs that break existing functionality.

So those are my problems, now a marketing type survey might be interested to know what I see in other competing products like, say Eclipse, that might send me to that camp...

Dating the New Girl
No doubt Eclipse is the new toy in town, and as in High School there is someting to be said for dating the new girl (or getting asked out by the new boy, to be gender neutral here). Having the latest and greatest is nice, but even cars loose their new car smell, and it's just another car after a while
Built in Code Quality Checks
The code quality checks in Eclipse are nice, especially the context sensitive import searches. Much nicer than anything NetBeans has. Because it is integrated into the errors list clicking on it behaves like you would expect it to... it focuses the cursor there, and you can use the next error hot key to get there too. NetBeans+Checkstyle (the closest thing) is not integrated into F12 next error, it only highlights the line green. It also doesn't focus the cursor, and the green highlihgt does weird things when you edit it (like being half there). And it isn't sensitive to edits in the source file, so you have to work from the bottom up usually. I can also only check one file from the IDE at a time, rather than being able to click on the explorerer and check an entire folder at once. This would be somehting I would like to see improved in NetBeans. [See my entry on PMD, it addresses this issue]

But given all of that I prorobly won't be going over to Eclipse 2.1, even with the new ant integration features, why?

Performance is a Red Hearing
The performance thing is over-blown, So Eclipse uses native widgets, the java backen still gets over-loaded and all the widget re-paints still get bogged down in the event displatcher. And I've seen more non-startup slowdowns in Eclipse than in NetBeans, especially when I do somehing little like change a propject preference, sometimes it takes 3 minutes for the chagne to take! That's because it insists on re-compiling all 2000 java classes in the project I have loaded, all of them, from scratch, just because I added a new jar library! Anyone who thinks Eclipse is better performing than NetBeans must be working in small projects, or is micro-benchmarking, or believes anything marketing says.
Swing Editor
The NetBeans Swing Editor blows the one Eclipse has out of the water. Why? Eclipse doesn't have one! Not that I can find anyway. To extend the anti-Swing bias to the tools provided is inexcusable by Eclipse. Swing apps don't all look ugly and perform like crap and now that people are starting to code more rich clients since Web Interfaces are intrincically limited, more and more rich clients will be written.
Ant Integration
Elipse is getting better with bringing in AntView to 2.1, but it still doesn't have the holy grail of ant integration I am looking for: I want to take one (or more targets) and make a toolbar button or keyboard shortcut to execute them. And I want multiple targets for each build file, not just one. And Ant runs noticeable slower in Eclipse than in NetBeans. Incramental compialtion may enable some cool beans stuff but it is not being used for the cannonical builds on the build machine so I want to use the cannonical build while I develop. One thing Eclipse 2.1 has I wish NetBeans had is code compleation for the ant tasks. That's probobly feature #2 that would be nice (better checkstyle suport is #1, with all features not breaking previous funtionality being feature #0).
These last two items will in all likelyhood keep me with NetBeans, despide concerted effort to drive me away or lull me over to something else. If Eclipse could do those better than NetBeans then I would take a nice week-ling test drive of eclipse rather than the day long one I did a couple of weeks ago.

FUD giveth, and FUD taketh away

Found an intersting article on Integration Developer News that is basically an op-end piece for IBM, but the FUD is implicating Sun and IBM...

  • Signature Test Suite - the second question points out a nasty trap Sun has set, in additon to Compatibility Testing (a good thing) there is a second set of tests called the "Signature tests" that test for things that are not specified and hence not allowed to be present. IBM's example is Workflow. I agree with the article in that it is Sun blocking innovation (but not the JCP doing the blocking, JCP is just being used asa a tool).
  • IBM Donated Apache Axis? - I think not, but they claim to...
    As an example, there is JSR 109, which specifies an embedded SOAP parser for the Java programming model -- something Java programmers have been increasingly asking for absent native SOAP support in Java. That is the one we submitted to both the Java Community Process and the Apache Axis group as the Axis Parser. [ Integration Developer News ]
    Granted, IBM did donate SPAO4J, which became Apache SOAP v. 1 and v. 2. However AXIS is a "from-scratch rewrite" (Axis is also refered to as Apache SOAP v. 3). IBM represents 5/16 active and 4/16 inactive contributors based on e-mail address, so they not be said say IBM developerd it "in the open" for apache either. It just strikes me as wrong for IBM to claim something that was an Apache project as their own (even if they employ a little over a quarter of the contributors). Maybe I am mis-reading it, but it doesn't feel like I am.

December 10, 2002

PMD for NetBeans/Forte

I think I found the missing piece from my entry about what NetBeans needed. Enter PMD, (the acronym stands for many things. It has what I was looking for: F12 (next error) integration, and intelligent line positioning (meaning I can delete the emtyp constructor and F12 or clicking on the error takes me to the correct line, even thougg it is 3-4 lines higher now). You can even write your own custom rules and plug them into PMD. But no product is perfect, some of the parameters (like how deep it should go before freaking out over deep if statements) don't seem editable, and there is no "use spaces and not tabs" rule. But it's still in beta.

This is a project that should be added to the netbeans master auto-update when it reaches FCS even though it's not a netbeans-owned project, it's that good.

December 20, 2002

Eclipse does Swing!

And I saw it with my own eyes, I even got a screen shot!

eclipseswing.png

Well.... April Fools (in December none the less). I just used the Eclipse 2.1 M4 GTK version and set the GTK theme to metal. So if what was keeping you from using Eclipse was the "Oww My Eyes It's Purple" UI then here you go!

Note however that Eclipse still is missing a good a usable a functional any Swing GUI Editor. What's even funnier is that I can't find one for SWT or JFace either! As long as you only want people to write server side and JSP type then what Eclipse has is fine, but if you want people to write real GUIs with it, tools matter.

December 28, 2002

Inst.Ant gets a Christmas Gift

For those of you still following my weblog you all may remember that I had set Inst.Ant asided for a while while I pondered two problems, transactions and dynamic properties. I beleive I have solutions for both, but it may be a wile before I get to playing with them...

First on the issue of dynaimc properties, Costin has been a busy little bee over the holiday break, and has ported his changes relating to the dynamic properties support from his Embed proposal to the main ant line for 1.6. This means an end to evil hacks a d a more sensible solution to the ant call and properties problems. It may be a while before I get code written to exploit it, but as it is I need to wait a bit for PropertyHelper and friends to harden just a little. And then Ant 1.6 need so ship a FCS, which makes me shipping anything other than alpha quality code before that kinda useless. To paraphrase the greate M.Python "Inst.Ant's not dead (yet)."

Now about Transactions, how will I handle things throwing strange exceptions durring their executions (including ant build failure tasks)? What I plan to do is wrap all of the <do> targets into a try {} catch (Throwable t) {} block. It's a pretty wide scope but I want to catch errors too like OutOfMemory. I will then set an ant property holding the exception and set the execution order to undo. If the steps taken depend on failure or canceling or undoing then what that should be done on an error one can set the if= and unless= attributes to check for that standard property. The same will be done for cancel and (likely) normal forward back execution. If an error occurs in an undo the error will be re set, so there is the possibility of both a cancel and error flag being raised

So how does that affect transactions? It gives some greater control to the author to undo actions if stuff should fail, such as out of memory errors. While the granularity isn't directly to the level of individual task in the do/undo that can be fixed by the author splitting the do tasks to as many mutliples as are needed, to the level of one per do if that level of granularity is needed.

And in the interest of full disclosure, don't expect new code for a couple of weeks, at least. Family stuff and paintball is coming up, although I believe I have saciated my tase for NeverWinter Nights for a while longer.

About December 2002

This page contains all entries posted to ... And They Shall Know Me By My Speling Errors in December 2002. They are listed from oldest to newest.

November 2002 is the previous archive.

January 2003 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.33