Gruppieren mit Couchdb

Wird eine View mit Reduce-Funktion requested. Erhält man standardmäßig nur EINEN Ergebmissatz. Baut man sich eine Reduce-Funktion, die die Dokumente nach dem Attribut “type” gruppiert und die Dokumente pro Gruppe zählt, muss man zusätzlich den Query-Parameter group auf true setzen, Sonst erhält man nur einen Datensatz.

Kommt pouchdb zum Einsatz, muss ggf. die Datei pouchdb.mapreduce.js für das group Attribut erweitert werden.

Node-Management mit nvm

vim mit pathogen erweitern

Um die Spannung vorwegzunehmen folgt ein Auszug aus meinem Home-Verzeichnis:

In der Datei .vim/vimrc landet meine individuelle Konfiguration. Die Datei .vimrc ist mit dieser verlinkt.

Die Erweiterung pathogen sorgt für das Einbinden der Erweiterungen im Verzeichnis .vim/bundle. pathogen selbst wird über die Verlinkung .vim/autoload/pathogen.vim und dem folgenden Eintrag in der Datei .vimrc eingebunden.

Ich speichere alle meine gesammelten Erweiterunge im Verzeichnis .vim/bundle-available. Aktivierte Erweiterungen werden unter .vim/bundle verlinkt.

Mein Verzeichnis unterliegt der Versionskontrolle git wobei die Erweiterungen unter .vim/bundle-available und .vim/pathogen als submodule eingebunden sind.

Es folgen nun noch Einstellungen aus meiner Datei .vimrc, die ich nicht mehr missen möchte:

Ein Projektverzeichnis mit vagrant

mkdir ~/dev && cd ~/dev
# app ist der Projektname webapp ist das documentroot
mkdir -p cookbooks app app/webapp app/vagrant app/vagrant/aptcache apt/vagrant/aptcache/partial

cd ~/dev/cookbooks
git clone https://github.com/digitalpioneers/public-cookbooks.git
mkdir ~/dev/cookbooks/opscode-cookbooks && cd ~/dev/cookbooks/opscode-cookbooks
git clone https://github.com/opscode-cookbooks/apache2.git
git clone https://github.com/opscode-cookbooks/mysql.git
git clone https://github.com/opscode-cookbooks/php.git
git clone https://github.com/opscode-cookbooks/apt.git
git clone https://github.com/opscode-cookbooks/nginx.git
# Für die Passwortgenerierung für mysql
git clone https://github.com/opscode-cookbooks/openssl.git

cd ~/dev/vagrant
vagrant init
vim Vagrantfile

[Wird Fortgesetzt]

visudo

Die Einstellungen des Befehls sudo werden in der Datei /etc/sudoers abgelget. Wird die Datei fehlerhaft konfiguriert, kann das schnell dazu führen, dass man sich aus dem System aussperrt. Um das zu umgehen, sollte man die Datei nur mit

editieren. Alternativ kann man sich auch eine zweite Konsole mit Adminrechten aufmachen.

In der Datei /etc/sudoers wird konfiguriert, wer welche Befehle mit sudo ausführen darf. Zusätzlich kann hier eingestellt werden, ob eine Passwortabfrage erscheinen soll. Überschneiden sich zwei konfigurationen, gilt: “der letzte Eintrag sticht”.

Die Änderungen werden mit folgendem Befehl übernommen.

Eine basebox für vagrant erstellen

Für das Erstellen einer basebox (hier: Ubuntu 12.04 – Precise Pangolin 32 Bit) müssen wir uns als erstes ein jungfreuliches System installieren. Bei der Einrichtung der Box konfigurieren wir eine Festplatte mit 40GByte oder mehr von variabler Größe (“dynamisch alloziert”). USB, Audio, etc. können ggf. deaktiviert werden. Als Netzwerk wählen wir NAT (für die Server werden später die entsprechende Ports Weitergeleitet – porforwarding).
Weiterlesen

Rechte und Besitzer für das “DOCUMENTROOT-Verzeichnis” setzen

Mit folgendem Script können die Datei- und Verzeichniszugriffsrechte, sowie die Besitzer und Gruppen des “DOCUMENTROOT” rekursiv gesetzt werden.

Für den Server heißt das, dass das Skript im Zweifelsfall nach jedem Update ausgeführt werden muss. Handelt es sich im Falle des Servers um ein Produktivsystem, mag das akzeptabel sein, im Falle eines Entwicklungsservers, auf dem kontinuierlich Dateien und Verzeichnisse angepasst und hinzugefügt werden ist das ständige Ausführen des Scriptes eher nervig.

Um der Zugriffsrechte im Entwicklungssystem Herr zu werden gibt es verschiedene Strategien.

Den Apache auf den User des Entwicklers umstellen

Spielt die Sicherheit keine Rolle und gibt es nur einen Entwickler kann man den Apache einfach unter den User des Entwicklers laufen lassen

Um für verschiedene vhosts unterschiedliche user einzurichten bietet sichmpm_itk_module an.

Einsatzt des SGID Bit und umask

Das SGID Bit angewand auf die Gruppe eines Verzeichnisses bewirkt, dass neu angelegte Verzeichnisinhalte nicht die Gruppe des Users erben, sondern die Gruppe des Kontainers.

Mit umask können die Zugriffsrechte des aktuellen Prozesses eingestellt werden. Es werden die Bits angegeben, die nicht gesetzt werden sollen (002 & 0777 = 0755).

Hier stellt sich noch die Frage ob man ein Verzeichnis oder die IDE mit einer speziellen umask verknüpfen kann.

Ein Entwickler

mrx müßte mit umask 027 oder nachträglichem chmod -R arbeiten

Mehrere Entwickler

mrx müßte mit umask 207 oder nachträglichem chmod -R arbeiten