[{"content":"I just enabled comments powered by giscus. From what I can tell so far this seems to be working really well.\nThanks to Chris Wilson for the short guide on how to integrate it into a Hugo website.\n","date":"26.08.2026","externalUrl":null,"permalink":"/posts/enabled_giscus_comments/","section":"Posts","summary":"I just enabled comments powered by giscus. From what I can tell so far this seems to be working really well.\n","title":"Enabled giscus Comments","type":"posts"},{"content":"","date":"26.08.2026","externalUrl":null,"permalink":"/posts/","section":"Posts","summary":"","title":"Posts","type":"posts"},{"content":"","date":"26.08.2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"26.08.2026","externalUrl":null,"permalink":"/tags/website/","section":"Tags","summary":"","title":"Website","type":"tags"},{"content":"","date":"18.08.2026","externalUrl":null,"permalink":"/tags/godot/","section":"Tags","summary":"","title":"Godot","type":"tags"},{"content":"A couple of examples on how to transform coordinates from one system into another. From local, lower nodes up the scene tree towards higher nodes, including SubViewports and the screen.\n\u0026ldquo;What are we doing? Is this difficult?\u0026rdquo; # \u0026hellip;you might ask. It isn\u0026rsquo;t, if you know what you are doing.™️ But there are some edge cases that deserve attention and aren\u0026rsquo;t as straightforward as one would like, so I wrote this down for other people who run into these issues.\nWhat we want to find out is how to transform coordinates from the local coordinate system of a Control to Canvas or screen coordinates. You usually do this by multiplying your local coordinates with a transform from \u0026ldquo;higher up the tree\u0026rdquo;. But once SubViewports, scaling, rotation, stretching and flipping come into play, things can get a bit more complicated. Also there\u0026rsquo;s a bug.\n\u0026ldquo;What do?\u0026rdquo; 🦜 # Move your mouse around the screen. Under the mouse cursor you see the local coordinates of the Control(s) that got a mouse motion GUI event:\nThe mouse moved over the \u0026ldquo;Background\u0026rdquo; node, at 821.67 / 186.25 (in local Control coordinates). That\u0026rsquo;s the same position on the CanvasLayer that includes the \u0026ldquo;Background\u0026rdquo; node. Transformed into \u0026ldquo;real\u0026rdquo; Screen pixel coordinates this results in 1972 / 447. Also you can draw on a Blackboard (the greenish rectangles) and they will show the local coordinates of the mouse cursor when they receive mouse motion events in _gui_input():\nHover over an info label to get a tooltip for better readability:\nHotkeys # F11: Toggle fullscreen. Escape: Quit GUIMouseListener and \u0026ldquo;mouse_moved\u0026rdquo; Signals # Most normal Controls who report mouse movement events extend from GUIMouseListener (gui_mouse_listener.gd). Once they receive an InputEventMouseMotion in _gui_input() they send a \u0026ldquo;mouse_moved\u0026rdquo; signal to report the mouse movement to the MouseOverlay:\nfunc _gui_input(event: InputEvent) -\u0026gt; void: var mouse_motion_event: InputEventMouseMotion = event as InputEventMouseMotion if mouse_motion_event: Events.mouse_moved.emit(self, mouse_motion_event.position) MouseOverlay # The MouseOverlay (mouse_overlay.gd) listens for \u0026ldquo;mouse_moved\u0026rdquo; signals. Once it receives a signal from a Control it transforms the local mouse position into coordinates of all the Viewports the Control is embedded in.\nTransformations # Simple Controls # Just some Blackboards (which are basically just Controls). Some are scaled or rotated, but since scale and rotation are part of the transform this is completely straightforward (the actual code is in mouse_overlay.gd):\nvar viewport := control.get_viewport() var coords_on_canvas := control.get_global_transform_with_canvas() * local_control_coords var window_coords := viewport.get_screen_transform() * coords_on_canvas Transform the local Control coordinates into Canvas coordinates. Transform the Canvas coordinates into screen coordinates. These are the real pixels on the screen (or at least in the Window). SubViewports in SubViewportContainers # The first two are fairly simple: SubViewports inside SubViewportContainers and each SubViewport contains a Blackboard control. The final size of each SubViewportContainer is 400×300, but they are set up differently.\nFirst SubViewportContainer # Size: 400×300 Stretch/Shrink: 4 SubViewport: 100×75 Blackboard: 100×75 The Blackboard control is rendered with a size of 100×75 inside the 100×75 Viewport. The Viewport is stretched by 4 to a size of 400×300. Second SubViewportContainer # Size: 200×150 Scale 2×2 SubViewport: 200×150 Blackboard: 100×75 Scale 2×2 The Blackboard control is rendered with size 100×75, but scaled by 2 to 200×150. The Viewport is rendered at 200×150, but also scaled by 2 to 400×300. Third SubViewportContainer # These are three SubViewportContainers and three SubViewports embedded inside each other.\nSubViewportContainer A: 200×150, scale 2×2 SubViewport A: 200×150 SubViewportContainer B: 100×75, scale 2×2 SubViewport B: 100×75 SubViewportContainer C: 100×75, rotation 15° SubViewport C: 100×75 Blackboard: 100×75 Transformations # The transformations for all of these work somewhat like this (the actual code is in mouse_overlay.gd):\nfunc calculate_transformations(control: Control, local_control_coords: Vector2): var sub_viewport: SubViewport = control.get_viewport() as SubViewport var sub_viewport_container: SubViewportContainer = sub_viewport.get_parent() as SubViewportContainer var coords_on_sub_viewport_canvas := control.get_global_transform_with_canvas() * local_control_coords var local_sub_viewport_container_coords := coords_on_sub_viewport_canvas if sub_viewport_container.stretch \u0026amp;\u0026amp; sub_viewport_container.stretch_shrink \u0026gt; 1: local_sub_viewport_container_coords *= sub_viewport_container.stretch_shrink # recurse calculate_transformations(sub_viewport_container, local_sub_viewport_container_coords) Get the SubViewport of the Control. Get the SubViewportContainer that contains the SubViewport. Transform the local Control coordinates into SubViewport coordinates. Transform the SubViewport coordinates into local SubViewportContainer coordinates. Adjust the local SubViewportContainer coordinates by stretch/shrink if necessary. Recursively do this all again, but now for the SubViewportContainer, going up the tree. A single 200×200 SubViewport rendered in multiple TextureRects # These are four different TextureRect controls that render the content of the same SubViewport as ViewportTextures. Some TextureRects are scaled, rotated or flipped.\nUnlike a SubViewportContainer, which does all the work for us under the hood, we need to forward all the events to the SubViewport manually. All our TextureRects have the gui_input_forwarder.gd script attached to them, which takes care of this. The important part here are the InputEvents, which we need to forward to the SubViewport.\nIn case of mouse events we have to manually transform the coordinates to Viewport coordinates first and also take horizontal and vertical flipping into consideration.\nfunc _gui_input(event: InputEvent) -\u0026gt; void: if is_propagated_in_gui_input(event): if event is InputEventMouse: var ev: InputEventMouse = event.duplicate() if ev is InputEventMouseMotion: Events.mouse_moved.emit(self, ev.position) ev.position = to_viewport_coords(ev.position) sub_viewport.push_input(ev) else: sub_viewport.push_input(event) func to_viewport_coords(pos: Vector2) -\u0026gt; Vector2: var normalized_pos := pos / size if flip_h: normalized_pos.x = 1.0 - normalized_pos.x if flip_v: normalized_pos.y = 1.0 - normalized_pos.y return normalized_pos * Vector2(sub_viewport.size) Note Due to (what I would personally call) a bug we can only forward InputEventMouseMotion events to the SubViewport if we sent it a NOTIFICATION_VP_MOUSE_ENTER first.\nfunc _notification(what: int) -\u0026gt; void: # Due to a bug we need to manually send NOTIFICATION_VP_MOUSE_ENTER to the SubViewport, # because otherwise we wouldn\u0026#39;t be able to push InputEventMouseMotion events. # https://github.com/godotengine/godot/issues/115265 match what: NOTIFICATION_MOUSE_ENTER: sub_viewport.notification(NOTIFICATION_VP_MOUSE_ENTER) NOTIFICATION_MOUSE_EXIT: sub_viewport.notification(NOTIFICATION_VP_MOUSE_EXIT) Once we have taken care of all of this and pushed the input events to the SubViewport, they will eventually reach the Controls inside it. Transforming the local Control coordinates back to SubViewport coordinates is straightforward (see mouse_overlay.gd for all the details):\nvar coords_on_sub_viewport_canvas := control.get_global_transform_with_canvas() * local_control_coords Note how, once we know the SubViewport coordinates, we cannot go further up the tree from the SubViewport to a TextureRect, like we did previously with SubViewportContainers, because the SubViewport has no idea that its contents are rendered inside a TextureRect (or shown at all) and also it isn\u0026rsquo;t a child of any of the TextureRects.\n\u0026ldquo;Readability sucks!\u0026rdquo; # Yeah. 🙁\n\u0026ldquo;Why?\u0026rdquo; # I was doing some 2D pixel style tests and playing around with 2D cameras and ran into issues converting coordinates back and forth between the cameras, UI, the game world and sub viewports. Thus a step back and more thorough investigation was called for.\nAlso I ran into some issues that took me a while to figure out and there wasn\u0026rsquo;t much information out there, so I wanted to provide a resource to help people, which is why this whole thing got a little more elaborate than just a little personal test project.\nFurther Reading # 2D coordinate systems and 2D transforms in the Godot Engine documentation.\nGitHub Repository # Toxe/godot-coordinate-systems How to transform coordinates from one system into another. From local, lower nodes up the scene tree towards higher nodes, including SubViewports and the screen. GDScript 1 0 ","date":"18.08.2026","externalUrl":null,"permalink":"/posts/godot_coordinate_system_transformations/","section":"Posts","summary":"A couple of examples on how to transform coordinates from one system into another. From local, lower nodes up the scene tree towards higher nodes, including SubViewports and the screen.\n","title":"Godot Coordinate System Transformations","type":"posts"},{"content":"","date":"18.08.2026","externalUrl":null,"permalink":"/tags/hugo/","section":"Tags","summary":"","title":"Hugo","type":"tags"},{"content":"In order to find a decent Hugo theme for this website I made a comparison of different themes.\nEach theme has its own branch, for example the PaperMod test is inside the papermod-theme branch.\nmy-theme Beautiful Hugo Blowfish Clarity FixIt PaperMod Branch my-theme beautifulhugo-theme blowfish-theme clarity-theme fixit-theme papermod-theme Homepage – Homepage Homepage – Homepage Homepage Repository – GitHub GitHub GitHub GitHub GitHub Demo – – – Demo Demo – Documentation – – Docs – Docs Wiki themes/ 21.3 KB 6.4 MB 68.6 MB 4.3 MB 16.9 MB 497.7 KB public/ 2.8 MB 9.1 MB 3.4 MB 4.3 MB 4.6 MB 3.0 MB public/posts/ 2.7 MB 2.8 MB 3.0 MB 2.8 MB 2.8 MB 2.8 MB public/css/ 368 Bytes 1.5 MB 115.0 KB 97.8 KB 216.6 KB 17.6 KB public/js/ 204 Bytes 1.1 MB 34.9 KB 72.6 KB 39.9 KB 18.2 KB Note The image posts/new-blog/big.jpg alone is already 2.7 MB big.\nGitHub Repository # Toxe/hugo-themes-test Hugo Themes Test null 0 0 ","date":"18.08.2026","externalUrl":null,"permalink":"/posts/hugo_themes_comparison/","section":"Posts","summary":"In order to find a decent Hugo theme for this website I made a comparison of different themes.\n","title":"Hugo Themes Comparison","type":"posts"},{"content":"I decided to make a small website/blog. I know, how very 2005 of me.\nIt\u0026rsquo;s not that I think that I have so many original thoughts that the world desperately needs to hear, but three or four times a year I do think about writing something that might be of interest or could be useful to at least a handful of people.\nBut I want to own my own content instead of giving it away for free to sites like Reddit, some random forum that might close down in a year or a blogging service like medium.com who can do whatever they want with it and earn money with something that I made for free and for the fun of it. And I feel like this is getting more and more important these days where enshittification is everywhere and sites shut down left and right or get pillaged by AI.\nSo here we are, I guess.\n","date":"16.08.2026","externalUrl":null,"permalink":"/posts/new-blog/","section":"Posts","summary":"I decided to make a small website/blog. I know, how very 2005 of me.\n","title":"New Blog","type":"posts"},{"content":" A simple website/blog for writing down thoughts and other things that might be interesting or useful to at least one person out there. Because why not? ","date":"20.05.2026","externalUrl":null,"permalink":"/","section":"","summary":" A simple website/blog for writing down thoughts and other things that might be interesting or useful to at least one person out there. Because why not? ","title":"","type":"page"},{"content":" Info This is required by German law.\n1. Datenschutz auf einen Blick # Allgemeine Hinweise # Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren personenbezogenen Daten passiert, wenn Sie diese Website besuchen. Personenbezogene Daten sind alle Daten, mit denen Sie persönlich identifiziert werden können. Ausführliche Informationen zum Thema Datenschutz entnehmen Sie unserer unter diesem Text aufgeführten Datenschutzerklärung.\nDatenerfassung auf dieser Website # Wer ist verantwortlich für die Datenerfassung auf dieser Website? # Die Datenverarbeitung auf dieser Website erfolgt durch den Websitebetreiber. Dessen Kontaktdaten können Sie dem Abschnitt „Hinweis zur Verantwortlichen Stelle“ in dieser Datenschutzerklärung entnehmen.\nWie erfassen wir Ihre Daten? # Ihre Daten werden zum einen dadurch erhoben, dass Sie uns diese mitteilen. Hierbei kann es sich z. B. um Daten handeln, die Sie in ein Kontaktformular eingeben.\nAndere Daten werden automatisch oder nach Ihrer Einwilligung beim Besuch der Website durch unsere IT-Systeme erfasst. Das sind vor allem technische Daten (z. B. Internetbrowser, Betriebssystem oder Uhrzeit des Seitenaufrufs). Die Erfassung dieser Daten erfolgt automatisch, sobald Sie diese Website betreten.\nWofür nutzen wir Ihre Daten? # Ein Teil der Daten wird erhoben, um eine fehlerfreie Bereitstellung der Website zu gewährleisten. Andere Daten können zur Analyse Ihres Nutzerverhaltens verwendet werden. Sofern über die Website Verträge geschlossen oder angebahnt werden können, werden die übermittelten Daten auch für Vertragsangebote, Bestellungen oder sonstige Auftragsanfragen verarbeitet.\nWelche Rechte haben Sie bezüglich Ihrer Daten? # Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Ihrer gespeicherten personenbezogenen Daten zu erhalten. Sie haben außerdem ein Recht, die Berichtigung oder Löschung dieser Daten zu verlangen. Wenn Sie eine Einwilligung zur Datenverarbeitung erteilt haben, können Sie diese Einwilligung jederzeit für die Zukunft widerrufen. Außerdem haben Sie das Recht, unter bestimmten Umständen die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Des Weiteren steht Ihnen ein Beschwerderecht bei der zuständigen Aufsichtsbehörde zu.\nHierzu sowie zu weiteren Fragen zum Thema Datenschutz können Sie sich jederzeit an uns wenden.\n2. Hosting # Wir hosten die Inhalte unserer Website bei folgendem Anbieter:\nHetzner\nAnbieter ist die Hetzner Online GmbH, Industriestr. 25, 91710 Gunzenhausen (nachfolgend Hetzner).\nDetails entnehmen Sie der Datenschutzerklärung von Hetzner:\nhttps://www.hetzner.com/de/legal/privacy-policy/.\nDie Verwendung von Hetzner erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO. Wir haben ein berechtigtes Interesse an einer möglichst zuverlässigen Darstellung unserer Website. Sofern eine entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG, soweit die Einwilligung die Speicherung von Cookies oder den Zugriff auf Informationen im Endgerät des Nutzers (z. B. Device-Fingerprinting) im Sinne des TDDDG umfasst. Die Einwilligung ist jederzeit widerrufbar.\n3. Allgemeine Hinweise und Pflichtinformationen # Datenschutz # Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend den gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerklärung.\nWenn Sie diese Website benutzen, werden verschiedene personenbezogene Daten erhoben. Personenbezogene Daten sind Daten, mit denen Sie persönlich identifiziert werden können. Die vorliegende Datenschutzerklärung erläutert, welche Daten wir erheben und wofür wir sie nutzen. Sie erläutert auch, wie und zu welchem Zweck das geschieht.\nWir weisen darauf hin, dass die Datenübertragung im Internet (z. B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.\nHinweis zur verantwortlichen Stelle # Die verantwortliche Stelle für die Datenverarbeitung auf dieser Website ist:\nTobias Brückner\nBernsener Str. 11\n31749 Auetal\nTelefon: 05753 961432\nE-Mail: toxe@toxe.net\nVerantwortliche Stelle ist die natürliche oder juristische Person, die allein oder gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung von personenbezogenen Daten (z. B. Namen, E-Mail-Adressen o. Ä.) entscheidet.\nSpeicherdauer # Soweit innerhalb dieser Datenschutzerklärung keine speziellere Speicherdauer genannt wurde, verbleiben Ihre personenbezogenen Daten bei uns, bis der Zweck für die Datenverarbeitung entfällt. Wenn Sie ein berechtigtes Löschersuchen geltend machen oder eine Einwilligung zur Datenverarbeitung widerrufen, werden Ihre Daten gelöscht, sofern wir keine anderen rechtlich zulässigen Gründe für die Speicherung Ihrer personenbezogenen Daten haben (z. B. steuer- oder handelsrechtliche Aufbewahrungsfristen); im letztgenannten Fall erfolgt die Löschung nach Fortfall dieser Gründe.\nAllgemeine Hinweise zu den Rechtsgrundlagen der Datenverarbeitung auf dieser Website # Sofern Sie in die Datenverarbeitung eingewilligt haben, verarbeiten wir Ihre personenbezogenen Daten auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO bzw. Art. 9 Abs. 2 lit. a DSGVO, sofern besondere Datenkategorien nach Art. 9 Abs. 1 DSGVO verarbeitet werden. Im Falle einer ausdrücklichen Einwilligung in die Übertragung personenbezogener Daten in Drittstaaten erfolgt die Datenverarbeitung außerdem auf Grundlage von Art. 49 Abs. 1 lit. a DSGVO. Sofern Sie in die Speicherung von Cookies oder in den Zugriff auf Informationen in Ihr Endgerät (z. B. via Device-Fingerprinting) eingewilligt haben, erfolgt die Datenverarbeitung zusätzlich auf Grundlage von § 25 Abs. 1 TDDDG. Die Einwilligung ist jederzeit widerrufbar. Sind Ihre Daten zur Vertragserfüllung oder zur Durchführung vorvertraglicher Maßnahmen erforderlich, verarbeiten wir Ihre Daten auf Grundlage des Art. 6 Abs. 1 lit. b DSGVO. Des Weiteren verarbeiten wir Ihre Daten, sofern diese zur Erfüllung einer rechtlichen Verpflichtung erforderlich sind auf Grundlage von Art. 6 Abs. 1 lit. c DSGVO. Die Datenverarbeitung kann ferner auf Grundlage unseres berechtigten Interesses nach Art. 6 Abs. 1 lit. f DSGVO erfolgen. Über die jeweils im Einzelfall einschlägigen Rechtsgrundlagen wird in den folgenden Absätzen dieser Datenschutzerklärung informiert.\nEmpfänger von personenbezogenen Daten # Im Rahmen unserer Geschäftstätigkeit arbeiten wir mit verschiedenen externen Stellen zusammen. Dabei ist teilweise auch eine Übermittlung von personenbezogenen Daten an diese externen Stellen erforderlich. Wir geben personenbezogene Daten nur dann an externe Stellen weiter, wenn dies im Rahmen einer Vertragserfüllung erforderlich ist, wenn wir gesetzlich hierzu verpflichtet sind (z. B. Weitergabe von Daten an Steuerbehörden), wenn wir ein berechtigtes Interesse nach Art. 6 Abs. 1 lit. f DSGVO an der Weitergabe haben oder wenn eine sonstige Rechtsgrundlage die Datenweitergabe erlaubt. Beim Einsatz von Auftragsverarbeitern geben wir personenbezogene Daten unserer Kunden nur auf Grundlage eines gültigen Vertrags über Auftragsverarbeitung weiter. Im Falle einer gemeinsamen Verarbeitung wird ein Vertrag über gemeinsame Verarbeitung geschlossen.\nWiderruf Ihrer Einwilligung zur Datenverarbeitung # Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen Einwilligung möglich. Sie können eine bereits erteilte Einwilligung jederzeit widerrufen. Die Rechtmäßigkeit der bis zum Widerruf erfolgten Datenverarbeitung bleibt vom Widerruf unberührt.\nWiderspruchsrecht gegen die Datenerhebung in besonderen Fällen sowie gegen Direktwerbung (Art. 21 DSGVO) # WENN DIE DATENVERARBEITUNG AUF GRUNDLAGE VON ART. 6 ABS. 1 LIT. E ODER F DSGVO ERFOLGT, HABEN SIE JEDERZEIT DAS RECHT, AUS GRÜNDEN, DIE SICH AUS IHRER BESONDEREN SITUATION ERGEBEN, GEGEN DIE VERARBEITUNG IHRER PERSONENBEZOGENEN DATEN WIDERSPRUCH EINZULEGEN; DIES GILT AUCH FÜR EIN AUF DIESE BESTIMMUNGEN GESTÜTZTES PROFILING. DIE JEWEILIGE RECHTSGRUNDLAGE, AUF DENEN EINE VERARBEITUNG BERUHT, ENTNEHMEN SIE DIESER DATENSCHUTZERKLÄRUNG. WENN SIE WIDERSPRUCH EINLEGEN, WERDEN WIR IHRE BETROFFENEN PERSONENBEZOGENEN DATEN NICHT MEHR VERARBEITEN, ES SEI DENN, WIR KÖNNEN ZWINGENDE SCHUTZWÜRDIGE GRÜNDE FÜR DIE VERARBEITUNG NACHWEISEN, DIE IHRE INTERESSEN, RECHTE UND FREIHEITEN ÜBERWIEGEN ODER DIE VERARBEITUNG DIENT DER GELTENDMACHUNG, AUSÜBUNG ODER VERTEIDIGUNG VON RECHTSANSPRÜCHEN (WIDERSPRUCH NACH ART. 21 ABS. 1 DSGVO).\nWERDEN IHRE PERSONENBEZOGENEN DATEN VERARBEITET, UM DIREKTWERBUNG ZU BETREIBEN, SO HABEN SIE DAS RECHT, JEDERZEIT WIDERSPRUCH GEGEN DIE VERARBEITUNG SIE BETREFFENDER PERSONENBEZOGENER DATEN ZUM ZWECKE DERARTIGER WERBUNG EINZULEGEN; DIES GILT AUCH FÜR DAS PROFILING, SOWEIT ES MIT SOLCHER DIREKTWERBUNG IN VERBINDUNG STEHT. WENN SIE WIDERSPRECHEN, WERDEN IHRE PERSONENBEZOGENEN DATEN ANSCHLIESSEND NICHT MEHR ZUM ZWECKE DER DIREKTWERBUNG VERWENDET (WIDERSPRUCH NACH ART. 21 ABS. 2 DSGVO).\nBeschwerde­recht bei der zuständigen Aufsichts­behörde # Im Falle von Verstößen gegen die DSGVO steht den Betroffenen ein Beschwerderecht bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat ihres gewöhnlichen Aufenthalts, ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes zu. Das Beschwerderecht besteht unbeschadet anderweitiger verwaltungsrechtlicher oder gerichtlicher Rechtsbehelfe.\nRecht auf Daten­übertrag­barkeit # Sie haben das Recht, Daten, die wir auf Grundlage Ihrer Einwilligung oder in Erfüllung eines Vertrags automatisiert verarbeiten, an sich oder an einen Dritten in einem gängigen, maschinenlesbaren Format aushändigen zu lassen. Sofern Sie die direkte Übertragung der Daten an einen anderen Verantwortlichen verlangen, erfolgt dies nur, soweit es technisch machbar ist.\nAuskunft, Berichtigung und Löschung # Sie haben im Rahmen der geltenden gesetzlichen Bestimmungen jederzeit das Recht auf unentgeltliche Auskunft über Ihre gespeicherten personenbezogenen Daten, deren Herkunft und Empfänger und den Zweck der Datenverarbeitung und ggf. ein Recht auf Berichtigung oder Löschung dieser Daten. Hierzu sowie zu weiteren Fragen zum Thema personenbezogene Daten können Sie sich jederzeit an uns wenden.\nRecht auf Einschränkung der Verarbeitung # Sie haben das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Hierzu können Sie sich jederzeit an uns wenden. Das Recht auf Einschränkung der Verarbeitung besteht in folgenden Fällen:\nWenn Sie die Richtigkeit Ihrer bei uns gespeicherten personenbezogenen Daten bestreiten, benötigen wir in der Regel Zeit, um dies zu überprüfen. Für die Dauer der Prüfung haben Sie das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Wenn die Verarbeitung Ihrer personenbezogenen Daten unrechtmäßig geschah/geschieht, können Sie statt der Löschung die Einschränkung der Datenverarbeitung verlangen. Wenn wir Ihre personenbezogenen Daten nicht mehr benötigen, Sie sie jedoch zur Ausübung, Verteidigung oder Geltendmachung von Rechtsansprüchen benötigen, haben Sie das Recht, statt der Löschung die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Wenn Sie einen Widerspruch nach Art. 21 Abs. 1 DSGVO eingelegt haben, muss eine Abwägung zwischen Ihren und unseren Interessen vorgenommen werden. Solange noch nicht feststeht, wessen Interessen überwiegen, haben Sie das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Wenn Sie die Verarbeitung Ihrer personenbezogenen Daten eingeschränkt haben, dürfen diese Daten – von ihrer Speicherung abgesehen – nur mit Ihrer Einwilligung oder zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen oder zum Schutz der Rechte einer anderen natürlichen oder juristischen Person oder aus Gründen eines wichtigen öffentlichen Interesses der Europäischen Union oder eines Mitgliedstaats verarbeitet werden. SSL- bzw. TLS-Verschlüsselung # Diese Seite nutzt aus Sicherheitsgründen und zum Schutz der Übertragung vertraulicher Inhalte, wie zum Beispiel Bestellungen oder Anfragen, die Sie an uns als Seitenbetreiber senden, eine SSL- bzw. TLS-Verschlüsselung. Eine verschlüsselte Verbindung erkennen Sie daran, dass die Adresszeile des Browsers von „http://“ auf „https://“ wechselt und an dem Schloss-Symbol in Ihrer Browserzeile.\nWenn die SSL- bzw. TLS-Verschlüsselung aktiviert ist, können die Daten, die Sie an uns übermitteln, nicht von Dritten mitgelesen werden.\nWiderspruch gegen Werbe-E-Mails # Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-E-Mails, vor.\n4. Datenerfassung auf dieser Website # Cookies # Unsere Internetseiten verwenden so genannte „Cookies“. Cookies sind kleine Datenpakete und richten auf Ihrem Endgerät keinen Schaden an. Sie werden entweder vorübergehend für die Dauer einer Sitzung (Session-Cookies) oder dauerhaft (permanente Cookies) auf Ihrem Endgerät gespeichert. Session-Cookies werden nach Ende Ihres Besuchs automatisch gelöscht. Permanente Cookies bleiben auf Ihrem Endgerät gespeichert, bis Sie diese selbst löschen oder eine automatische Löschung durch Ihren Webbrowser erfolgt.\nCookies können von uns (First-Party-Cookies) oder von Drittunternehmen stammen (sog. Third-Party-Cookies). Third-Party-Cookies ermöglichen die Einbindung bestimmter Dienstleistungen von Drittunternehmen innerhalb von Webseiten (z. B. Cookies zur Abwicklung von Zahlungsdienstleistungen).\nCookies haben verschiedene Funktionen. Zahlreiche Cookies sind technisch notwendig, da bestimmte Webseitenfunktionen ohne diese nicht funktionieren würden (z. B. die Warenkorbfunktion oder die Anzeige von Videos). Andere Cookies können zur Auswertung des Nutzerverhaltens oder zu Werbezwecken verwendet werden.\nCookies, die zur Durchführung des elektronischen Kommunikationsvorgangs, zur Bereitstellung bestimmter, von Ihnen erwünschter Funktionen (z. B. für die Warenkorbfunktion) oder zur Optimierung der Website (z. B. Cookies zur Messung des Webpublikums) erforderlich sind (notwendige Cookies), werden auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO gespeichert, sofern keine andere Rechtsgrundlage angegeben wird. Der Websitebetreiber hat ein berechtigtes Interesse an der Speicherung von notwendigen Cookies zur technisch fehlerfreien und optimierten Bereitstellung seiner Dienste. Sofern eine Einwilligung zur Speicherung von Cookies und vergleichbaren Wiedererkennungstechnologien abgefragt wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage dieser Einwilligung (Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG); die Einwilligung ist jederzeit widerrufbar.\nSie können Ihren Browser so einstellen, dass Sie über das Setzen von Cookies informiert werden und Cookies nur im Einzelfall erlauben, die Annahme von Cookies für bestimmte Fälle oder generell ausschließen sowie das automatische Löschen der Cookies beim Schließen des Browsers aktivieren. Bei der Deaktivierung von Cookies kann die Funktionalität dieser Website eingeschränkt sein.\nSofern weitere Cookies und Dienste auf dieser Website eingesetzt werden, können Sie dies dieser Datenschutzerklärung entnehmen.\nServer-Log-Dateien # Der Provider der Seiten erhebt und speichert automatisch Informationen in so genannten Server-Log-Dateien, die Ihr Browser automatisch an uns übermittelt. Dies sind:\nBrowsertyp und Browserversion verwendetes Betriebssystem Referrer URL Hostname des zugreifenden Rechners Uhrzeit der Serveranfrage IP-Adresse Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen.\nDie Erfassung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO. Der Websitebetreiber hat ein berechtigtes Interesse an der technisch fehlerfreien Darstellung und der Optimierung seiner Website – hierzu müssen die Server-Log-Files erfasst werden.\nAnfrage per E-Mail, Telefon oder Telefax # Wenn Sie uns per E-Mail, Telefon oder Telefax kontaktieren, wird Ihre Anfrage inklusive aller daraus hervorgehenden personenbezogenen Daten (Name, Anfrage) zum Zwecke der Bearbeitung Ihres Anliegens bei uns gespeichert und verarbeitet. Diese Daten geben wir nicht ohne Ihre Einwilligung weiter.\nDie Verarbeitung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO, sofern Ihre Anfrage mit der Erfüllung eines Vertrags zusammenhängt oder zur Durchführung vorvertraglicher Maßnahmen erforderlich ist. In allen übrigen Fällen beruht die Verarbeitung auf unserem berechtigten Interesse an der effektiven Bearbeitung der an uns gerichteten Anfragen (Art. 6 Abs. 1 lit. f DSGVO) oder auf Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) sofern diese abgefragt wurde; die Einwilligung ist jederzeit widerrufbar.\nDie von Ihnen an uns per Kontaktanfragen übersandten Daten verbleiben bei uns, bis Sie uns zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt (z. B. nach abgeschlossener Bearbeitung Ihres Anliegens). Zwingende gesetzliche Bestimmungen – insbesondere gesetzliche Aufbewahrungsfristen – bleiben unberührt.\nKommentar­funktion auf dieser Website # Für die Kommentarfunktion auf dieser Seite werden neben Ihrem Kommentar auch Angaben zum Zeitpunkt der Erstellung des Kommentars, Ihre E-Mail-Adresse und, wenn Sie nicht anonym posten, der von Ihnen gewählte Nutzername gespeichert.\nSpeicherung der IP-Adresse # Unsere Kommentarfunktion speichert die IP-Adressen der Nutzer, die Kommentare verfassen. Da wir Kommentare auf dieser Website nicht vor der Freischaltung prüfen, benötigen wir diese Daten, um im Falle von Rechtsverletzungen wie Beleidigungen oder Propaganda gegen den Verfasser vorgehen zu können.\nAbonnieren von Kommentaren # Als Nutzer der Seite können Sie nach einer Anmeldung Kommentare abonnieren. Sie erhalten eine Bestätigungsemail, um zu prüfen, ob Sie der Inhaber der angegebenen E-Mail-Adresse sind. Sie können diese Funktion jederzeit über einen Link in den Info-Mails abbestellen. Die im Rahmen des Abonnierens von Kommentaren eingegebenen Daten werden in diesem Fall gelöscht; wenn Sie diese Daten für andere Zwecke und an anderer Stelle (z. B. Newsletterbestellung) an uns übermittelt haben, verbleiben diese Daten jedoch bei uns.\nSpeicherdauer der Kommentare # Die Kommentare und die damit verbundenen Daten werden gespeichert und verbleiben auf dieser Website, bis der kommentierte Inhalt vollständig gelöscht wurde oder die Kommentare aus rechtlichen Gründen gelöscht werden müssen (z. B. beleidigende Kommentare).\nRechtsgrundlage # Die Speicherung der Kommentare erfolgt auf Grundlage Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO). Sie können eine von Ihnen erteilte Einwilligung jederzeit widerrufen. Dazu reicht eine formlose Mitteilung per E-Mail an uns. Die Rechtmäßigkeit der bereits erfolgten Datenverarbeitungsvorgänge bleibt vom Widerruf unberührt.\n5. Plugins und Tools # YouTube mit erweitertem Datenschutz # Diese Website bindet Videos der Website YouTube ein. Betreiber der Website ist die Google Ireland Limited („Google”), Gordon House, Barrow Street, Dublin 4, Irland.\nWenn Sie eine dieser Website besuchen, auf denen YouTube eingebunden ist, wird eine Verbindung zu den Servern von YouTube hergestellt. Dabei wird dem YouTube-Server mitgeteilt, welche unserer Seiten Sie besucht haben. Wenn Sie in Ihrem YouTube-Account eingeloggt sind, ermöglichen Sie YouTube, Ihr Surfverhalten direkt Ihrem persönlichen Profil zuzuordnen. Dies können Sie verhindern, indem Sie sich aus Ihrem YouTube-Account ausloggen.\nWir nutzen YouTube im erweiterten Datenschutzmodus. Videos, die im erweiterten Datenschutzmodus abgespielt werden, werden nach Aussage von YouTube nicht zur Personalisierung des Surfens auf YouTube eingesetzt. Anzeigen, die im erweiterten Datenschutzmodus ausgespielt werden, sind ebenfalls nicht personalisiert. Im erweiterten Datenschutzmodus werden keine Cookies gesetzt. Stattdessen werden jedoch sogenannte Local Storage Elemente im Browser des Users gespeichert, die ähnlich wie Cookies personenbezogene Daten beinhalten und zur Wiedererkennung eingesetzt werden können. Details zum erweiterten Datenschutzmodus finden Sie hier:\nhttps://support.google.com/youtube/answer/171780.\nGegebenenfalls können nach der Aktivierung eines YouTube-Videos weitere Datenverarbeitungsvorgänge ausgelöst werden, auf die wir keinen Einfluss haben.\nDie Nutzung von YouTube erfolgt im Interesse einer ansprechenden Darstellung unserer Online-Angebote. Dies stellt ein berechtigtes Interesse im Sinne von Art. 6 Abs. 1 lit. f DSGVO dar. Sofern eine entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TDDDG, soweit die Einwilligung die Speicherung von Cookies oder den Zugriff auf Informationen im Endgerät des Nutzers (z. B. Device-Fingerprinting) im Sinne des TDDDG umfasst. Die Einwilligung ist jederzeit widerrufbar.\nWeitere Informationen über Datenschutz bei YouTube finden Sie in deren Datenschutzerklärung unter:\nhttps://policies.google.com/privacy?hl=de.\nDas Unternehmen verfügt über eine Zertifizierung nach dem „EU-US Data Privacy Framework“ (DPF). Der DPF ist ein Übereinkommen zwischen der Europäischen Union und den USA, der die Einhaltung europäischer Datenschutzstandards bei Datenverarbeitungen in den USA gewährleisten soll. Jedes nach dem DPF zertifizierte Unternehmen verpflichtet sich, diese Datenschutzstandards einzuhalten. Weitere Informationen hierzu erhalten Sie vom Anbieter unter folgendem Link:\nhttps://www.dataprivacyframework.gov/participant/5780.\nFont Awesome (lokales Hosting) # Diese Seite nutzt zur einheitlichen Darstellung von Schriftarten Font Awesome. Font Awesome ist lokal installiert. Eine Verbindung zu Servern von Fonticons, Inc. findet dabei nicht statt.\nWeitere Informationen zu Font Awesome finden Sie in der Datenschutzerklärung für Font Awesome unter:\nhttps://fontawesome.com/privacy.\n","date":"20.05.2026","externalUrl":null,"permalink":"/datenschutzerkl%C3%A4rung/","section":"","summary":" Info This is required by German law.\n","title":"Datenschutzerklärung","type":"page"},{"content":" Info This is required by German law.\nAngaben gemäß § 5 DDG\nTobias Brückner\nBernsener Str. 11\n31749 Auetal\nKontakt # Telefon: 05753 961432\nE-Mail: toxe@toxe.net\nVerbraucherstreitbeilegung/Universalschlichtungsstelle # Wir nehmen nicht an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teil und sind dazu auch nicht verpflichtet.\nHaftungsausschluss # Haftung für Inhalte # Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 DDG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 DDG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.\nHaftung für Links # Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.\nUrheberrecht # Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.\n","date":"20.05.2026","externalUrl":null,"permalink":"/impressum/","section":"","summary":" Info This is required by German law.\n","title":"Impressum","type":"page"},{"content":"A simple website/blog for writing down thoughts and other things that might be interesting or useful to at least one person out there. Because why not?\nPowered by Hugo \u0026amp; Blowfish. Comments are provided by giscus.\nThis website\u0026rsquo;s source code repository can be found here: https://github.com/Toxe/toxe-net\nContact # Send me an email at toxe@toxe.net or leave a comment under an article.\nCopyright # Unless otherwise noted, all articles on this site are licensed under CC BY-SA 4.0 and all code snippets are licensed under the MIT License. The underlying source code of the website is under the MIT License.\nUsing this website\u0026rsquo;s content for AI/ML/LLM training or development is strictly prohibited.\n","date":"20.05.2026","externalUrl":null,"permalink":"/about/","section":"","summary":"A simple website/blog for writing down thoughts and other things that might be interesting or useful to at least one person out there. Because why not?\n","title":"About","type":"page"}]