Donnerstag, 25. Juni 2009

Nutzung von Google Mail, Kalender, Docs und Apps an Hochschulen in Deutschland und weltweit

Googles immer weiter wachsendes Portfolio von webbasierten Anwendungen ist inzwischen offensichtlich auch für Hochschulen interessant. Über das Google Enterprise Blog werden QP1030854-1 Erfolgsgeschichten wie die von der Boise State University, bei der offenbar mehr als 20.000 Studierende plus MitarbeiterInnen auf die Google Services umgestellt wurden, verbreitet. Google selbst bündelt die Beschreibung seines Angebotes für Bildungseinrichtungen auf einer speziellen Seite.

Interessant ist für mich dabei zunächst die Frage, welche Verbreitung diese Dienste, die ja vergleichsweise jung und oft noch als Beta Version gekennzeichnet sind, inzwischen unter Hochschulen in Deutschland, aber auch weltweit erreicht haben. Im Anschluss will ich dann noch keine Beurteilung wagen, welche Vorteile die Nutzung dieser Dienste mit sich bringt, und welche Probleme bei der Einführung an einer Hochschule wohl zu bewältigen sein werden.

Wer nutzt die Google Services

Bei der Frage ‘Wer nutzt die Google Services’ ist es zum einen interessant zu fragen, in welchem Umfang denn die Services verwendet werden, zum anderen aber auch wie groß denn die jeweilige Bildungseinrichtung ist. Es macht natürlich einen Unterschied, ob man eine Hochschule mit 1.000 Studierenden umstellen, oder mit 65.000. Viele Beispiele auch von Hochschulen findet man auf der Kunden Seite der Google Apps.

USA

Hier wird nur eine kleine Auswahl von besonders umfangreichen Projekten getroffen. Laut Google soll es hunderte von Bildungseinrichtungen geben, die die Google Apps nutzen:

Hochschule #Studierende/
MitarbeiterInnen
Nutzungsumfang  

Arizona State University

65.000 Studierende

GMail, Chat, Kalender Fallstudie
Lakehead University, Ontario 38.000 Studierende und Mitarbeiter GMail, Chat und VoIP, Kalender Fallstudie
Northwestern University   GMail, Chat, Kalender Studierende forderten die Einführung
University of Maine System, Verbund von Hochschulen des Bundesstaates Maine Laut Wikipedia insgesamt ca. 34.000 Studierende. Haben einen zentralen IT Dienstleister GMail, Kalender, Docs Die Ankündigung des IT Dienstleisters geht auf Fragen wie Werbeeinblendungen und Datenbesitz ein, vorhandene Mailadressen wurden beibehalten

Australien
Hochschule #Studierende/
MitarbeiterInnen
Nutzungsumfang  
University of Adelaide 16.000 Studierende GMail ZDNet Artikel
Mails aus existierenden Accounts werden automatisch übertragen
New South Wales, Bundesstaat Der Mailservice des kompletten Bundesstaats wurde zentral vergeben, betrifft offenbar 1.3  Millionen Schüler/Studierende GMail Bloomberg Meldung
Es wurde damit eine der größten Outlook/Exchange Installationen abgelöst
Macquarie University 31.000 Studierende, 37.000 Alumni, Mitarbeiter später (Stand 2007) GMail MIS Meldung

Deutschland

Hier bin ich leider nicht wirklich fündig geworden. Zwar gibt es viele eLearning Bereiche an deutschen Hochschulen, die den Einsatz von Google Docs diskutieren, aber eine Hochschule, die die Nutzung der Google Apps zur Strategie gemacht hat, konnte ich nicht aufspüren. Also nur ein Treffer:

Hochschule #Studierende/
MitarbeiterInnen
Nutzungsumfang  
TU Chemitz   Kalender URZ Infoseite

Welche Vorteile könnte man von der Nutzung der Google Services erwarten

Was macht das Google Angebot eigentlich so attraktiv für Hochschulen? Hier ein Benutzerbekenntnis aus einer Google Seite:

Google Apps Education unterstützt die Arizona State University bei ihrer Entwicklung hin zu einer überaus flexiblen Universität, die ihren Studenten hervorragende technische Voraussetzungen bietet. Die Einbindung von Webmail, Instant Messaging und Kalenderfunktionen bei Google ist einfach konkurrenzlos.

- Kari Barlow, Vizedirektor des University Technology Office, Arizona State University

Coole|Visionäre|Moderne Services auf der Höhe der Zeit

Im Google Paket sind Dienste enthalten, die heute vermutlich zu den besten und innovativsten ihrer Art gehören. Hier nur eine minimale, sehr subjektive Aufstellung:

GMail: Hat die Art wie man mit Mail arbeitet revolutioniert. Es erscheint heute schwer vorstellbar wie man ohne thread conversations, superschnelle Suche, eingebauten Chat, Dokumentenvorschau und dergleichen jemals leben bzw. effizient arbeiten konnte. In einem Test der Stiftung Warentest hat GMail als bester Dienst abgeschnitten und Spam ist fast kein Problem mehr. Und die Studierenden sind schon da, zumindest ein signifikanter Anteil. Hinzu kommt der quasi unbegrenzte Speicherplatz von heute 7 Gigabyte. Von Hochschulen angebotene Maildienste bieten meist nur einen Bruchteil, so erhalten die Studierenden an der Universität Bielefeld 500 Megabyte große Mailpostfächer.

Kalender: Mit seiner Offenheit, Flexibilität und Kollaborationsfunktion sicher eines der führenden Produkte in diesem Segment. Der Kalender lässt sich in GMail, iGoogle und anderen Kalenderanwendungen integrieren.

Docs: Auch wenn sie weiterhin im Vergleich zur den klassischen Officepaketen weniger Funktionen bieten, so haben sie doch gerade im Bereich der Kollaboration neue Wege gezeigt, die für eine Hochschule z. B. im Bereich der elektronische Lehr-Lern-Unterstützung viel höher zu bewerten sind.

Da alle Dienste komplett webbasiert sind lassen sich Weiterentwicklungen sehr schnell ausrollen und stehen allen NutzerInnen unmittelbar zu Verfügung.

Integrationsmöglichkeiten

Google scheint im Konkurrenzkampf mit Microsoft auf Offenheit zu setzen (siehe Heise). Bestätigt wird dies durch Fallbeispiele wie das der Arizona State University, bei denen z. B. Anmeldungen über hochschuleigene CAS Dienste realisiert wurden.

Das Geld

Auf dieser Google Seite ist davon die Rede, dass die Dienste kostenlos seien. Aber möglicherweise gibt doch bestimmte Aufwendungen, wenn man wie z. B. die Grand Valley State University die Mailpostfächer werbefrei halten will. In diesem Artikel der PC Welt ist allerdings auch die Rede davon, dass für Bildungseinrichtungen die Nutzung kostenlos sei.

Die Personaleinsparung

Die Nutzung der Google Anwendungen könnte massive Entlastungen beim Betrieb der IT Infrastrukturen bringen. Dies hat zwei Gründe:

  1. Cloud Computing: Eine ganze  Reihe von bisher von der Hochschule zu betreibenden Diensten wird ausgelagert und kann von erheblich weniger Personal betreut werden. Beispiele für solche wegfallenden Services: Mailserver, eLearning Dienste, Serverbetrieb, Backup
  2. Das Web als neuer Desktop: Alle Google Anwendungen sind komplett webbasiert und lassen sich mit einer großen Anzahl von Browsern auf beliebigen Betriebssystemen nutzen. NutzerInnen dieser Dienste, die keine anderen Anwendungen brauchen, können sich an beliebigen PCs anmelden und arbeiten. Für den IT Support bedeutet dies die Option stark standardisierte, wartungsarme PC Installationen vorzunehmen.

Beide Aspekte haben das Potential das vorhandene IT Personal an Hochschulen stark zu entlasten.

Welche Probleme könnte man erwarten

Abgabe von Kontrolle

Die Nutzung der Google Dienste bedeutet den Einstieg in das Cloud Computing. Bisher direkt an der Hochschule betriebene Dienste wie Mailserver werden ausgelagert in eine technische Struktur, auf die die Hochschule keinen direkten Zugriff mehr hat. Daraus ergeben sich u. a. folgende Fragen:

  • Wie kann der Zugriff der Hochschule auf ihre Daten gesichert werden, um z. B. einen Anbieterwechsel prinzipiell offen zu halten?
    • Teilfrage: kann/soll sich die Hochschule komplett auf die Datensicherung durch den Anbieter verlassen, oder ist ein eigenes Backup notwendig?
    • Teilfrage: Was sind überhaupt die Daten der Hochschule? MitarbeiterInnen und insbesondere Studierende werden die Plattformen auch für individuelle Zwecke nutzen (private Dokumente, Mails, etc.). Dies sind dann keine Daten der Hochschule mehr
  • Wie ist eine solche Auslagerung von Daten und Datenverarbeitungen mit der Datenschutzgesetzgebung vereinbar?
  • Was sind angemessene Service Level Agreements (SLAs), wie wird die Einhaltung kontrolliert und wie werden Verstöße sanktioniert?
Vorbehalte der BenutzerInnen gegen Google

Google stößt trotz seines ‘Don’t be evil’-Mottos zunehmen auf Vorbehalte insbesondere bei Datenschützern,  denen der Informationshunger des Unternehmens suspekt ist. Im heterogenen Umfeld einer Hochschule ist auf jeden Fall damit zu rechnen, dass unter den MitarbeiterInnen und Studierenden ein Anteil vorhanden ist, der dieses Bedenken teilt.

Zum Schluss

Habe ich etwas vergessen? Gibt es weitere Hochschulen in Deutschland, die ich übersehen habe? Bin für Ergänzungen und Hinweise dankbar!

Update

Die spezielle Frage nach der Zuverlässigkeit der Google Dienste habe ich in einem späteren Blogeintrag kurz betrachtet: Zuverlässigkeit der Google Apps

Update  2

Hier zwei interessante Blogeinträge, die die Integration von Google Apps mit Learning Management Systemen (LMS) wie Moodle und Blackboard beschreiben:

In einem anderen Beitrag geht es um ein Angebot an Schulen ihren Mailservice von Googles Postini Service sicherer machen zu lassen:

Diese Beiträge zeigen, auf welch unterschiedlichen Wegen Google Angebote für Bildungseinrichtungen platziert.

Mittwoch, 24. Juni 2009

Nutzung von JSON Daten in GWT und GXT

Das Google Web Toolkit GWT bietet von Haus aus bereits eine relativ einfach nutzbare (c) H. Brune Möglichkeit Daten von Servern im JSON Format abzuholen. Hier soll ein kleiner Vergleich mit dem Möglichkeiten gezogen werden, die GXT bzw. Ext GWT bieten.

Wichtig ist dabei insbesondere die Frage, wie einfach JSON Daten mit Widgets verbunden werden können, da wir relativ viele Datensatzarten haben, die aber in mehr oder weniger gleichartigen Masken bearbeitet werden sollen. Die Frage, wie die Daten dann wieder an den Server zurück geschickt werden spielt hier erstmal keine Rolle.

Testvorbereitungen: Statische JSON Dateien

Um die Implementierung zu vereinfachen werden die JSON Daten im GWT über statische Dateien verfügbar gemacht. Im meinem über das Google Plugin automatisch erstellten Eclipse Projekt gibt es den /war-Ordner, der seid GWT Version 1.6 die komplette Webanwendung enthält. Für die statischen JSON Dateien wird dort einfach ein Unterordner angelegt, nennen wir ihn modell/.

Beispieldatei: /war/modell/abschluss.json

Inhalt der Datei:

[
{
id : 123,
name : Abschluss 1,
kuerzel : Abs1
},
{
id : 456,
name : Abschluss 2,
kuerzel : Abs2
},
]








Diese Datei kann im Jetty Server, der in Ecplise gestartet wird, unter http://localhost:8080/modell/abschluss.json abgerufen werden (bzw. unter dem konfigurierten Port).









JSON mit GWT









Hier nur eine ganze kurze Skizze wie dies funktioniert, die ausführliche Beschreibung findet sich in dieser GWT 1.6 Seite:













  1. JSON Quelle anlegen (haben wir schon)






  2. Stub Klasse anlegen, welche JSNI Methoden implementiert um direkt auf die Inhalte der JSON Struktur zuzugreifen. Instanzen der Stub Klasse werden über eine JSNI Methode generiert, die im Kern eval() aufruft (Sicherheitshinweise beachten!)







  3. Implementierung eines asynchronen RequestBuilder Aufrufes, der die JSON Daten holt und verarbeitet.







  4. Erzeugung einer Darstellung, z . B. mit einem Grid.











Wichtig: Der URL zur JSON Datei darf nicht GWT.getModuleBaseURL() vorangestellt werden, wie es im GWT Tutorial gezeigt wird. Es reicht eine Angabe dieser Art:









	private static final String JSON_URL = 
"/modell/abschluss.json";








Erfahrungen












  • Die Implementierung der Stub Klasse kann dann ärgerliche Mehrfacharbeit bedeuten, wenn es auf der Serverseite bereits entsprechende (Bean-)Klassen gibt. Hier lässt sich aber kein Reuse erzielen






  • Sobald man die Stub Klassen hat ist der Rest der Implementierung vergleichsweise einfach, abgesehen von der üblichen ‘Mühsal’ der Darstellung mit den relativ primitiven GWT Widgets










Quellcode








package com.chb.gxt2m3.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.RequestException;
import com.google.gwt.http.client.Response;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;

public class GXTTest implements EntryPoint {

public void onModuleLoad() {

Button btLaden = new Button("Laden");
RootPanel.get("buttons").add(btLaden);

btLaden.addClickHandler(new ClickHandler() {

public void onClick(ClickEvent event) {
refreshAbschluesse();

}
});
}

private static final String JSON_URL_ABS = "/modell/abschluesse.json";

private void refreshAbschluesse() {

RootPanel.get("display").clear();
RootPanel.get("display").add(
new Label("Abschlüsse werden geladen von " + JSON_URL_ABS));

RequestBuilder builder = new RequestBuilder(RequestBuilder.GET,
JSON_URL_ABS);

try {
builder.sendRequest(null, new RequestCallback() {

public void onError(Request request, Throwable exception) {
displayError("JSON Aufruf konnte nicht ausgeführt werden");
}

public void onResponseReceived(Request request,
Response response) {

if (200 == response.getStatusCode()) {

clearError();
abschluesseZeigen(asArrayOfAbsData(response.getText()));

} else {
displayError("Fehler beim JSON Aufruf ("
+ response.getStatusText() + ")");
}

}
});
} catch (RequestException e) {
displayError("Zugriff auf JSON gescheitert");
}
}

private void abschluesseZeigen(JsArray abs) {

RootPanel.get("display").clear();

if (abs == null || abs.length() == 0) {
RootPanel.get("display").add(
new Label("Keine Abschlüsse geladen..."));
} else {
Grid agrid = new Grid(abs.length() + 1, 3);
RootPanel.get("display").add(agrid);
agrid.setWidget(0, 0, new HTML("Id"));
agrid.setWidget(0, 1, new HTML("Kürzel"));
agrid.setWidget(0, 2, new HTML("Name"));

for (int idx = 0; idx < abs.length(); idx++) {
AbschlussData a = abs.get(idx);
agrid.setWidget(idx + 1, 0, new Label(""
+ a.getId()));
agrid.setWidget(idx + 1, 1, new Label(a.getKuerzel()));
agrid.setWidget(idx + 1, 2, new Label("" + a.getName()));
}
}
}

private void clearError() {
RootPanel.get("errorMsg").clear();
}

private void displayError(String error) {
clearError();
if (error != null)
RootPanel.get("errorMsg").add(new Label(error));
}

private final native JsArray asArrayOfAbsData(String json) /*-{
return eval(json);
}-*/;
}








JSON mit GXT









Eine Stärke von GXT (dessen Version 2 heute als Milestone 3 vorliegt) sind sicher die tollen Widgets und die Databinding Möglichkeiten, durch die sich Änderungen am zu Grunde liegenden Datenmodell an alle Teile der Anwendung melden lassen. Leider gibt es in der Demoseite nur ein Gridbeispiel mit einer XML Quelle. Etwas Suchen zeigt einem aber, dass es auch einen JsonReader gibt. Man kann das Beispiel also übertragen.









Ein Problem ist aber der Aufbau der JSON Datei. Offenbar sind verschachtelte Formate nicht möglich, zumindest kann man diesen Thread im ExtJS Forum wohl so verstehen.









Hier gibt es aber noch ein anderen Beispiel: http://extjs.net/forum/showthread.php?t=71978

Dienstag, 23. Juni 2009

Java, HTML und Javascript Quellcode schön im Blog darstellen?

Beim Bloggen über Themen der Programmierung kommt man schnell dazu viele Quellcode(c) H. Brune Häppchen zeigen zu wollen, damit das Gesagte direkt verdeutlicht werden kann. Ein Copy-and-Paste aus der Lieblingsentwicklungsumgebung funktioniert da leider nicht, übrig bleibt meist nur ein wirrer Worthaufen, der manuell mühselig wieder aufbereitet werden muss.

Aber es gibt Lösungen, mit denen man (fast) die Einfachheit eines Copy-and-Paste erreicht:

Google Code Prettifier

Mit dem Google Code Prettifier werden Bloginhalte mit Quellcode, sofern sie in ein bestimmtes Tag eingeschlossen werden, durch von Google geliefertes Javascript aufgehübscht. Eine Beschreibung in Deutsch findet sich im Google Watch Blog, dort wird die Menge der unterstützten Sprachen so definiert:

Unterstützt werden zur Zeit die Sprachen bash, C, C++, Java, JavaScript, Perl, Python, XML, HTML, HTMLXmp, WhiteSpace und misc1 - damit fast alle wichtigen.

Auch CSS gehört inzwischen offenbar zum Funktionsumfang dazu. Man hat also alles um z. B. eine GWT Programmierung schön zu zeigen.

Wie funktionierts

Als Vorbereitung lädt man die CSS und JS Dateien von der Prettify-Webseite. Diese Dateien muss man auf dem eigenen Webserver verfügbar machen. Es gibt dabei für die unterschiedlichen Sprachen eigene JS Dateien, vermutlich kann man die, von denen man annimmt sie nie zu brauchen, weglassen. Danach bindet man CSS Datei und die Hauptjavascriptdatei in sein Blog ein und ergänzt im body Tag ein

<body onload="prettyPrint()">

Damit sind die Vorbereitungen abgeschlossen. Um nun Quellcode zu formatieren wird der entsprechende Codeblock einfach mit einem

<pre class="prettyprint">...</pre>

umgeben. Es ist dabei möglich die Sprache mit anzugeben, wenn man dies nicht tut, so ‘rät’ der Prettifier. Beispiel:

<pre class="prettyprint lang-java">...</pre>

Links:

Homepage Google Code Prettify: Mit Download der notwendigen Dateien und Doku

Open Tutorial: Hier gibt es ergänzende Hinweise in Deutsch zur Einbindung von HTML/XML

Beispiel

Und so sieht es dann aus:

	/**
* Kleine Hilfsmethode zum Test auf leere Strings.
*
* @param to_test
* Zu testender String
* @return Wenn der String null oder leer oder nur mit
* Leerzeichen gefüllt ist kommt true, sonst false.
*
*/
public static boolean isEmptyString(String to_test) {
return to_test == null || to_test.trim().length() == 0;
}

Samstag, 6. Juni 2009

Wie macht man einen richtigen Carajillo?

Nachdem wir in unserem Stammlokal Theke im Canta © H. Bruneletztens zu einem leckeren Heißgetränke überredet und damit angefixt wurden wollen wir wissen, was das war und wie man es herstellt. Klar war nur, dass Espresso rein muss und ein Brandy, z. B. Osborne Veterano. Und es hat etwas mit Feuer zu tun.

Der Name

Die erste Hürde war der Name: wir verstanden so etwas wie ‘Karacho’, ‘Carrachero’ oder ‘Karachiro’. Mit etwas googlen fand wir zunächst zu ‘Carachillio’, was auch tatsächlich einige Suchtreffer, darunter sogar eine Speisekarte, bringt. Allerdings kein Rezept bzw. keine brauchbare Beschreibung.

Ein ‘richtigerer’ und zumindest im deutschsprachigen Web häufiger genutzter Name ist Carachillo. Unter diesen Suchstichwort findet man dann schon einige hilfreiche Treffer.

Nachdem wir jetzt noch das ‘ch’ durch das im spanischen übliche ‘j’ ersetzten waren wir endlich am Ziel und erkannten. Wir haben also einen

C a r a j i l l o

getrunken! Unter diesem Namen findet man auch einen Eintrag in der Wikipedia. Uns interessiert dabei natürlich nicht die simple Variante, bei der einfach Espresso und Alkohol zusammengeschüttet werden. Wir wollen das volle Programm mit Feuer und Karamellgeschmack.

Rezepte im Internet

Beim googlen nach Carachillo findet man z. B. folgende Rezepte:

http://www.cocktaildreams.de/cooldrinks/cocktailrezept.carachillo.2446.html

Den Veterano in die Tasse (eine größere Espressotasse) geben und mit Wasserdampf erhitzen. Anschließend anzünden, um den richtigen Geschmack zu erhalten.
Jetzt zwei Kaffeebohnen und die Zitronenschale in die Tasse geben und den heißen Espresso hinzuschütten.

http://toprezepte.ch/index.php/rezepte-von-a-z/trinkbares/54-carachillo

4-6 cl Brandy vorzugsweise in ein kleineres, robustes Glas reingeben
2 Zuckerwürfel dazugeben
Brandy mit Dampf erhitzen und anschließend anzünden
Mit einem Löffel umrühren bis kein Zuckerkorn mehr sichtbar ist.
Ein Espresso in einem dünnen Strahl zum Brandy geben (es muss ein Knistern zu hören sein)
Gegebenenfalls Flamme ablöschen

Entscheidend ist das Verbrennen des Zuckers, damit ein Karamellgeschmack entsteht, der den Espresso erst zum Carajillo macht. Auch der Wikipedia Artikel betont dies.

Nicht ganz einig sind sich die unterschiedlichen Rezepte dabei, ob Kaffeebohnen und Zitronenschale hineingehören und wenn ja, ob sie schon mit dem Brandy zusammen erhitzt werden oder erst später dazu kommen.

Muss es Hochprozentiger sein?

Normalerweise brennen Spirituosen erst ab einem Alkoholgehalt von ca. 50%. Muss also für den Carajillo ein entsprechend potenter Brandy verwendet werden? Nein, denn durch das Erhitzen wird der Alkohol leicht freigesetzt und ein Brandy wie der Veterano mit 36% reicht aus.

Und so haben wir dann unsere ersten Carajillos gemacht

Zwei Teelöffel Zucker in eine unsere Cappuccino Tassen. Ca. 3cl, also etwas mehr als ein Carajillo © H. BrunePinnchen, Veterano dazu. Die 4-6cl aus einem der vorherigen Rezepte erschienen uns doch etwas sehr heftig.

Mit der Wasserdampfdüse der Espresso Maschine das Zucker-Brandy-Gemisch gut aufheizen. Vorsicht, es spritzt. Aber je heißer man das Ganze macht desto besser brennt der Brandy. Nach dem Erhitzen die Tasse etwas schwenken, meist löst sich der Zucker dann schon auf.

Nun ist es so weit: Ein Streichholz an den Tassenrand halten und sofort sollten blaue Flammen lodern. Wir hatten zunächst Angst dabei vielleicht zu viel Alkohl zu verbrennen, aber selbst bei dem Versuch mit der längsten Brenndauer war das Ergebnis immer noch sehr hochprozentig. Also: Brandy richtig heiß machen und ordentlich brennen lassen, damit auch Karamell entstehen kann.

Während des Brennens noch mit einem langen Löffel etwas rühren, vielleicht trägt dies dazu bei, dass der Zucker aufgelöst und richtig erhitzt wird. Auf Zitrone und Kaffeebohnen haben wir bisher verzichtet.

Bevor die Flammen erlöschen die Tasse unter die Espressomaschine und wie im Bild durch den hineinlaufenden Espresso ablöschen. Wir haben einen doppelten Espresso hinzugefügt, was für unseren Geschmack genau passend war. Wenn man es richtig macht (bei uns erst im 4. Versuch) hört man wirklich ein starkes Knistern in Moment, in dem der erste Kaffee in den heißen Brandy fließt.

Für uns ist das Besondere des Carajillos neben seinem Geschmack und dem bei der momentanen Schafskälte sehr hilfreichen Durchwärmeffekt vor allem die Ästhetik seiner Herstellung: Die blauen Flammen, die um die Espressomaschine wabern, geben der Sache einen einmaligen Reiz.

Ach ja: Beim Trinken SEHR vorsichtig sein, da die Tassenränder enorm heiß sind. Und anders als z. B. bei einem Sambuca sehen die Gäste am Tisch nicht, dass das Getränk einmal gebrannt hat und sind daher unvorbereitet.

Ähnliche Getränke

Dem Carajillo nicht unähnlich scheint der Café Royal zu sein. Ein Rezept findet sich z. B. hier:

http://www.lebensmittellexikon.de/c0001200.php

Oder bei Maggi:

http://www.maggi.de/Rezepte/kochstudio/rezepte/rezeptsuche/default.htm?id=12142&action=detail

Und auch hier:

http://www.ecocktail.de/de/ecocktail-cgi/datenbank/cocktail_rezept.cgi?cocktail_id=2790&cocktail_name=Cafe%20Royal%201