xscDevBlog – LastSharp & Co.

Der xscheme-DevelopmentBlog

Archive for the ‘Web’ Category

nginx = Wow!

without comments

Nachdem ich ja diese Woche mit meinem Blog den Hoster gewechselt habe, stand ich vor einem kleinen Problem: der vServer, den ich mir angemietet habe, schien zeitweise extrem instabil, hing manchmal fest und tat gar nichts mehr.

Eine kleine Analyse brachte das Problem zutage: der installierte Apache 2 Server fraß die Resourcen auf, anscheinend beim Versuch, sich mit der MySQL-Datenbank (die ich zwecks einfacher Weiterbetreibung dieses Blogs behalten habe) zu verbinden. Und egal, wo ich an der Konfiguration herumgeschraubt habe, es hat nichts gebracht.

Also bin ich einen anderen Weg gegangen: ein neuer Webserver musste her. Und hierbei fiel mein Auge auf nginx (Engine X). (Homepage) Eine kurze Installation und eine unglaublich einfach zu erledigende Konfiguration später, lief er dann auch schon. Und siehe da: keine Abstürze, keine langen Wartezeiten. Einfach Wow!

Jetzt muss ich nur noch cakePHP zum Laufen bekommen, dann wäre die Welt perfekt… Läuft.

Read the rest of this entry »

Written by xsc

Februar 3rd, 2010 at 5:11 pm

Posted in Web

Inside Last.FM: Silent Authentication für API 2.0

with one comment

Update (17.07.2009): Das hier ist (abgesehen von den “Skills”, die ich dabei gebraucht hab) wohl ziemlich überflüssig, wenn man die API-Methode auth.getMobileSession mal genauer betrachtet. Wieder was gelernt: RTFM!

Da im Moment anscheinend wieder Änderungen am Last.FM-Webservice gemacht werden, die dazu geführt haben, dass LastSharp höchstens noch mithilfe der “Modifizierten Verbindung” (unter “Erweiterte Einstellungen” >> “Verschiedenes”) funktioniert, habe ich mir mal das Radio-API angesehen, das ja anscheinend die Zukunft des Radiostreamings bei Last.FM ist. Was mich daran allerdings stört, ist die umständliche Anmeldeprozedur: Token holen, Browser öffnen, auf Authentifizierung warten, Session holen.

Der Umweg über den Browser ist einfach unschön, weshalb ich nach einer Lösung gesucht habe, die den Login sowie die anschließende Bestätigung eines Users im Hintergrund simuliert, sodass er das eigentliche Programm nicht verlassen muss.

Read the rest of this entry »

Written by

Juli 8th, 2009 at 11:47 pm

Posted in C#, General, Lapicon, Web

Tagged with

SerienjunkiesGML

with 3 comments

First of all: wie es mit der Legalität der Seite serienjunkies.org aussieht, weiß ich nicht. Ich selbst kannte sie bis vorgestern nicht und alles, was nun folgt, ist für mich nur eine programmiertechnische Fingerübung – wenn auch womöglich mit einem gewissen Nutzen.

Das Problem, auf das ich hingewiesen wurde, als ich mich nach online verfügbaren Episoden von Flight of the Conchords erkundigt und die o.g. Seite als Quelle empfohlen bekommen habe, war, dass man, um an Downloadlinks zu kommen (ohnehin nicht das, was ich wollte), für jede Episode ein Captcha lösen und anschließend für jede einzelne Teil-Datei eine Serie von Klick-Copy-Paste ausführen musste. Und da kam mir die Idee, dass ganze in ein Programm zu packen: SerienjunkiesGML (Get My Links!)

sgml1Man gibt einfach die URL einer Serienjunkies-Seite in das dafür vorgesehene Textfeld ein (alternativ kann man auch direkt nach irgendetwas suchen), lässt das Programm die verfügbaren Episoden laden und startet mit einem Doppelklick auf die jeweilige Episode das Holen der Links.

Das Lösen des Captchas konnte ich nicht automatisieren (da sind schon viel größere Kaliber als ich dran gescheitert), aber die darauf folgenden Operationen, die zu den eigentlichen Links führen. D.h.: Hoster auswählen, Captcha lösen, warten, fertig!

Man kann auch gleich von vornherein mehrere Episoden auswählen und mit einem Klick auf “Go!” nacheinander abarbeiten.

Ein Hinweis noch: das Holen der Links funktioniert in einer Vielzahl der Fälle reibungslos, nur manchmal scheitert es. Dann muss man die entsprechenden URLs (die mit “download.serienjunkies.org”) beginnen, eben von Hand in den Browser eingeben.

Herausforderungen an mich waren: Untersuchung einer HTML-Seite, Simulieren einer POST-Request, Entwicklung einer intuitiven Benutzeroberfläche.

Download: http://dev.xscheme.de/wp-content/uploads/2009/07/serienjunkiesgml.exe

Written by

Juli 7th, 2009 at 6:10 pm

Posted in Software, Web

Und dann machte es “Bing”!

with one comment

Ich muss zugeben, ein großer Teil meiner Festplatte wird von Microsoft-Programmen eingenommen: Ich verwende Word zum Schreiben von Briefen, Excel zum tabellarischen Aufbereiten von Daten, Visual C# Express Edition zum Programmieren,  diverse Hilfsprogramme und nicht zu vergessen dieses winzige Konstrukt namens Windows Vista….

Aber alles, was mit Internet zu tun hat, kommt von anderen Herstellern: Firefox statt IE, Thunderbird statt Outlook,  ICQ statt dem Windows Live Messenger – und nicht zuletzt Google statt… Ja, statt was eigentlich?

Read the rest of this entry »

Written by

Juni 8th, 2009 at 5:37 pm

Posted in Web

Zwischenstand: Universal Version Description (UVD) / Entwickler gesucht

without comments

Ich möchte an dieser Stelle einmal auf den aktuellen Stand des hier begonnenen Projekts verweisen, der sich wie folgt darstellt: Ich habe das UVD-Format weiter ausgearbeitet und angepasst und damit begonnen, eine C#-Bibliothek zu schreiben, die dessen Verarbeitung dient.

Als Beispiel sei die UVD von LastSharp gegeben, die wir im folgenden Codebeispiel mithilfe einer XSL-Transformation (DescriptionPage.xsl) in eine HTML-Datei verwandeln. Das soll illustrieren, wie einfach die Verwendung von UVD sein kann, wenn entsprechende Bibliotheken vorhanden sind:

UVD lastsharp = UVD.Create("http://dev.xscheme.de/uvd/lastsharp.uvd.xml");
lastsharp.Save("c:/lastsharp.htm", "http://dev.xscheme.de/uvd/DescriptionPage.xsl");

Nun haben wir eine Datei “lastsharp.htm”, die hier eingesehen werden kann und Beschreibungen in verschiedenen Sprachen und Längen bietet, Downloadlinks, etc… Außerdem sind (wie man bei der Ansicht des Quelltextes feststellen kann) auch die META-Tags zu Schlüsselwörtern und Beschreibungen bereits gesetzt, sodass die Seite auch für Suchmaschinen verwendbar ist.

Read the rest of this entry »

Written by

Mai 13th, 2009 at 4:17 pm

Inside Last.FM: Visual Radio

without comments

Seit heute präsentiert sich das Radio von Last.FM in neuem Gewand – und ich muss sagen, ich bin beeindruckt! Visual Radio heißt das klingende Schlagwort (siehe Last.HQ) und woher der Name kommt, ist nicht schwer zu erraten, sind es doch bei der ersten genaueren Untersuchung vor allem Oberflächlichkeiten, die sich einem entgegenrecken:

nulastfm1

Ein größeres Eingabefeld, die zuletzt gehörten Radiostationen – war das alles?

Read the rest of this entry »

Written by

Mai 6th, 2009 at 11:23 pm

Posted in Web

Vom Gedankenspiel zum Versuch: Universal Version Description (UVD)

with 3 comments

Das Problem der Updates

Ich bin in meinem vorletzten Artikel zum Thema Update-Check bereits darauf eingegangen: Versionsänderungen sind nicht immer leicht zu verfolgen und die Überprüfung auf Updates erfordert meist einen nicht zu unterschätzenden Programmier- und Verwaltungsaufwand. Weiterhin bedeutet es für den Entwickler selbst auch, dass er auf mehreren Hochzeiten tanzen muss: er stellt meist eine eigene Downloadseite bereit, die Links zu verschiedenen Versionen enthält, er aktualisiert gleichzeitig die Dateien, die für die Versionsüberprüfung zuständig sind, er kümmert sich um die Daten, die in irgendwelchen Softwareverzeichnissen (heise, chip.de, etc…) stehen, usw., usw… Als verantwortungsvoller Entwickler mit der Ambition, sein Programm unter die Leute zu bringen, hat man richtiggehend die Pflicht, diese Schritte durchzuführen – und das regelmäßig und mit äußerster Genauigkeit.

Hier nun also das (absolut logische und vernünftige) Konzept, das die meisten Beispiele, die man im Web zu dem Thema “Update-Check” findet, implementieren:

Allgemeines Konzept zum Update-Check

Augenscheinliche Probleme hierbei:

  • Die Verwaltung der Programmdaten läuft (beim Otto-Normal-Programmierer) meist von Hand ab, d.h. man bearbeitet die Update-Datei (die nicht, wie im Beispiel, im XML-Format vorliegen kann), lädt sie von Hand auf den eigenen Webserver und ist aus Kompatibilitätsgründen meist an ein (demnach schwer erweiterbares) Format und an einen bestimmten Dateinamen gebunden.
  • Je nachdem, wie detailliert die Update-Informationen sind (nur Versionsnummer vs. Versionsnummer, Änderungsdatum, Changelog, …), kann das Bearbeiten der Versionsdatei eine Heidenarbeit bedeuten.
  • Der Entwickler muss das Programm erst einmal dazu bringen, einen funktionierenden Versions-Check durchzuführen.
  • Und was passiert bei Programmen, die mehrsprachig funktionieren und beworben werden?

Die Idee im erwähnten Artikel war es also, den “Update Notification Server” nicht mehr als Eigentum des Entwicklers zu sehen, sondern als über ein API zugängliche Plattform im Internet, die Verwaltungsfunktionen komfortabel bereitstellt. Gleichzeitig wären verschiedene Bibliotheken für das API nötig, um dem Programmierer die Implementierung der Versionsprüfung fast gänzlich abzunehmen.

Was folgte, war ein Einspruch.

Read the rest of this entry »

Gedankenspiel: Update Notification Server

with 9 comments

Wenn man als Programmierer dafür sorgen will, dass jeder User auch stets die aktuellste Version des eigenen Programms verwendet, kommt man nicht umhin, einen Mechanismus einzubauen, der nach neuen Updates sucht. Im Normalfall entscheidet man sich für jenen:

- Stelle eine Verbindung zu einer Internetseite her, welche die Nummer der aktuellsten Version enthält.
- Vergleiche mit der eigenen Version.
- Zeige eine Benachrichtigung, falls die Server-Version neuer ist.

So macht das LastSharp mit der URL http://dev.xscheme.de/vls.htm. Nachteile: das Bearbeiten der Informationen, das von Hand (Textdatei erstellen, schreiben, FTP-Upload) geschehen muss, sowie die Notwendigkeit, entsprechenden Webspace zu besitzen.

Jetzt kam mir also eine (wirklich simple) Idee, wie man das vereinfachen und somit vielen Programmierern helfen könnte.

Read the rest of this entry »

Written by

April 28th, 2009 at 5:19 pm

Posted in Theorie, Web

Der große, rote Knopf – NICHT DRÜCKEN!

without comments

Der grundlegendste Beweis für die menschliche Unvollkommenheit ist doch letztendlich, dass man, wenn irgendwo groß, dick, deutlich lesbar Auf keinen Fall machen!!! draufsteht, sofort in einen inneren Monolog/Dialog verfällt, der in etwa so abläuft:

Soll ich?
Nein. Das steht da nicht ohne Grund.
Aber…
Kein Aber.
Was wohl passiert?
Schlimme Sachen. Schonmal von Tschernobyl gehört?
Ach, ein klein bisschen…
Denk nicht mal dran!!
Was soll’s.
AUTSCH!!!
Read the rest of this entry »

Written by xsc

April 27th, 2009 at 9:52 pm

Posted in Fundstücke, Web

AdSense: Flash Banner URL

with 4 comments

Gerade eben bin ich auf ein kleines Problem gestoßen. Der AdSense-Banner auf der Lapicon-Seite war grell, bunt und vor allem eine Abofalle – also wollte ich die URL, auf die er verlinkt, mithilfe des Filters für Konkurrenzanzeigen sperren. Die Schwierigkeit dabei war allerdings, dass es ein Flash-Banner war – und der wollte einfach partout seine URL nicht preisgeben.

Also habe ich Google bemüht, naheliegend bei so einer Frage, und hier einen extrem umständlichen Weg gefunden, der einfach nur darauf aufbaut, die Internetverbindung zu trennen, auf die Anzeige zu klicken und der Fehlerseite die URL zu entnehmen. Nicht das Wahre also.

Was nun folgt, ist der Weg, den ich nach ein wenig Probieren gefunden habe, um die URL eines Flash-Banners zu ermitteln:

Read the rest of this entry »

Written by xsc

April 27th, 2009 at 12:24 am

Posted in Web