[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"btz8hO-MXSFLpybqvfjYVBre4OvrEJO1wFySe3Zmv-s":3,"9_t0YFtO844PW3-iCfPxRTbw8yv0-2zzu2bChZFenjo":39,"fTSZt0PiosQlLguyuxwi_KNydT1OlA8e1CacxLj_wRE":80,"AfuQERXo4XK6IWL6ohZxjdi-xK6dvUrBGPzfyuqZP1s":180,"_apollo:default":222},{"menu":4},{"__typename":5,"id":6,"name":7,"items":8},"Menu","footer","Fußzeile",[9,24,29,34],{"__typename":10,"id":11,"title":12,"description":13,"url":14,"langcode":15,"internal":20,"expanded":21,"attributes":22},"MenuItem","e2873307-b50a-4aab-b6b2-1950fd99c72e","Impressum",null,"/impressum",{"__typename":16,"id":17,"name":18,"direction":19},"Language","de","German","ltr",true,false,{"__typename":23,"class":13},"MenuItemAttributes",{"__typename":10,"id":25,"title":26,"description":13,"url":27,"langcode":15,"internal":20,"expanded":21,"attributes":28},"2cd9b7c9-142a-4ea3-b898-a0952c54a195","Datenschutz","/datenschutz",{"__typename":23,"class":13},{"__typename":10,"id":30,"title":31,"description":13,"url":32,"langcode":15,"internal":20,"expanded":21,"attributes":33},"a5effba3-5a8c-4125-8d78-0cdba09824db","AGB","/agb",{"__typename":23,"class":13},{"__typename":10,"id":35,"title":36,"description":13,"url":37,"langcode":15,"internal":21,"expanded":21,"attributes":38},"114bf071-bdbb-44cf-85c1-69e9d9e0777d","Newsletter","https://liechtenecker.at/newsletter-subscribe",{"__typename":23,"class":13},{"menu":40},{"__typename":5,"id":41,"name":42,"items":43},"nuxt-main-menu","Nuxt Hauptmenü",[44,50,55,60,65,70,75],{"__typename":10,"id":45,"title":46,"description":13,"url":47,"langcode":48,"internal":20,"expanded":21,"attributes":49},"1c7a5430-8a42-4b24-9544-252adabc2f4c","Projekte","/projekte",{"__typename":16,"id":17,"name":18,"direction":19},{"__typename":23,"class":13},{"__typename":10,"id":51,"title":52,"description":13,"url":53,"langcode":48,"internal":20,"expanded":21,"attributes":54},"14f196ab-2c9d-4ac6-81d6-276e68827139","Analyse","/clarity",{"__typename":23,"class":13},{"__typename":10,"id":56,"title":57,"description":13,"url":58,"langcode":48,"internal":20,"expanded":21,"attributes":59},"9c4feedc-79e4-4fbf-b68c-065f33ebfe4c","Sparring","/workshop-ux-sparring-fuer-unternehmen",{"__typename":23,"class":13},{"__typename":10,"id":61,"title":62,"description":13,"url":63,"langcode":48,"internal":20,"expanded":21,"attributes":64},"3b77a27b-272a-489f-843e-53e23ed07741","Trainings","/liechtenecker-ux-academy",{"__typename":23,"class":13},{"__typename":10,"id":66,"title":67,"description":13,"url":68,"langcode":48,"internal":20,"expanded":21,"attributes":69},"ce0bb82b-e1ee-4036-be95-f693a62e9f4a","Über uns","/about",{"__typename":23,"class":13},{"__typename":10,"id":71,"title":72,"description":13,"url":73,"langcode":48,"internal":20,"expanded":21,"attributes":74},"9ffc5019-cbd8-4b2e-8eb7-9feae486d4a1","Blog","/know-how",{"__typename":23,"class":13},{"__typename":10,"id":76,"title":77,"description":13,"url":78,"langcode":48,"internal":20,"expanded":21,"attributes":79},"04a19381-81a9-4694-8653-182d8855d2b5","Kontakt","/kontakt",{"__typename":23,"class":13},{"route":81},{"__typename":82,"entity":83},"RouteInternal",{"__typename":84,"id":85,"title":86,"changed":87,"created":93,"langcode":96,"path":97,"promote":21,"status":20,"sticky":21,"metatag":98,"postCategory":122,"postContentElements":13,"evergreen":13,"tags":13,"postWpBody":147,"wpHeaderImage":151,"wpHeaderImageOld":13,"wpHeaderImageOldSmall":13,"wpOgImage":163,"wpPromotedTeaserImage":13,"wpShareDescription":13,"wpShareTitle":13,"wpTeaserText":150,"wpYoastHead":173,"author":174},"NodeWpPost","723","Generative AI: Eine Web-App in 50 Bahn-Kilometern",{"__typename":88,"timestamp":89,"timezone":90,"offset":91,"time":92},"DateTime",1713418288,"UTC","+00:00","2024-04-18T05:31:28+00:00",{"__typename":88,"timestamp":94,"timezone":90,"offset":91,"time":95},1713416274,"2024-04-18T04:57:54+00:00",{"__typename":16,"id":17,"name":18,"direction":19},"/blog/generative-ai-eine-web-app-in-50-bahn-kilometern",[99,106,113,118],{"__typename":100,"tag":101,"attributes":102},"MetaTagValue","meta",{"__typename":103,"name":104,"content":105},"MetaTagValueAttributes","title","Generative AI: Eine Web-App in 50 Bahn-Kilometern | Liechtenecker UX Design Studio",{"__typename":107,"tag":108,"attributes":109},"MetaTagLink","link",{"__typename":110,"href":111,"hreflang":13,"rel":112,"media":13,"sizes":13,"type":13},"MetaTagLinkAttributes","http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/blog/generative-ai-eine-web-app-in-50-bahn-kilometern","canonical",{"__typename":114,"tag":101,"attributes":115},"MetaTagProperty",{"__typename":116,"property":117,"content":86},"MetaTagPropertyAttributes","og:title",{"__typename":114,"tag":101,"attributes":119},{"__typename":116,"property":120,"content":121},"og:image","http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/sites/default/files/styles/meta_og_image/public/wp-migration/wordpress-media-image/2024/04/BLOG_Generative-AI_SHARING-1204x630px-1.jpg?h=3ecc83bb&itok=o12gHWjR",{"__typename":123,"id":124,"name":125,"path":126,"status":20,"weight":127,"description":128,"langcode":132,"changed":133,"metatag":136},"TermCategories","7","Technologie","/kategorie/technologie",0,{"__typename":129,"processed":130,"format":131},"Text","Development Themen sowie zukünftige Technologien, mit denen wir uns auseinandersetzen. ","wp_html",{"__typename":16,"id":17,"name":18,"direction":19},{"__typename":88,"timestamp":134,"timezone":90,"offset":91,"time":135},1713772777,"2024-04-22T07:59:37+00:00",[137,140,144],{"__typename":100,"tag":101,"attributes":138},{"__typename":103,"name":104,"content":139},"Technologie | Liechtenecker UX Design Studio",{"__typename":100,"tag":101,"attributes":141},{"__typename":103,"name":142,"content":143},"description","Development Themen sowie zukünftige Technologien, mit denen wir uns auseinandersetzen.",{"__typename":107,"tag":108,"attributes":145},{"__typename":110,"href":146,"hreflang":13,"rel":112,"media":13,"sizes":13,"type":13},"http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/kategorie/technologie",{"__typename":148,"processed":149,"format":131,"summary":150},"TextSummary","\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Ch2>Der Hintergrund\u003C/h2>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Wir überwachen alle Projekte unserer Kunden (und natürlich auch unsere eigenen Services) mit einem Monitoring-Tool, das uns über Fehler, “Nicht-Erreichbarkeit” oder andere Probleme bei den von uns gehosteten Ressourcen informiert. Schon lange geistert bei uns die Idee herum, den Status der Services in einem Display bei uns im Büro anzuzeigen. Ein Kiosk, der uns laufend über Probleme informiert.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Noch schöner wäre es, eine kleine Web-Administration zu haben, die es erlaubt, auch andere Seiten in einer Schleife mit dem eigentlichen Status-Dashboard anzuzeigen. Passiert gerade etwas spannendes in der Welt? Wie wäre es mit dem Live-Feed dazu. Gehen wir mit einem Projekt Online? Projizieren wir die Seite an die Wand. Hat jemand ein besonders passendes Meme gefunden? Immer her damit.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cdiv style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\">\u003C/div>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Ch2>Die Ausführung\u003C/h2>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Der Kontext ist also gegeben – wie starten wir?\u003Cbr>Ich weiß, dass ich gerne eine Webapp mit Node Backend hätte – als Frontend Developer kenne ich mich mit JavaScript schließlich am Besten aus.\u003Cbr>Der Zug beginnt sich in Bewegung zu setzen. Ich schmeiße den Visual Studio Code inklusive Github Copilot Chat an.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Copilot Chat ist eine Integration für Visual Studio Code und andere IDEs, die es ermöglicht, mit einem “CoPilot” zu chatten. Dabei wird (wenn schon etwas vorhanden ist) auf den SourceCode im Projekt zugegriffen und generell Fragen und Lösungsvorschläge zu technischen Themen präsentiert. Github, das zu Microsoft gehört, benutzt dafür OpenAIs ChatGPT im Hintergrund. Naheliegend, denn Microsoft zählt mit einem Investment von (gerüchteweise) 13 Milliarden $ zu den größten Investoren.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Los gehts:\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cpre class=\"wp-block-verse\">ich möchte einen nodejs server mit minimalen ui bauen, in dem benutzer listen an urls mit weiteren parametern verwalten können. benutzer können urls und die anzeigedauer pro url eintragen. ein browser kann über eine seperate url auf den server zugreifen und erhält die aktuell aktive url\u003C/pre>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Copilot schlägt mir dafür einen Node Express Server mit ejs Templates vor. EJS hat mir davor nichts gesagt, wir setzen für unsere produktiven Lösungen im Backend auf PHP Stacks mit Laravel oder Drupal, scheint aber ein guter Einsatzzweck zu sein.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Copilot gibt mir eine Grundstruktur für meine App vor, erstellt mir einen Endpoint für das UI und eine Route für das anlegen neuer URLs.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-center col-xsmall-12 col-medium-6 col-medium-offset-3 \">\n            \n\u003Cfigure role=\"group\" class=\" wp-block-image size-large is-resized\">\n\u003Cdiv alt=\"node index.js\" data-entity-type=\"media\" data-entity-uuid=\"d643fcb0-6cbe-405f-be95-9c81c2561f5d\" data-langcode=\"de\" class=\"embedded-entity\">\u003Cdiv>\n  \n  \n  \u003Cdiv>\n    \u003Cdiv class=\"visually-hidden\">Bild\u003C/div>\n              \u003Cdiv>    \u003Cpicture>\n                  \u003Csource srcset=\"/sites/default/files/styles/image_width_medium/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png.webp?itok=L4PdXRhT 1x, /sites/default/files/styles/image_width_medium_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png.webp?itok=YbJ4UiMq 2x\" media=\"all and (min-width: 1024px) and (max-width: 1439px)\" type=\"image/webp\" width=\"1412\" height=\"170\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_small/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png.webp?itok=xTy4n-IG 1x, /sites/default/files/styles/image_width_small_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png.webp?itok=9c3bQQAU 2x\" media=\"all and (min-width: 745px) and (max-width: 1023px)\" type=\"image/webp\" width=\"1024\" height=\"123\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xsmall/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png.webp?itok=k3yMUtoX 1x, /sites/default/files/styles/image_width_xsmall_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png.webp?itok=jeIV76Qc 2x\" media=\"all and (min-width: 480px) and (max-width: 744px)\" type=\"image/webp\" width=\"745\" height=\"90\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xxsmall/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png.webp?itok=lYgMNCae 1x, /sites/default/files/styles/image_width_xxsmall_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png.webp?itok=9RR92SVD 2x\" media=\"all and (max-width: 479px)\" type=\"image/webp\" width=\"480\" height=\"58\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_large/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png.webp?itok=5Oo6GBi6 1x, /sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png.webp?itok=wbKJoQzz 2x\" type=\"image/webp\" width=\"1412\" height=\"170\">\n                  \u003Cimg loading=\"lazy\" width=\"1412\" height=\"170\" src=\"/sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png.jpg?itok=wbKJoQzz\" alt=\"node index.js\" title=\"node_index\">\n\n  \u003C/picture>\n\n\u003C/div>\n          \u003C/div>\n\n\u003C/div>\n\u003C/div>\n\n\u003Cfigcaption>Beispiel für die Ausgabe eines Resultats in Copilot.\u003C/figcaption>\n\u003C/figure>\n\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Und der Server läuft auf Port 3000. Weil noch ein Formular zum hinzufügen neuer URLs fehlt, bitte ich Copilot, dies zu ergänzen.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-center col-xsmall-12 col-medium-6 col-medium-offset-3 \">\n            \n\u003Cfigure role=\"group\" class=\" wp-block-image size-large is-resized\">\n\u003Cdiv alt=\"URLS \nAnzeigendauer (in Sekunden)\nURL hinzufügen\nhttps://www.google.at - 10 Sekunden\" data-entity-type=\"media\" data-entity-uuid=\"d90f2151-4294-4cbd-81f9-05c80cc0a38e\" data-langcode=\"de\" class=\"embedded-entity\">\u003Cdiv>\n  \n  \n  \u003Cdiv>\n    \u003Cdiv class=\"visually-hidden\">Bild\u003C/div>\n              \u003Cdiv>    \u003Cpicture>\n                  \u003Csource srcset=\"/sites/default/files/styles/image_width_medium/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-09.57.29.png.webp?itok=Si26FV-P 1x, /sites/default/files/styles/image_width_medium_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-09.57.29.png.webp?itok=hIl9VBV0 2x\" media=\"all and (min-width: 1024px) and (max-width: 1439px)\" type=\"image/webp\" width=\"910\" height=\"602\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_small/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-09.57.29.png.webp?itok=ojD4quNJ 1x, /sites/default/files/styles/image_width_small_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-09.57.29.png.webp?itok=Q-vUHBbJ 2x\" media=\"all and (min-width: 745px) and (max-width: 1023px)\" type=\"image/webp\" width=\"910\" height=\"602\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xsmall/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-09.57.29.png.webp?itok=uD1WpSwn 1x, /sites/default/files/styles/image_width_xsmall_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-09.57.29.png.webp?itok=p5qMzUA1 2x\" media=\"all and (min-width: 480px) and (max-width: 744px)\" type=\"image/webp\" width=\"745\" height=\"493\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xxsmall/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-09.57.29.png.webp?itok=5-oPos11 1x, /sites/default/files/styles/image_width_xxsmall_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-09.57.29.png.webp?itok=6FHtHMqb 2x\" media=\"all and (max-width: 479px)\" type=\"image/webp\" width=\"480\" height=\"318\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_large/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-09.57.29.png.webp?itok=ke3vwyl6 1x, /sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-09.57.29.png.webp?itok=1OHA5CF1 2x\" type=\"image/webp\" width=\"910\" height=\"602\">\n                  \u003Cimg loading=\"lazy\" width=\"910\" height=\"602\" src=\"/sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-09.57.29.png.jpg?itok=1OHA5CF1\" alt=\"URLS \nAnzeigendauer (in Sekunden)\nURL hinzufügen\nhttps://www.google.at - 10 Sekunden\" title=\"URLs_Anzeigendauer\">\n\n  \u003C/picture>\n\n\u003C/div>\n          \u003C/div>\n\n\u003C/div>\n\u003C/div>\n\n\u003Cfigcaption>Beispiel für die Ausgabe eines Resultats in Copilot.\u003C/figcaption>\n\u003C/figure>\n\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Preise gewinnt das UI nicht, aber es funktioniert. Ich kann neue URLs und Anzeigedauern hinzufügen. Für unsere Kunden entwickeln wir zwar immer eigene UIs, für interne App reicht Bootstrap aber auf alle Fälle. Wie wärs, Copilot?\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-center col-xsmall-12 col-medium-6 col-medium-offset-3 \">\n            \n\u003Cfigure role=\"group\" class=\" wp-block-image size-large is-resized\">\n\u003Cdiv alt=\"URLs\nAnzeigendauer\" data-entity-type=\"media\" data-entity-uuid=\"e9a637e4-14aa-4eb0-b756-06d0d4290464\" data-langcode=\"de\" class=\"embedded-entity\">\u003Cdiv>\n  \n  \n  \u003Cdiv>\n    \u003Cdiv class=\"visually-hidden\">Bild\u003C/div>\n              \u003Cdiv>    \u003Cpicture>\n                  \u003Csource srcset=\"/sites/default/files/styles/image_width_medium/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.00.11.png.webp?itok=FutLH7aK 1x, /sites/default/files/styles/image_width_medium_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.00.11.png.webp?itok=oDeJcRjr 2x\" media=\"all and (min-width: 1024px) and (max-width: 1439px)\" type=\"image/webp\" width=\"1440\" height=\"509\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_small/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.00.11.png.webp?itok=Q0UDeOPt 1x, /sites/default/files/styles/image_width_small_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.00.11.png.webp?itok=3VuJmgx- 2x\" media=\"all and (min-width: 745px) and (max-width: 1023px)\" type=\"image/webp\" width=\"1024\" height=\"362\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xsmall/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.00.11.png.webp?itok=6xdOYJ_E 1x, /sites/default/files/styles/image_width_xsmall_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.00.11.png.webp?itok=telf_OFb 2x\" media=\"all and (min-width: 480px) and (max-width: 744px)\" type=\"image/webp\" width=\"745\" height=\"264\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xxsmall/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.00.11.png.webp?itok=GCyOdvKl 1x, /sites/default/files/styles/image_width_xxsmall_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.00.11.png.webp?itok=dZC8S4DJ 2x\" media=\"all and (max-width: 479px)\" type=\"image/webp\" width=\"480\" height=\"170\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_large/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.00.11.png.webp?itok=kEHne0Rh 1x, /sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.00.11.png.webp?itok=ns4i_uyW 2x\" type=\"image/webp\" width=\"1620\" height=\"573\">\n                  \u003Cimg loading=\"lazy\" width=\"2352\" height=\"832\" src=\"/sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.00.11.png.jpg?itok=ns4i_uyW\" alt=\"URLs\nAnzeigendauer\" title=\"URLs\">\n\n  \u003C/picture>\n\n\u003C/div>\n          \u003C/div>\n\n\u003C/div>\n\u003C/div>\n\n\u003Cfigcaption>Beispiel für die Ausgabe eines Resultats in Copilot.\u003C/figcaption>\n\u003C/figure>\n\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Super – jetzt ein bisschen Feintuning:\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cpre class=\"wp-block-verse\">Füge eine Option zum Löschen einer URL hinzu. Ausnahmen davon sind URLs, die als Option protected: true haben\u003C/pre>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Wir möchten ja schließlich nicht, dass die lieben Kolleg:innen unseren Monitoring Status löschen, nur um ihre “lustigen Giphys” die ganze Zeit anzuzeigen.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Außerdem wäre noch Folgendes nett:\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cpre class=\"wp-block-verse\">verifiziere, dass die url die hinzugefügt werden soll ein gültiges url format aufweist\u003C/pre>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>und\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cpre class=\"wp-block-verse\">Verändere die Eingabe der Dauer der Anzeige im index.ejs zu einem HTML Range Feld mit minimal 5 und maximal 30 sekunden und zeige visuelles Feedback beim Ändern des Range-Sliders, wie viele Sekunden gerade eingestellt sind\u003C/pre>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Der Zug überquert die Donau, mein Zielbahnhof kommt näher. Nach wenigen Sekunden spuckt Copilot die gewünschten Dinge aus.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3  standard-list\">\n            \n\u003Cul>\u003Cli>Minimales Error-Handling das einen Fehler zurückwirft, wenn die URL nicht gültig ist\u003C/li>\u003Cli>ein Range-Slider mit Anzeige der aktuell eingestellten Sekunden\u003C/li>\u003Cli>Ein “Löschen” neben der URL, wenn diese von Hand hinzugefügt wurde\u003C/li>\u003C/ul>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-center col-xsmall-12 col-medium-6 col-medium-offset-3 \">\n            \n\u003Cfigure role=\"group\" class=\" wp-block-image size-large is-resized\">\n\u003Cdiv alt=\"URL Verwaltung\nUrls hinzufügen\n(Anzeigendauer 18s)\nAktuelle URLs\nhttpps://google.at/ - 10 Sekunden\nhttps://yahoo.com - 10 Sekunden (Löschen)\" data-entity-type=\"media\" data-entity-uuid=\"77d983b4-5247-4293-8004-80b01ee56008\" data-langcode=\"de\" class=\"embedded-entity\">\u003Cdiv>\n  \n  \n  \u003Cdiv>\n    \u003Cdiv class=\"visually-hidden\">Bild\u003C/div>\n              \u003Cdiv>    \u003Cpicture>\n                  \u003Csource srcset=\"/sites/default/files/styles/image_width_medium/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.08.29.png.webp?itok=r05Eya7g 1x, /sites/default/files/styles/image_width_medium_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.08.29.png.webp?itok=tLAjVn8K 2x\" media=\"all and (min-width: 1024px) and (max-width: 1439px)\" type=\"image/webp\" width=\"1440\" height=\"904\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_small/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.08.29.png.webp?itok=y0GE_fV1 1x, /sites/default/files/styles/image_width_small_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.08.29.png.webp?itok=zATI2CTR 2x\" media=\"all and (min-width: 745px) and (max-width: 1023px)\" type=\"image/webp\" width=\"1024\" height=\"643\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xsmall/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.08.29.png.webp?itok=0BWvEceG 1x, /sites/default/files/styles/image_width_xsmall_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.08.29.png.webp?itok=V-yoyMl4 2x\" media=\"all and (min-width: 480px) and (max-width: 744px)\" type=\"image/webp\" width=\"745\" height=\"468\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xxsmall/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.08.29.png.webp?itok=d9Jkqi8j 1x, /sites/default/files/styles/image_width_xxsmall_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.08.29.png.webp?itok=opJsrsjs 2x\" media=\"all and (max-width: 479px)\" type=\"image/webp\" width=\"480\" height=\"301\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_large/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.08.29.png.webp?itok=RbkazEm7 1x, /sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.08.29.png.webp?itok=R39C-zG3 2x\" type=\"image/webp\" width=\"1620\" height=\"1017\">\n                  \u003Cimg loading=\"lazy\" width=\"2398\" height=\"1506\" src=\"/sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.08.29.png.jpg?itok=R39C-zG3\" alt=\"URL Verwaltung\nUrls hinzufügen\n(Anzeigendauer 18s)\nAktuelle URLs\nhttpps://google.at/ - 10 Sekunden\nhttps://yahoo.com - 10 Sekunden (Löschen)\" title=\"URL Verwaltung\">\n\n  \u003C/picture>\n\n\u003C/div>\n          \u003C/div>\n\n\u003C/div>\n\u003C/div>\n\n\u003Cfigcaption>Beispiel für die Ausgabe eines Resultats in Copilot.\u003C/figcaption>\n\u003C/figure>\n\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Zusätzlich zum eigentlichen Code gibt mir Copilot auch immer eine textliche Erklärung, was in welchem File passieren soll und eine Warnung, den generierte Code nicht in Produktiv-Umgebungen einzusetzen. Keine Sorge, tun wir nicht.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-center col-xsmall-12 col-medium-6 col-medium-offset-3 \">\n            \n\u003Cfigure role=\"group\" class=\" wp-block-image size-large is-resized\">\n\u003Cdiv alt=\"Gifthub Copilot Anzeige mit Informationen und Codeausschnitten \n\" data-entity-type=\"media\" data-entity-uuid=\"c96c9882-1b7f-486e-854c-6ed1aaa56d91\" data-langcode=\"de\" class=\"embedded-entity\">\u003Cdiv>\n  \n  \n  \u003Cdiv>\n    \u003Cdiv class=\"visually-hidden\">Bild\u003C/div>\n              \u003Cdiv>    \u003Cpicture>\n                  \u003Csource srcset=\"/sites/default/files/styles/image_width_medium/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.12.02.png.webp?itok=WDIQ6cSs 1x, /sites/default/files/styles/image_width_medium_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.12.02.png.webp?itok=GKKgTEYt 2x\" media=\"all and (min-width: 1024px) and (max-width: 1439px)\" type=\"image/webp\" width=\"1122\" height=\"1254\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_small/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.12.02.png.webp?itok=U1SNn8Z2 1x, /sites/default/files/styles/image_width_small_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.12.02.png.webp?itok=WDyaSrSv 2x\" media=\"all and (min-width: 745px) and (max-width: 1023px)\" type=\"image/webp\" width=\"1024\" height=\"1144\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xsmall/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.12.02.png.webp?itok=-Jps5UyT 1x, /sites/default/files/styles/image_width_xsmall_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.12.02.png.webp?itok=806rBuzD 2x\" media=\"all and (min-width: 480px) and (max-width: 744px)\" type=\"image/webp\" width=\"745\" height=\"833\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xxsmall/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.12.02.png.webp?itok=p4xFaOV4 1x, /sites/default/files/styles/image_width_xxsmall_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.12.02.png.webp?itok=2Xl4klhu 2x\" media=\"all and (max-width: 479px)\" type=\"image/webp\" width=\"480\" height=\"536\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_large/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.12.02.png.webp?itok=JURfhlLu 1x, /sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.12.02.png.webp?itok=oq_8FGqO 2x\" type=\"image/webp\" width=\"1122\" height=\"1254\">\n                  \u003Cimg loading=\"lazy\" width=\"1122\" height=\"1254\" src=\"/sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2024/04/Bildschirmfoto-2024-03-15-um-10.12.02.png.jpg?itok=oq_8FGqO\" alt=\"Gifthub Copilot Anzeige mit Informationen und Codeausschnitten \n\" title=\"Bildschirmfoto-2024-03-15-um-10.12.02\">\n\n  \u003C/picture>\n\n\u003C/div>\n          \u003C/div>\n\n\u003C/div>\n\u003C/div>\n\n\u003Cfigcaption>Beispiel für die Ausgabe eines Resultats in Copilot.\u003C/figcaption>\n\u003C/figure>\n\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Eine schnelle Bestandsaufnahme:\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3  standard-list\">\n            \n\u003Cul>\u003Cli>Server, der ein UI bietet, um URLs hinzuzufügen und zu löschen\u003C/li>\u003Cli>Minimales Error-Handling\u003C/li>\u003Cli>Händisch hinzugefügte URLs überleben einen Server-Neustart nicht (dafür müssten wir eine Datenbank anbinden oder Daten in Files speichern) – ist vielleicht aber auch gar nicht so schlecht weil sich der Server nach einem Neustart dann selbst zurücksetzen kann.\u003C/li>\u003C/ul>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Gar nicht so schlecht für 30 Minuten Zugfahrt.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Nächster Schritt: Wie kann ich einen Client die aktuelle Seite anzeigen lassen und noch viel wichtiger, wie schalte ich die Seite automatisch nach der angegebenen Zeit auf die nächste Seite um?\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Copilot scheint meine Anforderungen nicht richtig zu verstehen (fairerweise ist das natürlich schon ein sehr spezieller Anwendungsfall). Zunächst schlägt es mir eine Seite vor, die die aktuelle URL als Textlink anzeigt. Das ist für einen Kiosk natürlich wenig sinnvoll.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Nach weiteren Versuchen schlägt mir Copilot eine Lösung mit iFrame vor, was grundsätzlich funktionieren würde. Viele Seiten setzen aber Header, um genau das zu verhindern. Copilot will mir einen Proxy andrehen, der diesen Header vom Request entfernt. Zum Glück verhindern Zertifikatsfehler diese man-in-the-middle-Attacke.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Ich weihe Copilot in meinen Plan ein den ich von Anfang an hatte: Eine Browser-Extension die den aktuelle URL bei Änderung “gepushed” bekommt. Welche Optionen gibt es, Copilot?\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cpre class=\"wp-block-verse\">Um eine Verbindung zu einem Endpunkt herzustellen, der einen nicht schließenden Stream unterstützt, können Sie verschiedene Technologien verwenden, abhängig von Ihren spezifischen Anforderungen. Hier sind einige Optionen:\n \u003Cstrong>WebSockets\u003C/strong>: WebSockets ermöglichen eine bidirektionale Kommunikation zwischen Client und Server über eine einzige, dauerhafte Verbindung. Sie können die&nbsp;\u003Ccode>ws\u003C/code>&nbsp;Bibliothek in Node.js verwenden, um einen WebSocket-Server zu erstellen.\n \u003Cstrong>Server-Sent Events (SSE)\u003C/strong>: SSE ist eine Technologie, die es einem Server ermöglicht, automatisch Daten an den Client zu senden, wenn neue Daten verfügbar sind. Sie können die&nbsp;\u003Ccode>express-sse\u003C/code>&nbsp;Bibliothek in Node.js verwenden, um SSE zu implementieren.\n \u003Cstrong>Long Polling\u003C/strong>: Bei Long Polling sendet der Client eine Anfrage an den Server und der Server hält die Anfrage offen, bis neue Daten verfügbar sind. Dann sendet der Server die Daten an den Client und schließt die Anfrage. Der Client sendet sofort eine neue Anfrage, um auf weitere Daten zu warten. Sie können dies mit jeder HTTP-Bibliothek implementieren, wie z.B.&nbsp;\u003Ccode>express\u003C/code>&nbsp;in Node.js.\n \u003Cstrong>HTTP/2 Server Push\u003C/strong>: HTTP/2 hat eine Funktion namens Server Push, die es dem Server ermöglicht, zusätzliche Ressourcen zusammen mit der Antwort auf die ursprüngliche Anforderung des Clients zu senden. Sie können die&nbsp;\u003Ccode>spdy\u003C/code>&nbsp;Bibliothek in Node.js verwenden, um einen HTTP/2-Server zu erstellen. \n Bitte beachten Sie, dass jede dieser Technologien ihre eigenen Vor- und Nachteile hat und die beste Wahl von Ihren spezifischen Anforderungen abhängt. \n\u003C/pre>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Danke, dann nehm ich doch 2.)\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Erstelle mir ein Grundgerüst für eine Browser-Extension für Chrome. Klappt nur halb, Copilot erstellt mir ein Manifest in Version 2 – Google hat schon angekündigt, die Unterstützung für V2 im Laufe von 2024 einzustellen.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Die veränderten Möglichkeiten und Parameter von V3 dürften noch nicht ganz zu Copilot vorgedrungen sein – bis die Extension lauffähig ist ist noch manueller Eingriff notwendig.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Mein Zug fährt in den Bahnhof ein. Ich hab nicht alles geschafft. Nach kleinen (manuellen) Eingriffen am nächsten Tag steht auch die Browser-Extension.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Jetzt fehlt noch der letzte Punkt, bei dem mir Copilot nicht helfen kann.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-center col-xsmall-12 col-medium-6 col-medium-offset-3 \">\n            \n\u003Cdiv alt=\"Wie kann ich einen Monitor an die Wand montieren?\nGifthub Copilot\nLeider kann ich nur bei Fragen im Zusammenhang mit der Programmierung helfen.\" data-entity-type=\"media\" data-entity-uuid=\"ed181691-a788-4b1f-a8d3-60e7a1a63ffd\" data-langcode=\"de\" class=\"embedded-entity\">\u003Cdiv>\n  \n  \n  \u003Cdiv>\n    \u003Cdiv class=\"visually-hidden\">Bild\u003C/div>\n              \u003Cdiv>    \u003Cpicture>\n                  \u003Csource srcset=\"/sites/default/files/styles/image_width_medium/public/wp-migration/wordpress-media-image/2024/04/Gifthub-Copilot.png.webp?itok=ZsvKjZGb 1x, /sites/default/files/styles/image_width_medium_x2/public/wp-migration/wordpress-media-image/2024/04/Gifthub-Copilot.png.webp?itok=HzBUchE8 2x\" media=\"all and (min-width: 1024px) and (max-width: 1439px)\" type=\"image/webp\" width=\"1130\" height=\"380\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_small/public/wp-migration/wordpress-media-image/2024/04/Gifthub-Copilot.png.webp?itok=SeBBE9mV 1x, /sites/default/files/styles/image_width_small_x2/public/wp-migration/wordpress-media-image/2024/04/Gifthub-Copilot.png.webp?itok=MKZBg5AO 2x\" media=\"all and (min-width: 745px) and (max-width: 1023px)\" type=\"image/webp\" width=\"1024\" height=\"344\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xsmall/public/wp-migration/wordpress-media-image/2024/04/Gifthub-Copilot.png.webp?itok=c-Km6Nk9 1x, /sites/default/files/styles/image_width_xsmall_x2/public/wp-migration/wordpress-media-image/2024/04/Gifthub-Copilot.png.webp?itok=In0qUJhe 2x\" media=\"all and (min-width: 480px) and (max-width: 744px)\" type=\"image/webp\" width=\"745\" height=\"251\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xxsmall/public/wp-migration/wordpress-media-image/2024/04/Gifthub-Copilot.png.webp?itok=y1Pe9fzb 1x, /sites/default/files/styles/image_width_xxsmall_x2/public/wp-migration/wordpress-media-image/2024/04/Gifthub-Copilot.png.webp?itok=C8SbFaOZ 2x\" media=\"all and (max-width: 479px)\" type=\"image/webp\" width=\"480\" height=\"161\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_large/public/wp-migration/wordpress-media-image/2024/04/Gifthub-Copilot.png.webp?itok=7-qCKTTd 1x, /sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2024/04/Gifthub-Copilot.png.webp?itok=XY5whBVh 2x\" type=\"image/webp\" width=\"1130\" height=\"380\">\n                  \u003Cimg loading=\"lazy\" width=\"1130\" height=\"380\" src=\"/sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2024/04/Gifthub-Copilot.png.jpg?itok=XY5whBVh\" alt=\"Wie kann ich einen Monitor an die Wand montieren?\nGifthub Copilot\nLeider kann ich nur bei Fragen im Zusammenhang mit der Programmierung helfen.\" title=\"Gifthub-Copilot\">\n\n  \u003C/picture>\n\n\u003C/div>\n          \u003C/div>\n\n\u003C/div>\n\u003C/div>\n\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cdiv style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\">\u003C/div>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Ch2>Fazit\u003C/h2>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Ich bin beeindruckt. Klar, die App könnten wir nie und nimmer Produktiv einsetzen – aber darauf weist ja selbst Copilot hin. Für ein RapidPrototyping, als Basis um mögliche Lösungen für Probleme auszuloten, funktioniert Copilot aber spitze.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n\n\n\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Cp>Hätte ich alles genau so gemacht, wie Copilot mir das vorgeschlagen hat? Wahrscheinlich nicht, aber darin liegt sicher auch ein großer Vorteil von LLMs. Das Wissen über eine schier unendliche Zahl an Tools, Libraries und möglichen Lösungswegen kann man sich nur für eine sehr kleine Domäne aneignen. Copilot hat und wird mir mit Sicherheit helfen, meinen Horizont zu erweitern.\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n","Es ist früher Donnerstagabend am Wiener Franz-Josefs-Bahnhof. Schwärme an Pendlern strömen in die Züge. Die Menschen wirken erschöpft und müde. Viele nutzen die Zeit im Zug um ein Buch zu lesen oder einfach nur aus dem Fenster zu schauen.\r\nDie Zugfahrt nach dem Büro ist für mich meistens die Zeit, offene Tasks abzuschließen, Tickets zu verschieben und zu kommentieren oder E-Mails zu beantworten. Doch heute soll das anders sein.",{"__typename":152,"id":153,"excludeFromScreenreader":13,"mediaImage":154,"name":159,"path":162,"status":20},"MediaImage","145",{"__typename":155,"url":156,"width":157,"height":158,"alt":13,"title":159,"size":160,"mime":161},"Image","http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/sites/default/files/wp-migration/wordpress-media-image/2024/04/BLOG_Generative-AI_TITEL-2880x1300px-scaled.jpg",2560,1156,"BLOG_Generative AI_TITEL-2880x1300px",412343,"image/jpeg","/media/145/edit",{"__typename":152,"id":164,"excludeFromScreenreader":13,"mediaImage":165,"name":170,"path":172,"status":20},"144",{"__typename":155,"url":166,"width":167,"height":168,"alt":169,"title":170,"size":171,"mime":161},"http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/sites/default/files/wp-migration/wordpress-media-image/2024/04/BLOG_Generative-AI_SHARING-1204x630px-1.jpg",1204,630,"Titelbild","BLOG_Generative AI_SHARING-1204x630px",448014,"/media/144/edit","\u003C!-- This site is optimized with the Yoast SEO plugin v15.7 - https://yoast.com/wordpress/plugins/seo/ -->\n\u003Cmeta name=\"description\" content=\"AI Assistenten gibt es mittlerweile für jeden Bereich unseres digitalen Lebens. Wir haben ausprobiert, wie hilfreich ein Assistent beim ntwickeln einer kleinen Webanwendung ist.\" />\n\u003Cmeta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" />\n\u003Clink rel=\"canonical\" href=\"https://legacy.liechtenecker.dev/blog/generative-ai-eine-web-app-in-50-bahn-kilometern/\" />\n\u003Cmeta property=\"og:locale\" content=\"de_DE\" />\n\u003Cmeta property=\"og:type\" content=\"article\" />\n\u003Cmeta property=\"og:title\" content=\"Generative AI: Eine Web-App in 50 Bahn-Kilometern - Liechtenecker\" />\n\u003Cmeta property=\"og:description\" content=\"AI Assistenten gibt es mittlerweile für jeden Bereich unseres digitalen Lebens. Wir haben ausprobiert, wie hilfreich ein Assistent beim ntwickeln einer kleinen Webanwendung ist.\" />\n\u003Cmeta property=\"og:url\" content=\"https://legacy.liechtenecker.dev/blog/generative-ai-eine-web-app-in-50-bahn-kilometern/\" />\n\u003Cmeta property=\"og:site_name\" content=\"Liechtenecker\" />\n\u003Cmeta property=\"article:published_time\" content=\"2024-04-18T06:57:54+00:00\" />\n\u003Cmeta property=\"article:modified_time\" content=\"2024-04-18T07:31:28+00:00\" />\n\u003Cmeta property=\"og:image\" content=\"https://legacy.liechtenecker.dev/wp-content/uploads/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png\" />\n\u003Cmeta name=\"twitter:card\" content=\"summary_large_image\" />\n\u003Cmeta name=\"twitter:label1\" content=\"Geschätzte Lesezeit\">\n\t\u003Cmeta name=\"twitter:data1\" content=\"7 Minuten\">\n\u003Cscript type=\"application/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https://legacy.liechtenecker.dev/#website\",\"url\":\"https://legacy.liechtenecker.dev/\",\"name\":\"Liechtenecker\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https://legacy.liechtenecker.dev/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de-DE\"},{\"@type\":\"ImageObject\",\"@id\":\"https://legacy.liechtenecker.dev/blog/generative-ai-eine-web-app-in-50-bahn-kilometern/#primaryimage\",\"inLanguage\":\"de-DE\",\"url\":\"https://legacy.liechtenecker.dev/wp-content/uploads/2024/04/Bildschirmfoto-2024-04-16-um-13.03.19.png\",\"width\":1412,\"height\":170},{\"@type\":\"WebPage\",\"@id\":\"https://legacy.liechtenecker.dev/blog/generative-ai-eine-web-app-in-50-bahn-kilometern/#webpage\",\"url\":\"https://legacy.liechtenecker.dev/blog/generative-ai-eine-web-app-in-50-bahn-kilometern/\",\"name\":\"Generative AI: Eine Web-App in 50 Bahn-Kilometern - Liechtenecker\",\"isPartOf\":{\"@id\":\"https://legacy.liechtenecker.dev/#website\"},\"primaryImageOfPage\":{\"@id\":\"https://legacy.liechtenecker.dev/blog/generative-ai-eine-web-app-in-50-bahn-kilometern/#primaryimage\"},\"datePublished\":\"2024-04-18T06:57:54+00:00\",\"dateModified\":\"2024-04-18T07:31:28+00:00\",\"author\":{\"@id\":\"https://legacy.liechtenecker.dev/#/schema/person/b24fd61d8a4acf49d8c56f320617f6ec\"},\"description\":\"AI Assistenten gibt es mittlerweile f\\u00fcr jeden Bereich unseres digitalen Lebens. Wir haben ausprobiert, wie hilfreich ein Assistent beim ntwickeln einer kleinen Webanwendung ist.\",\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https://legacy.liechtenecker.dev/blog/generative-ai-eine-web-app-in-50-bahn-kilometern/\"]}]},{\"@type\":\"Person\",\"@id\":\"https://legacy.liechtenecker.dev/#/schema/person/b24fd61d8a4acf49d8c56f320617f6ec\",\"name\":\"Stephan\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https://legacy.liechtenecker.dev/#personlogo\",\"inLanguage\":\"de-DE\",\"url\":\"https://secure.gravatar.com/avatar/400d5f8c531afb609b81aa66c8d56f01?s=96&d=mm&r=g\",\"caption\":\"Stephan\"}}]}\u003C/script>\n\u003C!-- / Yoast SEO plugin. -->",{"__typename":175,"id":176,"myRole":177,"name":178,"nickname":179},"User","23","langgedienter Frontend-Veteran","s-fletzberger","Stephan",{"latestKnowhow":181},[182,197,210],{"__typename":84,"id":183,"title":184,"path":185,"wpTeaserText":186,"wpPromotedTeaserImage":13,"wpHeaderImage":187},"1619","Behind the scenes: Ein Barrierefreiheits-Audit","/blog/behind-scenes-ein-barrierefreiheits-audit","”Entspricht unsere Website den gesetzlichen Anforderungen und wenn nicht, was genau müssen wir ändern?”\r\nDiese Frage lieben wir. Echt! Und so sieht unsere Antwort aus.",{"__typename":152,"id":188,"excludeFromScreenreader":13,"mediaImage":189,"name":195,"path":196,"status":20},"3364",{"__typename":155,"url":190,"width":191,"height":192,"alt":193,"title":13,"size":194,"mime":161},"http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/sites/default/files/2026-04/Headerbilder%20Blogartikel%20Behind%20the%20scene%20Accessibility%20Audit.jpg",2880,1300,"Headline mit Sujet: Tastatur mit Symbolen für Barrierefreiheit im Fokus auf hellem  Hintergrund",838204,"Headerbilder Blogartikel Behind the scene Accessibility Audit.jpg","/media/3364/edit",{"__typename":84,"id":198,"title":199,"path":200,"wpTeaserText":201,"wpPromotedTeaserImage":13,"wpHeaderImage":202},"1616","Agentic KI trifft Design-System: Wie unser Presentation Maker entstand.","/blog/agentic-ki-trifft-design-system-wie-unser-presentation-maker-entstand","Nein, wir wollen euch jetzt nicht erzählen, was KI alles kann. Aber wir möchten euch zeigen, wie wir mit KI umgehen. \r\n",{"__typename":152,"id":203,"excludeFromScreenreader":13,"mediaImage":204,"name":208,"path":209,"status":20},"3355",{"__typename":155,"url":205,"width":191,"height":192,"alt":206,"title":13,"size":207,"mime":161},"http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/sites/default/files/2026-03/BLOG_Presentation%20Tool_TITEL-2880x1300px_1.jpg","Lukas und Daniel  arbeiten an Computern im Büro.",2621988,"BLOG_Presentation Tool_TITEL-2880x1300px.jpg","/media/3355/edit",{"__typename":84,"id":211,"title":212,"path":213,"wpTeaserText":13,"wpPromotedTeaserImage":13,"wpHeaderImage":214},"1606","UI Trends 2026","/blog/ui-trends-2026",{"__typename":152,"id":215,"excludeFromScreenreader":21,"mediaImage":216,"name":220,"path":221,"status":20},"3303",{"__typename":155,"url":217,"width":191,"height":192,"alt":218,"title":13,"size":219,"mime":161},"http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/sites/default/files/2026-01/BLOG_Trendbericht%202026.jpg","UI Trends 2026, gelber Hintergrund, schwarze Schrift.",4700748,"BLOG_Trendbericht 2026.jpg","/media/3303/edit",{"Language:de":223,"MenuItem:e2873307-b50a-4aab-b6b2-1950fd99c72e":224,"MenuItem:2cd9b7c9-142a-4ea3-b898-a0952c54a195":228,"MenuItem:a5effba3-5a8c-4125-8d78-0cdba09824db":231,"MenuItem:114bf071-bdbb-44cf-85c1-69e9d9e0777d":234,"Menu:footer":237,"ROOT_QUERY":247,"MenuItem:1c7a5430-8a42-4b24-9544-252adabc2f4c":263,"MenuItem:14f196ab-2c9d-4ac6-81d6-276e68827139":266,"MenuItem:9c4feedc-79e4-4fbf-b68c-065f33ebfe4c":269,"MenuItem:3b77a27b-272a-489f-843e-53e23ed07741":272,"MenuItem:ce0bb82b-e1ee-4036-be95-f693a62e9f4a":275,"MenuItem:9ffc5019-cbd8-4b2e-8eb7-9feae486d4a1":278,"MenuItem:04a19381-81a9-4694-8653-182d8855d2b5":281,"Menu:nuxt-main-menu":284,"TermCategories:7":300,"MediaImage:145":311,"MediaImage:144":313,"User:23":315,"NodeWpPost:723":316,"MediaImage:3364":338,"NodeWpPost:1619":340,"MediaImage:3355":343,"NodeWpPost:1616":345,"MediaImage:3303":348,"NodeWpPost:1606":350},["null","__typename",16,"id",17,"name",18,"direction",19],["null","__typename",10,"id",11,"title",12,"description",13,"url",14,"langcode",225,"internal",20,"expanded",21,"attributes",227],{"__ref":226},"Language:de",["null","__typename",23,"class",13],["null","__typename",10,"id",25,"title",26,"description",13,"url",27,"langcode",229,"internal",20,"expanded",21,"attributes",230],{"__ref":226},["null","__typename",23,"class",13],["null","__typename",10,"id",30,"title",31,"description",13,"url",32,"langcode",232,"internal",20,"expanded",21,"attributes",233],{"__ref":226},["null","__typename",23,"class",13],["null","__typename",10,"id",35,"title",36,"description",13,"url",37,"langcode",235,"internal",21,"expanded",21,"attributes",236],{"__ref":226},["null","__typename",23,"class",13],["null","__typename",5,"id",6,"name",7,"items",238],[239,241,243,245],{"__ref":240},"MenuItem:e2873307-b50a-4aab-b6b2-1950fd99c72e",{"__ref":242},"MenuItem:2cd9b7c9-142a-4ea3-b898-a0952c54a195",{"__ref":244},"MenuItem:a5effba3-5a8c-4125-8d78-0cdba09824db",{"__ref":246},"MenuItem:114bf071-bdbb-44cf-85c1-69e9d9e0777d",["null","__typename",248,"menu({\"name\":\"FOOTER\"})",249,"menu({\"name\":\"NUXT_MAIN_MENU\"})",251,"route({\"path\":\"/blog/generative-ai-eine-web-app-in-50-bahn-kilometern\"})",253,"latestKnowhow({\"excludeId\":\"723\",\"limit\":3})",256],"Query",{"__ref":250},"Menu:footer",{"__ref":252},"Menu:nuxt-main-menu",["null","__typename",82,"entity",254],{"__ref":255},"NodeWpPost:723",[257,259,261],{"__ref":258},"NodeWpPost:1619",{"__ref":260},"NodeWpPost:1616",{"__ref":262},"NodeWpPost:1606",["null","__typename",10,"id",45,"title",46,"description",13,"url",47,"langcode",264,"internal",20,"expanded",21,"attributes",265],{"__ref":226},["null","__typename",23,"class",13],["null","__typename",10,"id",51,"title",52,"description",13,"url",53,"langcode",267,"internal",20,"expanded",21,"attributes",268],{"__ref":226},["null","__typename",23,"class",13],["null","__typename",10,"id",56,"title",57,"description",13,"url",58,"langcode",270,"internal",20,"expanded",21,"attributes",271],{"__ref":226},["null","__typename",23,"class",13],["null","__typename",10,"id",61,"title",62,"description",13,"url",63,"langcode",273,"internal",20,"expanded",21,"attributes",274],{"__ref":226},["null","__typename",23,"class",13],["null","__typename",10,"id",66,"title",67,"description",13,"url",68,"langcode",276,"internal",20,"expanded",21,"attributes",277],{"__ref":226},["null","__typename",23,"class",13],["null","__typename",10,"id",71,"title",72,"description",13,"url",73,"langcode",279,"internal",20,"expanded",21,"attributes",280],{"__ref":226},["null","__typename",23,"class",13],["null","__typename",10,"id",76,"title",77,"description",13,"url",78,"langcode",282,"internal",20,"expanded",21,"attributes",283],{"__ref":226},["null","__typename",23,"class",13],["null","__typename",5,"id",41,"name",42,"items",285],[286,288,290,292,294,296,298],{"__ref":287},"MenuItem:1c7a5430-8a42-4b24-9544-252adabc2f4c",{"__ref":289},"MenuItem:14f196ab-2c9d-4ac6-81d6-276e68827139",{"__ref":291},"MenuItem:9c4feedc-79e4-4fbf-b68c-065f33ebfe4c",{"__ref":293},"MenuItem:3b77a27b-272a-489f-843e-53e23ed07741",{"__ref":295},"MenuItem:ce0bb82b-e1ee-4036-be95-f693a62e9f4a",{"__ref":297},"MenuItem:9ffc5019-cbd8-4b2e-8eb7-9feae486d4a1",{"__ref":299},"MenuItem:04a19381-81a9-4694-8653-182d8855d2b5",["null","__typename",123,"id",124,"name",125,"path",126,"status",20,"weight",127,"description",301,"langcode",302,"changed",303,"metatag",304],["null","__typename",129,"processed",130,"format",131],{"__ref":226},["null","__typename",88,"timestamp",134,"timezone",90,"offset",91,"time",135],[305,307,309],["null","__typename",100,"tag",101,"attributes",306],["null","__typename",103,"name",104,"content",139],["null","__typename",100,"tag",101,"attributes",308],["null","__typename",103,"name",142,"content",143],["null","__typename",107,"tag",108,"attributes",310],["null","__typename",110,"href",146,"hreflang",13,"rel",112,"media",13,"sizes",13,"type",13],["null","__typename",152,"id",153,"excludeFromScreenreader",13,"mediaImage",312,"name",159,"path",162,"status",20],["null","__typename",155,"url",156,"width",157,"height",158,"alt",13,"title",159,"size",160,"mime",161],["null","__typename",152,"id",164,"excludeFromScreenreader",13,"mediaImage",314,"name",170,"path",172,"status",20],["null","__typename",155,"url",166,"width",167,"height",168,"alt",169,"title",170,"size",171,"mime",161],["null","__typename",175,"id",176,"myRole",177,"name",178,"nickname",179],["null","__typename",84,"id",85,"title",86,"changed",317,"created",318,"langcode",319,"path",97,"promote",21,"status",20,"sticky",21,"metatag",320,"category",329,"contentElements",13,"evergreen",13,"tags",13,"wpBody",331,"wpHeaderImage",332,"wpHeaderImageOld",13,"wpHeaderImageOldSmall",13,"wpOgImage",334,"wpPromotedTeaserImage",13,"wpShareDescription",13,"wpShareTitle",13,"wpTeaserText",150,"wpYoastHead",173,"author",336],["null","__typename",88,"timestamp",89,"timezone",90,"offset",91,"time",92],["null","__typename",88,"timestamp",94,"timezone",90,"offset",91,"time",95],{"__ref":226},[321,323,325,327],["null","__typename",100,"tag",101,"attributes",322],["null","__typename",103,"name",104,"content",105],["null","__typename",107,"tag",108,"attributes",324],["null","__typename",110,"href",111,"hreflang",13,"rel",112,"media",13,"sizes",13,"type",13],["null","__typename",114,"tag",101,"attributes",326],["null","__typename",116,"property",117,"content",86],["null","__typename",114,"tag",101,"attributes",328],["null","__typename",116,"property",120,"content",121],{"__ref":330},"TermCategories:7",["null","__typename",148,"processed",149,"format",131,"summary",150],{"__ref":333},"MediaImage:145",{"__ref":335},"MediaImage:144",{"__ref":337},"User:23",["null","__typename",152,"id",188,"excludeFromScreenreader",13,"mediaImage",339,"name",195,"path",196,"status",20],["null","__typename",155,"url",190,"width",191,"height",192,"alt",193,"title",13,"size",194,"mime",161],["null","__typename",84,"id",183,"title",184,"path",185,"wpTeaserText",186,"wpPromotedTeaserImage",13,"wpHeaderImage",341],{"__ref":342},"MediaImage:3364",["null","__typename",152,"id",203,"excludeFromScreenreader",13,"mediaImage",344,"name",208,"path",209,"status",20],["null","__typename",155,"url",205,"width",191,"height",192,"alt",206,"title",13,"size",207,"mime",161],["null","__typename",84,"id",198,"title",199,"path",200,"wpTeaserText",201,"wpPromotedTeaserImage",13,"wpHeaderImage",346],{"__ref":347},"MediaImage:3355",["null","__typename",152,"id",215,"excludeFromScreenreader",21,"mediaImage",349,"name",220,"path",221,"status",20],["null","__typename",155,"url",217,"width",191,"height",192,"alt",218,"title",13,"size",219,"mime",161],["null","__typename",84,"id",211,"title",212,"path",213,"wpTeaserText",13,"wpPromotedTeaserImage",13,"wpHeaderImage",351],{"__ref":352},"MediaImage:3303"]