Metalab OS
Das Metalab-Betriebssystem ünterstützt Verwaltung und Betrieb des Metalabs sowohl physisch als auch in Software.
Die Softwareseite besteht as of Oktober '06 aus zwei Teilen
- Server, Netzwerk, Directory usw: Metacore
- Webapps für Profile, Calendaring, Inventar usw in Django (Python) -- läuft dzt. noch nirgends öffentlich, um reinzuschauen siehe "Entwicklungsumgebung" weiter unten
Plan
Der MOS Masterplan ist mittlerweile outdated
Aufgabengebiete
- Mitgliederverwaltung (Erfassung, Mitgliedsbeiträge, usw.)
- Zugangskontrolle (Kartenleser udgl.)
- Shutdown-Plan (was machen wenn man der letzte ist der das Lab verlässt)
- Verwaltung der Jabber Mitgliederlisten und Gruppen. (wer Mitglied wird hat sofort alle Members in seiner Kontaktliste)
- Single-Sign-On für alle Metalab Services (geteilte userdatenbank zwischen den applikationen)
- Anträge an die GV sollen vorbereitet, diskutiert und ev. auch abgestimmt werden können
- Inventar-Datenbank, Reservierung/Ausleihung von Gegenständen usw
- Eventplanung (Raumreservierung usw)
- Lokale Infofeeds: Nächste U-Bahn/Nachtbus, verfügbare Citybikes, Wetter, usw
- Umgebungs-Google Maps Mashup
- Irgendwas um die kommunale Pizzabestellung zu vereinfachen :)
Medienserver
- Playlistverwaltung, Last.fm-Logging
- Medienrepository (natürlich nur CC-lizensiertes!)
Implementation
- Grundstock im Python MVC-Framework Django
- Offen und interoperabel. Das Metalab OS definiert sich über seine Auswirkungen auf den physischen Raum, nicht durch die spezielle Softwareimplementation
- Lose Kuppelung durch externe Dienste auf die durch mehrere Applikationen in verschiedenen Sprachen zugegriffen werden kann (LDAP, Datenbank, ...). Es soll ein Core system geben das die Userverwaltung übernimmt und einige andere Applikationen die teilweise direkt auf die Datenbank zugreifen (und vielleicht auch Django-Applikationen sind), teilweise looser über REST interfaces etc. mit dem Rest des MOS interagieren.
- REST Web-App Schnittstelle, ev. auch XMLRPC/SOAP.
Coding Standard
- Projektsprache: Englisch
- Indentation: 4 Spaces
Entwicklungsumgebung
Es existiert ein Subversion repository (https://ma.metalab.at/svn/mos) und ein Trac Wiki/Issue management system (https://ma.metalab.at/trac/mos/wiki). Das Trac ist ein guter Anfangspunkt weil dort beschrieben ist wie man den source downloaded und lokal einrichtet. Wer mitmachen will (und daher einen Account braucht) wendet sich bitte an Meta.
Falls Ihr euch nicht mit dem Einrichten von Python, Django und deren Dependencies spielen wollt, verwendet bitte space.in.metalab.at. Hier ist alles schon installiert und es muss lediglich ein SVN checkout gemacht werden und settings.py mit ein paar Einstellungen wie einem anderen Port für den integrierten Entwicklungsserver versorgt werden. Zugang auf space.in.metalab.at per SSH hat jeder, der einen Metacore Benutzer hat.
REST-Webservices
- Ressourcen haben jeweils eigene, unveränderliche URLs:
http://things.metalab.at/12f892b5 http://people.metalab.at/c3o http://spaces.metalab.at/novitaeten
- Auf GET-Requests hin werden die Daten je nach Accept-Header (ev zus. je nach "Dateiendung" od. Parameter) in verschiedenen Formaten ausgegeben: HTML+Microformats, XML/RDF [zb FOAF für Personen], RSS/ATOM? etc.
- Mit passenden HTTP-Authentication Headern darf man auch DELETEn und PUTen.