Ruby-Geekend: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
(TA Ruby)
(mv * TA/)
Zeile 2: Zeile 2:


=Themenabend Ruby=
=Themenabend Ruby=
==Ankündigung==
''Der CCC Dresden lädt ein:''
''Der CCC Dresden lädt ein:''


Zeile 40: Zeile 41:




=Propaganda=
==Propaganda==
Angehen der Sprache mit ein paar Sachen im Hinterkopf:
Angehen der Sprache mit ein paar Sachen im Hinterkopf:
*Im Gegensatz zu Perl eine angenehme Syntax mit wenigen Sonderzeichen
*Im Gegensatz zu Perl eine angenehme Syntax mit wenigen Sonderzeichen
Zeile 46: Zeile 47:
*Alles ist ein Objekt, alles hat Methoden
*Alles ist ein Objekt, alles hat Methoden
*Selbst Klassenmethoden sind Instanzmethoden der Klasse (aber nicht des Objekts)
*Selbst Klassenmethoden sind Instanzmethoden der Klasse (aber nicht des Objekts)
=Basics=
==Basics==
Demonstration in VNC?
Demonstration in VNC?
*Ein bisschen nach [http://www.rubycentral.com/book/ Programming Ruby] richten, mehr braucht man ja eigentlich nicht
*Ein bisschen nach [http://www.rubycentral.com/book/ Programming Ruby] richten, mehr braucht man ja eigentlich nicht
Zeile 70: Zeile 71:
*Threads
*Threads


=Rails=
===Rails===


*nach [http://pragmaticprogrammer.com/titles/rails/index.html Agile Web Development with Rails] richten
*nach [http://pragmaticprogrammer.com/titles/rails/index.html Agile Web Development with Rails] richten
Zeile 81: Zeile 82:
*Rails Anwendungen debuggen
*Rails Anwendungen debuggen


=Code-Walkthroughs=
==Code-Walkthroughs==
*[[Ruby-MediaWiki]] als Beispiel für ein kleines, gut strukturiertes Projekt?
*[[Ruby-MediaWiki]] als Beispiel für ein kleines, gut strukturiertes Projekt?
*XML-Verarbeitung mit REXML
*XML-Verarbeitung mit REXML
Zeile 87: Zeile 88:
*Verteilte Anwendungen mit Distributed Ruby
*Verteilte Anwendungen mit Distributed Ruby
*Tests
*Tests
=Kleinprojekte=
==Kleinprojekte==
''Mal-schnell-was-coden'' ist mit Ruby möglich!
''Mal-schnell-was-coden'' ist mit Ruby möglich!
*Mate-Bot für Jabber? ([[Benutzer:Astro|Astro]])
*Mate-Bot für Jabber? ([[Benutzer:Astro|Astro]])
*Eine tolle Website mit Rails? ([[Benutzer:Sven|Sven]])
*Eine tolle Website mit Rails? ([[Benutzer:Sven|Sven]])
[[Kategorie:Ruby]]
[[Kategorie:Ruby]]


{{Rübÿ Spëëd Mëtäl Cödïng}}
{{Rübÿ Spëëd Mëtäl Cödïng}}

Version vom 13. März 2006, 21:16 Uhr

Astro und Sven wollen den 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
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.

Für neugearige: svn://svn.cccv.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 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

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? (Astro)
  • Eine tolle Website mit Rails? (Sven)
Rübÿ Spëëd Mëtäl Cödïng
Coders: Astro | Conny | Sven