Martin Lantzsch
Software Entwickler
13. März 2015

zweitausendfünfzehn

13. März 2015 - Geschrieben von Martin - Keine Kommentare

Hallo zusammen,

wir schreiben das Jahr 2015 und der Blog, der hier vor einem guten Jahr offline gegangen ist, kann nun wieder ohne Zugangsdaten gelesen werden. Was den Content angeht, hat sich nichts geändert, alles ist beim Alten. Lediglich das Design habe ich aktualisiert. “linuxdoku-2014″ heißt das Theme – ein Design, das ich, kurz bevor der Blog offline gegangen ist, noch begonnen, doch nie fertiggestellt habe. Da ich das alte, hellblaue nicht mehr machen konnte, ziert nun dies meine Worte.

Der Grund, dass der Blog wieder auflebt, ist einfach der Hang zum Schreiben; es macht Spaß meine Gedanken niederzuschreiben und an einem Ort zu sammeln, an den ich später wiederkommen kann, um etwas zu stöbern. Auch haben sich einige Leser bei mir gemeldet und sich gewünscht, dass der Blog wieder online geht. Scheinbar ist es dann wohl auch gar nicht so doof, was ich hier schreibe, auch wenn ich mir selbst manchmal etwas komisch dabei vorkomme.

Deswegen werde ich erneut beginnen, hier Dinge aus meinem alltäglichen Technik- und Internet-Leben zu posten. Es gibt viel zu erzählen, denn 2014 war – auch wenn es hier, wie gesagt, etwas still war – ein ereignisreiches Jahr. Die erste Story wird definitiv etwas über das Verschwinden meiner Internetpräsenzen aus dem Web sein, denn es gab ein paar rechtliche Gründe, warum der Blog und meine anderen Webseiten einst so plötzlich aus dem World-Wide-Web verschwunden sind …

Viele Grüße, Martin

5. Oktober 2013

Multitasking in einer Web App

5. Oktober 2013 - Geschrieben von Martin - 2 Kommentare

Momentan spiele ich mit der Idee eine Art CRM Web App zu entwickeln in der Kunden, Aktivitäten, Projekte, etc. verwaltet werden können. Bei den ersten Entwürfen der GUI stellt sich mir allerdings die Frage wie man am besten Multitasking in einer Web App abbildet.

Sieht man sich bekannte Web Anwendungen an so wird man feststellen, dass alle folgendem alt bekannten Schema folgen:

  • Dokument suchen
  • Dokument öffnen
  • Dokument bearbeiten
  • Dokument schließen
  • … und wieder von vorn

Das ganze läuft in einem Browserfenster ab und es ist lediglich der momentane Arbeitsschritt durchführbar.

Beobachte ich nun aber meine Arbeitsweise so bearbeite ich allerdings meist mehrere Dokumente oder lese diese zumindest, denn den Idealfall dass man sequenziell die Arbeit verrichtet habe ich noch nie erlebt. Immer wieder kommt eine Kundenabfrage die bearbeitet werden will oder der Kollege der zwischen Tür und Angel steht benötigt jetzt eine Auskunft. Und wenn man noch tiefer geht gibt es meist auch zwischen den Akten Abhängigkeiten, zum Beispiel muss in einem älteren Dokument ein Detail nachgesehen werden um das jetzige fertigstellen zu können.

Diese Fälle sind eben in jenen klassischen Anwendungen nicht berücksichtigt, hier muss man ständig den Bearbeitungsmodus verlassen und später wiederkehren. Sehr produktiv.

Als „Workaround“ können natürlich mehrere Browserfenster oder Tabs geöffnet werden, allerdings hat dies bei vielen Anwendungen markante Nachteile, zum Beispiel bleibt ein Tab der seit Stunden offen ist unaktualisiert was den unerfahrenen Nutzer verwirren kann – „dieses Ticket habe ich doch bereits geschlossen?“, diese Benutzerschicht wird auch oft verwirrt durch immer gleiche Fenster die sich nur im Detail unterscheiden – so sind Navigationselemente, Listen und Formulare über all die selben, die Seiten unterscheiden sich nur in den angezeigten Daten.
Doppelte Elemente haben auch zur Folge, dass sie Bildschirmplatz verschwenden wenn mehrere Browser Fenster nebeneinander gestellt werden um eine Mail zu auf Basis von Ticket Inhalten zu verfassen.

Auch bei WordPress wird sichtbar wie Platz verschwendet wird. Rot doppelte Elemente, Grün die der eigentliche Inhalt.Auch bei WordPress wird sichtbar wie Platz verschwendet wird. Rot doppelte Elemente, Grün die der eigentliche Inhalt.

Doch wie löst man das Problem?
Ehrlich gesagt habe ich hierfür noch keine perfekte Lösung gefunden, allerdings ziemlich gute, doch später mehr. In letzter Zeit gehen viele Anwendungen den weg, dass sie im Browserfenster weitere Fenster emulieren (emulieren soll hier ausdrücken, dass es keine nativen Fenster sind wie z.B. Popups). In diesem Bezug haben sich viele Frameworks wie z.B. ExtJS und jQuery UI etabliert die sich großer Beliebtheit erfreuen. Ich will hier aber nicht über Frameworks berichten sondern über Usability.

Fenster im Browser zu emulieren finde ich ist eine ziemlich bescheidene Idee, denn so wirft man einen ziemlich wichtigen Punkt über Bord, der sich im Web über die Jahre gehalten hat. Die Führung des Nutzers durch einen unter umständen komplexen Prozess indem man einen Weg vorgibt. Der obige sequenzielle Ansatz der von vielen Web Apps benutzt wird, hat den Charm, dass man sich stets auf eine Aktion konzentriert und diese nicht aus den Augen verliert. Fenster sorgen wieder dafür, das man wichtiges aus den Augen verliert und abgelenkt wird. Auch gestaltet sich die Führung eines Users durch verkettete Fenster schwer. Viele behelfen sich hier mit aufpoppenden Dialogen die andere Fenster blockieren um den User zu einer Aktion zu zwingen. Hier haben wir also wieder die Situtation in der der Nutzer ledigliche eine Aktion ausführen kann und diese beenden muss bevor er weitere in Angriff nehmen kann.

ExtJS Multitasking

Und was ist mit Tabs? Tabs sind in der Tat die bessere Wahl, sie zeigen immer nur eine Aktion, der Benutzer weiß aber das er zwischen mehreren wechseln kann ohne Daten zu verlieren (sehr wichtig!). Beispielsweise kann eine Email in einem Tab verfasst werden und per klick auf einen Menüpunkt öffnet sich ein weiterer mit einer Kundenliste um Informationen für die aktuelle Email zu suchen. Natürlich können viele Tabs auch sehr verwirrend werden, deshalb sollte eine durchdachte Tab Verwaltung auch Gruppierung nach Aktion oder Kunde ermöglichen.

Ein meines Erachtens nach sehr gutes Beispiel für solch eine Oberfläche ist die vom OpenExchange Projekt entwickelte OX App Suite um in diesem Artikel auch noch ein Beispiel für Experementierfreudige zu liefern. Hier dient ein einfaches Menü zur Navigation durch die verschiedenen Anwendungen und die aktuellen Aktionen werden durch Tabs abgebildet.
OX AppSuite 1

Wichtige Informationen wie Benachrichtigungen können ohne Verlassen eines Menüpunktes oder Tabs durch ein Overlay eingeblendet werden:
OX AppSuite 2

Und viele Anwendungen sind weit verschachtelt ohne auch nur einen Tab zu öffnen, das nervt den Nutzer nicht mit vielen unnötigen Tabs die er wieder schließen muss.
OX App Suite 3

Re­sü­mee
Kurz um – versucht nicht alt bewährte Window Manager im Web nachzubauen. Auch wenn es Frameworks einfach machen, denkt daran was eure Nutzer wollen – eine Übersichtliche Anwendung die einfach zu bedienen ist und Spaß macht! Diese Punkte haben dem Web zu dem verholfen was es heute ist und nicht RIAs die seit jeher versuchen den Browser als plattformunabhängige Runtime zu missbrauchen.

6. Mai 2013

Die verbleibende Übertragungsrate von 384 KBit/s macht eine zeitgemäße Nutzung des Internets unmöglich

6. Mai 2013 - Geschrieben von Martin - Keine Kommentare

Soeben auf Golem in einem Beitrag über die Telekom Drosselung gelesen:

„Die verbleibende Übertragungsrate von 384 KBit/s macht eine zeitgemäße Nutzung des Internets unmöglich. Während die Geduld der Kunden bereits beim Aufruf von Internetseiten oder dem Versenden von E-Mails oder Dateien auf eine harte Geduldsprobe gestellt wird, sind manche Onlinedienste praktisch nicht mehr nutzbar. So dürfte ein unterbrechungsfreies Anschauen von Internetvideos regelmäßig scheitern und auch das Musikhören oder Telefonieren via Internet nicht mehr ohne Qualitätseinbußen möglich sein. Greifen wie üblich mehrere Anwendungen des Endgeräts gleichzeitig auf das Internet zu oder nutzen gar mehrere Endgeräte gleichzeitig den Internetanschluss, droht die Verbindung an der Drosselung zu ersticken“

mit meinem DSL Lite Anschluss ist also eine zeitgemäße Nutzung des Internets unmöglich. Und dennoch baut die Telekom in meinem Dorf weder DSL noch Mobilfunk oder LTE aus (andere Anbieter eingeschlossen). Nach der garantierten – gedrosselten – Geschwindigkeit von 384 KBit/s würde ich mir die Finger lecken, denn es gibt selten einen Tag bei dem mein Anschluss konstant mit der garantierten Bandbreite läuft. Mit schwammigen 20KB/s rumdümpeln ist Standard.

Was die Drosselung angeht – lästert ihr nur weiter über 75GB die euch viel zu wenig sind, holt euch einen T-Business Anschluss wenn ihr schon die Möglichkeit habt und heult nicht so rum.

8. Januar 2013

Umzug der resi:DATA Infrastruktur

8. Januar 2013 - Geschrieben von Martin - 4 Kommentare

Da seit dem letzten Post über die Infrastruktur einiges an Webspaces und Servern dazu gekommen ist, muss nun alles mal neu formiert werden.

Aktuell arbeite ich mit 2 Webspaces für Webseiten und Mail Hosting, einen Webspace für Backups, zwei Linux vServer für Webapplikationen, Webservices und Git Repositories und einen Windows vServer für ein C# Projekt, dass eine Serverapplikation und einen Team Foundation Server erfordert.

Das ganze soll im nächsten halben Jahr auf zwei vServer und einen Webspace zusammengezogen werden. Hierzu werden zwei Webspaces gekündigt und alle Domains auf einen großen Webspace Umgezogen, der auch gleichzeitig die Mail Struktur beherbergen soll (dann muss ich keine Mail Server mehr administrieren, was sehr entspannend ist :)). Die Linux vServer werden aus dem Momentanen Dienste Mix gelöst und einer wird für Lighttpd + PHP und der andere für MySQL, NodeJS und Git zuständig sein. Der Windows Server verschwindet ganz, da die Applikation mitsamt des Team Foundation Servers in ein Cloud Hosting migriert wird.

Im nächsten Schritt, der nicht so Zeitkritisch ist, werden alle Webseiten und Applikationen die derzeitig noch auf PHP Basis laufen auf NodeJS umgezogen. Ist dieser Schritt abgeschlossen wird vServer Nr 1. als dedizierter MySQL Server und vServer 2. als dedizierter NodeJS Server eingesetzt.

Soweit das vorhaben. Nun muss erst einmal eine Bestandsaufnahme bezüglich Domains, Apps, etc. gemacht werden. Anschließend heißt es Verträge kündigen, neue Server mieten, etc.

3. Dezember 2012

Mobilfunknetzausbau auf dem Lande

3. Dezember 2012 - Geschrieben von Martin - Keine Kommentare

In letzter Zeit habe ich den Eindruck, dass das Mobilfunk – und insbesondere das Edge Datennetz in den ländlichen Regionen verbessert und ausgebaut wird.

So hatte ich vor einem halben Jahr bei mir zuhause noch kein Handy Netz, habe ich nun überall im ganzen Haus 4 bis 5 Balken Edge. In manchen teilen des Dorfes wo ich Sichtverbindung zum ca. 5km entfernten Handymast habe sogar gelegentlich 3G oder HSDPA mit hoher stabiler Bandbreite.

Ich als „mobilfunk only surfer“ schätze das natürlich sehr, denn nun kann ich fast überall Online gehen um zu chatten, im Internet zu surfen oder meine eMails abzurufen. Und das ganz ohne *hab ich hier Netz – nein – hier vieleicht – …* gesuche.

Klar die Verbindung ist nicht übermäßig schnell aber für grundlegende Dinge reicht es. Und zum Synchronisieren von Spotify und Updaten der Apps habe ich ja die ganze Nacht an der Steckdose Zeit.

23. September 2012

too much – Tag 49

23. September 2012 - Geschrieben von Martin - Keine Kommentare

In letzer Zeit hat sich viel getan. Ich habe nun seit 49 Tagen kaum mehr privat vor dem PC gesessen und bin ich Messengern und Sozialen Netzwerken fast vollständig abgetaucht. Selbst Facebook weiß von den letzten 49 Tagen nicht viel. Ein paar besuchte Events und ein Post, dass ich nun kein Handy mehr habe. That’s all.

Ich finde diese Schritten waren zwingend nötig, ansonsten wäre ich wahrscheinlich auf kurz oder lang der Informationsflut erlegen. Es hat sich sicher auch bezahlt gemacht, denn ich kann nun einfach so ein paar Stunden spazieren gehen ohne ein Handy mitschleppen zu müssen, und eine Mail kann auch schon mal ein bis zwei Tage in meinem mittlerweile sehr überschaubaren Postfach verweilen ehe sie gelesen wird. Vorher war das fast undenkbar – eigentlich ziemlich erschreckend.

Anderen Leuten hingegen missfällt es, dass ich nicht mehr in Messengern und Sozialen Netzwerken zugegen bin, oft höre ich so was wie „Lebst du noch“ oder „Jetzt geh wieder online“ oder so was. Naja, die hängen wohl selbst auch alle in dieser Abhängigkeit.

Bisher vermisse ich nichts, und ich muss sagen ich habe nun richtig viel Zeit für die wichtigen Menschen im Leben.

26. August 2012

Mails auf IMAP Server automatisiert verschieben

26. August 2012 - Geschrieben von Martin - 2 Kommentare

Wie schon im Beitrag „too much – Tag 0“ erwähnt, habe ich nun einen Serverseitigen Mail Filter entwickelt, der mir alle Mails von Facebook, Twitter, etc. in einen extra Ordner verschiebt. Warum? Ganz einfach – weder mein Android Handy, als auch mein iPhone können Mail Filter auf die INBOX anwenden, also wurden die Mails nur automatisch einsortiert wenn zuhause mein Thunderbird lief. Da ich den Rechner aber kaum anwerfe sondern nur am Handy bin, platzte meine Inbox also immer aus allen Nähten.
Im übrigen hat das Serverseitige verschieben den positiven Nebeneffekt, das nicht mehr so viele Mails auf dem Handy laden und so weniger Traffic verbraucht wird.

Folgendes Python Script hab ich mir geschustert:

# 
# This python script is to move mails automated by a filter inside of an imap4 mailbox
# You can use it to sort out mails by several criteria, eg moving all mails from facebook to an seperate mailbox
#
# @author	Martin Lantzsch <martin@linux-doku.de>
#
 
import imaplib
 
# connect to server
m = imaplib.IMAP4('YOURSERVER.TLD')
m.login('USERNAME', 'PASSWORD')
 
# filter function
def filterMessages(mailbox, filter, newMailbox):
	m.select(mailbox, readonly=False)
	typ, data = m.search(None, filter)
	for num in data[0].split():
		typ, data = m.fetch(num, 'RFC822')
		m.copy(num, newMailbox)
		m.store(num, '+FLAGS', '\\Deleted')
		print 'Moved and deleted Message %s from %s to %s' % (num, mailbox, newMailbox)
	m.close()
 
# fire!
filterMessages('INBOX', '(FROM "@facebookmail.com")', 'INBOX.Internet.Facebook')
filterMessages('INBOX', '(FROM "@postmaster.twitter.com")', 'INBOX.Internet.Twitter')
 
# close connection
m.logout()

Wie die IMAP4 Filter funktionieren, ist in diesem Wiki ganz gut erklärt: SEARCH command

Nun einfach einen CronJob drauf setzen, der alle 10 Minuten das Script aufruft und schon hat man Ruhe :-)