checkurl: Prüfen, ob ein Wort auf einer Webseite vorkommt 

Filed under: Tux, Web, bash on Saturday, November 10th, 2007 by Markus | No Comments

Mit dem folgenden Bash-Script kann man prüfen, ob auf einer Webseite ein bestimmtes Wort vorkommt:

#!/bin/bash

if [ $# -ne 2 ]; then
        echo "Usage: checkurl [URL] [string to search for]"
        echo
        echo "Exits with:"
        echo "    0=string found"
        echo "    1=string not found"
        exit 100
fi

cres=`curl -s $1 | grep -c $2`

if [ $cres -lt 1 ]; then
        echo "not found"
        exit 1
else
        echo "found"
        exit 0
fi

Voraussetzung: curl sollte installiert sein

Neues E-Mail-Zertifikat unter Vista mit IE 7 und Firefox 

Filed under: Sec on Wednesday, October 24th, 2007 by Markus | 5 Comments

Heute wollte ich mir bei Thawte ein neues E-Mail-Zertifikat besorgen. Früher war das nicht schwer: Einfach im Browser meiner Wahl auf deren Seiten gehen, den Bestellvorgang starten, dieser öffnet das Browser-Crypto-Plugin, generiert meinen Key und fordert das Zertifikat an. Warten, bis es ausgestellt (issued) ist und auf “Fetch” klicken, fertig.

Erst habe ich es mit IE 7 probiert: Der steigt an der Stelle, an der ich den Verschlüsselungsgrad wählen kann, aus: “VBScript Error 424 - Objekt benötigt” (oder so). Andere Sicherheitszone? Keine Chance. Nicht im geschützten Modus? Keine Chance, also, nächster Versuch:

Firefox: Bis zum Button “Fetch” hat alles funktioniert, dann klicke ich drauf und lustigerweise fühlt sich plötzlich Windows für die Anforderung verantwortlich. Das bringt mir halt nichts, weil der Key nur in Firefox sitzt. Das Zertifikat konnte ich auch nicht von Hand im Firefox-Manager importieren.

Die Lösung - oder nennen wir es besser “Workaround”: Firefox im Kompatibilitätsmodus für Windows XP starten, dann das Zertifikat importieren (klappt super), dann das Zertifikat aus Firefox exportieren und im Windows Zert-Manager importieren und man kann es in Outlook verwenden. Schon.

Der HttpHandler und die Session [update] 

Filed under: .NET, Web on Tuesday, October 2nd, 2007 by Markus | 1 Comment

Heute habe ich bemerkt, dass ich in einem IHttpHandler (ashx) an den HttpContext komme, allerdings die Session darin immer null ist.

Das scheint in HttpHandler-Kreisen so üblich, aber es gibt eine Abhilfe:

Die Klasse muss das Interface IRequiresSessionState implementieren.
Das ist garnicht schwierig, da die Implementierung keinen weiteren Code erfordert. Einfach die Klasse folgendermaßen definieren:

public class MyHandler : IHttpHandler, IRequiresSessionState

Nachtrag:
Damit es funktioniert, sollte man noch System.Web.SessionState includen:

using System.Web.SessionState;

Linux: Befehl später ausführen mit at 

Filed under: Tux on Wednesday, September 19th, 2007 by Markus | No Comments

Eben habe ich auf einer weniger wichtigen Maschine ein Kernelupdate gemacht. Da ich sie nicht gleich durchstarten wollte, sondern erst heute Nacht (und auch nicht periodisch mit cron) habe ich den atd verwendet, um den Job zu planen.

Die Verwendung ist denkbar einfach:

at 23:30
at>reboot
at> ### [Strg]+[d] drücken ###

Dass man Strg+d drücken muss, habe ich erst nach etwas Suchen heruasgefunden. Probiert mal eine Google-Suche nach “at” :-)

Mein Favourite ist übrigens:

at teatime

… führt Befehle um 16:00 Uhr aus.

Zwei Seiten, die den Befehl näher erklären:
http://www.linuxjournal.com/article/4087
http://www.linux.org/lessons/interm/c622.html

MySQL: Query Cache 

Filed under: MySQL on Tuesday, September 18th, 2007 by Markus | No Comments

Wenn die wichtigsten Tuningeinstellungen für MySQL gemacht sind, lohnt es sich, auch einen Blick auf den Query Cache zu werfen. Dieser speichert das Ergebnis von SQL-Abfragen und kann es somit bei Bedarf aus dem Arbeitsspeicher wiedergeben. Gerade für abfragen, die auf Webseiten live ausgeführt und deren Ergebnis aus irgendeinem Grund nicht auf dem Webserver gecacht wird, dürfte das interessant sein. Im Wesentlichen beschränkt sich die Konfiguration auf die folgenden Angaben:


query_cache_type=1
query_cache_size=6M
query_cache_limit=1M

Zuerst wird der cache aktiviert, dann wird die Größe bestimmt und schließlich der maximale Speicherplatz pro zwischengespeicherter Abfrage angegeben.

Um zu sehen, wie sich der query cache macht, kann man diese Abfrage benutzen:

SHOW STATUS LIKE 'Qcache%';

Im Ergebnis bekommt man dann einen Eindruck, wir gut der Cache genutzt wird, indem man das Verhältnis von Hits und inserts betrachtet:

+-------------------------+---------+
| Variable_name           | Value   |
+-------------------------+---------+
| Qcache_free_blocks      |      81 |
| Qcache_free_memory      | 4412528 |
| Qcache_hits             |    3809 |
| Qcache_inserts          |    1355 |
| Qcache_lowmem_prunes    |       0 |
| Qcache_not_cached       |     309 |
| Qcache_queries_in_cache |     650 |
| Qcache_total_blocks     |    1425 |
+-------------------------+---------+

Übrigens: Einzelne Einträge im query cache werden entfernt, wenn sich in der Datenbank an entsprechende Stelle etwas ändert. Man bekommt also immer frische Ware.

GridView: Zahlen formatieren 

Filed under: .NET, Web, Win on Tuesday, September 4th, 2007 by Markus | No Comments

Ich musste heute in einer GridView Zahlen formatieren, und zwar mit Tausender-Trennzeichen. Eigentlich kein Problem, wie bei der guten alten DataGrid als format string {0:###,###} eintragen. Dummerweise hat das nichts gebracht. Die Lösung war denkbar einfach: Man muss für die betreffende Zelle das HTML encoding abschalten.

Clavister: How to add an additional IP address to an interface? 

Filed under: Clavister, English on Wednesday, August 22nd, 2007 by Markus | No Comments

What if you need an additional IP address on one of the security gateway’s interfaces?

After searching the cfw-users mailing list’s archive I found a solution:
Under Interfaces -> ARP I had to add an entry have the security gateway publish its arp address for the IP address on the desired interface:

Mode: Publish
Interface: Interface with the IP Address
IP Address: The IP Address to be published
MAC Address: 00:00:00:00:00:00

Source:
http://archive.netbsd.se/?ml=cfw-users&a=2006-12&m=2703752

Linux: Image von CD oder DVD erstellen 

Filed under: Tux on Friday, August 17th, 2007 by Markus | No Comments

Unter Linux kann man mit dd komplette Datenträger auslesen und an eine beliebige Stelle schreiben. Um ein einfaches CD-Image zu erstellen, ist kein bedonderer Befehl nötig. Einfach die Quelle und das Ziel angeben:


dd if=/dev/cdrom of=image.iso

SQL Server 2005 - Wartungsplan lässt sich nicht anlegen 

Filed under: SQL, Win on Wednesday, August 8th, 2007 by Markus | 3 Comments

Ich habe SQL Server 2005 installiert und konnte keinen Wartungsplan anlegen.

Die Fehlermeldung:
(...) The specified '@subsystem' is invalid (valid values are returned by sp_enum_sqlagent_subsystems) (...)

Die Lösung:
Man muss SSIS (SQL Server Integration Services) nachinstallieren.

Wie installiert man SSIS?
Nicht so, wie man denkt. Über Software in der Systemsteuerung kommt man (entgegen Aussagen von Microsoft) nicht zu Ziel. Man muss von der Installations-CD noch einmal das Setup starten und bei der Auswahl der Komponenten nur SSIS auswählen. Dass bei allen anderen Komponenten steht, sie seien nach der Installation nicht verfügbar, muss man ignorieren. Das Setup installiert dann SSIS und man kann endlich Wartungspläne anlegen.

Typo3: leerer Bildschirm nach Installation 

Filed under: Tux, t3 on Friday, August 3rd, 2007 by Markus | No Comments

Für alle, die nach der Installation von Typo3 (z.B. auf Centos 5) nur einen leeren Bildschirm sehen:

Wenn das Paket php-mysql fehlt, bringt Typo3 nur einen leeren Bildschirm und keine Fehlermeldung.

Wie konnte ich das Paket auch vergessen … ?!