Samstag, 15. August 2009

Ein Hackerspace für Münster und Umgebung.

Kaffee ist eine wunderbare Sache, vor allem wenn man ihn trinkt während man Ideen ausarbeitet. Heute war wieder einer dieser Tage. Angestachelt vom CRE zum Thema Hackerspaces hat ein Freund von mir den Entschluss gefasst ein solches Projekt in die Wege zu leiten. Ein Name war schnell gefunden: Warpzone.

Die Grundidee der Warpzone ist es, ein angemessenes Umfeld für kreative Köpfe allen Alters und Geschlechts zu bieten in dem sie sich frei entfalten können. Ein Stück Kultur also. Während so ziemlich jede Subkultur einen Platz hat an dem sie Freitag und Samstag abends rausgeht und sich selbst feiert, sind Nerds und Hacker oft isoliert im stillen Kämmerlein. Das ist hin und wieder schon gewünscht aber sozialer Kontakt wird doch schon mal hin und wieder vermisst und unter Gleichgesinnten ist man oft zu kreativen Leistungen im stande die man selber nicht für möglich gehalten hätte.

Was soll die Warpzone werden? Atmosphäre hat eine ziemlich motivierende Kraft und genau das soll die Warpzone bieten. Wie die C-Base soll sie ihren eigenen Charakter entwickeln und sich mit ihren Besuchern weiterentwickelt. Ihr hab eine Idee wie man das Treiben in der Zone noch verbessern kann? Klasse, such dir ein paar Leute und Gründe eine Initiative die das ganze umsetzt. Außerdem soll mindestens einmal die Woche die ein Vortrag gehalten werden, jeder der etwas zu erzählen hat und etwas präsentieren will, sei es eine Neuentdeckung die man umbedingt bekannter machen will oder ein Projekt das man selber an den Start gebracht hat. Bringt euch ein und erschafft etwas!

Was soll die Warpzone nicht werden? Sie soll kein Stammtisch werden in der man sich ein oder zweimal im Monat trifft und redet was man denn alles so gemacht hat. Das kann man im Zweifelsfall auch in einer Kneipe. Sie soll kein dröger Raum mit ein paar Stühlen sein in der in Redner an einem Flipchart stundenlang referiert. Wer die Warpzone betritt verlässt die normale Welt.

Nun handelt es sich bei einem solchen Projekt um ein aufwändiges Unterfangen, braucht man doch Räumlichkeiten, Möbel und einfach angemessene Infrastruktur (Nerds brauchen Netz und Werkzeug). Vor allem brauchen wir aber erst einmal Leute und Ideen mit denen sich ein solches Projekt durchziehen lässt. Im Moment sind wir zwei und die Idee ist gerade mal ein paar Stunden alt. Aber bereits eine Menge Input der sich bereits realisieren lässt, jetzt fehlst nur noch DU!

Ernsthafte Interessenten erreichen mich am besten über Jabber oder Twitter (siehe mein Profil). Also meldet euch und schafft ein Stück Hackerkultur im kreativen Vakuum ;)

UPDATE: Wir habe inzwischen einen Chatroom auf irc.freenode.org #warpzone und eine Mailing Liste

Freitag, 14. August 2009

Auch ich leiste meinen Beitrag

Auch wenn ich der Partei nicht angehöre, konnte ich einem Remix des Plakates nicht widerstehen :D

Sonntag, 9. August 2009

Podcasts und Chaosradio Express

Heute will ich mal nicht von irgendetwas technischem schreiben sondern mich mal mit dem Medium Podcast befassen, genauer mit Chaosradio Express, einem "Spin-Off" der Mutter aller deutschen Nerd-Podcasts: dem Chaosradio. (vor allem da wir Tim damit bestechen sollen Folgen zu releasen :D)

Für mich selber wurde CRE eine ansprechende Alternative als es im original Chaosradio immer mehr um das Thema Überwachung und Politik ging. Versteht mich nicht falsch, das sind wichtige Themen, aber auf Weg in die Stadt oder im Zug hab ich ganz einfach auch mal gerne etwas was mich nicht total aufregt sondern "weiterbildet" (den Wutclown kann ich auch zuhause noch prügeln ^^).

CRE ist für mich ein Ansporn mich mit Sachen zu befassen auf die ich oft selber gar nicht so ohne weiteres komme, sei es nur weil das Lesen von Dokumentation in vielen Fällen einfach zu mühselig ist. Der Mensch ist halt ein faules Tier.

Was gefällt mir besonders gut an CRE? In erster Linie sind es die sehr technischen Themen. Meistens im Bereich Betriebssysteme oder Programmiersprachen (jeder der mich kennt weiß das ich da schnell in Sammelwut verfallen und teilweise schon selber die Übersicht verliere ^^). Hier bietet CRE eine ziemlich reichhaltige Sammlung auch an etwas esoterischeren Themen wie z.B. der Sprache Dylan (von der ich bis heute keinen lauffähigen Compiler gefunden habe -_-). Ein besonderes Highlight war für mich der C++ Podcast mit Pavel Mayer, vor allem wegen der grandiosen Buchtipps (mehr davon! Ich bin süchtig nach Fachliteratur!). Auch sehr spannend war der Podcast über FreeBSD. Ich muss zu meiner Schande gestehen das ich mich mit BSD erst befasst habe als sich einige wenige in der Linuxwelt gegenüber ZFS (gibt es auch einen CRE zu ;) in meinem Augen ziemlich blöd verhalten haben (Erläuterung was ich damit meine bitte in den Kommentaren nachlesen;) ). CRE hat mir hier eine sehr schöne Einführung in die BSD Welt gegeben.

Was verspreche ich mir von CRE? In erster Linie ist es Futter fürs Hirn wenn meine Hände mit etwas anderem beschäftigt sind (trainieren oder einfach unterwegs sein). Ich möchte mich am liebsten permanent weiterbilden und das überall wo ich bin. Podcasts bieten dort eine Möglichkeit Neugierde auf bestimmte Themen zu machen oder einen einfach mal in die richtige Richtung zu schubsen wenn man selber den Wald vor lauter Bäumen nicht sieht. (You are doing it WRONG!). Auch bieten sie einem ein gewisses Gefühl an Zugehörigkeit, man sieht halt das man mit seiner Nerdigkeit nicht ganz alleine ist. Ein Gefühl was man auf dem Lande gerne mal bekommt ^^. Sie sind ein Sprachrohr unserer Kultur, einem Haufen Coder, Admins und Katzenliebhaber. Vor allem woher diese Katzenbilder eigentlich kommen war mal sehr interessant zu erfahren (auch wenn ich den Podcast im Fitnessstudio gehört habe und im Fernsehen gerade eine Raubkatze eine Kürbis verspeist hat... ich glaube ich habe selten so doof gegrinst...i can haz pumpkin?).

Für die Zukunft würde ich mir sicher noch mehr technisches Zeug wünschen, das Problem ist da aber sicherlich das es auch an geeigneten Leuten gibt. Klar könnte ich mich mit Tim in einen Raum setzen und 2 Stunden über OpenSolaris quatschen, aber ob das Endresultat jetzt so brauchbar wäre stell ich einfach mal dahin. Oft sind es auch Podcasts die man gar nicht so auf dem Schirm hatte die einen begeistern, wie z.B. über das Thema Kaffee. Plötzlich rennt man von einem Laden zum anderen und wundert sich warum man das nicht schon viel früher gemacht hat. (Auch wenn ich immer noch kein schlechtes gewissen habe diese Instant Trinkpisse von Ja! zu trinken ^^)

So. Ich habe keine Ahnung ob das Bestechung genug ist. Ich habe wieder mal das Gefühl von Hölzchen auf Stöckchen gekommen zu sein und nur um den heißen Brei geredet zu haben. Aber bei Texten ohne geschweifte Klammern tu ich mich manchmal sehr schwer ^^.



Erm... Pic unrelated!

Dieses war der erste Streich, doch der ZWEITE folgt sogleich! (Incoming Blogkette FTW!)
Und "previously on Lo... erm Blogkette". Der Blogpost mit dem alles angefangen hat!

Montag, 20. Juli 2009

C Funktionen aus C# rufen

Für mich ist es immer wichtig das Sprachen nicht isoliert dastehen. Ich möchte von jeder Sprache oder Laufzeitumgebung ungehindert mit dem System kommunizieren. Da ich mich meistens auf diversen UNIX Systemen herumtreibe ist das größtenteils C. Gerade im Moment hat es mir C# ein wenig angetan und auch hier kann man ohne weiteres mit dem System schnacken. Darum hier mal ein kleines Beispiel das eventuell dem ein oder anderen weiterhilft. Das ganze wurde auf MacOSX mit Mono getestet läuft aber genauso gut unter *BSD und Linux.

Als erstes legen wir eine kleine Library an die die Funktion enthält die wir später aufrufen wollen.

//compile with gcc -dynamiclib test.c -o test.dylib
#include

int test(const char* s) {
printf("Printing from C: %s\n",s);
return 666;
}

Nichts dramatisches, unser Programm soll lediglich etwas Text übernehmen ausgeben und einen Integer an unser C# Programm zurück liefern. Nach dem kompilieren erhalten wir eine dynamische Bibliothek mit Namen test.dylib.

Unser C# Code ist ähnlich spektakulär aufgebaut:

using System;
using System.Runtime.InteropServices;

class PTest {
[DllImport("test.dylib")]
public static extern int test(string s);

public static void Main() {
Console.WriteLine(test("this is a test"));
}
}

Eine interessante Anmerkung nebenbei: test.dylib muss zum Zeitpunkt der Übersetzung nicht existieren.

Jetzt ist man also ohne weiteres in der Lage mit Libs wie z.B. libzfs oder libdtrace von C# aus zu kommunizieren um stark integrierte (aber logischerweise nicht mehr plattformunabhängige) Applikationen zu schreiben.

Samstag, 11. Juli 2009

"Spielt nicht mit Schmuddelkindern!"

Die Junge Union ist entrüstet über den Zuspruch den die Piratenpartei unter Studenten findet, spricht gar von einem Mangel an Werten. Es muss weh tun wenn man keiner mehr mit einem spielen will.

Sonntag, 28. Juni 2009

Elektronische Revolutionen: Mit TOR gegen Zensur

Gerade in den letzten Wochen macht vor allem ein Thema immer wieder die Runde: Zensur. Andere Länder leiden bereits unter ihr und unsere Regierung ist nun auch fröhlich dabei Stück für Stück eine solche Infrastruktur zu errichten und gleichzeitig aber Länder zu verurteilen die diese bereits haben.

Des weiteren werden wir im Moment auch Zeuge eines Volksaufstandes wie wir ihn noch nie in der Geschichte der Menschheit erlebt haben. Die Bevölkerung des Iran erhebt sich gegen das Regime und nutzt das Internet als Medium der Kommunikation in die ganze Welt. Da gerade der Iran über Kontrolltechnologien verfügt die wir uns in unseren wüstesten Albträumen nicht wünschen würden brauchen diese Menschen einen Weg diese Sperren zu umgehen. Einer der prominentesten ist sicherlich The Onion Router, ein anonymisierendes Netzwerk welches es Menschen ermöglichet Zensur zu umgehen und Information aus oder einzuschleusen. Das schöne an TOR ist: jeder kann praktisch mitmachen und ich will hier mal 3 Methoden vorstellen wie das geht.

Relays

TOR besteht aus vielen Knoten die Daten untereinander weiterleiten. Die Verbindung zwischen diesen Knoten ist in TOR komplett verschlüsselt und lässt praktisch kaum Rückschlüsse auf Absender und Ziel zu (sicher ist dies mit einem hohen technischen Aufwand auch zu bewerkstelligen). Ein solches Relay ist relativ einfach zu konfigurieren und spendet dem Netzwerk Bandbreite. Wichtig ist hierbei das von einem Relay aus keine Verbindung aus dem TOR Netzwerk heraus aufgebaut werden kann (man hat also nicht zu befürchten das kriminelle Inhalte durch ein Relay aufgerufen werden).

Eine Konfiguration für ein Relay wäre z.B. folgende:


SocksPort 0
DirPort 443
ORPort 80
ExitPolicy reject *:*


Das ganze lässt sich einfach über tor -f /pfad/zur/config starten. Man sollte allerdings sichergehen das DirPort und ORPort durch die Firewall erreichbar sind. (Protip: TOR als Solaris Zone ;) ). Mehr Infos zu Relays findet man auch auf der TOR Seite. Die ExitPolicy sichert das man von diesem Knoten aus das TOR Netzwerk nicht verlassen kann, diesen Eintrag sollte man auf keinen Fall weglassen wenn man sich nicht genau der Konsequenzen bewusst ist. Mehr dazu im Abschnitt über Exit Nodes.

Bridges

Diese speziellen Relays werden "geheim" gehalten. Da Regierungen gerne mal Zugangspunkte zum TOR Netzwerk blockiert verlangt es nach Zugangspunkten die in keiner Liste auftauchen. Durch diese kann man dann anonym ins Netz kommen um z.B. brisantes Material aus Krisengebieten herauszuschleusen. Anhand eines Fingerprints kann man sich mit solch einer Bridge verbinden.


SocksPort 0
ORPort 443
BridgeRelay 1
Exitpolicy reject *:*


Es gibt unter anderem eine Initiative die sich dafür einsetzt TOR Bridges für den Iran bereitzustellen.

Exit Nodes (VORSICHT!)

Diese Dinger sind nicht ganz ohne. An einem Exit Node wird das TOR Netzwerk verlassen und es werden Verbindungen ins unverschlüsselte Netz aufgebaut. Hierbei kann es sich auch um strafbares Material handeln, wer also nicht umbedingt unangemeldeten Besuch von der Polizei haben möchte sollte sich absichern oder halt darüber im klaren sein was hier passiert. Um einen Exit Node einzurichten entfernt man lediglich die Exit Policy aus der Relay Konfiguration. Ich übernehme keine Verantwortung für entstehende Schäden. YOU HAVE BEEN WARNED!Auch wenn die Beschlagnahmung eines TOR Servers in der Regel nichts bringt da keine verwertbaren Daten anfallen, sollte man sich nicht umgedingt darauf verlassen das dies als Argument gilt die Maschine nicht mitzunehmen.

Relay oder Bridge? Was hilft am meisten und wann?

Diese Frage habe ich mir zu Anfang auch gestellt. Bridges sind sehr wichtig, allerdings bringt es nicht viel dies vom heimischen DSL Anschluss aus zu machen, da deutsche Provider innerhalb von 24 Stunden die Netzverbindung kappen. Hat man allerdings das Glück eine feste IP zu haben oder einen Anbieter ohne 24h-Disconnect sollte man sich überlegem eine Bridge aufzusetzen. Bridges fressen im allgemeinen recht wenig Bandbreite, Relays hingegen stehen eigentlich permanent unter Strom und verteilen Daten, es ist also nicht unklug den Transferrate etwas anzupassen wenn man nicht komplett auf seine Verbindung verzichten will. Dies geht über z.B. folgende Konfigurationseinträge:


RelayBandwidthRate 50 KBytes
RelayBandwidthBurst 200 KBytes


In meinen Augen ist TOR ein immer wichtiger werdendes Netzwerk das es Menschen ermöglicht sich über staatliche Willkür hinwegzusetzen und eventuell sogar Leben zu retten oder gar ganze Regierungen zu stürzen. TOR wird heute schon genutzt um die Chinesische Firewall zu umgehen und wird hoffentlich immer mehr Menschen die in Unterdrückung leben die Möglichkeit geben sich Gehör zu verschaffen.



Dienstag, 16. Juni 2009

LLVM: Neue Compiler braucht das Land!

In letzter Zeit macht die Low Level Virtual Machine immer mehr von sich Reden. Blöderweise ist der Name doch ein wenig verwirrend und man denkt schnell an die Java VM oder dergleichen. In Wirklichkeit handelt es sich um ein Compilerframework (und eine eigene Sprache) welches einem sehr interessante Möglichkeiten eröffnet. Apple verwendet LLVM unter anderem um OpenCL zu realisieren.
Was mich besonders an LLVM interessiert sind vor allem die Möglichkeiten zur Analyse von Fehlern die es bietet. Hier mal gcc und clang (ein C/C++/ObjC Frontend für LLVM) im Vergleich.

$ gcc-4.2 -fsyntax-only t.c
t.c:7: error: invalid operands to binary + (have 'int' and 'struct A')
$ clang -fsyntax-only t.c
t.c:7:39: error: invalid operands to binary expression ('int' and 'struct A')
return y + func(y ? ((SomeA.X + 40) + SomeA) / 42 + SomeA.X : SomeA.X);
~~~~~~~~~~~~~~ ^ ~~~~~

Clang nagelt den Fehler auf Zeile UND Spalte fest, nebenher verbraucht er zum kompilieren auch noch weniger Speicher und ist auch noch schneller. Ziemlich beeindruckend.

LLVM wird sicherlich den Compilermarkt in der Opensource Welt nachhaltig verändern. So gibt es z.B. Ambitionen FreeBSD komplett mit Clang anstelle von GCC zu übersetzen.

Auch die Rubyfraktion will von LLVM profitieren und so experimentiert das MacRuby-Projekt ebenfalls mit LLVM um Ruby auf dem Mac zu beschleunigen.

Für alle die jetzt neugierig geworden sind gibt es hier einen interessanten Tech Talk zum Thema, genauso wie einen Podcast vom Chaosradio Express