29.12.2011
Rumpsteak mit Sellerierouladen an Beurre Blanc
Sous vide rockt. Nach der erfolgreichen Entenbrust sollte deshalb nun ein Rumpsteak in das Wasserbad. Als Beilage dazu gab es Sellerierouladen. Vorstellen kann man sich das ganze so:
Aufgrund der Kühlzeit für die Sellerierouladen wurden diese vorab zubereitet und bis zum Servieren kalt gestellt. Daher wurde zuerst der Sellerie in Olivenöl mit Salz und Pfeffer angedünstet.
Sobald dieser etwas angezogen hat, wurde Weißwein zum Ablöschen hinzugegeben und der Sellerie fertig gegart, so dass er püriert werden konnte.
Püriert wurde, wie immer, mit Hilfe des Zauberstabs in einem schmalen Gefäß.
Während die pürierte Masse abkühlt, werden schnell die Pfannkuchen für die Roulade ausgebacken. Der Teig war bereits vorbereitet ;-)
Die abgekühlte Selleriemasse wurde mit Creme Fraiche, Salz und Pfeffer abgeschmeckt und dünn auf den Pfannkuchen aufgetragen.
Mit leichtem Druck gewickelt und in Frischhaltefolie eingepackt ging es in den Outdoorkühler auf den Balkon.
Zeit genug also um das Fleisch vorzubereiten.
Nach ein wenig Parieren wurde das Stück einer Wickelbondage unterworfen damit es gleichmäßig garen kann. Dazu noch ein wenig Butter und schon ging es ab in die Tüte.
Das Gesamtpaket wurde dann verantwortungsvoll einem warmen Bad übergeben. Bei 58°C sollte das Fleisch für ca. 2h langsam garen.
Nachdem das Fleisch aus dem Wasserbad genommen worden ist, aus der Tüte befreit und leicht trocken getupft wurde, hat man einen mehr oder weniger ansehnlichen Fleischklumpen vor sich :-D
Da gilt es mit der heißen Pfanne noch ein wenig Bräunung hinzuzufügen. Sieht direkt besser aus ;-)
Danach sollten die Sellerierouladen durchgekühlt sein und es kann angerichtet werden. Die Beurre Blanc wurde bereits vorab bereitet und wurde nur noch mit Salbei und ein wenig Pfeffer aufgewertet.
Detailaufnahme vom Fleisch? Gerne ;-)
Lecker war's! Bondage ist anscheinend nicht so meine Stärke, da muss ich noch an der Intensität der Fesselung arbeiten. Das Fleisch hat sich während des Garens doch stark ausgedehnt und somit den Faden "verschluckt"...
27.12.2011
Sous Vide - Entenbrust an Beurre Rouge
In der Woche zu Hause zu sein, bedeutet für mich, dass ich auch mal in der Woche etwas leckeres für Schatzi und mich kochen kann. In diesem Fall war dies Entenbrustfilet mit einem französischen Klassiker, der Beurre Rouge. Dazu gabe es noch einen kleinen Tomatensalat.
Ausgangsmaterial waren zwei Entenbrüste vom MdV, jeweils gute 350g-400g schwer.
Diese wurden vorab pariert und auf der Hautseite leicht eingeschnitten, ohne dass das Fleisch eingeschnitten wurde.
Auf der Fleischseite wurden beide Brüste vorab mit Fleur de Sel gesalzen.
Danach ging es mit dem Allpax ins Vakuum und ab ins Wasserbad.
Geplant waren 2 Stunden Garzeit innerhalb des 58°C warmen Wassers, so dass die Brüste a point sein sollten. Gardauer und Garpunkt wurden den von www.kochposter.ch bereitgestellten Tabellen entnommen. Vielleicht ist das Kochposter gar keine so schlechte Investition...
Die zwei Stunden Garzeit wurden mit der Herstellung einer Beurre Rouge sinnvoll genutzt. Am einfachsten lässt sich die Herstellung und Verwendung in dem folgenden Video beobachten.
Im Gegensatz zu dem Video habe ich die Beurre Rouge direkt so hergestellt, dass diese begleitend zu der Ente genutzt werden konnte.
Nach knapp über zwei Stunden war dann die Filets so weit, dass sie aus dem Wasserbad genommen werden konnten. Direkt nach dem Bad war folgendes Ergebnis zu erkennen:
Komplett gegart (hoffentlich auf den Punkt), aber insgesamt doch etwas blass. Daher ging es in die heiße Pfanne um etwas Farbe anzunehmen.
Direkt besser, oder? Nun kann angerichtet werden. Wie bereits am Anfang des Posts erwähnt kam nur noch ein leichter Tomatensalat begleitend zu den aufgeschnittenen Filets dazu.
Lecker war's!
Ausgangsmaterial waren zwei Entenbrüste vom MdV, jeweils gute 350g-400g schwer.
Diese wurden vorab pariert und auf der Hautseite leicht eingeschnitten, ohne dass das Fleisch eingeschnitten wurde.
Auf der Fleischseite wurden beide Brüste vorab mit Fleur de Sel gesalzen.
Danach ging es mit dem Allpax ins Vakuum und ab ins Wasserbad.
Geplant waren 2 Stunden Garzeit innerhalb des 58°C warmen Wassers, so dass die Brüste a point sein sollten. Gardauer und Garpunkt wurden den von www.kochposter.ch bereitgestellten Tabellen entnommen. Vielleicht ist das Kochposter gar keine so schlechte Investition...
Die zwei Stunden Garzeit wurden mit der Herstellung einer Beurre Rouge sinnvoll genutzt. Am einfachsten lässt sich die Herstellung und Verwendung in dem folgenden Video beobachten.
Im Gegensatz zu dem Video habe ich die Beurre Rouge direkt so hergestellt, dass diese begleitend zu der Ente genutzt werden konnte.
Nach knapp über zwei Stunden war dann die Filets so weit, dass sie aus dem Wasserbad genommen werden konnten. Direkt nach dem Bad war folgendes Ergebnis zu erkennen:
Komplett gegart (hoffentlich auf den Punkt), aber insgesamt doch etwas blass. Daher ging es in die heiße Pfanne um etwas Farbe anzunehmen.
Direkt besser, oder? Nun kann angerichtet werden. Wie bereits am Anfang des Posts erwähnt kam nur noch ein leichter Tomatensalat begleitend zu den aufgeschnittenen Filets dazu.
Lecker war's!
Eclipse mit JBoss AS 7
Mit dem Erscheinen von JBoss 7 steigt das Verlangen diesen auch in Eclipse einzubinden und in der täglichen Entwicklung zu nutzen. Da der ein oder andere Schwierigkeiten mit der Einrichtung gehabt hat, wollte ich mein Setup mal dokumentieren.
Erster Schritt ist der Download der aktuellsten Version von der Seite des Herstellers. Zum aktuellen Zeitpunkt ist die stabilste Version die Version 7.0.2.Final, 7.1.x befindet sich noch im Beta-Stadium.
Nach dem Download kann das Archiv entpackt und ein erster Test mit der Default-Konfiguration durchgeführt werden. Ein Aufruf von domain im bin-Verzeichnis sollte den Server erfolgreich starten.
Nach dem erfolgreiche Start ist der lokale Server unter http://localhost:8080/ zu erreichen und sollte die Default-Begrüßungsseite zeigen.
Das Einbinden im Eclipse selbst ist in zwei unterschiedliche Aktionen zu unterteilen. Einmal der Download der entsprechenden Eclipse-Version selbst und einmal die Installation der JBoss Tools.
Für eine erfolgreiche Installation und Nutzung des Servers ist ein Eclipse 3.7 (Indigo) notwendig, so dass dies heruntergeladen und entpackt werden muss. Nach dem Herunterladen und Entpacken sollte auch hier ein problemloser Start möglich sein.
Nach dem erfolgreichen Start von Eclipse steht nun die Installation der JBoss Tools an. Für das Einbinden des Servers wird zwangsläufig die Version 3.3.M2 oder höher benötigt. Leider befindet sich diese noch in der Entwicklung, liegt aber bereits als Milestone-Build vor. Die Installation kann leicht über die Update-Site für Eclipse erfolgen.
Für die Entwicklung von Web / JavaEE Anwendungen reicht es, wenn die entsprechenden Features ausgewählt und installiert werden. Eventuelle Dependencies sollten durch Eclipse automatisch aufgelöst und mit installiert werden.
Der Installationsprozess kann im wesentlichen durch einfache Klicks auf Next bzw. Finish ausgeführt werden. Eventuell auftretende Warnungen bzgl. "Unsigned Content" können ignoriert und mit einem Klick auf Ok bestätigt werden.
Nach der Installation sollte Eclipse neu gestartet werden, so dass der Server nach dem Neustart problemlos eingerichtet werden kann.
Für das Einrichten des Servers wird die View Servers geöffnet und mit einem Rechtsklick über das Kontextmenü ein neuer Server erstellt.
Im sich öffnenden Wizard, sollte nun der JBoss AS 7.0 als Server gewählt werden können.
Im zweiten Schritt muss nun noch das Installationsverzeichnis (dort wo das heruntergeladene Archiv entpackt worden ist) definiert werden, so dass der Server gefunden werden kann. Per Default wird der Server mit der Standalone Konfiguration gestartet. Sollte dies nicht gewünscht werden, so kann die Konfigurationsdatei der Standarddomäne geändert werden.
Nach Abschluss der Installation des Servers sollte dieser nun wie gewohnt via Eclipse konfigurierbar und startbar sein.
Viel Spaß beim Entwickeln mit Eclipse Indigo und JBoss AS 7.0
Erster Schritt ist der Download der aktuellsten Version von der Seite des Herstellers. Zum aktuellen Zeitpunkt ist die stabilste Version die Version 7.0.2.Final, 7.1.x befindet sich noch im Beta-Stadium.
Nach dem Download kann das Archiv entpackt und ein erster Test mit der Default-Konfiguration durchgeführt werden. Ein Aufruf von domain im bin-Verzeichnis sollte den Server erfolgreich starten.
Nach dem erfolgreiche Start ist der lokale Server unter http://localhost:8080/ zu erreichen und sollte die Default-Begrüßungsseite zeigen.
Das Einbinden im Eclipse selbst ist in zwei unterschiedliche Aktionen zu unterteilen. Einmal der Download der entsprechenden Eclipse-Version selbst und einmal die Installation der JBoss Tools.
Für eine erfolgreiche Installation und Nutzung des Servers ist ein Eclipse 3.7 (Indigo) notwendig, so dass dies heruntergeladen und entpackt werden muss. Nach dem Herunterladen und Entpacken sollte auch hier ein problemloser Start möglich sein.
Nach dem erfolgreichen Start von Eclipse steht nun die Installation der JBoss Tools an. Für das Einbinden des Servers wird zwangsläufig die Version 3.3.M2 oder höher benötigt. Leider befindet sich diese noch in der Entwicklung, liegt aber bereits als Milestone-Build vor. Die Installation kann leicht über die Update-Site für Eclipse erfolgen.
Für die Entwicklung von Web / JavaEE Anwendungen reicht es, wenn die entsprechenden Features ausgewählt und installiert werden. Eventuelle Dependencies sollten durch Eclipse automatisch aufgelöst und mit installiert werden.
Der Installationsprozess kann im wesentlichen durch einfache Klicks auf Next bzw. Finish ausgeführt werden. Eventuell auftretende Warnungen bzgl. "Unsigned Content" können ignoriert und mit einem Klick auf Ok bestätigt werden.
Nach der Installation sollte Eclipse neu gestartet werden, so dass der Server nach dem Neustart problemlos eingerichtet werden kann.
Für das Einrichten des Servers wird die View Servers geöffnet und mit einem Rechtsklick über das Kontextmenü ein neuer Server erstellt.
Im sich öffnenden Wizard, sollte nun der JBoss AS 7.0 als Server gewählt werden können.
Im zweiten Schritt muss nun noch das Installationsverzeichnis (dort wo das heruntergeladene Archiv entpackt worden ist) definiert werden, so dass der Server gefunden werden kann. Per Default wird der Server mit der Standalone Konfiguration gestartet. Sollte dies nicht gewünscht werden, so kann die Konfigurationsdatei der Standarddomäne geändert werden.
Nach Abschluss der Installation des Servers sollte dieser nun wie gewohnt via Eclipse konfigurierbar und startbar sein.
Viel Spaß beim Entwickeln mit Eclipse Indigo und JBoss AS 7.0
15.12.2011
Spring 3 - Validierung von Parametern mit AOP
Im Rahmen der täglichen Entwicklung wird sich jeder schon mal Gedanken über die Behandlung von null Werten beim Aufruf der Businessmethoden gemacht haben. Sind die Methoden streng nach Clean Code Richtlinien entwickelt worden und beinhalten wirklich nur einen oder maximal zwei Parameter bleibt "nur" der Overhead für die Überprüfung der Aufrufe in jeder Businessmethode der Anwendung.
Einen schönen Ansatz zur Vermeidung des dadurch entstehenden Overheads bietet der Einsatz von AOP zur Überprüfung der Übergabewerte an eine Methode. Wie das ganze in einem Spring 3 Umfeld funktionieren kann, wird an einem konkreten Beispiel gezeigt.
Das Beispiel baut auf einem einfachen Taschenrechner mit den vier Grundrechenarten auf. Dieser wird als Service veröffentlicht und kann von anderen Beans als Referenz injected werden. Der Validator für die null Werte in Methoden wird ebenfalls als Bean bereitgestellt und definiert einen entsprechenden Pointcut zur Überprüfung.
In dem Klassendiagramm ist zusätzlich noch die Exception abgebildet, die geworfen wird, sobald ein fehlerhaftes Übergabeargument durch den Validator gefunden wird.
Die Überprüfung jeder Methode nach dem gleichen Schema macht nicht immer Sinn, somit wurde eine Annotation definiert, die eine Methode für die Überprüfung markiert. Somit besteht die Möglichkeit den Pointcut innerhalb des Validators so zu definieren, dass dieser auch ausschließlich bei Methoden mit dieser Annotation ausgeführt wird und sonst inaktiv bleibt. So werden unnötige Operationen vermieden und ausschließlich durch den Entwickler definierte Überprüfungen durchgeführt. Das folgende Sequenzdiagramm zeigt den Ablauf anhand eines Methodenaufrufs durch den Test.
Das Beispiel ist bewusst einfach aufgebaut, damit das Prinzip verständlich bleibt. Ein späterer Ausbau ist immer noch möglich. Die zentrale Klasse ist der Validator für die Validierung der null Werte während der Methodenaufrufe. Wie auch schon der AOP-Logger wird der Validator als Komponente bzw. Aspect definiert, so dass die Verwaltung komplett durch Spring realisiert wird. Der zu definierende Pointcut unterscheidet sich nur unwesentlich von dem Pointcut der bereits für das Logging definiert wurde.
Einziger Unterschied ist an dieser Stelle die zusätzliche Einschränkung des Pointcuts durch die Angabe der Annotation, mit der die Methode versehen werden muss. Somit werden nur Methoden überprüft die mit der Annotation de.sado.examples.spring.aop.parameter.validation.annotation.ValidateNullValues markiert worden sind. Wird bei der Überprüfung der Parameter ein null Wert festgestellt, wird eine NullparameterException geworfen.
Wünschenswert wäre an dieser Stelle sicherlich eine Angabe des Parameternamens für den null angegeben worden ist. Da ist aber leider eine Einschränkung durch Java selbst gegeben, da die Parameternamen im Bytecode nicht mehr zur Verfügung stehen und somit auch nicht für den Validator zugänglich sind. Einzige Möglichkeit wäre, dass der komplette Code mit Debug-Flag kompiliert wird. Dann wären auch die Namen der Parameter zugänglich. Für produktive Umgebungen aber sicherlich keine so gute Idee ;-)
Um nun die Validierung zu aktivieren, muss nur die entsprechende Annotation an der Methode angebracht werden. Mit einem sprechenden Namen kann jeder Entwickler recht schnell erkennen, was genau mit dieser Annotation ausgelöst wird.
Der Test der Lösung wird wieder durch einen einfachen Spring-JUnit-Test durchgeführt. Die erwartete Exception ist an dieser Stelle natürlich die NullParameterException, die durch den Validator ausgelöst wird.
Das gesamte Beispiel ist wie immer im Repository zu finden.
Einen schönen Ansatz zur Vermeidung des dadurch entstehenden Overheads bietet der Einsatz von AOP zur Überprüfung der Übergabewerte an eine Methode. Wie das ganze in einem Spring 3 Umfeld funktionieren kann, wird an einem konkreten Beispiel gezeigt.
Das Beispiel baut auf einem einfachen Taschenrechner mit den vier Grundrechenarten auf. Dieser wird als Service veröffentlicht und kann von anderen Beans als Referenz injected werden. Der Validator für die null Werte in Methoden wird ebenfalls als Bean bereitgestellt und definiert einen entsprechenden Pointcut zur Überprüfung.
Vergrößern durch Anklicken |
Die Überprüfung jeder Methode nach dem gleichen Schema macht nicht immer Sinn, somit wurde eine Annotation definiert, die eine Methode für die Überprüfung markiert. Somit besteht die Möglichkeit den Pointcut innerhalb des Validators so zu definieren, dass dieser auch ausschließlich bei Methoden mit dieser Annotation ausgeführt wird und sonst inaktiv bleibt. So werden unnötige Operationen vermieden und ausschließlich durch den Entwickler definierte Überprüfungen durchgeführt. Das folgende Sequenzdiagramm zeigt den Ablauf anhand eines Methodenaufrufs durch den Test.
Vergrößern durch Anklicken |
Vergrößern durch Anklicken |
Wünschenswert wäre an dieser Stelle sicherlich eine Angabe des Parameternamens für den null angegeben worden ist. Da ist aber leider eine Einschränkung durch Java selbst gegeben, da die Parameternamen im Bytecode nicht mehr zur Verfügung stehen und somit auch nicht für den Validator zugänglich sind. Einzige Möglichkeit wäre, dass der komplette Code mit Debug-Flag kompiliert wird. Dann wären auch die Namen der Parameter zugänglich. Für produktive Umgebungen aber sicherlich keine so gute Idee ;-)
Um nun die Validierung zu aktivieren, muss nur die entsprechende Annotation an der Methode angebracht werden. Mit einem sprechenden Namen kann jeder Entwickler recht schnell erkennen, was genau mit dieser Annotation ausgelöst wird.
Vergrößern durch Anklicken |
Der Test der Lösung wird wieder durch einen einfachen Spring-JUnit-Test durchgeführt. Die erwartete Exception ist an dieser Stelle natürlich die NullParameterException, die durch den Validator ausgelöst wird.
Vergrößern durch Anklicken |
11.12.2011
Krustenbraten mit marinierten Kartoffelwürfeln
Sei es drum, heute soll es einen Krustenbraten vom Schwein geben. Ausgangsmaterial ist ein schöner Krustenbraten vom MdV. Gekauft, wie gewachsen und folglich noch mit Schulterknochen. Macht nix, wird einfach mitgegart und später vom Feisch getrennt.
Als Vorbereitung wird die Schwarte des Krustenbratens ersteinmal eingeschnitten, damit diese besser poppt! Denn wisse, ein Krustenbraten muss poppen!
Danach wird die Schwarte und die eingeschnittenen Zwischenräume großzügig mit Salz eingerieben.
Der restliche Braten wird mit dem leckeren Butt Rub (Bezugsquelle in DE ist unter anderem der BBQ-Profi) versehen.
Danach geht es in den Grill bei ca. 170°C bis die Kerntemperatur bei ca. 78°C ist! Richtzeit sollte so ca, eine Stunde pro Kilo sein ;-)
In der Zwischenzeit ist Zeit die "modernen" Bratkartoffeln vorzubereiten. Dazu werden Kartoffeln in Quader geschnitten.
Danach werden zwei Chillis gehackt und zu den Kartoffeln gegeben
Die Kartoffeln werden mit Salz, Pfeffer, Knoblauchpulver und den Chillis mariniert...
... und anschließend vakuumiert.
Danach geht es für knapp 15-20 Minuten in das leicht siedenen Wasserbad, wo die Aromen in die Kartoffeln gehen können und diese langsam garen. Bevor der Braten die magischen 78°C Kerntemperatur erreicht hat, werden die Kartoffeln zwecks Maillard-Reaktion noch in Butter angebraten.
Details? Herr Maillard macht seinem Namen alle Ehre ;-)
Danach kann der Braten aus dem Grill geholt werden. Sieht doch lecker aus, oder?
Ab damit auf vorgewärmte Teller, ein wenig Balsamico dazu und schon ist es fertig!
Lecker war's!
Abonnieren
Posts (Atom)