Pizza deluxe vom Pizzastein

von Christoph

Hier ein paar Tipps und Erfahrungen für's Pizzabacken. Ein guter Teig ist einfach und nur etwas langwierig in der Zubereitung. Ich mache immer den von Chefkoch.de, nehme allerdings nur die Hälfte der Zutaten und lasse ihn nur eine Nacht liegen. Bei mir reicht das für 4 mittelgroße oder 8 Minipizzen. Die Verwendung von Pizzamehl (zum Beispiel von Gustini) kann ich empfehlen. Der Teig ist damit viel leichter zu formen ohne zu reißen. Es heißt, man solle zur Liebe der Luftbläschen kein Nudelholz benutzen. Das italienische Ziehen und Schleudern habe ich dann aber noch nicht hingekriegt - plattgerollt ergibt einfach die schönere Form.

Für den Belag gilt: weniger verschiedene Zutaten sind besser und angebratene Zutaten sind schmackhafter. Neben den obligatorischen Tomaten und geriebenem Mozarella (anderer Käse hat auf einer Pizza nichts zu suchen!) habe ich diesmal Pilze mit Zwiebeln und wahlweise Thunfisch, französischen Schinken und ungarische Salami vorbereitet. Schinken und Salami kommen nach dem Backen auf die Pizza - vertrocknet oder verkohlt steigern sie den Geschmack nicht ins Positive.

Gebacken wird auf einem Pizzastein. Den Humpen bekommt man zum Beispiel bei Amazon.de recht günstig. Der passt in jeden Ofen, volle Pulle (bei mir 250°) für 30 min vorheizen und dann die Pizzen 8 Minuten drauf. Sehr lecker und kein Vergleich mit Tiefkühlprodukten!

Kochen, Knippsen, Essen

von Christoph

Letztens schrieb ich noch, dass es Zeit für eine Spiegelreflexkamera wird. Gesagt, getan! Und was gibt es besseres, als das neue Männerspielzeug mit gutem Essen auszuprobieren? Lasagne. Hmmm.

Benötigt wird zum Bespiel:

Die Bilder habe ich mit Automatikprogramm von einem Stativ aufgenommen, ich habe nämlich auch Belichtungsreihen erstellt. Es zeigte sich aber, dass die Farben ohne HDR viel brillanter waren. Man beachte auch die Tiefenunschärfe, die so nur mit Spiegelreflex geht. Einfach herrlich! Demnächst das ganze in Bewegung mit Schwebestativ. Devin Graham, zieh dich warm an!

Wiener Winter

von Christoph

Oha! Schon zwei Jahre nichts mehr geschrieben. Hier mal ein paar Fotos vom Ausflug nach Wien am 11.12.2013. Natürlich in High Dynamic Range :). Wobei ich merke, dass meine alte Canon Powershot G9 qualitätsmäßig so langsam an ihre Grenzen stößt. Es wird demnächst wohl kein Weg an einer Spiegelreflexkamera (DSLR) vorbeiführen.

WebGraph.NET Open-Source

von Christoph

Schon etwas älter ist das Programm WebGraph, ein Dataminer der skriptgesteuert Links aus verschiedenen Webseiten extrahiert und daraus einen Verknüpfungsgraphen generiert. Das Originalprogramm basiert auf OpenGL und benutzt Googles v8-Javascript Engine.

Da man ja mit der Zeit geht und sich auf fortbilden will, habe ich die Applikation mal auf .NET in der Version 4.0 und WPF portiert. Das war erstaunlich einfach. Der Code ist im wesentlichen um ein Drittel kürzer geworden. Die grobe Architektur konnte beibehalten werden. Anstelle der v8-Engine ist Jint getreten. Sqlite wird immernoch für das Caching verwendet, allerdings in einer .NET Version. Schließlich konnte die CURL-Bibliothek für den Webzugriff komplett entsorgt werden, da das .NET Framework Standardklassen hierfür bereits mitbringt.

Klassendiagramm

Der Quelltext von WebGraph.NET ist im Github unter https://github.com/Chrisso/WebGraph.NET einzusehen. Am besten einfach mal lossurfen und durch die Source klicken.

Besonders interessant ist an dieser Stelle vielleicht, wie das Grabbing funktioniert. Der Nutzer gibt in der WPF-GUI ein Schlagwort ein. Diese fragt im Cache nach, ob diese Abfrage (evtl. auch als Sub-Abfrage) schonmal ausgeführt wurde. Gibt der Cache einen Fehler zurück (Cache-Miss) wird beim Skript ein Download-URL angefordert. Der Webloader kümnert sich dann um das herunterladen, die GUI gibt das Resultat erneut an das Skript, das dort Schlagwörter (Links, Kindknoten im Graphen) extrahiert. Das Ergebnis landet im Cache und je nach eingestellter Rekursionstiefe beginnt der Prozess mit jedem neuen Schlagwort von vorn.

Oder als Sequenzdiagramm ausgedrückt:

Sequenzdiagramm

Nach einem Port auf C# habe ich übrigens noch einen in JavaScript erstellt. Zur Anzeige des folgenden Beispiels benötigen sie einen HTML5-kompatiblen Browser, der das Canvas-Element unterstützt. Moderne Software wie Mozilla Firefox und Google Chrome können das von Haus, im Internet Explorer wird das Canvas mittels VML emuliert.

HTML5-Canvas nicht unterstützt!

Neue Farben, neuer Stil

von Christoph

Ich habe den Stil von christoph.stoepel.net etwas aktualisiert. Der alte war sooo 2008 und basierte auf den auswechselbaren Themen von jQuery UI. Das ist teilweise immernoch so, aber nur für wenige Inline-Elemente. Der neue Stil fußt auf einem Farbschema von Adobe Kuler. Das ist eine schon etwas angestaubte Flash-Applikation, in der die Community allerdings sehr schöne Themen eingestellt hat

Das von mir genutzte Thema nennt sich "Ground Control to Major Tom" und besteht aus gedeckten Blautönen, die in Grau wandern. Sehr modern und sehr seriös. Dazu noch einige Spielereien mit HTML5: abgerundete Kanten, Box-Shadows und eine Schriftart aus dem Google Webfont Repository (Istok Web).

Die jQuery Version habe ich auf v1.6.4 aktualisiert und die Startseite ist nun eine flotte Ajax-Anwendung. Da ich ein sehr visueller Typ bin, lasse ich hier Bilder sprechen - Worte gibt es erst auf einen Klick. Keine Ablenkung vom wesentlichen, mehr Übersicht von Anfang an.

Apropos Übersicht: die CSS-Dateien werden nun von einem Compiler erstellt. DotLess generiert aus einer programmiersprachlichen Darstellung mit Konstanten, Variablen, Formeln und Funktionen gültiges CSS. Insbesondere Konstanten sind praktisch, um das o.g. Farbschema zentral überall im Stylesheet synchron zu halten. Okay, das ist recht theoretisch. So sieht es vor der Kompilierung aus:

@corpfont: "Istok Web", Tahoma, Arial, Sans-Serif;  // Schriftart
@corpcolor: #313F54;    // Farbe

.rounded_corners(@radius: 8px) 	// parametrisiert
{
	-moz-border-radius: @radius;
	-webkit-border-radius: @radius;
	border-radius: @radius;
}

.sitenavi
{
	.rounded_corners(2px);
	background-color: @corpcolor;
	li
	{
		position: relative; 
		list-style: none;
		text-align: center;
		a
		{
			color: @corpcontrast;
			text-decoration: none;
			&:hover, 
			&.active
			{
				color: #FFFFFF;
			}
		}
	}
}

Musik, Musik (2011)

von Christoph

Dies ist die Fortsetzung von Musik, Musik, dem Beitrag von 2010. Auch diesen Sommer gab es wieder Highlights für Genießer, die ich so bedingungslos zum Kauf empfehlen kann.

  • Orchestral: Zunächst führt kein Weg an Thomas Bergersons erstem Solo-Album vorbei. Illusions ist das Album des Sommers. Wie Two Step from Hell, nur besser! Meine ausführliche Rezension lässt sich auch bei Amazon nachlesen.
  • Rockig: Von Globus, der Live-Combo von Immediate Music gibts es endlich, nach Jahren, ein neues Album: Break From This World mit neuen Stimmen. Meine Favoriten zum reinhören: The Promise, Elegy und Black Parade.
  • Trance + Klassisch: Zuletzt noch Einzelstücke. Ein aufstrebender Komponist aus Schweden ist Erik Ekholm. Ein ganzes Album kann ich noch nicht empfehlen, er muss noch wachsen, aber unbedingt hörbar sind Journey Of Life und Syklix (unter dem Label Brickwall Audio). Etwas länger im Geschäft ist Kerry Muzzey. Aber auch hier möchte ich kein Album empfehlen sondern nur Bernini's Angels. Sehr schön!

Album Cover Album Cover Album Cover Album Cover

Bibliotheken, die man kennen muss (C++)

von Christoph

Das mag einige jetzt überraschen aber: das Rad wurde bereits erfunden. Softwareentwicklung macht Spaß, aber kreative Leistung ist dadurch gekennzeichnet, dass sie eben neu ist. Dass man die vorhandenen Resourcen nutzt, um etwas nicht Dagewesenes zu erstellen. In diesem Post möchte ich einige dieser Resourcen vorstellen, die in meiner Werkzeugkiste einen festen Platz gefunden haben und die die stabile Basis für Neuentwicklungen bilden.

  • Die Windows Template Library (aktuell v8.1) ist eine sehr schlanke Alternative zur MFC, der Bibliothek für grafische Oberflächen unter MS Windows. Die Lernkurve ist etwas steil. Wie der Name bereits andeutet, setzt die WTL massiv auf Templates. Sie stellt aber trotzdem eine deutliche Vereinfachung der GUI-Entwicklung im Vergleich zur nackten WinAPI dar ohne den Bloat der MFC.
  • Die Cairo Grafikbibliothek (aktuell v1.10.2) ist für mich unverzichtbarer Bestandteil geworden, wenn es um 2D-Visualisierungen geht. Wie GDI oder GDI+ kapselt Cairo alles: von der Textausgabe über Punkte, Linien bis hin zu Polygonen. Und das schöne: plattformunabhängig und mit verschiedenen Ausgabezielen wie zum Beispiel PNG, PDF, SVG oder eben ein Windows Fenster. (Democode im Github)
  • Kryptographie gefällig? Verschlüsselung? Symmetrisch, asymmetrisch? Prüfsummen, Base32-Codierung? Die Crypto++ Library (aktuell v5.6.1) hat sie alle! Wann immer Kryptographie benötigt wird, ist das die Bibliothek meiner Wahl. Zum Beispiel bei Software-Lizensierung über Produktschlüssel. Weiterhin sehr gut, dass Kompression über die ZLib (aktuell v1.2.5) bereits eingebaut ist. Diese nutze ich meist auch in ihrer ungekapselten Rohform, wenn es mal ohne Verschlüsselung geht.
  • SQLite (aktuell v3.7) hat sich für mich als Allzweckwaffe für Datenspeicherung etabliert. In diese dateibasierte embedded Datenbank passt einfach alles. Und der Zugriff funktioniert allerbequemst mit standardisierten SQL-Queries. Das beste: die Datenbanken lassen sich auch aus .NET ansprechen und dass sie auch auf anderen Betriebssystemen als MS Windows lesbar sind, muss garnicht mehr erwähnt werden.

Mir fallen noch viel mehr ein, aber man sollte Aufzählungen aus didaktischen Gründen nicht wuchern lassen. Deswegen erwähne ich nur kurz und zum selbst weiterrecherchieren noch cURL (aktuell v2.20) zum Herunterladen von Daten aus dem Web (und zum Beispiel cachen mit SQLite s.o.) sowie Googles v8 (aktuell v3.5), der rasenden Javascript-Engine aus dem Chrome Browser (Democode im Github).

Geogen v3.1 ist online

von Christoph

Geogen ist in der Version 3.1 online verfügbar. Die interne Datenbank-Zugriffsschicht ist nun unabhängig von einem bestimmten Hersteller. Vorher war die Verwaltung von Ranglisten, Nutzerkommentaren und Geograpphie nur mit dem MS SQL-Server via System.Data.SqlClient möglich. An dessen Stelle treten konsequent die Factory-Methoden aus System.Data.Common. Im derzeit stattfindenden Testlauf liegen alle Daten in einem SQL-Server Compact Edition 4.0 - also im selben Prozess wie ASP.NET. Dadurch sollte die Mehrzahl der Nur-Lese-Zugriffe etwas performanter sein.

Im Rahmen dieses Refactorings habe ich auch gleich die MS Ajax Bibliothek samt Ajax Control Toolkit entsorgt. Diese wird von Microsoft zwar noch ausgeliefert aber nicht mehr weiterentwickelt. Das Pferd ist also tot. Man muss sich da auch nichts vormachen: MS Ajax war zu aufgebläht, zu langsam und (was das Control Toolkit betrifft) zu fehleranfällig. Ich habe die Webseite daher komplett auf jQuery umgestellt. Es ist enorm was da grade in der Entwicklung abgeht.

Die erste Änderung, die dadurch möglich wurde, ist ein Autocompleter auf dem Eingabetextfeld. Einfach ein paar Buchstaben eingeben und im Hintergrund werden per Ajax einige Vorschläge herausgesucht, welchen Namen man meinen könnte. Das Control-Toolkit enthielt auch einen Autocompleter, allerdings vertrug er sich nicht nicht mit den per Javascript abgerundeten Ecken. Mein Bug-Report dazu wurde damit abgetan, dass man sich nicht um die Z-Order kümmern kann und das Problem nicht lösbar sei. Die jetzigen runden Ecken kommen per CSS auf alle modernen Browser. Im Internet Explorer bleibt es kantig.

Die Kartenübersicht wurde verschlankt. Die Steuerelemente für Zusatzparameter, die sowieso niemand benutzt hat, habe ich entfernt. Eine derartig fortgeschrittene Konfiguration ist nur noch über die Kaufsoftware möglich. In diesem Zuge wurden die Karten auch gleich in die Ergebnisseite integriert. Mit Hilfe der Fancybox werden sie in Form eines Overlays vor leicht ausgegrautem Hintergrund angezeigt.

Weitere Änderungen sind eher Kleinigkeiten: zu selteneren Namen wird ein maschinenlesbarer Balkencode berechnet mit dem man irgendwelche Gegenstände bekleben (neudeutsch taggen) kann, auf der Startseite läuft ein Ticker zuletzt abgerufener Namen aller Besucher, der phonetische Namensgraph hat den Beta-Status verlassen und ist nun auch in der englischen Version verfügbar und ganz neu gibt es auch eine Fassung für Mobilgeräte. Das nächste Update soll dann ein größeres werden (Version 4.0 oder zumindest 3.5). Ich experimentiere dazu etwas mit HTML5 und Canvas...