ubuntuusers.de

Open Source Entwicklung Lernen mit Ruby

Status: Gelöst | Ubuntu-Version: Ubuntu
Antworten |

Baleevo

Anmeldungsdatum:
2. September 2006

Beiträge: Zähle...

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.

Ungültiges Makro

Dieses Makro ist nicht verfügbar

Ungültiges Makro

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

Ungültiges Makro

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.

e1bart0 Team-Icon

Avatar von e1bart0

Anmeldungsdatum:
12. Mai 2007

Beiträge: 927

Wohnort: München

Sieht ja schon richtig gut aus!
Es soll ja ein Open-Source Projekt werden, könntest du da nicht den source code der jetzigen Version hochladen??

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.

Ich selber kann nicht Ruby, doch wenn das stimmt, wird es wahrscheinlich heute eine lange Nacht 😉

Baleevo

(Themenstarter)

Anmeldungsdatum:
2. September 2006

Beiträge: Zähle...

e1bart0 hat geschrieben:

Sieht ja schon richtig gut aus!
Es soll ja ein Open-Source Projekt werden, könntest du da nicht den source code der jetzigen Version hochladen??

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.

Ich selber kann nicht Ruby, doch wenn das stimmt, wird es wahrscheinlich heute eine lange Nacht 😉

Den Code veröffentliche ich sobald ich mich mit den Open Source Lizenzen ein wenig mehr befasst hab \^^ Gibt da ja einige, drei GPL Versionen, MIT Lizenz, BSD Lizenz usw. Und im Moment läuft es nur unter Windows und Linux gut, auf Mac OS X hab ich die GUI noch nicht zum Laufen bekommen, da will ich mich erst noch drum kümmern.

Zum Ruby lernen:
http://www.hacketyhack.net ← Da lernt man gleich am Anfang wie man Dateien aus dem Internet Läd, einen Blog schreibt, Videos von YouTube läd, ein Chat Programm schreibt. Allerdings auf ziemlich vereinfachte art, ein Ruby Buch wird man danach noch benötigen. Das ist etwas für komplette Programmieranfänger, aber auch für Leute die mal schnell ab und zu ein Programm schreiben möchten. 7 Tutorials ins Programm eingebaut die insgesamt 2 Stunden dauern.

http://poignantguide.net ← Das verrückteste Ruby Buch der Welt, gibt es auch in Deutsch ist dann aber nicht mehr so lustig: http://de.poignantguide.net

http://tryruby.hobix.com ← Interaktiv in 15 Minuten im Webbrowser das gröbste von Ruby Lernen, genug um schon ein paar Programme zu schreiben

manesq

Anmeldungsdatum:
24. Januar 2007

Beiträge: 51

wow ☺
Also ich finde die Idee klasse, sowas in der Form zu machen.
Ich kenne Ruby leider nicht, wollte es mir aber mal ansehen.

Durch deine Zeilen und Links hast Du mich dem ein Stück näher gebracht 😉 Vielleicht finde ich am Wochenende mal die Zeit ☺

2 Fragen habe ich. Ich hoffe, es stört dich nicht, die zu beantworten.

1. Wenn ich Ruby für Internetseiten einsetze, was für Voraussetzungen muss dann der Server haben? Für die Programme braucht man Bibliotheken usw., müsste man die auf einem Server auch haben?

2. Ich lese was mit yaml. Muss man yaml dafür auch noch lernen? Was genau bewirkt yaml bzw. was für eine Aufgabe bei deinem Programm?

Danke schon mal und Grüße ☺

Baleevo

(Themenstarter)

Anmeldungsdatum:
2. September 2006

Beiträge: 26

manesq hat geschrieben:

wow ☺
Also ich finde die Idee klasse, sowas in der Form zu machen.
Ich kenne Ruby leider nicht, wollte es mir aber mal ansehen.

Durch deine Zeilen und Links hast Du mich dem ein Stück näher gebracht 😉 Vielleicht finde ich am Wochenende mal die Zeit ☺

2 Fragen habe ich. Ich hoffe, es stört dich nicht, die zu beantworten.

1. Wenn ich Ruby für Internetseiten einsetze, was für Voraussetzungen muss dann der Server haben? Für die Programme braucht man Bibliotheken usw., müsste man die auf einem Server auch haben?

2. Ich lese was mit yaml. Muss man yaml dafür auch noch lernen? Was genau bewirkt yaml bzw. was für eine Aufgabe bei deinem Programm?

Danke schon mal und Grüße ☺

Klar, kein Problem ☺

Internet Seiten mit Ruby kann man auf verschiedenste weise entwickeln. Das absolute non-plus-ultra wäre da Ruby on Rails, meiner Meinung nach die Zukunft der Web Entwicklung. Da braucht es schon mindestens einen VPS, also einen Virtuellen dedizierten Server. Ich habe da sehr gute Erfahrung mit Slicehost gemacht, da gibt es einen VPS schon ab 20 Dollar im Monat und im Slicehost Wiki gibt es viele Anleitungen wie man einen Ubuntu Rails Webserver aufsetzt auf seinem VPS. Natürlich kann man auch andere Linuxe benutzen, aber Ubuntu ist gerade für jemanden der sich nicht so sehr auskennt super für so etwas, da es Millionen von Anleitungen für alles Mögliche im Internet dazu gibt.
Man kann Ruby on Rails auch auf einem Shared Host laufen lassen, da gibt es schon gute Pakete für 20 Dollar im Jahr, aber das ist so langsam, das es zu so gut wie nichts taugt.

Eine andere Möglichkeit ist eRuby, dabei wird Ruby genau wie PHP benutzt. Man schreibt eine Seite ganz normal mit HTML und baut Ruby direkt in den HTML code ein, dann wird aus .html .rhtml. Bei PHP macht man das zum Beispiel so:

<? echo "Hallo, Welt!" ?>

Bei eRuby sähe das so aus:

<% puts "Hallo, Welt!" %>

Wer also mit PHP schon Webseiten entwickelt hat, wird mit eRuby gleich super zurecht kommen. Und auch hier kann man viele sachen benutzen die zum Beispiel Ruby on Rails benutzt, wie Active Record zum Beispiel um Datenbanken wie MySQL direkt mit Ruby anzusprechen statt SQL code zu schreiben, was alles viel einfacher macht. Ich habe mir letztens eine eRuby Webseite geschrieben, komplett mit Bildergalerie, Download Bereich, RSS Feed Reader und mehr, alles an einem Abend ohne zuvor je eRuby benutzt zu haben. Nur PHP und Ruby kannte ich schon 😉

Um eRuby zu benutzen muss auf dem Server nur Ruby installiert und das Ausführen von eigenen CGI-Skripten erlaubt sein, das ist schon bei ganz billigen Angeboten der Fall, da gibt es auch schon welche für weniger als 1 Euro im Monat. Ich empfehle da Dreamhost, mit Gutscheincode dem einen jeder Dreamhost Kunde geben kann bekommt man da 1 Jahr lang für 17 Dollar 200 Gb Speicher, 2 Terabyte im Monat Datentransfer, SSH Zugang zum Server, PHP, Ruby, Ruby on Rails Unterstützung, Rubygems vorinstalliert, unendlich viele MySQL Datenbanken und vieles mehr. Und jede Woche die man angemeldet ist bekommt man 1 GB Speicher und 16 Gb Datentrasfer kostenlos dazu. Und die Dreamhost Leute sind verrückt, die Newsletter und deren Blog sind wirklich sehr lustig und der Service ist allererste Güteklasse auch wenn man mal ein Problem hat wofür der Support eigentlich nicht zuständig wäre, also für Programmieranfänger wirklich super. Gibt dort auch ein umfangreiches Wiki mit Anleitungen zu allem was das Herz begehrt.

Soll jetzt keine Werbung sein, es gibt sicher noch andere gute Angebote, aber ich habe selbst schon ca. 20 verschiedene Webhoster ausgetestet und Slicehost und Dreamhost sind meine beiden absoluten Favoriten und die einzigen die ich wirklich mit gutem Gewissen weiterempfehlen würde.

Wenn man Bibliotheken benutzen will, hat man es am einfachsten wenn auf dem Server Rubygems installiert ist oder installiert werden kann. Rubygems funktioniert genau wie Ubuntu/Debians Apt-Get. Man gibt zum Beispiel sudo gem install rails ein und schon wird Ruby on Rails installiert.

Zu Yaml.
Yaml hieß mal "Yet another Markup language" und mittlerweile heisst es "Yaml ain't markup language". Man kann es für alles benutzen wo Daten gespeichert und wieder geladen werden müssen aber eine Datenbank wie MySQL zu viel des Guten wäre. Das Ruby Buch (poignantguide.net) ist zum Beispiel in YAML geschrieben und wird dann einfach per Ruby Script in eine Webseite umgewandelt. Dadurch das es aber nicht als Webseite abgespeichert ist sonder als YAML Datei, kann man auch einfach das Buch mit einem anderen Ruby Script in ein PDF Dokument, oder anderes konvertieren. YAML ist auch super dafür geignet Einstellungen von Programmen zu speichern, dafür benutze ich es bei SharpFlickr. Der Benutzer ändert einfach die Zahl bei pictures um zu bestimmen wie viele Bilder maximal angezeigt werden sollen und bei webbrowser wird der Pfad zum Webbrowser angegeben der benutzt werden soll, bei Linux reicht da schon der Name, da kann man den Pfad weglassen solange er im Path steht. Lernen muss man YAML nicht wirklich, es gibt ein Tutorial um es in 5 Minuten zu lernen. Aber bei YAML geht es gerade darum das man es nicht lernen muss, sondern das jeder Mensch eine YAML Datei verstehen und mit einem beliebigen Texteditor bearbeiten kann. YAML ist fest in Ruby integriert, es gibt einen Befehl um Daten in eine YAML Datei zu speichern und wieder zu lesen. Man muss nur diese beiden Befehle kennen und mehr braucht einen YAML nicht zu interessieren um es selbst in seinen Programmen zu benutzen, sehr einfach also ☺ Wie so eine YAML Datei aussieht sieht man ja in meinem ersten Post auf dem dritten Screenshot.

Ich hoffe ich habe alles richtig beantwortet \^^ Ich bin ja selbst noch Anfänger.
Viel Spaß beim Ruby lernen 😉

manesq

Anmeldungsdatum:
24. Januar 2007

Beiträge: 51

😮 😮

Hammer 😀

Vielen, vielen Dank für die ausführliche Antwort! ☺
Man merkt, dass bei dir schon viel Sachverstand und Enthusiasmus vorhanden ist ☺
Ich schaue mir das am Wochenende mal an und berichte dann, wie es läuft ☺

Und die Infos und Hosterempfehlungen werde ich auch näher betrachten.

Einen schönen Abend noch und bis bald.

Viele Grüße,
manesq

Baleevo

(Themenstarter)

Anmeldungsdatum:
2. September 2006

Beiträge: 26

Leider haben sich nur sehr wenige Leute gefunden die bei diesem Projekt mitmachen wollen und darunter nicht ein einziger Ruby Profi und auch niemand der sich gut mit Open Source Projekten auskennt.

Es gibt jetzt zwei Möglichkeiten, einfach zusammen versuchen alles auf die Beine zu stellen oder das Projekt internationalisieren und auch englisch sprechende Interessierte aufnehmen.

Wer sich auch trotz der fehlenden Fachleute dennoch dafür interessieren würde in einer kleinen Gemeinschaft Ruby zu lernen und zusammen ein Programm zu entwickeln, meldet sich bitte bis Mittwoch den 18. Juli bei mir per privater Nachricht oder direkt hier im Thread.

Sollten wir zumindest (einschließlich mir) auf 4 Leute kommen, könnte man trotzdem so einiges auf die Beine stellen denke ich. Dann geht es halt etwas langsamer voran. Und man könnte wie gesagt darüber nachdenken dann noch Hilfe aus dem Ausland dazu zu holen, sofern alle gut genug Englisch verstehen und schreiben können.

Utzinator

Anmeldungsdatum:
6. August 2006

Beiträge: 415

Ruby, hm...
Mit (fundierten ☺ ) java, php und c(++) kenntnissen sollte es mir sicher möglich sein da einzusteigen.
und eine Sprache mehr kann ja nicht schaden, zumal ich (leider bzw. leider? weiß ich noch nicht so genau ) immer mehr mit den sog. "websprachen" zu tun bekommen werde, so dass das sicher nicht schaden kann.

Bin also als ruby-anfänger dabei ☺

(PM erwünscht! ☺ )

Rinu

Anmeldungsdatum:
6. Februar 2006

Beiträge: Zähle...

Wie weit ist das Projekt mittlerweile?
Hab auch etwas in Ruby reingeschaut und mich würde der Quelltext dieses Programms intressieren.
Habe aber zu wenig Zeit um da dran mitzuarbeiten ☹

mightyDuck

Avatar von mightyDuck

Anmeldungsdatum:
27. Mai 2006

Beiträge: 175

Wohnort: Köln

Rinu hat geschrieben:

Wie weit ist das Projekt mittlerweile?
Hab auch etwas in Ruby reingeschaut und mich würde der Quelltext dieses Programms intressieren.
Habe aber zu wenig Zeit um da dran mitzuarbeiten ☹

Mir gehts genauso. Währe schön wenn hier das ein oder andere zum Projekt "Ruby Lernen" geschrieben würde.
Bin gerade auf folgendes gestoßen: "Workshop »Programmieren mit Ruby on Rails«, Teil 1: Einführung in Ruby on Rails"
http://www.pro-linux.de/work/ruby-on-rails/ruby-on-rails1.html

Angor

Avatar von Angor

Anmeldungsdatum:
30. Juli 2006

Beiträge: 1101

Wohnort: Bonn

Hm also ich muss mal gucken, würde da gern als Lehrling mitmachen.
Ich kann Python einigermaßen (also zu OOP hab ichs scho ngebracht ;P) und Ruby wollt ich mir irgendwann angucken, was ja eine Gelegenheit wäre.
Ich weiß aber nicht wies mit der Zeit bei mir aussieht, ich kann täglich 12 stunden zeit haben oder auch nur 30 min (ferien sind ja nimmer lang in NRW)
Ich guck mir mal morgen die Tuts an, wie ich damit zurechtkomme.
Vll wirds ja was, wär cool ☺

FaulesD

Avatar von FaulesD

Anmeldungsdatum:
13. September 2005

Beiträge: 43

Hi,
hätte auch interesse da mit zu machen, wollte zwar eigentlich Python lernen aber Ruby scheint auch sehr interessant zu sein!
Habe allerdings ab 6.8 erstmal 2 Wochen Zivi Seminar...

Barockdichter

Avatar von Barockdichter

Anmeldungsdatum:
4. November 2006

Beiträge: 633

Wohnort: München

Ja, das ist ja nett, dass mehrere Menschen zu ungefähr der gleichen Zeit auf ähnliche Ideen kommen 😉

Hier: http://forum.ubuntuusers.de/topic/100855/ haben sich gerade ein paar Leutchen zusammengefunden, die "Open-Source-Programmierer" werden wollen.
Wir beginnen mit C, dann Python.

Mittlerweile haben sich dort auch schon Menschen gefunden, die Ruby lernen wollen.
Vielleicht wird da ja parallel was draus.

neo67

Avatar von neo67

Anmeldungsdatum:
23. Oktober 2005

Beiträge: 171

Wohnort: Nürnberg

Hallo,

wäre auch dabei für ein paar Stunden in Woche. Ich habe bisher Perl und dann PHP programmiert mit MySQL zusammen. Ruby scheint ziemlich genial zu sein, habe schon ein paar Stunden Ruby - Basics hinter mir.
Hier ein deutscher Buch-Link zum Lernen:
http://home.vrweb.de/~juergen.katins/ruby/buch/
Ich selber habe mir noch das hier besorgt, liest sich ganz gut:
http://www.praxiswissen-ruby-on-rails.de/

Gruß

edit:
@Baleevo: Mich würde noch interessieren, welchen Editor Du unter Ubuntu/Gnome benutzt?

Adna_rim Team-Icon

Anmeldungsdatum:
8. November 2006

Beiträge: 2521

Ich benutzte ganz normal gedit mit dem Class Browser und dem Embedded Terminal Plugin und natürlich Synthax Highlighting für Ruby. Ich hatte mal eclipse probiert, dafür gibt es auch extra Ruby-extensions, doch das ist mir irgendwie zu überladen.

Antworten |