Alle Beiträge von Jörg

Apache Webserver mit FastCGI in einfach unter Debian Wheezy

Da es immer wieder vor kommt, dass man einen Webserver installieren muss, habe ich hier mal alle bei mir so üblichen Schritte zusammengefasst. Dabei behandle ich nur die grobe allgemeine Instalaltion wie ich sie gern habe. Nicht mehr! Folgende Punkte sollen erreicht werden:

  • Debian Stable System mit der Option auf Testing Pakete
  • Apache2 Webserver (MPM-Worker) mit ein paar wichtigen Modulen
  • PHP als FastCGI
  • MySQL Datenbank
  • FTP Server
  • Ein paar Sicherheitsallgemeinheiten

1. Grundinstallation

Bei der Grundinstallation achte ich darauf, dass wirklich nichts ausser dem SSH-Server installiert wird. Alles andere wird per default nicht so gemacht wie ich es mir wünsche. Daher nehme ich nur die Konfiguration der Festplatte, des Netzwerkes und der Paketquellen mit.

2. Paketquellen anpassen

Ich nehme direkt zu Beginn den Testing-Zweig in die Paketquellen mit auf:

nano /etc/apt/sources.list

# Testing-Pakete

deb http://security.debian.org/ testing/updates main

deb http://ftp.de.debian.org/debian/ testing main

Anschließend werden werden die Prioritäten angepasst:

nano /etc/apt/preferences.d/priority

Package: *

Pin: release n=wheezy

Pin-Priority: 990

3. Software installieren

aptitude install apache2 apache2-mpm-worker libapache2-mod-fcgid php5-cgi php5-mysql php5-xcache php5-sqlite php5-mcrypt php5-json php5-gd php5-fpm php5-curl mysql-server

aptitude install -t testing vsftpd

4. Software Konfigurieren

Apache2: Module aktivieren

a2enmod rewrite mem_cache fcgid deflate alias

a2dismod php5_cgi

service apache2 restart

usermog www-data -G ftp

FastCGI:

nano /etc/apache2/mods-enabled/fcgid.conf

<IfModule mod_fcgid.c>

AddHandler    fcgid-script .fcgi

FcgidConnectTimeout 20

FcgidIOTimeout              60

FcgidMaxRequestsPerProcess  400

FcgidIdleTimeout            60

FcgidMinProcessesPerClass   0

</IfModule>

VsFTPD: Konfiguration erstellen

listen=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=0022

dirmessage_enable=YES

use_localtime=YES

xferlog_enable=YES

connect_from_port_20=YES

chown_uploads=YES

idle_session_timeout=600

data_connection_timeout=120

nopriv_user=ftp

ftpd_banner=Willkommen zum FTP-Server

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

allow_writeable_chroot=YES                               #Dieser Punkt ist der Grund weshalb wir testing installiert haben

secure_chroot_dir=/var/run/vsftpd/empty

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/private/vsftpd.pem

Wichtig ist, das wir die zukünftig verwendeten Shells auch aktivieren, da ansonsten der vsftpd streikt. In der Datei /etc/vsftpd.chroot_list werden alle Benutzer eingetragen die NICHT gechrooted werden sollen.

echo „/bin/false“ >> /etc/shells

Fail2ban

nano /etc/fail2ban/jail.conf

[ssh]

enabled  = true

port     = ssh

filter   = sshd

logpath  = /var/log/auth.log

maxretry = 2

[vsftpd]

enabled  = false

port     = ftp,ftp-data,ftps,ftps-data

filter   = vsftpd

logpath  = /var/log/vsftpd.log

maxretry = 3

Mailserver

Da Debian ja ohnehin schon mit einem Mailserver daher kommt können wir diesen für einfache Aufgaben auch nutzen. In diesem Fall möchte ich einfach einen Mailversand über einen Smarthos realisieren.

dpkg-reconfigure exim4-config

5. Benutzer anlegen

useradd webuser -c „Benutzer fuer dasWebsystem via FTP“ -d /var/www/webseite.de -m -s /bin/false -U

usermod -G ftp && passwd webuser

6. Webseite einrichten

Zunächst einmal legen wir eine virtuelle Konfigurationsdatei an:

nano /etc/apache2/sites-enabled/webseite.de

<VirtualHost webseite:80>

ServerName webseite.de

ServerAdmin webmaster@webseite.de

DocumentRoot /var/www/webseite.de/httpdocs/

<Directory /var/www/webseite.de/httpdocs>

Options +ExecCGI

AddHandler fcgid-script .php

FCGIWrapper /usr/bin/php-cgi .php

AllowOverride All

Order allow,deny

allow from all

</Directory>

ErrorLog ${APACHE_LOG_DIR}/webseite.de_error.log

LogLevel warn

CustomLog ${APACHE_LOG_DIR}/webseite.de_access.log combined

</VirtualHost>

Nun müssen wir noch die Verzeichnisse anlegen. Dies geschieht unterhalb des Homeverzeichnisses des Benutzers:

mkdir /var/www/webseite.de/httpdocs && chown :ftp /var/www/webseite.de/httpdocs

Fazit

Was haben wir bisher erreicht?

  • Wir haben einen zügigen Webserver
  • PHP mit Hilfe von FastCGI ausführt.
  • Der FTP-Server bietet die Möglichkeit Chrootfreie Benutzer zuzulassen
  • Systembenutzer können sich via FTP auf dem Server einloggen und landen in Ihrem Homeverzeichnis
  • Unterhalb des Homeverzeichnisses gibt es ein httpdocs Order der die Webseiten vorhalten wird
  • MySQL speichert seine Tabellen freundlicherweise in einzelnen InnoDB Dateien

Mehrere PHP Versionen innerhalb von Plesk 11.5

Bei der Arbeit mit Plesk kann es sinnvoll sein mehrere unterschiedliche Versionen von PHP innerhalb von Plesk zur Verfügung zu haben. Zum einen erleichtert es doch immens die Arbeit bei der Migration von Webseiten, zum anderen kann man so individueller auf die Bedürfnisse der Umgebung eingehen. Ziel ist es die jeweils zu verwendende PHP Version innerhalb des Plesk Panels auswählen zu können.

Grundsätzlich werden alle PHP Versionen als FastCGI zur Verfügung gestellt.

Das diese Pakete nicht vorkompiliert zur Verfügung stehen muss selbst hand angelegt werden. Hier gibt es diverse Anleitungen im Netz wie man unter Debian das alle Voraussetzungen schafft um ein sauberes Kompilat zu erhalten. Als hilfreich hat sich folgende Umgebung herausgestellt:

apt-get install apache2-suexec libpcre3-dev libpcre++-dev libpng12-dev libbz2-dev libcurl4-openssl-dev libc-client2007e-dev libjpeg-dev libgif-dev libgif4 libpthread-stubs0 libpthread-stubs0-dev libx11-dev libxau-dev libxcb1-dev libxdmcp-dev libxpm-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev xtrans-dev libxml2-dev libmysqlclient-dev libfreetype6-dev build-essential make wget build-essential

An dieser stelle muss nach Bedarf ergänzt werden, was man braucht oder aber eben nicht.

Nun fangen wir an mit der Einrichtung von PHP 5.3:
cd /usr/src
wget http://de1.php.net/get/php-5.3.28.tar.gz/from/this/mirror -O php.tar.gz
tar xzvf php.tar.gz
cd php-5.3.28

ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

./configure –prefix=/usr/share/php53 –datadir=/usr/share/php53 –mandir=/usr/share/man –bindir=/usr/bin/php53 –with-libdir=lib/x86_64-linux-gnu –includedir=/usr/include/php53 –sysconfdir=/etc/php53/apache2 –with-config-file-path=/etc/php53/apache2 –with-config-file-scan-dir=/etc/php53/conf.d –enable-libxml –enable-session –with-pcre-regex=/usr –enable-xml –enable-simplexml –enable-filter –disable-debug –enable-inline-optimization –disable-rpath –disable-static –enable-shared –with-pic –with-gnu-ld –with-mysql –with-gd –with-jpeg-dir –with-png-dir –with-xpm-dir –enable-exif –with-zlib –with-bz2 –with-curl –with-ldap –with-mysqli –with-freetype-dir –enable-soap –enable-sockets –enable-calendar –enable-ftp –enable-mbstring –enable-gd-native-ttf –enable-bcmath –enable-zip –with-pear –with-openssl=/usr/ –with-imap –with-imap-ssl –with-kerberos –enable-phar –enable-pdo –with-pdo-mysql –with-mysqli

make
make test
make install

Wenn alles durchgelaufen ist, erhalten wir eine interessante Übersicht:
Installing PHP SAPI module:       cgi
Installing PHP CGI binary: /usr/bin/php53/
Installing PHP CLI binary:        /usr/bin/php53/
Installing PHP CLI man page:      /usr/share/man/man1/
Installing build environment:     /usr/share/php53/lib/php/build/
Installing header files:          /usr/include/php53/php/
Installing helper programs:       /usr/bin/php53/
program: phpize
program: php-config
Installing man pages:             /usr/share/man/man1/
page: phpize.1
page: php-config.1
Installing PEAR environment:      /usr/share/php53/lib/php/
[PEAR] Archive_Tar    – already installed: 1.3.11
[PEAR] Console_Getopt – already installed: 1.3.1
[PEAR] PEAR           – already installed: 1.9.4
Wrote PEAR system config file at: /etc/php53/apache2/pear.conf
You may want to add: /usr/share/php53/lib/php to your php.ini include_path
[PEAR] Structures_Graph- already installed: 1.0.4
[PEAR] XML_Util       – already installed: 1.2.1
/usr/src/php-5.3.28/build/shtool install -c ext/phar/phar.phar /usr/bin/php53
ln -s -f /usr/bin/php53/phar.phar /usr/bin/php53/phar
Installing PDO headers:          /usr/include/php53/php/ext/pdo/

Das ist aus dem Grund interessant, weil es und etwas anschaulicher zeigt wo unsere
Datein liegen.

Nun kopieren wir noch die Beispielkonfigurationsdatei:
cp php.ini-production /etc/php53/apache2/php.ini

Wenn das erledigt ist, können wir Plesk mitteilen, wo es unser neues PHP findet, wie es heißen soll und was es damit anfangen soll:

/usr/local/psa/bin/php_handler –add -id PHP-5.3.28 -displayname NEWPHP-5.3 -path /usr/bin/php53/php-cgi -type fastcgi -phpini /etc/php53/apache2/php.ini

Haben wir das erledigt brauchen wir einfach nur noch unseren Apache neu starten und haben in den Hostingeinstellung der Pleskdomain unsere neue Version PHP mit dem Namen NEWPHP-5.3 zur Verfügung.

 

Quellen:

  • http://massivelydigital.com/run-two-versions-of-php-on-one-plesk-11-server/
  • http://blogs.reliablepenguin.com/2013/10/01/plesk-11-5-with-multiple-php-versions
  • http://zgadzaj.com/how-to-install-php-53-and-52-together-on-ubuntu-1204
  • http://wiki.apache.org/httpd/php-fcgid
  • http://www.soeren-hentzschel.at/technik/linux-server/2013/05/17/php-5-3-und-5-4-unter-debian-7-wheezy-parallel-installieren/

Ohne Datenbank-Power

Wer mich kennt, der weiß, dass ich es gern einfach mag. Wir verkomplizieren die einfachsten Dinge und sind gradezu meisterhaft darin uns das Leben selbst schwer zu machen.

Aus diesem Grund entwickelte sich irgendwann im laufe der Zeit eine Art Abneigung gegen alles was unnötig kompliziert, unangemessen aufwändig oder gar aus der Faulheit heraus aufgebläht wird.

Eine dieser Dinge sind CMS (Content Management Systeme). Wir alle nutzen sie in der ein oder anderen Art und Weise und tragen somit zum Ausbau des Internet, Intranet oder ähnlichem bei. Eine ordentliche Datenhaltung ist an dieser Stelle schon die Vorstufe zum schwarzen Gürtel. Aus diesem Grund legen wir die Verwaltung und Haltung von Daten gern in die Hände von Systemen. Soweit auch alles ok.

Wenn ich mir die technische Komplexität vieler Webvisitenkarten oder etwas aufwändigerer Präsenzen anschaue wird mir ein wenig bange. Datenbanken, Skriptsprachen, Erweiterungen und dergleichen prägen die Serverlandschaften und verschwenden unfassbar viel Energie, Speicherplatz und so weiter. Für den Kunden so lange uninteressant wie er nicht upgraden oder warten muss. An dieser Stelle wird  es oft teuer, weil ein Techniker ran muss der glaubt die Dinge zu beherrschen. Wofür das alles? Für 10-20 Seiten die nur dazu dienen sich zu präsentieren? Aus meiner Sicht unverhältnismäßig.

An dieser Stelle nutze ich gern kleine Systeme, mit so wenig Abhängigkeiten wie möglich. Natürlich darf es bequem sein und ich sage nicht, dass jeder seine Seiten wieder von Hand schreiben soll.

Get-Simple als vollwertiges, erweiterbares, einfach zu erlernendes/zu vermittelndes CMS ist für mich oft die Wahl. Es speichert seine Daten in XML Dateien ab, ist auf einfache Art und Weise erweiterbar, benötigt minimale Anforderungen an neues Skriptsprachen und ist somit auf lange sicht sehr gut wartbar und weniger anfällig für Serverseite Veränderungen. Zudem kann ich per Skript die komplette Präsenz eines Kunden herunterladen und so direkt lauffähige Backups seiner Webseite bereithalten.

Dem Anschließen möchte ich seit neuestem noch das NibbleBlog-System. Ähnlich aufbaut, mit ein wenig mehr optischem Schnick-Schnack ist es ein leistungsfähiges, schnelles und vor allem zeitgemäßes Blogsystem.

Windows 7/8 bootable USB Stick am Mac erstellen

Es kommt hin und wieder vor, dass ich ein Windows installieren muss/kann/soll. Damit ich nicht immer mit einem CD/DVD Medium durch die Gegend renne oder mir gar ein externes Laufwerk zulegen muss, erstelle ich mir einen USB-Stick der für mich die Installationsdaten bereit hält.

Das sich irgendwann in den letzten Jahren die Eigenschaft von Apples Bootcamp geändert hat mir einen USB Stick aus einer ISO-Datei oder einem Datenträger zu erstellen, muss ich ab und an suchen, was ich zu tun habe um mir die Funktion wieder zurück zu holen.

Zunächst einmal muss ich mir den Paketinhalt der von Bootcamp anzeigen lassen (rechts Maustaste; Paketinhalt nazeigen). Anschließend suche ich die Datei

info.plst

und kopiere sie auf den Schreibtisch um sie von dort aus zu bearbeiten. Ziemlich am Ende sucht ich nach „PreUSB“ und entferne das „Pre“. Nun wird die gespeicherte Datei wieder zurück in das Paket von Bootcamp kopiert und das ganze noch im Terminal über die folgende Zeile signiert.

„sudo codesign -fs – /Applications/Utilities/Boot\ Camp\ Assistant.app“

Ist das Getan hat man auch wieder den Fehlenden Eintrag zurück der es einem erlaubt am Mac einen installatiosfähigen Windows USB Stick zu erstellen.

Das dieser Text meine Gedächtnisstütze ist, kann sich jeder gern das folgende Video anschauen um das ganze nochmals nachzuvollziehen.

DNS Zonen anhand von Master finden

Ist man auf einem unixoiden System unterwegs und will sich auf einem großen Nameserver die Liste aller Zonen aus der Named-conf anzeigen lassen, welche einen bestimmten Master haben, so kann man das ziemlich elegant mit folgender Zeile tun:

grep -i -B 5 „IP-DES-MASTER-SERVERS“ etc/named.conf | grep -i  zone | grep -v \# | cut -d \“ -f 2 | sort -u

Es wird die named.conf ausgelesen und nach dem Master Server gesucht und zusätzlich 5 darüberliegende Zeilen mit ausgegeben. Diese Zeilen durchsuchen wir nach dem Wort „zone“ und filtern im zweiten Schritt alle auskommentierten Zeilen heraus. Damit fertig geht es weiter und wir trennen den Text nach Anführungszeichen und lassen uns nur alles dazwischen in geordneter Form ausgeben. So erhalten wir eine Liste die wir auch gern für andere Dinge verwenden können.

Vertrauenssache

Aufgrund eines der letzten Podcasts von Holgi, greife ich das Thema “ Vertrauen“ mal für mich auf.

Das Thema ist aus meiner Sicht ein sehr verkommenes. Oft wird es von vielen als Erkenntnis oder gar Totschlagargument genutzt. Jeder hat Angst davor es zu verlieren und ist damit in keiner günstigen Position objektiv darüber nachzudenken. Die Angst hinter dem Thema verleitet viele zu für mich nicht nachvollziehbaren Handlungen. So wird es oft voran geschoben als indirekte Drohung oder als Karussell innerhalb von Beziehungen eingebaut. Im Zweifelsfall ist es ein nicht greifbares, hoch brisantes emotionales Buschfeuer.

Dabei glaube ich dass wir in den vergangenen Jahren die Thematik völlig missinterpretiert haben und weiterhin Fehldefinieren werden.
Wenn ich auf die von mir gemachten Erfahrungen zurückblicken, dann ist Vertrauen meist im Zusammenhang mit Enttäuschungen und ähnlichen emotionalen Konstrukten genannt worden. Oft immer nur zum Schluss ohne eine konkrete Vorgeschichte. Dabei spielt Vertrauen an vielen – schon kleinen – verschiedenen Stellen eine entscheidende Rolle.

  • Ich vertraue darauf dass die Kassiererin mir das korrekte Wechselgeld herausgibt.
  • Ich vertraue darauf dass der Lieferant mir die von mir bestellte Ware bringen.
  • Ich vertraue darauf das mein Chef die „richtige“ Entscheidung für das Unternehmen und damit für meinen Arbeitsplatz.

Diese Liste lässt sich vermutlich beliebig weit fortführen und noch stärker ausbauen, wenn es in den privaten Bereich geht. Das überlasse ich aus strategischer Sicht dem geneigten Leser – ansonsten habe ich die Befürchtung das es emotional ungerührt wird.
Was ich damit sagen möchte ist, das in jeder Situation in der es Vertrauen geht immer beide Parteien involviert sind. In den vergangenen Jahren beobachte ich allerdings zunehmend, dass für einen „Vertrauensmissbrauch“ immer nur eine Seite verantwortlich gemacht wird. Das hat den Effekt, das meist auch nur eine Seite sich verantwortlich fühlt und gegebenenfalls – bei entsprechender persönlicher Eignung – diese Position für sich nutzt. Bei weniger Skrupel kann ein Arbeitgeber sich die Taschen voll stopfen während die Arbeitnehmer einfach nur schimpfen, enttäuscht werden, und von Vertrauensmissbrauch sprechen ohne allerdings selbst aktiv zu werden oder im Vorfeld gar Weichen zu stellen. Im Umkehrschluss entsteht bei den Befähigten, also diejenigen welche bereit sind Vertrauen bidirektional zu betreiben, ein gewisses ‚mehr‘ an Verantwortung die sie oft nicht bereit sind zu tragen. Das übt einen immensen Druck aus und bringt denjenigen der davon betroffen ist ein eine unangenehme Situation. Diese Menschen sind in der Regel  dazu geneigt „Führungspositionen“ einzunehmen (hiermit ist nicht der Abteilungsleiter gemeint, sondern derjenige der Verantwortung übernimmt und zu führen). Oft an für  sie  passenden Positionen (nicht zu vergleichen mit dahingezüchtetem Führungspersonal). Durch das breitflächige betreiben von Unidirektionalem Vertrauen wächst allerdings sowohl der Druck in Richtung dieser Personen als auch wie Verantwortung damit umzugehen. Demgegenüber steht sinkender Motivation, steigender Unmut aufgrund der des (direkt oder indirekt) gefühlten Vertrauensmissbrauchs und Unlust sich mit der Thematik auseinander zusetzen.  Gegebenenfalls ist sogar das Vertrauen in die ausführenden Personen, bei denen ist mittlerweile eine hohe Verdrießlichkeit eingekehrt ist, erschüttert und bedarf eines Aufbaus. Dieses Gesamtkonstrukt wird fälschlicherweise als Leidensweg interpretiert und führt dazu das Vertrauen/Vertrauensmissbrauch ein so heikles Thema ist.

Die Lösung dazu wäre denkbar einfach wenn an entsprechenden Stellen (ich spreche hier ganz bewusst nicht von jedem) eine gewisse Skepsis beziehungsweise kognitive Leistung erbracht werden würde vertrauen bidirektional zu halten. Das Selbstverständnis der eigenen Position und der des Gegenübers muss aufgelöst werden. Der verantwortliche/die Führungsposition muss aufhören den Lohn als gerechtfertigt anzusehen für seine schwere Aufgabe.

Im Alltag bedeutet das folgendes:

  • Ich gestehe der Kassiererin das Recht zu sich beim Wechselgeld verzählt zu haben und zähle ggf. selbst nach.
  • Ich ziehe in Betracht das etwas dazwischen kommen kann, wenn Menschen sich um eine Aufgabe kümmern und nehme es nicht persönlich wenn meine Bestellung nicht 100% dem entspricht was ich erwartet habe.
  • Ich gestehe meinem Chef zu nicht alles überblicken zu können und nehme selbst Teil an den Geschicken der Abteilung, der Aufgabe und/oder des Unternehmens.

Das bringt jeden in eine sehr vorteilhafte Ausgangsposition: Zum einen minimiert sich der Druck alles „richtig“ zu machen. Zum anderen entspannt es die eigene Position bei der Problemlösung mit externen Faktoren.

Wenn von einem Missverständnis ausgegangen wird ist Vertrauen aussen vor. Vertrauen zu missbrauchen ist eine Bewusste Handlung. Vertrauen zu jemandem zu haben eine Erfahrung. Wenn jemand kognitiv nicht in der Lage ist etwas kontinuierlich durchzuführen, dann kann ich nicht darauf vertrauen das er es tut. Jetzt kann ich nicht von einem Vertrauensmissbrauch gesprochen werden, da ich niemals die Erfahrung gemacht habe, dass mein Gegenüber überhaupt in der Lage ist. Anders herum kann mein Gegenüber mich  auch nicht in die Situation bringen von missbrauchten Vertrauen betroffen zu sein. Ich selbst werde von diesem Standpunkt aus meine Ansprüche an das Gegenüber verändern und erfahren, wie konstruktiv und funktionstüchtig dieses Konstrukt ist.

Zeit nutzen

Die meisten von uns werden es kennen: Arbeitswege!

Diese undankbare Zeit kann und wird von dem ein oder anderen konstruktiv genutzt werden. Zum einen Ist es möglich seinen Frust auf der Autobahn abzubauen indem man ein wenig mehr aufs Gaspedal gerückt. Alternativ kann man auch seinen fehlenden Schlaf in einen meditativen Zustand etwas ausbessern oder ganz einfach diese Zeit konstruktiv nutzen.

In meinem Fall komme ich – seit einigen Jahren mal wieder – in den Genuss morgens eine halbe Stunde auf der Autobahn verbringen zu müssen. Diese Zeit habe ich von Anfang an damit verbracht Podcasts zu hören. Ein absolut netter Nebeneffekt für mich ist, dass ich zum einen einer verschollenen Leidenschaft frönen kann und gleichzeitig das Gefühl habe etwas wie Weiterbildung zu erfahren. Da der Heimwegs sich ähnlich gestaltet, kann ich meinen Arbeitstag meistens mit dem wohligen Gefühl beenden etwas getan zu haben.

Die neue Technik (auch wenn diese gar nicht so neu ist) bringt einen zudem in die vorteilhafte Position während des Autofahrens seine Gedanken in etwas produktives umwandeln zu können. Siri und sonstige $Spracherkennungsprogramme helfen dabei seinen E-Mail Verkehr auch während der Autofahrt abhandeln zu können.

Wenn man jetzt meint, das ist nur etwas für workerholics, so sehe ich das vollkommen anders. Insgesamt befinden wir uns – meiner Ansicht nach – in einer sehr bequemen und dadurch verwöhnten Gesellschaft. Nur wenige schaffen es die zur Verfügung stehende Zeit und/oder die vorhandenen technischen Mittel so einzusetzen, dass Sie entweder die Zufriedenheit steigern, die anfallende Arbeit erledigen, oder gar einfach Spaß machen (was auch wieder zur Zufriedenheit gehört).

Viele meiner besten Ideen/Konzepte, Planungen und Korrespondenzen sind mit Hilfe von Spracherkennung und sonstigen kleinen Helfern entstanden. Sie versetzt mich in die Lage mein Gedankengut auf einfachste Weg in Text umzusetzen. Dieser ist sicherlich nicht perfekt-allerdings ist das Ergebnis eine ziemlich gute Skizze für mein eigenes Brainstorming. Insofern ist mein mentaler Arbeitsspeicher meistens leer und bietet Raum für Neues. Selbst dieser Blogeintrag ist morgens auf der Autobahn unter Zuhilfenahme von Spracherkennung auf dem Smartphone entstanden.

Schöne Welt

Volles Wochenende

Das Wochenende war gespickt von hohem Besuch und einem insgesamt zwar angenehmen aber vereinnahmenden Ganzen.

Das heißt für mich ab morgen zu Kreuze kriechen weil so viele Dinge liegen geblieben sind.

Hauptsächlich wohl eher Kleinigkeiten wie das fertigstellen ™ einer Webseite und das aufsetzen einer weiteren. Da gut sind aber bekanntlich Weile haben will, lasse ich jedem Projekt die selbe Qualitätspriorität zu kommen und so kommt es – vor allem bei Einfluss externer – zu Verzögerungen.

Ich freue mich daher auf die nächste Woche die wohl gespickt sein wird von vielen Umsetzungsstarts und positiven Impulsen.

20140202-215409.jpg