CouchDB als Versionsverwaltung?

Freitag, 17 Juli 2009, 21:58 von Blackflash

Könnte man auf Basis von CouchDB nicht eine verteilte Versionsverwaltung implementieren? Mir sind einige Gedanken gekommen, weshalb die Idee funktionieren könnte und welche Vorteile sie bietet.

Bereits aus der Beschreibung von CouchDB geht hervor, dass CouchDB auf schemafreien Dokumenten (also weshalb nicht Programmcode?) arbeitet. Außerdem lassen sich mehrere CouchDB-Server (also warum nicht einen[...]



Internetbasierte Kennwortverwaltung

Samstag, 21 März 2009, 02:57 von Blackflash

Seit einigen Tagen ist das Thema der internetbasierten Kennwortverwaltung bei mir wieder aktuell. Wer sich genauer auf meinem Blog umgeschaut hat, wird sicherlich das Projekt OpenPassword entdeckt haben, was meinen damaligen Prototypen der internetbasierten Kennwortverwaltung darstellt. Bevor ich aber diesmal Code schreibe, werde ich die Motivation und einige andere Ideen, die ich für dieses Pro[...]



Freitag, 10 Oktober 2008, 15:24 von Blackflash

Als ich gestern Abend versuchte, auf Wunsch eines Benutzers, ein Projekt mit dem Namen "Bifrost" zu registrieren, wurde ich darauf aufmerksam, dass es bereits ein Projekt mit demselben Namen bei SourceForge gibt. Kurzerhand habe ich beschlossen, das Projekt in Biphrost um zu benennen. An der Aussprache ändert sich nichts, nur an der Schreibweise, die übrigens an PH(P) erinnern soll. Heute hab[...]



Donnerstag, 09 Oktober 2008, 15:06 von Blackflash

Ab sofort lässt sich Bifrost runterladen. Es haben sich einige Funktionalitäten verändert:

  • Dispatcher:
    • Fehler beim Finden von Einstiegspunkten wurde korrigiert.
    • Ein übergebener URL "/" wird nicht mehr zu "/index".
  • Application-Klasse:
    • Basis-URL wird nicht mehr übergeben.
    • Include-Pfad wird nicht verändert.
    • Das Setzen eines Dispatchers ist nun möglich.
  • MyApp-Klasse:
    • Include-Pfad wird verändert für den Aut[...]


Biphrost: Application

Donnerstag, 09 Oktober 2008, 14:45 von Blackflash

Bei der Application-Klasse handelt es sich um das Herzstück jeder Bifrost-Applikation. Die Funktionalitäten sind schnell beschrieben:

  • Die Verwaltung von Pfaden (Templates, Einstiegspunkte, Applikationscode).
  • Verwaltung und Wahl eines geeigneten Dispatchers (i.d.R. aufbauend auf dem Pfad der Einstiegspunkte).
  • Verwalten eines prototypischen Transfer-Objekts.
  • Transfer-Objekte vorbereiten und nachber[...]


Biphrost: Template

Montag, 06 Oktober 2008, 18:11 von Blackflash

Wie fast jedes Framework verfügt auch Bifrost über eine Template-Engine. Im Gegensatz zu vielen anderen Entwicklungen stellt die Template-Klasse aus Bifrost lediglich einen leichtgewichtigen Wrapper für PHP-Templates dar. Ziel ist es nicht, möglichst viele Funktionalitäten bereitzustellen, sondern einen Container anzubieten, der in den Einstiegspunkten mit Daten gefüllt wird und am Ende der [...]



Biphrost: Dispatcher

Montag, 06 Oktober 2008, 17:26 von Blackflash

Der Dispatcher wurde, wie der Name bereits suggeriert, zum Abfertigen von Anfragen entworfen. Dazu benötigt er den Einstiegspunkt-Algorithmus, der in einer iterativen Variante implementiert wurde und somit verständlicher ist als die rekursive Variante und sich in der Methode findEntrance befindet:

$components = ($uri == '/' ? array('index') : array_filter(explode('/', $uri))); $dir = $this->[...]


Montag, 06 Oktober 2008, 00:01 von Blackflash

Ab sofort ist es möglich, Bifrost runterzuladen.
Die Änderungen beinhalten:

  • Dispatcher:
    • Der Einstiegspunkt-Algorithmus wurde durch eine iterative Variante ersetzt.
    • findEntrance ist nun öffentlich, was für Rechtesystem Relevanz hat.
    • URLs dürfen nur noch ohne Query-Strings übergeben werden.
    • Sollte ein Einstiegspunkt nicht existieren, wird das Transfer-Objekt nicht abgefertigt.
  • Transfer hat ein dispat[...]



Biphrost: Transfer

Freitag, 03 Oktober 2008, 19:02 von Blackflash

Die eigentliche Aufgabe der Transfer-Komponente besteht im Transport von Daten zwischen verschiedenen Schichten, weshalb die die Transfer-Klasse das Data-Transfer-Object-Entwurfsmuster implementiert. Ein wesentlicher Aspekt dieses Entwurfsmusters ist das Fehlen jeglicher Funktionalität, wenn man vom Zugriff und dem Halten der Daten absieht.
Nebeneffekt dieses Konzepts ist das Vermeiden von g[...]



Freitag, 03 Oktober 2008, 13:16 von Blackflash

Dieser Artikel soll einen kurzen Überblick über die wesentlichsten Aspekte von Bifrost liefern. Es handelt sich dabei um folgende Themen:

  • Ordnerstruktur
  • Komponenten
  • Abarbeitung von Anfragen


Nach dem Entpacken des Bifrost-Archivs erscheint folgende Ordnerstruktur:

  • application: Sammelordner für eine bestimmte Applikation.
  • application/code: Code für die Applikation und Bibliotheken sind Inhalt [...]