IE6 CSS Flickering / Flackern

Allgemein, CSS, Tipps 2 Comments »

Normal bin ich der Meinung: “Leben und leben lassen“. Aber MS sollte man den IE entreißen und einstampfen, vernichten, umschreiben, vergraben und Richtung Sonne schießen. Korrigiert mich wenn ich falsch liege oder übertreibe.

Beim IE6 gibt es ein Problem mit der Rendering-Engine in Verbindung mit CSS und Background-Image. Der IE lädt die Bilder anscheinend immer nach und speichert sie nicht korrekt zwischen. Was braucht man dafür um es in den Griff zu bekommen? Einen Apache-Fix bzw. Workaround. Zum Glück habe ich auf dieser Seite ein paar Tipps dazu gefunden. Weitere Details dazu auch in dieser Mailing-Liste.

-bash: /bin/rm: Argument list too long

Allgemein, Tipps 1 Comment »

Okay, das Limit der Argumente bei rm sind wohl 1024 Dateien. Problematisch wenn man über 5k Logfiles löschen muss. Es lebe die Pipe.

cd /tmp/logs
find . -name 'LogToDelete-1.*' | xargs rm

Damit wird jede Datei separat nach rm gepiped. Und Ruhe ist im Karton. Seid vorsichtig mit der Pfad- und Dateiangabe, damit kann das System ohne Probleme gekillt werden.

Frontbase-Manager

Allgemein, Tipps No Comments »

Frontbase ist eine sehr robuste Datenbank. Ein echter Geheim-Tipp. Dazu ist Frontbase noch kostenlos. Allerdings hat der Manager ab und an seine Macken. Wenn ein Host nicht mehr erreichbar ist, hängt sich der Manager gerne mal auf. Abhilfe schafft hier eine PLIST Datei (XML-Konfiguration auf Macs). Unter “~/Library/Preferences/com.frontbase.FrontBaseManager.plist” folgenden Key bearbeiten und die nicht erreichbaren Datenbanken einfach löschen:

<key>monitoredDatabases</key>
<array>
	<dict>
		<key>databaseName</key>
		<string>My-DB</string>
		<key>hostName</key>
		<string>host.not-reachable.com</string>
	</dict>
</array>

Und voila, es läuft wieder ohne Probleme.

Skuriles: Heute Eclipse

Eclipse, Tipps No Comments »

Gerade ein Projekt via SVN aus dem Repository geholt und folgende Fehlermeldung beim Öffnen des Projekts in Eclipse (3.3.2) erhalten:

java.lang.NullPointerException at org.eclipse.jdt.internal.ui.packageview.ClassPathContainer

Nicht das sich das Projeket danach geöffnet hat. Eine simple Fehlermeldung (NullPointerException, Error occured) verweigert mir das Öffnen und Bearbeiten des Projektes. Was will mir diese Fehlermeldung sagen?

Nachdem ich ein paar Minuten im Internet gesucht hatte, recht erfolglos, kam mir eine Idee. NullPointerException heißt, Java findet etwas nicht oder etwas was da sein soll ist zu diesem Zeitpunkt nicht da. Sehen wir uns mal den ClassPath (.classpath Datei) des Projektes an. Und voila, das Projekt referenzierte ein nicht vorhandenes Framework. Eintrag gelöscht, Projekt lässt sich öffnen. Benutzerfreundlich ist etwas anderes.

Also, solltet ihr mal Probleme haben ein Projekt in Eclipse zu öffnen, seht mal nach der .classpath Datei im Projektverzeichnis. Diese Datei ist standardmäßig versteckt.

Kameraverfolgung mit Dämpfung

Code, Java, Mathematik, Tipps No Comments »

Für mein aktuelles Freizeitprojekt, ja ich bin ein Hobby-Spiele-Entwickler bzw. versuche einer zu sein, wollte ich eine Kamera haben die dem Ziel folgt. Allerdings soll der Kameraschwenk nicht statisch sein (1:1) sondern je nach Geschwindigkeit des Ziels etwas an Dynamik gewinnen. Da man das Rad nicht 100k mal neu erfinden möchte, sucht man halt nach einigen Code-Schnippseln. Meine Suche hatte erfolgt ;-)

void update(float delta) {
    Entity target = getTarget();
    Entity camera = getCamera();
    final float threshold = ...;
    final float feelFactor = ...;

    Vector2f difference = target.getPosition().sub(camera.getPosition());
    float distance = difference.length();

    if (distance > threshold) {
        Vector2f direction = difference.norm();
        float speed = (distance - threshold) * feelFactor;

        Vector2f newPosition = camera.getPosition().add(direction * speed);

        camera.setPosition(newPosition)
    }
}

Das Fragment ist eigentlich selbsterklärend. Falls jemand Hilfe dabei braucht, ihr habt die Kommentar-Funktion :-)

Dynamischer Durchschnittswert

Allgemein, Mathematik, Tipps No Comments »

Ihr kennt auch manchmal das Problem Durchschnittswerte zu berechnen, habt aber keine Lust eine Liste von Ergebnissen mit rumzuschleppen und die Ergebnisse durch die Anzahl der Elemente zu teilen (oder so ähnlich)? Dann kann ein bisschen Mathematik abhilfe schaffen:

/**
  * Calculates the average value
  * @param currentAverage
  * 			current average value
  * @param sample
  * 			new value which needs to be integrated into average
  * @param n
  * 			iteration count
  */
public float calculateAvrgValue(float currentAverage, float sample, int n) {
	return ((currentAverage * (float) n + sample) / (n + 1));
}

HTML 2 PDF

Java, Tipps 1 Comment »

Wer kennt sie nicht, die schönen kleinen PDF-Icons in Typo3, Joomla und Co.? Eine auf den ersten Blick selbstverständliche Funktionalität wird in Java nicht mehr ganz so selbstverständlich. Für ein aktuelles Projekt (WebObjects, Java) muss ich HTML-Seiten als PDF-Dokumente exportieren können. Drei Tage habe ich jetzt diverse Möglichkeiten recherchiert und getestet.

  1. iText Stand-Alone - iText kann keine PDFs aus HTML-Daten generieren
  2. iText und JEditorPane (Screenshot der Webseite) - Scheiterte an der fehlenden CSS 2 und HTML 4 Unterstützung von JEditorPane
  3. Apache FOP, JTidy und Xalan - Viele Libraries (ca. 10 MB), ziemlich aufwändig und ein schwaches Ergebnis
  4. XHTMLRenderer (Flyingsaucer) - Meine Rettung

Falls jemand eine “bessere” Lösung parat hat, immer her damit :-)

2D Array zu 1D Array

Allgemein, Tipps No Comments »

Man hat ein 1D-Array und möchte beispielsweise über ein 2D-Parameter zugreifen? Ganz einfach…

int maxX = 4;
int maxY = 4;
List list = new ArrayList();

public Object getObject(int x, int y) {
   int index = (y * maxX) + x;
   return list.get(index);
}

C# Strg-Alt-Entf (Taskmanager)

.NET, C#, Tipps No Comments »

Zuerst die harten Fakten: Es ist nicht möglich die Tastenkombination “Strg-Alt-Entf” abzufangen. Dieser “Befehl” wird direkt an das Betriebssystem, unter dem Application-Layer via Keyboard-Treiber geschickt. Um diese Tastenkombination zu sperren müsste man einen eigenen Treiber schreiben. Wie kann man diese Tastenkombination sperren? Stichwort: Windows-Registry.

Unter dem Schlüssel:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

den folgenden Schlüssel eintragen:

DisableTaskMgr

mit dem Wert

Damit wird der Task-Manager für den angemeldeten Benutzer gesperrt, funktioniert allerdings nur auf Windows XP Systemen, eventuell auch auf Vista.

Java und App.path

Java, Tipps, VB 4 Comments »

Wie bekommt man den absoluten Pfad der Anwendung im laufenden Programm heraus? In VB gibt es den praktischen Aufruf “App.path“. In Java muss man einen kleinen Umweg in Kauf nehmen und zwar über die “System Properties: System.getProperty(key)“.

String classPath = System.getProperty("java.class.path");
String pathSeparator = System.getProperty("path.separator");

// Theoretisch können mehrere Pfade im Klassenpfad (Class-Path) angegeben sein.
// Z.B. um externe Libraries zu laden. Die erste Pfadangabe sollte das Objekt der
// Begierde sein, der Ausführungspfad.

String appPath = classPath.split(pathSeparator)[0];
WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Anmelden