Got another beautiful example of the horrors of checked exceptions. After installation of Tinypm one (sigh) of the many Tomcat logs contained the horrible piece below. In all these lines of completely useless information THE REAL ERROR IS NOT VISIBLE!
DomUI, an easy to use Java application and user interface framework built and designed by me has been released as open source today by the company I work for, Itris B.V. DomUI has been in use within Itris for about 2 years now. DomUI has a rich set of components, a metadata discovery layer which helps you by preventing repeated entry of common data ("this field is 5 chars long") and integrates with Hibernate out of the box.
Looks like Hilversum is rediscovering it's heritage! People are actively rediscovering Walhalla Symfonie, and there are now some "official" releases online.The KRO has a website called "Uitgelicht" which publishes old programs - and you canpost requests! I asked for one of the Walhalla's I didn't have "And then they saw the Pyramids" and they found and posted it ;-)
I continue to be frustrated about Java Checked Exceptions (and error logging in many Java programs). I recently ran into this beauty:
I just finished my yearly evaluation run of new techniques to quickly build web applications in Java. And while doing that I also tried the two mainstream solutions for accessing the database: Hibernate and JPA. And I am starting to dislike them both. A huge problem with these frameworks is that they abstract things that cannot be properly abstracted. And when using the framework lots of problems occur that have to do with the real world leaking thru the abstraction, leaving it useless. In many cases the frameworks work only if the database is designed having the limitations of the framework in mind. But those limitations are often only learned thru experience.
JPA and Hibernate inheritance sucks
I just tried the new font code as detailed here and am blessed with way better font rendering in my Ubuntu Feisty. They look sharper and less blurred. I can finally even read the small print again ;-)
I just grew fed up with all of my ssh connections taking more than 15 seconds before a connection was established. I ruled out the usual suspects:
I fired up wireshark and traced a connection. The cause of the problem was mdns which did lookups that timed out. $DEITY knows why it does; I just disabled it by removing all references to mdns in /etc/nsswitch.conf - and all works fast again
I'm busy locating the music used in the Walhalla episodes. I'm looking for:
Sumeria - Golden Tears (WS 22) Got it!!
Godley and Creme - Ismism (or Snack Attack) Check!!!
Bernward Büker Bande - Herzlichen Glückwunsch zur Psychose
Eberhard Schoener - Time Square Got it!!!
The next part to fix are complex attribute values. These are attributes where the content contains some JSP region like a JSP expression or EL expression. In tokenising we again have two possibilities: a JSP Content region within a JSP taglib tag and a JSP content region in a non-JSP tag (template text as far as JSP is concerned).
Since Eclipse parses both the template text (to allow for HTML/XML checking) and the JSP it needs to distinguish these cases. For non-JSP tag values (and all places where JSP scriptlets are used outside of a tag attribute) there are no quoting rules except the rules for the embedded language itself. So a properly escaped piece of code using a non-JSP attibute value would be:
What is fixed
The first thing I'll fix is the erroneous quoting of constructs like:
<navi:form method="hello \"world\"">
This is a properly escaped invocation of a JSP taglib, and it gets mistreated in the JSPTokenizer. It treats tag attribute values of JSP tags the same as attribute values of html (template text) values. So the fix is to remedy that.
First we have to distinguish between JSP tags and non-JSP tags. This must be done at lexing time because the behaviour of the lexer changes wrt the type. For now I just added a variable, boolean fInJspTag to the lexer. When a tag name is found the lexer checks to see if it is a prefixed name (contains a ':') and if so sets this variable.