Software Hackerspace
Im Artikel handelt es sich nicht um eine "Hackerspace" an sich. Es handelt sich um ein Projekt, dass die Bezeichnung Hackerspace trägt.
- Alle, die sich für einen Hackspace (im Allgemeinen) interessieren, mögen dies dem Artikel HQ als Beispiel des gelebten Hackspaces des C3D2 (und seinen Unterseiten) entnehmen.
Problem
Hacker A hat auf seinem lokalen Fileserver viele größere (> 1GB) Dateien, die Hacker B gerne hätte. Die Internet-Verbindung von A hat nicht genug Upstream die von B nicht genug Downstream, um bequem direkte Kopien zu ermöglichen. Hacker A und Hacker B kennen sich aber persönlich und treffen sich regelmäßig an einem Ort, an dem eine LAN-Verbindung möglich ist (oder WLAN) und beide ihre Laptops mithaben.
Hackerspace
Hackerspace ist eine XMPP/XMLRPC-basierte Anwendung, die auf dem Laptops von A und B läuft. A teilt Hackerspace den Pfad zu seinem lokalen Fileserver mit (via file-, ftp-, http-, sftp-, smb-URLs) und freien Speicherplatz auf seinem Laptop mit. Im Normalfall nutzt Hackerspace die JID seines Besitzers und ist so von außen erreichbar, die Priorität ist so festgelegt, dass normalerweise keine Nachrichten an Hackerspace gehen. Sollte dies doch einmal der Fall sein, sollte Hackerspace den Absender unterrichten, dass der Besitzer die Nachricht nicht bekommen hat und/oder die Nachricht seinem Besitzer weiterleiten, wenn dieser das nächste Mal online ist. Die Ressource von Hackerspace sollte darauf hinweisen, worum es sich handelt.
Hacker B kann nun mittels seiner lokalen Hackerspace-Instanz (HsB) die von A freigegebenen Dateien durchsuchen. Das Interface hierfür kann z.B. in einem lokalen Web-Server bestehen, alternativ ist auch GTK, QT etc. möglich. Wenn B eine Datei sieht, die er gerne haben möchte, bittet er die Hackerspace-Instanz von A (HsA) diese Datei auf dem Laptop von A abzulegen. Hierbei kann eine maximale Hinterlegungsdauer angegeben werden, die A von vorneherein limitieren kann.
Wenn sich A und B das nächste Mal treffen und sich im gleichen Netzwerk befinden, sollten die Hackerspace von A und B dies über eine Heuristik selbst herausfinden und dann bei ihren jeweiligen Besitzern nachfragen ob der Transfer eingeleitet werden soll (dies sollte netzbasiert ausgeschaltet werden können). Ist der Transfer vollständig werden die übertragenen Datei automatisch vom Laptop von A (nach optionaler Bestätigung) gelöscht.
Queues und Prioritäten
Eine Hackerspace-Instanz sollte Queues implementieren, die es ermöglichen, dass Transfers vom Fileserver zum Laptop, die aufgrund mangelden freien Speichers nicht ausgeführt werden können, später ausgeführt werden. Desweiteren ist es sinnvoll, wenn Hackerspace über die Eckdaten des Heimnetzes und des LANs Bescheid weiß um so Transfers besser planen zu können.
Außerdem ist ein Modus sinnvoll, bei dem Transfers im Heimnetz, erst kurze Zeit bevor A zum Treffen mit B aufbricht, ausgeführt werden. Damit ist es möglich Dateien, die von mehreren Hackern gewünscht werden, höher zu priorisieren. Selbstverständlich ist es dazu nötig, Hackerspace mitzuteilen, wann man (und evt. wohin) aufbricht.
Der Besitzer einer Hackerspaceinstanz sollte stets in der Lage sein, lokal Prioritäten zu manipulieren.
Wenn genug Speicherplatz verfügbar ist, müssen Prioritäten nicht beachtet werden.
Visionen
Es ist vom Design her klar, dass Hackerspace nicht nur für 2 Hacker und nicht nur in einer Richtunge funktioniert. Bei mehreren Anfragen von mehreren Hackern sollte es jederzeit möglich sein, Anfragen abzulehnen
Hackerspace kann jederzeit Kopieranfrage
Sicherheit
Beim Verfolgen von URLs achtet Hackerspace stets darauf, dass der freigegebene Platz nicht verlassen werden kann.