ElasticSearch ist ein OpenSource Java Suchserver auf Basis des Apache Lucene Projekts, jedoch ohne dessen vergleichsweise hohe Komplexität und Konfigurationsaufwand. Autor von ElasticSearch ist Shay Banon aus Israel. Die Hauptgründe ElasticSearch einzusetzen liegen in der Einfachheit, der Skalierbarkeit und der JSON/HTTP Schnittstelle bei der schemalos, dokumentenorientiert (JSON-Dokumente, NoSQL-mäßig) indiziert und gesucht werden kann. ElasticSearch ist extrem schnell, quasi Echtzeit und kann seine Daten auf mehrere Clusterknoten (Nodes) horizontal verteilen.
In diesem Artikel möchte ich ElasticSearch vorstellen, sowie eine Rails Blog-Anwendung mit Hilfe des Gems Tire an die ElasticSearch anbinden.
Screencast: Bildbearbeitung mit RMagick
In diesem Screencast zeigt Ryan wie Bilder mit RMagick verändert und/oder verarbeitet werden. Teil des Screencastes widmet er auch CarrierWave das in Kombination mit RMagick für die Verarbeitung von hochgeladenen Bildern eingesetzt werden kann.
Screencast: Bullet
Bullet ist ein Ruby gem das die abgesetzten SQL Befehle analysiert und beim Endecken von Verbesserungspotial den Anwender auf diese hinweist.
Es unterstützt dabei eine Vielzahl an Benachrichtigungsmöglichkeiten.
Screencast: Ransack
Mit Ransack können auf eine Weise komplexe und anspruchsvolle Suchformulare erstellt werden. Es unterstützt auch bei der Darstellung der Suchergebnisse, indem es sortierbare Listen und dynamische Suchseiten erstellt.
Screencast: MiniProfiler
MiniProfiler erlaubt es sich Geschwindigkeitsmessungen direkt auf der aufgerufenen Seite anzuschauen. Dabei werden auch die aufgerufenen SQL Befehle und wenn gewünscht Messungen für ausgesuchte Code-Blöcke.
Screencast: Sidekiq
Sidekiq erlaubt es Prozesse im Hintergrund asynchron weiter zu verarbeiten während die Applikation bereits neue Anfragen entgegen nehmen kann. Es verwendet dabei Threads anstatt Forks und geht dadurch effizienter mit Resourcen um als vergleichsweise Resque.
Wenn der Durchschnittswert für ein Bewertungssystem oder die Summe von abgegebenen Stimmen berechnet werden müssen, dann lohnt sich ein Blick auf das activerecord-reputation-system gem. Ryan zeigt in diesem Screencast wie es verwendet wird und wie eine selbsterstellte Basis-Version gebaut werden kann.
Für Datenexporte wird häufig CSV und/oder Excel eingesetzt. In Rails ist es relativ einfach diese Formate zur Verfügung zu stellen. Wie dies funktioniert, welche Optionen zur Verfügung stehen und wie ein Excel-Export in verschiedenen Formaten aussehen kann, zeigt Ryan in diesem Screencast.
In diesem Screencast zeigt Ryan wie eine neue Facebook erstellt und konfiguriert werden kann. Zusätzlich zeigt er wie das omniauth-facebook gem eingesetzt wird.
Screencast: Brakeman
Brakeman ist ein Ruby-Gem mit dem der eigene Ruby-Code innerhalb einer Rails Applikation auf bekannte Sicherheitslücken geprüft werden kann. In diesem Screencast zeigt Ryan wie es eingesetzt werden kann.
Screencast: Session Hijacking
Wenn nach einer Benutzer-Authentifizierung die zugehörigen Cookies über eine unsichere Verbindung ausgetauscht werden, kann dies das Ziel für Session-Hijacking-Angriffe werden. Was in einem solchen Fall getan werden muss und wie dies vermieden werden kann zeigt Ryan in diesem Screencast.
Screencast: Squeel
Squeel bietet eine umfangreiche DSL an um SQL Abfrage in Ruby zu erstellen. Es baut auf ARel auf und bietet somit auch Zugriff auf dessen Features.
Screencast: APIs schützen
Es gibt viele Möglichkeiten den Zugriff auf APIs zu schützen. In diesem Screencast zeigt Ryan erst einen möglichen Schutz über HTTP Basic Auth und später über Tokens die als Parameter übertragen werden.
Screencast: Versionierung von REST APIs
APIs sollten konsistent sein. Dies ist allerdings schwer zu bewerkstelligen wenn verschiedene Formate unterstützt werden und/oder die APIs sich weiterentwickeln. In diesem Screencast zeigt Ryan wie eine API-Versionierung über die URL oder HTPP-Header realisiert werden können.
Screencast: Das Rails API Gem
Applikationen die eine reine API zur Verfügung erstellen kommen immer häufiger vor und haben einen anderen Anspruch als konventionelle Web-Applikationen. Sie benötigen in der Regel keine/andere Views um Daten zur Verfügung zu stellen. In Rails kann für Applikationen die hauptsächlich APIs anbieten das Rails API Gem eingesetzt werden. Ryan zeigt in dieser Woche wie es verwendet werden kann.
Screencast: Mehrseitige Formulare mit Wicked
Mehrseitige Formulare sind nicht immer einfach zu erstellen. Wicket ist ein Plugin das genau diese Nische bedient und die Erstellung vereinfacht. Mit Wicket lassen sich Controller in eine Serie von Schritten verwandeln um seitenweise Daten zu erfassen.
Screencast: Queue Classic
Nachdem letzte Woche PostgreSQL allgemein vorgestellt wurde, geht es diese Woche weiter mit weiteren Features für die PostgreSQL benutzt werden kann. Neben der normal Datenbank-Funktionalität kann PostgreSQL auch als Queue für die Prozess-Verarbeitung eingesetzt werden. Somit wäre es nicht nötig noch eine zusätzliche Komponente für Hintergrundprozesse zu installieren und zu verwalten. Ryan zeigt diese Woche wie dies alles mit queue_classic gelöst werden kann.
Screencast: Migration nach PostgreSQL
PostgreSQL ist eine objekt-orientierte open source Datenbank. Sie ist zwar nicht so weit verbreitet wie MySQL stellt jedoch eine interessante Alternative im Enterprise-Bereich. Ryan zeigt in diesem Screencast wie er von SQLite nach PostgreSQL wechselt und welche Dinge man dabei beachten muss.
Screencast: DataTables
DataTables erleichtert die Erstellung von Tabellen in HTML und unterstützt dabei seitenweise Navigation, Sortierung und Suchen. Ryan zeigt in diesem Screencast wie es in Rails eingesetzt werden kann.
Screencast: Globalize3
Rails bringt bereits standardmäßig die Möglichkeit mit eine mehrsprachige Applikation zu bauen. Dazu werden Textbausteine in Yaml-Dateien erstellt und in der Applikation verwendet. Dies reicht in den meisten Fällen aus, aber ist nur bedingt geeignet um große und dynamisch erstellte Textmengen zu verwalten. Hier hat Globalize3 seine Stärken. Globalize3 ist ein Gem mit welchem mehrsprachige Texte in Datenbanken verwaltet werden kann. Es ist relativ einfach einzubinden und zu verwenden . Ryan zeigt in diesem Screencast wie es funktioniert.
Suchen auf rubyonrails.de
Tags
2.0 ActiveRecord Ajax Authentication Buch Capistrano Controller Enterprise Event Formulare Gewinnspiel Grundlagen IDE irb jQuery Kochbuch Konferenz MySQL OReilly Passenger Performance Phusion Plugin PragProgs Rails Rails 3 Rails 3.1 Release Release Candidate Routing Ruby RubyGems rubyonrails.de Ryan Bates Sass Screencast Script-Tip Security Test Tools Tutorial Upgrade Video Views WindowsAktuelle Artikel
- Ruby on Rails Volltextsuche mit ElasticSearch und Tire
- VHS on Rails
- Screencast: Bildbearbeitung mit RMagick
- Screencast: Bullet
- Screencast: Ransack
- Screencast: MiniProfiler
- Screencast: Sidekiq
- Screencast: Active Records Reputation System
- Screencast: Datenexport nach Excel oder CSV
- Screencast: Authentifizierung über Facebook
Artikel Archiv
- October 2012
- August 2012
- July 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- May 2009
- April 2009
- March 2009
- February 2009
- December 2008
- November 2008
- August 2008
- July 2008
- June 2008
- May 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
Aktuelle Rails Version + Abhängigkeiten:
Gem rails-3.0.0actionmailer (= 3.0.0, runtime)
actionpack (= 3.0.0, runtime)
activerecord (= 3.0.0, runtime)
activeresource (= 3.0.0, runtime)
activesupport (= 3.0.0, runtime)
bundler (~> 1.0.0, runtime)
railties (= 3.0.0, runtime)
Rails auf Rubyforge
Rails auf Github