Ruby on Rails and Rapid Application Development

Größe: px
Ab Seite anzeigen:

Download "Ruby on Rails and Rapid Application Development"

Transkript

1

2 Ruby on Rails and Rapid Application Development Hans Hasselberg 8. Juli 2008 Inhaltsverzeichnis 1 Ruby Einleitung Objektorientiert Open-Source Multi-Paradigma interpretiert Konzepte Typen Variablen, Klassen, Objekte Blöcke Reflection, Distrubuted Ruby Bestandteile Kritik Ruby on Rails Einleitung Konzepte Model-View-Controller Don t repeat yourself Convention over Configuration Komponenten ActiveRecord Kritik agile Methoden Fazit 12 4 Quellen 12 1 Ruby 1.1 Einleitung Ruby ist ein Multi-Paradigmen, Open-Source, interpretierte und hohe Programmiersprache. Die Sprache wurde von Yukihiro Matsumoto zwischen 1993 und 1995 entwickelt, weil die 2

3 vorhandenen Programmiersprachen seinen Ansprüchen nicht genügten. Dabei orientierte er sich an zahlreichen vorhandenen Sprachen, unter anderem Smalltalk, C, C++, Java. Außerdem orientierte er sich stark an Perl(Perle), nichtnur an dem Namen Ruby(Rubin) erkennbar, den er in Anspielung darauf gewählt hat. Interessanterweise besteht noch eine andere Verbindung: Die Perle ist der Geburtsstein des Monats Juni und der Rubin von Juli. Abgesehen von der Namensverwandtschaft sind laut dem Entwickler die Klassen-Bibliotheken zwischen Perl und Ruby sehr ähnlich, bis hin zu den Variablen $ und $&, die Matsumoto inzwischen als ugly style variables bezeichnet. Am 21. Dezember 1995 veröffentlichte er die erste Version Weil Ruby nur Japanisch dokumentiert war, erlangte es auch zunächst nur in Japan an Bedeutung und hatte einen ähnlichen Stellenwert wie Perl und Python. Seit 2000 wird versucht Ruby auch im Rest der Welt zu verbreiten und seitdem existiert auch eine englische Dokumentation. Dank dieser Bemühungen gelang Ruby inzwischen zu erheblicher Bekanntheit. Die Implementierung von Yukihiro Matsumoto ist jedoch nur beispielhaft und aktuell wird Ruby in einem Open Source Projekt weiter gepflegt und von diesem wird auch das nächste große Release erwartet. In den folgen Kapiteln werde ich verschiedene Konzepte in Ruby erläutern und ein wenig auf die sprachlichen Fein- und Besonderheiten eingehen. Zuerst werde ich kurz die Ojektorientierung und die Verfügbarkeit verschiedener Paradigmen erklären, bevor ich dann Konzepte wie Typen und Klassen erläutere. Abschließ gehe ich auf die Bestandteile von Ruby ein und bewerte diese Skriptsprache Objektorientiert Wie schon erwähnt ist Ruby objektorient und zwar von Anfang an und nicht wie z.b. bei PHP, wo es erst nachträglich hinzugefügt wurde. Somit ist alles ein Objekt(und zwar im wörtlichen Sinn, denn alle Objekte in Ruby erben von der Klasse Object) und natürlich auch nil, true und false. Ein Vorteil ist, dass Informationen über Objekte direkt an ihnen abgefragt werden können z.b.: 4 2. c l a s s => Fixnum 4 2. s i z e => 4 ohne Konstrukte, wie sizeof(42), bemühen zu müssen. Ruby unterstützt natürlich auch Vererbung, ein Beispiel wird im nachfolgen Kapitel gezeigt Open-Source Yukihiro Matsumoto hat Ruby entwickelt und auch gleich beispielhaft implementiert und dann unter der GPL veröffentlicht. Wie schon erwähnt wird Ruby nun in einem Open-Source Projekt weiterentwickelt Multi-Paradigma In Ruby kann jeder Programmierer so coden, wie er es gewohnt ist. Es wird sowohl objektorientiertes und prozedurales als auch funktionale Programmieren unterstützt. Ersteres ist klar und schon im vorhergehen Abschnitt erklärt. 3

4 Prozedurales Vorgehen impliziert, dass keine Klassen erstellt werden müssen. Gelöst wurde das durch eine globale Klasse in der alle Programme gestartet werden. Dadurch wird für den Programmierer die Illusion erzeugt, ohne Klassen zu programmieren. d e f quaken quak quak quaken => quak quak Das ist schon ein vollständiges Ruby-Programm. Das Zeichen = nach einen Aufruf zeigt das Ergebnis an. Weil in Ruby jeder Ausdruck einen Wert hat, kann man auch funktional Programmieren. h e l l o = case s p r a c h e when Deutsch then H a l l o Welt when E n g l i s c h then Hello, world e l s e r a i s e Unbekannte Sprache Diese Vielseitigkeit ist für Einsteiger natürlich von Vorteil, da er seinen Programmierstil nicht zu ändern braucht. Ausserdem kann man den Stil wechseln, sobald es nötig ist, denn für bestimmte Problemstellungen ist Funktionale und andere Prozedurale prädestiniert interpretiert Ruby wird interpretiert. Dafür benutzt man einen Interpreter, der den Ruby Quellcode zur Laufzeit einliest und ausführt. Dabei wird nicht wie von Compilern direkt maschinelesebarer Code vor der Laufzeit erzeugt. Der Interpreter leistet zwar ähnliche Arbeit wie ein Compiler, jedoch erst zu Ausführungszeit, was das ganze bedeut langsamer macht. Der Vorteil von interpretierten Sprachen ist die Plattformunabhängigkeit, unter der Voraussetzung, dass der Interpreter auf der Zielplattform läuft. Ausserdem erhöht die Interpretation die Flexibilität, da unter anderem zur Laufzeit Klassen modifiziert werden können. Das betrifft dann natürlich nur die nach der Modifikation erstellten Objekte und nicht die vorher existieren. Es gibt verschiedene Lösungen zur Erhöhung der Geschwindigkeit eines Interpreters z.b.: JIT-Compiler und Bytecode. Im Gegensatz zu einem normalen Compiler übersetzt der JIT(Just in Time)-Compiler das Programm erst zur Laufzeit in Maschinencode. Diese Methode ermöglicht eine bessere Maschinencode Optimierung. Zudem werden durch Zwischenspeicherung von Maschinencode, sich wiederhole Abschnitte nicht mehrfach übersetzt. Damit ist der JIT-Compiler jedoch nicht mehr plattformunabhängig, da er Code für eine bestimmte Architektur generiert. Eine weitere Möglichkeit ist die Erzeugung von Bytecode entweder vor oder zu Laufzeit. Bytecode ist eine einfache Zwischensprache, die dann von dem Interpreter schneller ausgeführt werden kann. In diesem Fall wird der Interpreter auch Virtual Machine genannt. Dieses Verfahren wird auch in Java erfolgreich eingesetzt und ist auch für die nächste Ruby Version 1.9 geplant. Dafür wurde das Projekt YARV(Jet Another Ruby VM) in den offizielle Ruby Projekt integriert und der Entwickler von YARV arbeitet jetzt direkt für Ruby. 4

5 1.2 Konzepte Typen Vorab nochmal zur Erinnerung: in Ruby ist alles ein Objekt und Variablen müssen nicht deklariert werden. Doch das heißt nicht, dass alles generisch ist oder keine Typen existieren. Davon gibt es nämlich einige (String, Number, Range, Regular Expression,...) die jedoch nicht wie z.b. in C alleinsteh sind, sondern natürlich alle von Object erben. Diese Typen sind das Grundgerüst aller Ruby Programme und müssen deshalb besonders intuitiv zu benutzen sein und nicht nur dafür ist es praktisch, dass alle Typen von Object erben. Unter den einfachen Typen, die auch schon aus anderen Programmiersprachen bekannt sind, treten besonders die Regular Expression - die Regulären Ausdrücke - hervor. Laut Wikipedia ist das eine Zeichenkette, die der Beschreibung von Mengen beziehungsweise Untermengen von Zeichenketten mit Hilfe bestimmter syntaktischer Regeln dient. Die Regex werden für verschiedene Aufgaben verwandt, zum Filtern und als Schablone. Beim Filtern geht es darum aus einem Text eine Zeichenkette herauszusuchen und gegebenenfalls zu ersetzten, was ebenfalls mit Regex möglich ist. Weiterhin können Regex als Schablone für Zeichenketten dienen, ohne dass diese explizit angegeben wird. Die Entwickler haben die erkannt, wie nützlich die Regex sind und eine mächtig Bibliothek in Ruby integriert und dafür sogar Typen geschaffen. Die Erstellung eines Regex ist in Ruby denkbar einfach: p a t t e r n = /ˆha [ nu ] s / hans = p a t t e r n => 1 haus = p a t t e r n => 1 maus = p a t t e r n => 0 In diesem Beispiel, sieht man, wie ein Pattern erzeugt wird und mit = auf einen String angewet. Das Ergebnis entspricht unseren Erwartungen. Für die Regex gibt es zahlreiche Anwungsfälle, von der Validierung einer Eingabe bis hin zum Suchen und Ersetzten in Texten Variablen, Klassen, Objekte In Ruby können Klassen definiert und instanziert werden, wobei die Instanzen der Klassen auch Objekte genannt werden. Objekte wiederum können in Variablen gespeichert werden. In der Variable ist jedoch nie das Objekt selbst gespeichert, sondern nur ein Zeiger auf dasselbe. Das ist das gleiche Verhalten, wie in Java. Zusätzlich gibt es noch Konstanten, das sind Variablen, die ihren Wert nach der Initialisierung nicht mehr ändern. Konstanten erkennt man daran, dass der erste Buchstabe des Namens groß geschrieben ist. Im Gegensatz dazu fangen alle normalen Variablennamen mit einem kleinen Buchstaben an. Im folgen Code- Beispiel wird eine Klasse Duck und Donald erstellt, wobei Duck von Object erbt (denn das ist Fall, wenn nichts angegeben ist) und Donald von Duck. Die Vererbungsbeziehung wird in Ruby mit dem kleiner-zeichen angezeigt. 5

6 c l a s s Duck def quak quak quak c l a s s Donald < Duck def s l e e p ZZZzzzzzz donald = Donald. new donald. quak => quak quak donald. s l e e p => ZZZzzzzzz. In diesem Beispiel ist Donald eine Ente, die nicht nur quaken, sondern auch schlafen kann. Ein weiterer Bestandteil dieses Abschnittes ist Duck Typing. Duck Typing bedeutet, dass Objekte nicht anhand ihrer Klasse identifiziert werden, sondern anhand der Methoden, die es anbietet. Es gibt einen vielzitierten Ausspruch von James Whitcomb Riley: If it walks like a duck and quacks like a duck, I would call it a duck. Das führt dazu, dass Objekte nicht wie in streng typisierten Sprachen anhand ihres Typs unterschieden werden, sondern nur noch anhand der Methoden. Wie schon erwähnt unterstützt Ruby zwar Vererbung, aber keine Mehrfachvererbung. Doch es gibt einen Mechanismus um den selben Effekt zu erzielen, nämlich mithilfe von Mixins. Das sind Module, die Methoden zur Verfügung stellen und dann von mehreren Klassen inkludiert werden können Blöcke In diesem Abschnitt geht es um Code-Blöcke und zwar ist das Code, den man an Methoden sen kann. Das ist ein sehr mächtiges Feature und kann benutzt werden, um Callbacks zu implementieren, Code zu versen und Iteratoren zu erstellen. Dazu gleich mal ein kleines Beispiel, damit man sieht, was passiert. def c a l l puts s t a r t y i e l d puts c a l l { puts i n the b l o c k } s t a r t i n the b l o c k => n i l 6

7 Hier wird eine Methode call definiert, die start und zurückgibt und dazwischen steht yield, was der Platzhalter für den Block ist. Beim Aufruf von call mit einem Block(der in den geschweiften Klammern steht), wird zuerst start ausgegeben, danach yield ausgeführt und dann ausgegeben. Der Block kann zusätzlich Parameter enthalten, was dazu führt, dass er gern als Iterator benutzt wird: [ 1, 2, 3 ]. each {i p uts i } => [ 1, 2, 3 ] In der ersten Zeile wird ein Array mit dem Inhalt 1-3 erstellt und auf diesem each aufgerufen. Each wird hierfür mit dem Block { i puts i} aufgerufen, wobei zwischen den Strichen der Parameter steht und danach die Anweisung Reflection, Distrubuted Ruby Nachdem die Basis von Ruby erläutert wurde, geht es jetzt um Themen, die entweder noch nicht angesprochen oder mit Absicht übergangen wurden. Der Begin ist Reflection. Das bedeutet wörtlich die Spiegelung und bedeutet, dass Objekte Informationen über sich selbst, wie als wenn sie in den Spiegel sähen, kennen. name = hans name. respond \ t o?( r e v e r s e ) => true Das zeigt, dass das name-objekt selbst überprüfen kann, ob es eine Methode reverse besitzt. 1.3 Bestandteile Ruby besteht aus verschiedenen Komponenten, wie der Interactive-Ruby-Shell(irb), rdoc und den rubygems(gem). Die irb ist ein sehr nützliches Tool um kleine Ruby Experimente durchzuführen. Ausserdem kann man mit ihr auch debuggen, indem man in seinem Script einen breakpoint setzt, der sich wiederum in eine aktive irb einklinkt, falls vorhanden. Über die irb kann man dann auch die aktuellen Variablen zugreifen und alles machen, was man vom normalen debuggen gewöhnt ist. Zu rdoc gibt es nichts weiter zu sagen, als dass ein ganz normales Tool zum generieren von Dokumentationen ist, vergleichbar mit javadoc oder doxygen. Rubygem ist wiederum ein interessantes Tool, es ist nämlich eine Paketverwaltung für Ruby. Damit kann man alle Pakete, Plugins etc. installieren, verwalten und updaten. Es eignet sich vor allem, um die Plugins zu verwalten, die man ansonsten von unterschiedlichen Webseiten zusammen suchen müsste. 1.4 Kritik Kritik an Ruby gibt es nicht viel. Vor allem wird die Performance bemängelt und das zu Recht. Da Ruby interpretiert wird, gibt es diese Probleme. 7

8 Abbildung 1: Rails 2 Ruby on Rails 2.1 Einleitung Ruby on Rails(RoR) ist ein Web Application Framework, dass 2004 von David Heinemeier Hansson der Öffentlichkeit vorgestellt wurde. Es ist in Ruby programmiert und Open Source. Im folgen werde ich die Bezeichnungen Ruby on Rails, Rails und RoR benutzen und meine immer Ruby on Rails. Interessant ist, dass Rails aus der Webapplication Basecamp extrahiert wurde und nicht einfach entwickelt. Das liefert schonmal den Beweis der Nützlichkeit und praxisnähe, denn es stammt ja aus der Praxis. Seit Dezember 2007 gibt es Rails in der Version 2.0 die viele Neuerungen einführt. In diesem Text werde ich bemüht sein die Änderungen der neuen Version zu berücksichtigen und kennzeichne, falls das nicht möglich ist, diejenigen Eigenschaften, die die Version 1.x betrifft. Um die Funktionalität voneinander abzugrenzen wurde Rails in verschiedene Komponenten, hauptsächlich ActionPack, ActiveRecord und ActiveRessource aufgeteilt, wobei nur ActiveRecord aufgrund seiner Besonderheiten extra behandelt wird. Weiterhin gibt es in Rails die Konzepte DRY und Convention over Configuration, denen auch ein Kapitel gewidmet ist: 2.2. Bevor ich die Relevanz und Einsetzbarkeit von Rails in Projekten mit agilen Entwicklungsmethoden behandle, werde ich die Nachteile von diesem Framework erläutern. Das Bild 1 zeigt die Architektur von Rails. 8

9 Abbildung 2: Model-View-Controller 2.2 Konzepte Model-View-Controller Model-View-Controller(MVC) ist ein Architekturmuster und beschreibt die Aufteilung der Software in die drei Einheiten: Model (Datenmodell), View (Präsentation), Controller (Programmsteuerung). Abbildung 2 ist eine Abbildung des Musters, das die Komponenten und deren Beziehungen zeigt. Das Model repräsentiert in diesem Muster die Daten. Hier werden alle Anwungsdaten gespeichert und verwaltet, die im Betrieb der Application anfallen. Diese Einheit ist manchmal eng mit der Geschäftslogik verknüpft, in Rails ist das jedoch nicht der Fall. Im Gegensatz dazu ist das Model aber immer unabhängig von View und Controller.Diese Komponente wird durch ActiveRecord verwaltet. Der View ist die Ansicht, die der Nutzer auf das System hat und ist für die Anzeige der Daten aus dem Model zuständig und leitet dann Anfragen des Nutzers an den Controller weiter. Für diese Einheit ist ActionView zuständig, was ein Teil des ActionPacks ist. Der Controller ist der Kern der Anwung, hier findet die Datenverarbeitung statt. Er nimmt Benutzeraktionen vom View entgegen und reagiert entsprech. Ausserdem ist er für die Zuordnung zwischen Modell und Präsentation zuständig. In Rails ist der Controller ein Teil von ActionPack Don t repeat yourself Don t repeat yourself (DRY) bedeutet, dass man sich nicht wiederholen oder jede Information nur einmal im System vorhanden sein soll. Dieses Konzept ist relativ allgemein und findet sich auch in anderen Anwungsgebieten wieder, z.b.: in den Normalformen der Datenbank. Im Zusammenhang mit Rails bedeutet das, dass das Framework den Programmierer dabei zu unterstützen versucht. ActiveRecord bietet solche Möglichkeiten an (doch dazu mehr im Kapitel 2.3.1) und Ruby im allgemeinen. Ein weiterer Mechanismus, der dieses Konzept unterstützt ist das scaffolding(engl.: Gerüstbau). Rails stellt Generatoren zur Verfügung, die aus einem Model ein CRUD(Create-Update-Delete)-Interface erstellen. Dazu mal ein kleines Beispiel: 9

10 ruby s c r i p t / g e n e r a t e s c a f f o l d Movie t i t l e : s t r i n g Hier wird das generate-script mit dem Parameter scaffold, Movie und title:string aufgerufen. Daraus baut der Generator zuerst das Modell Movie mit dem Attribut titel, was ein String ist. Danach wird der Controller erzeugt und dann der View. Mit einem Einzeiler wird also in Rails ein CRUD-Interface erstellt, ohne sich selbst zu wiederholen, da man mit dem Generator natürlich CRUD-Interfaces für beliebig viele Modelle erstellen kann. DRY ist wichtig um Redundanz zu verhindern und Wartbarkeit und Fehlervermeidung zu unterstützen und hilf so direkt bei der Implementierung qualitativ hochwertiger Software Convention over Configuration Auch dieses Konzept ist sehr allgemein und beschreibt den Verzicht auf Konfiguration, wenn sich an die Konvention gehalten wird. Das kann man vielleicht am Beispiel eines Fahrstuhl verdeutlichen: Ein Fahrstuhl in einem Bürogebäude mit 10 Etagen wird von 98% der Mitarbeiter benutzt um in den 7. Stock zu gelangen. Wenn die Software Convention over Configuration(COC) unterstützt, würde der Fahrstuhl immer automatisch in die 7. Etage fahren, falls der Benutzer nichts anderes vorgibt. Das hat den enormen Vorteil, dass 98% der Mitarbeiter den Fahrstuhl nicht mehr konfigurieren müssen, währ für die restlichen 2% alles beim Alten bleibt. Ähnlich verhält es sich in Rails vor allem mit ActiveRecord, aber auch mit der Klassenbibliothek von Rails und den Tools, die mitgeliefert werden. Die Vorteile dieses Konzepts sind vor allem weniger Aufwand bei der Konfiguration, da die meisten Einstellungen durch Konventionen abgedeckt sind. 2.3 Komponenten ActiveRecord ActiveRecord ist das Datenbankabstraktions-Framework von Rails und basiert auf dem gleichnamigen Muster von Martin Fowler. Dieses Muster beschreibt die Abbildung der Tabellen, Zeilen und Spalten auf Klassen, Objekte und Attribute. Die nächsten Erwähnungen von ActiveRecord beziehen sich immer auf das Framework, das Teil von Rails ist und nicht auf das Pattern. ActiveRecord implementiert dieses Pattern und bietet damit die Möglichkeit leicht eine Verbindung zwischen Domäne-Objekten und der Datenbank herzustellen. Eine ActiveRecord-Klasse repräsentiert dabei eine Datenbank-Tabelle, ein Objekt eine Zeile und die Attribute des Objekts die Spalten. Im Unterschied zu Hibernate werden die Attribute nicht durch getter und setter in der Klasse definiert, sondern durch die Spalten in der Datenbank. Die Java-Implementation wäre eine DRY-Verletzung im Rails-System, weil für ein Attribut zwei Methoden benötigt werden, währ ActiveRecord zuerst die Datenbank ausliest und danach die Getter und Setter generiert. Auch hier können die Klassen zur Laufzeit erweitert werden, wie schon in... beschrieben. ActiveRecord generiert jedoch nicht nur die Getter und Setter, sondern auch spezielle Finder, die einfaches Suchen ermöglichen. Wenn zum Beispiel in der Tabelle Studenten ein Feld Name und Jahrgang existiert, so kann man den folgen Finden benutzen: Student. f i n d b y n a m e ( hans ) 10

11 Für die meisten Standartabfragen reichen diese generierten Finder vollkommen aus, zumal sie auch kombiniert werden können: Student. f i n d b y n a m e a n d j a h r g a n g ( hans, 1983) Da die meisten Methoden der Datenbank-Klassen generiert werden, ist diese Klasse meist leer. Für die Arbeit mit ActiveRecord arbeitet man häufig direkt auf der Datenbank, da das die Stelle ist, woher ActiveRecord die Informationen bezieht. So müssen unter anderem Join-Tabellen für n:m-beziehungen manuell angelegt werden. Diese Arbeitsweise betrachten einige als Nachteil im Vergleich mit Hibernate, wo man alles in den Klassen erledigen kann. Letztlich ist es jedoch nur eine Frage der Präferenz. Die Vorteile von ActiveRecord liegen jedoch auch in der einfachen Benutzung durch COC(siehe 2.2.3). In einem Rails-Projekt kann man sofort anfangen zu programmieren, da schon alles vorkonfiguriert ist, einschließlich ActiveRecord. 2.4 Kritik Die Nachteile von Rails beschränken sich hauptsächlich auf Geschwindigkeit und Performance im Vergleich zu den deutlich schnelleren HTML/PHP/JS-Lösungen. Das liegt zum Einen daran, dass Ruby interpretiert wird und andererseits an dem hohen Abstraktionsgrad, den es nicht umsonst gibt. Rails wäre nicht Rails, wenn es dafür keine Lösung gibt. Erstmal werden zwei Probleme unterschieden: Performance und Skalierbarkeit. Performance beschreibt das Antwortzeitverhalten des Systems, währ Skalierbarkeit die Eigenschaft des Systems beschreibt auch steiger Last nicht an Performance zu verlieren, bzw in einem Rahmen zu bleiben. Um performanter zu werden, unterstützt Rails verschiedene Caching Mechanismen. Caching bewirkt, dass der Server das Ergebnis einer Anfrage nicht jedesmal neu generiert, sondern beim ersten Mal speichert und es danach nur noch aus seinem Zwischenspeicher (Cache) holt. In Rails gibt es unter anderem das Seiten Caching, bei dem bestimmte - meist statische Seiten - markiert werden und nach dem ersten Erstellen direkt von Webserver zurückgeliefert werden. Ähnlich funktioniert auch das Fragment-Caching, bei dem jedoch nicht ganze Seiten, sonder nur Abschnitte markiert und gecached werden. Bezüglich dem zweiten Problem gibt es einen Ausspruch: Rails skaliert horizontal. Das bedeutet nichts weiter, als dass bei steiger Last die Anzahl der Server, die die Anfragen bearbeiten erhöht werden muss. Dafür wird ein Load-Balancer eingesetzt, der die Last auf die Server verteilt. An der Rails Applikation müssen dafür je nach System entweder keine oder nur kleine Änderungen, wie zum Beispiel an der Speicherung der Session, vorgenommen werden. 2.5 agile Methoden Dieses Kapitel behandelt, inwiefern sich Rails für die Software Entwicklung in Projekten mit agiler Vorgehensweise eignet und ob die Entwicklung mit Rails auch in großen Projekten möglich ist. Die Frage nach der generellen Eignung von Rails für die agile Entwicklung kann eindeutig bejaht werden, es ist sogar so, dass Rails nur dafür entwickelt wurde. Gegenstand vieler agiler Methoden sind die vielen Iterationen, das Prototyping und eine ständig lauffähige Version und die Kundenzufriedenheit. 11

12 Ruby on Rails ist für iteratives Vorgehen, wie schon gezeigt wurde, geeignet. Unter anderem durch die vielen Möglichkeiten die Klassen nachträglich oder zur Laufzeit zu verändern. Die Entwicklung mit Rails findet meistens featurebasiert statt, indem eins nach dem anderen implementiert wird. Schnell eine lauffähig Version einer Software zu erstellen ist mit Rails auch kein Problem durch die Umfangreiche Unterstützung durch die Generatoren und durch Convention over Configuration. Wenn es regelmäßig neue Prototypen gibt ist die Kundenzufriedenheit fast gewährleistet, da sich die Kunden die Prototypen ansehen und Änderungswünsche direkt einbringen können. Ein weiteres wichtiges Thema in der agilen Entwicklung das Testen wird ebenfalls von Rails vorbereitet indem für die benutzen Controller und Modelle initial Testscripte angelegt werden, die nur noch implementiert werden müssen. Auch hier funktioniert alles dank CoC ohne etwas zu konfigurieren. Nachdem klar ist, dass sich Rails zum Entwickeln mit agilen Methoden eignet ist die Frage, ob es skaliert in Hinsicht auf die Anzahl der Entwickler. Die Beantwortung der Frage ist nicht leicht, da es zu diesem Thema kaum Erfahrung gibt, geschweige denn Quellen. Hinweise können Erfahrungsberichte sein, die es von großen Rails-Projekten gibt, wobei deren Anzahl relativ gering ist. Der Grund dafür liegt aber eher in den Performance- und Skalierbarkeitsproblemen, die Rails hat. Doch leider gibt es keine öffentlichen Erfahrungsberichte dieser Projekte, sodass es bei Spekulationen bleibt. Spekulativ würde ich sagen, die Entwicklung mit Rails ist auch in einem großen Team möglich. Eigentlich ist es im Prinzip ja nichts anderes als bei Java oder ähnlichem. Die Entwickler bekommen Aufgaben und bearbeiten Klassen. Die Unterstützung durch Tools ist natürlich nicht so massiv wie bei Java vorhanden und das ist ein großer Nachteil. Abgesehen von diesem fallen mir jedoch keine Nachteile auf, die Rails in großen Teams haben soll. Ausgenommen natürlich die Nachteile agiler Methoden in großen Teams, die natürlich immer präsent sind, aber nichts mit Rails zu tun haben. 3 Fazit Abschließ möchte ich sagen, dass die Entwicklung mit Ruby on Rails zwar auf Web Applications beschränkt ist, mir dort aber sehr viel Spass gemacht hat. Für andere Anwungsgebiete kann man nur Ruby benutzen, was natürlich genausoviel Freude bringt. Der Spass und die Freude entstand bei mir dadurch, dass alles problemlos funktioniert hat, Ruby so einfach ist und alles klappt, wie ich es erwartet habe. Natürlich gibt es auch beim Programmieren mit Ruby on Rails Probleme, doch für diesen Fall gibt es eine freundliche Community. 4 Quellen Dave Thomas: Prorgamming Ruby 2. Auflage, The Pragmatic Programmers, 2005 Ralf Wirdemann, Thomas Baustert: Ruby on Rails 2. Auflage, Hanser, 2007 Jeremy McAnally: Ruby Book on Rails 12

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Eine Anwendung mit InstantRails 1.7

Eine Anwendung mit InstantRails 1.7 Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost Adobe Photoshop Lightroom 5 für Einsteiger Bilder verwalten und entwickeln Sam Jost Kapitel 2 Der erste Start 2.1 Mitmachen beim Lesen....................... 22 2.2 Für Apple-Anwender.........................

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Kostenstellen verwalten. Tipps & Tricks

Kostenstellen verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock infach Ihr Weg zum finanzellen Erfolg Geld Florian Mock FBV Die Grundlagen für finanziellen Erfolg Denn Sie müssten anschließend wieder vom Gehaltskonto Rückzahlungen in Höhe der Entnahmen vornehmen, um

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe

Mehr

SEMINAR Modifikation für die Nutzung des Community Builders

SEMINAR Modifikation für die Nutzung des Community Builders 20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen

Mehr

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße 30 45289 Essen Telefon 0201 47091505 Telefax 0201 54502360

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße 30 45289 Essen Telefon 0201 47091505 Telefax 0201 54502360 FastBill GmbH Holteyer Straße 30 45289 Essen Telefon 0201 47091505 Telefax 0201 54502360 FastBill Automatic Dokumentation Versand 1 Inhaltsverzeichnis: 1. Grundlegendes 2. Produkteinstellungen 2.1. Grundeinstellungen

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO

Mehr

GeoPilot (Android) die App

GeoPilot (Android) die App GeoPilot (Android) die App Mit der neuen Rademacher GeoPilot App machen Sie Ihr Android Smartphone zum Sensor und steuern beliebige Szenen über den HomePilot. Die App beinhaltet zwei Funktionen, zum einen

Mehr

Netzwerkeinstellungen unter Mac OS X

Netzwerkeinstellungen unter Mac OS X Netzwerkeinstellungen unter Mac OS X Dieses Dokument bezieht sich auf das D-Link Dokument Apple Kompatibilität und Problemlösungen und erklärt, wie Sie schnell und einfach ein Netzwerkprofil unter Mac

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

Reporting Services und SharePoint 2010 Teil 1

Reporting Services und SharePoint 2010 Teil 1 Reporting Services und SharePoint 2010 Teil 1 Abstract Bei der Verwendung der Reporting Services in Zusammenhang mit SharePoint 2010 stellt sich immer wieder die Frage bei der Installation: Wo und Wie?

Mehr

Kapitel 3 Frames Seite 1

Kapitel 3 Frames Seite 1 Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den

Mehr

Zahlen auf einen Blick

Zahlen auf einen Blick Zahlen auf einen Blick Nicht ohne Grund heißt es: Ein Bild sagt mehr als 1000 Worte. Die meisten Menschen nehmen Informationen schneller auf und behalten diese eher, wenn sie als Schaubild dargeboten werden.

Mehr

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN Der Zauberwürfel-Roboter Paul Giese Schule: Wilhelm-Raabe-Schule Jugend forscht 2013 Kurzfassung Regionalwettbewerb Bremerhaven

Mehr

Tevalo Handbuch v 1.1 vom 10.11.2011

Tevalo Handbuch v 1.1 vom 10.11.2011 Tevalo Handbuch v 1.1 vom 10.11.2011 Inhalt Registrierung... 3 Kennwort vergessen... 3 Startseite nach dem Login... 4 Umfrage erstellen... 4 Fragebogen Vorschau... 7 Umfrage fertigstellen... 7 Öffentliche

Mehr

Intranet E-Mail Moodle

Intranet E-Mail Moodle Intranet E-Mail Moodle Manual für Lernende V1.0 1 / 8 Inhaltsverzeichnis Übersicht... 3 1. Intranet... 3 2. Anmeldenamen... 4 3. Passwort... 4 3.1 Erste Anmeldung... 4 3.2 Passwort ändern... 5 3.3 Passwort

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr

Der Kalender im ipad

Der Kalender im ipad Der Kalender im ipad Wir haben im ipad, dem ipod Touch und dem iphone, sowie auf dem PC in der Cloud einen Kalender. Die App ist voreingestellt, man braucht sie nicht laden. So macht es das ipad leicht,

Mehr

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Bedienungsanleitung für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Matthias Haasler Version 0.4 Webadministrator, email: webadmin@rundkirche.de Inhaltsverzeichnis 1 Einführung

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma:

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma: Anwendungsbeispiele Neuerungen in den E-Mails Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Neuerungen in den E- Mails 2 Was gibt es neues? 3 E- Mail Designs 4 Bilder in E- Mails einfügen 1 Neuerungen

Mehr

Lokale Installation von DotNetNuke 4 ohne IIS

Lokale Installation von DotNetNuke 4 ohne IIS Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014 Konfiguration VLAN's Version 2.0.1 Deutsch 01.07.2014 In diesem HOWTO wird die Konfiguration der VLAN's für das Surf-LAN der IAC-BOX beschrieben. Konfiguration VLAN's TITEL Inhaltsverzeichnis Inhaltsverzeichnis...

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

Mehr

Bilder zum Upload verkleinern

Bilder zum Upload verkleinern Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Version 1.0 Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten In unserer Anleitung zeigen wir Dir, wie Du Blogbeiträge

Mehr

ALF-BanCo - Chipkarte einrichten in 3 Schritten

ALF-BanCo - Chipkarte einrichten in 3 Schritten ALF-BanCo - Chipkarte einrichten in 3 Schritten 1. Schritt: Installation ALF-BanCo und Chipkartenleser Installieren Sie zunächst die aktuellste Version von ALF-BanCo Stecken Sie das Chipkartenlesegerät

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

TELIS FINANZ Login App

TELIS FINANZ Login App Installation & Bedienung der TELIS FINANZ Login App 1. Voraussetzungen - Android Version 4.0 oder höher - Uhrzeit automatisch gestellt - Für die Einrichtung wird einmalig eine Internetverbindung benötigt

Mehr

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst. 40-Tage-Wunder- Kurs Umarme, was Du nicht ändern kannst. Das sagt Wikipedia: Als Wunder (griechisch thauma) gilt umgangssprachlich ein Ereignis, dessen Zustandekommen man sich nicht erklären kann, so dass

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Tutorial. In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern.

Tutorial. In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern. Tutorial In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern. Zu Beginn müssen wir uns über die gewünschten Sprachen Gedanken machen. Zum einem, da eine professionelle

Mehr

Gruppenrichtlinien und Softwareverteilung

Gruppenrichtlinien und Softwareverteilung Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden

Mehr

QTTabBar Einrichtung, ein Tutorial

QTTabBar Einrichtung, ein Tutorial QTTabBar Einrichtung, ein Tutorial Von Heiko Schulze Eines der ganz entscheidenden Dinge, das im Explorer fehlt ist das tabunterstützte Navigieren. Dafür gibt es bereits seit Jahren die QTTabBar. Sie wurde

Mehr

Jederzeit Ordnung halten

Jederzeit Ordnung halten Kapitel Jederzeit Ordnung halten 6 auf Ihrem Mac In diesem Buch war bereits einige Male vom Finder die Rede. Dieses Kapitel wird sich nun ausführlich diesem so wichtigen Programm widmen. Sie werden das

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Scala & Lift. Ferenc Lajko 04.02.2010

Scala & Lift. Ferenc Lajko 04.02.2010 Scala & Lift Ferenc Lajko 04.02.2010 Gliederung 1. Scala 1.1. Allgemein 1.2. Merkmale 1.3. Unterschiede zu Java 1.4. Code-Beispiel 1.5. Vorteile zu anderen Sprachen 2. Lift 2.1. Allgemein 2.2. Idee 2.3.

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation (Bei Abweichungen, die bspw. durch technischen Fortschritt entstehen können, ziehen Sie bitte immer das aktuelle Handbuch

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client

Mehr

Änderungsbeschreibung HWS32 SEPA Überweisungen

Änderungsbeschreibung HWS32 SEPA Überweisungen Änderungsbeschreibung HWS32 SEPA Überweisungen Inhaltsverzeichnis SEPA ÜBERWEISUNGEN... 2 INSTALLATION... 2 ÄNDERUNGEN IN DER ADRESSVERWALTUNG... 4 ÄNDERUNGEN IM RECHNUNGSEINGANGSBUCH... 5 DIE ÜBERWEISUNGSPROGRAMME

Mehr

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis www.wir-lieben-shops.de 1

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis www.wir-lieben-shops.de 1 Beispiel Shop-Eintrag Ladenlokal & Online-Shop. Als Händler haben Sie beim Shop-Verzeichnis wir-lieben-shops.de die Möglichkeit einen oder mehrere Shop- Einträge zu erstellen. Es gibt 3 verschiedene Typen

Mehr

Visual Basic Express Debugging

Visual Basic Express Debugging Inhalt Dokument Beschreibung... 1 Projekt vorbereiten... 1 Verknüpfung zu Autocad/ProStructures einstellen... 2 Debugging... 4 Autocad/ProSteel Beispiel... 5 Dokument Beschreibung Debuggen nennt man das

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Serienbrief aus Outlook heraus Schritt 1 Zuerst sollten Sie die Kontakte einblenden, damit Ihnen der Seriendruck zur Verfügung steht. Schritt 2 Danach wählen Sie bitte Gerhard Grünholz 1 Schritt 3 Es öffnet

Mehr

INSTALLATION VON INSTANTRAILS 1.7

INSTALLATION VON INSTANTRAILS 1.7 INSTALLATION VON INSTANTRAILS 1.7 InstantRails 1.7 ist ein Paket, das Ruby, Rails, Apache, MySQL und andere Tools, z.b. phpmyadmin in vorkonfigurierter Form enthält. Das Paket muss in einem Verzeichnis

Mehr

icloud nicht neu, aber doch irgendwie anders

icloud nicht neu, aber doch irgendwie anders Kapitel 6 In diesem Kapitel zeigen wir Ihnen, welche Dienste die icloud beim Abgleich von Dateien und Informationen anbietet. Sie lernen icloud Drive kennen, den Fotostream, den icloud-schlüsselbund und

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications Windows 8 Systemsteuerung > Programme > Windows Features aktivieren / deaktivieren > Im Verzeichnisbaum

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

ISA Server 2004 - Best Practice Analyzer

ISA Server 2004 - Best Practice Analyzer ISA Server 2004 - Best Practice Analyzer Die Informationen in diesem Artikel beziehen sich auf: Microsoft ISA Server 2004 Seit dem 08.12.2005 steht der Microsoft ISA Server 2004 Best Practice Analyzer

Mehr

Text-Zahlen-Formatieren

Text-Zahlen-Formatieren Text-Zahlen-Formatieren Beobachtung: Bei der Formatierung einer Zahl in eine Textzahl und umgekehrt zeigt Excel ein merkwürdiges Verhalten, welches nachfolgend skizziert werden soll: Wir öffnen eine neue

Mehr

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE Dezernat 6 Abteilung 4 Stand: 14.Oktober 2014 Inhalt 1. Einleitung 3 2. Räume & gemeinsame Termine finden 3 3. Rüstzeit 8 4. FAQ: Oft gestellte

Mehr

Bilder Schärfen und Rauschen entfernen

Bilder Schärfen und Rauschen entfernen Bilder Schärfen und Rauschen entfernen Um alte Bilder, so wie die von der Olympus Camedia 840 L noch dazu zu bewegen, Farben froh und frisch daherzukommen, bedarf es einiger Arbeit und die habe ich hier

Mehr

So richten Sie Outlook Express ein. Einrichten von Outlook Express (hier am Beispiel von Outlook Express 6) für den Empfang meiner E-Mails

So richten Sie Outlook Express ein. Einrichten von Outlook Express (hier am Beispiel von Outlook Express 6) für den Empfang meiner E-Mails Artikel-ID Produktkategorien Datum: 545 PowerWeb Pakete Premium Pakete WebVisitenkarte A / C / M 25.11.2004 So richten Sie Outlook Express ein Einrichten von Outlook Express (hier am Beispiel von Outlook

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

etermin Einbindung in Outlook

etermin Einbindung in Outlook etermin Einbindung in Outlook 1. Einführung Über etermin gebuchte Termine können bei Bedarf auch mit externen Terminkalendern, wie zum Beispiel Outlook, ical oder Google synchronisiert werden. Dieses Dokument

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Aufklappelemente anlegen

Aufklappelemente anlegen Aufklappelemente anlegen Dieses Dokument beschreibt die grundsätzliche Erstellung der Aufklappelemente in der mittleren und rechten Spalte. Login Melden Sie sich an der jeweiligen Website an, in dem Sie

Mehr