Archive for the ‘Web’ Category

IE 6, 7 und 8 auf einem Rechner

Um mehrere Versionen von Internet Explorer parallel betreiben zu können, bieten sich folgende Images an:

http://www.xenocode.com/Browsers/

Bilder aus SWF-Datei extrahieren

Heute musste ich ein Bild aus einer Flash-Datei extrahieren. Da ich kein Flash auf dem Rechner habe und die Experten in Skype gerade nicht ansprechbar waren, habe ich mich selber auf die Suche gemacht und bin auf den FlashDigger gestoßen. Schon die Demoversion hat es mir ermöglicht, das gewünschte Bild zu finden und zu exportieren. Sogar als PNG mit Alphakanal. Perfekt zum Weiterverarbeiten.

conrad.de SEO: Daheim sterben?

Heute morgen habe ich im Web nach einem neuen Akku für mein Dell Inspiron 8500 gesucht. Eines der Suchergebnisse verwies auf eine Seite im Shop von conrad.de. Das Angebot ist nicht besonders, aber ich frage mich, wie wohl die Adresse für den Notebookakku entstanden ist:

http://www.conrad.de/Computer-Buero/daheim_sterben_die.sap

Es mag vielleicht so sein, dass manche Anbieter Urls mit suchmaschinenrelevanten Begriffen generieren, aber was Conrad damit bezweckt, die Begriffe “daheim, sterben und die” mit einem Notebookakku zu koppeln, verstehe ich nicht.

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

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

Der HttpHandler und die Session [update]

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;

GridView: Zahlen formatieren

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.

favicon im Internet Explorer

Nachdem ich einen richtig guten Icon – Editor gefunden habe, wollte ich diesen auch anwenden. Ich habe ein favicon.ico für eine Website erstellt und ins Rootverzeichnis gelegt, mit dem Ergebnis, dass es in Firefox wunderbar angezeigt wurde. In Internet Explorer nicht. Ich wusste, dass IE Icons verliert, wenn man den Cache leert, aber irgendwie habe ich ihm nicht beibringen können, das favicon wieder zu erkennen.

Jetzt gibt es ja die Möglichkeit über
<link rel=”shortcut icon” href=”/irgend/ein/pfad/favicon.ico” />
einen abweichenden Ort fürs favicon anzugeben. Wäre ja eigentlich in meinem Fall nicht nötig, aber ich habe es mal gemacht und – siehe da – Internet explorer findet das favicon. Also schnell die Zeile ins Template und Ruhe haben :-)

Links auf Bibelstellen

Vor kurzem habe ich das Projekt BasisBibel entdeckt. Dabei handelt es sich um eine neue Bibelübersetzung, die besonders für neue Medien optimiert ist.
Außerdem gibt es die Möglichkeit aus Webseiten heraus direkt auf Bibelstellen in der BasisBibel zu verlinken. Entweder per herkömmlichem Link oder per JavaScript-Popup. Ich fand das Interessant für die Dynamis-Webseiten und habe kurzerhand beide Möglichkeiten der Verlinkung kombiniert:

Mit einem kleinen JavaScript ist es so möglich, einen gewöhnlichen Link auf eine Bibelstelle gleichzeitig zum Popup-Link zu machen. Diese Links sind “onobtrusive”, sprich: Sowohl für Mensch, als auch für Maschine (z.B. Google), mit oder ohne Javascript zugänglich.

Ein gewöhnlicher Link auf eine Bibelstelle sieht so aus:
<a href="http://www.basisb.de/bibel/Mt%202,1">Matthäus, Kapitel 2, Vers 1</a>

Der Popuplink sieht ganz ähnlich aus:
<a href="http://www.basisb.de/bibel/Mt%202,1" class="basisb-bibelstelle">Matthäus, Kapitel 2, Vers 1</a>

Über die Klassendefinition wird festgelegt, wie das Popup aufgehen soll. Entweder nur die Bibelstelle (“basisb-bibelstelle”) oder die Bibelstelle mit Kontext (“basisb-bibeltext”).

Ach ja, hier sieht man das Script im Praktischen Einsatz:
http://www.dynamis4u.de/programm/

Einbau in die Seite

  • Beispiel und JavaScript runterladen: basisb2_10.zip
  • Die beiden Javascripts in HTML einbinden (siehe index.htm)
  • … und schon funktioniert das mit den Links

Transparentes 1×1-Pixel-GIF ausgeben

Response.Clear();
Response.ContentType = “image/png�;
Response.BinaryWrite(new byte[] {0×47, 0×49, 0×46, 0×38, 0×39, 0×61, 0×01, 0×00, 0×01, 0×00, 0×80, 0×00, 0×00, 0xFF, 0xFF, 0xFF, 0×00, 0×00, 0×00, 0×21, 0xF9, 0×04, 0×01, 0×00, 0×00, 0×00, 0×00, 0×2C, 0×00, 0×00, 0×00, 0×00, 0×01, 0×00, 0×01, 0×00, 0×00, 0×02, 0×02, 0×44, 0×01, 0×00, 0×3B});
Response.End();

Transparentes 1×1-Pixel-PNG ausgeben

Response.Clear();
Response.ContentType = “image/png”;
Response.BinaryWrite(new byte[] { 0×89, 0×50, 0×4E, 0×47, 0×0D, 0×0A, 0×1A, 0×0A, 0×00, 0×00, 0×00, 0×0D, 0×49, 0×48, 0×44, 0×52, 0×00, 0×00, 0×00, 0×01, 0×00, 0×00, 0×00, 0×01, 0×08, 0×06, 0×00, 0×00, 0×00, 0×1F, 0×15, 0xC4, 0×89, 0×00, 0×00, 0×00, 0×04, 0×67, 0×41, 0×4d, 0×41, 0×00, 0×00, 0xb1, 0×8e, 0×7c, 0xfb, 0×51, 0×93, 0×00, 0×00, 0×00, 0×20, 0×63, 0×48, 0×52, 0×4d, 0×00, 0×00, 0×7a, 0×25, 0×00, 0×00, 0×80, 0×83, 0×00, 0×00, 0xf9, 0xff, 0×00, 0×00, 0×80, 0xe8, 0×00, 0×00, 0×75, 0×30, 0×00, 0×00, 0xea, 0×60, 0×00, 0×00, 0×3a, 0×97, 0×00, 0×00, 0×17, 0×6f, 0×97, 0xa9, 0×99, 0xd4, 0×00, 0×00, 0×00, 0×10, 0×49, 0×44, 0×41, 0×54, 0×78, 0×9c, 0×62, 0xf8, 0xff, 0xff, 0×3f, 0×03, 0×40, 0×80, 0×01, 0×00, 0×08, 0xfc, 0×02, 0xfe, 0×33, 0xa3, 0xe2, 0×99, 0×00, 0×00, 0×00, 0×00, 0×49, 0×45, 0×4e, 0×44, 0xae, 0×42, 0×60, 0×82});
Response.End();