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

This Vagrant project on github ( https://github.com/iteh/vagrant-demos/ ) showcases the application cookbook for chef

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 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?

Recent releases of chef from opscode provide a new resource: ruby_block

This is really great news as this allows for interesting problem solving.

Consider you want to do a very special HTTP request. E.g. a GET to localhost but with custom “Host” header information.

Radiant is a Open Source Content Management System fir small Teams.

The current release (as of April 2011) is 0.9.1, heading to 1.0 very soon. Radiant features a powerful extension mechanism. Rails Developer can easily extend it to customer needs.

In its core Radiant features:

  • A slim and elegant user interface
  • felixble layouts with templateing, snippets, page parts and the powerful radius templateing language
  • a very powerful extension/plugin architecture
  • simple role based user authentication and authorization

Strings in Ruby

Published on 16:42 by 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

Published on 16:42 by 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.