Neuerungen

Da ich mich inzwischen vom Social Network Facebook habe hinreissen lassen, habe ich ein paar kleine Neuerungen an der WordPress Software durchgeführt: unter jedem Artikel erscheint nun der Like/Share-Button um meine Artikel auf Facebook mitteilen zu können.
Dies gibt mir, neben den konventionellen Auswertungsmethoden, die Möglichkeit einzusehen welche Artikel besonders beliebt sind. Neue Artikel werden übrigends direkt an Facebook übermittelt und erscheinen bei verbundenen Personen unter „Neuigkeiten“.

Desweiteren habe ich testweise ein Widget eingeführt, das ermöglicht mich direkt via Skype zu kontaktieren (siehe rechts).

Nachtrag: alles Mist.

Till K. – Für

Heute mal etwas musikalisches: im Sommer 2007 habe ich mit einem Freund, Till K., ein wenig musiziert. Dabei sind diverse schräge Sachen herausgekommen, aber auch ein recht vernünftiges Instrumentalstück, das er damals, soweit ich mich erinnere, für seine Eltern schrieb.

Genre: Jazz
Year: 2007
Drums/Percussions: Till K.
Keys: Till K.
Bass: David K.
Flute: Fr. K.
Recording/Production: David K.

httpvh://www.youtube.com/watch?v=PhnVDAdJAnE

Unimog U4000

Ein Mercedes Unimog U4000 dürfte die wenigsten meiner Blogbesucher vom Hocker hauen, aber das folgende Bild lagert jetzt schon seit über einem halben Jahr in meiner „Blog-Queue“, zum Wegwerfen ist es zu schade.


(Foto: Juergen Schwarz/dapd)

Ich gebe zu, dass ein Unimog mit Schaufel nicht das allerseltenste Fahrzeug ist, das man im Polizeifuhrpark sehen dürfte. Auch den Kran hat man hier und da schoneinmal bei Kommunalarbeiten gesehen.
Es geht im Grunde vielmehr um das Gesamtkonzept: ein Unimog U4000 mit Doppelkabine, Klappschaufel (Schieben/Aufnehmen/Streuen), Kran und vorallem: Klimaanlage! machen dieses Monster zu einem absolut universalen Fahrzeug der Polizei Bochum.

Vinyl-Wunschliste

Ich scheine momentan in einer Art Raum-Zeit-Kontinuum gefangen zu sein. Meine Vinyl-Wunschliste wächst stetig um Klassiker des Rockgengres. Die da wären:

1. Deep Purple – In Rock (Link zu „Child In Time“: here)
2. Led Zeppelin – Physical Graffiti (Link zu „Kashmir“: here)
3. Rainbow – Ritchie Blackmore’s Rainbow (Links zu „Man on the Silver Mountain“: here)
4. Black Sabbath – Heaven and Hell (Link zu „Die young“: here)
5. Black Sabbath – Master of Reality (Link zu „Sweet Leaf“: here)
6. Asia – Asia (Link zu „Wildest Dreams“: here)

Edit: Oha, wie konnte ich nur:

7. Pink Floyd – The Wall (Link zu „Another Brick in the Wall“: here)

vergessen?

Dell PowerEdge T110 als Workstation

Wer bei Dell die Preisentwicklung des T110 Servers beobachtet hat, wird feststellen, dass sie sehr großen Schwankungen ausgesetzt ist. So kostete ein T110 in der absoluten Grundausstattung in den USA zeitweise unter $300. Wer allerdings produktiv mit dem System arbeiten will, sollte in Deutschland zwischen 1000€ und 1500€ je nach Ausstattung einplanen. Das größte Einsparpotential sind dabei die regelmäßigen Kontrahierungsaktionen von Dell: zwei Server zum Preis von einem; Versandkostenfrei bestellen; Liefergebührermäßigung oder Rabatte auf den Stückpreis.


(Beispiel, keine Werbung!)

Für den zweckfremden Einsatz als Workstation empfehle ich die größtmögliche CPU: Intel® Xeon® X3470, 4C, 2.93Ghz, 8MB Cache und den geringstmöglichen RAM und Festplattenspeicher bei Dell zu bestellen. Ratsam ist es auch einen PERC H200 RAID Controller mitzunehmen, da der integrierte RAID Controller rein softwarebasiert läuft und schockierenderweise nur unter Windows funktioniert. Zu der Lautstärke wäre noch zu sagen, dass der T110 flüsterleise ist. Er hat einen Gehäuselüfter, der auch gleichzeitig die CPU kühlt. Ich betreibe vier Stück T110 mit ganz unterschiedlichen Betriebssystemen: Windows Server 2008, VMWare ESXi und Windows 7 – bei keiner der Maschinen kam es bisher zu Überhitzung.

Günstigen ECC DDR3 RAM erhält man bei vielen Händlern, hier empfehle ich klar: Kingston, z.B. 8GB (2 Riegel) oder 16GB (4 Riegel). Wichtig ist, dass die Riegel in ihrer Größe und Symetrie absolut gleichwertig sind, da das System ansonsten nachweislich instabil läuft und Dell keine Haftung für etwaige Schäden übernimmt. Ebenso erhält man Festplatten (Empfehlung: Samsung) bei Drittanbietern mindestens um die Hälfte günstiger als bei Dell. In der aktuellen Konfiguration kommen vier Stück 250GB Samsung als RAID 10-Verbund zum Einsatz.

Bitte auch beim Zusammenstellen beachten, dass der T110 KEINE integrierte Soundkarte besitzt und die interne Grafikkarte mit 8MB Speicher nichteinmal ernsthaft grafiktauglich ist. Es ist auch nicht möglich, den Speicher als Shared Memory zu erweitern. Weiters auch nicht vergessen, dass das Mainboard des T110 nur einen X4, zwei X2 und einen X1 PCIe Steckplatz bietet. Gerade für Multi-Monitor-Lösungen kann das hinderlich sein, da X1 PCIe Grafikkarten ein vielfaches von X4 kosten.

Das nächste Problem ist die Installation von Windows 7 x64. Der einfachste Weg um die eintretenden Treiberprobleme zu umgehen, ist die Installation des Betriebssystems mit Hilfe der mitgelieferten „Systems Management Tools and Documentation“ DVD (hier Version 6.4.0). Dafür zunächst von der DVD booten und als Betriebssystem Windows Server 2008 R2 x64 auswählen. Das gebootete Linux wird anschließend eine Festplattenpartition mit Treiber anlegen und ohne Vorwarnung neustarten.
Beim Rebootvorgang die Windows 7 x64 DVD einlegen und das Setup wird keinerlei Probleme machen. Es ist möglich, dass die Installation ungewöhnlich lang dauert. Dieses Verhalten war nach der Installation im laufenden Betrieb allerdings nicht mehr zu verzeichnen.

Wenn dann einmal alles läuft, wird man viel Freude am T110 haben. Kein Schnickschnack und laut ist er auch nicht. Die perfekte Arbeitsmaschine.

§246 StGB

Alles wird teurer, größer, länger usw. Nur das StGB nicht:

Wer eine fremde bewegliche Sache, die er in Besitz oder Gewahrsam hat, sich rechtswidrig zueignet, wird wegen Unterschlagung mit Gefängniß bis zu drei Jahren und, wenn die Sache ihm anvertraut ist, mit Gefängniß bis zu fünf Jahren bestraft.
Sind mildernde Umstände vorhanden, so kann auf Geldstrafe bis zu dreihundert Thalern erkannt werden.
Der Versuch ist strafbar.

§. 246 Strafgesetzbuch für das Deutsche Reich (1871)

dagegen steht:

(1) Wer eine fremde bewegliche Sache sich oder einem Dritten rechtswidrig zueignet, wird mit Freiheitsstrafe bis zu drei Jahren oder mit Geldstrafe bestraft, wenn die Tat nicht in anderen Vorschriften mit schwererer Strafe bedroht ist.

§246 Abs.1 StGb (aktuell, also von 2011)

Daher folgende (nicht ganz ernst gemeinte) Überlegung:

die Lebenserwartung eines neugeborenen Jungen betrug 1871/81: 35,6 Jahre
die Lebenserwartung eines neugeborenen Mädchen betrug 1871/81: 38,5 Jahre

die o.g. Straftat büßte also zu der damaligen Zeit bei Männern ca. 8,4%, bei Frauen 7,8% Lebenszeit ein.

die Lebenserwartung eines neugeborenen Jungen betrug 2001/03: 75,6 Jahre
die Lebenserwartung eines neugeborenen Mädchen betrug 2001/03: 81,3 Jahre

die o.g. Straftat büßt in der Neuzeit also bei Männern nur noch ca. 3,97% bei Frauen 3,7% Lebenszeit ein.

Bezieht man den gebüßten Anteil der Lebenszeit beim Erlaß des Gesetzes auf die heutige Zeit, muss ein Mann also ca. 6,35 Jahre und eine Frau 6,34 Jahre büßen.
Da unser Grundgesetz allerdings sagt, dass Frauen und Männer gleichberechtigt sind (Art. 3, Satz 2), kann man sich auf 6,3 Jahre oder glatt 6 Jahre einigen. Dies entspricht einer Verdopplung der sonst üblichen Haftzeit.

Ich gebe zu, dass der Vergleich gewaltig hinkt. Zumal sich die Lebenserwartung auf Neugeborene bezieht. Da eine Verurteilung nach §246 StGB aber erst mit Eintritt der Volljährigkeit geschieht, muss für eine ernsthafte Berechnung andere Werte hinzugezogen werden. Vorallem deshalb da neben dem Anstieg der „generellen“ Lebenserwartung auch die Säuglingssterblichkeit drastisch gesunken ist.

Hierzu einen sehr interessanten Artikel:
http://www.flegel-g.de/wahrheit-luege.html

Dr. Martens ORIGINAL vs. Dr. Martens VINTAGE (updated: 30.11.2010)

Seit Dr. Martens wieder Schuhe in England herstellen, kann man sie auch ohne moralische Bedenken wieder kaufen. Anbei ein paar Impressionen aus dem Vergleich: alt gegen neu; ORIGINAL gegen VINTAGE. Beide Stiefelpaare wurden in England hergestellt: einmal vor dem Outsourcing nach China (≤2003) und einmal danach (≥2007).

(Bilder anklicken zum Vergrößern – pro Bild zwischen 300 und 700 kB!)

(ORIGINAL: Datum der Herstellung unbekannt, auf jeden Fall vor 2003.)

(VINTAGE: Herstellung wahrscheinlich zwischen 2009 und 2010)

(ORIGINAL: das klassische abflachen der Tips nach langem Gebrauch)

(VINTAGE: zwei Wochen getragen, also fast neu)

(ORIGINAL: Ein Schuhmacher erklärte mir einmal, dass Ösen nur dann ausfransen wenn das Werkzeug stumpf wird.)

(VINTAGE: Auch hier sind die Ösen ausgefranst.)

(ORIGINAL links; VINTAGE rechts: die Innennaht ist nahezu identisch. Lediglich die brüchige Umrandung fehlt bei der Neuauflage.)

(ORIGINAL links; VINTAGE rechts: das Profil hat sich verändert. Die Gummimischung im alten Schuh ist inzwischen so hart, dass das „Bouncing Soles“ keine Bedeutung mehr hat. Man beachte auch das „The Original“ auf der alten Schuhsohle.)

(VINTAGE: „MADE IN ENGLAND“. Der Schriftzug fehlt auf der chinesischen Variante.)

(VINTAGE: eine stabile Naht verhindert, dass sich der Schuh an dieser sehr stark belasteten Stelle auflöst.)

(VINTAGE: eine ebenfalls sehr stark beanspruchte Stelle. Alle Dr. Martens die ich bis jetzt besaß sind mir am Knick früher oder später aufgegangen. Da die Nahtlöcher aber ausreichend groß dimensioniert sind, kann man sie einfach von Hand nachnähen wenn der Faden dort reißt.)

Fazit: meiner Meinung nach, handelt es sich bei den VINTAGE Dr. Martens um eine gute Kopie, aber kein Original. Letztendlich bemängele ich nicht die Verarbeitung, sondern die Qualität des Leders. Es wirkt auf mich viel brüchigiger und vielleicht sogar „billiger“ als das, das vor Jahren verarbeitet wurde. Die Punzierung, also die kleinen Poren auf dem Leder lässt es einfach ungewohnt erscheinen. Das sieht man gut auf dem Ösenbild: während das alte Leder richtig speckig und zäh aussieht, was es auch ist und auch schon beim Kauf der ORIGINAL war, könnte man meinen, dass das neue Leder ausgetrocknet und brüchig sei. Prophylaktisch habe ich deshalb die VINTAGE sehr gut eingefettet, und das auch häufiger als ich es sonst bei Lederschuhen machen. Und siehe da: das Fersenleder ist trotzdem nach knapp zwei Monaten gebrochen (ein Bild davon folgt).
Das macht die VINTAGE nicht zu schlechten Schuhen, vielleicht habe ich auch nur ein Montagspaar erwischt, aber man sollte sich überlegen ob die „Good ol‘ Docs“ wirklich noch so „good ol‚“ sind.

Sollten Leser dieses Artikels andere oder ähnliche Erfahrungen mit den VINTAGEs gemacht haben, so bitte ich diese in die Kommentaren einzutragen.

Nachtrag vom 21.11.2010:

Das defekte Fersenleder.

Nachtrag vom 30.11.2010:
Die Schuhe fette ich mit ganz normalem handelsüblichen Lederfett, das allerdings Bienenwachs enthält. Gerade im Winter schont Wachs das Leder, welches sonst Salz und übermäßig Feuchtigkeit aufnimmt.
Zur Fersenlederreparatur verweise ich auf „Fresh Shoes“ Schuhmachermeister Manfred Meyer aus Stuttgart. Er hatte mir vor einem halben Jahr ein Fersenleder in meinen Coyote Cowboyboots erneuert. Ich hatte ihm die Boots geschickt, weil ich hier in Mönchengladbach keinen Schuster gefunden habe, der sich an Schlangenlederstiefeln versuchen wollte. (O-Ton: „dazu fehlt mir die Maschine!“ – gemeint war eine Sattlernähmaschine).
Natürlich gibt es inzwischen massig Online-Schuster, sogar bei eBay, wohl unterscheiden sie sich heftig im Preis. Der erste, den ich anschrieb, machte mir für die Reparatur einen Kostenvoranschlag von über 200€, weil er die Stiefel zerlegen wollte. Herr Meyer hat mir letztendlich die Stiefel inkl. neuer Absätze und Versand für 40€ repariert. 18€ davon für das Fersenfutter.

XBMC Erweiterung des Webinterfaces um Hotkeys

Um die wichtigsten Aktionen auf dem XBMC über das Webinterface auszuführen, muss die Datei am Ende des Artikels heruntergeladen und in das Verzeichnis: /E/XBMC/web entpackt werden. Gegebenenfalls die alte default.asp sichern!

Die modifizierte default.asp erweitert um folgende Tastaturkürzel („Hotkeys“):

  • ↑  = Item Up
  • ↓ = Item Down
  • ← = Item Left
  • → = Item Right
  • Space = Return to previous menu
  • Return = Play/select current item
  • + = Volume Up
  • – = Volume Down

(Siehe dazu Zeile 079 – 131; 136-137)

Leider wird bei der Lautstärkeregelung der initiale Lautstärkewert nicht übernommen. Das heißt, dass der Lautstärkepegel zuerst automatisch auf 50% abgesenkt bzw. angehoben wird. +/- verändert ihn anschließend um jeweils 5%.

DOWNLOAD: Modifizierte default.asp v1.0.0

Der Quelltext:


<%
    if (isset("Action")) {
        if (Action == "UnqueMusicplaylist") {
            var ItemCount;
            var z;
            ItemCount = xbmcCommand("catalog","items");
            for (z = 0;  z < ItemCount;  z = z + 1) {
                // dirty workaround, cause unque, + z won't work
                xbmcCommand("navigate", Action);
                xbmcCommand("catalog","unque");
            }
            Action = "musicplaylist";          
        }
        xbmcCommand("navigate", Action);
    }
    
    if (isset("command")) {
        // execute a few commands before listing the contents
        if (command == "select") {
            xbmcCommand("catalog", "select," + item);
        } else if (command == "unque") {
            xbmcCommand("catalog", "unque," + item);
        }
    }

    var navigatorstate;
    var BannerClass;
    var InfoClass;
    var BackgroundClass;
    var ItemFileClass;
    navigatorstate = xbmcCommand("navigatorstate");

    if (isset("DisplayConfiguration")) {
        BannerClass = "SiteBannerConfiguration";
        InfoClass = "SiteInfoConfiguration";
        BackgroundClass = "SiteBackgroundConfiguration";
    } else if (navigatorstate == "pictures") {
        BannerClass = "SiteBannerMyPictures";
        InfoClass = "SiteInfoMyPictures";
        BackgroundClass = "SiteBackgroundMyPictures";
        ItemFileClass = "ItemFileMyPictures";
    } else if (navigatorstate == "music") {
        BannerClass = "SiteBannerMyMusic";
        InfoClass = "SiteInfoMyMusic";
        BackgroundClass = "SiteBackgroundMyMusic";
        ItemFileClass = "ItemFileMyMusic";
    } else if (navigatorstate == "videos") {
        BannerClass = "SiteBannerMyVideos";
        InfoClass = "SiteInfoMyVideos";
        BackgroundClass = "SiteBackgroundMyVideos";
        ItemFileClass = "ItemFileMyVideos";
    } else if (navigatorstate == "musicplaylist") {
        BannerClass = "SiteBannerMusicPlaylist";
        InfoClass = "SiteInfoMusicPlaylist";
        BackgroundClass = "SiteBackgroundMusicPlaylist";
        ItemFileClass = "ItemFileMusicPlaylist";
    } else if (navigatorstate == "videoplaylist") {
        BannerClass = "SiteBannerVideoPlaylist";
        InfoClass = "SiteInfoVideoPlaylist";
        BackgroundClass = "SiteBackgroundVideoPlaylist";
        ItemFileClass = "ItemFileVideoPlaylist";
    } else {
        BannerClass = "SiteBannerNone";
        InfoClass = "SiteInfoLogo";
        BackgroundClass = "SiteBackgroundHome";
    }

%><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title> Xbox Media Center - Remote Control </title>
        <link href="styles/Project%20Mayhem/screen.css" rel="stylesheet" type="text/css" />
        <link rel="shortcut icon" href="/styles/Project%20Mayhem/images/ShortcutIcon.ico" type="image/x-icon" />        

        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

<script language="JavaScript">
var volume = 50;

// David Kirberich, 28.11.2010, Germany.
// Feel free to modify!

document.onkeydown = function ( event ) {
event = event || window.event;

// To test the keyCode parameter:
//alert(event.keyCode);

if (event.keyCode == 13) // ENTER
{
document.getElementById('control_iframe').src = '/xbmcCmds/xbmcHttp?command=sendKey(256)';
}
if (event.keyCode == 32) // SPACE
{
document.getElementById('control_iframe').src = '/xbmcCmds/xbmcHttp?command=sendKey(257)';
}
if (event.keyCode == 37) // LEFT
{
document.getElementById('control_iframe').src = '/xbmcCmds/xbmcHttp?command=sendKey(272)';
}
if (event.keyCode == 38) // TOP
{
document.getElementById('control_iframe').src = '/xbmcCmds/xbmcHttp?command=sendKey(270)';
}
if (event.keyCode == 39) // RIGHT
{
document.getElementById('control_iframe').src = '/xbmcCmds/xbmcHttp?command=sendKey(273)';
}
if (event.keyCode == 40) // DOWN
{
document.getElementById('control_iframe').src = '/xbmcCmds/xbmcHttp?command=sendKey(271)';
}
if (event.keyCode == 107) // +
{
	if (volume < 100)
	{
		volume += 5;
		document.getElementById('volume_iframe').src = '/xbmcCmds/xbmcHttp?command=setVolume(' + volume + ')';
	}
}
if (event.keyCode == 109) // -
{
	if (volume > 0) {
		volume -= 5;
		document.getElementById('volume_iframe').src = '/xbmcCmds/xbmcHttp?command=setVolume(' + volume + ')';
	}
}
}
</script>
    </head>
  
    <body>

<iframe id="control_iframe" style="height: 0px; width: 0px" src="about:blank"></iframe>
<iframe id="volume_iframe" style="height: 0px; width: 0px" src="about:blank"></iframe>

        <div id="SiteContainer" class="<% write(BackgroundClass); %>">

            <div id="SiteLeftContainer">
                <div id="SiteInfoContainer">
                    <div id="<% write(InfoClass); %>"></div>
                </div>
    
                <div id="SiteMenuContainer">
                    <ul>
                        <li class="MyPictures"><a href="default.asp?Action=pictures"><span>My Pictures</span></a></li>
                        <li class="MyMusic"><a href="default.asp?Action=music"><span>My Music</span></a></li>
                        <li class="MyVideos"><a href="default.asp?Action=videos"><span>My Videos</span></a></li>
                        <li class="MusicPlaylist"><a href="default.asp?Action=musicplaylist"><span>Music Playlist</span></a></li>
                        <li class="VideoPlaylist"><a href="default.asp?Action=videoplaylist"><span>Video Playlist</span></a></li>
                    </ul>
                </div>
      
                <div id="SiteControlContainer">
                    <ul>
                        <li class="Stop"><a href="/xbmcCmds/xbmcForm?command=stop" target="CommandFrame"><span>Stop</span></a></li>
                        <li class="Play"><a href="/xbmcCmds/xbmcForm?command=play" target="CommandFrame"><span>Play</span></a></li>
                        <li class="Pause"><a href="/xbmcCmds/xbmcForm?command=pause" target="CommandFrame"><span>Pause</span></a></li>
                        <li class="Previous"><a href="/xbmcCmds/xbmcForm?command=previous" target="CommandFrame"><span>Previous</span></a></li>
                        <li class="Next"><a href="/xbmcCmds/xbmcForm?command=next" target="CommandFrame"><span>Next</span></a></li>
                    </ul>
                </div>
            
                <div id="SiteSubMenuContainer">
                    <ul>
                        <li class="Subpanel"><a href=""><span>Subpanel</span></a>
                            <ul>
                                <li><a href="SubRemote"><span>Remote</span></a></li>
                                <li><a href="SubConfiguration"><span>Configuration</span></a></li>
                                <li><a href="/xbmcCmds/xbmcForm?command=exit" target="CommandFrame"><span>Dashboard</span></a></li>
                                <li><a href="/xbmcCmds/xbmcForm?command=reboot" target="CommandFrame"><span>Reboot</span></a></li>
                            </ul>
                        </li>
                        
                        <li class="Configuration"><a href="default.asp?DisplayConfiguration=true"><span>Configuration</span></a></li>
                        <li class="Dash"><a href="/xbmcCmds/xbmcForm?command=exit" target="CommandFrame"><span>Dash</span></a></li>
                        <li class="Reboot"><a href="/xbmcCmds/xbmcForm?command=restart" target="CommandFrame"><span>Reboot</span></a></li>
			<li class="Shutdown"><a href="/xbmcCmds/xbmcForm?command=shutdown" target="CommandFrame"><span>Shutdown</span></a></li>
                    </ul>
                </div>
    
            </div>
            
    
    
            <div id="SiteRightContainer">
            
                <div id="SiteBannerContainer">
                    <div id="<% write(BannerClass); %>"></div>
                </div>
                
                <div id="SiteContentContainer">
<%

  if (isset("DisplayConfiguration") ) {


    /*
     * xbmc configuration options
    
      xbmcCfgBookmarkSize(type)
      xbmcCfgGetBookmark(type, parameter, id)
      xbmcCfgAddBookmark(type, name, path [, position])
      xbmcCfgSaveBookmark(type, name, path, position)
      xbmcCfgRemoveBookmark(type, position)
      xbmcCfgSaveConfiguration(filename)
      xbmcCfgGetOption(name)
      xbmcCfgSetOption(name, value)
    
     */
    
    write("<a href='default.asp?DisplayConfiguration=true&page=bookmarks'>bookmarks</a> \n");
    write("<a href='default.asp?DisplayConfiguration=true&page=options'>xbmc options</a> \n");
    write("<a href='default.asp?DisplayConfiguration=true&page=load_save'>load / save</a> \n");

    write("<br />\n");
    write("<br />\n");
    
    
    /* if action isset we want to save / edit or remove something */
    if (isset("action"))
    {
      if (action == "savebookmark")
      {
        if (isset("name") == "1" && isset("path") == "1" && isset("type") == "1" && isset("position") == "1")
        {
          xbmcCfgSaveBookmark(type, name, path, position);
        }
        else
          write("Error");
      }
      if (action == "addbookmark")
      {
        if (isset("name") == "1" && isset("path") == "1" && isset("type") == "1")
        {
          xbmcCfgAddBookmark(type, name, path);
        }
        else
          write("Error");
      }
      if (action == "remove")
      {
        if (isset("page"))
        {
          // return to bookmark page and not to editbookmarks
          page = "bookmarks";
          xbmcCfgRemoveBookmark(type, position);
        }
      }
      if (action == "saveoptions")
      {
        xbmcCfgSetOption("home", home);
        xbmcCfgSetOption("CDDBIpAdres", CDDBIpAdres);
    
        var usef = "no";
        if (isset("useFDrive")) usef = "yes";
        xbmcCfgSetOption("useFDrive", usef);
    
        var useg = "no";
        if (isset("useGDrive")) useg = "yes";
        xbmcCfgSetOption("useGDrive", useg);
    
        xbmcCfgSetOption("dashboard", dashboard);
        xbmcCfgSetOption("dvdplayer", dvdplayer);
        xbmcCfgSetOption("subtitles", subtitles);
        xbmcCfgSetOption("startwindow", startwindow);
        xbmcCfgSetOption("pictureextensions", pictureextensions);
        xbmcCfgSetOption("musicextensions", musicextensions);
        xbmcCfgSetOption("videoextensions", videoextensions);
        xbmcCfgSetOption("thumbnails", thumbnails);
        xbmcCfgSetOption("shortcuts", shortcuts);
        xbmcCfgSetOption("albums", albums);
        xbmcCfgSetOption("recordings", recordings);
        xbmcCfgSetOption("screenshots", screenshots);
    
        var remcodes = "no";
        if (isset("displayremotecodes")) remcodes = "yes";
        xbmcCfgSetOption("displayremotecodes", remcodes);
      }
      if (action == "save")
      {
        xbmcCfgSaveConfiguration("XBoxMediaCenter.xml");
      }
    }
    
    if (isset("page"))
    {
      var i;
      var name;
      var value;
      var options;
    
      if (page == "bookmarks")
      {
        var musicbookmarks = xbmcCfgBookmarkSize("music");
        var picturebookmarks = xbmcCfgBookmarkSize("pictures");
        var videobookmarks = xbmcCfgBookmarkSize("video");
        var filebookmarks = xbmcCfgBookmarkSize("files");
        var programbookmarks = xbmcCfgBookmarkSize("myprograms");
        
    
        /* Add new Bookmark button */
        write("<form name='new_bookmark' method='post' action='default.asp?DisplayConfiguration=true&page=addbookmark'>\n");
        write("  <input type='submit' name='addnewbookmark' value='Add new bookmark'><br>\n");
        write("</form>\n");
    
        /* Display Music Bookmarks */
        write("<form name='music_bookmarks' method='post' action='default.asp?DisplayConfiguration=true&page=editbookmark&type=music'>\n");
        write("  Music Bookmarks:<br>\n");
        write("  <input type='submit' name='action' value='edit'>\n");
        write("  <input type='submit' name='action' value='remove'>\n");
        write("  <select name='position'>\n");
        i = 0;
        for (i=1; i<=musicbookmarks; i=i+1)
        {
          write("    <option value=" + i + ">" + xbmcCfgGetBookmark("music", "name", i) + "</option>\n");
        }
        write("  </select>\n");
        write("</form>\n");
    
        /* Display Picture Bookmarks */
        write("<form name='picture_bookmarks' method='post' action='default.asp?DisplayConfiguration=true&page=editbookmark&type=pictures'>\n");
        write("Picture Bookmarks:<br>\n");
        write("  <input type='submit' name='action' value='edit'>\n");
        write("  <input type='submit' name='action' value='remove'>\n");
        write("  <select name='position'>\n");
        i = 0;
        for (i=1; i<=picturebookmarks; i=i+1)
        {
          write("    <option value=" + i + ">" + xbmcCfgGetBookmark("pictures", "name", i) + "</option>\n");
        }
        write("  </select>\n");
        write("</form>\n");
    
        /* Display Video Bookmarks */
        write("<form name='video_bookmarks' method='post' action='default.asp?DisplayConfiguration=true&page=editbookmark&type=video'>\n");
        write("Video Bookmarks:<br>\n");
        write("  <input type='submit' name='action' value='edit'>\n");
        write("  <input type='submit' name='action' value='remove'>\n");
        write("  <select name='position'>\n");
        i = 0;
        for (i=1; i<=videobookmarks; i=i+1)
        {
          write("    <option value=" + i + ">" + xbmcCfgGetBookmark("video", "name", i) + "</option>\n");
        }
        write("  </select>\n");
        write("</form>\n");
    
        /* Display File Bookmarks */
        write("<form name='file_bookmarks' method='post' action='default.asp?DisplayConfiguration=true&page=editbookmark&type=files'>\n");
        write("File Bookmarks:<br>\n");
        write("  <input type='submit' name='action' value='edit'>\n");
        write("  <input type='submit' name='action' value='remove'>\n");
        write("  <select name='position'>\n");
        i = 0;
        for (i=1; i<=filebookmarks; i=i+1)
        {
          write("    <option value=" + i + ">" + xbmcCfgGetBookmark("files", "name", i) + "</option>\n");
        }
        write("  </select>\n");
        write("</form>\n");
    
        /* Display Program Bookmarks */
        write("<form name='program_bookmarks' method='post' action='default.asp?DisplayConfiguration=true&page=editbookmark&type=myprograms'>\n");
        write("Program Bookmarks:<br>\n");
        write("  <input type='submit' name='action' value='edit'>\n");
        write("  <input type='submit' name='action' value='remove'>\n");
        write("  <select name='position'>\n");
        i = 0;
        for (i=1; i<=programbookmarks; i=i+1)
        {
          write("    <option value=" + i + ">" + xbmcCfgGetBookmark("myprograms", "name", i) + "</option>\n");
        }
        write("  </select>\n");
        write("</form>\n");
      }
      else if (page == "options")
      {
        write("	<form action='default.asp?DisplayConfiguration=true' method='post' name='cfgform' id='cfgform'>" + \
              "		<input name='action' type='hidden' value='saveoptions'>" + \
              "		<input name='page' type='hidden' value='options'>" + \
              "		<table width='500'>");
        write("			<tr>" + \
              "				<td width='200'><label>Home</label></td>" + \
              "				<td><input name='home' type='text' value='"); write(xbmcCfgGetOption("home")); write("' size='25'><br></td>" + \
              "			</tr>");
        write("			<tr>" + \
              "				<td><label>CDDB IP Address</label></td><td>" + \
              "				<input name='CDDBIpAdres' type='text' value='"); write(xbmcCfgGetOption("CDDBIpAdres")); write("' size='25'><br></td>" + \
              "			</tr>");
    
        // Use F Drive
        write("			<tr>" + \
              "					<td><label>Use F Drive</label></td><td>" + \
              "           <input name='useFDrive' type='checkbox' value='true' ");
              if (xbmcCfgGetOption("useFDrive") == "yes")	write("checked>");
              else write(">");
        write("         <br></td>" + \
              "			</tr>");
    
        // Use G Drive
        write("			<tr>" + \
              "					<td><label>Use G Drive</label></td><td>" + \
              "           <input name='useGDrive' type='checkbox' value='true' ");
              if (xbmcCfgGetOption("useGDrive") == "yes")	write("checked>");
              else write(">");
        write("         <br></td>" + \
              "			</tr>");
        write("			<tr>" + \
              "				<td><label>Dashboard</label></td>" + \
              "				<td><input name='dashboard' type='text' value='"); write(xbmcCfgGetOption("dashboard")); write("' size='25'><br></td>" + \
              "			</tr>");
        write("			<tr>" + \
              "				<td><label>Dvdplayer</label></td>" + \
              "				<td><input name='dvdplayer' type='text' value='"); write(xbmcCfgGetOption("dvdplayer")); write("' size='25'><br></td>" + \
              "			</tr>");
        write("			<tr>" + \
              "				<td><label>Subtitles</label></td>" + \
              "				<td><input name='subtitles' type='text' value='"); write(xbmcCfgGetOption("subtitles")); write("' size='25'><br></td>" + \
              "			</tr>");
        write("			<tr>" + \
              "				<td><label>Startwindow</label></td>" + \
              "				<td><input name='startwindow' type='text' value='"); write(xbmcCfgGetOption("startwindow")); write("' size='25'><br></td>" + \
              "			</tr>");
        write("			<tr>" + \
              "				<td><label>Picture Extensions</label></td>" + \
              "				<td><input name='pictureextensions' type='text' value='"); write(xbmcCfgGetOption("pictureextensions")); write("' size='25'><br></td>" + \
              "			</tr>");
        write("			<tr>" + \
              "				<td><label>Music Extensions</label></td>" + \
              "				<td><input name='musicextensions' type='text' value='"); write(xbmcCfgGetOption("musicextensions")); write("' size='25'><br></td>" + \
              "			</tr>");
        write("			<tr>" + \
              "				<td><label>Video Extensions</label></td>" + \
              "				<td><input name='videoextensions' type='text' value='"); write(xbmcCfgGetOption("videoextensions")); write("' size='25'><br></td>" + \
              "			</tr>");
        write("			<tr>" + \
              "				<td><label>Thumbnails</label></td>" + \
              "				<td><input name='thumbnails' type='text' value='"); write(xbmcCfgGetOption("thumbnails")); write("' size='25'><br></td>" + \
              "			</tr>");
        write("			<tr>" + \
              "				<td><label>Shortcuts</label></td>" + \
              "				<td><input name='shortcuts' type='text' value='"); write(xbmcCfgGetOption("shortcuts")); write("' size='25'><br></td>" + \
              "			</tr>" );
        write("			<tr>" + \
              "				<td><label>Albums</label></td>" + \
              "				<td><input name='albums' type='text' value='"); write(xbmcCfgGetOption("albums")); write("' size='25'><br></td>" + \
              "			</tr>");
        write("			<tr>" + \
              "				<td><label>Recordings</label></td>" + \
              "				<td><input name='recordings' type='text' value='"); write(xbmcCfgGetOption("recordings")); write("' size='25'><br></td>" + \
              "			</tr>");
        write("			<tr>" + \
              "				<td><label>Screenshots</label></td>" + \
              "				<td><input name='screenshots' type='text' value='"); write(xbmcCfgGetOption("screenshots")); write("' size='25'><br></td>" + \
              "			</tr>");
    
        // Display remote codes
        write("			<tr>" + \
              "					<td><label>Display remote codes</label></td><td>" + \
              "           <input name='displayremotecodes' type='checkbox' value='true' ");
              if (xbmcCfgGetOption("displayremotecodes") == "yes")	write("checked>");
              else write(">");
        write("         <br></td>" + \
              "			</tr>");
    
        write("		</table><br>" + \
              "		<input type='submit' name='save' value='save'>" + \
              "	</form><br>");
      }
      else if (page == "editbookmark")
      {
        if (isset("type") == "1" && isset("position") == "1")
        {
          write("<form name='savebookmark' method='post' action='default.asp?DisplayConfiguration=true&page=bookmarks&action=savebookmark'>\n");
          write("<input name='position' type='hidden' value='" + position + "'>\n");
          write("<input name='type' type='hidden' value='" + type + "'>\n");
          write("  <table width='500' border='0'>\n");
          write("    <tr> \n");
          write("      <td><label>name</label></td>\n");
          write("      <td><input type='text' name='name' value='" + xbmcCfgGetBookmark(type, "name", position) + "'></td>\n");
          write("    </tr>\n");
          write("    <tr> \n");
          write("      <td><label>path</label></td>\n");
          write("      <td><input type='text' name='path' value='" + xbmcCfgGetBookmark(type, "path", position) + "'></td>\n");
          write("    </tr>\n");
          write("  </table><br>\n");
          write("  <input type='submit' name='save' value='save'>\n");
          write("</form>\n");
        }
      }
      else if (page == "addbookmark")
      {
        var data = "<form name='addbookmark' method='post' action='default.asp?DisplayConfiguration=true&page=bookmarks&action=addbookmark'>\n";
        data = data + "  <table width='500' border='0'>\n";
        data = data + "    <tr> \n";
        data = data + "      <td><label>Type</label></td>\n";
        data = data + "      <td>";
        data = data + "        <select name='type'>\n";
        data = data + "          <option value=files>File</option>\n";
        data = data + "          <option value=music>Music</option>\n";
        data = data + "          <option value=myprograms>Program</option>\n";
        data = data + "          <option value=pictures>Picture</option>\n";
        data = data + "          <option value=video>Video</option>\n";
        data = data + "        </select>\n";
        data = data + "      </td>\n";
        data = data + "    </tr>\n";
        data = data + "    <tr> \n";
        data = data + "      <td><label>Name</label></td>\n";
        data = data + "      <td><input type='text' name='name' value=''></td>\n";
        data = data + "    </tr>\n";
        data = data + "    <tr> \n";
        data = data + "      <td><label>Path</label></td>\n";
        data = data + "      <td><input type='text' name='path' value=''></td>\n";
        data = data + "    </tr>\n";
        data = data + "  </table><br>\n";
        data = data + "  <input type='submit' name='save' value='save'>\n";
        data = data + "</form>\n";
    
        write(data);
      }
      if (page == "load_save")
      {
        write("<br><br><a href='default.asp?DisplayConfiguration=true&action=save'>Save</a>\n");
      }
    }


  } else {
 
  
    var z;
    var n;
    var i;
    var data;
  
  
    n = xbmcCommand("catalog","items"); // number of items to list
    file = xbmcCommand("catalog","first");
    
    if ( n > 0) {
        write("                    <ul id=\"ItemList\">\n");
    }
    
    for (z=0; z<n; z=z+1)
    {
      var type = xbmcCommand("catalog","type," + z);
  
  
      data = "                        <li>";
  
      if (type != "directory") {
        // we have a file to play, send command to server when clicked and do not refresh the current page
        data = data + "<div class=\"" + ItemFileClass + "\"></div>";
      } else { 
        data = data + "<div class=\"ItemFolder\"></div>"; 
      }
  
  
      if (file != ".." && navigatorstate != "musicplaylist" && navigatorstate != "videoplaylist" && navigatorstate != "pictures") {
        data = data + "<div class=\"AddQueue\"><a href=\"/xbmcCmds/xbmcForm?command=catalog&parameter=que," + z + "\" target=\"CommandFrame\" title=\"add to queue\"><span>Q</span></a></div>";
      } else if (navigatorstate == "musicplaylist" || navigatorstate == "videoplaylist")	{
        data = data + "<div class=\"RemoveQueue\"><a href=\"default.asp?command=unque&item=" + z + "\" title=\"remove from queue\"><span>R</span></a></div>";
      }
  
  
      if (type != "directory") {
        // we have a file to play, send command to server when clicked and do not refresh the current page
        data = data + "<div class=\"FileName\"><a href=\"/xbmcCmds/xbmcForm?command=catalog&parameter=select," + z + "\" target=\"CommandFrame\">";
      } else { 
        data = data + "<div class=\"FileName\"><a href=\"default.asp?command=select&item=" + z + "\">"; 
      }
      
      data = data + file + "</a></div>";
      
      data = data + "</li>\n";
      write(data);
      
        
      file = xbmcCommand("catalog","next");
    }

    if ( n > 0) {
        write("                    </ul>\n");
    }
    
    if (navigatorstate == "musicplaylist") {
        write ("<a href=\"default.asp?Action=UnqueMusicplaylist\" id=\"UnqueMusciplaylist\"><span>Clear Playlist</span></a>\n");
    }


}
%>
                </div>
    
            </div>
            
        </div>
        
        <div id="SiteCommandContainer">
            <iframe src="about:blank" width="1" height="1" name="CommandFrame"></iframe>
        </div>
  
    </body>
</html>

Vorsicht: AuctionSniper und Ebay Deutschland

Vorsicht bei Käufen auf Ebay Deutschland mit dem AuctionSniper: Ebay registriert dass automatisiert geboten wird und erschwert den Zugang zum Ebay Käuferschutz.
Das wirkt sich so aus, dass beim Öffnen eines Cases („Problem klären“) die amerikanische Anmeldemaske erscheint. Intuitiv loggt man sich ein und eröffnet seinen Fall, welcher nach einigen Tagen auch bearbeitet wird.

Allerdings wird man auf eine finale Entscheidung des Supports vergeblich warten. Ein Anruf beim US Support verriet mir, dass man sich dort nicht für auf ebay.de gekaufte Artikel zuständig fühlt.

Ebay Germany or ebay.de has different policies!

(US Support)

Also rief ich beim deutschen Support an: dort sagte man mir, dass Cases die auf ebay.com eröffnet wurden ausschließlich vom US Support behandelt und geschlossen werden können. Man riet mir mich erneut mit dem US Support auseinanderzusetzen um den Fall zu klären.
Also rief ich wieder in den Staaten an und schilderte mein Problem erneut. Das selbe Ergebnis: different policies, man könne mir nicht helfen.
Und wieder rief ich bei Ebay Deutschland an: man kenne den Sachverhalt mit automatisiertem Bieten nicht, selbst das supportseitige Öffnen meines Cases verläuft erfolglos, da man auf die Ebay US Anmeldemaske weitergeleitet wird. Der Fall würde aber an die zuständige Abteilung weitergeleitet werden, in zwei bis drei Tagen erhalte ich dann eine Antwort und die finale Entscheidung.

Ebay sind machtlos was den Einsatz von Bietbots und Bietplattformen angeht. Um den Benutzern allerdings ein wenig die Suppe zu versalzen, schmeißt man ihnen einfach ein paar Steine in den Weg wenn es darum geht die „Buyer Protection“ (hier: Käuferschutz) in Anspruch zu nehmen. Und was selbst der DE Customer Support nicht wusste: wurde bereits ein Case auf Ebay zu einem gekauften Artikel angelegt, ist es nicht mehr möglich das selbe auf Paypal zu tun.