{"id":12221,"date":"2022-11-16T16:06:53","date_gmt":"2022-11-16T15:06:53","guid":{"rendered":"https:\/\/vived.io\/?p=12221"},"modified":"2022-11-16T16:07:56","modified_gmt":"2022-11-16T15:07:56","slug":"spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/","title":{"rendered":"Spo\u0142eczno\u015b\u0107 Javy szuka szcz\u0119\u015bcia poza Twitterem. Chcesz do\u0142\u0105czy\u0107? &#8211; JVM Weekly #113"},"content":{"rendered":"\n<h2 id=\"1-usuwanie-dlugu-technicznego-z-jdk-trwa-w-najlepsze\" data-num=1>1. Usuwanie D\u0142ugu Technicznego z JDK trwa w najlepsze<\/h2>\n\n\n\n<p>Zacznijmy od pakietu obowi\u0105zkowego, czyli zbioru nowo\u015bci w kontek\u015bcie zbli\u017caj\u0105cej si\u0119 premiery (czy raczej finalnej listy funkcjonalno\u015bci) do JDK 20. Tym razem nie ma tego a\u017c tak wiele, skupimy si\u0119 wi\u0119c raczej na tak zwanych &#8222;Quality Outreach Heads-Ups&#8221;, kt\u00f3re na ludzie mo\u017cna przet\u0142umaczy\u0107 jako czyszczenie d\u0142ugu technicznego przez programist\u00f3w JDK. O zapowiedzianym jeszcze we wrze\u015bniu wyrzuceniu <a href=\"https:\/\/inside.java\/2022\/09\/26\/quality-heads-up\/\">mo\u017cliwo\u015bci kompilacji do bajt kodu zgodnego z JDK 1.7<\/a> ju\u017c kiedy\u015b wspomina\u0142em, teraz pora przygl\u0105dn\u0105\u0107 si\u0119 pozosta\u0142ym, czeka nas bowiem troch\u0119 niespodzianek.<\/p>\n\n\n\n<p>Pewnie kojarzycie, \u017ce w Javie klasa <code>Thread<\/code> posiada sporo metod pomocniczych &#8211; i mam nadzieje, \u017ce nie musieli\u015bcie ich u\u017cywa\u0107. Ci\u0105gle pami\u0119tam, jak uczy\u0142em si\u0119 Javy z klasycznego <a href=\"https:\/\/www.amazon.com\/Thinking-Java-4th-Bruce-Eckel\/dp\/0131872486\">Thinking in Java<\/a> autorstwa Bruce Eckela, kt\u00f3ry na d\u0142ugie lata wystraszy\u0142 mnie przed my\u015bleniem o jakiejkolwiek asynchroniczno\u015bci w Javie. <code>Thread.wait()<\/code>, <code>Thread.join()<\/code> i <code>Thread.notify()<\/code>, s\u0142u\u017c\u0105ce do niskopoziomowego zarz\u0105dzania wsp\u00f3\u0142bie\u017cno\u015bci\u0105 zawsze wydawa\u0142o mi si\u0119 bardzo ko\u015blawe i bardzo ciesz\u0119 si\u0119, \u017ce w JDK 1.5 dodane zosta\u0142o <code>java.util.concurrent<\/code>. Klarowno\u015bci API dostarczanego przez <code>Thread<\/code> nie pomaga\u0142o jednak to, \u017ce klasa udost\u0119pnia\u0142a tak\u017ce dodatkowe metody &#8211; <code>Thread.stop()<\/code>, <code>Thread.suspend()<\/code>, <code>Thread.resume()<\/code>, kt\u00f3re jak si\u0119 okazuje, by\u0142y zdeprecatowane ju\u017c od JDK 1.2. Teraz nareszcie przyszed\u0142 czas, aby si\u0119 ich pozby\u0107. <a href=\"https:\/\/inside.java\/2022\/11\/09\/quality-heads-up\/\">Zgodnie z zapowiedziami<\/a>, nast\u0105pi to w\u0142a\u015bnie w JDK 20. Wi\u0119cej szczeg\u00f3\u0142\u00f3w znajdziecie w dokumencie <strong><a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/19\/docs\/api\/java.base\/java\/lang\/doc-files\/threadPrimitiveDeprecation.html\">Java Thread Primitive Deprecation<\/a><\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-23.png\" alt=\"\" class=\"wp-image-12225\" width=\"500\" height=\"465\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-23.png 500w, https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-23-300x279.png 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><figcaption>To tylko pokazuje, jak bardzo na sercu tw\u00f3rcy Javy maj\u0105 wsteczn\u0105 kompatybilno\u015b\u0107<\/figcaption><\/figure><\/div>\n\n\n<p>Ostatni\u0105 z usuwanych funkcjonalno\u015bci jest wyczyszczenie niepotrzebnego ju\u017c <strong><a href=\"https:\/\/inside.java\/2022\/11\/14\/quality-heads-up\/\">Multithreaded Custom Class Loaders<\/a><\/strong>. By\u0142 to swoisty woraround &#8211; etap po\u015bredni, kt\u00f3ry niezb\u0119dny by\u0142 do zmigrowania niekt\u00f3rych aplikacji do nowej architektury Class Loader\u00f3w, wprowadzony jeszcze na poziomie JDK 1.7. Teraz, gdy pozbyto si\u0119 resztek wersji 1.7 z platformy, przyszed\u0142 czas r\u00f3wnie\u017c na deprekacje i wy\u0142\u0105czenie wspomnianych Class Loader\u00f3w.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"358\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/waiting-1.gif\" alt=\"\" class=\"wp-image-12230\"\/><figcaption>Mo\u017ce do czasu JDK 30 pozb\u0119dziemy si\u0119 ich z projektu.<\/figcaption><\/figure><\/div>\n\n\n<p>Co opr\u00f3cz tego? Nowe JEPy powi\u0105zane z Projektem Loom. Zanim jednak poniesie Was za bardzo wyobra\u017ania, drugie preview Wirtualnych W\u0105tk\u00f3w oraz druga inkubacja Structure Concurrency nie nios\u0105 za sob\u0105 jakich\u015b szczeg\u00f3lnie du\u017cych zmian. Po prostu kilka zmian API, kt\u00f3re zosta\u0142y jakby bokiem przepchni\u0119te w ramach poprzedniej iteracji proposali (jak np. <code>ExecutorService<\/code> rozszerzaj\u0105cy interfejs <code>AutoCloseable<\/code>) zosta\u0142y ustabilizowane i wmigrowane do stabilnego codebase JDK, przez co naturalnym by\u0142o ich znikni\u0119cie z JEP-a. Na JEPy przeniesiono r\u00f3wnie\u017c zmiany zwi\u0105zane z w\u0105tkami, o kt\u00f3rych pisa\u0142em w poprzednich akapitach. Poza tym prac\u0119 nad oboma proposalami nie posun\u0119\u0142y si\u0119 do przodu w obserwowalny z zewn\u0105trz spos\u00f3b.<\/p>\n\n\n\n<p>A je\u017celi jeste\u015bcie zawiedzeni zmianami w Loomie, to chcia\u0142em zakomunikowa\u0107, \u017ce ze snu zimowego (czy raczej jesienno-letniego) wybudzi\u0142 si\u0119 ostatnio Project Valhalla i mam nadzieje, \u017ce nied\u0142ugo doczekamy si\u0119 wi\u0119kszych og\u0142osze\u0144. Ale po takim rozgrzaniu Waszych apetyt\u00f3w zostawi\u0119 to sobie na inn\u0105 okazj\u0119.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u017br\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/openjdk.org\/jeps\/436\">JEP 436: Virtual Threads (Second Preview)<\/a><\/li><li><a href=\"https:\/\/openjdk.org\/jeps\/437\">JEP 437: Structured Concurrency (Second Incubator)<\/a><\/li><li><a href=\"https:\/\/inside.java\/2022\/11\/14\/quality-heads-up\/\">JDK 20: Disable the Legacy Parallel Class Loading Workaround<\/a><\/li><li><a href=\"https:\/\/inside.java\/2022\/09\/26\/quality-heads-up\/\">Quality Outreach Heads-up &#8211; JDK 20: Disable the Legacy Parallel Class Loading Workaround<\/a><\/li><li><a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/19\/docs\/api\/java.base\/java\/lang\/doc-files\/threadPrimitiveDeprecation.html\">Java Thread Primitive Deprecation<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"2-foojay-io-tworzy-serwer-mastodon-dla-java-developerow\" data-num=2>2. <a class=\"autolink\" href=\"https:\/\/foojay.io\">foojay.io<\/a> tworzy serwer Mastodon dla Java Developer\u00f3w<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"760\" height=\"428\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-22.png\" alt=\"\" class=\"wp-image-12222\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-22.png 760w, https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-22-300x169.png 300w\" sizes=\"auto, (max-width: 760px) 100vw, 760px\" \/><\/figure><\/div>\n\n\n<p>Nie chcia\u0142bym si\u0119 za du\u017co rozpisywa\u0107 o tym, co dzieje si\u0119 w Twitterze &#8211; po pierwsze, od tego mam sobotnie przegl\u0105dy <a href=\"https:\/\/vived.io\/category\/craftmanship\/\">Software Craftsmanship Weekly<\/a> (do kt\u00f3rych lektury zach\u0119cam), z drugiej chyba wszyscy mamy tej dramy troch\u0119 do\u015b\u0107. Wspominam o niej jednak dlatego, \u017ce sprawa przeszczepi\u0142a si\u0119 na \u015bwiat javowy w do\u015b\u0107 ciekawy spos\u00f3b.<\/p>\n\n\n\n<p>Ot\u00f3\u017c &#8211; przynajmniej na poziomie komunikacji &#8211; jeste\u015bmy \u015bwiadkami wielkiego odwrotu od Twittera. W zasadzie ca\u0142y \u015bwiat technologiczny zacz\u0105\u0142 rozgl\u0105da\u0107 si\u0119 za alternatyw\u0105 dla platformy Elona Muska. Jednym z g\u0142\u00f3wnych kontender\u00f3w do tronu wydaje si\u0119 by\u0107 Mastodon. Je\u017celi uznamy &#8211; jak kaza\u0142by nam przekaz medialny &#8211; Twittera jako prywatny folwark jednej osoby, Mastodon jest platform\u0105 federacyjn\u0105. Oznacza to, \u017ce nie ma w niej \u017cadnego g\u0142\u00f3wnego feedu (cho\u0107 na taki pozycjonuje si\u0119 <a href=\"https:\/\/mastodon.social\/\">mastodon.social<\/a>), a do\u015bwiadczenie u\u017cytkownika budowane jest przez wiele r\u00f3\u017cnych spo\u0142eczno\u015bci, do kt\u00f3rych mo\u017ce do\u0142\u0105czy\u0107. W tym tygodniu <a href=\"http:\/\/foojay.io\">foojay.io<\/a>, jeden z najwi\u0119kszych (i najlepszych) portali poruszaj\u0105cych tematy zwi\u0105zane z JDK. W b\u0142yskawicznym tempie (od <a href=\"https:\/\/foojay.io\/today\/lets-start-a-java-mastodon-community-for-friends-of-openjdk\">propozycji<\/a> do uruchomienia min\u0119\u0142o nieca\u0142e 48h) stworzyli oni <a href=\"https:\/\/foojay.io\/today\/foojay-mastodon-service-here-it-is\/\">w\u0142asne Community<\/a> <a href=\"https:\/\/foojay.social\/\">foojay.social<\/a>, na kt\u00f3re zapraszaj\u0105 u\u017cytkownik\u00f3w. Ja r\u00f3wnie\u017c zapraszam, sam zamierzam si\u0119 tam ton\u0119 poudziela\u0107.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"585\" height=\"427\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-24.png\" alt=\"\" class=\"wp-image-12233\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-24.png 585w, https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-24-300x219.png 300w\" sizes=\"auto, (max-width: 585px) 100vw, 585px\" \/><figcaption>B\u0119d\u0105c adwokatem diab\u0142a &#8211; Ben Thompson (autor Stratechery) twierdzi, \u017ce bardzo trudno jest zreplikowa\u0107 g\u0142\u00f3wn\u0105 warto\u015b\u0107 Twittera, kt\u00f3ry jest wielki &#8222;equalizatorem&#8221; umo\u017cliwiaj\u0105cym dyskurs z najwi\u0119kszymi tego \u015bwiata. A to do\u015b\u0107 kiepsko spina si\u0119 z modelem federacyjnym.<\/figcaption><\/figure><\/div>\n\n\n<p>Je\u015bli chcecie dowiedzie\u0107 si\u0119 wi\u0119cej, czym jest Mastodon &#8211; ostatnio tekst w tym temacie <a href=\"https:\/\/martinfowler.com\/articles\/exploring-mastodon.html\">napisa\u0142 sam Martin Fowler<\/a>. Warto te\u017c w tym temacie wspomnie\u0107, \u017ce r\u00f3wnie\u017c Twitter od pewnego czasu pozwala na tworzenie grup dyskusyjnych skupionych w ko\u0142o pojedynczego tematu. Przyk\u0142adowo, tutaj mo\u017cecie <a href=\"https:\/\/twitter.com\/i\/communities\/1471178821906821122\">znale\u017a\u0107 javow\u0105<\/a>, kt\u00f3ra nale\u017cy do jako tako aktywnych &#8211; cho\u0107 mam wra\u017cenie, \u017ce raczej u\u017cywana jest g\u0142\u00f3wnie do promocji w\u0142asnych materia\u0142\u00f3w dotycz\u0105cych j\u0119zyka przez autor\u00f3w (guilty as charged). Ca\u0142o\u015b\u0107 mo\u017ce jednak da\u0107 Wam przedsmak tego, jak wygl\u0105da\u0107 mo\u017ce taki stricte tematyczny feed.<\/p>\n\n\n\n<p>Ostatni\u0105 rzecz\u0105, o kt\u00f3rej chcia\u0142em wspomnie\u0107 jest <a href=\"https:\/\/javabubble.org\/\">Java Bubble<\/a> &#8211; jest to utrzymywana przez spo\u0142eczno\u015b\u0107 (a dok\u0142adnie przez <a href=\"https:\/\/twitter.com\/marcandsweep\">Marc R. Hoffmanna<\/a>) lista os\u00f3b, kt\u00f3re dziel\u0105 si\u0119 swoj\u0105 wiedz\u0105 dotycz\u0105c\u0105 Javy. Je\u015bli zastanawiali\u015bcie si\u0119, kogo warto \u015bledzi\u0107 w ekosystemie &#8211; my\u015bl\u0119, \u017ce jest to dobry punkt startowy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/foojay.social\/\">foojay.social<\/a><\/li><li><a href=\"https:\/\/foojay.io\/today\/lets-start-a-java-mastodon-community-for-friends-of-openjdk\">Let\u2019s Start a Java Mastodon Community for Friends of OpenJDK!<\/a><\/li><li><a href=\"https:\/\/javabubble.org\/\">Java Bubble<\/a><\/li><li><a href=\"https:\/\/martinfowler.com\/articles\/exploring-mastodon.html\">Exploring Mastodon<\/a><\/li><li><a href=\"https:\/\/foojay.io\/today\/foojay-mastodon-service-here-it-is\/\">Foojay Mastodon Service: Here It Is!<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"3-usluga-serverless-dla-jakarte-ee-serio\" data-num=3>3. Us\u0142uga Serverless dla Jakarte EE &#8211; Serio <\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>Nikt:<\/strong><br><strong>Dalej Nikt: <\/strong><br><strong>Payara:<\/strong> Zr\u00f3bmy Cloud Serverless dla Jakarta EE!<\/p><\/blockquote>\n\n\n\n<p>Przyznam, \u017ce dawno \u017caden nag\u0142\u00f3wek mnie tak nie zaskoczy\u0142 jak informacja o tym, \u017ce Payara postanowi\u0142a stworzy\u0107 <a href=\"https:\/\/www.payara.fish\/products\/payara-cloud\/\">Payara Cloud<\/a> &#8211; <a href=\"https:\/\/foojay.io\/today\/payara-launches-payara-cloud-serverless-approach-for-jakarta-ee\/\">Platform-as-a-Service dla aplikacji napisanych w Jakrata EE<\/a>. Dzia\u0142a to tak, \u017ce bierzesz swojego *.war zgodnego ze specyfikacj\u0105 Jakarta Web Profile, uploadujesz go na chmur\u0119 i&#8230; gotowe. W pierwszej chwili jedyne, co mi si\u0119 pojawi\u0142o w g\u0142owie to &#8222;czego to ludzie nie wymy\u015bl\u0105&#8221; i prawie zacz\u0105\u0142em scrollowa\u0107 dalej&#8230; ale jednak nagle &#8222;klik\u0142o&#8221; i z perspektywy stwierdzam, \u017ce ma to w\u0142a\u015bciwie sporo sensu i dobrze wpisuje si\u0119 w historie platformy jak\u0105 jest Jakarta EE.<\/p>\n\n\n\n<p>Bo powiedzmy sobie szczerze &#8211; standard Java EE powsta\u0142 w ko\u0144cu po to, aby by\u0107 w stanie odseparowa\u0107 j\u0119zyka od konkretnej implementacji dostarczonej przez poszczeg\u00f3lnych vendor\u00f3w. Tego typu podej\u015bcie idealnie wi\u0119c wpisuje si\u0119 w sytuacj\u0119, w kt\u00f3rej dostawcy infrastruktury s\u0105 w stanie zapewni\u0107 dedykowane pod Jakartowe API. Ja wiem, dzisiaj i tak to pakujemy wszystko w Dockery, ale tak naprawd\u0119 stanowi\u0105 one dodatkow\u0105 warstw\u0119 nad tak\u0105 czyst\u0105, skalowaln\u0105 platform\u0105 Serverless, jak\u0105 obiecuje nam Payara. Je\u015bli dodatkowo spojrzymy na Serwery Aplikacyjne jako \u015brodowisko uruchomieniowy dla aplikacji (czym w zasadzie s\u0105), to podej\u015bcie &#8222;wrzucam jar\/war i zapominam o mojej aplikacji cloud-native&#8221; wydaje si\u0119 by\u0107 a\u017c nazbyt kusz\u0105ce. Po prostu ponownie historia zatoczy\u0142a ko\u0142o.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-26-1024x576.png\" alt=\"\" class=\"wp-image-12237\" width=\"768\" height=\"432\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-26-1024x576.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-26-300x169.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-26-768x432.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-26.png 1280w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption>Nic nowego na tym \u015bwiecie.<\/figcaption><\/figure><\/div>\n\n\n<p>Zreszt\u0105, to nie jest pierwszy projekt &#8222;ucloudnatywiaj\u0105cy&#8221; aplikacje Jakarta EE. Jest jeszcze Pirania Cloud, kt\u00f3rego celem jest konteneryzacja aplikacji napisanych zgodnie z zasadami Jakarcie EE. Tego typu paczuszk\u0119 mo\u017cemy po prostu wrzuci\u0107 na dowoln\u0105 chmur\u0119. Stwierdzi\u0142em, \u017ce warto o tym wspomnie\u0107 przy okazji jej najnowszego <a href=\"https:\/\/github.com\/piranhacloud\/piranha\/releases\/tag\/v22.11.0\">wydania 22.11<\/a>, kt\u00f3re ukaza\u0142o si\u0119 w zesz\u0142ym tygodniu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.payara.fish\/products\/payara-cloud\/\">Payara Cloud<\/a><\/li><li><a href=\"https:\/\/github.com\/piranhacloud\/piranha\/releases\/tag\/v22.11.0\">Piranha 22.11.0<\/a><\/li><li><a href=\"https:\/\/foojay.io\/today\/payara-launches-payara-cloud-serverless-approach-for-jakarta-ee\/\">Payara Launches Payara Cloud \u2013 Serverless Approach for Jakarta EE<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"4-quarkus-zapowiada-swoja-trzecia-edycje-z-masa-interesujacych-zmian\" data-num=4>4. Quarkus zapowiada swoj\u0105 &#8222;trzeci\u0105&#8221; edycj\u0119 z mas\u0105 interesuj\u0105cych zmian<\/h2>\n\n\n\n<p>No i na sam koniec mamy chyba najwi\u0119ksze og\u0142oszenie zesz\u0142ego tygodnia, czyli przymiarki do <a href=\"https:\/\/quarkus.io\/blog\/road-to-quarkus-3\/\">trzeciej wersji Quarkusa<\/a>. Podbicie &#8222;du\u017cej wersji&#8221; zawsze pozwala tw\u00f3rcom na zrobienie du\u017cego skoku do przodu, a patrz\u0105c po ilo\u015bci zmian, kt\u00f3re s\u0105 planowane w nowym Quarkusie, to jego tw\u00f3rcy skwapliwie z tej opcji skorzystali.<\/p>\n\n\n\n<p>Co ciekawe, zmiany wychodz\u0105 poza standardowe podbicie wersji API, bibliotek i platform, cho\u0107 tych te\u017c nie brakuje. Nowy Quarkus przyniesie bowiem Hibernate 6, Jakarte EE 10 (co &#8211; pami\u0119tajcie &#8211; rozwala kompatybilno\u015b\u0107) oraz MicroProfile 6 (na kt\u00f3rego premier\u0119 zreszt\u0105 ci\u0105gle czekamy, ale o jego temat akurat zahaczali\u015bmy w zesz\u0142ym tygodniu). Pod mask\u0105 jednak znajdziemy sporo znacznie ciekawszych rzeczy.<\/p>\n\n\n\n<p>Nowy Quarkus przynosi min. wsparcie dla HTTP\/3, kt\u00f3re mo\u017cecie zna\u0107 r\u00f3wnie\u017c pod nazw\u0105 Quic. Protok\u00f3\u0142 ten mo\u017cna w uproszeniu okre\u015bli\u0107 jako implementacje standardowego modelu request-response znanego z HTTP, ale opart\u0105 zamiast na TCP to UDP. Dzi\u0119ki temu zapewnia\u0107 ma znacznie lepsz\u0105 wydajno\u015b\u0107 w wypadku aplikacji webowych, kt\u00f3re pobieraj\u0105 znaczne ilo\u015bci zasob\u00f3w zewn\u0119trznych. W tym miejscu zako\u0144cz\u0119, ale je\u015bli jeste\u015bcie ciekawi wi\u0119kszej ilo\u015bci detali &#8211; tutaj znajdziecie <a href=\"https:\/\/www.jesuisundev.com\/en\/understand-http3-in-5-minutes\/\">bardzo dobre, 5-minutowe wprowadzenie<\/a>, a post <strong><a href=\"https:\/\/systemsapproach.substack.com\/p\/quic-is-not-a-tcp-replacement\">QUIC Is Not a TCP Replacement<\/a><\/strong> to \u015bwietny materia\u0142 wchodz\u0105cy w niuanse i filozofi\u0119 stoj\u0105c\u0105 za nowym protoko\u0142em.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"521\" height=\"779\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-28.png\" alt=\"\" class=\"wp-image-12241\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-28.png 521w, https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-28-201x300.png 201w\" sizes=\"auto, (max-width: 521px) 100vw, 521px\" \/><figcaption>Jak to m\u00f3wili w szkole &#8211; &#8222;dla ambitnych&#8221;.<\/figcaption><\/figure><\/div>\n\n\n<p>Kolejn\u0105 nowo\u015bci\u0105, do kt\u00f3rej zrozumienia przydadz\u0105 si\u0119 materia\u0142y zewn\u0119trzne jest wsparcie <strong>io_uring<\/strong>. <strong><a href=\"https:\/\/kernel.dk\/io_uring.pdf\">io_uring<\/a><\/strong> to nowe (i tak realnie nowe &#8211; trafi\u0142o do kernela w 2019 roku) asynchroniczne API I\/O dla Linuksa stworzone przez Jensa Axboe z Facebooka. Przyznam, \u017ce jestem zaintrygowany tym, jak tw\u00f3rcy Quarkusa chc\u0105 ca\u0142o\u015bci u\u017cy\u0107 i <a href=\"https:\/\/mail.openjdk.org\/pipermail\/loom-dev\/2022-July\/004844.html\">dogrzeba\u0142em si\u0119<\/a>, \u017ce prawdopodobnie zmodyfikowany zostanie g\u0142\u00f3wny Event Loop Quarkusa. Aczkolwiek je\u015bli kto\u015b z zespo\u0142u Quarkusowego to przypadkiem czyta: dajcie zna\u0107 w komentarzu &#8211; jestem zaintrygowany.<\/p>\n\n\n\n<p>Oczywi\u015bcie, nowa wersja Frameworki musi uwzgl\u0119dnia\u0107 ostatnie zmiany w JDK, w zwi\u0105zku z tym na li\u015bcie nowo\u015bci nie mog\u0142o zabrakn\u0105\u0107 r\u00f3wnie\u017c Projektu Loom &#8211; wirtualnych w\u0105tk\u00f3w i Strukturalnej Wsp\u00f3\u0142bie\u017cno\u015bci. Tego si\u0119 wszyscy spodziewali\u015bmy, ale to co przyku\u0142o moje oczy to ch\u0119\u0107 porzucenia Reactive Streams na rzecz jego implementacji pochodz\u0105cej z JDK 9 &#8211; <code>java.util.concurrent.Flow<\/code>. Jako, \u017ce Reactive Streams to standard, kt\u00f3ry Flow implementuje (<a href=\"https:\/\/quarkus.io\/guides\/mutiny-primer#reactive-streams\">Quarkus zreszt\u0105 u\u017cywa alternatywy o nazwie Mutiny<\/a>), zastanawiam si\u0119, czy jest to jaki\u015b skr\u00f3t my\u015blowy na porzucenie wspomnianego Mutiny czy jeszcze co\u015b innego chodzi po g\u0142owie tw\u00f3rcom.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"340\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/he-is-speaking-guy-explaining-with-a-whiteboard.gif\" alt=\"\" class=\"wp-image-12244\"\/><figcaption>Ponownie &#8211; serdeczna pro\u015bba tu o wyja\u015bnienia \ud83d\ude4f<\/figcaption><\/figure><\/div>\n\n\n<p>Ostatni\u0105 ciekawostk\u0105, na kt\u00f3r\u0105 natkn\u0105\u0142em si\u0119 w zapowiedzi jest obietnica &#8222;rmfactoru&#8221; dokumentacji na nowy format. Przy okazji dowiedzia\u0142em si\u0119 bowiem o istnieniu frameworka (koncepcyjnego, nie, \u017ce jakiej\u015b biblioteki) do tworzenia dokumentacji u\u017cytkownika o nazwie <a href=\"https:\/\/diataxis.fr\/\">Di\u00e1taxis<\/a>. Liczba projekt\u00f3w, <a href=\"https:\/\/diataxis.fr\/adoption\/#adoption\">kt\u00f3re go zaadoptowa\u0142y<\/a> jest ca\u0142kiem poka\u017ana, a \u017ce nied\u0142ugo do\u0142\u0105czy do niej r\u00f3wnie\u017c do niego Quarkus, jest to chyba najwy\u017cszy czas, \u017ceby si\u0119 zainteresowa\u0107 co ciekawego wprowadza on do ju\u017c istniej\u0105cego szeregu dobrych praktyk.<\/p>\n\n\n\n<p>To oczywi\u015bcie nie wszystko, poniewa\u017c tw\u00f3rcy, zgodnie z natur\u0105 frameworku RedHata, obiecuj\u0105 nam r\u00f3wnie\u017c lepsz\u0105 wydajno\u015b\u0107 i polepszony &#8222;developer experience&#8221; Co ciekawe, ca\u0142o\u015bci mo\u017cemy spodziewa\u0107 si\u0119 ju\u017c ca\u0142kiem nied\u0142ugo, bo wersja finalna planowana jest na luty. Mo\u017cecie by\u0107 pewni, \u017ce przy okazji pierwszych wersji Alf\u0105 do tematu wr\u00f3c\u0119<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/quarkus.io\/blog\/road-to-quarkus-3\/\">Starting Quarkus 3<\/a><\/li><li><a href=\"https:\/\/kernel.dk\/io_uring.pdf\">io_uring<\/a><\/li><li><a href=\"https:\/\/www.jesuisundev.com\/en\/understand-http3-in-5-minutes\/\">Understand HTTP3 in 5 minutes<\/a><\/li><li><a href=\"https:\/\/systemsapproach.substack.com\/p\/quic-is-not-a-tcp-replacement\">QUIC Is Not a TCP Replacement<\/a><\/li><li><a href=\"https:\/\/diataxis.fr\/\">Di\u00e1taxis<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Dzisiaj mamy wyj\u0105tkowo cztery tematy, ale dzia\u0142o si\u0119 po prostu du\u017co, a ja nie mog\u0142em si\u0119 zdecydowa\u0107. Porozmawiamy zatem o czyszczeniu JDK, nowej platformie spo\u0142eczno\u015bciowej dla programist\u00f3w Java, Quarkusie 3 i platformie Serverless dla Jakarty EE \ud83d\ude26<\/p>\n","protected":false},"author":10,"featured_media":12251,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[23],"tags":[],"class_list":["post-12221","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm"],"acf":{"estimated_reading_time":"9","feature_image_blog":{"ID":12250,"id":12250,"title":"ArturSkowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee","filename":"ArturSkowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee.png","filesize":1500750,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/ArturSkowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee.png","link":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/arturskowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee-2\/","alt":"","author":"10","description":"","caption":"","name":"arturskowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee-2","status":"inherit","uploaded_to":12221,"date":"2022-11-16 15:04:52","modified":"2022-11-16 15:07:26","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/vived.io\/wp-includes\/images\/media\/default.png","width":1024,"height":1024,"sizes":{"thumbnail":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/ArturSkowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee-150x150.png","thumbnail-width":150,"thumbnail-height":150,"medium":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/ArturSkowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee-300x300.png","medium-width":300,"medium-height":300,"medium_large":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/ArturSkowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee-768x768.png","medium_large-width":768,"medium_large-height":768,"large":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/ArturSkowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee-1024x1024.png","large-width":1024,"large-height":1024,"1536x1536":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/ArturSkowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee.png","1536x1536-width":1024,"1536x1536-height":1024,"2048x2048":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/ArturSkowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee.png","2048x2048-width":1024,"2048x2048-height":1024,"gform-image-choice-sm":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/ArturSkowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee.png","gform-image-choice-sm-width":300,"gform-image-choice-sm-height":300,"gform-image-choice-md":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/ArturSkowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee.png","gform-image-choice-md-width":400,"gform-image-choice-md-height":400,"gform-image-choice-lg":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/ArturSkowronski_mastodon_fighting_twitter_bird_fdb5476f-fc98-467a-9f08-7d575e71cbee.png","gform-image-choice-lg-width":600,"gform-image-choice-lg-height":600}},"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/JVM-Weekly-1200x628_V2-1-5.png","feature_image_visible":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Spo\u0142eczno\u015b\u0107 Javy szuka szcz\u0119\u015bcia poza Twitterem. Chcesz do\u0142\u0105czy\u0107? - JVM Weekly #113 - Vived<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spo\u0142eczno\u015b\u0107 Javy szuka szcz\u0119\u015bcia poza Twitterem. Chcesz do\u0142\u0105czy\u0107? - JVM Weekly #113 - Vived\" \/>\n<meta property=\"og:description\" content=\"Dzisiaj mamy wyj\u0105tkowo cztery tematy, ale dzia\u0142o si\u0119 po prostu du\u017co, a ja nie mog\u0142em si\u0119 zdecydowa\u0107. Porozmawiamy zatem o czyszczeniu JDK, nowej platformie spo\u0142eczno\u015bciowej dla programist\u00f3w Java, Quarkusie 3 i platformie Serverless dla Jakarty EE \ud83d\ude26\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-16T15:06:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-16T15:07:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/JVM-Weekly-1200x628_V2-1-5.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"Spo\u0142eczno\u015b\u0107 Javy szuka szcz\u0119\u015bcia poza Twitterem. Chcesz do\u0142\u0105czy\u0107? &#8211; JVM Weekly #113\",\"datePublished\":\"2022-11-16T15:06:53+00:00\",\"dateModified\":\"2022-11-16T15:07:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/\"},\"wordCount\":1955,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/JVM-Weekly-1200x628_V2-1-5.png\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/\",\"url\":\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/\",\"name\":\"Spo\u0142eczno\u015b\u0107 Javy szuka szcz\u0119\u015bcia poza Twitterem. Chcesz do\u0142\u0105czy\u0107? - JVM Weekly #113 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/JVM-Weekly-1200x628_V2-1-5.png\",\"datePublished\":\"2022-11-16T15:06:53+00:00\",\"dateModified\":\"2022-11-16T15:07:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/JVM-Weekly-1200x628_V2-1-5.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/JVM-Weekly-1200x628_V2-1-5.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spo\u0142eczno\u015b\u0107 Javy szuka szcz\u0119\u015bcia poza Twitterem. Chcesz do\u0142\u0105czy\u0107? &#8211; JVM Weekly #113\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\",\"name\":\"Artur Skowro\u0144ski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"caption\":\"Artur Skowro\u0144ski\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spo\u0142eczno\u015b\u0107 Javy szuka szcz\u0119\u015bcia poza Twitterem. Chcesz do\u0142\u0105czy\u0107? - JVM Weekly #113 - Vived","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/","og_locale":"pl_PL","og_type":"article","og_title":"Spo\u0142eczno\u015b\u0107 Javy szuka szcz\u0119\u015bcia poza Twitterem. Chcesz do\u0142\u0105czy\u0107? - JVM Weekly #113 - Vived","og_description":"Dzisiaj mamy wyj\u0105tkowo cztery tematy, ale dzia\u0142o si\u0119 po prostu du\u017co, a ja nie mog\u0142em si\u0119 zdecydowa\u0107. Porozmawiamy zatem o czyszczeniu JDK, nowej platformie spo\u0142eczno\u015bciowej dla programist\u00f3w Java, Quarkusie 3 i platformie Serverless dla Jakarty EE \ud83d\ude26","og_url":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/","og_site_name":"Vived","article_published_time":"2022-11-16T15:06:53+00:00","article_modified_time":"2022-11-16T15:07:56+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/JVM-Weekly-1200x628_V2-1-5.png","type":"image\/png"}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"Spo\u0142eczno\u015b\u0107 Javy szuka szcz\u0119\u015bcia poza Twitterem. Chcesz do\u0142\u0105czy\u0107? &#8211; JVM Weekly #113","datePublished":"2022-11-16T15:06:53+00:00","dateModified":"2022-11-16T15:07:56+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/"},"wordCount":1955,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/JVM-Weekly-1200x628_V2-1-5.png","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/","url":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/","name":"Spo\u0142eczno\u015b\u0107 Javy szuka szcz\u0119\u015bcia poza Twitterem. Chcesz do\u0142\u0105czy\u0107? - JVM Weekly #113 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/JVM-Weekly-1200x628_V2-1-5.png","datePublished":"2022-11-16T15:06:53+00:00","dateModified":"2022-11-16T15:07:56+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/JVM-Weekly-1200x628_V2-1-5.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/JVM-Weekly-1200x628_V2-1-5.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/spolecznosc-javy-szuka-szczescia-poza-twitterem-chcesz-dolaczyc-jvm-weekly-113\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Spo\u0142eczno\u015b\u0107 Javy szuka szcz\u0119\u015bcia poza Twitterem. Chcesz do\u0142\u0105czy\u0107? &#8211; JVM Weekly #113"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3","name":"Artur Skowro\u0144ski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","caption":"Artur Skowro\u0144ski"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>1. Usuwanie D\u0142ugu Technicznego z JDK trwa w najlepsze<\/h2>\n","innerContent":["\n<h2>1. Usuwanie D\u0142ugu Technicznego z JDK trwa w najlepsze<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zacznijmy od pakietu obowi\u0105zkowego, czyli zbioru nowo\u015bci w kontek\u015bcie zbli\u017caj\u0105cej si\u0119 premiery (czy raczej finalnej listy funkcjonalno\u015bci) do JDK 20. Tym razem nie ma tego a\u017c tak wiele, skupimy si\u0119 wi\u0119c raczej na tak zwanych \"Quality Outreach Heads-Ups\", kt\u00f3re na ludzie mo\u017cna przet\u0142umaczy\u0107 jako czyszczenie d\u0142ugu technicznego przez programist\u00f3w JDK. O zapowiedzianym jeszcze we wrze\u015bniu wyrzuceniu <a href=\"https:\/\/inside.java\/2022\/09\/26\/quality-heads-up\/\">mo\u017cliwo\u015bci kompilacji do bajt kodu zgodnego z JDK 1.7<\/a> ju\u017c kiedy\u015b wspomina\u0142em, teraz pora przygl\u0105dn\u0105\u0107 si\u0119 pozosta\u0142ym, czeka nas bowiem troch\u0119 niespodzianek.<\/p>\n","innerContent":["\n<p>Zacznijmy od pakietu obowi\u0105zkowego, czyli zbioru nowo\u015bci w kontek\u015bcie zbli\u017caj\u0105cej si\u0119 premiery (czy raczej finalnej listy funkcjonalno\u015bci) do JDK 20. Tym razem nie ma tego a\u017c tak wiele, skupimy si\u0119 wi\u0119c raczej na tak zwanych \"Quality Outreach Heads-Ups\", kt\u00f3re na ludzie mo\u017cna przet\u0142umaczy\u0107 jako czyszczenie d\u0142ugu technicznego przez programist\u00f3w JDK. O zapowiedzianym jeszcze we wrze\u015bniu wyrzuceniu <a href=\"https:\/\/inside.java\/2022\/09\/26\/quality-heads-up\/\">mo\u017cliwo\u015bci kompilacji do bajt kodu zgodnego z JDK 1.7<\/a> ju\u017c kiedy\u015b wspomina\u0142em, teraz pora przygl\u0105dn\u0105\u0107 si\u0119 pozosta\u0142ym, czeka nas bowiem troch\u0119 niespodzianek.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Pewnie kojarzycie, \u017ce w Javie klasa <code>Thread<\/code> posiada sporo metod pomocniczych - i mam nadzieje, \u017ce nie musieli\u015bcie ich u\u017cywa\u0107. Ci\u0105gle pami\u0119tam, jak uczy\u0142em si\u0119 Javy z klasycznego <a href=\"https:\/\/www.amazon.com\/Thinking-Java-4th-Bruce-Eckel\/dp\/0131872486\">Thinking in Java<\/a> autorstwa Bruce Eckela, kt\u00f3ry na d\u0142ugie lata wystraszy\u0142 mnie przed my\u015bleniem o jakiejkolwiek asynchroniczno\u015bci w Javie. <code>Thread.wait()<\/code>, <code>Thread.join()<\/code> i <code>Thread.notify()<\/code>, s\u0142u\u017c\u0105ce do niskopoziomowego zarz\u0105dzania wsp\u00f3\u0142bie\u017cno\u015bci\u0105 zawsze wydawa\u0142o mi si\u0119 bardzo ko\u015blawe i bardzo ciesz\u0119 si\u0119, \u017ce w JDK 1.5 dodane zosta\u0142o <code>java.util.concurrent<\/code>. Klarowno\u015bci API dostarczanego przez <code>Thread<\/code> nie pomaga\u0142o jednak to, \u017ce klasa udost\u0119pnia\u0142a tak\u017ce dodatkowe metody - <code>Thread.stop()<\/code>, <code>Thread.suspend()<\/code>, <code>Thread.resume()<\/code>, kt\u00f3re jak si\u0119 okazuje, by\u0142y zdeprecatowane ju\u017c od JDK 1.2. Teraz nareszcie przyszed\u0142 czas, aby si\u0119 ich pozby\u0107. <a href=\"https:\/\/inside.java\/2022\/11\/09\/quality-heads-up\/\">Zgodnie z zapowiedziami<\/a>, nast\u0105pi to w\u0142a\u015bnie w JDK 20. Wi\u0119cej szczeg\u00f3\u0142\u00f3w znajdziecie w dokumencie <strong><a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/19\/docs\/api\/java.base\/java\/lang\/doc-files\/threadPrimitiveDeprecation.html\">Java Thread Primitive Deprecation<\/a><\/strong><\/p>\n","innerContent":["\n<p>Pewnie kojarzycie, \u017ce w Javie klasa <code>Thread<\/code> posiada sporo metod pomocniczych - i mam nadzieje, \u017ce nie musieli\u015bcie ich u\u017cywa\u0107. Ci\u0105gle pami\u0119tam, jak uczy\u0142em si\u0119 Javy z klasycznego <a href=\"https:\/\/www.amazon.com\/Thinking-Java-4th-Bruce-Eckel\/dp\/0131872486\">Thinking in Java<\/a> autorstwa Bruce Eckela, kt\u00f3ry na d\u0142ugie lata wystraszy\u0142 mnie przed my\u015bleniem o jakiejkolwiek asynchroniczno\u015bci w Javie. <code>Thread.wait()<\/code>, <code>Thread.join()<\/code> i <code>Thread.notify()<\/code>, s\u0142u\u017c\u0105ce do niskopoziomowego zarz\u0105dzania wsp\u00f3\u0142bie\u017cno\u015bci\u0105 zawsze wydawa\u0142o mi si\u0119 bardzo ko\u015blawe i bardzo ciesz\u0119 si\u0119, \u017ce w JDK 1.5 dodane zosta\u0142o <code>java.util.concurrent<\/code>. Klarowno\u015bci API dostarczanego przez <code>Thread<\/code> nie pomaga\u0142o jednak to, \u017ce klasa udost\u0119pnia\u0142a tak\u017ce dodatkowe metody - <code>Thread.stop()<\/code>, <code>Thread.suspend()<\/code>, <code>Thread.resume()<\/code>, kt\u00f3re jak si\u0119 okazuje, by\u0142y zdeprecatowane ju\u017c od JDK 1.2. Teraz nareszcie przyszed\u0142 czas, aby si\u0119 ich pozby\u0107. <a href=\"https:\/\/inside.java\/2022\/11\/09\/quality-heads-up\/\">Zgodnie z zapowiedziami<\/a>, nast\u0105pi to w\u0142a\u015bnie w JDK 20. Wi\u0119cej szczeg\u00f3\u0142\u00f3w znajdziecie w dokumencie <strong><a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/19\/docs\/api\/java.base\/java\/lang\/doc-files\/threadPrimitiveDeprecation.html\">Java Thread Primitive Deprecation<\/a><\/strong><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":12225,"width":500,"height":465,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-23.png\" alt=\"\" class=\"wp-image-12225\" width=\"500\" height=\"465\"\/><figcaption>To tylko pokazuje, jak bardzo na sercu tw\u00f3rcy Javy maj\u0105 wsteczn\u0105 kompatybilno\u015b\u0107<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-23.png\" alt=\"\" class=\"wp-image-12225\" width=\"500\" height=\"465\"\/><figcaption>To tylko pokazuje, jak bardzo na sercu tw\u00f3rcy Javy maj\u0105 wsteczn\u0105 kompatybilno\u015b\u0107<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatni\u0105 z usuwanych funkcjonalno\u015bci jest wyczyszczenie niepotrzebnego ju\u017c <strong><a href=\"https:\/\/inside.java\/2022\/11\/14\/quality-heads-up\/\">Multithreaded Custom Class Loaders<\/a><\/strong>. By\u0142 to swoisty woraround - etap po\u015bredni, kt\u00f3ry niezb\u0119dny by\u0142 do zmigrowania niekt\u00f3rych aplikacji do nowej architektury Class Loader\u00f3w, wprowadzony jeszcze na poziomie JDK 1.7. Teraz, gdy pozbyto si\u0119 resztek wersji 1.7 z platformy, przyszed\u0142 czas r\u00f3wnie\u017c na deprekacje i wy\u0142\u0105czenie wspomnianych Class Loader\u00f3w.<\/p>\n","innerContent":["\n<p>Ostatni\u0105 z usuwanych funkcjonalno\u015bci jest wyczyszczenie niepotrzebnego ju\u017c <strong><a href=\"https:\/\/inside.java\/2022\/11\/14\/quality-heads-up\/\">Multithreaded Custom Class Loaders<\/a><\/strong>. By\u0142 to swoisty woraround - etap po\u015bredni, kt\u00f3ry niezb\u0119dny by\u0142 do zmigrowania niekt\u00f3rych aplikacji do nowej architektury Class Loader\u00f3w, wprowadzony jeszcze na poziomie JDK 1.7. Teraz, gdy pozbyto si\u0119 resztek wersji 1.7 z platformy, przyszed\u0142 czas r\u00f3wnie\u017c na deprekacje i wy\u0142\u0105czenie wspomnianych Class Loader\u00f3w.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":12230,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/waiting-1.gif\" alt=\"\" class=\"wp-image-12230\"\/><figcaption>Mo\u017ce do czasu JDK 30 pozb\u0119dziemy si\u0119 ich z projektu.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/waiting-1.gif\" alt=\"\" class=\"wp-image-12230\"\/><figcaption>Mo\u017ce do czasu JDK 30 pozb\u0119dziemy si\u0119 ich z projektu.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Co opr\u00f3cz tego? Nowe JEPy powi\u0105zane z Projektem Loom. Zanim jednak poniesie Was za bardzo wyobra\u017ania, drugie preview Wirtualnych W\u0105tk\u00f3w oraz druga inkubacja Structure Concurrency nie nios\u0105 za sob\u0105 jakich\u015b szczeg\u00f3lnie du\u017cych zmian. Po prostu kilka zmian API, kt\u00f3re zosta\u0142y jakby bokiem przepchni\u0119te w ramach poprzedniej iteracji proposali (jak np. <code>ExecutorService<\/code> rozszerzaj\u0105cy interfejs <code>AutoCloseable<\/code>) zosta\u0142y ustabilizowane i wmigrowane do stabilnego codebase JDK, przez co naturalnym by\u0142o ich znikni\u0119cie z JEP-a. Na JEPy przeniesiono r\u00f3wnie\u017c zmiany zwi\u0105zane z w\u0105tkami, o kt\u00f3rych pisa\u0142em w poprzednich akapitach. Poza tym prac\u0119 nad oboma proposalami nie posun\u0119\u0142y si\u0119 do przodu w obserwowalny z zewn\u0105trz spos\u00f3b.<\/p>\n","innerContent":["\n<p>Co opr\u00f3cz tego? Nowe JEPy powi\u0105zane z Projektem Loom. Zanim jednak poniesie Was za bardzo wyobra\u017ania, drugie preview Wirtualnych W\u0105tk\u00f3w oraz druga inkubacja Structure Concurrency nie nios\u0105 za sob\u0105 jakich\u015b szczeg\u00f3lnie du\u017cych zmian. Po prostu kilka zmian API, kt\u00f3re zosta\u0142y jakby bokiem przepchni\u0119te w ramach poprzedniej iteracji proposali (jak np. <code>ExecutorService<\/code> rozszerzaj\u0105cy interfejs <code>AutoCloseable<\/code>) zosta\u0142y ustabilizowane i wmigrowane do stabilnego codebase JDK, przez co naturalnym by\u0142o ich znikni\u0119cie z JEP-a. Na JEPy przeniesiono r\u00f3wnie\u017c zmiany zwi\u0105zane z w\u0105tkami, o kt\u00f3rych pisa\u0142em w poprzednich akapitach. Poza tym prac\u0119 nad oboma proposalami nie posun\u0119\u0142y si\u0119 do przodu w obserwowalny z zewn\u0105trz spos\u00f3b.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A je\u017celi jeste\u015bcie zawiedzeni zmianami w Loomie, to chcia\u0142em zakomunikowa\u0107, \u017ce ze snu zimowego (czy raczej jesienno-letniego) wybudzi\u0142 si\u0119 ostatnio Project Valhalla i mam nadzieje, \u017ce nied\u0142ugo doczekamy si\u0119 wi\u0119kszych og\u0142osze\u0144. Ale po takim rozgrzaniu Waszych apetyt\u00f3w zostawi\u0119 to sobie na inn\u0105 okazj\u0119.<\/p>\n","innerContent":["\n<p>A je\u017celi jeste\u015bcie zawiedzeni zmianami w Loomie, to chcia\u0142em zakomunikowa\u0107, \u017ce ze snu zimowego (czy raczej jesienno-letniego) wybudzi\u0142 si\u0119 ostatnio Project Valhalla i mam nadzieje, \u017ce nied\u0142ugo doczekamy si\u0119 wi\u0119kszych og\u0142osze\u0144. Ale po takim rozgrzaniu Waszych apetyt\u00f3w zostawi\u0119 to sobie na inn\u0105 okazj\u0119.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u017br\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u017br\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/openjdk.org\/jeps\/436\">JEP 436: Virtual Threads (Second Preview)<\/a><\/li><li><a href=\"https:\/\/openjdk.org\/jeps\/437\">JEP 437: Structured Concurrency (Second Incubator)<\/a><\/li><li><a href=\"https:\/\/inside.java\/2022\/11\/14\/quality-heads-up\/\">JDK 20: Disable the Legacy Parallel Class Loading Workaround<\/a><\/li><li><a href=\"https:\/\/inside.java\/2022\/09\/26\/quality-heads-up\/\">Quality Outreach Heads-up - JDK 20: Disable the Legacy Parallel Class Loading Workaround<\/a><\/li><li><a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/19\/docs\/api\/java.base\/java\/lang\/doc-files\/threadPrimitiveDeprecation.html\">Java Thread Primitive Deprecation<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/openjdk.org\/jeps\/436\">JEP 436: Virtual Threads (Second Preview)<\/a><\/li><li><a href=\"https:\/\/openjdk.org\/jeps\/437\">JEP 437: Structured Concurrency (Second Incubator)<\/a><\/li><li><a href=\"https:\/\/inside.java\/2022\/11\/14\/quality-heads-up\/\">JDK 20: Disable the Legacy Parallel Class Loading Workaround<\/a><\/li><li><a href=\"https:\/\/inside.java\/2022\/09\/26\/quality-heads-up\/\">Quality Outreach Heads-up - JDK 20: Disable the Legacy Parallel Class Loading Workaround<\/a><\/li><li><a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/19\/docs\/api\/java.base\/java\/lang\/doc-files\/threadPrimitiveDeprecation.html\">Java Thread Primitive Deprecation<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. <a class=\"autolink\" href=\"https:\/\/foojay.io\">foojay.io<\/a> tworzy serwer Mastodon dla Java Developer\u00f3w<\/h2>\n","innerContent":["\n<h2>2. <a class=\"autolink\" href=\"https:\/\/foojay.io\">foojay.io<\/a> tworzy serwer Mastodon dla Java Developer\u00f3w<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":12222,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-22.png\" alt=\"\" class=\"wp-image-12222\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-22.png\" alt=\"\" class=\"wp-image-12222\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nie chcia\u0142bym si\u0119 za du\u017co rozpisywa\u0107 o tym, co dzieje si\u0119 w Twitterze - po pierwsze, od tego mam sobotnie przegl\u0105dy <a href=\"https:\/\/vived.io\/category\/craftmanship\/\">Software Craftsmanship Weekly<\/a> (do kt\u00f3rych lektury zach\u0119cam), z drugiej chyba wszyscy mamy tej dramy troch\u0119 do\u015b\u0107. Wspominam o niej jednak dlatego, \u017ce sprawa przeszczepi\u0142a si\u0119 na \u015bwiat javowy w do\u015b\u0107 ciekawy spos\u00f3b.<\/p>\n","innerContent":["\n<p>Nie chcia\u0142bym si\u0119 za du\u017co rozpisywa\u0107 o tym, co dzieje si\u0119 w Twitterze - po pierwsze, od tego mam sobotnie przegl\u0105dy <a href=\"https:\/\/vived.io\/category\/craftmanship\/\">Software Craftsmanship Weekly<\/a> (do kt\u00f3rych lektury zach\u0119cam), z drugiej chyba wszyscy mamy tej dramy troch\u0119 do\u015b\u0107. Wspominam o niej jednak dlatego, \u017ce sprawa przeszczepi\u0142a si\u0119 na \u015bwiat javowy w do\u015b\u0107 ciekawy spos\u00f3b.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ot\u00f3\u017c - przynajmniej na poziomie komunikacji - jeste\u015bmy \u015bwiadkami wielkiego odwrotu od Twittera. W zasadzie ca\u0142y \u015bwiat technologiczny zacz\u0105\u0142 rozgl\u0105da\u0107 si\u0119 za alternatyw\u0105 dla platformy Elona Muska. Jednym z g\u0142\u00f3wnych kontender\u00f3w do tronu wydaje si\u0119 by\u0107 Mastodon. Je\u017celi uznamy - jak kaza\u0142by nam przekaz medialny - Twittera jako prywatny folwark jednej osoby, Mastodon jest platform\u0105 federacyjn\u0105. Oznacza to, \u017ce nie ma w niej \u017cadnego g\u0142\u00f3wnego feedu (cho\u0107 na taki pozycjonuje si\u0119 <a href=\"https:\/\/mastodon.social\/\">mastodon.social<\/a>), a do\u015bwiadczenie u\u017cytkownika budowane jest przez wiele r\u00f3\u017cnych spo\u0142eczno\u015bci, do kt\u00f3rych mo\u017ce do\u0142\u0105czy\u0107. W tym tygodniu <a href=\"http:\/\/foojay.io\">foojay.io<\/a>, jeden z najwi\u0119kszych (i najlepszych) portali poruszaj\u0105cych tematy zwi\u0105zane z JDK. W b\u0142yskawicznym tempie (od <a href=\"https:\/\/foojay.io\/today\/lets-start-a-java-mastodon-community-for-friends-of-openjdk\">propozycji<\/a> do uruchomienia min\u0119\u0142o nieca\u0142e 48h) stworzyli oni <a href=\"https:\/\/foojay.io\/today\/foojay-mastodon-service-here-it-is\/\">w\u0142asne Community<\/a> <a href=\"https:\/\/foojay.social\/\">foojay.social<\/a>, na kt\u00f3re zapraszaj\u0105 u\u017cytkownik\u00f3w. Ja r\u00f3wnie\u017c zapraszam, sam zamierzam si\u0119 tam ton\u0119 poudziela\u0107.<\/p>\n","innerContent":["\n<p>Ot\u00f3\u017c - przynajmniej na poziomie komunikacji - jeste\u015bmy \u015bwiadkami wielkiego odwrotu od Twittera. W zasadzie ca\u0142y \u015bwiat technologiczny zacz\u0105\u0142 rozgl\u0105da\u0107 si\u0119 za alternatyw\u0105 dla platformy Elona Muska. Jednym z g\u0142\u00f3wnych kontender\u00f3w do tronu wydaje si\u0119 by\u0107 Mastodon. Je\u017celi uznamy - jak kaza\u0142by nam przekaz medialny - Twittera jako prywatny folwark jednej osoby, Mastodon jest platform\u0105 federacyjn\u0105. Oznacza to, \u017ce nie ma w niej \u017cadnego g\u0142\u00f3wnego feedu (cho\u0107 na taki pozycjonuje si\u0119 <a href=\"https:\/\/mastodon.social\/\">mastodon.social<\/a>), a do\u015bwiadczenie u\u017cytkownika budowane jest przez wiele r\u00f3\u017cnych spo\u0142eczno\u015bci, do kt\u00f3rych mo\u017ce do\u0142\u0105czy\u0107. W tym tygodniu <a href=\"http:\/\/foojay.io\">foojay.io<\/a>, jeden z najwi\u0119kszych (i najlepszych) portali poruszaj\u0105cych tematy zwi\u0105zane z JDK. W b\u0142yskawicznym tempie (od <a href=\"https:\/\/foojay.io\/today\/lets-start-a-java-mastodon-community-for-friends-of-openjdk\">propozycji<\/a> do uruchomienia min\u0119\u0142o nieca\u0142e 48h) stworzyli oni <a href=\"https:\/\/foojay.io\/today\/foojay-mastodon-service-here-it-is\/\">w\u0142asne Community<\/a> <a href=\"https:\/\/foojay.social\/\">foojay.social<\/a>, na kt\u00f3re zapraszaj\u0105 u\u017cytkownik\u00f3w. Ja r\u00f3wnie\u017c zapraszam, sam zamierzam si\u0119 tam ton\u0119 poudziela\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":12233,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-24.png\" alt=\"\" class=\"wp-image-12233\"\/><figcaption>B\u0119d\u0105c adwokatem diab\u0142a - Ben Thompson (autor Stratechery) twierdzi, \u017ce bardzo trudno jest zreplikowa\u0107 g\u0142\u00f3wn\u0105 warto\u015b\u0107 Twittera, kt\u00f3ry jest wielki \"equalizatorem\" umo\u017cliwiaj\u0105cym dyskurs z najwi\u0119kszymi tego \u015bwiata. A to do\u015b\u0107 kiepsko spina si\u0119 z modelem federacyjnym.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-24.png\" alt=\"\" class=\"wp-image-12233\"\/><figcaption>B\u0119d\u0105c adwokatem diab\u0142a - Ben Thompson (autor Stratechery) twierdzi, \u017ce bardzo trudno jest zreplikowa\u0107 g\u0142\u00f3wn\u0105 warto\u015b\u0107 Twittera, kt\u00f3ry jest wielki \"equalizatorem\" umo\u017cliwiaj\u0105cym dyskurs z najwi\u0119kszymi tego \u015bwiata. A to do\u015b\u0107 kiepsko spina si\u0119 z modelem federacyjnym.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Je\u015bli chcecie dowiedzie\u0107 si\u0119 wi\u0119cej, czym jest Mastodon - ostatnio tekst w tym temacie <a href=\"https:\/\/martinfowler.com\/articles\/exploring-mastodon.html\">napisa\u0142 sam Martin Fowler<\/a>. Warto te\u017c w tym temacie wspomnie\u0107, \u017ce r\u00f3wnie\u017c Twitter od pewnego czasu pozwala na tworzenie grup dyskusyjnych skupionych w ko\u0142o pojedynczego tematu. Przyk\u0142adowo, tutaj mo\u017cecie <a href=\"https:\/\/twitter.com\/i\/communities\/1471178821906821122\">znale\u017a\u0107 javow\u0105<\/a>, kt\u00f3ra nale\u017cy do jako tako aktywnych - cho\u0107 mam wra\u017cenie, \u017ce raczej u\u017cywana jest g\u0142\u00f3wnie do promocji w\u0142asnych materia\u0142\u00f3w dotycz\u0105cych j\u0119zyka przez autor\u00f3w (guilty as charged). Ca\u0142o\u015b\u0107 mo\u017ce jednak da\u0107 Wam przedsmak tego, jak wygl\u0105da\u0107 mo\u017ce taki stricte tematyczny feed.<\/p>\n","innerContent":["\n<p>Je\u015bli chcecie dowiedzie\u0107 si\u0119 wi\u0119cej, czym jest Mastodon - ostatnio tekst w tym temacie <a href=\"https:\/\/martinfowler.com\/articles\/exploring-mastodon.html\">napisa\u0142 sam Martin Fowler<\/a>. Warto te\u017c w tym temacie wspomnie\u0107, \u017ce r\u00f3wnie\u017c Twitter od pewnego czasu pozwala na tworzenie grup dyskusyjnych skupionych w ko\u0142o pojedynczego tematu. Przyk\u0142adowo, tutaj mo\u017cecie <a href=\"https:\/\/twitter.com\/i\/communities\/1471178821906821122\">znale\u017a\u0107 javow\u0105<\/a>, kt\u00f3ra nale\u017cy do jako tako aktywnych - cho\u0107 mam wra\u017cenie, \u017ce raczej u\u017cywana jest g\u0142\u00f3wnie do promocji w\u0142asnych materia\u0142\u00f3w dotycz\u0105cych j\u0119zyka przez autor\u00f3w (guilty as charged). Ca\u0142o\u015b\u0107 mo\u017ce jednak da\u0107 Wam przedsmak tego, jak wygl\u0105da\u0107 mo\u017ce taki stricte tematyczny feed.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatni\u0105 rzecz\u0105, o kt\u00f3rej chcia\u0142em wspomnie\u0107 jest <a href=\"https:\/\/javabubble.org\/\">Java Bubble<\/a> - jest to utrzymywana przez spo\u0142eczno\u015b\u0107 (a dok\u0142adnie przez <a href=\"https:\/\/twitter.com\/marcandsweep\">Marc R. Hoffmanna<\/a>) lista os\u00f3b, kt\u00f3re dziel\u0105 si\u0119 swoj\u0105 wiedz\u0105 dotycz\u0105c\u0105 Javy. Je\u015bli zastanawiali\u015bcie si\u0119, kogo warto \u015bledzi\u0107 w ekosystemie - my\u015bl\u0119, \u017ce jest to dobry punkt startowy.<\/p>\n","innerContent":["\n<p>Ostatni\u0105 rzecz\u0105, o kt\u00f3rej chcia\u0142em wspomnie\u0107 jest <a href=\"https:\/\/javabubble.org\/\">Java Bubble<\/a> - jest to utrzymywana przez spo\u0142eczno\u015b\u0107 (a dok\u0142adnie przez <a href=\"https:\/\/twitter.com\/marcandsweep\">Marc R. Hoffmanna<\/a>) lista os\u00f3b, kt\u00f3re dziel\u0105 si\u0119 swoj\u0105 wiedz\u0105 dotycz\u0105c\u0105 Javy. Je\u015bli zastanawiali\u015bcie si\u0119, kogo warto \u015bledzi\u0107 w ekosystemie - my\u015bl\u0119, \u017ce jest to dobry punkt startowy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/foojay.social\/\">foojay.social<\/a><\/li><li><a href=\"https:\/\/foojay.io\/today\/lets-start-a-java-mastodon-community-for-friends-of-openjdk\">Let\u2019s Start a Java Mastodon Community for Friends of OpenJDK!<\/a><\/li><li><a href=\"https:\/\/javabubble.org\/\">Java Bubble<\/a><\/li><li><a href=\"https:\/\/martinfowler.com\/articles\/exploring-mastodon.html\">Exploring Mastodon<\/a><\/li><li><a href=\"https:\/\/foojay.io\/today\/foojay-mastodon-service-here-it-is\/\">Foojay Mastodon Service: Here It Is!<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/foojay.social\/\">foojay.social<\/a><\/li><li><a href=\"https:\/\/foojay.io\/today\/lets-start-a-java-mastodon-community-for-friends-of-openjdk\">Let\u2019s Start a Java Mastodon Community for Friends of OpenJDK!<\/a><\/li><li><a href=\"https:\/\/javabubble.org\/\">Java Bubble<\/a><\/li><li><a href=\"https:\/\/martinfowler.com\/articles\/exploring-mastodon.html\">Exploring Mastodon<\/a><\/li><li><a href=\"https:\/\/foojay.io\/today\/foojay-mastodon-service-here-it-is\/\">Foojay Mastodon Service: Here It Is!<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3. Us\u0142uga Serverless dla Jakarte EE - Serio <\/h2>\n","innerContent":["\n<h2>3. Us\u0142uga Serverless dla Jakarte EE - Serio <\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/quote","attrs":[],"innerBlocks":[],"innerHTML":"\n<blockquote class=\"wp-block-quote\"><p><strong>Nikt:<\/strong><br><strong>Dalej Nikt: <\/strong><br><strong>Payara:<\/strong> Zr\u00f3bmy Cloud Serverless dla Jakarta EE!<\/p><\/blockquote>\n","innerContent":["\n<blockquote class=\"wp-block-quote\"><p><strong>Nikt:<\/strong><br><strong>Dalej Nikt: <\/strong><br><strong>Payara:<\/strong> Zr\u00f3bmy Cloud Serverless dla Jakarta EE!<\/p><\/blockquote>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Przyznam, \u017ce dawno \u017caden nag\u0142\u00f3wek mnie tak nie zaskoczy\u0142 jak informacja o tym, \u017ce Payara postanowi\u0142a stworzy\u0107 <a href=\"https:\/\/www.payara.fish\/products\/payara-cloud\/\">Payara Cloud<\/a> - <a href=\"https:\/\/foojay.io\/today\/payara-launches-payara-cloud-serverless-approach-for-jakarta-ee\/\">Platform-as-a-Service dla aplikacji napisanych w Jakrata EE<\/a>. Dzia\u0142a to tak, \u017ce bierzesz swojego *.war zgodnego ze specyfikacj\u0105 Jakarta Web Profile, uploadujesz go na chmur\u0119 i... gotowe. W pierwszej chwili jedyne, co mi si\u0119 pojawi\u0142o w g\u0142owie to \"czego to ludzie nie wymy\u015bl\u0105\" i prawie zacz\u0105\u0142em scrollowa\u0107 dalej... ale jednak nagle \"klik\u0142o\" i z perspektywy stwierdzam, \u017ce ma to w\u0142a\u015bciwie sporo sensu i dobrze wpisuje si\u0119 w historie platformy jak\u0105 jest Jakarta EE.<\/p>\n","innerContent":["\n<p>Przyznam, \u017ce dawno \u017caden nag\u0142\u00f3wek mnie tak nie zaskoczy\u0142 jak informacja o tym, \u017ce Payara postanowi\u0142a stworzy\u0107 <a href=\"https:\/\/www.payara.fish\/products\/payara-cloud\/\">Payara Cloud<\/a> - <a href=\"https:\/\/foojay.io\/today\/payara-launches-payara-cloud-serverless-approach-for-jakarta-ee\/\">Platform-as-a-Service dla aplikacji napisanych w Jakrata EE<\/a>. Dzia\u0142a to tak, \u017ce bierzesz swojego *.war zgodnego ze specyfikacj\u0105 Jakarta Web Profile, uploadujesz go na chmur\u0119 i... gotowe. W pierwszej chwili jedyne, co mi si\u0119 pojawi\u0142o w g\u0142owie to \"czego to ludzie nie wymy\u015bl\u0105\" i prawie zacz\u0105\u0142em scrollowa\u0107 dalej... ale jednak nagle \"klik\u0142o\" i z perspektywy stwierdzam, \u017ce ma to w\u0142a\u015bciwie sporo sensu i dobrze wpisuje si\u0119 w historie platformy jak\u0105 jest Jakarta EE.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Bo powiedzmy sobie szczerze - standard Java EE powsta\u0142 w ko\u0144cu po to, aby by\u0107 w stanie odseparowa\u0107 j\u0119zyka od konkretnej implementacji dostarczonej przez poszczeg\u00f3lnych vendor\u00f3w. Tego typu podej\u015bcie idealnie wi\u0119c wpisuje si\u0119 w sytuacj\u0119, w kt\u00f3rej dostawcy infrastruktury s\u0105 w stanie zapewni\u0107 dedykowane pod Jakartowe API. Ja wiem, dzisiaj i tak to pakujemy wszystko w Dockery, ale tak naprawd\u0119 stanowi\u0105 one dodatkow\u0105 warstw\u0119 nad tak\u0105 czyst\u0105, skalowaln\u0105 platform\u0105 Serverless, jak\u0105 obiecuje nam Payara. Je\u015bli dodatkowo spojrzymy na Serwery Aplikacyjne jako \u015brodowisko uruchomieniowy dla aplikacji (czym w zasadzie s\u0105), to podej\u015bcie \"wrzucam jar\/war i zapominam o mojej aplikacji cloud-native\" wydaje si\u0119 by\u0107 a\u017c nazbyt kusz\u0105ce. Po prostu ponownie historia zatoczy\u0142a ko\u0142o.<\/p>\n","innerContent":["\n<p>Bo powiedzmy sobie szczerze - standard Java EE powsta\u0142 w ko\u0144cu po to, aby by\u0107 w stanie odseparowa\u0107 j\u0119zyka od konkretnej implementacji dostarczonej przez poszczeg\u00f3lnych vendor\u00f3w. Tego typu podej\u015bcie idealnie wi\u0119c wpisuje si\u0119 w sytuacj\u0119, w kt\u00f3rej dostawcy infrastruktury s\u0105 w stanie zapewni\u0107 dedykowane pod Jakartowe API. Ja wiem, dzisiaj i tak to pakujemy wszystko w Dockery, ale tak naprawd\u0119 stanowi\u0105 one dodatkow\u0105 warstw\u0119 nad tak\u0105 czyst\u0105, skalowaln\u0105 platform\u0105 Serverless, jak\u0105 obiecuje nam Payara. Je\u015bli dodatkowo spojrzymy na Serwery Aplikacyjne jako \u015brodowisko uruchomieniowy dla aplikacji (czym w zasadzie s\u0105), to podej\u015bcie \"wrzucam jar\/war i zapominam o mojej aplikacji cloud-native\" wydaje si\u0119 by\u0107 a\u017c nazbyt kusz\u0105ce. Po prostu ponownie historia zatoczy\u0142a ko\u0142o.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":12237,"width":768,"height":432,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-26-1024x576.png\" alt=\"\" class=\"wp-image-12237\" width=\"768\" height=\"432\"\/><figcaption>Nic nowego na tym \u015bwiecie.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-26-1024x576.png\" alt=\"\" class=\"wp-image-12237\" width=\"768\" height=\"432\"\/><figcaption>Nic nowego na tym \u015bwiecie.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zreszt\u0105, to nie jest pierwszy projekt \"ucloudnatywiaj\u0105cy\" aplikacje Jakarta EE. Jest jeszcze Pirania Cloud, kt\u00f3rego celem jest konteneryzacja aplikacji napisanych zgodnie z zasadami Jakarcie EE. Tego typu paczuszk\u0119 mo\u017cemy po prostu wrzuci\u0107 na dowoln\u0105 chmur\u0119. Stwierdzi\u0142em, \u017ce warto o tym wspomnie\u0107 przy okazji jej najnowszego <a href=\"https:\/\/github.com\/piranhacloud\/piranha\/releases\/tag\/v22.11.0\">wydania 22.11<\/a>, kt\u00f3re ukaza\u0142o si\u0119 w zesz\u0142ym tygodniu.<\/p>\n","innerContent":["\n<p>Zreszt\u0105, to nie jest pierwszy projekt \"ucloudnatywiaj\u0105cy\" aplikacje Jakarta EE. Jest jeszcze Pirania Cloud, kt\u00f3rego celem jest konteneryzacja aplikacji napisanych zgodnie z zasadami Jakarcie EE. Tego typu paczuszk\u0119 mo\u017cemy po prostu wrzuci\u0107 na dowoln\u0105 chmur\u0119. Stwierdzi\u0142em, \u017ce warto o tym wspomnie\u0107 przy okazji jej najnowszego <a href=\"https:\/\/github.com\/piranhacloud\/piranha\/releases\/tag\/v22.11.0\">wydania 22.11<\/a>, kt\u00f3re ukaza\u0142o si\u0119 w zesz\u0142ym tygodniu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/www.payara.fish\/products\/payara-cloud\/\">Payara Cloud<\/a><\/li><li><a href=\"https:\/\/github.com\/piranhacloud\/piranha\/releases\/tag\/v22.11.0\">Piranha 22.11.0<\/a><\/li><li><a href=\"https:\/\/foojay.io\/today\/payara-launches-payara-cloud-serverless-approach-for-jakarta-ee\/\">Payara Launches Payara Cloud \u2013 Serverless Approach for Jakarta EE<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/www.payara.fish\/products\/payara-cloud\/\">Payara Cloud<\/a><\/li><li><a href=\"https:\/\/github.com\/piranhacloud\/piranha\/releases\/tag\/v22.11.0\">Piranha 22.11.0<\/a><\/li><li><a href=\"https:\/\/foojay.io\/today\/payara-launches-payara-cloud-serverless-approach-for-jakarta-ee\/\">Payara Launches Payara Cloud \u2013 Serverless Approach for Jakarta EE<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>4. Quarkus zapowiada swoj\u0105 \"trzeci\u0105\" edycj\u0119 z mas\u0105 interesuj\u0105cych zmian<\/h2>\n","innerContent":["\n<h2>4. Quarkus zapowiada swoj\u0105 \"trzeci\u0105\" edycj\u0119 z mas\u0105 interesuj\u0105cych zmian<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>No i na sam koniec mamy chyba najwi\u0119ksze og\u0142oszenie zesz\u0142ego tygodnia, czyli przymiarki do <a href=\"https:\/\/quarkus.io\/blog\/road-to-quarkus-3\/\">trzeciej wersji Quarkusa<\/a>. Podbicie \"du\u017cej wersji\" zawsze pozwala tw\u00f3rcom na zrobienie du\u017cego skoku do przodu, a patrz\u0105c po ilo\u015bci zmian, kt\u00f3re s\u0105 planowane w nowym Quarkusie, to jego tw\u00f3rcy skwapliwie z tej opcji skorzystali.<\/p>\n","innerContent":["\n<p>No i na sam koniec mamy chyba najwi\u0119ksze og\u0142oszenie zesz\u0142ego tygodnia, czyli przymiarki do <a href=\"https:\/\/quarkus.io\/blog\/road-to-quarkus-3\/\">trzeciej wersji Quarkusa<\/a>. Podbicie \"du\u017cej wersji\" zawsze pozwala tw\u00f3rcom na zrobienie du\u017cego skoku do przodu, a patrz\u0105c po ilo\u015bci zmian, kt\u00f3re s\u0105 planowane w nowym Quarkusie, to jego tw\u00f3rcy skwapliwie z tej opcji skorzystali.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Co ciekawe, zmiany wychodz\u0105 poza standardowe podbicie wersji API, bibliotek i platform, cho\u0107 tych te\u017c nie brakuje. Nowy Quarkus przyniesie bowiem Hibernate 6, Jakarte EE 10 (co - pami\u0119tajcie - rozwala kompatybilno\u015b\u0107) oraz MicroProfile 6 (na kt\u00f3rego premier\u0119 zreszt\u0105 ci\u0105gle czekamy, ale o jego temat akurat zahaczali\u015bmy w zesz\u0142ym tygodniu). Pod mask\u0105 jednak znajdziemy sporo znacznie ciekawszych rzeczy.<\/p>\n","innerContent":["\n<p>Co ciekawe, zmiany wychodz\u0105 poza standardowe podbicie wersji API, bibliotek i platform, cho\u0107 tych te\u017c nie brakuje. Nowy Quarkus przyniesie bowiem Hibernate 6, Jakarte EE 10 (co - pami\u0119tajcie - rozwala kompatybilno\u015b\u0107) oraz MicroProfile 6 (na kt\u00f3rego premier\u0119 zreszt\u0105 ci\u0105gle czekamy, ale o jego temat akurat zahaczali\u015bmy w zesz\u0142ym tygodniu). Pod mask\u0105 jednak znajdziemy sporo znacznie ciekawszych rzeczy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nowy Quarkus przynosi min. wsparcie dla HTTP\/3, kt\u00f3re mo\u017cecie zna\u0107 r\u00f3wnie\u017c pod nazw\u0105 Quic. Protok\u00f3\u0142 ten mo\u017cna w uproszeniu okre\u015bli\u0107 jako implementacje standardowego modelu request-response znanego z HTTP, ale opart\u0105 zamiast na TCP to UDP. Dzi\u0119ki temu zapewnia\u0107 ma znacznie lepsz\u0105 wydajno\u015b\u0107 w wypadku aplikacji webowych, kt\u00f3re pobieraj\u0105 znaczne ilo\u015bci zasob\u00f3w zewn\u0119trznych. W tym miejscu zako\u0144cz\u0119, ale je\u015bli jeste\u015bcie ciekawi wi\u0119kszej ilo\u015bci detali - tutaj znajdziecie <a href=\"https:\/\/www.jesuisundev.com\/en\/understand-http3-in-5-minutes\/\">bardzo dobre, 5-minutowe wprowadzenie<\/a>, a post <strong><a href=\"https:\/\/systemsapproach.substack.com\/p\/quic-is-not-a-tcp-replacement\">QUIC Is Not a TCP Replacement<\/a><\/strong> to \u015bwietny materia\u0142 wchodz\u0105cy w niuanse i filozofi\u0119 stoj\u0105c\u0105 za nowym protoko\u0142em.<\/p>\n","innerContent":["\n<p>Nowy Quarkus przynosi min. wsparcie dla HTTP\/3, kt\u00f3re mo\u017cecie zna\u0107 r\u00f3wnie\u017c pod nazw\u0105 Quic. Protok\u00f3\u0142 ten mo\u017cna w uproszeniu okre\u015bli\u0107 jako implementacje standardowego modelu request-response znanego z HTTP, ale opart\u0105 zamiast na TCP to UDP. Dzi\u0119ki temu zapewnia\u0107 ma znacznie lepsz\u0105 wydajno\u015b\u0107 w wypadku aplikacji webowych, kt\u00f3re pobieraj\u0105 znaczne ilo\u015bci zasob\u00f3w zewn\u0119trznych. W tym miejscu zako\u0144cz\u0119, ale je\u015bli jeste\u015bcie ciekawi wi\u0119kszej ilo\u015bci detali - tutaj znajdziecie <a href=\"https:\/\/www.jesuisundev.com\/en\/understand-http3-in-5-minutes\/\">bardzo dobre, 5-minutowe wprowadzenie<\/a>, a post <strong><a href=\"https:\/\/systemsapproach.substack.com\/p\/quic-is-not-a-tcp-replacement\">QUIC Is Not a TCP Replacement<\/a><\/strong> to \u015bwietny materia\u0142 wchodz\u0105cy w niuanse i filozofi\u0119 stoj\u0105c\u0105 za nowym protoko\u0142em.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":12241,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-28.png\" alt=\"\" class=\"wp-image-12241\"\/><figcaption>Jak to m\u00f3wili w szkole - \"dla ambitnych\".<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/image-28.png\" alt=\"\" class=\"wp-image-12241\"\/><figcaption>Jak to m\u00f3wili w szkole - \"dla ambitnych\".<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Kolejn\u0105 nowo\u015bci\u0105, do kt\u00f3rej zrozumienia przydadz\u0105 si\u0119 materia\u0142y zewn\u0119trzne jest wsparcie <strong>io_uring<\/strong>. <strong><a href=\"https:\/\/kernel.dk\/io_uring.pdf\">io_uring<\/a><\/strong> to nowe (i tak realnie nowe - trafi\u0142o do kernela w 2019 roku) asynchroniczne API I\/O dla Linuksa stworzone przez Jensa Axboe z Facebooka. Przyznam, \u017ce jestem zaintrygowany tym, jak tw\u00f3rcy Quarkusa chc\u0105 ca\u0142o\u015bci u\u017cy\u0107 i <a href=\"https:\/\/mail.openjdk.org\/pipermail\/loom-dev\/2022-July\/004844.html\">dogrzeba\u0142em si\u0119<\/a>, \u017ce prawdopodobnie zmodyfikowany zostanie g\u0142\u00f3wny Event Loop Quarkusa. Aczkolwiek je\u015bli kto\u015b z zespo\u0142u Quarkusowego to przypadkiem czyta: dajcie zna\u0107 w komentarzu - jestem zaintrygowany.<\/p>\n","innerContent":["\n<p>Kolejn\u0105 nowo\u015bci\u0105, do kt\u00f3rej zrozumienia przydadz\u0105 si\u0119 materia\u0142y zewn\u0119trzne jest wsparcie <strong>io_uring<\/strong>. <strong><a href=\"https:\/\/kernel.dk\/io_uring.pdf\">io_uring<\/a><\/strong> to nowe (i tak realnie nowe - trafi\u0142o do kernela w 2019 roku) asynchroniczne API I\/O dla Linuksa stworzone przez Jensa Axboe z Facebooka. Przyznam, \u017ce jestem zaintrygowany tym, jak tw\u00f3rcy Quarkusa chc\u0105 ca\u0142o\u015bci u\u017cy\u0107 i <a href=\"https:\/\/mail.openjdk.org\/pipermail\/loom-dev\/2022-July\/004844.html\">dogrzeba\u0142em si\u0119<\/a>, \u017ce prawdopodobnie zmodyfikowany zostanie g\u0142\u00f3wny Event Loop Quarkusa. Aczkolwiek je\u015bli kto\u015b z zespo\u0142u Quarkusowego to przypadkiem czyta: dajcie zna\u0107 w komentarzu - jestem zaintrygowany.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Oczywi\u015bcie, nowa wersja Frameworki musi uwzgl\u0119dnia\u0107 ostatnie zmiany w JDK, w zwi\u0105zku z tym na li\u015bcie nowo\u015bci nie mog\u0142o zabrakn\u0105\u0107 r\u00f3wnie\u017c Projektu Loom - wirtualnych w\u0105tk\u00f3w i Strukturalnej Wsp\u00f3\u0142bie\u017cno\u015bci. Tego si\u0119 wszyscy spodziewali\u015bmy, ale to co przyku\u0142o moje oczy to ch\u0119\u0107 porzucenia Reactive Streams na rzecz jego implementacji pochodz\u0105cej z JDK 9 - <code>java.util.concurrent.Flow<\/code>. Jako, \u017ce Reactive Streams to standard, kt\u00f3ry Flow implementuje (<a href=\"https:\/\/quarkus.io\/guides\/mutiny-primer#reactive-streams\">Quarkus zreszt\u0105 u\u017cywa alternatywy o nazwie Mutiny<\/a>), zastanawiam si\u0119, czy jest to jaki\u015b skr\u00f3t my\u015blowy na porzucenie wspomnianego Mutiny czy jeszcze co\u015b innego chodzi po g\u0142owie tw\u00f3rcom.<\/p>\n","innerContent":["\n<p>Oczywi\u015bcie, nowa wersja Frameworki musi uwzgl\u0119dnia\u0107 ostatnie zmiany w JDK, w zwi\u0105zku z tym na li\u015bcie nowo\u015bci nie mog\u0142o zabrakn\u0105\u0107 r\u00f3wnie\u017c Projektu Loom - wirtualnych w\u0105tk\u00f3w i Strukturalnej Wsp\u00f3\u0142bie\u017cno\u015bci. Tego si\u0119 wszyscy spodziewali\u015bmy, ale to co przyku\u0142o moje oczy to ch\u0119\u0107 porzucenia Reactive Streams na rzecz jego implementacji pochodz\u0105cej z JDK 9 - <code>java.util.concurrent.Flow<\/code>. Jako, \u017ce Reactive Streams to standard, kt\u00f3ry Flow implementuje (<a href=\"https:\/\/quarkus.io\/guides\/mutiny-primer#reactive-streams\">Quarkus zreszt\u0105 u\u017cywa alternatywy o nazwie Mutiny<\/a>), zastanawiam si\u0119, czy jest to jaki\u015b skr\u00f3t my\u015blowy na porzucenie wspomnianego Mutiny czy jeszcze co\u015b innego chodzi po g\u0142owie tw\u00f3rcom.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":12244,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/he-is-speaking-guy-explaining-with-a-whiteboard.gif\" alt=\"\" class=\"wp-image-12244\"\/><figcaption>Ponownie - serdeczna pro\u015bba tu o wyja\u015bnienia \ud83d\ude4f<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/11\/he-is-speaking-guy-explaining-with-a-whiteboard.gif\" alt=\"\" class=\"wp-image-12244\"\/><figcaption>Ponownie - serdeczna pro\u015bba tu o wyja\u015bnienia \ud83d\ude4f<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatni\u0105 ciekawostk\u0105, na kt\u00f3r\u0105 natkn\u0105\u0142em si\u0119 w zapowiedzi jest obietnica \"rmfactoru\" dokumentacji na nowy format. Przy okazji dowiedzia\u0142em si\u0119 bowiem o istnieniu frameworka (koncepcyjnego, nie, \u017ce jakiej\u015b biblioteki) do tworzenia dokumentacji u\u017cytkownika o nazwie <a href=\"https:\/\/diataxis.fr\/\">Di\u00e1taxis<\/a>. Liczba projekt\u00f3w, <a href=\"https:\/\/diataxis.fr\/adoption\/#adoption\">kt\u00f3re go zaadoptowa\u0142y<\/a> jest ca\u0142kiem poka\u017ana, a \u017ce nied\u0142ugo do\u0142\u0105czy do niej r\u00f3wnie\u017c do niego Quarkus, jest to chyba najwy\u017cszy czas, \u017ceby si\u0119 zainteresowa\u0107 co ciekawego wprowadza on do ju\u017c istniej\u0105cego szeregu dobrych praktyk.<\/p>\n","innerContent":["\n<p>Ostatni\u0105 ciekawostk\u0105, na kt\u00f3r\u0105 natkn\u0105\u0142em si\u0119 w zapowiedzi jest obietnica \"rmfactoru\" dokumentacji na nowy format. Przy okazji dowiedzia\u0142em si\u0119 bowiem o istnieniu frameworka (koncepcyjnego, nie, \u017ce jakiej\u015b biblioteki) do tworzenia dokumentacji u\u017cytkownika o nazwie <a href=\"https:\/\/diataxis.fr\/\">Di\u00e1taxis<\/a>. Liczba projekt\u00f3w, <a href=\"https:\/\/diataxis.fr\/adoption\/#adoption\">kt\u00f3re go zaadoptowa\u0142y<\/a> jest ca\u0142kiem poka\u017ana, a \u017ce nied\u0142ugo do\u0142\u0105czy do niej r\u00f3wnie\u017c do niego Quarkus, jest to chyba najwy\u017cszy czas, \u017ceby si\u0119 zainteresowa\u0107 co ciekawego wprowadza on do ju\u017c istniej\u0105cego szeregu dobrych praktyk.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>To oczywi\u015bcie nie wszystko, poniewa\u017c tw\u00f3rcy, zgodnie z natur\u0105 frameworku RedHata, obiecuj\u0105 nam r\u00f3wnie\u017c lepsz\u0105 wydajno\u015b\u0107 i polepszony \"developer experience\" Co ciekawe, ca\u0142o\u015bci mo\u017cemy spodziewa\u0107 si\u0119 ju\u017c ca\u0142kiem nied\u0142ugo, bo wersja finalna planowana jest na luty. Mo\u017cecie by\u0107 pewni, \u017ce przy okazji pierwszych wersji Alf\u0105 do tematu wr\u00f3c\u0119<\/p>\n","innerContent":["\n<p>To oczywi\u015bcie nie wszystko, poniewa\u017c tw\u00f3rcy, zgodnie z natur\u0105 frameworku RedHata, obiecuj\u0105 nam r\u00f3wnie\u017c lepsz\u0105 wydajno\u015b\u0107 i polepszony \"developer experience\" Co ciekawe, ca\u0142o\u015bci mo\u017cemy spodziewa\u0107 si\u0119 ju\u017c ca\u0142kiem nied\u0142ugo, bo wersja finalna planowana jest na luty. Mo\u017cecie by\u0107 pewni, \u017ce przy okazji pierwszych wersji Alf\u0105 do tematu wr\u00f3c\u0119<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/quarkus.io\/blog\/road-to-quarkus-3\/\">Starting Quarkus 3<\/a><\/li><li><a href=\"https:\/\/kernel.dk\/io_uring.pdf\">io_uring<\/a><\/li><li><a href=\"https:\/\/www.jesuisundev.com\/en\/understand-http3-in-5-minutes\/\">Understand HTTP3 in 5 minutes<\/a><\/li><li><a href=\"https:\/\/systemsapproach.substack.com\/p\/quic-is-not-a-tcp-replacement\">QUIC Is Not a TCP Replacement<\/a><\/li><li><a href=\"https:\/\/diataxis.fr\/\">Di\u00e1taxis<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/quarkus.io\/blog\/road-to-quarkus-3\/\">Starting Quarkus 3<\/a><\/li><li><a href=\"https:\/\/kernel.dk\/io_uring.pdf\">io_uring<\/a><\/li><li><a href=\"https:\/\/www.jesuisundev.com\/en\/understand-http3-in-5-minutes\/\">Understand HTTP3 in 5 minutes<\/a><\/li><li><a href=\"https:\/\/systemsapproach.substack.com\/p\/quic-is-not-a-tcp-replacement\">QUIC Is Not a TCP Replacement<\/a><\/li><li><a href=\"https:\/\/diataxis.fr\/\">Di\u00e1taxis<\/a><\/li><\/ul>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/12221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=12221"}],"version-history":[{"count":8,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/12221\/revisions"}],"predecessor-version":[{"id":12255,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/12221\/revisions\/12255"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/12251"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=12221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=12221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=12221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}