Appfuse, 'tool' of experts

Given how popular appfuse seems to be, I thought I’d give it a try. Now, I personally have no such need of such a tool, but if it actually does what it says on the tin, then it certainly would be worth knowing as something that might be recommended to people wanting a quick start of some sort.

Oh how naive I was! I laughed, I cried, I fumbled about uselessly trying to make it do things. Appfuse is, without a doubt, one astoundingly confused product.

Where shall we start? Well, if you want to do anything other than stick with every single default, you’re up poocreek sans paddles. Let’s start with the installer. It uses izpack (a fine product), but of course, goes for a net install and shows NO INDICATION of progress as big chunks of data are downloaded. Furthermore, if you manage to click on the right combination of things (just my luck), you end up with an installer that’s hung (not in a good way) at 1%, with absolutely no hint of what you should do at this point. Cry like a girl? Wait like a man? Shake your fist at how futile life can be? Still, I tried quitting and examining what it so kindly deposited in the chosen target directory. There’s a build.xml which is about as functional as Geronimo. If you rip it open and peek within, you’ll find it’s actually a buildfile to build the INSTALLER, and could not possibly be more useless to an end user.

Alright, let’s give up on the installer. It was clearly knocked up as a side effect of a drunken stupor. These things happen.

So I go for some other download (binary, getting things to build from such dodgy characters is a bit too wild even for me). Hm, first hurdle, I MUST have tomcat installed. Not only that, but I must also faff about setting environment variables. How user friendly!

Now, I can accept requiring tomcat to be able to deploy the excrement this fine app defecates, but really, MUST the reload task be declared for the whole build file, such that you can’t even do an ant clean without tomcat installed?

Things steadily go from bad to worse. The sloppiness and slipshod I’ve experienced so far is not an accident, it’s a way of life for this app. I try to generate a project, and I’m prompted for my project’s package….twice. Hint to any aspiring UI experts, don’t ask people to type something in twice, it’s rude and pointless and only says ‘I’m retarded and cannot remember what you just told me.’

The project generation phase also kindly informed me that it has autodetected mysql. This was mildly surprising to me, as I do not have mysql installed anywhere on this machine. Maybe it detected something Out There? Maybe it was some kind of sinister warning about the inevitability of mysql taking over the DB world (har har)? Don’t be fooled by the documentation, getting this pile of festering doggie droppings to work with anything other than mysql is far from being a simple switch somewhere.

Of course, the buildfile is what you’d expect from a web monkey pretending to be a programmer. Half the targets don’t work, nor is it particularly clear what they do. I downloaded the webwork version, and ant -projecthelp suggested a ‘install-webwork’ target. This seemed like a promising starting point. Alas, that target doesn’t even apply for the webwork build, it’s for choosing webwork when you haven’t just downloaded the webwork specific version!

Nevermind that, at least the project skeleton it generates is a good robust starting point that one can confidently move forward with.

Haha, only joking, of course. Every object creates builder objects in hashCode and toString. That’s right, every time hashCode is called, an object is constructed and the java gods sacrifice a baby jesus in your name as a result. It’s comforting almost to see such solid proof of how absolutely evil jakarta commons is, when people are encouraged to do this kind of thing.

Even worse, the project’s directory layout is bound to confuse a seasoned webapp veteran, let alone the target audience for this frankenstein of an application. It’s as if someone got very angry and gathered up a bunch of directories, then violently flung them at a filesystem in order to cause maximum distress and pain to the world at large.

Of course, the project uses xdoclet. Now, xdoclet certainly has its uses. Building web.xml is NOT one of these uses. I don’t know what kind of giant supergenius newbies Raibly is expecting, but even I don’t have the heart to tell them than to edit web.xml, they’ll have to find the appropriate fragment of it (out of 11) and slot in the right thing, then rebuild to get the aggregate descriptor generated.

Of course, the forums and users of this application are the icing on the cake. Poor perplexed lost souls, endlessly befuddled by how and why things are the way they are. Those who do stick with it invariably realise what a completely spastic idea it was to start with such a rotten festering foundation.

Matt Raible once blogged that he’s perplexed by his popularity and the world viewing him as some kind of expert. Little did I know how right he was then. He is, as he proclaimed, a depressingly average web monkey who was catapulted into the limelight through a freak accident of nature. Of the other hand, maybe their little hearts are set on him, their minds filled with possibilities as they wisely ponder ‘If this idiot can do it, so can I!’

PS Yes, I have google ads now. About time I get some money off you losers.

25 Responses to “Appfuse, 'tool' of experts”

  1. Honey Says:

    I am trying to use javascript to select a radio button based on a cookie output, here is the code:

    function doneLoading(){
    if (Who()!=null) {
    document.form.username.value=Who();
    document.form.password.focus();
    document.form.new[0].checked;
    }
    else {
    document.form.username.focus();
    document.form.new[1].checked;
    }
    }

    Who() returns the cookie string, new is the name of the radio button group (it has two buttons, yes/no). Unfortunately, this doesnt work and this is the error I get:

    missing name after . operator.
    document.form.new.checked;
    ………………….^

  2. Poo Monkey Says:

    Brilliant! Appfuse is akin to feeling a massive dump coming on, preparing for it, sitting down on the toilet and pushing only to produce a cockroach dropping.

  3. Anonymous Says:

    Thanks. You saved me a lot of wasted time…

    But, did you just type ant new? It says you will be up and running right after typing this!

  4. Corby Page Says:

    Hani: Please disable the adult filter on your Google ads. I want to get solicitations for Digital Unmentionable Tuggers, and Wild Webcam Fapfests.

    Honey: You will continue to run into these problems until you become more dogmatic about test-driven development. Put together half a dozen test cases using Groovy and TestNG, and the solution will become obvious.

    Now maybe you guys can help me out. I have a friend, I’ll call him Winston. He dropped a cool million into a brand new startup:

    http://mergere.com/

    Being the VC type, he really needs to get a 20x return on his investment pretty soon. Unfortunately, this company’s core product is not something that people really want to “pay for”. Or “use”. Or even “poop on”.

    He could really use some advice on an exit strategy. Thanks in advance!

  5. Anonymous Coward Says:

    Bravo! It’s about time that Matt Raible was called out for the damage that he is doing to the Java world. What he lacks in gray matter he makes up in enthusiasm, I suppose. Unfortunately, he has legions of followers who do not know how to recognize a false prophet when they see one. You want some laughs? Download one of his presentations (the web framework presentation comes to mind) and do some fact checking against his statements. I wonder if he can even spell “objective”?

    Why not have a “Who is the Dumbest Pundit?” poll, Hani?

  6. Raible Designs ~ We Build Web Apps Says:

    [Trackback] I’m please to say that I’ve been biled yet again. The first time wasn’t so bad, and this time seems pretty mild too. There’s no mention of asshat , chozgobbler or turdburglar in the whole post, which is somewhat disappointing. Nevertheless, i…

  7. Poomonkey Says:

    I almost shat myself when I saw this: http://homepage.mac.com/mraible/.Pictures/Photo%20Album%20Pictures/2004-07-01%2015.14.14%20-0700/Image-87095032CBAB11D8.jpg
    and I only hope it was justified by this: http://homepage.mac.com/mraible/.Pictures/Photo%20Album%20Pictures/2004-07-01%2015.14.14%20-0700/Image-87088870CBAB11D8.jpg

    Get on down with your bad self, Hani. I dropped of the kids at the pool in your name!

  8. Honey Buns Says:

    What I would like to do is have a script which takes an html file as argument, and returns that file after replacing certain comments with text generated in various ways. The script I’ve come up with is:

    #!/usr/bin/perl

    $inputfile = $ARGV[0];

    chdir(“../htdocs/test/”);

    open(IN, “$inputfile”);

    print “Content-type: text/html\n\n”;

    while($line = ) .
    $line =~ s//this is a random quote/ig;

    print “$line”;
    .

    close(IN);

    Pretty crude so far, but it works. The problem I’m facing is that the background image of the html page isnt being displayed. I assumed that this is because the current directory is the cgi-bin dir, so I added the chdir command, but this hasnt fixed the problem. I know I can get it to work if I use the full url for the image, but for the sake of portability, I want the html file to be able to use relative references. So, can anyone give me any pointers on how to change the working directory to the html file location from within the perl script?

    Honey

  9. Simon Says:

    Hmmm….having used AppFuse for a little while now I can see where your totally ocular view derives itself from, however some credit is due to Matt Raible for providing a 100% open source frame work that does actually work. It seems your total incompetence in following instructions has been your downfall. No big surprise their as it looks like you spent a whole 2 minutes reviewing this product. However its nice that you got your pet monkey to type your article for you as i’m sure your twinkie encrusted tubby sausage fingers were in capable of 5 minutes honest typing.
    Perhaps instead of being so self centered and singular of mind you could go a little bit easier on the doers of the world and get off your fat arse and do something useful….like reading instructions of frame works that are obviously over your head.
    If you actually did your homework, you would see that AppFuse is not an application, but a java framework for developing web based information systems. A Frame work by definition is a core/backbone/chasis for something else…kinda like twinkies for your curvacious belly which sustains your brain with bitterness and spite.

    The first time I used Eclipse, I said to myself ” WOW, this is a great big pile of shit!!” However I refrained from posting denegrating messages on public forums and news groups until I actually took the time to figure out how it all works. Now i think its a fantastic IDE and thanks to IBM for the time and effort.

    I suppose next you will be denegrating other free open source attempts by medium to high level java developers for their attempts at making life a little easier for fast java web development.

    Good luck with pulling your head out of you arse and enjoy the twinkies fatty!!

    Simon

  10. David Says:

    Appfuse is a framework to implement frameworks. Only developers can get away with stupid shit like that.

  11. Joe Bloe Says:

    Honey,

    You can embed a tag in the HTML just after the tag as in:

    Jason Carreira Says:

    Is that Mergere.com site for real? They didn’t specify ANYTHING they add above and beyond Maven to make it worth paying them… And who’d pay for Maven? Who’d even use Maven for free? Maybe if they were going to pay ME, but I’m not sure how well that business model works… Maybe they’ll make it up in quantity :-)

    p.s. Didn’t Jroller change their terms of use to say you couldn’t include ads on your blog? I wonder how long they’ll last..

  12. Anonymous Says:

    I never tried AppFuse but I have tried Equinox (which is it’s little brother as I understand it). I had it up and running in 2 minutes (except for the whole Tomcat must be installed first bit). Raible is on to something but it needs refinement. With a fairly sophisticated installer/downloader he could make some seriously sweet shit that would rule. I want to cherry pick the stuff I want to use and have the installer figure out how to glue it together and make it happen.

    Seriously, you have to be a fucking moron to not want what Raible’s TRYING to do. Lord knows I love glueing together 8 tons of open source shit every time I start a project. This would be easy if I was always allowed to use the same tools but I’m not. Raible’s onto a great idea; he just needs to take it to the next step.

  13. Julien Ponge Says:

    Just one word to tell that they are not using IzPack but MyJavaPack (http://open-centric.com/myjavapack) which is based on old code from the IzPack project.

  14. Clown Puncher Says:

    “Seriously, you have to be a fucking moron to not want what Raible’s TRYING to do”

    Or, you’re a fucking moron for not reading Core J2EE Patterns and doing it yourself instead of using all that Open Sores shite!

  15. AppFuse = Shit Says:

    Word up!
    AppFuse is yet another piece of shit from opensores
    webMonkeys!
    Long Live Joseph Ottinger!

  16. Anonymous Says:

    I think its got great potential. Once you get it up and running (which I did) it seemed great. I will use it on a production project and then give you my feedback. We need a project we we can find the best ways to do things in Java land. Otherwise we have to read a million whitepapers and presentations and still be stuck up a creek with no paddle. Well anyway back to my real job.

  17. java novice Says:

    Who has been using appuse for some period of time? Don’t be a loser and spit your bile here. Hani, you couldn’t get it done. That means you are an idiot. Take a close at the instruction and try it again! Don’t like a crazy dog and bark …

  18. van Says:

    Man, it doesn’t worth a bile… when we see another biggest joke in the world again: a Swing version of SWT! All the way round, and we are moving away from native code now.

    Long live pure Java… lol

  19. j2eearchitect Says:

    Who wants to join writing a spring wrapper around appfuse? It’d be mainly targeted at bitter java seniors and VB coders who want to become a java novice without having to learn java.

    To spice it up a bit, I’m thinking of exposing it via web services and writing a J2ME IDE, so you could develop AND deploy truly platform agnostic j2ee apps from the beach.

  20. stuve Says:

    Hani – you need to stop it with the ACL psuedocode my friend! And this is an asshat: http://weblogs.macromedia.com/podcast/archives/2005/06/macromedia_podc.html

  21. smallSmellyDog Says:

    I don’t give a crap about Appfuse, but this was a great bile! Thanks, Hani!

  22. Jon Tait Says:

    Its too bad this isn’t an informed review by someone who’s been through the “Quickstart” guide more than a half-dozen times. Doesn’t sound like this guy made it through the first time. Does that say something about appfuse or the reviewer?

  23. Dave Bauer Says:

    I happened to stumble across this pile of bile when asked by a newbie if I could help her debug some webapp code in eclipse. When I did a cvs checkout and saw what I later realized was the default AppFuse project directory structure I immediatly started asking questions… Sure as shit some other new guy had decided they should start the project using appfuse. Needless to say even the guy who had decided to use this thing was hoplessly lost, so I had no choice but to pull out everything salvagable, piece meal it all together into, and do everything I could to create a new project. Sans AppFuse and about 4 hours of my precious life I had them debugging and coding like they hadn’t been able to before. They are still shaking their heads at how simple a Web Application really is after trying to deal with this abomination for 2 months.

    STAY AWAY FROM THIS CRAP!

  24. Christian carter Says:

    Perhaps instead of being so self centered and singular of mind you could go a little bit easier on the doers of the world and get off your fat arse and do something useful….like reading instructions of frame works that are obviously over your head.
    If you actually did your homework, you would see that AppFuse is not an application, but a java framework for developing web based information systems. A Frame work by definition is a core/backbone/chasis for something else…kinda like twinkies for your curvacious belly which sustains your brain with bitterness and spite.

Leave a Reply