Die Rouladen habe ich mit Frühstücksbacon, einer Selleriestange, einer Möhre und einer Gewürzgurke gefüllt. Hier dürfen Gewürze natürlich nicht fehlen. Besonders Mühe habe ich mir auch bei dem Rotkohl und der Sauce gegeben. Die besondere Würze kam vom Whiskey.
Je nach Geschmack können Kartoffelknödel, Nudeln oder Salzkartoffeln gereicht werden.
Dieses Rezept baut in vielen kleinen Schritt einen großen Aromenkomplex auf. Unter Alkoholzugabe werden die Aromastoffe aus den Gewürzen gelöst, sodass es jede Aromanote in das Gericht schafft.
Zubereitungszeit: 3-4 Stunden
Für zwei/vier Personen bzw. vier Rouladen.
Die einzelnen Komponenten sollten entsprechend der Garzeit der Rouladen zubereitet werden.
Damit das Rotkraut eine besondere Würze bekommt, wird eine rote Zwiebel geschnitten. Davon werden zwei Drittel in einen mit Olivenöl auf mittel-hoher Hitze aufgeheizten Topf gegeben. Das restliche Drittel wird für die Sauce benötigt und kann während der Zubereitung in den Rouladen-Topf gegeben werden.
Die Zwiebeln sollen nicht frittiert werden, sondern im Olivenöl dünsten. Sobald die Zwiebeln leicht glasig werden, wird mit einem Schuss Whiskey abgelöscht. Danach folgt ein Schuss Rotwein. Ein Stückchen Butter mit hinzugeben. Mit Salz und Pfeffer abschmecken.
Wenn die Zwiebeln glasiert sind, kann das Rotkraut hinzugegeben werden. Beide Zutaten miteinander vermengen.
Sobald das Rotkraut zu köcheln beginnt, kann mit Salz, Pfeffer, einem Schuss Walnussöl und Apfelessig abgeschmeckt werden.
Das Rotkraut lässt man nun bei niedriger Hitze bis zum Servieren mit geschlossenem Deckel köcheln.
Das Herzstück des Gerichtes, die Rouladen, müssen mit Sorgfalt zubereitet werden. Man darf die Rouladen nicht als Massengeschäft betrachten, sondern sollte sich jeder Roulade einzeln widmen.
Zur Vorbereitung werden vier Zwiebeln fein geschnitten. Die Möhre wird geschält und vier Viertel passend geschnitten. Der Staudensellerie wird genauso passend in Hälften geschnitten.
Thymian, Kreuzkümmel, Senf, Bacon, Gewürzgurken und Rouladen-Spieße bereitlegen.
Die Roulade wird als erstes großzügig mit Senf bestrichen. Darauf folgt eine bis zwei Scheiben Bacon, der auch mit Senf bestrichen wird. Nun folgt gerebelter Thymian, Kreuzkümmel, Salz und Pfeffer.
Eine Gewürzgurke, ein Viertel Möhre und eine Hälfte Staudensellerie drauflegen und leicht mit Zwiebeln bedecken.
Die Rouladen zusammenrollen und mit Spießen fixieren.
Zum Anbraten sollte die Pfanne/der Topf ohne Öl heiß gemacht werden. Erst dann sollte Rapsöl (Butter geht auch) ergänzt werden.
Nun werden die Rouladen von allen Seiten braun angebraten.
Die Rouladen werden mit Rotwein abgelöscht. Sobald der Rotwein hochkocht, wird ein wenig umgerührt, die restlichen Zwiebeln hinzugegeben. Ein wenig Salz und Pfeffer hinzugeben.
Nach einer kurzen Zeit wird Wasser hinzugegeben und die Rouladen werden mehrere Stunden mit leichter Hitze gegart.
Zehn Minuten vor dem Zubereiten der Sauce sollten die restlichen Zwiebeln vom Rotkraut und die Frühlingszwiebeln hinzugegeben werden. Die Temperatur wird hochgestellt und die Lorbeerblätter, Nelken und gerebelter Thymian hinzugegeben.
Sobald die Flüssigkeit ausreichend reduziert ist, werden die Rouladen entnommen.
Nun können der Rotweinessig, Rosmarin und der ganze Thymian hinzugegeben werden. Etwas Ingwer und Zitronenschale hineinreiben, das sorgt für eine frische und lässt die Sauce nicht schwer werden.
Die Sauce wird weiter reduziert. Sobald die Sauce ausreichend reduziert ist, mit Whiskey und Wein die Aromen aus den Gewürzen lösen.
Nun die großen Kräuter (Lorbeerblätter, Rosmarin, Thymian) herausnehmen. Die Sauce kann mit etwas Wein und Whiskey püriert und wieder in die Pfanne gegeben werden.
Zum Schluss die Rouladen kurz mit hinzugeben und unter einem Deckel warm werden lassen. Die Rouladen wieder rausnehmen, etwas Stärkewasser von den Kartoffeln oder Nudeln und eine Flocke Butter hinzugeben und die Sauce mit Mehl binden.
Mit Salz, Pfeffer und Koreander abschmecken.
Eventuell die Sauce durch ein Sieb geben und wahlweise wieder pürieren.
Vielen Dank für Lesen und viel Spaß bei der Zubereitung!
]]>Meine Bachelor-Thesis behandelte eine Software-Schnittstelle für ein Testsystem. Ich darf hier aufgrund einer Verschwiegenheitserklärung nicht näher darauf eingehen, allerdings kann ich hier einen Kurztitel angeben:
Wöhl, Maik (2021): Symbolbasiertes Testsystem, Hochschule Emden/Leer.
Nachdem ich im Jahr 2018 die Gesellenprüfung zum Elektriker für Betriebstechnik erfolgreich absolviert habe, besitze ich nun zwei Ausbildungen und habe die Welten des Handwerks und der akademischen Arbeit kennenlernen dürfen.
Die Faszination des Handwerks hat mich ergriffen, weshalb ich in meiner Freizeit besonderes Augenmerk auf Qualität, Langlebigkeit und handgefertigte Waren lege. Daher besitze ich eine handgefertigte Brieftasche aus der Manufaktur Braun Büffel, einen Ambition-Füller von Faber Castell und Lederschuhe von Melvin & Hamilton. Die Lederschuhe pflege ich selber und bringe sie regelmäßig zum Schuhmacher.
So kann ich durch mein Studium als Softwareingenieur arbeiten und gleichzeitig auch die handwerklichen Dinge des Lebens im Auge behalten und fördern.
Ich freue mich auf meine zukünftige Arbeit als Softwareingenieur und werde von meinen ersten Eindrücken berichten.
Photo by Romain Vignes on Unsplash
]]>Es ist hier keine manuelle Einbindung von Bibliotheken mehr notwendig.
]]>def integrate(x: [], f: [], dx: float) -> []:
'''
Die Integrierfunktion gibt für eine gegebene Funktion die über
numerische Schritte dx integrierte Flächenfunktion zurück.
Parameters
----------
x : []
Eingabewerte der Funktion f(x)
f : []
Funktionswerte der Funktion f(x)
dx : float
"infinitesimal" kleiner Schritt dx.
0 < dx <= 1 --> dx = (b-a)/N | ∀ x ∈ [a,b]
Returns
-------
F[x]
Numerische Stammfunktion
'''
if not 0 < dx <= 1:
raise ValueError("'dx' must be between 0 and 1")
step_size = np.round( int(dx * len(f)) ) # dx = (b-a)/N
distance = x[step_size] - x[0] # ∆x = (x - x0)
steps = range(1, len(f)-1, step_size)
# ersten Wert für ersten Durchlauf der Schleife einfügen
F_C = [ f[0] ]
for step in steps:
area = distance * f[step]
for _ in range(step_size):
F_C.append(F_C[step-1] + area)
# erster Wert ist f[0] und nicht integriert, also raus damit
F_C = F_C[1:len(F_C)]
# Integrationskonstante C abziehen
C = np.mean(F_C)
F = F_C - C
return F
Die Verwendung der Funktion ist ja bereits im Docstring erklärt, daher möchte ich an dieser Stelle lieber mehr auf den Algorithmus eingehen, der die numerische Stammfunktion berechnet.
In einem ersten Schritt werden die zur Berechnung erforderlichen Werte ermittelt:
step_size
)distance
)steps
)F_C
)Die Wertemenge F_C
enthält bereits ein Element, auf das der folgende Algorithmus zurückgreifen kann. Ansonsten müsste der Algorithmus eine Fallunterscheidung für das erste Element treffen.
Nun wird mithilfe der Indizes steps
die Fläche unter der Funktion ermittelt. Da der Wertabstand distance
für jeden Schritt konstant ist, muss dieser nicht im jeden Schleifendurchlauf erneut berechnet werden. Für jeden Durchlauf werden zur Kompensierung der vergleichsweise groben Diskretisierung die Wertemenge F_C
mit den eben berechneten Werten zum nächsten Index step
aufgefüllt. Das führt zu den Sprüngen bei niedrigen Auflösungen.
Da der erste Wert vorher zur Vereinfachung des Algorithmus hingefügt wurde, wird dieser wieder entfernt. Nachfolgend wird die Integrationskonstante C
abgezogen, da die Stammfunktion ermittelt werden soll. Die Integrationskonstante ist der Gleichanteil des Signals, wenn man so möchte.
Damit steht jetzt eine Funktion zur Ermittlung der Stammfunktion zur Verfügung. Im Folgenden Bild ist eine Sinusfunktion und die numerische und die analytische Stammfunktion abgebildet.
\[\int \sin(\omega t) = -\cos (\omega t) +C\] ]]>Folgend sind meine guten drei Bilder von meinen anfänglichen Schritten bis zum größten Werk, dass ich damals erschaffen habe, gezeigt.
Zum Schluss habe ich sehr viel Zeit investiert; Fünfzig Stunden, so schätze ich.
Nun habe ich angefangen Blender neu zu entdecken. Es gibt viele tolle neue Features. Mein Blender-Projekt Donut sieht gerade so aus:
Der Donut ist schon durch einige Schritte gegangen:
Ich bin gespannt, wie es weitergeht.
]]>Soweit so gut; Die Arbeitsbereitschaft ist bei mir nicht gesunken, sondern sogar gestiegen. Nach einer anfänglichen Prokrastinationsphase mit Netflix und YouTube, habe ich angefangen, mich wieder meinen Studien zu widmen. Nun habe ich sogar richtig Spaß am Bearbeiten der Aufgaben, weil sie eine willkommene Abwechslung zur Dauerbeschallung der Multimedia darstellen.
In der vielen freien Zeit habe ich auch darüber nachgedacht, wie ich meine Wohnung besser gestalten kann und wie ich meine Ausgaben einkürzen kann. Die Überlegungen haben dazu geführt, dass ich meinen Kleiderschrank umorganisiert habe, eine neue Routine für den Morgen und den Abend entwickelt habe und mir einen Rasierhobel und richtige Lederschuhe gekauft habe.
Eine Routine ist wichtig, um mit den Einschränkungen klar zu kommen. Da viele Menschen nicht gut damit klar kommen, Privates und Arbeit zu trennen, wenn beides am selben Ort erledigt wird, muss zumindest eine psychologische Trennung erfolgen. Das bedeutet, dass vor dem Arbeiten und nach dem Arbeiten ein gewisses Ritual eingeführt wird, was die Abschnitte des Tages vom privaten Teil abtrennt.
Bei mir sind diese Rituale einmal das Duschen und Rasieren am Morgen, und das Umziehen und das Lesen mit dem Tee am Abend.
Schon früher habe ich gerne Anzüge getragen und habe jetzt während meiner Reise durch YouTube den Wert guter Kleidung schätzen gelernt. Die Art des Kleidungsstil, den ich meine, nennt sich Sartorial Way.
Angetrieben durch die Filmreihe Kingsman, habe ich mir Oxford-Schuhe aus Leder gekauft. Erst einmal nur einen Blake-Stitch in marineblauen Farben für den eleganteren Freizeitauftritt. Mein nächster Lederschuh wird dann vermutlich ein Plain Black Oxford mit Goodyear-Welt, wenn die Brieftasche diese Anschaffung wieder hergibt.
An der Geschichte mit den Schuhen, macht mir vor allem das Schuhputzen Spaß. Es ist wie ein Wunder, wenn nach dem Eincremen und dem Bürsten, die Schuhe wieder in neuem Glanz erstrahlen. Voraussetzung dafür sind natürlich ordentliche Schuhspanner, eine gute Schuhcreme und die Tatsache, dass man gut auf die Schuhe aufpasst, während man diese trägt.
Ich denke, dass ich mit den Folgen des Lockdowns zunehmend besser klar komme und am Ende des Studiensemesters sogar mehr gelernt habe, als sonst in der selben Zeit. Die vorherigen Semester waren eher chaotisch, aber haben auch viel Spaß gemacht.
Wenn man am Ende des Studiums eine gute Mischung aus Spaß, Wissen und Erfahrung vorweisen kann, hat man, denke ich, sein Ziel erreicht.
Photo by Green Chameleon on Unsplash
]]>An niedersächsischen Hochschule ist das Studierendenparlament (StuPa) das höchste Gremium verfasster Studierendenschaften und trifft stellvertretend für die studentischen Mitglieder der Hochschule finanzielle, organisatorische und vertragliche Entscheidungen. In letzter Instanz ist das StuPa das Organ in dem der Wählerwille zum Ausdruck kommt und das rechtlich verbindliche Geschäfte schließen kann. Insofern lastet auf den Mitgliedern des StuPa mitsamt seiner Ausschüsse (inkl. AStA) eine große Verantwortung, zumal die Wahlbeteiligung gerade so die 10% erreicht.
Dass sich die Studierenden in einer demokratischen und selbstständigen Institution organisieren dürfen, wurde sehr lange hart erkämpft. Die erkämpften Ziele der verfassten Studierendenschaften sind die politische Selbstbestimmung in Form gewählter Interessenvertretungen und die Einübung demokratischer Praktiken. Finanziell gestützt wird der Betrieb dieser Interessenvertretung durch einen Studierendenschaftsbeitrag, der jedes studentische Mitglied der Hochschule leisten muss. Damit einher kommt auch die Notwendigkeit der Rechtfertigung für die getätigten Ausgaben, die wichtig ist, der aber aus meinem Blickwinkel in der hochschulöffentlichen Wahrnehmung zu wenig Aufmerksamkeit gewidmet wird.
Lange Zeit habe ich darüber nachgedacht, wie es funktionieren kann, dass so viele Ehrenamtliche an den demokratischen Prozessen teilnehmen, und einige Errungenschaften erst außerhalb ihrer Studienzeit zum Tragen kommen. Wer dankt es ihnen? Nun, genau wie im Großen, wird auch hier im Kleinen ein Organ gewählt, das alle Studierenden vertritt und im Namen der Studierendenschaft sprechen darf: Das sind die Personen, die dem Legislativorgan, dem Studierendenparlament, vorsitzen. Sie haben durch eine Wahl die Pflicht auferlegt bekommen, das Sprachrohr der Studierendenschaft zu sein.
Während die Vorsitzenden des AStA, die ebenfalls alle Studierenden vertreten, dies im Tagesgeschäft tun, haben die Vorsitzenden des StuPa die Aufgabe dies im übergeordneten und politisch neutralen Sinne zu tun. Unabhängig vom Tagesgeschäft und der aktuellen hochschulpolitischen Situation sollen sie die notwendige Wertschätzung, die Dankbarkeit, den Respekt und die langfristigen Forderungen der Studierendenschaft verkörpern.
Mir ist absolut klar, dass dies eine Aufgabe ist, die für junge Studierende schier unmöglich erscheint. Doch jeder Mensch hat irgendwo mit dem Lernen und Üben demokratischer Prinzipien angefangen. Dazu gehört es auch undemokratische Fehler zu machen und diese dann einzugestehen und zu korrigieren. Perfekte Demokratie gibt es nirgendwo, aber die größtmöglichen Bestrebungen dorthin müssen bereits ausreichen.
Ideale Interessenvertretung gab es in den letzten zwei Jahren kaum. Man kann es meiner Meinung mit einem Vollzeitstudium im Nacken kaum schaffen, diesem Anspruch gerecht zu werden. Viel zu viele Möglichkeiten und viel zu wenig Zeit, um eine gute und fundierte Interessenvertretung auszuüben. Ich gab mein Bestes und das muss reichen.
Diese Verantwortung neben Studium und Privatleben zu stemmen, ist für viele Personen mit einer Aufgabe aller anderen Interessen verbunden. Je nach dem wie stark man selber versucht dieses Amt auszufüllen, verliert man sich auch in dem System und verliert den Überblick über wichtigere Dinge. Bei mir war es nach zwei Jahren soweit. An einem Punkt hatte ich das Gefühl, dass ich den Anforderungen des Amtes nicht mehr gerecht werde, und lasse meine Amtszeit deswegen nun zum März auslaufen. Es war eine schöne Zeit, in der ich viel gelernt und viel gesehen habe. Eine Zeit, die ich nicht mehr so einfach vergessen werde und die mich für mein ganzes Leben geprägt hat.
Unter vielen Dingen stechen einige wichtige Konzepte heraus, die ich zukünftig beherzigen möchte:
In den kommenden Monaten werde ich die letzten Dinge regeln und das Amt übergeben. Danach folgt ein letztes Studiensemester mit anschließender Bachelor-Prüfung. Was danach kommt, steht noch nirgendwo geschrieben.
]]>Zum Konstruieren dieses Schieberegisters ist es notwendig den grundlegenden Aufbau einer CRC-Strecke zu kennen. Eine CRC-Strecke wird mit einem Polynom beschrieben. Das Polynom beschreibt die Stellen der Knoten in dem physikalischen Aufbau der Schieberegisterbank. Jeder Knoten, außer der höchstwertigste, wird mit einem XOR-Gatter verknüpft.
Ein Rückkopplungspolynom
p(x)=x^5+x^3+x^1+1
liefert die Vorschrift für die abgebildete Schieberegisterstruktur.
Wird z.B. die Nachricht
N(x) = 11011 = x^4+x^3+x^1+x^0
versendet, wird mithilfe der CRC-Schieberegisterstruktur eine Prüfsumme erstellt.
q_1(x) = R(X) = (N(x) * x^5+00000) mod p(x) = 11010 0000
Diese Prüfsumme lautet dann
R(x) = 01111 = x^3+x^2+x^1+x^0
Wird diese Nachricht dann mit dem Restpolynom bzw. der Prüfsumme versendet und beim Empfänger ebenfalls geprüft, dann erhält man folgendes Ergebnis:
q_2(x) = N(x) * x^5 + R(x) = 11011 01111 = x^9+x^8+x^6+x^5+x^3+x^2+x^1+x^0
Die Berechnung, die dann durchgeführt wird ist:
R_neu(x)= q_2(x) mod p(x) R_neu(x)= 00000
Eine Modulo-Operation im binären kann mit einer Polynomdivision gleichgesetzt werden. Das liefert für die gezeigten Polynome dann das folgende Ergebnis:
]]>Dazu habe ich mir erst die Binary-File von rogerclarkmelbourne besorgt. Vorsicht: Die aktuellste Version funktioniert mit dem STM32F103C nicht.
Zum Hochladen des Bootloaders muss das Arduino-STM32 Projekt von rogerclarkmelbourne heruntergeladen werden und installiert werden. Die Doku von ihm reicht hier aus.
Dann muss der STM32 an einen Serial-to-USB-Adapter angeschlossen werden und mit stm32flash geflasht werden. BOOT0 muss auf HIGH gesetzt werden.
Danach ist der STM32 bereit zum Upload. Beim Start des Upload-Vorgangs lädt pulsiert PC13 um anzuzeigen, dass ein manueller RESET notwendig ist. Den sollte man nicht verpassen, dann startet der Download auf den STM32.
]]>