301 Weiterleitung PHP ASP.net Coldfusion

In fast jeder Skriptsprache gibt es eine Möglichkeit eine 301 Weiterleitung (Redirect) einzurichten. Dies ist für eine Suchmaschinenfreundliche Weiterleitung wichtig (SEO).

301 Redirect in PHP
<?php
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: http://www.neueOderAlteDomain.de/neuerPfad” );
?>

301 Redirect in ColdFusion
<cfheader statuscode=”301″ statustext=”Moved permanently”>
<cfheader name=”Location” value=”http://www.neueOderAlteDomain.de/neuerPfad”>

301 Redirect in ASP
<%@ Language=VBScript %>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”, “http://www.neueOderAlteDomain.de/neuerPfad”
>

301 Redirect in ASP .NET

<script runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,”http://www.neueOderAlteDomain.de/neuerPfad”);
}
</script>

Western Digital My Book externe Festplatte

Die externe Western Digital My Book Festplatte ist mein neuer Datenspeicher. Nachdem ich meinen Fehlkauf der Seagate FreeAgent Pro durch Rückgabe korrigiert habe, habe ich mir die My Book 500GB von Western Digital gegönnt. Die My Book gibt es in mehreren Ausführungen.

  • Pro Edition mit FireWire 800, FireWire 400 und USB 2.0 Anschlüssen
  • Premium Edition mit FireWire 400 und USB 2.0 Schnittstellen
  • Premium ES Edition mit USB 2.0 und eSATA (bis 3 Gb/s) Anschlüssen
  • Essential Edition mit USB 2.0 Anschluß
  • World Edition mit USB 2.0 und Ethernet (10/100/1000 Mb/s) Anschlüssen
  • Ich hoffe, ich habe keine Version vergessen. Ich habe mich für die letztere Version in der 500 GB Variante entschieden und das aus folgenden Gründen:

  • ich habe noch keinen eSATA Anschluß an meinen Computern
  • Firewire habe ich nur an einem Rechner und ich will von beiden Rechnern auf die My Book zugreifen
  • Ich wollte die Platte nicht hin- und herschleppen, wenn ich sie mal an mein Laptop im andern Zimmer anschliessen will.Also habe ich die My Book an meinen Asus-Router über ein Netzwerkkabel angeschlossen. Damit kann ich nun über W-Lan von allen Zimmern nun auf die externe Festplatte zugreifen.
    Die Installation war etwas verwirrend. Ich wollte erstmal die auf CD mitgelieferte Software installieren. Irgendwann im Installationsprozess verlangte dieser nun eine Registrierung ?! Da ich dass nicht wollte versuchte ich die Platte auf andere Art und Weise zum laufen zu bekommen. Nach ein paar Recherchen habe ich die “Homepage” der Festplatte gefunden. Die Platte wird nämlich über ein Webinterface konfiguriert und die mitgelieferten Software dient nur zum weltweiten Zugriff über das Internet auf die Festplatte – für mich nicht von Bedeutung. Also habe ich über den Browser auf das Web-Interface der Festplatte aufgerufen (IP-Adresse der Platte) und habe alle Einstellungen (User/Zugriffsrechte) für mein lokales Netzwerk konfiguriert. Dann noch auf den Rechnern als Netzlaufwerk verbunden und schon lief alles wunderbar!
    Im Vergleich zur Seagate ist die Western Digital Platte etwas lauter und nicht ganz so stylisch. Dafür bietet sie eine (wenn auch etwas schlecht ablesbare) externe Belegungsanzeige an der Vorderseite.
    Von der Geschwindigkeit bin ich noch nicht so überzeugt. Auch wenn ich mein Laptop ebenfalls an einen 100 MBit/s Port des Routers stecke sind die Übertragungsraten für meinen Geschmack zu langsam. Aber ok, ich wollte ja nicht dauernd drauf zugreifen und die externe Festplatte nur als großen Datenspeicher für nicht so oft benötigte Dateien nutzen. Und dafür reicht es allemal.
    Insgesamt bin ich also schon zufrieden mit meiner neuesten Investition und hoffe, dass sie noch lange meine Daten hält.
  • Seagate FreeAgent Pro externe Festplatte

    Packung Seagate FreeAgent Pro

    Die Seagate FreeAgent Pro mit 320GB lachte mich bei einem großen Technik-Supermarkt an und da ich sowieso vor hatte mir eine externe Festplatte zuzulegen, nahm ich diese kurzerhand mit.

    Zu Hause angekommen, musste ich die Seagate FreeAgent Pro natürlich gleich ausprobieren. Beim Auspacken gab es die erste Überraschung: keine CD!? Dafür ein Strom-Adapterkabel, ein USB-Kabel, ein kleines Faltblatt zur Inbetriebnahme und die Seagate FreeAgent Pro selbst. Das Design und die Verarbeitung sind wirklich sehr ansprechend. Also kurz mal in das Faltblatt geschaut und die Platte anhand dessen angeschlossen. Und was passiert? Ausser einem gelben Blinken der Platte nichts. Laut Faltblatt sollte die Platte vom Rechner (mit Windows XP Home) automatisch erkannt werden und sich dann ein Dialogfenster öffnen, dessen Anweisungen ich befolgen soll. Dieses kam aber nicht. Auch beim Versuch die Platte am zweiten Rechner (mit Windows XP Professional) zum Laufen zu bekommen wurde sie nicht erkannt.

    Leider gibt das mitgelieferte Faltblatt keinerlei Auskünfte, was in einem solchen Fall zu tun ist. Also habe ich erstmal selber in der Datenträgerverwaltung und in der Hardwareverwaltung nachgesehen, aber auch hier konnte die Platte nicht erkannt werden. Die Support-Homepage des Herstellers, deren Adresse im Faltblatt angegeben ist, liefert neben den auch schon von mir durchgeführten Tests auch keine weiteren Hilfen. Ich fand auch nirgendwo eine Beschreibung der Hardware. Diese hat nämlich einen Power Knopf auf der Trägerplatte, nur hat dieser anscheinend nur eine Funktion, wenn die Seagate FreeAgent Pro nur ans Stromnetz angeschlossen ist aber noch nicht per USB verbunden ist. In diesem Fall kann mit dem Power-Knopf die Festplatte eingechalten werden (Festplatte läuft an und sie beginnt zu blinken). Genau dies erfolgt aber auch automatisch, wenn man die USB-Verbindung herstellt.

    Zugegeben, die Seagate FreeAgent Pro sieht schon dekorativ aus und das Blinken wirkt vor allem im Dunkeln sehr schön, aber ich werde diese Platte zurückbringen und mir was anderes suchen. Denn ehrlich gesagt, bin ich etwas enttäuscht von Seagate, die es nicht einmal fertig bringen eine funktionierende Plug-and-Play Lösung anzubieten und den Support finde ich auch schlecht.

    Der Vollständigkeit halber aber dennoch ein paar technische Daten der Seagate FreeAgent Pro:

    • Größe: 320 GB (gibt es auch größer)
    • Anschlüsse: USB 2.0 (1,6m Kabel im Lieferumfang) und eSATA (Kabel und Adapterkarte müssen separat erworben werden)
    • 3,5″ Platte in edlem dunklen Gehäuse (gebürstetes Aluminium-Optik)
    • Höhe: 19cm, Breite: 8cm, Tiefe: 16cm
    • Garantie: 5 Jahre
    • Stromanschlußkabel 1,8m

    Seagate FreeAgent Pro Packungsinhalt Seagate FreeAgent Pro von unten Seagate FreeAgent Pro Anschlüsse Seagate FreeAgent Pro aus Seagate FreeAgent Pro an

    Videolänge Canon Powershot G7

    Meine alte Digitalkamera (Olympus C-350Z) war längst nicht mehr up-to-date. Lange habe ich Testberichte und Testfotos der verschiedenen aktuellen Kameramodelle angesehen und mich letztendlich durchgerungen eine Canon Powerhot G7 zu kaufen. Der Preis von unter 400 Euro war mehr als ansprechend. Die Qualität der Kamera wurde in vielen Tests gelobt. Einziges Manko dieser Kamera ist die Videolänge. Und zwar wird bei der Canon Powershot G7 das Video nicht so stark komprimiert wie bei normalen Digitalkameras. Das hat den Vorteil, dass die Qualtität der Videos viel Besser ist – aber eben den Nachteil, dass man große Speicherkarten braucht, wenn man mal längere Aufnahmen machen möchte. Da ich wußte, dass ich auch ab und zu Videos aufnehmen werde, habe ich mir eine 2 GB (1,89 GB verfügbar) große SD SanDisk Extreme III dazugekauft. Da die Kamera auch SDHC-Karten unterstützt, kann man auch 32 GB große SDHC Karten verwenden – die es aber noch nicht zu kaufen gibt.

    Mit meiner 2 GB SD Karte erziele ich folgende Videolängen:

    • 17 Minuten 34 Sekunden bei einer Auflösung von 1024 x 768 und 15 Bildern pro Sekunde (2066 KB/Sek lt. Canon)
    • 17 Minuten 24 Sekunden bei einer Auflösung von 640 x 480 und 30 Bildern pro Sekunde (2006 KB/Sek lt. Canon)

    in der 640 x 480er Auflösung hat man noch die Wahl, ob man nur 15 Bilder pro Sekunde haben möchte, das würde die Videolänge nochmal verdoppeln.
    Man kann die Größe der Videos dadurch verringern, dass man diese auf den Rechner überträgt und dann auf dem Rechner komprimiert. Dieser kann das viel besser als es die Digitalkameras können und damit erreicht man auch einer höhere Qualität im Vergleich zu Videos von Digitalkameras, die die Videos selber stark komprimieren.

    Hinweis zur Übertragung von großen Videodateien von der Canon Powershot G7 auf den Computer: ab einer bestimmten Größe können die Videos nicht mehr einfach über den Windows-Explorer kopiert werden. Folgende Lösung gibt es dafür:

    1. Nutzen der mitgelieferten Canon Software “ZoomBrowser EX”: mit dieser können auch die großen Videos von der Kamera kopiert werden
    2. Einsatz eines Kartenlesegerätes
    3. Teilen der Videos in der Kamera in kleinere Dateien

    Abfragename nach EXECUTE erwartet. – Fehler

    Vorgeschichte: Ich wollte in C# eine Paradox-Tabelle mit einem SQL-Update-Statement aktualisieren. Meine Versuche dies direkt mittels

    OleDbCommand aCmd = new OleDbCommand(“update t_time set bis = ‘” + DateTime.Now.ToString() + “‘ where personalNr = 481 and datum = “”12.06.2007″””, aCon);
    aCmd.ExecuteNonQuery();

    zu bewerkstelligen scheiterten an der Fehlermeldung “Datentypen in Kriterienausdruck unverträglich.”. Also machte ich mich im Web etwas schlau und fand einen Hinweis, dass man dies am Besten mittels Parameter umgeht. Das untenstehende Beispiel habe ich an meine Bedürfnisse angepasst und bekam dann die Fehlermeldung (die im Visual Studio angezeigt wird) wenn man versucht folgende SQL-Update-Anweisung an eine Paradox Datenbank zu senden.

    Mein C# Code sah so aus:

     

    String sConStr = @”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DB\Paradox\Daten;Extended Properties=Paradox 7.x;”;
    OleDbConnection aCon = new OleDbConnection(sConStr) ;
    aCon.Open();
    OleDbCommand aCmd = new OleDbCommand(“update t_time set bis = ‘” + DateTime.Now.ToString() + “‘ where personalNr = 31114 and ”
    + ” datum = @startDatum”, aCon);
    aCmd.CommandType = CommandType.StoredProcedure;
    OleDbParameter datParameter;
    datParameter = new OleDbParameter(“@startDatum”, OleDbType.DBDate);
    datParameter.Value = startdatum;
    aCmd.Parameters.Add(datParameter);
    aCmd.ExecuteNonQuery();
    aCon.Close();

    Beim Versuch dieses Statement auf der DB auszuführen bekam ich den Fehler “Abfragename nach EXECUTE erwartet.”

    Nach etwas überlegen (fiel mir etwas schwer, weil ich schon zu viele Stunden am Rechner hing) fand ich den kleinen Fehler:

    Statt

    aCmd.CommandType = CommandType.StoredProcedure;

    muss es natürlich

    aCmd.CommandType = CommandType.Text;

    heissen. Dann klappt die Datumsübergabe perfekt!

    Neue Akku-Generation gegen schlaffe Akkus

    Meine alte Digicam (Olympus c-350) hält mit einer Batterieladung (2xAA) nicht mehr lange durch. Nach einem halben Tag blinkt schon wieder die Batteriewarnleuchte. Selbst wenn ich die Kamera nicht benutze entladen sich die Batterien innerhalb weniger Tage. Ich habe 2 NiMH Akkus der Firma Ansmann mit jeweils einer Kapazität von 2600 mAh – also eigentlich ausreichend. Das Problem ist nur, dass die Akkus schon über zwei Jahre alt sind. Also mal wieder Zeit für neue Akkus.

    Durch Zufall habe ich entdeckt, dass es nun eine neue Generation von NiMH Batterien gibt. Sowohl Panasonic als auch Ansmann haben seit neuestem Akkus im Programm die

    1. schon geladen geliefert werden und
    2. nach jedem Ladevorgang selbst nach einem Jahr noch einsatzbereit sind (Kapazität von 80% nach einem Jahr)

    Leider habe ich im Geschäft nur die Ansmann “max e” Batterien mit 2100 mAh gefunden. Diese habe ich mir gleich mal gekauft. Preis für zwei Akkus um die 7 Euro.
    neue Akku-Generation

    Den ersten Test haben die beiden Akkus erfolgreich gemeistert: frisch aus der Verpackung ab in die Kamera konnte ich deutlich mehr Fotos machen als mit alten Akkus. In ein paar Monaten werde berichten, wie es sich dann mit der Haltbarkeit verhält.

    Kein VBA-Zugriff auf Paradox nach DB-Änderung

    Ich habe eine alte Paradox Datenbank im Einsatz, die über ein Jahrzehnt “gereift” ist. Ich muss dazu sagen, dass ich die Betreuung und Administration dieser Datenbank erst nach ca. 8 Jahren übernommen habe. Leider existierte bis dahin keinerlei Dokumentation!

    Aber nach einiger Zeit habe ich mich “hineingelebt” und habe sie eigentlich soweit im Griff.

    Nun aber zu meinem neuestem Problem und dessen Lösung:

    Auf die Datenbank wurde unter anderem auch aus Outlook 2003 mittels VBA / ODBC zugegriffen. Bisher lief das einwandfrei. Seit Kurzem aber kommt nur noch eine nichtssagende Fehlermeldung wenn auf eine bestimmte Tabelle mittels Select-Statement zugegriffen wird. TODO: genauen Fehlertext angeben

    Also fragte ich mich, was ist nun anders? Erstmal dachte ich an Microsoft, die hatten gerade wieder ein paar Updates installiert und da gab es schon an anderer Stelle seltsame Effekte. Also suchte ich mir einen Rechner im Netzwerk, der diese Updates noch nicht installiert hatte und probierte den Zugriff von diesem.

    Dort erschien die gleiche Fehlermeldung. Also fragte ich mich: “Was wurde zuletzt an der Datenbank geändert?”. Und ich erinnerte mich, dass ein neues Attribut in diese Tabelle eingefügt wurde. Also habe ich erstmal auf einem Testsystem die Tabelle aufgespielt und das entsprechende Attribut gelöscht: perfekt! Nun funktionierte der Zugriff wieder, aber ich konnte das neue Feature nicht mehr nutzen. Also habe ich testweise dieses Attribut wieder eingefügt und dafür ein anderes gelöscht und siehe da auch dann funktionierte der Zugriff aus Outlook heraus! Es liegt also an der Anzahl der Attribute!

    Zugegeben, die Tabelle ist ein Monster. Sie hat nun 85! Attribute. Wie oben schon erwähnt, möchte ich zu meiner Verteidigung sagen, dass ich diese nicht geplant habe. Aber ich konnte einige nicht genutzte Attribute identifizieren und habe diese nun gelöscht, so dass es nun keine Probleme der beschrieben Art gibt, auch wenn ich nun noch ein paar neue Attribute einfüge.