Jul 23
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
I saw Resign Patterns: Ailments of Unsuitable Project-Disoriented Software over at TheServerSide.NET:
Resign patterns documented include:
- 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.
- 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.
- 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
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
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
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
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
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
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
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