There is a rework of the data driven deployment of java web applications. This Vagrant project on github ( https://github.com/iteh/vagrant-demos/ ) showcases the application cookbook for chef with a reworked application definition and LWRP for Tomcat.

Chef Application Cookbook Showcase

Dieses Vagrant Projekt auf unserem Github Repository ( https://github.com/iteh/vagrant-demos/ ) zeigt die Verwendung des Application Cookbooks für Chef

In diesem Beispiel zeigen wir die Installation von Wordpress in einem Ubuntu LAMP Stack. Weiters wird das JSON-Api Plugin für Wordpress und ein Theme installiert. Danach wird mit Mechanize der Wordpress Blog automatisch installiert und konfiguriert. Anschliessend erzeugen wir noch Einträge im Wordpress Blog indem wir Postings von einer Facebook Page und von einem Tumblr Blog über deren API abfragen und mit der JSON Wordpress API dem Blog hinzufügen.

Das Symptom

Tomcat reagiert nur mehr mit einer HTTP 500 Fehlermeldung. In den Catalina Logfiles (catalina.out) sieht man Einträge der Art:


org.apache.tomcat.jni.Error: Too many open files
       at org.apache.tomcat.jni.Socket.accept(Native Method)
       at org.apache.tomcat.util.net.AprEndpoint$Acceptor.run(AprEndpoint.java:1110)
       at java.lang.Thread.run(Thread.java:619)
Mar 12, 2009 12:01:34 PM org.apache.tomcat.util.net.AprEndpoint$Acceptor run
SEVERE: Socket accept failed

Im Posting Vagrant: Sind Sie bereit Ihren Umgang mit IT Infrastruktur zu revolutionieren? haben wir die Installation von Vagrant kennengelernt und einen Apache Webserver installiert. Nun wollen wir eine Virtuelle Machine vorbereiten mit der man Wordpress Seiten ausprobieren bzw. entwickeln kann.

Vargant ist ein Tool für das Erstellen und Verbreiten von virtualisierten Entwicklungsumgebungen.

Vagrant baut hier auf Ruby auf und ermöglicht es, ausgehend von einer Basis Installation, automatisiert spezielle Entwicklungsumgebungen aufzubauen. Die Beschreibung der aktuellen Infrastruktur wird mit dem ausgezeichneten Provisionierungs Tool Chef von Opscode gemacht. Damit hat man nun die Möglichkeit jedem Entwickler eine reproduzierbare und portable Entwicklungsumgebung zur Verfügung zu stellen.

Eine kleine Sammlung an Links zu Thema Facebook Fan Page und Recht:

Was versteckt sich hinter dem Kürzel RSS? “Was ist ein RSS Feed?”, wurden wir schon oft gefragt und denken, dass es allmählich an der Zeit ist, etwas Licht in diese Ecke der IT zu bringen. Zunächst werden wir erklären, wie man RSS als Internetnutzer verwenden kann und danach zeigen wir, was das ganze mit Facebook zu tun hat.

Möchten Sie bei unserem Weblog am Laufenden bleiben? Es gibt verschiedene Möglichkeiten, um die letzten Neuigkeiten unseres Webauftrittes mitzubekommen. Die meistgenutzte Variante ist einen unserer RSS Feeds zu den verschiedenen Themen zu abonnieren. Was aber ist nun so ein RSS Feed?

Neuere Versionen von Chef von Opscode stellen eine interessante Ressource zur Verfügung: ruby_block

Das sind wirklich tolle Neuigkeiten, denn damit lassen sich schnell Lösungen implementieren.

Beispielsweise kann man damit einen speziellen HTTP Request während eines Chef Laufes machen: einen GET Request an den localhost, aber mit dem Host Header auf einen FQDN gesetzt:

Radiant ist ein auf das wesentliche reduzierte, Open Source Content Management System für kleine Teams.

Die aktuelle Version ist 0.9.1 Diese Version enthält ein leistungsfähiges Erweiterungssystem. System-Entwickler können Radiant einfach auf ihre spezifischen Bedürfnisse zuschneidern.

Die Kernfunktionalität besteht aus:

  • Einer eleganten, schlanken Benutzeroberfläche
  • Flexiblen Layouts mit Templating, Snippets, Seiten Teilen, und einer eigenen Template Sprache
  • Einem First-Class-Erweiterungs / Plugin-System
  • Einfacher Benutzerverwaltung und Berechtigungen

Weitere Funktionen …

Strings in Ruby

Erstellt um 16:42 von DI Edmund Haselwanter

In den vorangegangenen Artikeln haben wir schon Strings verwendet. Es gibt zwei Arten von Strings in Ruby. Strings mit doppelten Anführungszeichen " und Strings in einfachen Anführungszeichen '. Ruby verhält sich hier also wie die meisten anderen Sprachen. Der grosse Unterschied zwischen diesen beiden Varianten ist, wie Ruby den Inhalt interpretiert. Oder eben: Wie Ruby ihn eventuell nicht interpretiert ;-)

Wie bei jeder Programmiersprache muss man sich auch bei Ruby mit der grundlegenden Syntax vertraut machen. Ruby hat eine saubere, einfache Syntax die nun anhand einiger Beispiele illustriert wird.

Im Kern ist Ruby eine objektorientierte Sprache. Alles ist ein Objekt. Yukihiro „Matz“ Matsumoto hat seine Sprache allerdings ähnlich wie C++ als „Multiparadigmen-Sprache“ entworfen. Das ermöglicht Software Entwicklern unter anderem funktionale (es gibt anonyme Funktionen, Closures und Continuations; Alle Ausdrücke haben einen Wert und Funktionen returnieren die letzte Auswertung), prozedurale (Variablen und Funktionen die ausserhalb einer Klasse definiert werden sind automatisch Teil des Root Objektes) als auch objektorientierte (alles ist ein Objekt) Programmierparadigmen einzusetzen. Weiters unterstützt Ruby auch Introspection, Reflection und Metaprogramming. Im Folgenden werden Beispiele der am weitesten verbreiteten Paradigmen gezeigt:

Die Geburtsstunde der Sprache Ruby war der 24. Februar 1993. Der Erfinder von Ruby, Yukihiro Matsumoto hatte das Ziel eine neue Sprache zu entwickeln, die sowohl die Vorzüge funktionaler als auch imperativer Programmiersprachen in sich vereint. In den Worten von Matsumoto: “I wanted a scripting language that was more powerful than Perl, and more object-oriented than Python. That’s why I decided to design my own language”. Der Weblog von Matz in English

Neue Seite Online

Erstellt um 16:42 von DI Edmund Haselwanter

Die neue Firmenwebseite ist nun online

Radiant CMS

Die Webseite wurde mit dem Content Management System Radiant realisiert.
Eine kurze Übersicht über Radiant gibt folgende Präsentation, welche beim Webmontag in Graz vorgetragen wurde.