Flex on Java from a Domino point of view

I have just been to the Skills Matter 1-day conference for Flex on Java.

The venue was very industrial (deliberately so, as I saw them decorating it months ago), can’t fault the facilities, fresh coffee, brownies, desks in front of the presentation screen with power and wifi, all you could wish for. Conference attendees were a mixed lot, from students to grey-beards even older than me.
It was a very very full day, packed to the gunwales with high powered tech stuff from quite serious names in the areas of Flex and Java. You had to concentrate to keep up (if you were a beginner in either Flex, Spring or Java then it would have been a bit of overkill, but personally it was great to not be falling asleep with boredom at a training session),

I think a list with a justification paragraph for each statement is the way to go, as my main readership is still overwhelmingly Domino-based, this report is slanted for that audience:

1) SpringRoo and in particular its plug-in for Flex, is something to watch, powerful and looks VERY easy for a Domino person to pick up and use.
One of the things that lots of other platforms don’t do that domino does is easy data field insertion. When using Domino you just bung a field on a form and that’s that. I have missed it a lot with the Java and Flex stuff I mainly do now, SpringRoo gives you this back for Java and Flex projects, so I recommend you go on to Spring Source and download it as well as follow @SpringRoo and @jeremyg484 as the code is not gold yet.

2) As far as a back end to Flex goes, Grails has little to offer over Domino at first sight (I’m open to someone proving me wrong).
Now I’m not disrespecting Grails which is rather good and new web 2.0, but if you’ve already got domino, then I don’t think you need to get excited. If you have not then it is a definite contender from an app dev point of view. In the 60 mins that it was described to me I did not see anything to make me want to drop Domino (except maybe for the price).

3) Spring for Action Script and Parsley is one abstraction layer/IOC too far, I think I’ll give it a skip (opinion updated see below).
There were 2 presentations on this subject, one on Spring for action script, one on Parley; all the way through the presentations nothing grabbed me as “Oooo that would save time” (although its handling of asynchronous calls to the server was quite nice). The Flex file is seldom as complex as the back end Java app for the apps I’m working on, perhaps my front ends are too simple, but the overhead for these layers did not seem to justify the time savings. I should point that I’m not an expert in this area, so I might have merely missed the point (after talking to other people it has appeared that I HAVE missed something, but I still don’t know what 🙁 So I might revise my opinion. In the meantime I’m going to look up Parsley from Spice Factory and learn formally what IOC is {rather than merely using it when convenient})

4) Light touch auto-code generation is quite rightly in vogue.
A lot of the stuff we were shown contained auto-generated code, but it is very light touch code, in that it will work stuff out for you if you leave it to, but the second you touch a section (for example put getters and setters in for a specific field, then it defers to your code without taking ALL of its toys home in a sulk or just ignoring your changes (IBM rad and Domino are both very guilty on this as are the Microsoft boys). It was a welcome change and made you more inclined to try the tools to start with as you can override them without a load of hard work.

5) Spring Security seems to be the best security for java.
Not only is it very mature and well supported and integrates well with other systems, but looks very very familiar to those of you who are used to Domino (particularly the roles), and takes hardly any learning (feel a blog entry coming on).

6) To stop your Flex apps just ending up like round-cornered classic notes apps, we have to change how we look at applications and look at them in the way the RIA lot do.
This was learned from www.riagora.com @mchaize, who has done some of the most amazing apps I have seen of any sort, web or not, with little tips such as that fancy effects can have a hidden use, e.g. while people are watching a fancy screen fade, they are not actually waiting for your data to transfer, so your apps feel quicker. The crux of the lesson was that you should build your app from a users’ needs point of view rather than as the developer sees it from a system point of view. I know this seems obvious, but I suspect most of us make that mistake (personally I wonder if this change of view point is why people like Bruce can design notes apps that make my apps look like trash).

Things for you (and me) to go off and learn:

  • Spring – face it you just need it (and related projects, Spring Integration, SpringRoo, Spring Security
  • Blaze DS is worth looking at if only to see if the performance boost of AMF (Action Message Format) which is used for type mapping between Java and Flex is as efficient (compared to to things like json) as it’s made out to be, credit must go to Mark Barton who recomended this to me months ago

    Other stuff:

  • A lot of the funky stuff runs in background command line terminals, don’t expect GUI (all those notes server console hours will pay dividends).
  • A lot of the cool tools are still using Flex 3.
  • A nice touch was that two of the “end of the day” raffle tickets were free attendance to skills exchange courses on HTML5 and Ipad/Iphone dev 🙂

    All in in all, very interesting, a good set of technologies, both a complement to and, if forced to, a replacement for Domino (hence my alternative platform stance to Domino Here), but quite frankly there was nothing I saw that we could not glue to Domino in some way making for a hideously powerful set of tools.

Jonvon’s Post

Jonvon’s excellent post can be found here, it deals amazingly with an issue that has been troubling domino developers for a number of years,

Personally I adopt a slightly lighter view on the whole subject, I have not been a true Domino developer (in the classic sense) for a couple of years now, I have just been a web app developer who uses Domino a lot, the idea of being specific to one brand or platform does not really bother me, I just use what ever the client has installed or what ever best solves the problem, I know and develop on Jboss but I do not consider my self to be a Jboss developer, so many of us are so used to domino providing all we need that we forget that it is just a bunch of tools glued together, it is a server, it is a DB platform, its a programing environment, use what you need where you need it, play to the strengths, bypass the weaknesses, hopefully Domino wont die like that, it will just evolve (cause its presence in a project wont be all or nothing).

Domino will live on, on my CV as long as I can get work and deliver to my clients with it, and quite frankly it contains the best and friendliest bunch of people that i have found in any online community.

P.S. the reason that this post does not appear on planet lotus as I don’t want to be seen to be piggy backing on Jonvon’s far superior post, but I’m just having a private(ish) vent.

Fitness Week 15

Due to a mixture of overwhelming work and Mr Green skiving on holiday, my blog has been a barren place, but we are back training so i have to do at least one tech entry per week to make up for these notes

First person to win 250 squash games
Kieran: 31 Games
Mark: 55 Games
(1 point head start on a game for every 10 games the other person is ahead)
(we also play by “you have to WIN a game, genuine mistakes on game points are ‘let’ “)

I don’t know what happened to Mr Green on holiday but his game has come on leaps and bound and delivered a overall thrashing to me this week.

First person to loose 2 stone
Kieran ( Initially 15 Stone, 8 pounds) : 14′ 10″
Mark ( Initially 16 Stone, 8 pounds) : 16′ 6″

Oh yes my diet is coming on in leaps and bounds!!, really it is

Multiple File Upload Identifying Values tip

I know this is very old school, but i just needed it for an existing app so this is more an Aid Memuor, also I could not remember where i got it from (someone yell if I’ve pinched your tip)

Sometimes you have multiple files uploads on a web form, and you want to allocate each file to a specific place or function, i know you can just work out which file is which based on its order in the @AttachmentNames list as per below

 

image := @AttachmentNames;
@If( @Elements(@AttachmentNames) > 0 ; image[1] ; “” )

but this only works well when the document is not edited all the time (new files added and deleted), personally i prefer an alternative method

First put your file upload and a editable field on your form

FileUpload3.jpg

Set the field as hidden via html properties and give the form an id value the same as its name

FileUpload2.jpg

Now put the following JavaScript in the other html field on the file upload properties

onChange=”document.getElementById(‘SponsorLogo’).value = this.value”

(obviously swapping out the elementid to the one you are using)

FileUpload1.jpg

Now you will find that the field contains the value of the field both with JavaScript and notes wise on save

Fitness Week 9,10,11

3 weeks worth of results, but strangly little progress

First person to win 250 squash games
Kieran: 27 Games
Mark: 52 Games
(1 point head start on a game for every 10 games the other person is ahead)
(we also play by “you have to WIN a game, genuine mistakes on game points are ‘let’ “)

It should be noted that we are on to up to 6 games per match now and the games are far far harder and faster, we are going through balls at a rate of knots (single yellow spots rather than our traditional double yellow spots), i feel that its only the fact that mr Green wear the wrong trainers and so can’t corner properly that is letting me win

First person to loose 2 stone
Kieran ( Initially 15 Stone, 8 pounds) : 14′ 10″
Mark ( Initially 16 Stone, 8 pounds) : 16′ 4″

you know, it may be time to eat properly