ConsoleExport

2012-07-09

ConsoleExport ist eine Erweiterung für Firebug, mit der Logs aus dem- Panel “Konsole” exportiert werden können. Die Erweiterung kann hier heruntergeladen werden. Berichte über Bugs und Vorschläge für Verbesserungen können hier eingetragen werden.

Export als HTML

Nach der Installation der Erweiterung steht eine neuer Button “Export” in der Menüleiste des Konsolenpanels zur Verfügung:

Firebug Console Export

Nach der Auswahl des Menüs “Save As” erscheint ein Dialog, in dem nur der gewünschte Speicherort für die Logs angegeben werden muss. Die Logs werden als einfache HTML-Datei gespeichert.

Bekannte Einschränkungen

  • Die Seite wird als statisches HTML gespeichert, also werden alle dynamischen Effekte wir aufklappbare Logeinträge nicht unterstützt. Möchten Sie auch den Inhalt von aufklappbaren Logeinträge exportieren, so müssen Sie diese vor dem Export aufklappen.

Einzelne Einträge zum Server senden

Nach der Aktivierung des Features “Auto-export” werden einzelne Logeinträge als XML-Paket zum Server übertragen.

Firebug ConsoleExport Auto ExportDer Screenshot zeigt einen Knopf in der Werkzeugleiste der Konsole, der für die Aktivierung und Deaktivierung dieses Features verantwortlich ist.

Einige Anmerkungen

  • Das Feature “Auto-export” kann manuell über einen Klick auf den Toolbar-Button oder automatisch durch das Setzen der Einstellung extensions.firebug.consoleexport.active aktiviert werden. Der Standardwert dieser Einstellung ist false. Der Anwender kann diese Einstellung vor dem Start von Firebug auf true setzen, um die Aktivierung zu automatisieren.
  • Die URL des Servers wird in der Einstellung extensions.firebug.consoleexport.serverURL definiert. Als Standardwert ist hier nichts vorgegeben. Natürlich muss diese Einstellung für die Funktion des Exports vom Anwender gesetzt werden.

Nachrichtenformat:

console.log("a simple log");
<log>
<class>log</class>
<cat>log</cat>
<msg>a simple log</msg>
<href>http://logs.html</href>
</log>
console.error("an error log");
<log>
<class>errorMessage</class>
<cat>error</cat>
<msg>an error log</msg>
<href>http:// logs.html</href>
<lineNo>36</lineNo>
<source>console.error("an error log"); </source>
</log>

* The element contains source of the with the log including white-spaces.

console.assert(false, "an assert");
<log>
<class>errorMessage</class>
<cat>assert</cat>
<msg>an assert</msg>
<href>http:// logs.html</href>
<lineNo>36</lineNo>
<source> console.error("an error log"); </source>
</log>
doesnotexist();
<log>
<class>errorMessage</class>
<cat>js</cat>
<msg>doesnotexist is not defined</msg>
<href><a href="http://logs.html/" target="_blank">http://logs.html</a></href>
<lineNo>32</lineNo>
</log>
console.info("an info log");
<log>
<class>info</class>
<cat>log</cat>
<msg>an info log</msg>
<href><a href="http://logs.html/" target="_blank">http://logs.html</a></href>
</log>

Programmiersprache Python

2011-04-27

Python ist neben Perl und PHP einer der am weitesten verbreiteten Skriptsprache. Sie wurde Anfang der 1990er Jahre von Guido van Rossum am Centrum voor Wiskunde en Informatica in Amsterdam als objektorientierte Skriptsprache entwickelt. Erste Plattform war das Betriebssystem Amoeba, inzwischen ist die Sprache auf allen gängigen und viele exotischen Systeme verfügbar. Auch Implementierungen in Java und .NET sind verfügbar. Ähnlich wie auf den beiden eben genannten Plattformen wird der Quelltext eines Python-Programmes beim ersten Durchlauf in einen Zwischencode compiliert, der dann von einem Interpreter ausgeführt wird.

Van Rossum hatte mit Python das Ziel vor Augen, eine möglichst einfache und übersichtliche Programmiersprache zu schaffen. Dies Ziel erreichte er durch zwei Dinge: Zum einen enthält die Sprache einen sehr mächtigen Funktionsumfang in nur wenigen Schlüsselwörtern, zum anderen wurde die grammatische Syntax reduziert und auf Übersichtlichkeit optimiert. Dies hat zur Folge, dass Python eine Sprache ist, in der sich nicht nur erfahrene Programmierer schnell zurecht finden. Sie ist daher besonders dort geeignet, wo Übersichtlichkeit und Lesbarkeit des Codes eine herausragende Rolle spielen.

Diese Übersichtlichkeit verdankt Python einer Eigenheit: Es verwendet die Einrückung als Strukturierungselement, nicht wie die meisten anderen Programmiersprachen, bei denen Blöcke durch Klammern oder Schlüsselworte markiert werden.

Python ist eine Sprache, die den Programmierer nicht zu einem einzigen bestimmten Programmierstil zwingt, unterstützt werden sowohl objektorientierte und strukturierte als auch funktionale Programmierung. Die Datentypen werden dynamisch verwaltet; eine statische Typprüfung (wie z. B. bei C++) gibt es nicht. Die Freigabe nicht mehr benutzter Speicherbereiche erfolgt durch automatische Speicherbereinigung (garbage collection).

Durch die Möglichkeit, auch Programme anderer Sprachen als Modul einzubetten, werden viele Nischen in der Programmierung abgedeckt. Bei Bedarf lassen sich schnellere Routinen maschinennah programmieren, oder Python kann als Skriptsprache eines anderen Programms dienen. So existieren unter anderem Module für die Büro-Suite OpenOffice, das Rendering-Programm Blender oder die freie Bildbearbeitungsoftware Gimp. Nicht zu vergessen ist das Apache-Modul mod_python, mit dessen Hilfe sich äußerst performante Webanwendungen entwickeln lassen.

Obwohl Python als Skriptsprache die Einfachheit betont, ist damit auch die Softwareentwicklung großer Projekte möglich. Ein Beispiel ist der das Dateisystem Mojo Nation oder der bekannte Application Server ZOPE. Die Suchmaschine Google setzt serverseitig Python neben Java und C++ ein. Der offizielle BitTorrent-Client machen ebenfalls von dieser Programmiersprache Gebrauch.

Firecookie

2011-02-10

Firecookie ist eine Erweiterung für Firebug, mit der Cookies im Browser beobachtet und verwaltet werden können. Für die Diagnose und Entwicklung des Frontends ist Firebug selbst und die darauf aufsetzenden Erweiterungen wie YSlow oder eben Firecookie für mich in meiner Arbeit als Web-Programmierer unverzichtbar.

Der Entwickler Jan Honza Odvarko akzeptiert Spenden.

Im Unterschied zu anderen Cookie-Managern, die als Firefox-Add-On verfügbar sind, ist dieses Add-On als Erweiterung für Firebug realisiert, sodass der Webentwickler auf die Funktionalität in der gewohnten Oberfläche von Firebug zugreifen kann.

Firecookie: Überblick

Nachdem Firecookie erfolgreich installiert wurde, kann man einen neues Modul mit dem Titel “Cookies” in Firebugs Menüleiste verwenden. Dieses Modul zeigt eine Liste aller Cookies an, die mit der Domain der gerade dargestellten Seite verbunden sind. Jeder Eintrag in der Liste stellt Grundinformationen über ein Cookie wie den Namen, den Wert, die Domain, den Pfad, das Ablaufdatum und anderes dar.

Cookies inspizieren

Firecookie: Cookie inspizierenJedes Cookie in der Liste kann aufgeklappt werden. Das ist besonders dann brauchbar, wenn der Wert des Cookies sehr lang ist und nicht direkt angezeigt werden kann. Wenn man nach einem bestimmten Cookie über seinen Namen suchen möchte, gibt man diesen in Firebugs Suchfeld ein. Die Liste wird dynamisch gefiltert, während man tippt.

Cookie-Berechtigungen

Firecookie: Cookie-BerechtigungenMan kann die Berechtigungen der Cookies für die aktuelle Website direkt über die Firebug-Menüleiste verwalten. Der Berechtigungsschalter zeigt den aktuellen Zustand als Titel an und wird automatisch aktualisiert, sobald die Berechtigung verändert wird (etwa über den Dialog “Einstellungen” in Firefox).

Cookie-Events

Firecookie: EventsIm Modul “Konsole” kann man beobachten, wie ein Cookie verändert wird. Firecookie erstellt einen Logeintrag, wenn ein Cookie erzeugt, verändert, gelöscht oder zurückgewiesen wird.

Cookie-Verfallsdatum

Firecookie: VerfallsdatumDas Verfallsdatum eines Cookies wird unter Berücksichtigung der lokalen Zeitzone und der Firefox-Spracheinstellungen angezeigt. Den aktuellen Wert kann man einfach ablesen und über einen Datums- und Zeitwähler ändern.

Cookies exportieren

Firecookie: Cookies exportierenÜber das Menü “Cookies” kann man neue Cookies erstellen und bestehende Cookies löschen. Das Menü kann auch dazu eingesetzt werden, entweder alle im Browser vorhandenen oder die mit der aktuellen Website verbundenen Cookies in eine Datei cookies.txt zu exportieren. Jedes Cookie belegt eine Zeile in der Exportdatei.

Cookie-Zwischenablage

Firecookie: ZwischenablageDie Standardbefehle der Zwischenablage Kopieren/Einfügen/Ausschneiden werden ebenfalls unterstützt. Wenn man sie benötigt, genügt ein Rechtsklick auf das Kontextmenü eines Cookies.

Firecookie: Cookie bearbeiten Mit Hilfe des Eintrags “Bearbeiten” im selben Menüs können auch die Eigenschaften eines bestehenden Cookies verändert werden.

Gesendete und empfangene Cookies

Firecookie: NetzwerkFirecookie integriert sich auch in das Firebugmodul “Netzwerk”. Wenn man einen bestehenden Request aufklappt, werden auf einem zusätzlichen Tab “Cookies” gesendete und empfangene Cookies mit allen Informationen dargestellt.

Cookies sortieren

Firecookie: Spalten sortierenMan kann Cookies mittels eines Klicks auf den Tabellenkopf sortieren.

Abgewiesenen Cookies

Firecookie: Cookie zurückweisenAlle empfangenen, aber abgewiesenen Cookies werden in roter Schrift dargestellt.

JSON-Inspektor

Firecookie: JSON-Inspektor

Ist der Wert eines Cookies im JSON-Format, wird der Wert im Tab “JSON” als ausklappbarer Baum dargestellt. Gleiches gilt für Netzwerkantworten im Modul “Netzwerk”.

XML-Inspektor

Firecookie:XML-Inspektor

Ist der Wert eines Cookies ein valides XML-Dokument, wird wohlformatiertes und farblich gestaltetes XML dargestellt.

document.cookie

Firecookie: document.cookieDie Eigenschaft document.cookie wird auf der Konsole in einer lesbaren Darstellung ausgegeben.

Sichtbarkeit von Spalten

Firecookie: Spalten darstellenDie Sichtbarkeit der Spalten kann über das Kontextmenü im Spaltenkopf gesteuert werden. Natürlich werden diese Einstellungen permanent gespeichert.

Cookie-Breakpoint

Firecookie: Cookie-BreakpointMit Hilfe eines Cookie-Breakpoints kann man beobachten, wann ein Cookie verändert wird. Der Firebug-Debugger ist integriert, sodass man die verantwortliche Sourcezeile finden kann.

Bedingter Cookie-Breakpoint

Firecookie: Bedingter Cookie-BreakpointMan kann auch bedingte Breakpoints setzen, so dass die Scriptausführung nur unterbrochen wird, falls die Bedingung zutrifft. Als Bedingungen sind folgende Eigenschaften des Cookies anwendbar: value, path, host, expires [ms], isHttpOnly, isDomain.

Bei der nächsten Cookieänderung anhalten

Firecookie: Anhalten bei CookieänderungFirecookie integriert auch das “Anhalten bei…”-Feature aus Firebug. Mit einem Klick auf den “Pause”-Taster hält Firebug die Scriptausführung bei der nächsten Cookieänderung an.

(Diese deutsche Übersetzung beruht auf der englischsprachigen Originaldokumentation von Firecookie)