« Previous month (Mrz 2008) | Main | Next page of month (Apr 2008) »
 20080429 Tuesday April 29, 2008

Java FX Player - will it come at JavaONE?

Java SE 6 Update 10 is a huge step forward. I'm using it for development (Netbeans / Eclipse / Glassfish / Java DB) and works really well (no issues so far). During my RIA session at the JAX-conference one participant asked me about the relation between Java FX script and Java SE update 10. Actually Java SE 6 Update 10 comes with some really interesting features like improved installation, "kernel" and "class cache". Actually it wouldn't be that hard to built an Java FX Player, using Java SE 6 Update 10, which dowloads Java FX Script and executes (precompiles) it directly. I wouldn't be surprised to hear an announcement at the JavaONE 2008 this year :-). It is just the logical next step...

Gesendet von admin [Java EE 5 Architectures And Idioms] ( April 29, 2008 09:28 AM ) Permalink | Kommentare [1]
[my website] [This entry is based on / extends my books: Enterprise Architekturen, Leitfaden fuer effiziente Software-Entwicklung and: Java EE 5 Architekturen, Patterns und Idiome]

 20080426 Saturday April 26, 2008

Java SE 6u10, RIAs, Java EE Hacks, Martin Odersky (Scala), Dalibor Topic (openJDK), Ted Neward (.net & Java) - JAX 08 afterglow

I really enjoyed JAX this year. I had to reschedule the trip and arrive earlier at Wednesday - the reason was: GreenFire, the OpenSource Heating Control (the name OSHC would be nice as well) was nominated for the JAX innovation award. The bigger surprise was the 4.th prize and the ...audience award (see the german posts (1, 2)). I got so many emails and questions about GreenFire afterwards, that we decided to launch a spontaneous BOF at thursday - 60 geeks interesting in heating systems and Java participated. We discussed further possibilities to save energy - it was fun.

Just after the nomination Martin Odersky gave a great talk about Scala - and explained the principles (functional programming, closures, operator overloading) and mentioned "reactive design" and "context switching of this", what somehow attracted me. After the talk we discussed it more deeply - it turns out that "reactive" can be compared with  "bind" in  Java FX or declarative PropertyChangeListener in Java. What's cool as well, in Scala it is possible to switch the context of "this" via mixins, so it opens some interesting approaches and patterns - it's almost dependency injection.

At Thursday I gave a talk about the impact of JDK 6u10 to the RIA landscape and pragmatic approaches for maintainable RIAs. It turned out, that only a fraction of the audience knew Nimbus and JDK6u10 - so it was easy to impress the participants hacking in real time a small Desktop app with data binding and switching to Nimbus afterwards.

Although Dalibors Key Note at Thursday was rather high-level, you have to know, that Dalibor is the creator or Kaffe.org - an alternative implementation of Sun's JDK. We used in several embedded projects - and it worked great.

Thursday evening we had a lunch together. I started a intense discussion with Ted Neward about Object Relational Mapping (if you have the chance ask Ted about this :-)), and Dependency Injection in EJB 3.0. We chatted with Dalibor Topic about interesting strategies for desktop java as well.

I gave a whole day workshop about Pragmatic Java EE 5 at Friday. It started with an experiment - instead introducing Java EE 5 in theory with slides, I wrote a sample CRUD application - from scratch (workshop management :-)) with WebServices, JMS, Interceptor, JPA-persistence and Dependency Injection in the first out and deployed it several times to the server. I tested the application outside the container as well. I explained the principles on real code.

At Friday came Juergen Petri to me and gave me the O'Reilly book "NetBeans RCP" - it turned out, that he participated at the EntwicklerTage Workshop 2007 in which I used Netbeans 6.0. After the workshop he decided to write a book about Netbeans RCP... I reviewed the contents of the book already - it seems to be good.

I'm already looking forward to Jax in ...San Jose in October - hopefully the JAX-spirint will not get lost.

Gesendet von admin [Events] ( April 26, 2008 10:08 AM ) Permalink | Kommentare [1]
[my website] [This entry is based on / extends my books: Enterprise Architekturen, Leitfaden fuer effiziente Software-Entwicklung and: Java EE 5 Architekturen, Patterns und Idiome]

 20080424 Thursday April 24, 2008

Addtional Session - GreenFire BOF at JAX

Because of high demand, and many open questions, I will give an additional talk about GreenFire, the Audience Award Winner and 4th prize JAX Innovation Award: 

Why it is easy to save energy?
Why Groovy is cool? (actually hot in the context of GreenFire :-))
How GreenFire saves energy.
Is my heating Java-enabled?
Heating and JavaFX.
Why SunSPOTs are useful?
Can you heating speak:-)?
Clustering Technology (Shoal) in a heating system.
Why a washmachine cable was sacrificied.
Why mocking leads to >65000 degrees Celsius.
...and why Ruby On Rails was too complex, and Java EE 5 (Glassfish) just right :-)
Next steps - and new ideas - and Enter The Matrix

After a short introduction to the domain of heating systems :-), I will try to answer this and your questions as well in the BOF / Session (Thursday: 24.04.2008):  in Saal 12 BC, 15:15 - 16:15.

Gesendet von admin [Java EE 5 Architectures And Idioms] ( April 24, 2008 10:55 AM ) Permalink | Kommentare [2]
[my website] [This entry is based on / extends my books: Enterprise Architekturen, Leitfaden fuer effiziente Software-Entwicklung and: Java EE 5 Architekturen, Patterns und Idiome]

GreenFire 4th Prize at JAX Innovation Award and Audience Award - and the answer to a most FAQuestion

GreenFire.dev.java.net  - "the pure Java EE 5, intelligent heating regulator" won the 4. prize (1000€) and Audience Award (1000€) - what is a nice surprise. However, I spent already the money - ...and donated it to "Doctors Without Borders". So hacking Java EE 5 is not only good for the environment, but other stuff as well :-). The event at the JAX was really nice, I'm already looking forward to my RIA and Java 6 update 10 Session and Pragmatic Java EE 5 Workshop tomorrow (Fiday 24.04).

The question "Is GreenFire heating system dependent?" and "How is it possible to integrate a heating system?" was asked several times. The whole heating system is abstracted by just one interface (in the HeatingControlIntegration project - it is already checked-in):

public interface ParadigmaAccess {

    public float getExternalTemparature();
    public float getInternalTemparature();
    public float getTPU();
    public float getTPO();
    public float getTWO();
    public int getTagesGewinn();
    public float getMomentaneLeistung();
    public float getTWU();
    public float getTSA();
    public float getTSAMax();
    public int getGesamtgewinn();
    public void setHeatingMode(HeatingMode mode);
    public HeatingMode getHeatingMode();
    public void close();
}
The implementation of the class is the "driver" and actually heating dependent. In my case it talks via a COM-Interface with the heating. The COM-Interface is the maintenance port of the system. Most of the modern heating systems have such an interface. I will clean up the interface in the next time (and translate the method names to english). If your heating has a  COM-Interface as well, you will be probably able to reuse some communication code as well. ...stay tuned for updates. 

Gesendet von admin [Java EE 5 Architectures And Idioms] ( April 24, 2008 10:35 AM ) Permalink | Kommentare [1]
[my website] [This entry is based on / extends my books: Enterprise Architekturen, Leitfaden fuer effiziente Software-Entwicklung and: Java EE 5 Architekturen, Patterns und Idiome]

 20080422 Tuesday April 22, 2008

Extending JavaONE activitities, 2 Lightning Talks, Unconference, Podcasts ...and maintainable RIAs

I'm really looking forward to the JavaONE conference. I will participate at the Unconference at Sunday and registered some Glassfish topics - especially real world, scalability and Java EE. It starts at 3.00 PM - as a good unconference citizen (there are no more speakers), I thrown away all slides and looking forward to the interactivity :-).

During the CommunityONE I will give two lightning talks. One about GreenFire, the another one about Underworld.  I will introduce both more deeply in a minitalk in the java.net corner at Thursday. And finally, on Friday, I will give the "actual" talk about Swing, RIAs, JSF, Hybrid Components, maintainability and presentation patterns. Because of last year's feedback, I will go even more deeply into the technical stuff and introduce the following topics with some demos:

"Consumer JRE™ software, Nimbus, WebStart, Beans Binding, Java™ DB, JavaFX™ technology allow the creation of slick, interactive and especially maintainable applications. This session discusses pragmatic approaches for rapid but still maintainable building of interactive rich internet applications. Especially pragmatic and real world approaches and challenges like:
- Integration of EJB™ 3, legacy services and local business logic
- Efficient separation of generated (e.g. matisse, visual webpack, persistence layer generation) and developed code with Model View Presenter (Passive View, Supervising Controller)
- Building of testable and UI-independent presentation logic
- Real World Data Binding
- Redundancy minimalization (e.g. client side validation)
- Building multichannel applications - sharing presentation logic between GWT, JSF and Rich Internet Applications (e.g. Netbeans RCP, Eclipse RCP)
This session has real world focus and discusses best practices as well as anti-patterns with source code samples and live demos."

Gesendet von admin [JavaONE 2008] ( April 22, 2008 10:09 AM ) Permalink | Kommentare [0]
[my website] [This entry is based on / extends my books: Enterprise Architekturen, Leitfaden fuer effiziente Software-Entwicklung and: Java EE 5 Architekturen, Patterns und Idiome]

 20080421 Monday April 21, 2008

GreenFire, Groovy, Shoal, iPhone integration and interview at JavaLobby

I was interviewed by Geertjan Wielenga about GreenFire and it's history - the interview was really agile - I was asked for an iPhone screenshot, and maked it during the interview... :-). If you are interested in GreenFire, come to JAX conference - I will at least introduce it during the JAX Innovation Award nomination with two slides :-) and mention some examples like Groovy integration during the Java EE 5 workshop at friday.

I will give a shortalk in the java.net area during the JavaONE as well.
 

Gesendet von admin [Java EE 5 Architectures And Idioms] ( April 21, 2008 08:08 AM ) Permalink | Kommentare [2]
[my website] [This entry is based on / extends my books: Enterprise Architekturen, Leitfaden fuer effiziente Software-Entwicklung and: Java EE 5 Architekturen, Patterns und Idiome]

 20080420 Sunday April 20, 2008

The easiest way to explore Nimbus with 6u10beta (Java SE 6 update 10)

Nimbus is the new, really slick, look and feel for JDK 1.6 applications. It comes with Java 6 SE update 10.

You can activate the new Look And Feel with the following line of code: UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

It is possible as well to set up it from the command line: -Dswing.defaultlaf=com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel. However some applications (like Netbeans :-)), still have problems with the nimbus l&f.

The fastest way to create a mock-up UI I know is with the Netbeans 6.0/6.1 "Matisse" designer running on JDK 1.6_update_10. Just create a project (New Java Project), then a "JFrame Form", or "OK / Cancel Dialog Sample Form". After this step you should find a designer pane, in which you can compose the components visually. The JFrame comes already with a main-method, so you can easily start it. However it will start with the default l&f, which isn't nimbus. To correct that, just add the bold-marked line below:

   public static void main(String args[]) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
        UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                NewOkCancelDialog dialog = new NewOkCancelDialog(new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }

It is actually a great way to play around with the components and explore nimbus. You can create an even complex mock-up in minutes. So Drag And Drop and enjoy!

Gesendet von admin [Java EE 5 Architectures And Idioms] ( April 20, 2008 11:17 AM ) Permalink | Kommentare [2]
[my website] [This entry is based on / extends my books: Enterprise Architekturen, Leitfaden fuer effiziente Software-Entwicklung and: Java EE 5 Architekturen, Patterns und Idiome]

 20080419 Saturday April 19, 2008

GreenFire.dev.java.net - Nomination For JAX Innovation Award 2008

GreenFire.dev.java.net was nominated for the JAX Innovation Award 2008.

I'm looking forward to the JAX conference as well (I will give a workshop about pragmatic Java EE 5 at friday and a session about maintainable RIAs at thursday). So see you at the JAX 2008!.

Gesendet von admin [Events] ( April 19, 2008 10:13 AM ) Permalink | Kommentare [0]
[my website] [This entry is based on / extends my books: Enterprise Architekturen, Leitfaden fuer effiziente Software-Entwicklung and: Java EE 5 Architekturen, Patterns und Idiome]

 20080418 Friday April 18, 2008

Netbeans - Stairway To Maven

"...Maven2 support in Eclipse sucks. Period." as Kristian wrote this comment to one of my posts I wondered about this strong opinion. I actually used Eclipse with Maven plugin and it worked well. With the eclipse:eclipse plugin, maven creates the whole Eclipse project for you (including all the dependencies and classpath entries) - and you can just start the development. It worked so well, that I actually used it to develop some of my leisure projects (before Netbeans 5.5) too. I begun to understand Kristians clear statement :-), as I opened accidentally some of the old eclipse projects with Netbeans 6.0. It just worked, the menu structured looked very similar, I only recognized a small m2 icon in the project explorer. I began to wonder - there was no netbeans:netbeans execution or something similar - it just worked. I looked deeper into the integration and it turned out, that Netbeans support for maven is native. Netbeans just uses Maven to build the artifact instead of the internal build system. This makes a huge difference between Netbeans and Eclipse (I believe IntelliJ as well). The Netbeans-Maven integration is DRYier (Don't Repeat Yourself - no redundancies) - you have only to maintain the Maven-dependencies and you do not have to repeat it again in the IDE. This makes the work with Maven really enjoyable.

I used Maven with Netbeans in my previous projects as well - however I thought someone generated the Netbeans project already for me. However for the Maven integration you have to extend Netbeans 6.0 with a plugin. The installation is really easy - only a plugin has to be installed (it takes few minutes). Netbeans 6.0 even provides a visualization of the maven dependencies - however this feature seems not to work with Netbeans 6.1rc1.

If you have already a maven project somewhere, just try to open it with netbeans - and drop a comment here. My opinion isn't so strong as Kristian's, however I like hat Maven's integration in Netbeans work... Whats nice as well is the maven repository explorer and dependency management. However this feature is available in eclipse too.

Gesendet von admin [Netbeans] ( April 18, 2008 08:54 AM ) Permalink | Kommentare [11]
[my website] [This entry is based on / extends my books: Enterprise Architekturen, Leitfaden fuer effiziente Software-Entwicklung and: Java EE 5 Architekturen, Patterns und Idiome]

 20080417 Thursday April 17, 2008

Greenfire's This Year First Action and Next Steps

greenfire.dev.java.net is an application which manages the heating of a house, with it's main goal: energy savings (e.g. higher prioritization of solar power over wood pellets etc.), and some collateral features like reports, speech recognition, SunSpot integration etc. The first one is the "key feature", the remaining is fun :-).

This year we have a relatively cold spring in bavaria (-5 - +10 C), with some sun. It was enough to shutting down the main heating, greenfire cares about warm water - only the remaining energy was used for the heating. Since about 4 weeks greenfire manages the heating and saved a considerable amount of energy (several hundred kilograms of wood-pellet) without sacrificing the comfort (o.k. perhaps it is sometimes a half degree colder :-)).

I'm going to implement the following features in the near future:

  1. Easier script / profile management. Now greenfire runs in winter and summer mode. I just have to switch the scripts back and forth. However I would like to make the management more easily - and provide an UI for this purpose. In addition I would like to provide additional profiles e.g. vacation, work etc.
  2. Every (at least german :-)) house has a circulation pump for warm water. The purpose of this "device" is to make warm water immediately available. However it's controlled by a timer - so it runs whether you need warm-water or not. Every time it runs - the warm water temparature drops several degrees (- in my case several kW energy wasting). I would like to integrate the control of this pump with greenfire.
  3. Greenfire decides now with the whether forecast, current collector "power" and the "thermos" temparature about the next actions. I would integrate the internal, external temparature, as well the sun "radiation" in different rooms as well. I will use SunSpots for this purpose.
  4. I would like to "intercept" the price-feeds for several wood-pellet providers - greenfire knows, how many wood-pellets were burned - it should be able to suggest the best price/condition via email :-)
  5. Better Reporting: I have gathered weather data for about 3 years in JavaDB (every five minutes). It would be nice to correlate the data, so you would see the temparature, energy costs etc. of the current day, but one or two years ago.
  6. Air Ventilation: my house is actively ventilated. The ventilator runs 24h / day. I think this is not necessary - I would like to control the ventilator as well (with a SunSPOT and some electronic/relais :-))
People asked me often whether my house was build with such automation in mind. The answer is no: there is no EIB (Euro Installation Bus), or other Bus Systems - it was too expensive. It talks over COM-interface with the heating, and via the air with SunSPOTs. I try to keey the infrastructure and preconditions as simple as possible. Gesendet von admin [Java EE 5 Architectures And Idioms] ( April 17, 2008 10:58 AM ) Permalink | Kommentare [2]
[my website] [This entry is based on / extends my books: Enterprise Architekturen, Leitfaden fuer effiziente Software-Entwicklung and: Java EE 5 Architekturen, Patterns und Idiome]




License
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 License.