Sonntag, 28. Dezember 2008
Rechnen in der Shell
In der Linux Shell (Bash) gibt es einige Möglichkeiten, Rechenoperationen (auch in Skripten) auszuführen. Ich habe mir drei heraus gepickt, die üblicherweise auf jedem Linuxsystem schon vorhanden sind, und werde sie an Hand von Beispielen vergleichen.
Einfache Rechenoperationen mit Ganzzahlen kann die Bash auch selbst ausführen.
Negative Zahlen und Variablen sind auch kein Problem.
Für einfache Berechnungen ist das ausreichend, wenn es genauer sein soll, ist eine andere Methode erforderlich.
- bash builtin
- bc
- (g)awk
Einfache Rechenoperationen mit Ganzzahlen kann die Bash auch selbst ausführen.
echo $(( (23-2)*2/3 ))
Zu beachten: die doppelten runden Klammern bedeuten "hier wird gerechnet".Negative Zahlen und Variablen sind auch kein Problem.
var=34; echo $(( $var/-3 ))
Fließkommazahlen oder Rundung kennt die Bash aber nicht. Alles, was hinter dem (nicht vorhandenen) Komma käme, wird einfach abgeschnitten. Jede Zahl wird zum Integer.Für einfache Berechnungen ist das ausreichend, wenn es genauer sein soll, ist eine andere Methode erforderlich.
"Rechnen in der Shell" vollständig lesen
Freitag, 26. Dezember 2008
Sed ersetzt das Kommazeichen
Folgendes Problem: Ich möchte eine csv-Datei in z.B. OpenOffice importieren, um Spaltensummen zu berechnen. Leider verwendet die csv-Datei den Punkt statt dem Beistrich als Kommazeichen und hintendran steht auch noch das Prozentzeichen. Globales Ersetzen des Punktes ist keine Lösung, weil ja auch in anderen (Text-) Spalten Punkte vorkommen.( Die "Mb" Spalte ist egal.) Da greife ich zu sed.
Eine Beispielzeile des Textes:
Die Basis für das Ganze ist sed's "substitute", also s (=ersetzen).
Bei meinem Problem geht es nur um Punkte, die von Zahlen eingeschlossen sind. Vorne sind es nie mehr als drei Stellen, es ist aber mindestens eine.
Nun will ich aber nur den Punkt ersetzen, die Zahlen aber selbstverständlich mitnehmen. Sed kennt dazu Platzhalter (\1, \2 usw.), die sich auf einen Ausdruck in Runden Klammern beziehen.
Die Regex (Regular Expresssion)
In der csv-Datei haben alle Zahlen zwei Nachkommastellen. Die passende Regex schaut so aus:
Regex 1 = 1 bis 3-stellige Zahl
\. = ein (wörtlicher) Punkt
Regex 2 = 2-stellige Zahl (Nachkommastellen)
% = ein Prozentzeichen (wird wegfallen)
\1 = Referenz auf die erste Regex
, = der Beistrich (ersetzt den Punkt)
\2 = Referenz auf die zweite Regex
Sinnvollerweise wird das sed-Kommando in einer Pipe verwendet, z.B.
Das Ergebnis (vgl. Beispielzeile oben):
Eine Beispielzeile des Textes:
389 0.79% 1.25 Mb 0.21% /gimp1.2/zuschneiden.htmlDas passende sed-Kommando lautet so:
sed 's/\([0-9]\{1,3\}\)\.\([0-9]\{2\}\)%/\1,\2/g'
Horror, nicht? Ich werde das jetzt ein bisschen aufdröseln.Die Basis für das Ganze ist sed's "substitute", also s (=ersetzen).
sed 's/das/jenes/g'
Das bedeutet, sed ersetzt "das" durch "jenes", und zwar global (g) im gesamten Dokument.Bei meinem Problem geht es nur um Punkte, die von Zahlen eingeschlossen sind. Vorne sind es nie mehr als drei Stellen, es ist aber mindestens eine.
[0-9]\{1,3\}
Dieser Ausdruck steht für eine ein- bis dreistellige Zahl. Zu beachten, die geschwungenen Klammern müssen mit Backslash escaped werden.Nun will ich aber nur den Punkt ersetzen, die Zahlen aber selbstverständlich mitnehmen. Sed kennt dazu Platzhalter (\1, \2 usw.), die sich auf einen Ausdruck in Runden Klammern beziehen.
Die Regex (Regular Expresssion)
...\([0-9]\{1,3\}\)...
...kann also, da es der erste Ausdruck in runden Klammern ist, als \1 mitgenommen werden. Der nächste Ausdruck in runden Klammern wäre \2, usw. Auch die runden Klammern müssen durch Backslash escaped werden. Genau so übrigens der Punkt, damit auch wirklich der wörtliche Punkt und nicht "ein beliebiges Zeichen" gemeint ist.In der csv-Datei haben alle Zahlen zwei Nachkommastellen. Die passende Regex schaut so aus:
\([0-9]\{2\}\)
Ein weiteres Merkmal ist das Prozentzeichen hintendran, das ich bei der Gelegenheit auch gleich loswerden möchte. Ich nehme es zum Suchbegriff dazu, allerdings außerhalb der runden Klammern, damit es nicht mitgenommen wird.
s/ \([0-9]\{1,3\}\) \. \([0-9]\{2\}\) % / \1,\2 /g Punkt Prozent Regex 1 Regex 2 Referenz 1 Referenz 2 BeistrichZusammenfassung:
Regex 1 = 1 bis 3-stellige Zahl
\. = ein (wörtlicher) Punkt
Regex 2 = 2-stellige Zahl (Nachkommastellen)
% = ein Prozentzeichen (wird wegfallen)
\1 = Referenz auf die erste Regex
, = der Beistrich (ersetzt den Punkt)
\2 = Referenz auf die zweite Regex
Sinnvollerweise wird das sed-Kommando in einer Pipe verwendet, z.B.
cat allurls.csv | sed 's/\([0-9]\{1,3\}\)\.\([0-9]\{2\}\)%/\1,\2/g' > neuedatei.csv
Das ersetzt die unerwünschten Punkte durch Beistrich, entfernt die Prozentzeichen und speichert das Ergebnis in einer neuen Datei.Das Ergebnis (vgl. Beispielzeile oben):
389 0,79 1.25 Mb 0,21 /gimp1.2/zuschneiden.html
Dienstag, 23. Dezember 2008
Useragents in Webalizer und Awffull
Zum Auswerten von Apache (und anderen Webserver-) Logfiles sind zwei Tools besonders beliebt: Webalizer und der Webalizer Fork Awffull.
Beiden gemeinsam ist die eher schwächliche Unterscheidung der User Agents, bei Webalizer noch schwächer als bei Awffull. Da kann man aber nachbessern.
Eines muss ich gleich voraus schicken: So ein User Agent String kann ohne größeren Aufwand gefälscht werden. Dass die Statistik trotzdem Aussagekraft hat liegt daran, dass die meisten Besucher das nicht tun.
Meine Konfigurationstipps setzen voraus, dass ihr schreibenden Zugriff auf die Konfigurationsdatei habt, oder ein netter root euch behilflich ist.
Beiden gemeinsam ist die eher schwächliche Unterscheidung der User Agents, bei Webalizer noch schwächer als bei Awffull. Da kann man aber nachbessern.
Eines muss ich gleich voraus schicken: So ein User Agent String kann ohne größeren Aufwand gefälscht werden. Dass die Statistik trotzdem Aussagekraft hat liegt daran, dass die meisten Besucher das nicht tun.
Meine Konfigurationstipps setzen voraus, dass ihr schreibenden Zugriff auf die Konfigurationsdatei habt, oder ein netter root euch behilflich ist.
"Useragents in Webalizer und Awffull" vollständig lesen
Samstag, 20. Dezember 2008
Safari auf Linux mit Wine
Keine Frage, Cross Browser Fähigkeit muss getestet werden. Was aber tun Leute, die auf Linux entwickeln? Ganz einfach: Sie nehmen wine zu Hilfe.
Wie unsereins (Linux User) an einen Internet Explorer zum Testen kommt, wurde in diesem Blog schon gezeigt.
spielwiese.la-evento.com/xelasblog/index.php
Wie ist das aber mit WebKit/Safari?
Auch ganz einfach.
Variante 1: Arora (Qt >= 4.4)
code.google.com/p/arora/
Arora verwendet die WebKit-Engine. Hat man ein ausreichend aktuelles Qt, ist die Installation einfach. Leider hat Arora noch ein paar kleine (CSS-)Macken, die aber hoffentlich in absehbarer Zeit behoben werden.
Variante 2: Safari auf wine
Es geht nichts über das Original. Die Installation der Windows Version von Safari ist absolut keine Hexerei.
Hier findet ihr eine nette Anleitung: phorolinux.com/how-to-run-safari-in-linux-using-wine.html
Noch ein Vorschlag: falls ihr "winetricks" installiert habt (sollte Bestandteil des wine Paketes sein), geht die Installation der Schriften auch einfacher:
Das Antialiasing der Schriften in Safari musste ich reduzieren, weil die Schrift schon sehr "verschmiert" aussah. In Safaris Menü unter Bearbeiten / Einstellungen / Darstellung geht das ganz einfach.
Die Installation des Flash Plugins ist auch ganz unproblematisch. Holt euch die passende install_flash_player.exe Datei von der Adobe Homepage und führt sie aus.
Happy testing.
Wie unsereins (Linux User) an einen Internet Explorer zum Testen kommt, wurde in diesem Blog schon gezeigt.
spielwiese.la-evento.com/xelasblog/index.php
Wie ist das aber mit WebKit/Safari?
Auch ganz einfach.
Variante 1: Arora (Qt >= 4.4)
code.google.com/p/arora/
Arora verwendet die WebKit-Engine. Hat man ein ausreichend aktuelles Qt, ist die Installation einfach. Leider hat Arora noch ein paar kleine (CSS-)Macken, die aber hoffentlich in absehbarer Zeit behoben werden.
Variante 2: Safari auf wine
Es geht nichts über das Original. Die Installation der Windows Version von Safari ist absolut keine Hexerei.
Hier findet ihr eine nette Anleitung: phorolinux.com/how-to-run-safari-in-linux-using-wine.html
Noch ein Vorschlag: falls ihr "winetricks" installiert habt (sollte Bestandteil des wine Paketes sein), geht die Installation der Schriften auch einfacher:
winetricks corefontsSonstige Tricks oder Hacks sind, zumindest auf wine Version 1.1.10, nicht nötig. Ein Starter für Safari mit passendem Icon wird auf dem Desktop angelegt.
Das Antialiasing der Schriften in Safari musste ich reduzieren, weil die Schrift schon sehr "verschmiert" aussah. In Safaris Menü unter Bearbeiten / Einstellungen / Darstellung geht das ganz einfach.
Die Installation des Flash Plugins ist auch ganz unproblematisch. Holt euch die passende install_flash_player.exe Datei von der Adobe Homepage und führt sie aus.
wine install_flash_player.exeFertig.
Happy testing.
Samstag, 13. Dezember 2008
Spielerei mit CSS 3
Ich weiß nicht, ob sich das schon herumgesprochen hat, CSS ist eine Kunst.
Speziell von "echten Programmierern" wird CSS verkannt, Stylesheets werden als Kinkerlitzchen abgetan.
Dass mit Stylesheets aber auch abgefahrenes Zeug bewerkstelligt werden kann, ist einfach zu beweisen - folgt dem Link: spielwiese.la-evento.com/xelasblog/extrastuff/css3-test.html.
Allerdings: Da die "CSS-3 Disco Challenge" wie der Name schon sagt, weitgehend auf CSS 3 beruht, das noch von wenigen Browsern unterstützt wird, haben nur Konqueror, Safari und Opera User wirklich etwas davon. Die anderen sehen wenig bis nichts. Als kleinen Trost gibt es einen Film.
Alles funktioniert ohne Javascript oder gar serverseitige Tricks. Es ist einfach nur HTML und CSS, wobei HTML nur das leere Gerüst zur Verfügung stellt (eine Tabelle).
Zweifler mögen den Quelltext durchforsten
.
Naja, zur Zeit haben halt nur Leute mit Konqueror, Safari oder Opera (in der jeweils aktuellen Version) den Spaß.
Alles rund um CSS 3 und Pseudoklassen kann man, wen wunderts, beim w3c erfahren: www.w3.org/TR/css3-selectors/#pseudo-classes
Speziell von "echten Programmierern" wird CSS verkannt, Stylesheets werden als Kinkerlitzchen abgetan.
Dass mit Stylesheets aber auch abgefahrenes Zeug bewerkstelligt werden kann, ist einfach zu beweisen - folgt dem Link: spielwiese.la-evento.com/xelasblog/extrastuff/css3-test.html.
Allerdings: Da die "CSS-3 Disco Challenge" wie der Name schon sagt, weitgehend auf CSS 3 beruht, das noch von wenigen Browsern unterstützt wird, haben nur Konqueror, Safari und Opera User wirklich etwas davon. Die anderen sehen wenig bis nichts. Als kleinen Trost gibt es einen Film.
Alles funktioniert ohne Javascript oder gar serverseitige Tricks. Es ist einfach nur HTML und CSS, wobei HTML nur das leere Gerüst zur Verfügung stellt (eine Tabelle).
Zweifler mögen den Quelltext durchforsten
Naja, zur Zeit haben halt nur Leute mit Konqueror, Safari oder Opera (in der jeweils aktuellen Version) den Spaß.
Alles rund um CSS 3 und Pseudoklassen kann man, wen wunderts, beim w3c erfahren: www.w3.org/TR/css3-selectors/#pseudo-classes
Donnerstag, 11. Dezember 2008
IE8 (beta) auf Linux mit Wine
Ich hab lange gebastelt. Es ist nicht möglich, den ganzen Internet Explorer 8 auf wine zum Laufen zu bringen, aber die HTML-, CSS- und Javascript-Engine des neuen Microsoft Browser kann man sehr wohl testen.
Genau wie beim IE7 in IEs4Linux - Auch da läuft darunter der IE6.
Der resultierende "Hybridbrowser" ist langsam und instabil, aber hey, für Webdesigner und -Entwickler reicht das wohl.
Meine (momentane) Wine-Version: wine-1.1.10
Ich bin im wesentlichen vorgegangen wie auf http://www.tatanka.com.br/ies4linux/news/28 beschrieben.
Übrigens, nichts von alledem was folgt wird als root ausgeführt, bleibt schön brav (unprivilegierte) Userlein.
Genau wie beim IE7 in IEs4Linux - Auch da läuft darunter der IE6.
Der resultierende "Hybridbrowser" ist langsam und instabil, aber hey, für Webdesigner und -Entwickler reicht das wohl.
Meine (momentane) Wine-Version: wine-1.1.10
Ich bin im wesentlichen vorgegangen wie auf http://www.tatanka.com.br/ies4linux/news/28 beschrieben.
Übrigens, nichts von alledem was folgt wird als root ausgeführt, bleibt schön brav (unprivilegierte) Userlein.
"IE8 (beta) auf Linux mit Wine" vollständig lesen
Mittwoch, 10. Dezember 2008
IE6 auf Linux mit Wine
Auf Linux gibt es zwei komfortable Möglichkeiten, den Internet Explorer 6 (und andere) zu installieren:
Die Installation eines IE6 ist denkbar einfach: Auswählen - Anwenden - Eula abnicken - dort und da einen Pfad angeben - fertig.
Installiert wird der IE im Ordner ~/.wine/, ein Menüeintrag wird auch angelegt.
Wird auch der Flashplayer im IE benötigt, geht das am einfachsten mit
IEs4Linux installiert auf Wunsch IE5 bis IE7 (IE7 in reduzierter Form, der kann unter "Advanced" ausgewählt werden) und ist deshalb eher für Webentwickler gedacht, die die Quirks der jeweiligen IEs testen wollen. Die Installation ist genau so komfortabel wie mit Wine-Doors. Der Installer übernimmt alles.
Installiert werden die IEs in ~/.ies4linux/, deshalb gibt es keine Probleme, wenn man noch andere Programme auf wine laufen hat. Die liegen im Allgemeinen ja unter ~/.wine/.
Leider scheint der Entwickler aber nicht mehr viel Zeit übrig zu haben, das Projekt "schläft" schon seit einer Weile.
Ich entwickle ausschließlich auf Linux, darum bin ich gespannt, wie das mit dem IE8 wird. Zwei fruchtlose Tage lang habe ich versucht, die Beta-Version irgendwie auf wine zum Laufen zu bringen. Tipps sind jederzeit willkommen.
Noch eine Anmerkung zu ActiveX: Sobald z.B. Flash ins Spiel kommt, fängt das "Gezucke" an. Seiten wie Youtube sind mit dem IE6 auf wine kaum zu ertragen. Das Problem liegt da wohl bei wine. Allerdings ist der IE ohnehin als Standardbrowser nicht zu empfehlen
.
- Wine-Doors
- IES4Linux
Die Installation eines IE6 ist denkbar einfach: Auswählen - Anwenden - Eula abnicken - dort und da einen Pfad angeben - fertig.
Installiert wird der IE im Ordner ~/.wine/, ein Menüeintrag wird auch angelegt.
Wird auch der Flashplayer im IE benötigt, geht das am einfachsten mit
winetricks flash
Winetricks ist, zumindest auf SuSE (wine-Version 1.1.10), im wine-Paket mit dabei.IEs4Linux installiert auf Wunsch IE5 bis IE7 (IE7 in reduzierter Form, der kann unter "Advanced" ausgewählt werden) und ist deshalb eher für Webentwickler gedacht, die die Quirks der jeweiligen IEs testen wollen. Die Installation ist genau so komfortabel wie mit Wine-Doors. Der Installer übernimmt alles.
Installiert werden die IEs in ~/.ies4linux/, deshalb gibt es keine Probleme, wenn man noch andere Programme auf wine laufen hat. Die liegen im Allgemeinen ja unter ~/.wine/.
Leider scheint der Entwickler aber nicht mehr viel Zeit übrig zu haben, das Projekt "schläft" schon seit einer Weile.
| IEs4Linux | Wine-Doors |
![]() |
![]() |
Ich entwickle ausschließlich auf Linux, darum bin ich gespannt, wie das mit dem IE8 wird. Zwei fruchtlose Tage lang habe ich versucht, die Beta-Version irgendwie auf wine zum Laufen zu bringen. Tipps sind jederzeit willkommen.
Noch eine Anmerkung zu ActiveX: Sobald z.B. Flash ins Spiel kommt, fängt das "Gezucke" an. Seiten wie Youtube sind mit dem IE6 auf wine kaum zu ertragen. Das Problem liegt da wohl bei wine. Allerdings ist der IE ohnehin als Standardbrowser nicht zu empfehlen
Sonntag, 7. Dezember 2008
Farbstich reduzieren - mit Farbebene überlagern
Farbstichige Fotos können in Gimp ganz einfach mit einer überlagernden farbigen Ebene verbessert werden. Dabei bleibt das Originalbild als Ebene erhalten, die Methode ist nicht destruktiv.
Das Beispielfoto ist recht blaustichig, da "die Postkatze" im Halbdunkel saß.
Zwei Möglichkeiten habe ich:

Das Beispielfoto ist recht blaustichig, da "die Postkatze" im Halbdunkel saß.
Zwei Möglichkeiten habe ich:
- Blau abziehen
- Orange (Komplementärfarbe) hinzufügen

"Farbstich reduzieren - mit Farbebene überlagern" vollständig lesen
(Seite 1 von 1, insgesamt 8 Einträge)

