Firefox ohne Alles zum Anzeigen von Web-Anwendungen

prism-startingUnter dem Namen „Prism“ gib es von dem Mozilla-Labs einen auf der Gecko-Engine basierten Browser, dessen Aufgabe es ist, als Rahmen für Web-Anwendungen zu dienen.

Beim Start vom Prism wird man zunächst nach der URL der Web-Anwendung gefragt, die man gerne nutzen möchte und Prism legt daraufhin Shortcuts im Dock, Programme-Ordner oder auf dem Schreibtisch an, mit der sich die Web-Anwendung dann direkt starten lässt.

Adressbar und Navigation lassen sich deaktivieren, da sie in dem meisten Web-Anwendungen ja eh nicht gebraucht werden.

Zur Webseite von Prism

„RewriteEngine not allowed here“ Fehlermeldung in apache2 (XAMPP)

Wenn vom apache-Webserver der Fehler „RewriteEngine not allowed here“ kommt, kann das daran liegen, dass, wie in meiner aktuellen XAMPP-Installation unter OS-X, „AllowOverride“ in der httpd.conf  auf „AuthConfig“ oder „None“ gesetzt wurde.

„AllowOverride“ definiert, welche Einstellungen der httpd.conf in einer .htaccess überschrieben oder geändert werden dürfen. Wenn man „AllowOverride“ auf „All“ setzt, lassen sich alle gewünschten Einstellungen in der .htaccess tätigen.

Hier der Ausschnitt aus meiner httpd.conf, der das Problem behoben hat:

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All

Siehe hierzu auch: Konfigurationsdirektive: AllowOverride

Query-Cache in MySQL aktivieren

Seit der Version 4.0 besitzt MySQL einen Query-Cache. Dieser Cache speichert Ergebnisse von SQL-Abfragen im Speicher und antwortet, wenn die exakt gleiche Daten-Abfrage erneut kommt, mit dem gecachten Ergebnis.

Jede Tabelle hat ihren eigenen Cache. Bei schreibendem Zugriff (Daten Manipulation) auf die Tabelle muss deren Cache gelöscht werden. Die Aktivierung des Caches ist daher vor allem dann sinnvoll, wenn die Anwendung mehr aus der Datenbank liest, als schreibt. 

In den meisten Web-Anwendungen, wie beispielsweise Foren oder Datenbank-Archive werden Daten wesentlich öfter abgefragt als geschrieben, so dass die Aktivierung des Query-Cache in MySQL einen hohen Performance-Gewinn bringen kann.

Aktiviert werden kann dieser Cache per Konfiguration im Abschnitt [mysqld] der my.cnf Konfigurationsdatei von MySQL. Eine Beispiel-Konfiguration könnte so aussehen:

# Maximale Groesse eines Abfrage Ergebnisses, damit es gecached wird
query_cache_limit       = 1M
# Gesamtgroesse des Cache
query_cache_size        = 16M

Der Status des Cache, also wie viele Anfragen sich beispielsweise im Cache befinden und wie gut der zur Verfügung stehende Cache-Speicher genutzt wird, kann man sich mit folgendem Statement anzeigen lassen:

SHOW STATUS LIKE 'Qcache%';

Wichtig ist, dass die Zahl „Qcache_lowmem_prunes“ möglichst gering bleibt, da sie steigt, wenn aufgrund fehlenden Speichers Anfragen aus dem Cache entfernt wurden. In diesem Fall ist es sinnvoll die „query_cache_size“ zu erhöhen.

Dokumentation des MySQL Query-Cache auf den Seiten von MySQL

Runde Ecken mit css

Auch mit reinem css ist es möglich, runde Ecken zu stylen. Leider muss es für verschiedene Browser noch verschiedenartig definiert werden.

Der Firefox braucht es als „-moz-border-radius“ und der Safari als „-webkit-border-radius“. Unter IE funktioniert das Ganze noch überhaupt nicht, aber das ist eigentlich auch egal.

Damit es in den meisten Browser (ausser Internet Explorer) funktioniert, definiert man runde Ecken in css so:

.boxMitRundenEcken {
    border: 1px solid black;
    border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;
}
So sieht das dann aus

Zahlen konvertieren in Java

Verschiedene Methoden, um in Java Zahlen zu konvertieren. 

Zahl zu String

String str = "" + i;

String zu Zahl

int i = Integer.parseInt(str); // Integer
float f = Float.parseFloat(str); // Float

Dezimal zu Binär

String binstr = Integer.toBinaryString(i);

Binär zu Dezimal

int i = Integer.parseInt(binstr, 2);

Dezimal zu Hexadezimal

String hexstr = Integer.toString(i, 16);  // oder
String hexstr = Integer.toHexString(i);

Hexadezimal zu Dezimal

int i = Integer.parseInt(hexstr, 16);

Zeichen eines ASCII-Codes

String aChar = new Character((char)i).toString();

ASCII-Code eines Zeichens

char c = 'A';
int asciiCode = (int) char;

ASCII-Codes der Zeichen eines Strings

String text = "ABCD";
for (int i = 0; i < text.length(); i++) 
{
    char c = text.charAt(i);
    int asciiCode = (int) c;
    System.out.println(asciiCode);
}