Archiv der Kategorie 'Hacks & Tricks'

Typen und Hierarchien

Donnerstag, den 9. November 2006

Hier ein kleiner Ausschnitt aus einer möglichen Typhierarchie, an welcher ich für meine Masterarbeit rumüberlege.

path.png

Die ganze Hierarchie darf ich euch aus Gründen der Sicherheit leider nicht zeigen. Das Ding wäre vierdimensional und würde zu schweren mentalen Schäden führen. Deshalb ist auch die vorliegende 3D-Hierarchie nicht komplett. Die zweidimensionale Abbildung verschärft das Problem eben noch.

Aber dafür noch ein Tipp zur Makefile Optimierung.

Warnung!

Montag, den 6. November 2006

lackofinternetconnectivitywarning.jpg Habe lange überlegt wo ich eines der schönen Warnschilder für die Zukunft verwenden kann. Hier. Aber gilt nur für IE-User [2].

Space Oddity

Donnerstag, den 27. April 2006

Wie kriegt man mit XML Spaces in Attribute von XML Elementen? So:

<xsl:variable name="foo">bar</xsl:variable>

<xsl:text disable-output-escaping="yes"><![CDATA[
<select onclick="aaaa
bbbb
]]></xsl:text>
<xsl:value-of select="$foo"/>
<xsl:text disable-output-escaping="yes"><![CDATA[
]]></xsl:text>
<xsl:value-of select="$foo"/><xsl:text
disable-output-escaping="yes"><![CDATA["/>]]></xsl:text>

Warnung: das ist nicht wirklich Standardkonform.

Postgre

Sonntag, den 6. November 2005

Vor einiger Zeit bin ich über ein mühsames Detail im ansonsten grossartigen PostgreSQL gestolpert. Wir hatten eine Tabelle mit einem numeric Feld. Bei Vergleichen mit Konstanten reklamierte Postgre es könne keinen Operator für die Typen numeric und double precision finden.

Da wir bei den restlichen unterstützten Datenbanken eh double precision verwenden war das gerade ein guter Grund den Typ dieses Feldes zu ändern. Jetzt stellte sich aber herause, dass Postgre nur Konstanten mit weniger als 15 Nachkommastellen als double precision betrachtet. Alles was mehr Stellen hat ist numeric:

daniel=# d tr_table_okpx
Table "tr_table_okpx"
Column    |           Type           | Modifiers
-------------+--------------------------+-----------
id          | character(20)            | not null
obj_version | bigint                   |
pvalid      | boolean                  |
pexpires    | timestamp with time zone |
pamount     | bigint                   |
pobject     | character(20)            |
ppassword   | character varying(255)   |
prating     | double precision         |
Primary key: tr_table_okpx_pkey
daniel=# SELECT * FROM tr_table_okpx WHERE prating >= 3.5999999999999999996;
ERROR:  Unable to identify an operator '>=' for types 'double precision' and 'numeric'
You will have to retype this query using an explicit cast
daniel=# SELECT * FROM tr_table_okpx WHERE prating >= 3.5999999999996;
id | obj_version | pvalid | pexpires | pamount | pobject | ppassword | prating
----+-------------+--------+----------+---------+---------+-----------+---------
(0 rows)

Und da auch ein Upgrade auf die aktuellste PostgreSQL Version nichts gebracht hat müssen wir jetzt halt wohl oder übel diesen Cast benutzen:

SELECT * FROM tr_table_okpx WHERE prating >= 3.5999999999999999996::double precision;
id | obj_version | pvalid | pexpires | pamount | pobject | ppassword | prating
----+-------------+--------+----------+---------+---------+-----------+---------
(0 rows)

Tomcat-Plugin für Eclipse

Donnerstag, den 6. Oktober 2005

Nachdem ich mich jetzt zum wiederholten Mal damit rumgeschlagen habe, ist es Zeit, die Lösung zu notieren und auch anderen Leuten zugänglich zu machen.

Nach einem Update von Eclipse und Java konnte ich Tomcat mal wieder nicht über das Eclipse-Plugin von Sysdeo aus starten. Irgendwelche komischen Fehlermeldungen ohne Aussage haben mir auch nicht wirklich geholfen. Wieso genau es jetzt läuft kann ich nicht sagen, aber die aktuelle Konfiguration kann ich angeben:

Der bootclasspath enthält

java/jre/lib/charsets.jar
java/jre/lib/jce.jar
java/jre/lib/jsse.jar
java/jre/lib/plugin.jar
java/jre/lib/rt.jar
java/jre/lib/sunrsasign.jar

und der classpath

tomcat/server/lib/catalina.jar
tomcat/server/lib/commons-logging.jar
tomcat/server/lib/jakarta-regexp-1.2.jar
tomcat/server/lib/servlets-common.jar
tomcat/server/lib/servlets-default.jar
tomcat/server/lib/servlets-invoker.jar
tomcat/server/lib/servlets-manager.jar
tomcat/server/lib/servlets-webdav.jar
tomcat/server/lib/tomcat-ajp.jar
tomcat/server/lib/tomcat-coyote.jar
tomcat/server/lib/tomcat-http11.jar
tomcat/server/lib/tomcat-util.jar
tomcat/server/lib/warp.jar