Archiv für den Monat: September 2013

Windows Live und Thunderbird

Windows Live und Thunderbird, das hieß lange Zeit „entweder…oder“, aber nie „zusammen“. Bisher zumindest. Microsoft spendiert den Windows Live Mailkonten IMAP, einfach so, ohne „große“ Ankündigung, ohne viel Tamtam … fast hätte ich es überlesen.

Bisher unterstützte Microsoft bei den Windows Live Mailadressen nur EAS (Exchange Active Sync), was – zugegeben – wirklich schneller sein kann (und oft ist) wie das doch recht betagte IMAP. Andererseits ist EAS nicht sehr verbreitet. Zwar beherrscht jedes aktuelle Smartphone EAS mitlerweile (und mein altes Samsung Bada schon länger), schaut man sich allerdings die Desktop-Mail-Clients an sieht es oft Mau aus. Windows Live Mail ist da die erste Wahl, wenn man nicht Outlook (das richtige Outlook, nicht Express) selbst besitzt. Und lange war auch gezwungen, damit zu leben.

Nun funktioniert IMAP bei Windows Live Konten und ich zeige dir nun, wie du Thunderbird einstellt, damit die Mails syncronisiert werden und du auch an deine Termine in Thunderbird (mit Lightning) kommst.

Ich benutzte Thunderbird, du kannst, IMAP sei dank, auch irgendeinen Mailclient benutzen, der dir zusagt.

Windows Live in Thunderbird:

  1. Thunderbird installieren
  2. Lightning installieren (AddOn)
  3. Neues Konto anlegen
  4. Name, E-Mail-Adresse und Passwort solltest du ja kennen
  5. Nun NICHT die POP Variante blind übernehmen, sondern auf „manuell bearbeiten“ klicken (ganz unten als Button)
  6. Posteingang-Server auf IMAP wechseln
  7. Server-Adresse auf „imap-mail.outlook.com“ einstellen, Port 993, Sicherheit „SSL/TLS“, Auth „Passwort, normal“
  8. Postausgang-Server auf „smtp-mail.outlook.com“ einstellen, Port 587 (oder 25, wenn 587 geblockt ist), Sicherheit „STARTTLS“, Auth „Passwort, normal“
  9. Fertig

Für den Kalender machst du folgendes:

  1. In die Onlineversion deines Kalenders gehen
  2. In outlook.com einloggen
  3. oben links auf den Kalender wechseln
  4. Oben den Button „Teilen“ anklicken
  5. gewünschten Kalender wählen
  6. „Link abrufen“
  7. „Erstellen“
  8. Den Link bei „In andere Kalenderanwendungen importieren (ICS)“ kopieren
  9. In Thunderbird „Datei“ -> „Neu“ -> „Kalender“
  10. „Im Netzwerk“
  11. Bei „Adresse“ den Link reinkopieren -> „Weiter“
  12. Fertig

Viel Spaß mit Windows Live, IMAP und einem Mailclienten deiner Wahl.

 

CRUD – Theorie und Praxis

CRUD, dieses Vorgehen sollte eigentlich jeder kennen … falls nicht, CRUD ist die Kurzform für „Create, Read, Update and Delete“ und ist vereinfacht gesagt als Checkliste zu sehen und gilt nicht nur für PHP.

Du hast in deiner Anwendung zum Beispiel eine Liste aller User, die soll editierbar sein. Du kannst nun CRUD als Checkliste benutzen und einzeln abhaken:

  • Create: Kann ich neue User erzeugen? Check!
  • Read: Kann ich eine Liste aller User ausgeben UND kann ich im Editfall einen User darstellen? Check!
  • Update: Kann ich die Daten eines Users ändern? Check!
  • Delete: Kann ich einen User löschen? Check!

Hast du bei allen ein „Check!“, dann bist du technisch auf dem Mindestlevel angelangt. Herzlich Willkommen 😉

Soviel zu Theorie. In der Praxis sehe ich es leider oft, dass CRUD viel zu wörtlich genommen wird. Besonders das C und das U sehe ich oft als zwei Dinge in der Anwendung.

Warum nun ist das schlimm? Nun, ich arbeite mit Legacy-Anwendungen. Diese sind teilweise vor vielen Jahren begonnen und verrichten bis heute ihren Dienst. Innerhalb dieser Anwendungen gibt es immer wieder den Fall, dass eine Datensatzart die CRUD Bedingung erfüllen muss, d.h. ich habe eine Liste von (Beispiel) Usern oder Kunden, die kann man ändern, die kann man neu erzeugen, die kann man löschen usw.

Nun mein Appell an alle: Bitte, fasst C und U zusammen. Bitte!

Es gibt nichts schlimmeres, als dass man ein „create“ Script und ein „update“ Script hat, beide machen im Prinzip das gleiche (Prüfung der Daten, Normalisieren der Daten usw.), aber im Endeffekt hast du 2 Scripte. Du hast also „duplicate code“. Und das ist nicht nur „bad smell„, dies ist einfach nur „bad style“. Eine Änderung an der Logik der User (Stichwort neues Feld) und du musst beide Scripte aktualisieren. Falls deine Anwendung mehrere solcher Listen hat und das neue Feld mehrere betrifft darfst du die „2“ gern entsprechend faktorisieren.

Also, bitte, bau die ein „edit“ Script, prüfe die Variablen, normalisiere diese und mache alles fertig. Dann nur noch die Unterscheidung „neu“ oder „ändern“ und gut ist. Das sind aus meiner Erfahrung nur ein if-else (oder switch) und das entsprechende SQL-Kommando. Die Ausführung des Kommandos ist dann ja wieder das selbe und kann außerhalb der Verzweigung stehen.

Dieses eine Script läßt sich jetzt viel leichter skalieren, verstößt nicht mehr gegen den „copy paste detector“ und läßt dich einfach ruhiger schlafen.

Just my 2 cent ….