Kategorien
Amazon MWS PHP

Cloudfusion für Amazon Italien und China

Wenn man Cloudfusion für die Product Advertising API einsetzt und Italien und China abfragen will, muss man einen kleinen Hack vornehmen. Beispiel ist für Italien, China funktioniert entsprechend.

Kategorien
Java

Thread Programmierung/Multithreading Beispiel

Um nebenläufig zu programmieren gibt es Threads in Java. Am Beispiel eines Parkhauses, in welches Auto Threads einfahren wollen, wenn das Parkhaus nicht voll ist.

public class Main {
    public static void main(String[] args) {
        Parkhaus parkhaus = new Parkhaus();
        for (int i = 0; i < 100; i++)
        {
            Auto auto = new Auto(parkhaus);
            Thread thread = new Thread(auto);
            thread.start();
        }
    }
}
Kategorien
Diverses

Host Europe FTP Login funktioniert nicht mehr

Das könnste daran liegen, dass bei Server im FTP-Programm nicht mehr

www.domain.de

sondern

ftp.domain.de

einzugeben ist.

 

Fehlermeldung:

Status:    Auflösen der IP-Adresse für domain.de
Status:    Verbinde mit 178.11.45.123:21...
Status:    Verbindung hergestellt, warte auf Willkommensnachricht...
Antwort:    220 FTP Server ready.
Befehl:    USER ftpdomain-1
Antwort:    331 Password required for ftpdomain-1
Befehl:    PASS **********
Antwort:    530 Login incorrect.
Fehler:    Kritischer Fehler
Fehler:    Herstellen der Verbindung zum Server fehlgeschlagen
Kategorien
Diverses

HTML Newsletter Programmierung

Einige miese Besonderheiten sind zu beachten:

  • inline-Styles sind wieder in
  • kein background image, Bilder sind nicht hinter Text möglich (wegen Outlook 2007,2010)
  • in  <table> bauen (wie früher im Mittelalter)
  • Bilder auf den Server, nicht in den Anhang
  • Text-Mail für nicht html fähige Clients nicht vergessen
  • Abstände immer mit padding und auf die Zeilen <td> verankern (->Hotmail)
  • Link auf Server mit Webseiten Version des Newsletters
  • Neswellter Abmeldungs Link im Footer

Outlook 2007/2010 machen den meisten Stress, weil die Anzeige nicht mehr vom Internet Explorer, der schon mies war, übernommen wird, sondern von Word…

Kategorien
MySQL PHP

MySQL PHP Umlaute/Sonderzeichen fixen UTF-8/ISO

Jeder kennt das Problem, aus irgendeinem Grund wurden Wörter in der falschen Kodierung in die Datenbank geschrieben. Wenn das passiert ist, kann man daran erkennen, dass sich Zeichen wie diese untergemischt haben:

'¦, '¨, '?, '´, '¸, 'À, 'Á, 'Â, 'Ã, 'Ä, 'Å, 'Æ, 'Ç, 'È, 'É, 'Ê, 'Ë,
'Ì, 'Í, 'Î, 'Ï, 'Ñ, 'Ò, 'Ó, 'Ô, 'Õ, 'Ö, 'Ø, 'Ù, 'Ú, 'Û, 'Ü, 'Ý, 'Þ,
'ß, 'à, 'á, 'â, 'ã, 'ä, 'å, 'æ, 'ç, 'è, 'é, 'ê, 'ë, 'ì, 'í, 'î,
'ï, 'ð, 'ñ, 'ò, 'ó, 'ô, 'õ, 'ö, 'ø, 'ù, 'ú, 'û, 'ý, 'þ, 'ÿ

Das Problem ist, dass diese Zeichen nicht utf8 kodiert worden sind, aber in utf8 dargestellt worden sind, was eine Vielzahl an Gründen haben kann.

Kategorien
Apache Webserver PHP SEO Webdeveloper Tools

Profiling mit XDebug und Webgrind

Wenn die Performance einer Webseite nachgibt, stellt man sich oft die Frage, an welche Funktion/Modul liegt der Performanceverlust? Die Lösung ist das Profiling einer Webseite.

Profiling beschäftigt sich der Analyse der Funktionsaufrufe eine Webseite. Es kann dadurch analysiert werden, welche Teile sehr lange brauchen oder welche Funtionen doppelt aufgerufen werden.

Profiling sollte nicht auf einem Produktivsystem ausgeführt werden, weil die Performance einbricht und Ausgaben sichtbar sind. Übrigends: Wer seine Webseite schneller macht, SEO optimiert gleichzeitig.

Kategorien
PHP Webdeveloper Tools

Installieren von XDebug unter Netbeans

XDebug ermöglicht es ein Programm zur Laufzeit zu debuggen und Step by Step.

Dazu sollte als erstes das folgende Tool verwendet werden für die Installation um die richtige Version zu installieren:

  1. XDebug Installations Hilfe Tool
  2. Zur Kontrolle kann nach der Installation das Tool noch mal verwendet werden und es sollte unter Xdebug installed: 2.x anzeigen
  3. php.ini Einstellungen anpassen:
    xdebug.remote_enable=onxdebug.remote_handler=dbgp
    xdebug.remote_host=localhost
    xdebug.remote_port=9000
    xdebug.remote_log=" \xampp\htdocs\xError.log"
  4. Danach sollte geteste werden, ob der Port 9000 freigegeben ist mit dem folgenden Script:
    $address = '127.0.0.1';
     $port = 9000;
     $sock = socket_create(AF_INET, SOCK_STREAM, 0);
     socket_bind($sock, $address, $port) or die('Unable to bind');
     socket_listen($sock);
     $client = socket_accept($sock);
     echo "connection established: $client";
     socket_close($client);
     socket_close($sock);
  5. Danach kann in Netbeans mit Debug Projekt (STRG+F5) und einem Breakpoint das passende Projekt debugt werden. Wenn es nicht klappt, muss die URL im Browser manuell angepasst werden:http://localhost/class.php?XDEBUG_SESSION_START=netbeans-xdebug
Kategorien
jQuery

jQuery UI Autocomplete mit extraParams für zusätzliche GET Variablen

In jQuery UI gibt es eine sehr gute Autocomplete Funktion, die ich auf der Seite CD Shop Berlin eingebaut habe (Schnellsuche oben links). Dabei werden beim Eintippen Vorschläge unterbreitet.

$(document).ready(function() {
 $("input#suche").autocomplete(
 {
 autoFocus: false,
 delay:300,
 minLength: 3,
 select: function(event, ui) {document.advanced_search.submit();},
 source: function(request, response) {
 $.ajax({
 url: "autocomplete.php",
 dataType: "json",
 data: {
 term : $('#schnellsuche').val(),
 verkauf : $('input[name=verkauf]').is(':checked'), },
 success: function(data) {
 response(data);
 }
 });
 }
 }
 );
});

Dabei ist zu beachten, dass der Parameter extraParams von jQuery UI 1.8 aktuell ignoriert wird und man dies über den eingebauten Ajax Request lösen muss.

Serverseitige stehen dann die Variablen mit $_GET[‚term‘], $_GET[‚verkauf‘]  zur Verfügung.

 

Kategorien
PHP

richtige Rechte für Dateien zum Speichern von Skript Input

Wenn man schreibenden Zugriff auf Dateien wie z.B. .txt oder .dat Dateien aus einem Skript heraus hat, sollten diese

  1. vom Skript angelegt worden sein, nicht manuell bei FTP. Damit ist sichergestellt , dass der Besitzer kein FTP Account ist.
  2. die Schreibrechte 644 haben, damit sie nicht von einem anderen Account überschrieben werden können oder durch den automatischen Upload einer IDE überschrieben werden.

Bsp:

if(!file_put_contents ($log_file ,""))
 {
 chmod ($log_file, 0644);
 }

So können Fehler wie dieses vermieden werden:

Warning: file_put_contents(log.txt) [function.file-put-contents]: failed to open stream: Permission denied in class.php on line x

Warning: chmod() [function.chmod]: Operation not permitted in class.php on line x

Kategorien
Android

Tutorial Installation des Android SDKs mit Eclipse unter Windows 7

Für die Android Entwicklung unter Windoes sollte bevorzugt Eclipse als IDE benutzt werden, weil Netbeans doch einige Probleme in der Vergangenheit mit dem Andorid SDK hatte.

Installation von Eclipse

  1. Download von Eclipse (Eclipse IDE for Java Developers)
  2. entpacken des Archivs. Dabei ist darauf zu achten, dies nicht in das Programm-Verzeichnis von Windoes zu tun, weil dort die Schreibrechte Probleme machen bei der Installation des ADT Plugins
  3. Installation von Java Runtime Enviroment
  4. starten der eclipse.exe und es läuft (ohne Installation)
  5. Testprojekt anlegen und ausführen: Bsp: main.java:
public class main {
    public static void main(String[] args) {
        System.out.println("Hello word");
    }
}