Upgraded WordPress to 2.8

I’ve updated WordPress to 2.8 last night. I haven’t seen any problems myself so far. But if you do notice something, please let me know.

Which reminds me, does the mail form still work after this update… I’ll go check that right now. 🙂

.
.
.
It still works. 🙂

Back from the JavaOne 2009

Phew, back from the JavaOne 2009 again.

Too bad Jonathan's assistent didn't allow my camera to focus. First time I’ve been there. And boy could you feel the recession at the JavaOne… I think the number of visitors was at an all time low. Also in San Francisco itself recession was around you. Loads and loads of properties available for lease or sale.

But me and my colleagues did our best to support the global and local economy by living large. 🙂 Besides the conference we did all sorts of fun activities. I even biked the Golden Gate the last Friday afternoon.

I also learned a valuable lesson when returning from another time-zone. When I got home I did some things and then went to my girl’s place. I should’ve asked her to keep me awake at all costs. Sunday I sat down on her couch and I kind of instantly fell asleep. I paid the price on Monday and Tuesday. Fortunately my employer was very understanding about Monday and Tuesday I’ll recover by working a few extra hours this week or next week. 🙂

More to come later. Suffice to say that on record nobody from Sun was allowed to spill any details on the Oracle/Sun merger. I understood of the record that there will be another JavaOne next year. Let’s hope that by then it is clear what will happen with Java, cause right now it’s anybodies guess what Oracle has in store for us. I’m expecting a whole lot, but it is still a bit early to say what exactly Oracle will keep and what Oracle will throw away. I do think JavaFX is here to stay though, the new JavaFX 1.2 is a major improvement compared to the 1.1 release. Check Paul Bakker’s entry on JavaFX for more details.

Too bad the assistant of Jonathan Swartz didn’t allow my camera to focus properly.

Also many thanks to Bert, Paul, Marcel and Hans for being such great travel companions throughout the week.

AVG 8 and Mozilla Thunderbird

Something I ran into on a system of a relative.

When running AVG 8’s outbound mail scanner and your ISP does not require you to provide a username and password when connecting for an outbound SMTP session…

Make sure that you do NOT check the checkbox in the SMTP settings dialog near the username and password field in ThunderBird. If you do, you probably have trouble sending email.

This seems to only happen with AVG 8 or later when you check the scan outgoing messages option in AVG system tray application.

Yup, this time it seems to be really it for SUN

It seems Oracle has put forward a bid on SUN Microsystems. Sun apparently has accepted this offer and both parties are now in final negotiations.

Personally I didn’t see this one coming. The IBM/Sun brush a short while ago was kind of obvious to me. Still a bit of a surprise, but yeah IBM absorbing SUN I can dig that.

Now Oracle has stepped up to the plate and dumped a load of money on the table. Oracle never has been my favourite when it came to Java related technology. Lots of cool demo’s that are hard to reproduce in real life situations if you ask me. Also Oracle doesn’t give me that welcoming feeling when getting into contact with them. I guess we’ll just have to wait and see how this ordeal is going to affect Java in general.

I see a lot of competition between IBM and Oracle in the future. Because let’s just face it, is there any other big Java player to speak of if this deal gets finalised? There just aren’t any other vendors that could offer a complete no holds barred JEE stack besides those two big names.

Latest iPhone WordPress app crashes a lot

While posting from the J-Spring conference with my iPhone I noticed the WordPress App (v.1.21) crashed a lot when trying to upload pictures. It worked wonderful at the last J-Fall. I sure hope they’ll fix this, cause I can not find a solution or workaround on the web at the moment. Perhaps re-installing the WordPress App might work?

J-Spring: That’s it for today

I’ve decided to skip the last round of sessions, it’s sunny today and air in the session rooms is very warm and stale. Also the battery if my phone is almost dead. 🙂

Update:
I’ve updated all the posts of today, checked spelling, adjusted tags and uploaded photo’s. Enjoy….

J-Spring: Brainfuck’s quest for CafeBabe – a journey through JVM land

Jeroen Benckhuijsen has this oddly called session about implementing a certain language on top of the Java VM. He’s telling a bit about implementing a custom language using pure byte code.

He’s using an interesting approach. Weird slides with a funny story.

It’s a technical talk about the how class files are laid out and how they work with the Java memory model. It’s a lot info available on the web. So I’ll shut up now. I’ll post links later.

IMG_0081.JPG

J-Spring: SOA, it’s a hard knock life

Tijs Rademakers has a presentation on SOAs in practice. What problems do you encounter when implementing a SOA. After having discussed the advantages of SOAs he dives into the rumours that SOA is dead. But hey, services are the future. Anne Thomas Manes has a contradicting statement.

It is true that SOA has not proven to reduce costs. SOA projects take longer to implement because the services have to be implemented in a re-usable way. Often a SOA project boils down to an ESB selection, but is that deciding on what SOA architecture you want to implement? Discussions often focus on the implementing technology and not the underlying SOA architecture.

Tijs introduces a case study. A COBOL applications of 14500 function points. It has been transferred to a SOA based architecture. A lot of companies belief that implementing everything as a web service is the same as implementing a service architecture. But SOA is more then that. While a bottom up approach might work, a top down view is important as well. Implementing reusable services is only possible if you take the surrounding architectural landscape into account. A canonical data model is important to facilitate a standardised data language for all services.

SOA architectures are built according to a plan, but the legacy application being replaced is also often built based on a clear plan. Code is reused is built according to an architecture of days gone by.

Is the entire web of systems and services defined within a SOA application really that much simpler then a legacy system?

Is a SOA something you should do? And if so, what technologies should you use? Is an ESB a requirement or any of the other standards. (SOAP,WSDL,WS-,SCA,OSGi,etc.)

Implementing a service is easy. Just add @WebService. A top down and bottom up is available. The same goes for REST services with Jax-RS.

Java – XML binding can be challenging. You often need to write some custom code. This is due to JAXB v1 API. But there are better frameworks available. JAXB2 JIBD XSTREAM. New languages show the way to the future. Some aspects should be ported to Java.

It’s a bit of a strange presentation. First it’s all SOA, now we’re talking Groovy??

SCA is a good option, with it’s declarative configuration and flexibility in choosing the actual implementing technology. I should read up on SCA a bit.

OSGi is also a very impressive platform. A lot of implementations using OSGi are emerging. It supports all the service oriented functionality. Wso2’s Carbon is a nice example.

Next topic, does SOA entail the usage of an ESB? An ESB is a platform you can use to implement a SOA. but it’s just a platform with a high risk of vendor lock-in, under the hood it’s all custom proprietary. You always need custom code to integrate an ESB. Vendors push ESBs as the way to implement a SOA, but it is often nothing more then a tool to create a nasty lock-in. An ESB does a lot, use it, but be careful for the lock-in trap.

An ESB often only hides a lot of shit on an overview architecture slide.

An alternative would be a sort of guerilla SOA. Unlock lots of systems with restful services. Then don’t define a lot of rules and let it grow. All you need at a certain point you need a good way to resolve the locations of services.

In the end you need business level support to be able to do a service oriented approach. Also business has to be made aware of the initial impact of a service approach. But also of the long term benefits. Consolidation of services and systems is recommended. But never forget that business often steers on short term goals while they should look at long term goals.

IMG_0080.JPG

J-Spring: half time keynote Mod4J

Jos Warmer has the midday keynote. He has an introductory talk on the Mod4J project.

Jos is an MDA enthusiast and as always makes a case for the model driven approach. Check the Internet for more details. I’ll post some links and info later, now I’ll just sit back a bit and relax a bit before jumping into the remaining sessions.
IMG_0078.JPG

J-Spring: java programming in a multi core world

Angelika Langer has a talk about multi threaded programming in a multi processor environment.

Due to CPU developments new issues arise in current applications when newer CPUs are used. The JVM now has more and more functionality to support multithreaded/multicore environment. The java.concurrent package. Available since java 5.

The new CPUs demand a-synchronous approach. Therefor the java NIO api was born. In java 7 they are planning for a-sync file io.

JMS is a result of the need for a-sync operation.

Ajax results in more and longer running network operations. Long lived http requests results in more overhead in the io layer of the server.

The java memory model is an abstraction of the underlying hardware memory models. It addresses atomicity, visibility and ordering. Angelika details some examples.

So far a very high level overview.

Sequential consistency does not exist in the JVM. It’s a mental model used to teach multithreaded programming, it is not guaranteed by the JVM. You have to use language construct to enforce proper visibility. Synchronisation ensures proper execution order and prevent trashing half written objects and variables. To ensure a proper execution it is required that you force updating main memory by using the volatile keyword.

Visibility is ensured when using explicit synchronisation, thread start and termination, read/writes of volatiles and first access of a final field.

Volatile is not transitive, it is only applicable for the reference marked as volatile. She shows an example of the non volatile field. But since Java 6 there are some changes to the memory model. Changes to members of a volatile reference are propagated when they’re performed before modifying the volatile reference itself. Complicated stuff that breaks easily.

Volatile is cheaper then synchronisation, but still there’s a cost.

Amdahl’s law. Look it up, good stuff. Double the hardware will not double the performance. It depends on the amount of parallel execution paths.

It is an easy trap to think that having a queue for inter process communication will not contain blocking behaviour. Try to have the absolute minimum of synchronous code if performance is key.

There are techniques to avoid serialisation. Use immutable copies, use thread local objects instead of shared objects. Lock free programming gaining popularity, volatile declaration is still required though. Compare and Swap is an example of a technique to allow lock free programming. There are some things on the horizon, like transactional memory.

IMG_0075.JPG
IMG_0076.JPG