Google App Engine 1.4

Wie im Blog http://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-engine-team-140.html zu lesen, erblickt die Version 1.4 das Adventlicht. Die News in Kürze:

  • The Channel API – A bi-directional channel for communicating directly with user browsers by pushing notifications directly to the JavaScript running on the client, eliminating the need for polling. This service makes it easy to build real-time applications such as multi-player games, chat rooms, or any collaboration centric app and is built on the same Google infrastructure that powers Google Talk.
  • Always On – For high-priority applications with low or variable traffic, you can now reserve instances via App Engine’s Always On feature. Always On is a premium feature costing $9 per month which reserves three instances of your application, never turning them off, even if the application has no traffic. This mitigates the impact of loading requests on applications that have small or variable amounts of traffic.

Screenshot of the Instances page in the App Engine Admin Console with Always On enabled.

  • Warm Up Requests – This feature reduces time to serve requests by anticipating the need for more instances and loading them before user traffic is sent to the new instance. It can be enabled for all applications through app.yaml or appengine-web.xml and is enabled by default for applications that have purchased Always On. Once enabled, warm up requests will be sent whenever possible to load new instances of your application before it begins serving user traffic.

Der erste Teil ist oft unter dem Stichwort Comet geführt.

Weitere Änderungen:

  • No more 30-second limit for background work – With this release, we’ve significantly raised this limit for offline requests from Task Queue and Cron: you can now run for up to 10 minutes without interruption.
  • Increased API Call Size Limits – A new API architecture has allowed us to start lifting the 1MB size limits on many of the App Engine APIs. To start, the following APIs have been changed:
    • Response size limits for URLFetch have been raised from 1MB to 32MB.
    • Memcache batch get/put can now also do up to 32MB requests.
    • Image API requests and response size limits have been raised from 1MB to 32MB.
    • Mail API outgoing attachments have been increased from 1MB to 10MB

10 Minuten würden mir schon helfen, Daten in die BigTabe zu laden…

Tomcat 7.0.5 mit einem neuen interessanten Feature

Implement support for parallel deployment. This allows multiple versions of the same web application to be deployed to the same context path at the same time. Users without a current session will be mapped to the latest version of the web application. Users with a current session will continue to use the version of the web application with which the session is associated until the session expires. (markt)

Mehr Änderungen unter http://tomcat.apache.org/tomcat-7.0-doc/changelog.html.

Release von Velocity Engine Version 1.7

Nach der Version 1.6.4 im May gibt es nach einem halben Jahr ein Update auf die nächste Versionsstufe Velocity 1.7. Die Updates http://velocity.apache.org/news.html:

Since 1.6, there has been a lot of work: #@body()content#end, #[[literal content]]#, major namespacing changes, $newListSyntax[$i], and more. Please see the change log for details!

Since 1.7-beta1, we fixed, VELOCITY-785, VELOCITY-766, VELOCITY-760, and VELOCITY-753. We also added access to current template and directive debugging info through $foo.info (where foo is the namespace you are seeking info about).

For more details on these, again, see the change log.

Downloads of 1.7 are available here. This is a drop-in replacement for Velocity 1.6, however, it also begins the transition to 2.0 features. Users upgrading should expect deprecation warnings in their logs.

Was benutzt ihr für eine Template Engine? Velocity oder Freemaker oder andere (exotische) wie http://www.stringtemplate.org/?

Thema der Woche: Gui-Dialoge

Theoretisches:

  • Lies http://msdn.microsoft.com/en-us/library/aa511268.aspx.
  • Aus welchen Bestandteilen besteht ein Dialog?
  • Was unterscheidet ein guten Dialog von einem schlechten?
  • Welche Fehler sollte man bei Gui-Dialog nicht machen?
  • Auf welchem Element liegt der Fokus beim Dialogstart? Welche Aktion wird mit Return bestätigt?
  • Sollten Schaltflächen eher generische Titel wie OK, Abbrechen haben oder spezielle Titel wie “Schließen”, usw. Beinflusst das die Formulierung von Texten?
  • Welche Möglichkeiten gibt es, dem Benutzer mehr Hilfen/Informationen zu geben?
  • Vergleiche die Windows-Dialoge mit denen von Eclipse. Welche Unterschiede gibt es?

 

Praktisches:

  • Welche Möglichkeiten bietet Java SE bei Swing-Dialogen?
  • Teste http://code.google.com/p/oxbow/ praktisch an eigenen Beispielen, etwa eine Dialogbox von der MSDN-Seite in Swing umzusetzen.

Gui-Tipp: Warnungen und Fehlermeldungen sollten den Grund klarstellen

Hier ein Gegenbeispiel. Gerade wollte ich nach einem Mietwagen in Dubai bei https://www.thrifty.com/ suchen und bekam folgende Meldung:

NO RATES QUALIFY WITH REQUESTED PARAMETERS.
(Message 41854:27)

Datum ist Ok, Ort auch. Gut wäre, wenn ich einen Hinweis bekäme, mit welchen Parametern es dann klappen würde. Kein Auto zu dem Termin? Kein Auto an am Flughafen?

Image and video hosting by TinyPic

Diskussion, warum die Google App Engine for Java nix ist

Ein GAE-Nutzer diskutiert unter http://www.carlosble.com/?p=719 und lesenswert sind Kommentare (wobei mir das oft ein wenig zu grob und prollig ist). Die Kritikpunkte decken sich mit meinen Erfahrungen. Ich habe eine größere Web-Anwendung mit GWT für GAE/J gebaut (mit Objectify und wirklich an der Modellierung gefeilt), aber letztendlich fand ich den Datastore für meine Aufgaben zu langsam. Ich mag den Dienst, aber man schon ganz schön tricksen und erst nach vielem Rumbiegen und Designänderungen geht es dann irgendwie. Und das ist in meinen Augen das Problem, dass doch wieder die Technologie (und ihre Beschränkungen) das Design fundamental steuert. Letztendlich habe ich meine Web-Anwendung auf einen eigenen Server gesetzt und bin von GAE/J weggegangen. Vieles konnte ich rausschmeißen und alles wurde simpler und das DDD scheint jetzt wieder klarer durch.

NetBeans 7.0 Beta

mit vielen Neuerungen, einige rund um die Sprachmöglichkeiten von Java 7. Von http://netbeans.org/community/releases/70/:

JDK 7

  • Project Coin support
  • Editor enhancements: Code completion, hints

WebLogic Server

  • Streamlined and faster deployment to WebLogic
  • New server runtime node displaying deployed applications and resources
  • JSF integration with server libraries

Oracle Database

  • Simplified connection wizard
  • Guided installation to JDBC driver
  • Editing and deployment of stored procedures

JDK 7 switch
WebLogic
Oracle DB

GlassFish

  • GlassFish 3.1 support
  • Domain restart and log viewer for remote GlassFish
  • Enable and disable deployed applications

Java

  • Maven 3 support
  • JUnit 4.8.2 integration and various JUnit improvements
  • Remote HTTP URLs supported for Javadoc in libraries and Java platforms
  • New improved visual customizer for GridBagLayout

Java EE

  • Improved support for CDI, REST services and Java Persistence
  • New support for Bean Validation
  • Support for JSF component libraries, including bundled PrimeFaces library
  • Improved editing for Expression Language in JSF, including code completion, refactoring and hints

GlassFish remote view
GridBag designer
JavaEE code completion

Web Languages

  • HTML5 editing support
  • JSON formatter

PHP

  • Generate PhpDoc
  • Rename refactoring, Safe Delete Refactoring
  • PHP 5.3 – Support for aliases

C/C++

  • Easy import of project from user’s existing binary
  • New Project type where user’s source files are located on remote system

NetBeans Platform

General

  • Word wrap in Editor
  • Enhanced Profiler integration
  • Less intrusive checking for external changes when switching between the IDE and other programs.

HTML5 code completion
php
C/C++
Platform annotation action

28. Juli 2011

Das ist das Datum, an das wir Java 7 erwarten dürfen. Naja, unter Sun klappte das mit den Zusagen nicht so ganz, aber Oracle ist da ganz anders durchorganisiert.

Der Zeitplan im Einzelnen:

  • 2010/12/16
    Feature Complete
  • 2011/04/12
    Rampdown start: P1-P3 bugs only
  • 2011/04/28
    API/interface changes: Showstoppers only
  • 2011/05/11
    All targeted bugs addressed
    First release candidate built
  • 2011/05/18
    Bug fixes: Showstoppers only
  • 2011/06/08
    Final test cycle starts
  • 2011/07/28
    General Availability

Ein halbes Jahr also für Bugs fixen usw. Das sollte mal jmd. bei Kundenprojekten tun …

JSRs für Java 7 und Java 8 wurden dem JCP übergeben

Im Moment sind folgende Neuerungen im JSR 336 für Java 7 beschrieben:

The following JSRs will be proposed for inclusion as components of the Java SE 7 Umbrella JSR. The final Java SE 7 Platform Specification might not include all of these JSRs, and it might include some JSRs not listed here.

  • JSR 203: More New I/O APIs for the Java Platform ("NIO.2")
  • JSR 292: Supporting Dynamically Typed Languages on the Java Platform
  • JSR 334: Small Enhancements to the Java Programming Language (OpenJDK Project Coin)

The following core JCP specifications will be enhanced under the auspices of the Java SE 7 Umbrella JSR:

  • JSR 901: Java Language Specification — Maintenance Review to incorporate fixes since Java SE 5.0 and changes from the above JSRs
  • JSR 924: JVM Specification — Maintenance Review to incorporate changes made in Java SE 6.0 and JSR 292
  • Java SE APIs — Maintenance Review to incorporate changes made by routine maintenance and small-scale enhancement

Changes defined in Maintenance Reviews of various bundled stand-alone JSRs will also be included:

  • JSR 199: Java Compiler API
  • JSR 206: Java API for XML Processing (JAXP)
  • JSR 222: Java Architecture for XML Binding (JAXB)
  • JSR 224: Java API for XML-Based Web Services (JAX-WS)
  • JSR 269: Pluggable Annotation-Processing API

In addition to the JSRs listed above, a number of smaller enhancements are planned:

  • Thread-safe concurrent class loaders
  • Unicode 6.0
  • Enhanced locale support (IETF BCP 47 and UTR 35)
  • TLS 1.2
  • Elliptic-curve cryptography
  • JDBC 4.1
  • Translucent and shaped windows
  • Heavyweight/lightweight component mixing
  • Swing Nimbus look-and-feel
  • Swing JLayer component

Eclipse TPTP wird eingestellt

Sehr schade, denn TPTP fand ich als freie Profiling-Umgebung ganz cool (wenn auch nicht besonders performant). Die Testumgebung habe ich nie benutzt…

http://www.eclipse.org/tptp/home/project_info/devplans/EclipseTPTPProjectPlan2010.htm schreibt:

The Eclipse Test and Performance Tools Platform (TPTP) Project provides an open platform supplying powerful frameworks and services that allow software developers to build unique test and performance tools, both open source and commercial, that can be easily integrated with the platform and with other tools.

After many successful releases of TPTP, the project has evolved and matured. However, participation in the project has dwindled over time. TPTP has been in maintenance mode since TPTP 4.5.0 and at this point of the project cycle, the PMC has decided that TPTP 4.7 will be the last major release of TPTP (part of the Eclipse Helio release). We will be participating in the upcoming Helios services releases (TPTP 4.7.1 for Helios SR1 and TPTP 4.7.2 for Helios SR2) but will not be part of the next major Eclipse release (Eclipse 3.7, a.k.a. Indigo).

Once TPTP 4.7.2 is released in February 2011, we plan to follow the Eclipse archiving process to archive the remaining TPTP projects, which means that the mailing lists, newsgroups, website, and completed CVS/SVN repository will be stored in an archive (a zip or tar.gz) on the eclipse.org servers. The projects to be archived include:

· Platform

· Testing Tools

· Trace & Profiling Tools

· Monitoring Tools (archiving already approved by the EMO in May 2010)

Und warum also die Einstellung? Open Source funktioniert eben nur, wenn viele mitmachen.

Frage: Was benutzt ihr zum Profilen? Freie Tools (NetBeans, …) oder kommerzielle wie JProfiler, JProbe, … ?

Europcar und Webformulare 0.0001

Was ist an folgendem Text falsch?

Don’t do it!

Nichts, oder? Doch! Denn gibt man den Text in ein Formularfeld bei Europcar ein, bekommt man die Meldung:

forbidden character was entered (< > “ & | ; $ % ‚ + \) please amend.

Das ist echt schwach, denn natürlich möchte man das statt dont richtig don’t schreiben… Moderne Web-Frameworks maskieren Sonderzeichen automatisch aus. Die Europcar-Seiten enden auf .do — das riecht nach Struts und stinkt nach schlechten Entwicklern.

Wer’s selbst ausprobieren will: http://www.europcar.com/EBE/module/footer/ContactUs.do

Doug Lea tritt aus dem JCP aus

Here is the promised explanation for why I am not seeking another term
on the JCP Executive Committee: I believe that the JCP is no longer a
credible specification and standards body, and there is no remaining
useful role for an independent advocate for the academic and research
community on the EC.

Some have argued that JCP was never a credible standards body.  I once
disagreed: Sun initially placed in the JSPA and Process documents
enough rules to ensure that the JCP could foster innovation, quality,
and diversity, independent of that from Sun, with few enough (albeit
annoying) exceptions to allow JCP to drive consensual progress more
successfully than seen in most standards bodies.  However, some of
these rules, and violations of rules, have been found to be the source
of stalemates and lost technical ground. Rather than fixing rules or
ceasing violations, Oracle now promises to simply disregard them.  If
they indeed act as they have promised, then the JCP can never again
become more than an approval body for Oracle-backed initiatives.
(Oracle's choice of timing submission of SE release JSRs forced me to
decide not to stand for another term based only on those promises, not
on the actual actions.)  I urge other EC members to consider whether
short term "pragmatism" in voting outweighs such consequences.

So, what are the alternatives?

For the core Java platform (which these days roughly corresponds to
Java SE), the only existing vehicle for which I can foresee a useful
role for the academic and research community is OpenJDK.  OpenJDK is a
shared-source, not shared-spec body, so is superficially not an
alternative at all. But at this point, a Linux-style model for
collaboratively developed common source is likely to be more effective
in meeting upcoming challenges than is the JCP.  (In which case, of
course, the main role of JCP is only to approve specs for various
freeze-points that represent releases.) For this reason, I've
volunteered to continue and increase involvement to better establish
the reincarnated OpenJDK as such a body.

For other efforts, I cannot recommend to anyone that they use the JCP
JSR process, as opposed to some other group/organization/body, to gain
consensus for proposed specifications. So I expect to see fewer
submissions as people begin to realize that other venues provide
better opportunities. I suppose there is some possibility that I
will help improve support for such standards elsewhere, but I don't
have any immediate plans.

I could of course be wrong about all this, and hope that other EC
members try hard to prove me wrong.

I am sending this to the EC, to make sure you all hear this
from me directly first. But feel free to distribute. For simplicity,
I placed a copy at http://gee.cs.oswego.edu/dl/html/jcp22oct10.html.

Mal sehen wer folgt, und welchen Einfluss das auf die Java 7, Java 8 und die Familie der Concurrency Utilities hat.

Weiterhin ist folgende Bemerkung lesenswert: http://java.dzone.com/news/dear-oracle-get-clue.