The swallows have arrived too now
Posted & filed under General.
Hot on the heels of the Cuckoos, I spotted the Swallows on Skye today although I thought I saw either a swallow or a martin about a week ago
Posted & filed under General.
Hot on the heels of the Cuckoos, I spotted the Swallows on Skye today although I thought I saw either a swallow or a martin about a week ago
Posted & filed under General.
A few people have been commenting on the previous post about the Cuckoo’s arrival and today I heard the first one this year on Skye. It’s also the first fine day since the run of wild and very wet weather we’ve had since the Easter holidays.
Posted & filed under The Rantorium.
This interesting post seems to suggest that there are basically two reasons people use eclipse. Peer pressure or miserliness. I wonder how much effect IDE wars have on the production of reliable software? I know some people who would rather produce naff code as they don’t understand how to use eclipse, rather than buy, yes, buy! a tool that makes them far more productive. So why are these people in the software programming profession? Well, they’re not. They’re just snuffling around the edges, not willing to commit to anything pricey. Not willing to invest in their future. They regard hanging out in open source message fora as cool. “Hey, I’ve just ‘developed’ a really groovy new plugin for GroovyEd” will be more likely heard from then than, “so how do you see the application fulfuling your business requirements?”. They become open source hermits. They’re also more likely to say “I don’t do Windows”, no matter who their client is or whether their requirements are better met by use of a non freebie OS.
A lot of open source software is superb but a lot of is just garbage. I happen to think eclipse is garbage but that’s just my opinion of it. I use it for C++ and Python development on Linux but I wouldn’t touch it for Java. I use IntelliJ IDEA for Java. When I develop C++ on Windows I use VisualStudio. I use the best tool for the job.
Can you image engineers at NASA behaving the same way some software engineers behave?
“NO, I will NOT build the space shuttle from 5 million dollar composites. I will instead build it from cardboard. It’s free and can be found in most skips. However, if the price of cardboard should rise above 0 dollars I shall find some other open source alternative, such as used paper. We must support those who produce free building materials.”.
Our job, as software engineers, is not to support the continuance of naff freebie software. It’s to produce reliable, robust systems that our clients can trust to do the job they ask it to do.
Posted & filed under The Rantorium.
This gal is just superb. She’s got a really nice voice and I love the guitar. April Hobart, keep an eye out for her.
Posted & filed under General.
Ah, the bane of my life, classloaders! Here’s an interesting webcast about them.
Posted & filed under Web Services.
I’ve been writing some web services for the ASK project, which involve putting the CollectionManager interface online as a web service. As it’s rather large I thought I’d split up the WSDL into modular parts. Why create WSDL manually and not generate it from the implementation class? Well, the interface has method overrides in it, which aren’t allowed in WSDL2.0, so to keep on the right side of the standards, I modified the interface to remove the overrides and created the WSDL by hand. I could have just coded up a dummy impl class for the modified interface but the trend these days is to use WSDL as your API and to design from the ground up using WSDL. Plus it would be good to keep my WSDL skills sharp.
The following diagram shows what I did. There’s a root WSDL, which just defines the service name and location. It then imports the root XML schema that defines the WSDL message types. That in turn imports the domain XML schema for the ASK web service data objects. The root WSDL also imports the bindings from another WSDL file. The bindings file then imports the portTypes WSDL file, which in turn imports the messages WSDL file. So if I want to, say, offer the CollectionManager service over another type of protocol, I just have to import a different bindings file. If I want to change method signatures in the service, I just modify the messages types XML schema file.

Modular WSDL. Click on image for bigger size
When I ran it all through Axis2 wsdl2java, it blew up with the error:
org.apache.axis2.AxisFault: First Element must contain the local name, Envelope
So I put the whole lot into one WSDL file and it worked. I then went back to the modular WSDL and changed the way the XML schema were imported. The root WSDL imported both XML schema files, for the WSDL messages types and the ASK domain types. However, it transpired that the ASK domain types were not visible to the WSDL messages types and that’s what was causing the problem.
So I refactored by removing the ASK domain import from the root WSDL and importing it from the WSDL messages types schema instead.
Now it all works.