Sunday, December 13, 2009

Users created per day in drupal

SELECT 
DATE(FROM_UNIXTIME(created)) INTER, 
count(*) USERS
FROM users 
GROUP BY DATE(FROM_UNIXTIME(created))
ORDER BY DATE(FROM_UNIXTIME(created)) DESC

Saturday, October 24, 2009

Information Management beyond Business and Analysts

Informationsverarbeitung abseits der Trampelpfade.
Die Funktionen, die nur Programmiereren zur Verfügung sethen den erweiterten Endbenutzern zur Verfügung stellen. Ohne dabei jedoch eine Programmierstprache mit der verwendeten Programmiersprache zu entwickeln. Keine neues Metamodell im Metamodell.
Die Erweiterbarkeit der Lösung muss der Lösung immanent sein.
z.B. Ist JSF (Java Server Faces) eine nette Art Web-Formulare zu entwickeln. Einmal entwickelt wird jedesmal ein Programmierer benötigt um ein Feld im Formular zu ergänzen. Solche Werkzeuge gehen von der Metapher der Bau-Architektur aus. Dabei wird die Domäne Information in ein Korsett gezwängt das Ihrer nicht gebührt. Informationen sind Informationen und keine Materie. Es ist eine adequate Umgebung notwendig um die Information als solche zu behandeln. Flexibilität und nicht Starrheit ist gefragt.
Unter dem Schlagwort "Business Intelligence" wurde in den leztten Jahren ein Weg beschritten der Endbenutzern mehr Freiheitsgrade einräumt.
Mit OLAP (Online Analytical Processing) wurde neue Konzepte eröffnet und der Bereich der Wissensrepräsentation um zwei wichtige Bereiche erweitert – Domänen und Hierarchien. Mit den Bestrebungen ROLAP wurden diese neuen Erkenntnisse versucht in die relationale Welt zu integrieren.
Das relationale Modell ist der heutige de-fakto Standard für Wissensrepräsentation. Sind jedoch die heutigen Umsetzungen des relationalen Paradigmas zeitgemäß oder durch den "Markt" geprägt.
Feierte die "objektorientierung" in den letzten Jahren mit Java und C# ihren Siegeszug in der Entwicklung, so ist aktuell der Trend zu Flexibilität innerhalb dieser Domäne zu beobachten. Objektorientierung ist sehr effizient wenn es sich um die Umsetzung von paradigmatisierten Wissen handelt. Objekte haben Attribute und Methoden. Solange diese im Umfeld von Bau-Architktur (Software-Architektur) Verwendung finden sind diese auch entsprechend effizient. Objekttypen (Klassen – siehe Sokrates) sind Vorlagen zur industriellen Fertigung von Bauelementen. Damit erhält die Industrialisierung in der Software-Entwicklung die notwendige Innovation. Für Wissenrepräsentation sind diese Modelle jedoch zu unflexibel. Wer legt fest wie die Klasse zur Beschreibung eines Ziegels aussieht? Welche Attribute hat die Klasse Ziegel zu haben? Ist die Farbe für den späteren Bewohner des Baus wichtig, so ist der Dämmwert für den Förderungsantragsteller ein weseltliches Beschreibungskriterium. Jedoch ist für den Architekten die Dimension des Bauelements vorrangig.
Die Welt der objektorientierten Sichtweise serialisiert bzw. persistiert die Informationen des Objekts.
Durch Serialisierung können Objekte sterben und wieder zum Leben erweckt werden. Persistierung ist die Umschreibung das Wissen eines Objekts abzulegen.
Dies erlaubt weder Dekduktion noch Induktion. Aus dem Standpunkt der Wissenrepräsentation ist Objektorientierung die Haftanstallt der Information.
Das relationale Modell per se erlaubt eine deduktive Informationsgewinnung. Durch Einführung des Entity-Relationship Modells wurde die Univeralität des relationalen Modells auf seine Rolle als Persistenz-Topf vorbereitet. BI (Business Intelligence) hat sie aus dieser Rolle zum Teil wieder befreit.
Wie können "UPDATE" und "CREATE", "ALTER" Statements dem Benutzer präsentiert werden.
Informationssysteme sollten nicht nach Function Points bemessen werden, sonder nach "Information Points".
Wie rasch kann eine Änderung bzw. Erweiterung durch den Endbenuzer herbeigeführt werden?
Drupal gilt zwar als CMS (Content Management System), ist im Konzept jedoch viel mehr als das. Unter Verwendung des Moduls CCK (Content Construction Kit) verbirgt sich eine Oberfläche mit der dem erweiterten Endbenutzer die Möglichkeit eingerämt wird die Datenstruktur zu ändern. Mittels CCK werden an die relationale Datenbank "ALTER" und sogar "CREATE" Anweisungen gegeben. Eine semantische Zwischenschicht übernimmt die Aufbereitung für die weitere Informationsbearbeitung.
Ähnlich dem "Naked Objects" Ansatz werden "graphische" Benutzerschnittstellen zur Laufzeit erstellt und fordern den Benutzer auf seine Informationen in strukturierter Form bekanntzugeben.
Mit welchen Aufwand können flexible Ansätze mit vertretbarem Aufwand in kommerziellen Projekten umgesetzt werden?
Und wie kombiniert sich das alles mit heutigen defacto Standards wie XML und Service Orientierter Architektur? Schnittstellen sind definiert und ermöglichen Verbindungen. Verbindungen ermöglichen Bauwerke. Gewölbe sind stabil. Setzen wir Schlusssteine oder suchen wir nach Erkenntnisfortschitt?
Warum dann nicht einfach "Wiki". Etwas verstehen bedeutet etwas zu strukturieren. Strukturieren bedeutet Relationen aufzubauen. Beziehungen setzten Schnittstellen. Durch schneiden entsteht Redundanz.