Twitter’s Bootstrap 2.0 released

Twitter recently released Bootstrap 2.0.

Bootstrap is a open-source HTML/CSS toolkit (Apache 2 licence) to build modern websites or web applications. It’s not a framework but a set of css styles and jQuery plugins to help kick starting your application with responsive layout and modern design that works on desktop browsers as well as on mobile devices. Weiterlesen

Veröffentlicht unter Java Web Frameworks | Verschlagwortet mit , , , , , | Hinterlasse einen Kommentar

WebSocket API im Java Standard ab 2013?

Die  Internet Engineering Task Force (IETF) hat im Dezember 2011 das schon länger diskutierte WebSocket Protokoll im Dezember 2011 als Internet Standard vorgelegt.

Oracle hat diese Woche mit JSR 356: Java API for WebSocket den auch von SAP und RedHat unterstützen Vorschlag gemacht, dem hohen Interesse der Java Community an der Nutzung von WebSocket-basierter Kommunikation durch eine Standardisierung der Nutzung innerhalb von Java Rechnung zu tragen. Der aktuelle Zeitplan sieht eine Verfügbarkeit ab 2013 vor.

Während der zunehmenden Verbreitung des “Webs”  (und unter gewissen Blickwinkeln meint das letztlich “HTTP, HTML und JavaScript”) als Anwendungsplattform fragt man sich als Ingenieur schon länger, ob das die Erfinder von HTTP wirklich ausreichend vorhersehen konnten. Speziell im Bereich von Anforderungen an schnellen effektiven und bi-direktionalen Datenverkehr wurden in der Vergangenheit mangels einer vernünftigen Lösung so manche Trampelpfade beschritten. Hier verspricht WebSocket durch seinen zu HTTP abwärtskompatiblen Ansatz schon seit geraumer Zeit einen Ansatz, der sich großer Beliebtheit erfreut.

Für heutige Bedarfe kann “nur” auf spezielle Implementierungen wie bspw. jWebSocket oder weberknecht zurückgegriffen werden.

Es soll nun im Java Standard sowohl eine Client-API auf Java SE Basis als auch Unterstützung für Java EE entwickelt werden. Im Java EE Bereich ist folgendes geplant:

  • Unterstützung für das Erzeugen von Java WebSocket Komponenten für die Abwicklung der bi-direktionalen Kommunikation
  • Erzeugung und Abfangen von WebSocket Ereignissen (Events).
  • Erzeugung und Entgegennahme von WebSocket Text- und Binär-Nachrichten
  • Möglichkeit der Definition von WebSocket Protokollen und Datenmodellen
  • Konfiguration und Management von WebSocket Sitzungen bspw. Timeouts, Cookies und Connection Pooling
  • Einbettung der WebSocket Anwendungen in das Java EE Sicherheits-Modell
Veröffentlicht unter Java Basics, Java EE | Verschlagwortet mit , , , , , , , , , | Hinterlasse einen Kommentar

Mutability Detector

Das Schreiben von unveränderbaren (Immutable) Klassen bietet viele Vorteile, z. B. bei der nebenläufigen Programmierung. Der Zustand von Instanzen aus unveränderbaren Klassen kann nach der Erzeugung nicht mehr verändert werden. Java bietet dafür keine native Unterstützung, man muß stattdessen bei der Erstellung solcher Klassen ein bestimmten Bauplan einhalten, kann dabei aber trotzdem noch einiges falsch machen.

Mit dem Mutability Dectector gibt es nun ein Tool, welches Java Klassen auf Immutability überprüft. Es kann auf der Kommandozeile ausgeführt, in Java-Anwendung oder auch in Unit-Tests integriert werden:

 import static org.mutabilitydetector.unittesting.MutabilityAssert.assertImmutable;

 @Test public void checkMyClassIsImmutable() {
     assertImmutable(MyClass.class);
 }

Wenn Klassen zwar immutable sein sollen, aber der Bauplan aufgrund von nötigen Hintertürchen nicht strikt eingehalten werden kann, kann man die Test-Erwartungen sogar entsprechend aufweichen.

 import static org.mutabilitydetector.unittesting.MutabilityAssert.assertInstancesOf;
 import static org.mutabilitydetector.unittesting.MutabilityMatchers.areEffectivelyImmutable;
 import static org.mutabilitydetector.unittesting.AllowedReason.allowingForSubclassing;

 @Test public void checkMyClassIsImmutable() {
     assertInstancesOf(AbstractSuperClass.class, areEffectivelyImmutable(), allowingForSubclassing());
 }

Mutability Detector befindet sich noch in einem frühen Entwicklungsstadium, ist aber bereits unter der Apache License 2.0 veröffentlicht.

Veröffentlicht unter Java and Quality | Verschlagwortet mit , | Hinterlasse einen Kommentar

ICEFaces just a copy of PrimeFaces?

Just stumbled over this on Twitter: PrimeFaces lead developer accuses ICESoft to copy source code from PrimeFaces. According to PrimeFaces official blog post, 90% of the new ACE component libraries code is based on PrimeFaces. Furthermore, the code seems to be taken from an older PrimeFsaces 2.x branch, repackaged from org.primefaces.component. to org.icefaces.ace.component without further modification.

ICESoft just released version 3.0 of their JSF library (see my recent post) including the new and shiny set of client components. With PrimeFaces getting more an more popular in the past 2 years, ICESoft is likely to have lost market share to PrimeSoft.

Interestingly, there seems to be no legal issue with the copied code since PrimeFaces is licensed under Apache 2 license. ICEFaces switched to Apache2 license with the release of 3.0 and is correctly mentioning Prime Technology as originator of the code.

ICESoft states in ther ACE component FAQ:

The ACE library includes custom components developed by ICEsoft as well as “best-of-breed” components sourced from popular third party open source libraries such as jQuery, YUI and PrimeFaces.

It will be interesting to see if this becomes a marketing desaster for ICESoft. Redistributing code from competitors is not ment to increase my trust in a vendor. I guess it is time to get some popcorn, lean back and wait for the discussion that is coming ahead …

What do you think?

Veröffentlicht unter Did you know?, Java EE, Java Web Frameworks, Politics | Verschlagwortet mit , , , | Hinterlasse einen Kommentar

ICEFaces 3.0 released

ICESoft has released version 3.0 of their popular JSF library. ICEFaces comes with the set of already known components as well as a second library called “ACE components”. The release notes describe them to be more focused on the client side, though aiming at modern browsers.

Lets see if ICEFaces will gain marketshare from PrimeFaces which seems to be much sought-after these days.

Veröffentlicht unter Java Web Frameworks | Verschlagwortet mit , | 1 Kommentar

The free lunch is over. Now welcome to the hardware jungle.

Einer der am häufigsten zitierten Artikel zum Thema Concurrency in Software ist “The Free Lunch is Over” von Herb Sutter aus dem Jahre 2004.

Mit “Welcome to the Jungle” ist nun endlich ein Nachfolger erschienen, der zeigt, dass in den letzten sieben Jahren weder Hardware noch Software Entwicklung stehen geblieben sind.

Nachfolgend der vollständige Abstract:

In the twilight of Moore’s Law, the transitions to multicore processors, GPU computing, and HaaS cloud computing are not separate trends, but aspects of a single trend – mainstream computers from desktops to ‘smartphones’ are being permanently transformed into heterogeneous supercomputer clusters. Henceforth, a single compute-intensive application will need to harness different kinds of cores, in immense numbers, to get its job done.

The free lunch is over. Now welcome to the hardware jungle.

Veröffentlicht unter Did you know? | Verschlagwortet mit | Hinterlasse einen Kommentar

JSON as core type in PostgreSQL 9.2

It looks like PostgreSQL 9.2 will get a JSON core type. Additionally, there will be functions to produce JSON data from database queries:

  • query_to_json()
  • array_to_json()
  • row_to_json()

Here is a simple example that uses the new query_to_json function:

SELECT query_to_json('select user_name as username, role_name as role from USER',false);

This query will produce JSON data:

[{"username":"testuser","role":"user"},{"username":"johndoe","role":"admin"}]

This could be very useful for web applications that use a lot of JSON data to communicate between the frontend and backend.

Veröffentlicht unter Java Persistence | Verschlagwortet mit , | Hinterlasse einen Kommentar