<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>zInformatik &#187; Scripte</title>
	<atom:link href="http://zinformatik.de/tag/scripte/feed/" rel="self" type="application/rss+xml" />
	<link>http://zinformatik.de</link>
	<description>Computer, Informatik und Mikrocontroller Blog</description>
	<lastBuildDate>Sat, 22 Oct 2011 09:51:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>dmenuLauncher 0.1.1 &#8211; Update des leichtgewichtigen Launchers</title>
		<link>http://zinformatik.de/linux/dmenulauncher-0-1-1-update-des-leichtgewichtigen-launchers/</link>
		<comments>http://zinformatik.de/linux/dmenulauncher-0-1-1-update-des-leichtgewichtigen-launchers/#comments</comments>
		<pubDate>Sat, 14 May 2011 12:51:54 +0000</pubDate>
		<dc:creator>zimon</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntuusers-Planet]]></category>
		<category><![CDATA[Launcher]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Scripte]]></category>

		<guid isPermaLink="false">http://zinformatik.de/?p=1798</guid>
		<description><![CDATA[<p>Aufgrund des Feedbacks und der vielen interessanten Anregungen habe ich dmenuLauncher ein wenig erweitert. Vielen Dank an alle, die mir Ihre Ideen mitgeteilt haben <img src='http://zinformatik.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>dmenuLauncher ist ein Programmstarter, der dmenu nutzt um ein Programm auszuwählen. Die Grundfunktionalität ist im Artikel <a href="http://zinformatik.de/linux/ein-leichtgewichtiger-launcher-mit-dmenu-und-perl" title="Ein leichtgewichtiger Launcher mit dmenu und Perl" class="liinternal">Ein leichtgewichtiger Launcher mit dmenu</a>&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Aufgrund des Feedbacks und der vielen interessanten Anregungen habe ich dmenuLauncher ein wenig erweitert. Vielen Dank an alle, die mir Ihre Ideen mitgeteilt haben <img src='http://zinformatik.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>dmenuLauncher ist ein Programmstarter, der dmenu nutzt um ein Programm auszuwählen. Die Grundfunktionalität ist im Artikel <a href="http://zinformatik.de/linux/ein-leichtgewichtiger-launcher-mit-dmenu-und-perl" title="Ein leichtgewichtiger Launcher mit dmenu und Perl" class="liinternal">Ein leichtgewichtiger Launcher mit dmenu und Perl</a> beschrieben. Das Skript habe ich auf <a href="https://gist.github.com/950556" title="dmenuLauncher.pl auf GitHub" target="_blank" class="liexternal">GitHub</a> hochgeladen.</p>
<p>Das Script wurde um folgende Punkte erweitert:</p>
<ul>
<li>Ob ein Programm im Terminal gestartet werden soll wird nun mitgespeichert</li>
<li>Es können optional auch Argumente für ein Programm gespeichert werden</li>
<li>Es kann ein String definiert werden, der immer vor dem Befehl eingefügt wird</li>
<li>Es gibt eine (englische) readme, in der alle Funktionen beschrieben sind</li>
</ul>
<p><b>Starten im Terminal</b><br />
Wird dem Programmaufruf ein ; angehängt, so wird damit zwischen &#8220;im Terminal ausführen&#8221; und &#8220;direkt ausführen&#8221; hin und hergeschaltet. Die jeweils letzte Einstellung wird für zukünftige Aufrufe gespeichert.</p>
<p>Beispiel: Ich gehe von davon aus, dass die pathfile gerade generiert wurde, also alle Programme immer direkt ausgeführt werden.</p>
<ul>
<li><code>firefox</code> &#8211; führt firefox direkt aus</li>
<li><code>firefox;</code> &#8211; führt firefox im Terminal aus</li>
<li><code>firefox</code> &#8211; führt firefox im Terminal aus (weil dies beim obigen Aufruf für die Zukunft gespeichert wurde)</li>
<li><code>firefox;</code> &#8211; führt firefox direkt aus</li>
<li><code>firefox</code> &#8211; führt firefox direkt aus (weil dies beim obigen Aufruf für die Zukunft gespeichert wurde)</li>
</ul>
<p>Möchte man wirklich ein ; an einen Befehl anhängen ohne die Option &#8220;Starten im Terminal&#8221; zu verändern, kann man dies mit einem \ escapen.</p>
<p>Also: <code>programm\;</code></p>
<p><b>Speichern von Argumenten</b><br />
Es gibt nun eine Konfigurationsvariable <code>SAVE_ARGUMENTS</code>. Ist diese auf 1 gesetzt, werden automatisch alle Argumente gespeichert. Das bedeutet, dass in der Liste der Programme, aus denen man wählen kann das entsprechende Programm einmal ohne Argumente und jeweils einmal mit Argument aufgeführt wird.</p>
<div id="attachment_1801" class="wp-caption alignright" style="width: 244px"><a href="http://zinformatik.de/wp-content/uploads/2011/05/dmenulauncher_vertical_arguments.png" class="liimagelink"><img src="http://zinformatik.de/wp-content/uploads/2011/05/dmenulauncher_vertical_arguments.png" alt="dmenuLauncher im vertikalen Modus mit Argumenten" title="dmenuLauncher im vertikalen Modus mit Argumenten" width="234" height="192" class="size-full wp-image-1801" /></a><p class="wp-caption-text">dmenuLauncher im vertikalen Modus mit Argumenten</p></div>
<p>Für jedes Argument eines Befehls wird auch die Anzahl der Aufrufe gespeichert, so dass häufig genutzte Argumente weiter vorne stehen.</p>
<p>Man kann die Variable <code>SAVE_ARGUMENTS</code> für einen Aufruf umschalten, indem man einen . an den Programmaufruf anhängt.</p>
<p>Beispiel: <code>free -m.</code></p>
<ul>
<li>Ist die Variable <code>SAVE_ARGUMENTS</code> auf 1 gesetzt, so wird das Argument <code>-m</code> nicht gespeichert (ohne den . am Ende würde es gespeichert werden)</li>
<li>Ist die Variable <code>SAVE_ARGUMENTS</code> auf 0 gesetzt, so wird das Argument <code>-m</code> gespeichert (ohne den . am Ende würde es nicht gespeichert werden)</li>
</ul>
<p>Bei der Optimierung werden Programme, zu denen Argumente gespeichert sind grundsätzlich nicht entfernt.</p>
<p>Möchte man wirklich einen . an einen Befehl anhängen ohne die Option &#8220;Speichern von Argumenten&#8221; zu verändern, kann man ihn mit einem \ escapen.</p>
<p>Also: <code>programm\.</code></p>
<p>Man kann . und ; nicht gleichzeitig bei einem Aufruf verwenden.</p>
<p><strong>[UPDATE]</strong> Ich habe als Trenner für mehrere Argumente in der pathfile die Zeichenfolge <code>|||</code> genutzt und zum Trennen der Argumente und der jeweiligen Anzahl der Aufrufe die Zeichenfolge <code>|#|</code>. Leerzeichen sind hier nicht möglich, da diese auch in den Argumenten vorkommen dürfen sollen. Falls jemand einen Fall kennt, wo diese Trenner problematisch wären oder grundsätzlich eine bessere Idee hat würde ich mich über einen entsprechenden Kommentar freuen <img src='http://zinformatik.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <strong>[/UPDATE]</strong></p>
<p><b>String vor dem Befehl</b><br />
In der Variable <code>BEFORE_COMMAND</code> kann man einen String definieren, der vor dem Befehl eingefügt wird. Ein Anwendungszweck wäre das Wechseln ins Home-Verzeichnis, so dass alle Befehle im Home-Verzeichnis ausgeführt werden.<br />
Dafür setzt man <code>BEFORE_COMMAND</code> auf <code>"cd ~ &#038;&#038; "</code>. Dies ist auch die default Einstellung.</p>
<p>Natürlich kann man auch einen leeren String angeben, damit nichts vor dem eigentlichen Befehl eingefügt wird.</p>
<p><b>Die Readme</b><br />
Die Readme findet man, wenn man die Datei dmenuLauncher.pl mit einem Texteditor öffnet.</p>
]]></content:encoded>
			<wfw:commentRss>http://zinformatik.de/linux/dmenulauncher-0-1-1-update-des-leichtgewichtigen-launchers/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Ein leichtgewichtiger Launcher mit dmenu und Perl</title>
		<link>http://zinformatik.de/linux/ein-leichtgewichtiger-launcher-mit-dmenu-und-perl/</link>
		<comments>http://zinformatik.de/linux/ein-leichtgewichtiger-launcher-mit-dmenu-und-perl/#comments</comments>
		<pubDate>Sun, 01 May 2011 15:30:30 +0000</pubDate>
		<dc:creator>zimon</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntuusers-Planet]]></category>
		<category><![CDATA[Launcher]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Scripte]]></category>

		<guid isPermaLink="false">http://zinformatik.de/?p=1765</guid>
		<description><![CDATA[<p>Lange habe ich GNOMEDo genutzt nur um Programme zu starten. Auch Kupfer und Launchy habe ich ausprobiert. Was mir an allen Programmen nicht gefällt: Für die Aufgabe, für die ich sie brauche (zum Starten von Programmen) sind sie viel zu groß, zu überladen und sie laufen die ganze Zeit im Hintergrund und brauchen RAM. Durch <a href="http://uzbl.org" target="_blank" class="liexternal">uzbl</a> habe&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Lange habe ich GNOMEDo genutzt nur um Programme zu starten. Auch Kupfer und Launchy habe ich ausprobiert. Was mir an allen Programmen nicht gefällt: Für die Aufgabe, für die ich sie brauche (zum Starten von Programmen) sind sie viel zu groß, zu überladen und sie laufen die ganze Zeit im Hintergrund und brauchen RAM. Durch <a href="http://uzbl.org" target="_blank" class="liexternal">uzbl</a> habe ich <a href="http://tools.suckless.org/dmenu/" target="_blank" class="liexternal"><code>dmenu</code></a> kennen gelernt. Ein Programm, mit dem man leicht eine Liste von Worten als Menü anzeigen kann. Der Benutzer kann nun das gesuchte Wort eingeben und <code>dmenu</code> schließt automatisch beim Tippen alle unpassenden Wörter aus (dabei wird nicht nur der Wortanfang kontrolliert sondern ob irgendein Teil des Wortes matched). Mit &lt;ENTER&gt; wird das aktuell ausgewählte Wort zurückgegeben und dmenu beendet. Übergibt man diesem Programm die Liste aller im PATH befindlichen Programme und führt das gewählte Programm danach aus hat man schon einen Launcher.</p>
<p>Ich habe nun noch ein kleines Script &#8211; <code>dmenuLauncher.pl</code> &#8211; geschrieben, das die Programme nach Häufigkeit ihrer Aufrufe sortiert, damit die am häufigsten genutzten Programmen immer zuerst gewählt werden, wenn es eine Mehrdeutigkeit gibt.</p>
<p>Features:</p>
<ul>
<li>Kleines Perl-Script, dass nur bei Bedarf gestartet wird und sonst weder Prozessorzeit noch RAM benötigt</li>
<li>Kann in den meisten Fenstermanagern über Tastenkombination gestartet werden</li>
<li>Programmen können beim Aufruf Argumente übergeben werden</li>
<li>Sortiert Programme nach Nutzungshäufigkeit</li>
<li>Horizontale oder vertikale Anzeige der Programmliste</li>
<li>Programme im Terminal öffnen</li>
<li>Optimierung der Programmliste (löschen aller Programme mit geringer Aufrufsanzahl aus der Liste)</li>
<li>Einfaches hinzufügen von Programmen, die nicht in der Liste sind</li>
</ul>
<p>&nbsp;</p>
<p style="text-align: center;">
<div id="attachment_1772" class="wp-caption aligncenter" style="width: 707px"><a href="http://zinformatik.de/wp-content/uploads/2011/05/dmenuLauncher-horizontal1.png" class="liimagelink"><img class="size-full wp-image-1772  " title="dmenuLauncher-horizontal" src="http://zinformatik.de/wp-content/uploads/2011/05/dmenuLauncher-horizontal1.png" alt="dmenuLauncher mit horizontaler Anzeige" width="697" height="94" /></a><p class="wp-caption-text">dmenuLauncher mit horizontaler Anzeige der am häufigsten aufgerufenen Programme</p></div>
<p>&nbsp;</p>
<p>Das Script habe ich auf <a href="https://gist.github.com/950556" title="dmenuLauncher.pl auf gitHub" target="_blank" class="liexternal">gitHub</a> online gestellt. Das Programm <code>dmenu</code> kann unter Ubuntu über das Paket <code>dwm-tools</code> installiert werden. Also mit dem Befehl <code>sudo apt-get install dwm-tools</code>.</p>
<p>Die Datei <code>dmenuLauncher.pl</code> hat im oberen Teil einen Konfigurationsbereich. Ich habe auf eine externe Konfigurationsdatei verzichtet um diese nicht jedes Mal laden zu müssen.</p>
<p>Zuerst wird der Pfad zur path-Datei (in der die Liste der Programme mit ihrer jeweiligen Aufrufanzahl gespeichert wird) in der Variablen <code>PATHFILE</code> angegeben.</p>
<p><code>dmenu</code> kann die Programme im Menü nebeneinander oder untereinander angezeigen. Dafür kann man <code>dmenuLauncher.pl</code> entweder mit der Option <code>-h</code> für horizontal (also nebeneinander) oder <code>-v</code> für vertical (also untereinander) aufrufen.</p>
<p>Den Standardmodus, der genutzt wird, wenn nichts angegeben wurde kann man über die Variable <code>MODE</code> steuern. Sie wird entweder auf <code>horizontal</code> oder <code>vertical</code> gesetzt.</p>
<div id="attachment_1773" class="wp-caption alignright" style="width: 310px"><a href="http://zinformatik.de/wp-content/uploads/2011/05/dmenuLauncher-vertical.png" class="liimagelink"><img class="size-medium wp-image-1773" title="dmenuLauncher-vertical" src="http://zinformatik.de/wp-content/uploads/2011/05/dmenuLauncher-vertical-300x209.png" alt="dmenuLauncher vertikale Anzeige" width="300" height="209" /></a><p class="wp-caption-text">dmenuLauncher mit vertikaler Anzeige der Programme mit &quot;gnome&quot; im Namen</p></div>
<p>Die Konfigurationsvariable <code>NUMBER_OF_LINES</code> gibt die Anzahl von anzuzeigenden Zeilen im <code>vertical</code>-Modus an.</p>
<p>In der Variablen <code>TERMINAL</code> wird der Befehl für den Terminalaufruf gespeichert. Der Platzhalter <code>%COMMAND%</code> wird durch das aufzurufende Kommando (mit Argumenten) ersetzt.</p>
<p>Nun kann durch den Aufruf <code>dmenuLauncher.pl -u</code> die path-Datei generiert werden. Nach dem Installieren oder Löschen von Programmen kann die Datei so auch aktualisiert werden.</p>
<p>Nachdem man <code>dmenuLauncher.pl</code> konfiguriert und die path-Datei (mit der Option <code>-u</code>) generiert hat, kann man eine Tastenkombination dafür einrichten. Bei GNOME unter System -&gt; Einstellungen -&gt; Tastenkombinationen auf den Button &#8220;Hinzufügen&#8221; klicken, als Namen &#8220;dmenuLauncher&#8221; und als Befehl den Pfad zur Perldatei (<code>dmenuLauncher.pl</code>) angeben. Nun gibt es in der Liste ganz unten einen neuen Eintrag. Klickt man auf das Feld &#8220;Tastenkombination&#8221;, so kann man die gewünschte Tastenkombination drücken (ich habe SHIFT+&lt;Space&gt; gewählt, die dann dem Script automatisch zugeordnet wird.</p>
<p>Nach dem Starten des Programms (also drücken der zugeordneten Tastenkombination oder per Terminal) öffnet sich nun das Menü und zeigt die Programmliste an. Nun fängt man an, den gewünschten Befehl einzutippen bis er markiert ist. Man kann auch die Pfeiltasten benutzen. Mit der Eingabetaste wird das gewählte Programm ausgeführt und <code>dmenuLauncher</code> geschlossen.</p>
<p>Drückt man nicht direkt die Eingabetaste sondern &lt;Tab&gt;, so wird der Befehl vervollständigt und man kann noch Argumente angeben.</p>
<p>Ob mit ohne ohne Argumente: Durch ein abschließendes Semikolon wird der Befehl im Terminal ausgeführt.</p>
<p>Ein paar Beispiele:</p>
<ul>
<li><code>firef&lt;ENTER&gt;</code> öffnet Firefox</li>
<li><code>firef&lt;Tab&gt; http://zinformatik.de&lt;ENTER&gt;</code> öffnet firefox und geht auf die Seite &#8220;http://zinformatik.de&#8221;</li>
<li><code>top;&lt;ENTER&gt;</code> öffnet <code>top</code> in einem Terminal</li>
<li><code>ls -lh ~;&lt;ENTER&gt;</code> zeigt das Ergebnis von  <code>ls -lh ~</code> in einem Terminal an.</li>
</ul>
<p>Da die ganze Liste von Programmen sehr groß ist, man jedoch meist nur einen sehr kleinen Teil nutzt gibt es die Möglichkeit die Liste der Programme zu optimieren. Durch den Aufruf von <code>dmenuLauncher.pl -o</code> werden alle Programme aus der Liste entfernt, die noch nie genutzt wurden. Ein weiteres Argument gibt die Anzahl der Aufrufe an, die ein Programm mindestens haben sollte. So werden durch <code>dmenuLauncher.pl -o 3</code> alle Programm aus der Liste entfernt die weniger als 3 mal aufgerufen wurden.</p>
<p>Möchte man nach der Optimierung ein Programm aufrufen, das sich nicht mehr in der Liste befindet, so kann man es einfach komplett eingeben. Auch wenn es dann keine Auswahl gibt, wird das Programm ausgeführt und mit der Aufrufsanzahl 1 in die Liste gespeichert.<br />
Um ein neues Programm in die Liste aufzunehmen braucht man es also nur einmal eingeben.</p>
<p>Mit <code>dmenuLauncher</code> habe ich also ein sehr kleines Programm, welches nur kurz läuft um mir die Auswahl eines Programms zu ermöglichen und danach sofort wieder beendet wird. Das Laden ist auch auf älteren Systemen kaum zu spüren, weil keine Bibliotheken geladen werden. Das bedeutet ich kann jedes häufiger genutzte Programm mit 3-4 Tastendrücken ohne irgendeine Verzögerung starten.</p>
]]></content:encoded>
			<wfw:commentRss>http://zinformatik.de/linux/ein-leichtgewichtiger-launcher-mit-dmenu-und-perl/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Vim Plugin &#8211; Taglist: Splitscreen mit Übersicht der Funkionen in einer Datei</title>
		<link>http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/vim-plugin-taglist-splitscreen-mit-ubersicht-der-funkionen-in-einer-datei/</link>
		<comments>http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/vim-plugin-taglist-splitscreen-mit-ubersicht-der-funkionen-in-einer-datei/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 13:15:35 +0000</pubDate>
		<dc:creator>zimon</dc:creator>
				<category><![CDATA[Plugins und Erweiterungen]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Ubuntuusers-Planet]]></category>
		<category><![CDATA[vim Tipps]]></category>
		<category><![CDATA[Scripte]]></category>
		<category><![CDATA[Splitscreen]]></category>
		<category><![CDATA[taglist]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://zinformatik.de/?p=1751</guid>
		<description><![CDATA[<p>Das <a href="http://www.vim.org/scripts/script.php?script_id=273" title="Vim Plugin - Tasklist" target="_blank" class="liexternal">Taglist Plugin</a> für Vim ist ein praktisches Tool zum programmieren. Es listet die einzelnen Funktionen (je nach Programmiersprache auch Klassen, Packete und Membervariablen) eines Programms in einem eigenen Splitscreen auf. Diese sind nach Dateien sortiert und man kann so sehr schnell zu einer gewünschten Funktion springen.</p>
<p>Damit das Plugin funktioniert muss das&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Das <a href="http://www.vim.org/scripts/script.php?script_id=273" title="Vim Plugin - Tasklist" target="_blank" class="liexternal">Taglist Plugin</a> für Vim ist ein praktisches Tool zum programmieren. Es listet die einzelnen Funktionen (je nach Programmiersprache auch Klassen, Packete und Membervariablen) eines Programms in einem eigenen Splitscreen auf. Diese sind nach Dateien sortiert und man kann so sehr schnell zu einer gewünschten Funktion springen.</p>
<p>Damit das Plugin funktioniert muss das Paket <em>exuberant-ctags</em> installiert sein. Danach kann man die Datei <code>taglist.vim</code> ins<br />
Pluginverzeichnis (<code>~/.vim/plugin</code>) kopieren.</p>
<p>Wenn nun eine Datei mit Quellcode geöffnet ist, kann man das Taglist Plugin durch den Befehl <code>:TList</code> aktivieren, woraufhin sich auf der rechten Seite der Splitscreen mit den Funktionen öffnet. Mit STRG+w w kann man zwischen den Splitscreens hin und her wechseln (Ich habe mir <a href="http://zinformatik.de/tipps-tricks/vim-tipps/praktische-vim-mappings/#map_split" title="Praktische vim Mappings" target="_self" class="liinternal">diese Tastenkombination</a> auf <em>+</em> gelegt). Mit j und k kann man nun in den Funktionen hoch und runter scrollen. Drückt man bei der gewünschten Funktion ENTER, so springt der Cursor automatisch wieder auf den Quelltext an der Position, wo die gewählte Funktion beginnt.<br />
Da sich beim Sprung zu einer Funktion die entsprechende Datei im aktuellen Buffer öffnet, empfiehlt es sich, <a href="http://zinformatik.de/tipps-tricks/vim-tipps/vim-buffer-statt-tabs-benutzen/" title="Vim - Buffer statt Tabs benutzen" target="_self" class="liinternal">Buffer statt Tabs</a> zu verwenden.</p>
<p>Praktisch ist es, sich ein autocommand für Quelltexte zu erstellen, so dass die Taglist automatisch beim Öffnen von Quelltexten geladen wird.</p>
<p>Dafür wird eine Funktion benötigt, welche die Dateiendung überprüft und bei entsprechenden Endungen die Taglist öffnet. Das folgende Beispiel öffnet die Taglist für Java und Perl Dateien:</p>

<div class="wp_syntax"><div class="code"><pre class="vim" style="font-family:monospace;"><span style="color: #804040;">function</span> OpenTlist<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
    <span style="color: #804040;">let</span> myfile = <span style="color: #25BB4D;">expand</span><span style="color: #000000;">&#40;</span><span style="color: #C5A22D;">&quot;%&quot;</span><span style="color: #000000;">&#41;</span>
    <span style="color: #804040;">let</span> myfiletype = <span style="color: #25BB4D;">expand</span><span style="color: #000000;">&#40;</span><span style="color: #C5A22D;">&quot;%:e&quot;</span><span style="color: #000000;">&#41;</span>
    <span style="color: #804040;">if</span> myfiletype == <span style="color: #C5A22D;">&quot;pl&quot;</span> <span style="color: #000000;">||</span> myfiletype == <span style="color: #C5A22D;">&quot;java&quot;</span>
        Tlist
    <span style="color: #804040;">end</span>
endfunction</pre></div></div>

<p>Nun noch das autocommand:</p>

<div class="wp_syntax"><div class="code"><pre class="vim" style="font-family:monospace;"><span style="color: #804040;">au</span> <span style="color: #25BB4D;">BufRead</span> <span style="color: #000000;">*</span> <span style="color: #804040;">call</span> OpenTlist<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></pre></div></div>

<p>Beides wird in die <code>~/.vimrc</code> geschrieben.</p>
<p>Nun kann man sich in der <code>~/.vimrc</code> noch ein Mapping anlegen um die Taglist mit z.B. F3 ein- und auszublenden:</p>

<div class="wp_syntax"><div class="code"><pre class="vim" style="font-family:monospace;"><span style="color: #804040;">map</span> <span style="color: #668080;">&lt;F3&gt;</span> <span style="color: #000000;">:</span>TlistToggle<span style="color: #000000;">&lt;</span>cr<span style="color: #000000;">&gt;</span></pre></div></div>

<p>Wenn man Programmiert, dann schreibt man natürlich auch neue Funktionen. Diese werden von der Taglist leider nicht sofort erkannt. Daher ist es sinnvoll ein Mapping zu definieren um die Taglist zu updaten. Das folgende Mapping legt das Updaten der Taglist auf F4 (die Datei wird dabei direkt gespeichert):</p>

<div class="wp_syntax"><div class="code"><pre class="vim" style="font-family:monospace;"><span style="color: #804040;">map</span> <span style="color: #668080;">&lt;F4&gt;</span> <span style="color: #000000;">:</span>w<span style="color: #000000;">&lt;</span>cr<span style="color: #000000;">&gt;:</span>TlistUpdate<span style="color: #000000;">&lt;</span>cr<span style="color: #000000;">&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/vim-plugin-taglist-splitscreen-mit-ubersicht-der-funkionen-in-einer-datei/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>zBot &#8211; ein Jabber Bot in Perl</title>
		<link>http://zinformatik.de/tipps-tricks/interessante-programme/zbot-ein-jabber-bot-in-perl/</link>
		<comments>http://zinformatik.de/tipps-tricks/interessante-programme/zbot-ein-jabber-bot-in-perl/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 19:55:36 +0000</pubDate>
		<dc:creator>zimon</dc:creator>
				<category><![CDATA[Interessante Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Bot]]></category>
		<category><![CDATA[Jabber]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[Scripte]]></category>

		<guid isPermaLink="false">http://zinformatik.de/?p=565</guid>
		<description><![CDATA[<p>(English version below)</p>
<p>Nachdem ich mich nun etwas mit <a href="http://zinformatik.de/allgemeines/jabber-die-offene-alternative-zu-icq-und-msn/" title="Jabber - die offene Alternative zu ICQ und MSN" target="_blank" class="liinternal">Jabber</a> beschäftigt habe, war es an der Zeit, einen eigenen Jabber Bot zu schreiben.</p>
<p>Ich hatte bereits einen ChatBot in Perl geschrieben, der in unserem http-Chat lief. Mit der CPAN Bibliothek <a href="http://search.cpan.org/~toddr/Net-Jabber-Bot-2.0.8/lib/Net/Jabber/Bot.pm" title="Jabber Bot CPAN Bibliothek" target="_blank" class="liexternal">Net::Jabber::Bot</a>&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>(English version below)</p>
<p>Nachdem ich mich nun etwas mit <a href="http://zinformatik.de/allgemeines/jabber-die-offene-alternative-zu-icq-und-msn/" title="Jabber - die offene Alternative zu ICQ und MSN" target="_blank" class="liinternal">Jabber</a> beschäftigt habe, war es an der Zeit, einen eigenen Jabber Bot zu schreiben.</p>
<p>Ich hatte bereits einen ChatBot in Perl geschrieben, der in unserem http-Chat lief. Mit der CPAN Bibliothek <a href="http://search.cpan.org/~toddr/Net-Jabber-Bot-2.0.8/lib/Net/Jabber/Bot.pm" title="Jabber Bot CPAN Bibliothek" target="_blank" class="liexternal">Net::Jabber::Bot</a> lies sich daraus mit wenigen Handgriffen ein einfacher Jabber Bot basteln.</p>
<p>Der Bot ist noch nicht sehr ausgereift. Aber er funktioniert.</p>
<p>Der Bot hat ein Pluginsystem um einfach neue Funktionen hinzufügen zu können. Um neue Plugins zu schreiben am besten mal ins Helloworld Plugin schauen (plugins/Helloworld.pm). Wichtig ist, das Plugin mit der Funktion Plugins::registerPlugin zu registrieren. Das fertige Plugin kann man ins Verzeichnis &#8220;plugins&#8221; kopieren. Jeder Befehl ist ein Plugin.</p>
<p>zBot läuft im Multi User Chat (MUC) und man kann ihn genauso gut als Kontakt hinzufügen.</p>
<p>Die Installation ist recht einfach. Man legt einen neuen User für den Bot auf dem Server seiner Wahl an. Dann editiert man die Datei modules/Configs.pm entsprechend (Passwort, Username&#8230; setzen). Danach kann man (wenn das CPAN Modul installiert ist) die zbot.pl starten. Am besten natürlich auf einem Server, damit der Bot auch online ist, wenn man den PC ausschaltet. Den Prozess kann man direkt in den Hintergrund schieben um sich wieder abmelden zu können:</p>
<p>./zbot.pl &amp;</p>
<p>Nun kann man den Bot zu seiner Kontaktliste hinzufügen. Nach dem Start braucht der Bot 20 Sekunden zur Initialisierung, bis er antwortet.</p>
<p>Durch das Senden des Befehls &#8220;hilfe&#8221; werden alle Befehle angezeigt. Mit &#8220;hilfe &lt;befehl&gt;&#8221; bekommt man die Beschreibung des Plugins angezeigt (z.B. &#8220;hilfe helloworld&#8221;).</p>
<p>Das Programm habe ich unter der <a href="http://www.gnu.org/licenses/gpl-2.0.html" title="GPL" target="_blank" class="liexternal">GPL</a> veröffentlicht. Eine Dokumentation ist auch vorhanden.</p>
<p>Über Verbesserungen des Codes oder neue Plugins würde ich mich sehr freuen.</p>
<p>Bei Fragen oder Problemen kann man mich natürlich auch gerne anschreiben (oder einfach hier als Kommentar).</p>
<p><strong>Update</strong>: Das Problem mit den Sonderzeichen konnte ich lösen. Es lag daran, dass die Sonderzeichen in der CPAN Bibliothek durch einen regulären Ausdruck ausgefiltert wurden (der dazu gedacht war, nicht druckbare Zeichen auszufiltern). Daher habe ich die entsprechende Datei ins Verzeichnis &#8220;modules&#8221; kopiert, entsprechend editiert und von dort eingebunden.</p>
<p><strong>Update:</strong> Version 0.2 ist nun verfügbar. Informationen über die Änderungen findet man im <a href="http://zinformatik.de/tipps-tricks/interessante-programme/jabber-bot-zbot-in-version-02/" title="Jabber Bot zBot in Version 0.2" target="_self" class="liinternal">zugehörigen Blogeintrag</a>.</p>
<p><strong>[UPDATE]</strong> Es gibt ein Problem ab ejabberd Version 2.0.3, da diese eine digest-uri zur Verifikation des Clients erwartet. Die einzige Möglichkeit das Problem zu lösen besteht anscheinend darin, diese Verifikation im Quelltext abzuschalten und neu zu kompilieren. Mehr Infos gibt es in <a href="http://www.ejabberd.im/node/3545" tile="Forenthread zum digest-uri Problem" target="_blank" class="liexternal">diesem Forenthread</a> (englisch).</p>
<p>Des weiteren gibt es ein Problem mit manchen User- bzw. Domainnamen. Der Bot bricht dann mit der Meldung:</p>

<div class="wp_syntax"><div class="code"><pre class="plain" style="font-family:monospace;">Can't call method &quot;isa&quot; without a package or object reference at /usr/local/share/perl/5.8.8/Net/XMPP/Protocol.pm line 2471.</pre></div></div>

<p> ab. (Die Zeile kann variieren)<br />
Abhilfe schafft das entfernen des &#8220;problematischen&#8221; Users aus der Liste des Bots. Der User kann den Bot danach immer nocht nutzen (so weit mir berichtet wurde). Anscheinend tritt das Problem auf, wenn der Username mit einer Ziffer beginnt (oder eine Ziffer enthält, das weis ich nicht).<br />
Vielen Dank an Daniel für die Hinweise und die Hilfe bei der Fehlersuche <img src='http://zinformatik.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> <strong>[/UPDATE]</strong></p>
<p><strong>[UPDATE]</strong>Ich habe den Bot jetzt mal auf GitHub hochgeladen: <a href="http://github.com/zimon/zBot" target="_blank" class="liexternal">http://github.com/zimon/zBot</a>. In der dortigen Version ist er auch an die neue Version von Net::Jabber::Bot angepasst. Leider funktionieren dadurch einige Plugins nicht mehr richtig, aber ich habe im Moment keine Zeit sie zu fixen. Vielleicht hat ja jemand Lust zu forken <img src='http://zinformatik.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <strong>[/UPDATE]</strong></p>
<p><span>Man kann den Bot gerne testen, indem man ihn zu seiner Kontaktliste hinzufügt: <a href="mailto:bruno@jey-key.de" class="linkifyplus">bruno@jey-key.de</a></span></p>
<p><span>Die Dokumentation ist nun auch online Verfügbar: <a href="http://zinformatik.de/zbotdoc/index.html" title="Dokumentation zBot Version 0.2" target="_blank" class="liinternal">Dokumenation Version 0.2</a><br />
</span></p>
<p><strong>Dateien</strong></p>
<ul>
<li><a href="http://zinformatik.de/wp-content/uploads/2009/02/zbot_02.zip" class="lizip">zbot_0.2.zip</a> &#8211; Das Programm (the program)</li>
<li><a href="http://zinformatik.de/wp-content/uploads/2009/02/zbot_02_doc.zip" class="lizip">zbot_0.2_doc.zip</a> &#8211; Die Dokumentation (the documentation)</li>
</ul>
<p><strong>Plugins</strong></p>
<ul>
<li><a href="http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/chatbot-plugin-fur-den-zbot/" title="Chatbot Plugin für den zBot" target="_blank" class="liinternal">Chatbot Plugin</a> &#8211; erweitert den zBot um die Möglichkeit &#8220;Unterhaltungen&#8221; mit dem Bot zu führen.</li>
<li><a href="http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/wikipedia-plugin-fur-den-zbot/" title="Wikipedia Plugin für den zBot" target="_blank" class="liinternal">Wikipedia Plugin</a> &#8211; fügt den Befehl &#8220;wiki&#8221; hinzu, mit dem die Definition (der erste Abschnitt des Artikels) zu einem Begriff angezeigt werden kann.</li>
<li><a href="http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/leo-dictionary-englisch-deutsch-ubersetzungs-plugin-fur-den-zbot/" title="Leo Übersetzungsplugin (Englisch &lt;-&gt; Deutsch) für den zBot" target="_self" class="liinternal">Leo Dictionary Plugin</a> &#8211; Deutsch &lt;-&gt; Englisch Übersetzungsplugin</li>
<li><a href="http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/wetter-plugin-fur-den-zbot/" title="Wetter Plugin für den zBot" target="_self" class="liinternal">Wetter Plugin</a> &#8211; macht eine Wettervorhersage für eine angegebene Postleitzahl</li>
<li><a href="http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/todo-plugin-fur-den-zbot/" title="Todo Plugin für den zBot" target="_self" class="liinternal">Todo Plugin</a> &#8211; verwaltet für jeden User eine Todoliste mittels <a href="http://todotxt.com" title="Todo.sh Homepage" target="_blank" class="liexternal">todo.sh</a></li>
<li><a href="http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/whois-plugin-fur-den-zbot/" title="Whois Plugin für den zBot" target="_self" class="liinternal">Whois Plugin</a> &#8211; Macht eine Whois-Abfrage zu einer gewünschten Domain und liefert das Ergebnis zurück.</li>
</ul>
<p><span style="color: #ffffff;">.</span></p>
<p><strong>English</strong></p>
<p>Here is my Jabber Bot &#8220;zBot&#8221; written in Perl using the CPAN Module <a href="http://search.cpan.org/~toddr/Net-Jabber-Bot-2.0.8/lib/Net/Jabber/Bot.pm" title="Jabber Bot CPAN Library" target="_blank" class="liexternal">Net::Jabber::Bot</a>.</p>
<p>It is easily extendable with plugins. If you want to write a plugin just look at the modules/Helloworld.pm (I commented this example Plugin better than the other ones). Its important to register your Plugin by calling the function Plugins::registerPlugin in your module. When it&#8217;s finished just copy it to the plugins directory. Every command is a plugin.</p>
<p>zBot runs in multi user chats (MUC) and you can add it to your contact list.</p>
<p>I started writing the bot yesterday, so it is not tested well but it works.</p>
<p>To install and start the bot, register a new account for the bot. Then edit the modules/Configs.pm to your needs (password, username,&#8230;) and start the zbot.pl (don&#8217;t forget to install the CPAN module first). It&#8217;s a good idea to start it on a server with</p>
<p>./zbot &amp;</p>
<p>so it stays online when you shut down your own computer. Now you can add the bot to your contact list. After the start the bot needs 20 seconds for initializing before it answers.</p>
<p>By sending &#8220;hilfe&#8221; to the bot it sends a list of available commands. With &#8220;hilfe &lt;command&gt;&#8221; you get the description of the plugin (for example: &#8220;hilfe helloworld&#8221;).</p>
<p>The bot is licenced under <a href="http://www.gnu.org/licenses/gpl-2.0.html" title="GPL" target="_blank" class="liexternal">GPL</a>. An english documentation is available.</p>
<p>All strings in the Code are in german language but the comments and documentation is english. I wrote an english translation as comment after (or below) each string, so it should be easy to translate.</p>
<p>It would be grate if you send me your plugins and enhancements of the code if you create some.</p>
<p><strong>[UPDATE]</strong>I have uploaded the bot on GitHub: <a href="http://github.com/zimon/zBot" target="_blank" class="liexternal">http://github.com/zimon/zBot</a>. There it is adapted to the new Net::Jabber::Bot version. By doing this some of the Plugins broke and I don&#8217;t have time to fix them. Maybe someone wants to fork it <img src='http://zinformatik.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <strong>[/UPDATE]</strong></p>
<p>For questions or problems you may contact me.</p>
]]></content:encoded>
			<wfw:commentRss>http://zinformatik.de/tipps-tricks/interessante-programme/zbot-ein-jabber-bot-in-perl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Backup per FTP mit Tartarus</title>
		<link>http://zinformatik.de/tipps-tricks/interessante-programme/backup-per-ftp-mit-tartarus/</link>
		<comments>http://zinformatik.de/tipps-tricks/interessante-programme/backup-per-ftp-mit-tartarus/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 22:17:47 +0000</pubDate>
		<dc:creator>zimon</dc:creator>
				<category><![CDATA[Interessante Programme]]></category>
		<category><![CDATA[Sicherheit und Datenschutz]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[Konsole]]></category>
		<category><![CDATA[Scripte]]></category>

		<guid isPermaLink="false">http://zinformatik.de/?p=554</guid>
		<description><![CDATA[<p>Bisher war der <a href="http://zinformatik.de/allgemeines/server-down-wegen-stromausfall-bei-hetzner/" title="Stromausfall bei Hetzner" target="_self" class="liinternal">Stromausfall am Donnerstag</a> das einzige mal seit ich dort Kunde bin, dass etwas bei Hetzner nicht in Ordnung war. Jedoch habe ich es mir zum Anlass genommen, meine Backupstrategie zu überdenken.</p>
<p>Bisher nutzte ich selbstgeschriebene Bash Scripte und wollte diese erweitern, doch dann stieß ich auf Tartarus.</p>
<p>Tartarus ist ein opensource&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Bisher war der <a href="http://zinformatik.de/allgemeines/server-down-wegen-stromausfall-bei-hetzner/" title="Stromausfall bei Hetzner" target="_self" class="liinternal">Stromausfall am Donnerstag</a> das einzige mal seit ich dort Kunde bin, dass etwas bei Hetzner nicht in Ordnung war. Jedoch habe ich es mir zum Anlass genommen, meine Backupstrategie zu überdenken.</p>
<p>Bisher nutzte ich selbstgeschriebene Bash Scripte und wollte diese erweitern, doch dann stieß ich auf Tartarus.</p>
<p>Tartarus ist ein opensource Bash Script, welches komplette sowie inkrementelle Backups von beliebigen Ordnern machen kann. Auch LVM Snapshots sind möglich. Warum also Zeit in Scripten, Testen und Debuggen investieren (es soll ja auch zuverlässig sein), wenn es schon eine fertige und erprobte Lösung gibt&#8230;</p>
<p>Die Konfiguration lässt sich einfach über verschiedene Konfigurationsdateien steuern wodurch Änderungen schnell umgesetzt werden können.</p>
<p>Die Sicherung erfolgt wahlweise zu einem FTP-Server oder in ein Verzeichnis. Man kann jedoch noch andere Möglichkeiten nutzen indem man entsprechende Funktionen in den Konfigurationsdateien erstellt. In der Dokumentation ist ein Beispiel für ssh.</p>
<p>Die Verzeichnisse werden mit tar gepackt und wahlweise mit bzip2 oder gzip komprimiert. Zusätzlich kann noch mit GnuPG synchron oder asynchron verschlüsselt werden.Verzeichnisse, die nicht mit ins Backup sollen kann man über eine Liste ausschließen.</p>
<p>Die Verwendung von Standardbefehlen wie tar oder bzip finde ich sehr Vorteilhaft, da sie auf fast jedem (Linux) System verfügbar sind. Zur Übertragung per FTP wird curl genutzt.</p>
<p>Mit dem Zusatzscript charon kann man ältere Backups auch leicht wieder vom Backup-Server löschen. Dies kann man sogar als sogenannten &#8220;Hook&#8221; nach der Erstellung des neuen Backups automatisch ausführen lassen. Dabei löscht charon nur  Backups, die älter als eine vorgegebene Anzahl von Tagen sind.</p>
<p><strong>Links:</strong></p>
<ul>
<li>Tartarus Homepage: <a href="http://wertarbyte.de/tartarus.shtml" title="Tartarus Webpage" target="_blank" class="liexternal">http://wertarbyte.de/tartarus.shtml</a></li>
<li>Installations- und Konfigurationsanleitung im Hetzner Wiki: <a href="http://wiki.hetzner.de/index.php/Tartarus_Backup-Konfiguration" title="Hetzner Wiki - Tartarus" target="_blank" class="liexternal">http://wiki.hetzner.de/index.php/Tartarus_Backup-Konfiguration</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zinformatik.de/tipps-tricks/interessante-programme/backup-per-ftp-mit-tartarus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox Erweiterung &#8211; NoScript</title>
		<link>http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/firefox-erweiterung-noscript/</link>
		<comments>http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/firefox-erweiterung-noscript/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 12:12:31 +0000</pubDate>
		<dc:creator>zimon</dc:creator>
				<category><![CDATA[Plugins und Erweiterungen]]></category>
		<category><![CDATA[Sicherheit und Datenschutz]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Scripte]]></category>

		<guid isPermaLink="false">http://zinformatik.de/?p=119</guid>
		<description><![CDATA[<p>NoScript ist eine Firefox Erweiterung, die den Umgang mit Scripten erleichtert.</p>
<p>Es wird immer wieder darauf hin gewiesen, dass man möglichst JavaScript, Java, Flash,&#8230; abschalten sollte um die Sicherheit zu erhöhen. Gerade XSS Attacken werden in letzter Zeit immer häufiger. Doch leider benutzt mittlerweile fast jede Seite irgendwelche Scripte, so dass das grundsätzliche Ausschalten von Scripten nur für die wenigsten&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>NoScript ist eine Firefox Erweiterung, die den Umgang mit Scripten erleichtert.</p>
<p>Es wird immer wieder darauf hin gewiesen, dass man möglichst JavaScript, Java, Flash,&#8230; abschalten sollte um die Sicherheit zu erhöhen. Gerade XSS Attacken werden in letzter Zeit immer häufiger. Doch leider benutzt mittlerweile fast jede Seite irgendwelche Scripte, so dass das grundsätzliche Ausschalten von Scripten nur für die wenigsten in Frage kommt.</p>
<p>Hier setzt NoScript an und platziert ein Icon in die Statusleiste. Gleichzeitig werden alle Scripte unterbunden. Nun kann man über das Icon ein Kontextmenü aufrufen um die aktuelle Domain (und alle Domains die Scripte auf der aktuellen Seite ausführen wollen) einer Whitelist hinzuzufügen oder sie temporär zu erlauben. Diese Aktion läd auch gleichzeitig die Seite neu, so dass die Scripte darauf gleich mit geladen werden. (z.B. XSS Attacken werden jedoch weiterhin geblockt)</p>
<p>Dadurch hat man die Sicherheit von deaktivierten Scripten, kann sie für einzelne Seiten jedoch schnell wieder anschalten. Natürlich wird das Surfvergnügen dadurch ein wenig beeinflusst, aber ich finde dass es einen guten Kompromiss zwischen Sicherheit und Nutzbarkeit darstellt. Gerade für Windows User halte ich dieses Plugin schon fast für Pflicht.</p>
<p>Auch Heise empfiehlt immer wieder, diese Erweiterung zu nutzen:</p>
<ul>
<li><a href="http://www.heise.de/security/dienste/browsercheck/anpassen/firefox/02.shtml" title="Sicherheitseinstellungen von Firefox anpassen" target="_blank" class="liexternal">Sicherheitseinstellungen von Firefox anpassen</a></li>
<li><a href="http://www.heise.de/security/news/meldung/108560" target="_blank" class="liexternal">Kritische Schwachstelle im Flash Player wird aktiv ausgenutzt</a></li>
<li><a href="http://www.heise.de/security/Passwortklau-fuer-Dummies--/artikel/94100" target="_blank" class="liexternal">Passwortklau für Dummies</a></li>
<li><a href="http://www.heise.de/security/Clickjacking-Jeder-Klick-im-Browser-kann-der-falsche-sein--/news/meldung/117055" target="_blank" class="liexternal">Clickjacking: Jeder Klick im Browser kann der falsche sein</a></li>
<li><a href="http://www.heise.de/security/QuickTime-reisst-Sicherheitsleck-in-Firefox-auf--/news/meldung/95909" target="_blank" class="liexternal">QuickTime reißt Sicherheitsleck in Firefox auf</a></li>
</ul>
<p>Das Plugin kann bei den <a href="https://addons.mozilla.org/de/firefox/addon/722" title="Mozilla Adons" target="_blank" class="liexternal">Mozilla Adons</a> herunter geladen werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://zinformatik.de/tipps-tricks/interessante-programme/plugins-erweiterungen/firefox-erweiterung-noscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

