<!-- Begriffserklärung Beginn -->
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 [[Hackerspace]] (im Allgemeinen) interessieren, mögen dies dem [[HQ | Artikel ''HQ'']] als Beispiel des gelebten [[Hackerspace]]s des [[C3D2]] (und seinen Unterseiten) entnehmen.
<!-- Begriffserklärung Ende -->

==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.

== Siehe auch ==
* [[HQ]]

[[Kategorie:Projekt]]
