112 lines
3.8 KiB
Plaintext
112 lines
3.8 KiB
Plaintext
[[Kategorie:Wissen]][[Kategorie:2006]]
|
|
[[Benutzer:Astro|Astro]] und [[Benutzer:Sven|Sven]] wollen den [http://www.c3le.de/ C3LE] und andere am 1. April-Wochenende von Ruby begeistern.
|
|
|
|
=Themenabend Ruby=
|
|
==Ankündigung==
|
|
''Der CCC Dresden lädt ein:''
|
|
|
|
'''* * * Themenabend Ruby & Ruby on Rails * * *'''
|
|
|
|
;Termin
|
|
:10. März 2006, 19:00 Uhr
|
|
|
|
;Ort:
|
|
:Berufsakademie Dresden
|
|
:Raum G3
|
|
:Heideparkstr. 8
|
|
:01099 Dresden
|
|
|
|
<pre>Ruby ist eine Sprache, in der sich sehr schnell kleine Aufgaben
|
|
realisieren lassen, wie es eben für eine Skriptsprache typisch ist. Da
|
|
Ruby jedoch vollständig objektorientiert ist, bietet sie Möglichkeiten
|
|
auch große Projekte entsprechend zu strukturieren und umzusetzen.
|
|
|
|
Nach einer ausführlichen Einführung in die Konzepte der Sprache wollen
|
|
wir einen Rundgang durch die kleine Bibliothek Ruby-MediaWiki als
|
|
Beispiel für eine objektorientiertes und wiederverwendbares Codeprojekt
|
|
durchführen. Ruby-MediaWiki ist ein im CCC Dresden entstandenes Projekt
|
|
zur automatisierten Veränderung von Artikeln in MediaWiki, der Software
|
|
die von Wikipedia eingesetzt wird.
|
|
|
|
Danach wird es eine Einführung in das bekannte Web Application Framework
|
|
Ruby on Rails geben. Hier soll als Beispiel das Erstellen eines Wikis
|
|
mit Rails vorgeführt werden.
|
|
|
|
Je nach Zeitfortschritt und Publikumswunsch kann später noch gezeigt
|
|
werden, wie man mit Ruby XML verarbeitet und mit der Bibliothek XMPP4R
|
|
das freie Instant Messaging- Protokoll Jabber verwendet.</pre>
|
|
|
|
----
|
|
|
|
Für neugierige: svn://svn.c3d2.de/ruby-speed-metal-coding/ruby-ta
|
|
|
|
|
|
==Propaganda==
|
|
Angehen der Sprache mit ein paar Sachen im Hinterkopf:
|
|
*Im Gegensatz zu Perl eine angenehme Syntax mit wenigen Sonderzeichen
|
|
*Blöcke sind Argumente, ''obj.each { |e| ... }'' ist viel intuitiver als ''for e in obj''
|
|
*Alles ist ein Objekt, alles hat Methoden
|
|
*Selbst Klassenmethoden sind Instanzmethoden der Klasse (aber nicht des Objekts)
|
|
==Basics==
|
|
Demonstration in VNC?
|
|
*Ein bisschen nach [http://www.rubycentral.com/book/ Programming Ruby] richten, mehr braucht man ja eigentlich nicht
|
|
*''irb'' vorführen (mit Readline-Support)
|
|
*''ri'' zeigen
|
|
*''printf-Debugging'' mit '''p'''
|
|
*Introspektion
|
|
*Standardklassen: String, Array, Hash, Fixnum, TrueClass, FalseClass, NilClass, Class
|
|
*Regexps sind auch Objekte
|
|
*Methoden, Klassen, Module
|
|
*Blöcke sind auch nur Parameter (''def myfunction(&block)'')
|
|
*Rückgabewerte von Methoden müssen nicht mit ''return'' übergeben werden
|
|
*Instanzmethoden, Klassenmethoden, Konstruktor
|
|
*Klassen erweitern/Methoden überschreiben, zum Beispiel:
|
|
class String
|
|
def to_b
|
|
self == "true"
|
|
end
|
|
end
|
|
*Exceptions
|
|
**Auch Syntaxfehler sind Exceptions
|
|
**Wir fangen eine Exception und schicken die Details per Jabber
|
|
*Threads
|
|
|
|
===Rails===
|
|
|
|
*nach [http://pragmaticprogrammer.com/titles/rails/index.html Agile Web Development with Rails] richten
|
|
*Model/View/Controller
|
|
*Scaffolding
|
|
*ActiveRecord
|
|
*Filter
|
|
*Routing
|
|
*AJAX/Prototype
|
|
*Rails Anwendungen debuggen
|
|
|
|
==Code-Walkthroughs==
|
|
*[[Ruby-MediaWiki]] als Beispiel für ein kleines, gut strukturiertes Projekt?
|
|
*XML-Verarbeitung mit REXML
|
|
*Serialisierung mit YAML
|
|
*Verteilte Anwendungen mit Distributed Ruby
|
|
*Tests
|
|
==Kleinprojekte==
|
|
''Mal-schnell-was-coden'' ist mit Ruby möglich!
|
|
*Mate-Bot für Jabber? ([[Benutzer:Astro|Astro]])
|
|
*Eine tolle Website mit Rails? ([[Benutzer:Sven|Sven]])
|
|
|
|
=Ideen fürs Geekend=
|
|
|
|
==Jabber-Programmierung==
|
|
|
|
[[Benutzer:Astro|Astro]] ist Maintainer von [http://home.gna.org/xmpp4r/ xmpp4r]. Da er leider keine Ahnung von Softwaretechnologie und API-Design hat, wäre er über Feedback von Menschen, die das erste Mal damit programmieren dankbar.
|
|
|
|
==Ruby-SILC weiterentwickeln==
|
|
|
|
Bisher ziemlich scheußliches C zur Verwendung von libsilcclient in Ruby. Soll mal zu einem ''richtig coolen'' [[Link]]-Ersatz werden. SVN-Repository existiert. Siehe [[Benutzer:Astro#Ruby-SILC|Ruby-SILC]].
|
|
|
|
|
|
|
|
|
|
[[Kategorie:Ruby]]
|
|
|
|
{{Rübÿ Spëëd Mëtäl Cödïng}}
|