Zusammenfassung: Bildung einer Gemeinschaft zum Erlernen von Open Source Entwicklung über das Internet mit der Programmiersprache Ruby
Ich lerne seit einiger Zeit Ruby da ich von PHP auf Ruby on Rails Webprogrammierung umgestiegen bin und durch Ubuntu bin ich auch dazu gekommen Linux sogar mal für längere Zeit zu installieren und auch tatsächlich zu benutzen ☺
Jetzt ist es leider so das ich noch nicht gut Ruby kann und ich habe noch nie bei einem Open Source Projekt mitgearbeitet, würde es aber gerne tun. Und da dachte ich mir, es gibt bestimmt noch ein paar Andere ausser mir die auch gerne Ruby lernen und ein eigenes Open Source Programm machen würden, damit sie auch mal bei anderen Open Source Projekten mithelfen können, oder sogar selbst so ein Projekt aufziehen möchten.
Ich habe mir das so vorgestellt. Ein oder mehrere erfahrene Ruby und Open Source Programmierer die schon einmal zusammen mit Anderen an einem Open Source Projekt gearbeitet haben, agieren als Mentor für Leute die gerne mehr über Ruby und Open Source Entwicklung lernen würden.
Wir würden für das Software Projekt zum Beispiel assembla.com benutzen, dann hätten wir ein Wiki, Trac und ein Subversion repository kostenlos zur Verfügung. Wir würden einen IRC Chatraum erstellen, in dem wir uns alle während dieses Projektes so oft es geht einloggen, so das immer jemand zum Reden zur Verfügung steht wenn es Schwierigkeiten gibt, oder einfach auch mal nur um sich besser kennen zu lernen.
Als Basis dient das Ruby Programm welches ich gerade schreibe, SharpFlickr (Arbeitstitel). Mit nur 120 Zeilen kommentiertem Code ist es denke ich eine gute Grundlage.
Dieses Makro ist nicht verfügbar
Dieses Makro ist nicht verfügbar
Es sucht auf Flickr.com nach Tags, erstellt eine Webseite die mit einem Beliebigen Webbrowser angezeigt wird und bis zu 10.000 Bilder einfach und ohne viel drum herum anzeigt (darstellung mit CSS anpassbar). Ich bin gerade dabei auch noch Yahoo und Google Bildersuche einzubauen. Der Vorteil des Programmes ist das man nicht nur 20 Bilder, sondern gleich hunderte oder tausende schön übersichtlich sieht ohne dauernd auf einer Webseite weiter blättern zu müssen. Ein kleiner Teil des Programmes ist in C# geschrieben, aus Geschwindigkeitsgründen. Das sollte jedoch keine Hürde sein, ich hatte noch nie zuvor C# benutzt und habe in einer Stunde durch bloßes herumprobieren mit Mono Develop ein Programm geschrieben welches über die Flickr API Bilder per Tags sucht (basierend auf der FlickrNet Bibliothek). Und der Geschwindigkeitsvorteil war enorm, 5 Minuten mit Ruby und 3 Sekunden bei der gleichen Anfrage mit C#. Das lag aber weniger an Ruby denke ich, sondern daran das die Ruby Flickr API implementation einiges zu wünschen übrig lässt. Natürlich ist es mit C# trotzdem schon prinzipiell ein wenig schneller. Sobald es da etwas vernünftiges für Ruby gibt, ließe sich der C# Teil problemlos ersetzen, ich habe alles versucht so modular wie möglich aufzubauen (und natürlich auch alles schön Kommentiert). Die Konfiguration wird in einer YAML Datei gespeichert, momentan kann man dort eingeben welcher Webbrowser benutzt werden soll und wie viele Bilder aus den Suchergebnissen angezeigt werden sollen (bis zu 10.000).
Dieses Makro ist nicht verfügbar
Wer möchte kann sich hier auch noch ein kurzes Video anschauen:
http://chrisodawas.de/fixed/ruby/sharpflickr/vid1.ogg
(Zum Video: Die Suche beim zweiten Suchbegriff dauert so lange weil das Programm momentan immer nach 10.000 Bildern sucht, egal was man eingestellt hat, es werden dann nur weniger Bilder angezeigt als gefunden wurden. Und zum zweiten Suchbegriff gab es eine Meeeenge Bilder, aber dafür geht es dann doch recht flott)
Ich denke es ist einfacher zum Lernen an etwas zu arbeiten wo es schon fest definierte Ziele gibt (Programmieren eines Programmes das Online nach Bildern sucht) und schon eine Basis da ist. Als zweiten Teil könnten dann die Leute die wollen, wenn sich die Gruppe mittlerweile besser kennt und gut zusammenarbeitet Ideen sammeln und eine neue Idee für ein Programm entwerfen und dieses dann umsetzen. Muss aber nicht so gemacht werden, wenn sich nicht genug Interessenten für das Bilder Programm finden, kann man ja auch gleich etwas anderes machen, dann dauert es halt etwas länger bis man anfangen kann.
Ich würde mich freuen wenn ich hier ein paar Leute finden könnte die Interesse an so etwas hätten. Es wäre auch nett wenn jemand Leute auf diesen Beitrag aufmerksam macht, falls jemand einen Bekannten hat der Interesse am Ruby Lernen hat oder als Mentor agieren möchte.
Ein Mentor sollte uns erst einmal sagen wie wir am besten Arbeiten sollten, uns erklären können wie wir mit Subversion zusammen am Quellcode Arbeiten und natürlich wie so eine Arbeit überhaupt aufgeteilt wird. Er muss nicht alles haarklein erklären, bei einem umfangreichen Thema kann natürlich einfach ein Link zur Dokumentation gegeben werden und bei Problemen halt einfach als Ansprechpartner parat stehen.
Auch programmieren müssen der oder die Mentor/en, ich habe es mir so gedacht das jemand erst einmal selbst versucht ein ihm zugeteiltes Problem zu lösen und dann sieht sich ein Mentor seinen Quellcode an und sagt ihm was man hätte besser machen können und vor allem, warum es besser wäre es so zu machen. Also nicht nur sagen, das hier ist effektiver, sondern auch erklären warum es denn effektiver ist. Ich denke ein kleines Ruby Programm schreiben kann jeder schon nach 10 Minuten Lernen, aber man weiss nicht wie man es besser machen könnte und das wird einem auch nicht wirklich in Büchern oder Tutorials beigebracht. Dort steht dann meisstens nur, man könnte das hier viel besser lösen aber zur Anschaulichkeit machen wir es so.
Dies sollte aber alles vor allem Spaß machen, mit so wenig Zeitdruck wie möglich. Es sollte kein Problem sein auch jemanden mitmachen zu lassen der vielleicht nur einmal die Woche ein paar Stunden Zeit hat. So jemand würde dann einfach weniger Aufgaben bekommen, oder zumindest welche die nicht Zeitkritisch sind. Zusatzfunktionen zum Beispiel die nicht für andere Teile des Programmes kritisch sind und so zu einem Entwicklungsstopp führen würden. Es soll auch nicht in erster Linie ein Programm erstellt werden, sondern die Entwicklung eines solchen über das Internet mit Anderen gelernt werden.
Wer mitmachen will, sollte aber zumindest schon ein klein wenig mit Ruby programmieren können. Das gröbste kann man gut an einem Abend lernen, das sollte jeder alleine schon getan haben.
So, freiwillige vor! Auch von Leuten die nicht mitmachen wollen wäre es interessant zu hören was ihr darüber denkt und welche Tips und Ratschläge ihr vielleicht hättet.
Wer interessiert ist mit zu machen, sollte sich erst einmal nur hier melden und sagen ob er Mentor oder Lernender sein will und im falle des Mentors, bei welchen Bereichen er denn behilflich sein könnte. Email, IM und co werden erst ausgetauscht wenn sich auch wirklich genug Leute finden.