Freies Rails Magazin: Ausgabe 7

Das frei erhältliche Rails-Magazine ist in der siebten Ausgabe erschienen. Diese Ausgabe umfasst 28 Seiten und behandelt die Themen: Refinery CMS, Hobo, Rails auf Windows und mehr.

Das Inhaltverzeichnis der aktuellen Ausgabe:

  • Editorial by Rupak Ganguly
  • An Overview of Refinery – a Rails CMS by David Jones
  • Converting A Rails Site to Refinery CMS by Christopher W. Lehman
  • Auditing plugin by Mihai Târnovan and Gabriel Târnovan
  • Hobo – Making Application Development on Rails Even Faster by Dave Reynolds
  • Installing Ruby on Rails on Windows by Victor Thiago
  • Simple Unobtrusive Ruby/Rails Debugging by Stephen Rycyk
  • A Well Kept Secret, Ruby and Cryptography by Richard Penwell

Die digitale Version als PDF ist unter folgendem Link verfügbar: Download

Die gedruckte Version ist nicht kostenlos und kann unter http://railsmagazine.com/issues/7 bestellt werden.

Ruby on Rails 3: Moderne Webentwicklung mit Ruby

Ruby on Rails ist eines der beliebtesten Frameworks im Bereich der Webentwicklung. Einer der Hauptgründe dafür ist die geringe Einarbeitungszeit, da das Model-View-Controller-Konzept (MVC) klar zu erkennen ist. Ruby on Rails gibt uns sehr schnell Feedback über das Ergebnis unserer Arbeit, wodurch die Entwicklung von Webanwendungen sehr viel Spaß mit sich bringt.

Ruby on Rails wurde von David Heinemeier Hansson bei der Entwicklung von Basecamp extrahiert und erblickte im Juli 2004 das Licht der Open-Source-Welt. Mit der Zeit hat sich eine gigantische Community und ein Core Team, welches die Entwicklung koordiniert, um das Projekt gebildet. Ruby on Rails wird mit der Version 3 erwachsen und fit für den Enterprise Bereich. Den Autoren Michael Voigt und Stefan Tennigkeit – selbst Ruby-Entwickler – gelang es, das komplexe Themengebiet unter dem Aspekt der praktischen Umsetzung in verständlicher Art und Weise zu beschreiben. Das eigene Fachwissen sowie die persönlichen Erfahrungen der Autoren im Umgang mit Ruby on Rails werden durch zahlreiche Abbildungen, Tabellen und Quelltext-Beispiele einer produktiv gestellten Webanwendung (www.kraeftemessen.com) ergänzt. Durch diese deutliche Praxisorientierung schaffen es die Autoren anhand von alltagspraktischen Anwendungsfällen, Themen wie beispielsweise HAML und SASS, Release- und Sourcecode-Management mit Capistrano, Test Driven Development, Volltextsuche mit Sphinx, Geokoordinaten inhaltlich und methodisch zu verdeutlichen.

Subversion und .svn Verzeichnisse finden und löschen

Subversion, häufig abgekürzt SVN gennant, ist eine Quellcode-Versionierungssoftware und hat vor ein paar Jahren das bis dahin etablierte CVS (Concurrent Version System) an vielen Stellen abgelöst. Auch wenn GIT nun an vielen Stellen SVN ablöst, ist die Software noch in vielen Betrieben erfolgreich im Einsatz. Nicht zuletzt, weil es eine weite Unterstützung in Form von Plugins in IDEs, GUIs und Tools gibt.
Ein mit SVN versioniertes Software-Projekt erkennt man häufig an der Verzeichnisstruktur. Solange der Quellcode noch versioniert wird, befinden sich .svn Verzeichnisse in allen Projekt-Ordnern und das Repository, das die zentrale „Ablage-Stelle“ auf einem Server darstellt, ist in der Regel nach einem bestimmten Muster aufgebaut.

Viele folgen der Empfehlung das zentrale SVN-Repository/Archiv mit Unterverzeichnisse zu strukturieren, die den jeweiligen Software-Status widerspiegeln. „trunk“ für die aktuelle Entwicklung, „stable“ für den stabilen Stand, „branches“ und „tags“ für unabhängige Entwicklungslinien mit der gleichen Historie. Die letztgenannten fließen häufig in den Hauptzweig zurück.

 

Für jede Datei in einem Projekt merkt sich Subversion zwei essentielle Informationen in einem eigenen Verwaltungsbereich. Dieser Bereich sind die .svn-Verzeichnisse die in jedem Projekt-Order zu finden sind. Dort merkt sich SVN auf welcher Revision die Arbeitsdateien aufbauen und den Zeitstempel der letzten Aktualisierung.

 

Die .svn-Verzeichnisse werden nur während der Entwicklung benötigt und sind auf produktiven System eher unerwünscht. Subversion ermöglicht durch den Unterbefehl „export“ eine unversionierte Version eines Projekts zu erstellen. Die exportierte Version ist frei von den subversion-spezifischen Dateien und Verwaltungsbereichen. Dennoch kommt es hin und wieder vor, dass man in einer lokalen Kopie (auf dem eigenen Rechner oder auf dem Server) die .svn löschen möchte, weil zum Beispiel gerade in diesem Augenblick nicht die Möglichkeit besteht einen Export zu generieren.

 

Die folgende Bash-Scriptzeile kann benutzt werden, um alle .svn-Vezeichnisse und Dateien die mit „._“ beginnen zu finden und zu löschen.

[bash]
find . -name ".svn" -prune -o -name "._*" -exec rm -rf {} ;
[/bash]

Windows-Benutzer können die Script-Zeile in einer Cygwin-Shell verwenden.

 

Typische SVN-Kommandos die täglich eingesetzt werden:

[bash]
#———————————————————————-
# Eine lokale Kopie eines Projektes aus dem zentralen Archiv erstellen
#———————————————————————-
svn checkout svn://example.com/svn/trunk # über das svn-Protokoll
svn checkout https://example.com/svn/trunk # über HTTP

#———————————————————————-
# Basis-Befehle
#———————————————————————-
svn up # Kurzform für "svn update"; Aktualisiert die lokale
# Version auf den Stand des zentralen Repository
svn add [Datei] # Fügt eine Datei zu dem Projekt hinzu
svn ci -m "Nachricht" # Kurzform für ’svn commit -m "Nachricht"‘;
# Überträgt die eigenen Änderungen in das
# zentrale Repository
svn log # Zeigt die Historie eines Projektes

#———————————————————————-
# Arbeiten mit Verzeichnissen und Dateien
#———————————————————————-
svn copy Datei-A Datei-B # Erstellt eine Kopie von "Datei-A" unter
# dem Namen "Datei-B" und nimmt diese
# in die Versionierung auf
svn mkdir MeinNeuesVerzeichnis # Erstellt ein Verzeichnis mit dem Namen
# "MeinNeuesVerzeichnis" und nimmt es in
# die Versionierung auf
svn mv Datei-A Datei-B # Benennt eine Datei mit dem Namen
# "Datei-A" nach "Datei-B" um. Die Historie
# bleibt dabei erhalten
svn rm Datei-A # Löscht "Datei-A" und nimmt diese aus der
# Versionierung raus

#———————————————————————-
# Verschiedenes/Nützliches
#———————————————————————-
svn status # Zeigt den Status (Veränderugen) der lokalen Version an.
svn diff # Zeigt den Unterschiede im Unix-Diff-Format an.
# Die Ausgabe kann in eine Datei umgeleitet
# werden, um einen Patch zu erstellen
svn revert # Verwirft die eigenen und noch nicht übergebenen Änderungen.
# Dabei wird die lokale Version auf die letztbekannte
# Version gebracht
svn info # Zeigt allgemeine Informationen zu einem Projekt
[/bash]

Subversion bringt weit mehr Befehle mit, um die volle Kontrolle über die Versionierung zu behalten, aber dies würde den Rahmen dieses Artikels sprengen. Weiterhin kapseln Werkzeuge wie Tortoise-SVN diese Befehle und Funktionen in einer GUI, um die Arbeit zu vereinfachen. Dennoch ist es sinnvoll mit den direkten Befehlen umgehen zu können, falls eine GUI nicht zur Verfügung steht.
Interessierte, die mehr über Subversion und dessen Möglichkeiten erfahren wollen, finden in folgenden Büchern alles Wissenswerte über dieses Tool.

 

Dieses Buch ist auch in einer freien digitalen Version unter folgender Adresse erhältlich: http://svnbook.red-bean.com/

 

Rails Magazine 6

Das Railsmagazine ist in der sechsten Version erschienen. Auch diese Ausgabe enthält Artikel zu unterschiedlichen Bereichen aus der Rails-Welt. Diese reichen von HAML, Scaling bis hin zu RVM.

 

Inhalt dieser Ausgabe:

  • Beautifying Your Markup With Haml and Sass by Ethan Gunderson
  • Scaling Rails by Gonçalo Silva
  • Interview with Sarah Allen by Rupak Ganguly
  • Data Extraction with Hpricot by Jonas Alves
  • Deployment with Capistrano by Omar Meeky
  • Fake Data – The Secret of Great Testing by Robert Hall
  • RubyConf India 2010 coverage by Judy Das
  • Previous and Next Buttons by James Schorr
  • RVM – The Ruby Version Manager by Markus Dreier
  • Interview with Michael Day of Prince XML by Olimpiu Metiu
 

Die PDF-Version steht unter folgendem Link zum Download bereit:

http://pdf.railsmagazine.com/rails-magazine-issue6.pdf

 

Auf der Magazinseite kann auch die Papierform bestellt werden:

http://railsmagazine.com/issues/6

5 freie Kapitel aus Ruby Best Practices

Ruby Best Practices, aus dem OReilly-Verlag, stellt die ersten fünf Kapitel des Buches frei zu Verfügung. Der Autor Gregory Brown war schon längere Zeit daran interessiert das Buch unter Creative Common License anzubieten und OReilly hat ihm nun den Wunsch erfüllt.

 

Die Kapitel stehen einzeln im PDF Format bei Github für den Download bereit:

 
 

Das gesamte Werk ist auch als eBook bei OReilly erhältlich.

eBooks über Rails und Ruby

OReilly hat einen Teil seiner Werke auch als eBooks veröffentlich. Nutzer von IPhone und IPod Touch können neben den PDF-Versionen auch im ITunes-Store die Bücher erwerben. Diese liegen im epub-Format vor und können so bequem auf dem Gerät gelesen werden.

 

Ein weiterer Vorteil dieser Version ist, dass sie um einiges günstiger als die Papier-Variante sind.

Wir haben euch ein paar Bücher rund um das Thema Ruby und Rails rausgepickt

 

(Die iTunes-Buttons sind Affiliatelinks und öffnen die ITunes-Applikation)

Reguläre Ausdrücke: Reguläre Ausdrücke

 

Die Programmiersprache Ruby: Die Programmiersprache Ruby

 

Ruby Best Practices: Ruby Best Practices

 

Ruby Cookbook: Ruby Cookbook

 

The Ruby Programming Language: The Ruby Programming Language

 

Rails: Up and Running: Rails: Up and Running

 

RESTful Web Services: RESTful Web Services

 

Rails Cookbook: Rails Cookbook

REST und HTTP: Einsatz der Architektur des Web für Integrationsszenarien

Das Buch bietet eine theoretisch fundierte, vor allem aber praxistaugliche Anleitung zum professionellen Einsatz von RESTful HTTP. Es beschreibt den Architekturstil REST (Representational State Transfer) und seine Umsetzung im Rahmen der Protokolle des World Wide Web (HTTP, URIs und andere). Es wird gezeigt, wie man klassische Webanwendungen und Webservices so entwirft, dass sie im Einklang mit den Grundprinzipien des Web stehen und seine vielen Vorteile ausnutzen.

Nach einer kurzen Einleitung, die die Grundprinzipien vermittelt (Ressourcen, Repräsentationen, Hyperlinks, Content Negotiation), wird ein vollständiges praktisches Beispiel vorgestellt. Danach werden die einzelnen Konzepte sowie fortgeschrittene Themen wie Caching, Dokumentation und Sicherheit detailliert betrachtet. Schließlich wird eine erweiterte Form der Beispielanwendung entwickelt, um die Umsetzung der fortgeschrittenen Konzepte zu demonstrieren.

Den Quellcode der Beispiele, Ergänzungen und diverse Online-Ressourcen finden Sie auf der Website zum Buch.

 

Über den Autor

Stefan Tilkov beschäftigt sich seit Beginn der 90er-Jahre mit Architekturansätzen für große, verteilte Systemlandschaften. Von 1993 bis 1998 war er in verschiedenen Rollen bei einem mittelständischen Softwarehaus tätig, zuletzt als Leiter des Bereichs Anwendungsentwicklung, bevor er 1999 die Technologieberatung innoQ Deutschland GmbH mitgründete. Als Geschäftsführer und Principal Consultant beschäftigt er sich dort schwerpunktmäßig mit modellgetriebenen Softwareentwicklungsansätzen und serviceorientierten IT-Architekturen.

 

Distributed Programming with Ruby

“A must have title for the well-rounded Ruby programmer building advanced Rails applications and large systems!”

OBIE FERNANDEZ, Series Editor

Complete, Hands-On Guide to Building Advanced Distributed Applications with Ruby
Distributed programming techniques make applications easier to scale, develop, and deploy—especially in emerging cloud computing environments. Now, one of the Ruby community’s leading experts has written the first definitive guide to distributed programming with Ruby.

Mark Bates begins with a simple distributed application, and then walks through an increasingly complex series of examples, demonstrating solutions to the most common distributed programming problems.

Bates presents the industry’s most useful coverage of Ruby’s standard distributed programming libraries, DRb and Rinda. Next, he introduces powerful third-party tools, frameworks, and libraries designed to simplify Ruby distributed programming, including his own Distribunaut.

If you’re an experienced Ruby programmer or architect, this hands-on tutorial and practical reference will help you meet any distributed programming challenge, no matter how complex.

Coverage includes

•   Writing robust, secure, and interactive applications using DRb—and managing its drawbacks

•   Using Rinda to build applications with improved flexibility, fault tolerance, and service discovery

•   Simplifying DRb service management with RingyDingy

•   Utilizing Starfish to facilitate communication between distributed programs and to write MapReduce functions for processing

large data sets

•   Using Politics to customize the processes running on individual server instances in a cloud computing environment

•   Providing reliable distributed queuing with the low-overhead Starling messaging server

•   Implementing comprehensive enterprise messaging with RabbitMQ and Advanced Message Queuing Protocol (AMQP)

•   Offloading heavyweight tasks with BackgrounDRb and DelayedJob

Programming Google App Engine

As one of today’s cloud computing services, Google App Engine does more than provide access to a large system of servers. It also offers you a simple model for building applications that scale automatically to accommodate millions of users. With Programming Google App Engine, you’ll get expert practical guidance that will help you make the best use of this powerful platform. Google engineer Dan Sanderson shows you how to design your applications for scalability, including ways to perform common development tasks using App Engine’s APIs and scalable services.

You’ll learn about App Engine’s application server architecture, runtime environments, and scalable datastore for distributing data, as well as techniques for optimizing your application. App Engine offers nearly unlimited computing power, and this book provides clear and concise instructions for getting the most from it right from the source.

  • Discover the differences between traditional web development and development with App Engine
  • Learn the details of App Engine’s Python and Java runtime environments
  • Understand how App Engine handles web requests and executes application code
  • Learn how to use App Engine’s scalable datastore, including queries and indexes, transactions, and data modeling
  • Use task queues to parallelize and distribute work across the infrastructure
  • Deploy and manage applications with ease