Fileupload für Bilder mit jQuery – dank Ajax mit Vorschaufunktion

Geschrieben von everflux am November 28th, 2008

Gerade wenn es um sogenannten user generated content geht, ist es immer schön, wenn man eine Vorschaufunktion anbieten kann. Ein Knopf „Vorschau“ ist ziemlich 1990 – es lebe das Web 2.0 mit Ajax, jQuery und vielen Hacks.

Ich hatte bereits darüber gebloggt wie man mittels jQuery und etwas Tricksen einen „Ajax Fileupload“ realisert. Noch schöner ist es natürlich, wenn der User sofort Feedback bekommt, wie sein ausgewähltes Bild wohl aussehen würde. Dazu lädt man das Bild schon direkt nachdem der User eine Datei ausgewählt hat, und zeigt diese an. An Browser-Caches muss man vielleicht noch denken, aber auch hier kann JavaScript bzw. jQuery helfen.

Das Vorgehen:

  1. Man hängt einen Listener an die Change Methode des Input Felds
  2. Wie in meinem letzten Beitrag beschrieben wird der Upload über ein Iframe realisiert
  3. Nun biegt man noch die Bild URL um und zeigt somit das Resultat an

Hier der Quellcode: (das Formular heißt „logoUploadForm“, das input Feld für das Image File „logo“.
Ajax Fileupload handling – und Bild URL umbiegen nach dem Upload.

//handle file upload with hidden iframe
jQuery("#logoUploadForm").submit( function(data)
{
var submittingForm = jQuery( this );
var frameName = ("upload"+(new Date()).getTime());
var uploadFrame = jQuery("<iframe name=\""+frameName+"\" />");
uploadFrame.css("display", "none");
uploadFrame.load(function(data){
//submit is complete here
setTimeout(function(){
//update image
var imageDiv = jQuery("#print_logoImage");
var logoUrl = imageDiv.attr("src").split("?")[0];
imageDiv.attr("src", logoUrl+"?"+ (new Date()).getTime());
//remove hidden upload frame
uploadFrame.remove();},1000);
});
jQuery("body:first").append(uploadFrame);
//setup complete
submittingForm.attr("target", frameName);
});

Hier noch der Code zum „sofort upload“:

jQuery("input[name=logo]").change(function (){
jQuery("#logoUploadForm").submit();
});

Das wars – ausprobieren!

Google Support – getestet und für gut befunden

Geschrieben von everflux am November 27th, 2008

Ich hatte die Gelegenheit gleich zweimal den Google Support zu testen. Und ich kann nur sagen: Exzellent! Hört man doch immer wieder in einigen Foren und Diskussiongruppen dass es Probleme mit dem Support gibt, so kann ich lediglich berichten:

  1. Keine reinen Textbausteine, wirklich passend zum Inhalt eine Antwort erhalten
  2. Sehr kurze Reaktionszeiten
  3. Sehr bemühte Mitarbeiter, die die jeweillige Sachlage nachvollzogen haben
  4. Schnelle, Fallabschließende Klärung

Einzig eins mindert die durchweg gute Erfahrung: Für das Problem mit dem Google Admanager konnte ich nirgends eine Kontakt Adresse finden. Zwar gibt es FAQs und Google Groups, doch da es sich in meinen Augen um einen Bug handelt (oder zumindest ein Problem mit der Useability) wollte ich Google dies melden. (Ich freu mich ja auch stets, wenn mich jemand darauf hinweist, wenn etwas nicht korrekt funktioniert oder Verbesserungspotential besitzt, dass ich entwickel.)

Da half dann einfach „raten“: adsense-suppport@google, adwords-support@google – wie könnte dann der admanager support at google erreichbar sein… und es tat. So schnell kann man Kunden glücklich machen, danke Google!

Vergleicht man dies mit dem Support anderer Unternehmen – wie z.B. dem Cokefridge Support – kann ich Google in der Tat nur gratulieren. So bindet man Kunden langfristig und stellt sie zufrieden!

Asterisk und Skype: Skype Channel für Asterisk angekündigt

Geschrieben von everflux am November 21st, 2008

Für die Software-Telefonanlage Asterisk wurde nun ein Skype Channel angekündigt. Channel sind bei Asterisk sozusagen die verschiedenen Anbindungswege von „Telefonleitungen“ an die Asterisk Software. Dabei gibt es bisher z.B. SIP und IAX als Anbindungen an Voice-Over-IP (VoIP) Protokolle, oder CAPI um mittels ISDN Karten Asterisk an das digitale Telefonnetz zu koppeln.

Die Firma hinter Asterisk, Digium, hat nun in Kooperation mit Skype eine Anbindung für das proprietäre Skype Protokoll angekündigt, wie hier zu lesen ist. Der „Treiber“ wird dabei jedoch nicht viel viele andere Asterisk Channel als OpenSource, sondern lediglich als proprietäres binär Modul angeboten. Der Hintergrund dabei ist, dass für Skype spezielle Codecs und Verschlüsselungen zum Einsatz kommen, die Skype nicht offenlegen möchte – die Lizensierung erfolgt dabei pro Kanal, das Preismodell für das Skype Asterisk Channel Modul steht jedoch noch nicht fest, bisher existiert lediglich ein Beta Programm zur Teilnahme an der Testphase.

Nachladen bei Spammern?

Geschrieben von everflux am November 20th, 2008

Nicht nur ich scheine derzeit neue Formen von unerwünschtem Verhalten auf verschiedenen Seiten zu beobachten, auch Johann Burkard schreib in seinem Blog über merkwürdige Aktivitäten in seinem Forum. Er hat dabei das „Glück“ lediglich mit einigen 50 Requests zu kämpfen, in meinem Fall handelte es sich um eine halbe Million. Das Ärgerliche daran ist, dass bis zu 10 Requests pro IP gleichzeitig abgeschickt wurden – das ist nicht weit von einer DoS-Attacke entfernt. Im Traffik-Wochenverlauf des betroffenen Hosts kann man gut erkennen dass es sich keinesfalls um regulären Traffik handelte. Da der UA und die IP ständig wechselte, ist es auch schwer hier entsprechende Gegenmaßnahmen zu treffen.

Was das ganze soll ist mir dabei recht unklar – die abgefragten URLs waren offensichtlich generiert, und nicht durch crawling erhalten. Entweder eine „made for Adsene“ Pseudo Suchmaschine, oder jemand ist auf der Suche nach neuen E-Mail Adressen für Viagra-Spam o.ä. – das Weihnachtsgeschäft steht schließlich an.

Vielleicht wurde durch das Abschalten eines großen Spam-Hosters ja auch der Datenbestand der Bestandskunden vernichtet, und nun muss nachgeladen werden. Am Ende ist die Wirtschaftskrise womöglich noch durch Spammer, die ihre Ersparnisse verflüssigen müssen verursacht – denkbar ist ja vieles.

Netbeans 6.5 released

Geschrieben von everflux am November 20th, 2008

Die integrierte Entwicklungsumgebung Netbeans ist in Version 6.5 erschienen, einen kompletten Überblick über die Netbeans Features findet sich hier. Neben IntelliJ IDEA und Eclipse hat sich Netbeans zu einem sehr attraktiven, offenen und schnellen Produkt entwickelt, das nicht nur Java Entwicklern zu empfehlen ist.

Gerade die Unterstützung verschiedener Programmiersprachen, von JavaScript über PHP zu Python, Ruby und natürlich Java ist teilweise besser in Netbeans als in Eclipse gelöst. Zusätzliche Features lassen sich als Plugins nachinstallieren, und auch mit „der“ (kommerziellen) IDE IntelliJ muss Netbeans den Vergleich keineswegs scheuen. In meinen Augen für Java Desktop Entwickler ist weiterhin der GUI Builder Matisse und als freies UML Tool zum Designen und Reverseengineering das UML Tool von Netbeans wirklich herausragend.

209.85.238.11 – Google Inkognito?

Geschrieben von everflux am November 17th, 2008

Eine IP hats in den letzten Tagen auf sich: 209.85.238.11 – kein reverse DNS Eintrag, deswegen kann er in den Statistiken auch nicht mit irgendwas assoziiert oder zusammengefaßt werden.

Doch wer mag dahinter stecken? Ein Crawler? Ein Blick in die Zugriffslogs gibt natürlich etwas Aufschluß:

209.85.238.11 – – [17/Nov/2008:12:45:49 +0100] „GET /feed/ HTTP/1.1“ 200 4856 „-“ „Feedfetcher-Google; (+http://www.google.com/feedfetcher.html;

Auch eine Google Suche nach der entsprechenden IP erweckt den Anschein, dass darüber Google sucht („your ip: 209.85.238.11“ in den Suchergebnissen ist recht eindeutig). Letzte Sicherheit schafft dann eine Abfrage wem das zugehörige Subnetz zugeteilt ist:

NetRange:   209.85.128.0 – 209.85.255.255
CIDR:       209.85.128.0/17
NetName:    GOOGLE

Schade, dass Google hier nicht entsprechend der eigenen Hinweise handelt, die zum Verifizieren des Google Bots dienen. Und allem Anschein nach, ist es zum einen nicht nur der Feedfetcher – zum anderen, warum sollte das einen Unterschied machen?

Ach ich glaub ich mail da mal hin.

Ajax File upload mit jQuery – ohne DWR

Geschrieben von everflux am November 16th, 2008

Ajax ist eine tolle Erfindung – bis auf ein paar „Kleinigkeiten“. Z.B. ist nicht vorgesehen einen Dateiupload mittels Ajax zu realisieren. Da muss schon ein echtes Formular her.

Doch wenn dennoch eine Datei im Hintergrund hochgeladen werden soll – also ein „echter“ Ajax File upload realisiert werden soll – greift man in die kreative Trickkiste. Die üblichen Verdächtigen für solche Aufgaben sind DWR, jQuery, Dojo. DWR bringt in der Inkarnation 3.0 dann auch Support für Ajax Fileupload, inclusive einem Mapper. Also zurück zu den Basics – was tun, wenn ein XmlHttpRequest nicht da ist? Richtig! Unsichtbares iframe nehmen. Weiterlesen »

Openfire 3.6.1 fixt Sicherheitslücke

Geschrieben von everflux am November 15th, 2008

Der heute veröffentliche OpenFire 3.6.1 schließt eine gravierende Sicherheitslücke, über die sogar administrativer Zugriff unberechtigter möglich war. Eine Übersicht der anderen Änderungen findet sich im Openfire changelog.

Openfire ist ein Java basierter XMPP (Jabber) Server, der trotz des umfangreichen Featureumfangs als OpenSource frei verfügbar ist, und von Ignite Realtime entwickelt wird. Aufgewertet wird OpenFire auch über die Möglichkeit durch Plugins zusätzliche Features zu ergänzen.

java.lang.OutOfMemoryError: GC overhead limit exceeded

Geschrieben von everflux am November 14th, 2008

Speicher ist immer zu knapp – das ist nichts neues. Aus Zeiten als 64MB noch recht viel waren, stammt der Default Wert für eine Java VM: 64MB für den Heap, da muss die Applikation reinpassen.

Normalerweise stellt man (mittels -Xmx) eine entsprechend größere Heap Größe für die Java VM ein, insbesondere für Applikationsserver. Einen Sonderfall des „out of memory error“ ist der „GC overhead limit exceeded“ Fehler. Dieser wird dann erzeugt, wenn der Garbage Collector zu viel Zeit damit zu bringt, Speicherplatz frei zu räumen, und die Applikation nicht mehr dazu kommt, zu arbeiten. (GC Dokumentation)

Abhilfe schafft hier ebenfalls ein größerer Heap Space für die JVM, bzgl. ein Profiling der Applikation, um Speicherlecks zu finden. (Wird eine Applikation per Maven-jetty-Plugin testweise gestartet, wird hier übrigens keine separate JVM gestartet, sondern die von Maven weiter verwendet. Damit hilft hier MAVEN_OPTS entsprechend zu konfigurieren.)

Datenpanne bei Affilinet? (Online order for flight ticket N048767)

Geschrieben von everflux am November 14th, 2008

Es gibt sicher genug Anwender, die bei der folgenden E-Mail erstmal erschrocken sind – ich war es zumindest. Denn die E-Mail erhielt ich nicht an die übliche verbrannte E-Mail Adresse, in der sonst Spam eintrudelt, sondern zu einer E-Mail Adresse, mit der ich noch nie E-Mails versand habe. Diese Adresse wurde lediglich für die Registrierung bei Affilinet verwendet.

Hello
Thank you for using our new service "Buy airplane ticket Online" on our website.
Your account has been created:

Your login: XXX (hier steht die E-Mail Adresse nochmals an die die Mail ging)
Your password: PASSAVFR

Your credit card has been charged for $448.25.
We would like to remind you that whenever you order tickets on our website you get a discount of 10%!
Attached to this message is the purchase Invoice and the flight ticket.
To use your ticket, simply print it on a color printed, and you are set to take off for the journey!

Kind regards,
Hawaiian Airlines

Im Anhang findet sich dann „ticket.zip“ – in der Zip Datei befindet sich dann ticket.doc [zig leertasten] .exe Weiterlesen »


http://everflux.de/
Copyright © 2007, 2008 everflux. Alle Rechte vorbehalten. All rights reserved.