Jul 23

Another 1p on annotation overriding

Tech No Comments »

There is a lot of chatter on the topic of annotation overloading:

TheServerSide Discussion

Cedric’s: Overriding annotations

Bill’s: XML overrides for EJB3

Gavin’s 2c

I think that:

  • We do need a way to override annotations for deploy time
  • We need to make this ’standard’ and not specific for one spec or set of specs
  • We need it to just work. I want my annotation consumer to also understand the fact that there may be a file called annotations.xml in META-INF or META-INF/package or in each package, or whatever…. that has the overriding elements

I agree with Gavin that “I really wish something like this would have been included in JSR-175″.

Jul 23

Resign Patterns

Tech No Comments »

I saw Resign Patterns: Ailments of Unsuitable Project-Disoriented Software over at TheServerSide.NET:

Resign patterns documented include:

  1. Abject Poverty: The Abject Poverty Pattern is evident in software that is so difficult to test and maintain that doing so results in massive budget overruns.
  2. Simpleton: The Simpleton Pattern is an extremely complex pattern used for the most trivial of tasks. The Simpleton is an accurate indicator of the skill level of its creator.
  3. Detonator: The Detonator is extremely common, but often undetected. A common example is the calculations based on a 2 digit year field. This bomb is out there, and waiting to explode!

This reminds me of the

Jul 23

WebLogic 8.1 Platform named “far from revolutionary” in class action law suit against BEA

Tech 62 Comments »

There is a new Class Action Lawsuit Commenced Against BEA Systems.

One of the claims:

that the Company’s WebLogic 8.1 Platform was far from “revolutionary” and was not selling as defendants claimed

How can you quantify revolutionary btw?

More info:

The complaint charges BEA and certain of its officers and directors with violations of the Securities Exchange Act of 1934. The complaint alleges that during the Class Period, defendants issued materially false and misleading statements to the investing public regarding BEA’s business and prospects. As a result of these false statements, BEA’s stock price traded at inflated levels during the Class Period, increasing to as high as $14 in early 2004, whereby the Company’s top officers and directors sold more than $13 million worth of their own shares. Then on May 13, 2004, BEA reported disappointing first quarter results, citing the difficult selling environment and sales execution issues as the primary reasons. On this news, the Company’s shares fell 30% to $8 per share.

Jul 22

Tuples and Globals in Groovy

Groovy, Tech No Comments »

Tuples

I am really looking forward to life with Groovy when tuples are supported.

I always liked working with these guys in other languages (including Perl):

my ($name, $address, @otherstuff) = parseContactsFile();

Most of the time I get around this by trying to return back real things:

contact = parseContactsFile()
println contact.name

however for some things it can be nice… e.g. from:

new File(”input.txt”).eachLine { line |
s = line.split(”\s*=\s*”)

println “Name: ${s[0]}”
println “Value: ${s[1]}”
}

to:

new File(”input.txt”).eachLine { line |
(name, value) = line.split(”\s*=\s*”)

println “Name: ${name}”
println “Value: ${value}”
}

Globals

A lot of questions from people hacking up simple Groovy scripts result from their assumptions not being met.

A common one is thinking that you can create a variable at the top of a script and have it scoped so you can use it inside methods / closures somewhere down the pike.

Globals are not considered to be friendly folk, but for simple scripting they can be a pleasure.

I just hope that when implemented in Groovy they don’t go the TCL world, so we don’t see: upvar foo and global foo all over the shop!

Jul 22

Truly scary: Just In Time Groovy Libraries

Groovy, Tech No Comments »

Now this is scary :)

<jstrachan> brianm: some code should arrive soon in groovy where we can auto-download jars & dependencies from maven repos based on class loaders
<jstrachan> philip milne (ex-sun) has done it & plugged it into groovy
<jstrachan> so you can do things like
<jstrachan> new com.foo.Whatnot().doSomething()
<jstrachan> and it’ll load the latest version of whatnot.jar from maven & add it & dependencies to your classpath & run it
<brianm> hahahahahahaha
<jstrachan> would make scripting & using other libraries/frameworks really easy
<jstrachan> :)
<brianm> remote classlaoader pointed at jar in repo baby
<brianm> why download?

From Brian Mc

What would be cooler is:

% groovysh

1> new com.newpackage.ObjectThatWorksRemoteControl()
(thank you Dion. I just created a new object that will work a remote control and exported the jar to the maven ibiblio repository for others to use)

Jul 22

My brother editor thinks ORM is like Vietnam

Tech 19 Comments »

Ted has spoken out on Objects and Wars.

“Object-relational technologies are the Vietnam of the Computer Science industry.” Vendors who go down this road, usually find about the same results emerge as the US did in Vietnam.

Now, the discussion that Ted was in at the time was with Microsoft folks at TechEd. You can hardly blame them for thinking this was as ObjectSpaces has a never-ending release cycle. As soon as Luca (project lead) gets close, Microsoft has a re-org which has him tied to some new schedule. At the moment he is tied in with WinFS and the Longhorn launch. As soon as that gets close they will move him again. Poor guy. He just wants to ship!

I do agree with Ted in that many companies fall into the following trap:

  • Step 1: Manually writing JDBC code
  • Step 2: Write some wrapper classes to deal with common things (getting the connection I want, handling the million try/catch/finally, etc
  • Step 3: Get into primitive OR mapping
  • Step 4: Realise that what they haven’t isn’t that useable, and lots of hacks go in to get around problems as they come up

ORM is far from perfect, but we have some great tools now. If you pick up Hibernate, Cayenne, Castor-JDO, iBATIS SQL-MAPS, a JDO implementation, [insert other tools] you will be ahead of the game. A lot of smart people have thought about these problems and although there may be a few hacks a long the way, you are much better off than you were before!

So, cheers to the good OR tools that we have. Hopefully Microsoft will get ObjectSpaces one day ;)

Jul 22

Angle brackets considered evil :)

Tech 5 Comments »

I was asked what I thought about the entry (and many other comments) Getting rid of XML with Groovy and Janino.

Is

<site fallbackid=”ELEMENT4″>
<globalexit name=”globalexit1″ destid=”ELEMENT6″/>
<globalexit name=”globalexit2″ destid=”SUBSITE.ELEMENT2″/>

intrinsically worse than

processor.site(fallbackid:”ELEMENT4″) {
globalexit(name:”globalexit1″, destid:”ELEMENT6″)
globalexit(name:”globalexit2″, destid:”SUBSITE.ELEMENT2″)

I don’t think so. As I have said before, I have nothing against angle brackets themselves. It has been how they were weilded.

What would make me want to have this config be in Groovy versus XML would be if I needed to do some real logic.

E.g. grab some info from a db, loop through it creating nodes.

The power isn’t in how it looks, it is in the fact that you can do normal programming tasks within your configuration area itself!

Give XML a break :)

Jul 21

Wireless companies (Sprint, Verizon, Cingular) open up their coverage maps

Tech 2 Comments »

I can barely get decent coverage in my own home at the moment. I always find it bloody hard to know what services offer good coverage in the areas that I care about.

Luckily, after being badgered by attorneys, Sprint, Verizon, & Cingular are going to open up their coverage maps, and let people cancel within two weeks of signing up for service…

I wonder if they will let people cancel know they know the truth about their coverage!

Read more: Wireless Companies Enter Rights Agreement

Jul 21

Grady Booch sees value in AOP

Tech No Comments »

Everyone and their mother has a view on AOP and whether it is good, bad, ugly, evil, etc.

Grady Booch entered the fray when he said:

“Many of the frameworks of the future will be built upon UML semantics, and that aspect-oriented programming will be mainstream.”

Now he is a Beamer (IBMer) he made a jab at Sun:

“Java is not the last language — although it may be Scott McNealy’s last language.”

Jul 21

Microsoft’s new technologies: BOA and BML came out of alcohol ;)

Tech No Comments »

This is hilarious. Don Box, Clemens Vasters, and others had a few brews which let them down the path of a high school prank :)

The victim was Mary Jo Foley, a writer for Microsoft Watch (and formally of eWeek, and other mags).

The guys created fake acronyms and technologies such as:

  • BOA: Business Oriented Aspects/Architecture. Favourite quote: “What I like about Boa is that it doesn’t constrict you.”
  • BML: Business Markup Language. XML for MBAs
  • Indigo Marks

Read more:

The BOA has been hunted

Let the ‘BOA’ Buyer Beware

Booze blamed for MS staff’s ‘foggy’ blogging hoax

Microsoft developer hoax backfires