{"id":10109,"date":"2021-07-20T12:00:00","date_gmt":"2021-07-20T10:00:00","guid":{"rendered":"https:\/\/vived.io\/jvm-tuesday-vol-47\/"},"modified":"2022-09-19T13:10:50","modified_gmt":"2022-09-19T11:10:50","slug":"jvm-tuesday-vol-47","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/","title":{"rendered":"JVM Tuesday vol. 47"},"content":{"rendered":"<h2 id=\"1-kompletna-lista-funkcjonalnosci-w-javie-17\" data-num=1>1. Kompletna lista funkcjonalno\u015bci w Javie 17<\/h2>\n<p><a href=\"https:\/\/openjdk.java.net\/projects\/jdk\/17\/#Schedule\">Java 17 wesz\u0142a w dniu dzisiejszym w Rampdown Phase Two<\/a> &#8211; oznacza to, \u017ce obecnie jeste\u015bmy chyba w tym martwym okresie, gdy w pe\u0142ni wyklarowa\u0142a si\u0119 ju\u017c wizja Javy 17, i aktualnie pe\u0142ny nak\u0142ad si\u0142 k\u0142adziony jest nie na dok\u0142adanie rzeczy do backogu, a na spinanie do kupy obecnego zakresu prac &#8211; a zapewne, do\u0142o\u017cy\u0142 si\u0119 do tego te\u017c sezon urlopowy. \u017badne dodatkowe zmiany w JEPach nie pojawi\u0105 si\u0119 ju\u017c w siedemnastej edycji (kt\u00f3ra jak chcemy przypomnie\u0107, b\u0119dzie wersj\u0105 Long Time Support), a tw\u00f3rcy skupi\u0105 si\u0119 wy\u0142\u0105cznie na poprawie b\u0142\u0119d\u00f3w o najwy\u017cszym priorytecie. Dlatego te\u017c stwierdzili\u015bmy, \u017ce jest to dobry moment, aby przygl\u0105dn\u0105\u0107 si\u0119 temu, co te\u017c tw\u00f3rcy Javy postanowili nam zaprezentowa\u0107 w nowym wydaniu.<\/p>\n<p>Zacznijmy od tych JEP\u00f3w, kt\u00f3re mieli\u015bmy ju\u017c okazj\u0119 dla Was opisywa\u0107:<\/p>\n<ul>\n<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-30\/\"><strong>O usuni\u0119ciu Applet API<\/strong> pisali\u015bmy w naszej edycji 30tej<\/a><\/li>\n<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-27\/\">Project Lanai i <strong>JEP 382 (New Rendering Pipeline)<\/strong> pojawi\u0142 si\u0119 za\u015b w edycji 27<\/a><\/li>\n<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-23\/\"><strong>JEP 356 Enhanced Pseudo-Random Number Generators<\/strong> &#8211; to vol. 23&#8230;<\/a><\/li>\n<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-26\/\">&#8230;za\u015b w vol 26 opisywa\u0142 ju\u017c <strong>JEP-406 Pattern Matching for switch (Preview)<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-36\/\"><strong>Mocniej Enkapsulowane Internale (JEP-403)<\/strong> to edycja 36<\/a><\/li>\n<li>za\u015b usuni\u0119cie Security Managera go\u015bci\u0142o u nas ju\u017c dwukrotnie &#8211; <a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-37\/\">w edycji 37<\/a> i <a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-38\/\">38<\/a><\/li>\n<li>oraz (lekko naci\u0105gane) poruszali\u015bmy ju\u017c temat wersji Javy na macOS\/ARM <a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-22\/\">w edycji 22<\/a><\/li>\n<\/ul>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img loading=\"lazy\" decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif\" alt=\"\" width=\"500\" height=\"263\"><figcaption>Chyba tym ma\u0142ym \u201cflexem\u201d udowodni\u0142em, \u017ce dla regularnych czytelnik\u00f3w naszego Weekly nowa edycja Javy nie powinna przynie\u015b\u0107 wi\u0119kszych zaskocze\u0144.<\/figcaption><\/figure>\n<p>Tak naprawd\u0119 nie ma czego tutaj bardzo opisywa\u0107. Z drobiazg\u00f3w, kt\u00f3re do tej pory si\u0119 nie przewin\u0119\u0142y przez poszczeg\u00f3lne edycje, mamy bardzo niskopoziomowe zmiany w sposobie reprezentacji Float\u00f3w (JEP 306 &#8211; Restore Always-Strict Floating-Point Semantics) i znajduj\u0105ce si\u0119 w inkubacji dalsze elementy Projektu Panama (kt\u00f3rym pewnie przyjrzymy si\u0119 bli\u017cej ju\u017c w okolicach premiery nowego JDK). Opr\u00f3cz tego, naszej uwadze umkn\u0119\u0142y deprekacja RMI (co akurat jest do\u015b\u0107 ciekawym tematem) oraz eksperymentalnych kompilator\u00f3w AOT oraz JIT (co jest, mam nadziej\u0119, &nbsp;czyszczeniem pola przed zapowiedzianym swego czasu projektem Leyden).<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img loading=\"lazy\" decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-20.gif\" alt=\"\" width=\"480\" height=\"272\">&nbsp;<figcaption>Finalnie Java 17 przyniesie te\u017c w ko\u0144cu ostateczn\u0105 wersj\u0119 Sealed Class &#8211; aczkolwiek po kilku inkubacjach nie potrafi\u0119 ju\u017c \u201cjara\u0107\u201d si\u0119 tym featurem.&nbsp;<\/figcaption><\/figure>\n<p>Kolejny raz jednak warto wspomnie\u0107 &nbsp;o <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/security-dev\/2021-July\/026806.html\">JEP-466 &#8211; Deprekacji Security Managera<\/a> &#8211; kt\u00f3ra w tej chwili chyba stoi na czele najbardziej kontrowersyjnych zmian w platformie w ostatnich latach, b\u0119d\u0105c najszerzej dyskutowan\u0105 zmian\u0105 od czasu Module Systemu. Rzutem na ta\u015bm\u0119, tw\u00f3rcy zaktualizowali jeszcze nieco zakres prac w ramach tego proposala. Nareszcie (pewnie gdyby od tego zacz\u0119to, backlash by\u0142by nieco mniejszy) przedstawiono przysz\u0142o\u015b\u0107 kolejnych etap\u00f3w, oraz jak ca\u0142o\u015b\u0107 b\u0119dzie stopniowo wycofywana. Nie jest to nic nowego, o czym nie mo\u017cna by\u0142o ju\u017c wyczyta\u0107, ale fajnie mie\u0107 to dobrze rozpisane w jednym miejscu.<\/p>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\">\u0179r\u00f3d\u0142a<\/h3>\n<ul>\n<li><a href=\"https:\/\/openjdk.java.net\/projects\/jdk\/17\/#Schedule\">JDK 17 Schedule<\/a><\/li>\n<\/ul>\n<h2 id=\"2-pojawiaja-sie-nowe-inicjatywy-w-ramach-jdk\" data-num=2>2. Pojawiaj\u0105 si\u0119 nowe inicjatywy w ramach JDK<\/h2>\n<p>Dawno nie by\u0142o u nas JEP\u00f3w, co? Ostatnio ma\u0142o jest takowych, bo w ko\u0144cu trwaj\u0105 prace nad finalizacj\u0105 Javy 17. Nie oznacza to jednak, \u017ce na listach mailingowych Javy nie dzieje si\u0119 nic ciekawego. Dzisiaj wi\u0119c zrobimy sobie ma\u0142\u0105 \u201cprzekroj\u00f3wk\u0119\u201d naj\u015bwie\u017cszych pomys\u0142\u00f3w, bowiem ostatnimi czasy pojawi\u0142y si\u0119 tam dwie ciekawe inicjatywy.<\/p>\n<p><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-July\/005862.html\">Jedn\u0105 z nowych propozycji jest Project CRaC (co za urokliwa nazwa)<\/a>. Stoj\u0105cy za nim Anton Kozlov z Azula uwa\u017ca, \u017ce aplikacje javowe mog\u0105 unikn\u0105\u0107 d\u0142ugiego uruchamiania i procesu \u201crozgrzewania\u201d, zapisuj\u0105c pe\u0142ny stan \u015brodowiska uruchomieniowego. Zapisany stan mo\u017ce by\u0107 nast\u0119pnie u\u017cywany do szybkiego uruchamiania konkretnej instancji &#8211; ca\u0142o\u015b\u0107 przypomina\u0107 ma nieco, jak dzia\u0142a proces zapisu stanu w emulatorach gier. Dodatkowo, wiele instancji mo\u017ce wyp\u0105czkowa\u0107 z takiego pojedynczego \u201csavestate\u201d. Oczywi\u015bcie wi\u0105\u017ce si\u0119 z tym troch\u0119 problem\u00f3w (samo \u015brodowisko uruchomieniowe mo\u017ce si\u0119 zmieni\u0107, wspomniana wieloinstancjowo\u015b\u0107 te\u017c jest wyzwaniem), dlatego sugeruje on \u201creasearch\u201d nad odpowiednimi API w ramach Javy, kt\u00f3re mog\u0142yby sobie ze wspomnianymi problemami poradzi\u0107 i umo\u017cliwi\u0107 wielo\u015b\u0107 opcji, je\u015bli chodzi o miejsce, gdzie wspomniany stan mo\u017cna by by\u0142o \u201czrzuca\u0107\u201d. Projekt ma by\u0107 szczeg\u00f3lnie istotny w \u015brodowiskach chmurowych, gdzie d\u0142ugi rozruch jest istotnym wyzwaniem.<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img loading=\"lazy\" decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/image-6.png\" sizes=\"auto, (min-width: 720px) 720px\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/1_image-6.png 600w, https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/2_image-6.png 1000w, https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/image-6.png 1280w\" alt=\"\" width=\"1280\" height=\"548\">&nbsp;<figcaption>Wprawdzie szybko pojawi\u0142y si\u0119 g\u0142osy, \u017ce inicjatywa przypomina nieco wprowadzony w JDK 13 Application Class Data Sharing, ale osobi\u015bcie lubi\u0119 wielotorowo\u015b\u0107, kt\u00f3r\u0105 ostatnimi czasy obserwuje w \u015bwiecie JVMa.<\/figcaption><\/figure>\n<p>To nie jedyna z nowo\u015bci &#8211; ot\u00f3\u017c <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-July\/005846.html\">w ramach list mailingowych trwa r\u00f3wnie\u017c dyskusja nad wsparciem Waylanda<\/a>. Wayland to nast\u0119pca legendarnego X11, czyli \u201cserwera wy\u015bwietlania\u201d (nienawidz\u0119 t\u0142umaczenia tej nazwy) w ramach Linuxa. Do tej pory aplikacje javowe uruchamia\u0142y si\u0119 w nim poprzez warstw\u0119 kompatybilno\u015bci z X11, ale wida\u0107, \u017ce tw\u00f3rcy JDK powoli przymierzaj\u0105 si\u0119 do wsparcia natywnego. Mamy wi\u0119c do czynienia z dalszymi krokami w stron\u0119 modernizacji ca\u0142ego okienkowego \u201cstacku\u201d JVM, \u015bwietnie wpisuj\u0105cymi si\u0119 w dzia\u0142ania JetBrains w ramach JEP 382 \u2013 Project Lanai (czyli obs\u0142ugi Matal API na MacOS, kt\u00f3ra jak pisali\u015bmy, trafi do Javy 17) czy inwestycjami w desktopowego Jetpacka.<\/p>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a<\/h3>\n<ul>\n<li><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-July\/005862.html\">Call for Discussion: New Project: CRaC<\/a><\/li>\n<li><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-July\/005846.html\">Call for Discussion : New Project to support the Wayland display server on Linux<\/a><\/li>\n<\/ul>\n<h2 id=\"3-moze-troche-advent-of-code-z-kotlinem-w-polowie-lipcu\" data-num=3>3. Mo\u017ce troch\u0119 Advent of Code z Kotlinem w po\u0142owie lipcu?<\/h2>\n<p>Mo\u017ce nie jest to wielki news, ale i tak postanowili\u015bmy si\u0119 podzieli\u0107 faktem, \u017ce JetBrains na oficjaln<br \/>\nym kotlinowym blogu postanowi\u0142o rozpocz\u0105\u0107 seri\u0119 zada\u0144 z Advent of Code w Kotlinie. &nbsp;Na razie jest to pierwsze zadanie, ale autorka ju\u017c zapowiedzia\u0142a ch\u0119\u0107 kontynuacji ca\u0142ej serii, wi\u0119c mamy nadzieje, \u017ce nied\u0142ugo pojawi\u0105 si\u0119 kolejne posty.<\/p>\n<p>Ale czym ten ca\u0142y Advent of Code jest? Chyba nie ma lepszej osoby \u017ceby wyja\u015bni\u0107, ni\u017c autor samego przedsi\u0119wzi\u0119cia&#8230;<\/p>\n<p>https:\/\/www.youtube.com\/watch?v=CFWuwNDOnIo<\/p>\n<p>\u2026 przy czym rozumiemy, \u017ce nie ka\u017cdemu chce si\u0119 s\u0142ucha\u0107 40 minut prezentacji wi\u0119c TLDR: Jest to coroczny konkurs programistyczny, polegaj\u0105cy na rozwi\u0105zywaniu przez 24 dni zada\u0144 o coraz wy\u017cszym poziomie trudno\u015bci . O ile wiele os\u00f3b traktuje go mocno ambicjonalnie, to dla nas zawsze by\u0142 okazj\u0105 do przed\u015bwi\u0105tecznego rozruszania m\u00f3zgownicy (tak, prywatnie bawimy si\u0119 si\u0119 ju\u017c kt\u00f3ry\u015b rok z rz\u0119du). Bo pami\u0119tajcie, Advent Of Code to przede wszystkim jest dobra zabawa<\/p>\n<p>Inicjatywa JetBrains z tego powodu strasznie nam si\u0119 podoba. Nauka przez zabaw\u0119 to zwykle najlepsza z metod, a mo\u017cliwo\u015b\u0107 zobaczenia, jak poszczeg\u00f3lne zadania rozwi\u0105za\u0107 w najbardziej idiomatyczny spos\u00f3b jest czym\u015b bardzo kusz\u0105cym. Nawet dla os\u00f3b (tak jak pisz\u0105cy te s\u0142owa), kt\u00f3re w\u0142a\u015bnie w Kotlinie zrealizowa\u0142y ca\u0142\u0105 poprzedni\u0105 edycj\u0119 &#8211; zawsze mo\u017cna sobie potraktowa\u0107 blog posty od JetBrains jako swoiste Kata i skorzysta\u0107 na braku goni\u0105cego limitu czasowego (a ten w Advent of Code czasem daje w ko\u015b\u0107).<\/p>\n<figure class=\"kg-card kg-image-card\"><img loading=\"lazy\" decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/image-5.png\" alt=\"\" width=\"404\" height=\"564\"><\/figure>\n<p>Dodatkowo, chcieliby\u015bmy przypomnie\u0107 wszystkim, kt\u00f3rzy do tej pory nie bawili si\u0119 w Advent of Code, \u017ce w zesz\u0142ym roku Vived <a href=\"https:\/\/adventofcode.com\/2020\/leaderboard\/private\/view\/451950\">uda\u0142o si\u0119 zebra\u0107 grup\u0119 ponad 80 os\u00f3b<\/a>, z kt\u00f3rymi wsp\u00f3lnie \u015bcigali\u015bmy si\u0119 na rozwi\u0105zywanie zada\u0144. Grup\u0119 chcemy powiedzie\u0107 do\u015b\u0107 mocarn\u0105, gdy\u017c prawie dwudziestu spo\u015br\u00f3d &nbsp;uczestnik\u00f3w wykona\u0142o wszystkie dwadzie\u015bcia zada\u0144 na obie gwiazdki. Ju\u017c w tej chwili chcieli\u015bmy za\u015b zaprosi\u0107 wszystkich do wsp\u00f3lnej zabawy w grudniu &#8211; obiecujemy by\u0107 z Wami od pierwszego dnia, mo\u017ce nawet przygotujemy w tym roku jakie\u015b nagrody.<\/p>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-2\">\u0179r\u00f3d\u0142a<\/h3>\n<ul>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/07\/advent-of-code-in-idiomatic-kotlin\/?utm_source=pocket_mylist\">Solving Advent of Code Puzzles in Idiomatic Kotlin<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=CFWuwNDOnIo\">Advent of Code: Behind the Scenes (Programming Puzzles)<\/a><\/li>\n<\/ul>\n<hr>\n<p>\u200cPami\u0119tajcie, \u017ceby spr\u00f3bowa\u0107 <a href=\"https:\/\/blog.vived.io\/keep-up-czyli-o-tym-jak-byc-na-biezaco-bez-uczucia-przytloczenia-contentem\/\"><strong>Vived<\/strong><\/a>, je\u015bli chcesz otrzymywa\u0107 tego typu tre\u015bci spersonalizowane pod Ciebie!<\/p>\n<ul>\n<li><a href=\"https:\/\/apple.co\/3fB8Kcf\" rel=\"nofollow noopener\">App Store<\/a><\/li>\n<li><a href=\"https:\/\/bit.ly\/3m421dx\" rel=\"nofollow noopener\">Play Store<\/a><\/li>\n<li><a href=\"http:\/\/bit.ly\/2M7CeUN\">Wersja PWA<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Piszesz sobie &#8222;JVMowy Wtorek&#8221;, szukasz \u017ar\u00f3de\u0142 do jednej z sekcji&#8230; a tutaj okazuje si\u0119, \u017ce Java 17 godzin\u0119 temu dosta\u0142a Feature Freeze \ud83e\udd76, wi\u0119c Twoja narracja o sezonie og\u00f3rkowym \ud83e\udd52 jest troch\u0119 nie na miejscu \ud83d\ude09 . Zapraszam wi\u0119c do lektury nowej edycji!<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259],"tags":[],"class_list":["post-10109","post","type-post","status-publish","format-standard","hentry","category-jvm-pl"],"acf":{"weekly_summary":true,"estimated_reading_time":"6"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>JVM Tuesday vol. 47 - 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\/jvm-tuesday-vol-47\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JVM Tuesday vol. 47 - Vived\" \/>\n<meta property=\"og:description\" content=\"Piszesz sobie &quot;JVMowy Wtorek&quot;, szukasz \u017ar\u00f3de\u0142 do jednej z sekcji... a tutaj okazuje si\u0119, \u017ce Java 17 godzin\u0119 temu dosta\u0142a Feature Freeze \ud83e\udd76, wi\u0119c Twoja narracja o sezonie og\u00f3rkowym \ud83e\udd52 jest troch\u0119 nie na miejscu \ud83d\ude09 . Zapraszam wi\u0119c do lektury nowej edycji!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-20T10:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:10:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif\" \/>\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\/jvm-tuesday-vol-47\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"JVM Tuesday vol. 47\",\"datePublished\":\"2021-07-20T10:00:00+00:00\",\"dateModified\":\"2022-09-19T11:10:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/\"},\"wordCount\":1295,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/\",\"url\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/\",\"name\":\"JVM Tuesday vol. 47 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif\",\"datePublished\":\"2021-07-20T10:00:00+00:00\",\"dateModified\":\"2022-09-19T11:10:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JVM Tuesday vol. 47\"}]},{\"@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":"JVM Tuesday vol. 47 - 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\/jvm-tuesday-vol-47\/","og_locale":"pl_PL","og_type":"article","og_title":"JVM Tuesday vol. 47 - Vived","og_description":"Piszesz sobie \"JVMowy Wtorek\", szukasz \u017ar\u00f3de\u0142 do jednej z sekcji... a tutaj okazuje si\u0119, \u017ce Java 17 godzin\u0119 temu dosta\u0142a Feature Freeze \ud83e\udd76, wi\u0119c Twoja narracja o sezonie og\u00f3rkowym \ud83e\udd52 jest troch\u0119 nie na miejscu \ud83d\ude09 . Zapraszam wi\u0119c do lektury nowej edycji!","og_url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/","og_site_name":"Vived","article_published_time":"2021-07-20T10:00:00+00:00","article_modified_time":"2022-09-19T11:10:50+00:00","og_image":[{"url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif","type":"","width":"","height":""}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"JVM Tuesday vol. 47","datePublished":"2021-07-20T10:00:00+00:00","dateModified":"2022-09-19T11:10:50+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/"},"wordCount":1295,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/","url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/","name":"JVM Tuesday vol. 47 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif","datePublished":"2021-07-20T10:00:00+00:00","dateModified":"2022-09-19T11:10:50+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif"},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-47\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"JVM Tuesday vol. 47"}]},{"@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":null,"attrs":[],"innerBlocks":[],"innerHTML":"<h2 id=\"1-kompletna-lista-funkcjonalno%C5%9Bci-w-javie-17-%F0%9F%8E%89\">1. Kompletna lista funkcjonalno\u015bci w Javie 17<\/h2>\n<a href=\"https:\/\/openjdk.java.net\/projects\/jdk\/17\/#Schedule\">Java 17 wesz\u0142a w dniu dzisiejszym w Rampdown Phase Two<\/a> - oznacza to, \u017ce obecnie jeste\u015bmy chyba w tym martwym okresie, gdy w pe\u0142ni wyklarowa\u0142a si\u0119 ju\u017c wizja Javy 17, i aktualnie pe\u0142ny nak\u0142ad si\u0142 k\u0142adziony jest nie na dok\u0142adanie rzeczy do backogu, a na spinanie do kupy obecnego zakresu prac - a zapewne, do\u0142o\u017cy\u0142 si\u0119 do tego te\u017c sezon urlopowy. \u017badne dodatkowe zmiany w JEPach nie pojawi\u0105 si\u0119 ju\u017c w siedemnastej edycji (kt\u00f3ra jak chcemy przypomnie\u0107, b\u0119dzie wersj\u0105 Long Time Support), a tw\u00f3rcy skupi\u0105 si\u0119 wy\u0142\u0105cznie na poprawie b\u0142\u0119d\u00f3w o najwy\u017cszym priorytecie. Dlatego te\u017c stwierdzili\u015bmy, \u017ce jest to dobry moment, aby przygl\u0105dn\u0105\u0107 si\u0119 temu, co te\u017c tw\u00f3rcy Javy postanowili nam zaprezentowa\u0107 w nowym wydaniu.\n\nZacznijmy od tych JEP\u00f3w, kt\u00f3re mieli\u015bmy ju\u017c okazj\u0119 dla Was opisywa\u0107:\n<ul>\n \t<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-30\/\"><strong>O usuni\u0119ciu Applet API<\/strong> pisali\u015bmy w naszej edycji 30tej<\/a><\/li>\n \t<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-27\/\">Project Lanai i <strong>JEP 382 (New Rendering Pipeline)<\/strong> pojawi\u0142 si\u0119 za\u015b w edycji 27<\/a><\/li>\n \t<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-23\/\"><strong>JEP 356 Enhanced Pseudo-Random Number Generators<\/strong> - to vol. 23...<\/a><\/li>\n \t<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-26\/\">...za\u015b w vol 26 opisywa\u0142 ju\u017c <strong>JEP-406 Pattern Matching for switch (Preview)<\/strong><\/a><\/li>\n \t<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-36\/\"><strong>Mocniej Enkapsulowane Internale (JEP-403)<\/strong> to edycja 36<\/a><\/li>\n \t<li>za\u015b usuni\u0119cie Security Managera go\u015bci\u0142o u nas ju\u017c dwukrotnie - <a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-37\/\">w edycji 37<\/a> i <a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-38\/\">38<\/a><\/li>\n \t<li>oraz (lekko naci\u0105gane) poruszali\u015bmy ju\u017c temat wersji Javy na macOS\/ARM <a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-22\/\">w edycji 22<\/a><\/li>\n<\/ul>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif\" alt=\"\" width=\"500\" height=\"263\"><figcaption>Chyba tym ma\u0142ym \u201cflexem\u201d udowodni\u0142em, \u017ce dla regularnych czytelnik\u00f3w naszego Weekly nowa edycja Javy nie powinna przynie\u015b\u0107 wi\u0119kszych zaskocze\u0144.<\/figcaption><\/figure>\nTak naprawd\u0119 nie ma czego tutaj bardzo opisywa\u0107. Z drobiazg\u00f3w, kt\u00f3re do tej pory si\u0119 nie przewin\u0119\u0142y przez poszczeg\u00f3lne edycje, mamy bardzo niskopoziomowe zmiany w sposobie reprezentacji Float\u00f3w (JEP 306 - Restore Always-Strict Floating-Point Semantics) i znajduj\u0105ce si\u0119 w inkubacji dalsze elementy Projektu Panama (kt\u00f3rym pewnie przyjrzymy si\u0119 bli\u017cej ju\u017c w okolicach premiery nowego JDK). Opr\u00f3cz tego, naszej uwadze umkn\u0119\u0142y deprekacja RMI (co akurat jest do\u015b\u0107 ciekawym tematem) oraz eksperymentalnych kompilator\u00f3w AOT oraz JIT (co jest, mam nadziej\u0119, &nbsp;czyszczeniem pola przed zapowiedzianym swego czasu projektem Leyden).\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-20.gif\" alt=\"\" width=\"480\" height=\"272\">&nbsp;\n\n<figcaption>Finalnie Java 17 przyniesie te\u017c w ko\u0144cu ostateczn\u0105 wersj\u0119 Sealed Class - aczkolwiek po kilku inkubacjach nie potrafi\u0119 ju\u017c \u201cjara\u0107\u201d si\u0119 tym featurem.&nbsp;<\/figcaption><\/figure>\nKolejny raz jednak warto wspomnie\u0107 &nbsp;o <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/security-dev\/2021-July\/026806.html\">JEP-466 - Deprekacji Security Managera<\/a> - kt\u00f3ra w tej chwili chyba stoi na czele najbardziej kontrowersyjnych zmian w platformie w ostatnich latach, b\u0119d\u0105c najszerzej dyskutowan\u0105 zmian\u0105 od czasu Module Systemu. Rzutem na ta\u015bm\u0119, tw\u00f3rcy zaktualizowali jeszcze nieco zakres prac w ramach tego proposala. Nareszcie (pewnie gdyby od tego zacz\u0119to, backlash by\u0142by nieco mniejszy) przedstawiono przysz\u0142o\u015b\u0107 kolejnych etap\u00f3w, oraz jak ca\u0142o\u015b\u0107 b\u0119dzie stopniowo wycofywana. Nie jest to nic nowego, o czym nie mo\u017cna by\u0142o ju\u017c wyczyta\u0107, ale fajnie mie\u0107 to dobrze rozpisane w jednym miejscu.\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\">\u0179r\u00f3d\u0142a<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/openjdk.java.net\/projects\/jdk\/17\/#Schedule\">JDK 17 Schedule<\/a><\/li>\n<\/ul>\n<h2 id=\"2-pojawiaj%C4%85-si%C4%99-nowe-inicjatywy-w-ramach-jdk-%F0%9F%A5%B3\">2. Pojawiaj\u0105 si\u0119 nowe inicjatywy w ramach JDK<\/h2>\nDawno nie by\u0142o u nas JEP\u00f3w, co? Ostatnio ma\u0142o jest takowych, bo w ko\u0144cu trwaj\u0105 prace nad finalizacj\u0105 Javy 17. Nie oznacza to jednak, \u017ce na listach mailingowych Javy nie dzieje si\u0119 nic ciekawego. Dzisiaj wi\u0119c zrobimy sobie ma\u0142\u0105 \u201cprzekroj\u00f3wk\u0119\u201d naj\u015bwie\u017cszych pomys\u0142\u00f3w, bowiem ostatnimi czasy pojawi\u0142y si\u0119 tam dwie ciekawe inicjatywy.\n\n<a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-July\/005862.html\">Jedn\u0105 z nowych propozycji jest Project CRaC (co za urokliwa nazwa)<\/a>. Stoj\u0105cy za nim Anton Kozlov z Azula uwa\u017ca, \u017ce aplikacje javowe mog\u0105 unikn\u0105\u0107 d\u0142ugiego uruchamiania i procesu \u201crozgrzewania\u201d, zapisuj\u0105c pe\u0142ny stan \u015brodowiska uruchomieniowego. Zapisany stan mo\u017ce by\u0107 nast\u0119pnie u\u017cywany do szybkiego uruchamiania konkretnej instancji - ca\u0142o\u015b\u0107 przypomina\u0107 ma nieco, jak dzia\u0142a proces zapisu stanu w emulatorach gier. Dodatkowo, wiele instancji mo\u017ce wyp\u0105czkowa\u0107 z takiego pojedynczego \u201csavestate\u201d. Oczywi\u015bcie wi\u0105\u017ce si\u0119 z tym troch\u0119 problem\u00f3w (samo \u015brodowisko uruchomieniowe mo\u017ce si\u0119 zmieni\u0107, wspomniana wieloinstancjowo\u015b\u0107 te\u017c jest wyzwaniem), dlatego sugeruje on \u201creasearch\u201d nad odpowiednimi API w ramach Javy, kt\u00f3re mog\u0142yby sobie ze wspomnianymi problemami poradzi\u0107 i umo\u017cliwi\u0107 wielo\u015b\u0107 opcji, je\u015bli chodzi o miejsce, gdzie wspomniany stan mo\u017cna by by\u0142o \u201czrzuca\u0107\u201d. Projekt ma by\u0107 szczeg\u00f3lnie istotny w \u015brodowiskach chmurowych, gdzie d\u0142ugi rozruch jest istotnym wyzwaniem.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/image-6.png\" sizes=\"(min-width: 720px) 720px\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/1_image-6.png 600w, https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/2_image-6.png 1000w, https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/image-6.png 1280w\" alt=\"\" width=\"1280\" height=\"548\">&nbsp;\n\n<figcaption>Wprawdzie szybko pojawi\u0142y si\u0119 g\u0142osy, \u017ce inicjatywa przypomina nieco wprowadzony w JDK 13 Application Class Data Sharing, ale osobi\u015bcie lubi\u0119 wielotorowo\u015b\u0107, kt\u00f3r\u0105 ostatnimi czasy obserwuje w \u015bwiecie JVMa.<\/figcaption><\/figure>\nTo nie jedyna z nowo\u015bci - ot\u00f3\u017c <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-July\/005846.html\">w ramach list mailingowych trwa r\u00f3wnie\u017c dyskusja nad wsparciem Waylanda<\/a>. Wayland to nast\u0119pca legendarnego X11, czyli \u201cserwera wy\u015bwietlania\u201d (nienawidz\u0119 t\u0142umaczenia tej nazwy) w ramach Linuxa. Do tej pory aplikacje javowe uruchamia\u0142y si\u0119 w nim poprzez warstw\u0119 kompatybilno\u015bci z X11, ale wida\u0107, \u017ce tw\u00f3rcy JDK powoli przymierzaj\u0105 si\u0119 do wsparcia natywnego. Mamy wi\u0119c do czynienia z dalszymi krokami w stron\u0119 modernizacji ca\u0142ego okienkowego \u201cstacku\u201d JVM, \u015bwietnie wpisuj\u0105cymi si\u0119 w dzia\u0142ania JetBrains w ramach JEP 382 \u2013 Project Lanai (czyli obs\u0142ugi Matal API na MacOS, kt\u00f3ra jak pisali\u015bmy, trafi do Javy 17) czy inwestycjami w desktopowego Jetpacka.\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-July\/005862.html\">Call for Discussion: New Project: CRaC<\/a><\/li>\n \t<li><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-July\/005846.html\">Call for Discussion : New Project to support the Wayland display server on Linux<\/a><\/li>\n<\/ul>\n<h2 id=\"3-mo%C5%BCe-troch%C4%99-advent-of-code-z-kotlinem-w-po%C5%82owie-lipcu-%F0%9F%8E%85\">3. Mo\u017ce troch\u0119 Advent of Code z Kotlinem w po\u0142owie lipcu?<\/h2>\nMo\u017ce nie jest to wielki news, ale i tak postanowili\u015bmy si\u0119 podzieli\u0107 faktem, \u017ce JetBrains na oficjaln\nym kotlinowym blogu postanowi\u0142o rozpocz\u0105\u0107 seri\u0119 zada\u0144 z Advent of Code w Kotlinie. &nbsp;Na razie jest to pierwsze zadanie, ale autorka ju\u017c zapowiedzia\u0142a ch\u0119\u0107 kontynuacji ca\u0142ej serii, wi\u0119c mamy nadzieje, \u017ce nied\u0142ugo pojawi\u0105 si\u0119 kolejne posty.\n\nAle czym ten ca\u0142y Advent of Code jest? Chyba nie ma lepszej osoby \u017ceby wyja\u015bni\u0107, ni\u017c autor samego przedsi\u0119wzi\u0119cia...\n\nhttps:\/\/www.youtube.com\/watch?v=CFWuwNDOnIo\n\n\u2026 przy czym rozumiemy, \u017ce nie ka\u017cdemu chce si\u0119 s\u0142ucha\u0107 40 minut prezentacji wi\u0119c TLDR: Jest to coroczny konkurs programistyczny, polegaj\u0105cy na rozwi\u0105zywaniu przez 24 dni zada\u0144 o coraz wy\u017cszym poziomie trudno\u015bci . O ile wiele os\u00f3b traktuje go mocno ambicjonalnie, to dla nas zawsze by\u0142 okazj\u0105 do przed\u015bwi\u0105tecznego rozruszania m\u00f3zgownicy (tak, prywatnie bawimy si\u0119 si\u0119 ju\u017c kt\u00f3ry\u015b rok z rz\u0119du). Bo pami\u0119tajcie, Advent Of Code to przede wszystkim jest dobra zabawa\n\nInicjatywa JetBrains z tego powodu strasznie nam si\u0119 podoba. Nauka przez zabaw\u0119 to zwykle najlepsza z metod, a mo\u017cliwo\u015b\u0107 zobaczenia, jak poszczeg\u00f3lne zadania rozwi\u0105za\u0107 w najbardziej idiomatyczny spos\u00f3b jest czym\u015b bardzo kusz\u0105cym. Nawet dla os\u00f3b (tak jak pisz\u0105cy te s\u0142owa), kt\u00f3re w\u0142a\u015bnie w Kotlinie zrealizowa\u0142y ca\u0142\u0105 poprzedni\u0105 edycj\u0119 - zawsze mo\u017cna sobie potraktowa\u0107 blog posty od JetBrains jako swoiste Kata i skorzysta\u0107 na braku goni\u0105cego limitu czasowego (a ten w Advent of Code czasem daje w ko\u015b\u0107).\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/image-5.png\" alt=\"\" width=\"404\" height=\"564\"><\/figure>\nDodatkowo, chcieliby\u015bmy przypomnie\u0107 wszystkim, kt\u00f3rzy do tej pory nie bawili si\u0119 w Advent of Code, \u017ce w zesz\u0142ym roku Vived <a href=\"https:\/\/adventofcode.com\/2020\/leaderboard\/private\/view\/451950\">uda\u0142o si\u0119 zebra\u0107 grup\u0119 ponad 80 os\u00f3b<\/a>, z kt\u00f3rymi wsp\u00f3lnie \u015bcigali\u015bmy si\u0119 na rozwi\u0105zywanie zada\u0144. Grup\u0119 chcemy powiedzie\u0107 do\u015b\u0107 mocarn\u0105, gdy\u017c prawie dwudziestu spo\u015br\u00f3d &nbsp;uczestnik\u00f3w wykona\u0142o wszystkie dwadzie\u015bcia zada\u0144 na obie gwiazdki. Ju\u017c w tej chwili chcieli\u015bmy za\u015b zaprosi\u0107 wszystkich do wsp\u00f3lnej zabawy w grudniu - obiecujemy by\u0107 z Wami od pierwszego dnia, mo\u017ce nawet przygotujemy w tym roku jakie\u015b nagrody.\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-2\">\u0179r\u00f3d\u0142a<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/07\/advent-of-code-in-idiomatic-kotlin\/?utm_source=pocket_mylist\">Solving Advent of Code Puzzles in Idiomatic Kotlin<\/a><\/li>\n \t<li><a href=\"https:\/\/www.youtube.com\/watch?v=CFWuwNDOnIo\">Advent of Code: Behind the Scenes (Programming Puzzles)<\/a><\/li>\n<\/ul>\n\n<hr>\n\n\u200cPami\u0119tajcie, \u017ceby spr\u00f3bowa\u0107 <a href=\"https:\/\/blog.vived.io\/keep-up-czyli-o-tym-jak-byc-na-biezaco-bez-uczucia-przytloczenia-contentem\/\"><strong>Vived<\/strong><\/a>, je\u015bli chcesz otrzymywa\u0107 tego typu tre\u015bci spersonalizowane pod Ciebie!\n<ul>\n \t<li><a href=\"https:\/\/apple.co\/3fB8Kcf\" rel=\"nofollow noopener\">App Store<\/a><\/li>\n \t<li><a href=\"https:\/\/bit.ly\/3m421dx\" rel=\"nofollow noopener\">Play Store<\/a><\/li>\n \t<li><a href=\"http:\/\/bit.ly\/2M7CeUN\">Wersja PWA<\/a><\/li>\n<\/ul>","innerContent":["<h2 id=\"1-kompletna-lista-funkcjonalno%C5%9Bci-w-javie-17-%F0%9F%8E%89\">1. Kompletna lista funkcjonalno\u015bci w Javie 17<\/h2>\n<a href=\"https:\/\/openjdk.java.net\/projects\/jdk\/17\/#Schedule\">Java 17 wesz\u0142a w dniu dzisiejszym w Rampdown Phase Two<\/a> - oznacza to, \u017ce obecnie jeste\u015bmy chyba w tym martwym okresie, gdy w pe\u0142ni wyklarowa\u0142a si\u0119 ju\u017c wizja Javy 17, i aktualnie pe\u0142ny nak\u0142ad si\u0142 k\u0142adziony jest nie na dok\u0142adanie rzeczy do backogu, a na spinanie do kupy obecnego zakresu prac - a zapewne, do\u0142o\u017cy\u0142 si\u0119 do tego te\u017c sezon urlopowy. \u017badne dodatkowe zmiany w JEPach nie pojawi\u0105 si\u0119 ju\u017c w siedemnastej edycji (kt\u00f3ra jak chcemy przypomnie\u0107, b\u0119dzie wersj\u0105 Long Time Support), a tw\u00f3rcy skupi\u0105 si\u0119 wy\u0142\u0105cznie na poprawie b\u0142\u0119d\u00f3w o najwy\u017cszym priorytecie. Dlatego te\u017c stwierdzili\u015bmy, \u017ce jest to dobry moment, aby przygl\u0105dn\u0105\u0107 si\u0119 temu, co te\u017c tw\u00f3rcy Javy postanowili nam zaprezentowa\u0107 w nowym wydaniu.\n\nZacznijmy od tych JEP\u00f3w, kt\u00f3re mieli\u015bmy ju\u017c okazj\u0119 dla Was opisywa\u0107:\n<ul>\n \t<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-30\/\"><strong>O usuni\u0119ciu Applet API<\/strong> pisali\u015bmy w naszej edycji 30tej<\/a><\/li>\n \t<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-27\/\">Project Lanai i <strong>JEP 382 (New Rendering Pipeline)<\/strong> pojawi\u0142 si\u0119 za\u015b w edycji 27<\/a><\/li>\n \t<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-23\/\"><strong>JEP 356 Enhanced Pseudo-Random Number Generators<\/strong> - to vol. 23...<\/a><\/li>\n \t<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-26\/\">...za\u015b w vol 26 opisywa\u0142 ju\u017c <strong>JEP-406 Pattern Matching for switch (Preview)<\/strong><\/a><\/li>\n \t<li><a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-36\/\"><strong>Mocniej Enkapsulowane Internale (JEP-403)<\/strong> to edycja 36<\/a><\/li>\n \t<li>za\u015b usuni\u0119cie Security Managera go\u015bci\u0142o u nas ju\u017c dwukrotnie - <a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-37\/\">w edycji 37<\/a> i <a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-38\/\">38<\/a><\/li>\n \t<li>oraz (lekko naci\u0105gane) poruszali\u015bmy ju\u017c temat wersji Javy na macOS\/ARM <a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-22\/\">w edycji 22<\/a><\/li>\n<\/ul>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-21.gif\" alt=\"\" width=\"500\" height=\"263\"><figcaption>Chyba tym ma\u0142ym \u201cflexem\u201d udowodni\u0142em, \u017ce dla regularnych czytelnik\u00f3w naszego Weekly nowa edycja Javy nie powinna przynie\u015b\u0107 wi\u0119kszych zaskocze\u0144.<\/figcaption><\/figure>\nTak naprawd\u0119 nie ma czego tutaj bardzo opisywa\u0107. Z drobiazg\u00f3w, kt\u00f3re do tej pory si\u0119 nie przewin\u0119\u0142y przez poszczeg\u00f3lne edycje, mamy bardzo niskopoziomowe zmiany w sposobie reprezentacji Float\u00f3w (JEP 306 - Restore Always-Strict Floating-Point Semantics) i znajduj\u0105ce si\u0119 w inkubacji dalsze elementy Projektu Panama (kt\u00f3rym pewnie przyjrzymy si\u0119 bli\u017cej ju\u017c w okolicach premiery nowego JDK). Opr\u00f3cz tego, naszej uwadze umkn\u0119\u0142y deprekacja RMI (co akurat jest do\u015b\u0107 ciekawym tematem) oraz eksperymentalnych kompilator\u00f3w AOT oraz JIT (co jest, mam nadziej\u0119, &nbsp;czyszczeniem pola przed zapowiedzianym swego czasu projektem Leyden).\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/giphy-20.gif\" alt=\"\" width=\"480\" height=\"272\">&nbsp;\n\n<figcaption>Finalnie Java 17 przyniesie te\u017c w ko\u0144cu ostateczn\u0105 wersj\u0119 Sealed Class - aczkolwiek po kilku inkubacjach nie potrafi\u0119 ju\u017c \u201cjara\u0107\u201d si\u0119 tym featurem.&nbsp;<\/figcaption><\/figure>\nKolejny raz jednak warto wspomnie\u0107 &nbsp;o <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/security-dev\/2021-July\/026806.html\">JEP-466 - Deprekacji Security Managera<\/a> - kt\u00f3ra w tej chwili chyba stoi na czele najbardziej kontrowersyjnych zmian w platformie w ostatnich latach, b\u0119d\u0105c najszerzej dyskutowan\u0105 zmian\u0105 od czasu Module Systemu. Rzutem na ta\u015bm\u0119, tw\u00f3rcy zaktualizowali jeszcze nieco zakres prac w ramach tego proposala. Nareszcie (pewnie gdyby od tego zacz\u0119to, backlash by\u0142by nieco mniejszy) przedstawiono przysz\u0142o\u015b\u0107 kolejnych etap\u00f3w, oraz jak ca\u0142o\u015b\u0107 b\u0119dzie stopniowo wycofywana. Nie jest to nic nowego, o czym nie mo\u017cna by\u0142o ju\u017c wyczyta\u0107, ale fajnie mie\u0107 to dobrze rozpisane w jednym miejscu.\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\">\u0179r\u00f3d\u0142a<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/openjdk.java.net\/projects\/jdk\/17\/#Schedule\">JDK 17 Schedule<\/a><\/li>\n<\/ul>\n<h2 id=\"2-pojawiaj%C4%85-si%C4%99-nowe-inicjatywy-w-ramach-jdk-%F0%9F%A5%B3\">2. Pojawiaj\u0105 si\u0119 nowe inicjatywy w ramach JDK<\/h2>\nDawno nie by\u0142o u nas JEP\u00f3w, co? Ostatnio ma\u0142o jest takowych, bo w ko\u0144cu trwaj\u0105 prace nad finalizacj\u0105 Javy 17. Nie oznacza to jednak, \u017ce na listach mailingowych Javy nie dzieje si\u0119 nic ciekawego. Dzisiaj wi\u0119c zrobimy sobie ma\u0142\u0105 \u201cprzekroj\u00f3wk\u0119\u201d naj\u015bwie\u017cszych pomys\u0142\u00f3w, bowiem ostatnimi czasy pojawi\u0142y si\u0119 tam dwie ciekawe inicjatywy.\n\n<a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-July\/005862.html\">Jedn\u0105 z nowych propozycji jest Project CRaC (co za urokliwa nazwa)<\/a>. Stoj\u0105cy za nim Anton Kozlov z Azula uwa\u017ca, \u017ce aplikacje javowe mog\u0105 unikn\u0105\u0107 d\u0142ugiego uruchamiania i procesu \u201crozgrzewania\u201d, zapisuj\u0105c pe\u0142ny stan \u015brodowiska uruchomieniowego. Zapisany stan mo\u017ce by\u0107 nast\u0119pnie u\u017cywany do szybkiego uruchamiania konkretnej instancji - ca\u0142o\u015b\u0107 przypomina\u0107 ma nieco, jak dzia\u0142a proces zapisu stanu w emulatorach gier. Dodatkowo, wiele instancji mo\u017ce wyp\u0105czkowa\u0107 z takiego pojedynczego \u201csavestate\u201d. Oczywi\u015bcie wi\u0105\u017ce si\u0119 z tym troch\u0119 problem\u00f3w (samo \u015brodowisko uruchomieniowe mo\u017ce si\u0119 zmieni\u0107, wspomniana wieloinstancjowo\u015b\u0107 te\u017c jest wyzwaniem), dlatego sugeruje on \u201creasearch\u201d nad odpowiednimi API w ramach Javy, kt\u00f3re mog\u0142yby sobie ze wspomnianymi problemami poradzi\u0107 i umo\u017cliwi\u0107 wielo\u015b\u0107 opcji, je\u015bli chodzi o miejsce, gdzie wspomniany stan mo\u017cna by by\u0142o \u201czrzuca\u0107\u201d. Projekt ma by\u0107 szczeg\u00f3lnie istotny w \u015brodowiskach chmurowych, gdzie d\u0142ugi rozruch jest istotnym wyzwaniem.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/image-6.png\" sizes=\"(min-width: 720px) 720px\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/1_image-6.png 600w, https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/2_image-6.png 1000w, https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/image-6.png 1280w\" alt=\"\" width=\"1280\" height=\"548\">&nbsp;\n\n<figcaption>Wprawdzie szybko pojawi\u0142y si\u0119 g\u0142osy, \u017ce inicjatywa przypomina nieco wprowadzony w JDK 13 Application Class Data Sharing, ale osobi\u015bcie lubi\u0119 wielotorowo\u015b\u0107, kt\u00f3r\u0105 ostatnimi czasy obserwuje w \u015bwiecie JVMa.<\/figcaption><\/figure>\nTo nie jedyna z nowo\u015bci - ot\u00f3\u017c <a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-July\/005846.html\">w ramach list mailingowych trwa r\u00f3wnie\u017c dyskusja nad wsparciem Waylanda<\/a>. Wayland to nast\u0119pca legendarnego X11, czyli \u201cserwera wy\u015bwietlania\u201d (nienawidz\u0119 t\u0142umaczenia tej nazwy) w ramach Linuxa. Do tej pory aplikacje javowe uruchamia\u0142y si\u0119 w nim poprzez warstw\u0119 kompatybilno\u015bci z X11, ale wida\u0107, \u017ce tw\u00f3rcy JDK powoli przymierzaj\u0105 si\u0119 do wsparcia natywnego. Mamy wi\u0119c do czynienia z dalszymi krokami w stron\u0119 modernizacji ca\u0142ego okienkowego \u201cstacku\u201d JVM, \u015bwietnie wpisuj\u0105cymi si\u0119 w dzia\u0142ania JetBrains w ramach JEP 382 \u2013 Project Lanai (czyli obs\u0142ugi Matal API na MacOS, kt\u00f3ra jak pisali\u015bmy, trafi do Javy 17) czy inwestycjami w desktopowego Jetpacka.\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-July\/005862.html\">Call for Discussion: New Project: CRaC<\/a><\/li>\n \t<li><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-July\/005846.html\">Call for Discussion : New Project to support the Wayland display server on Linux<\/a><\/li>\n<\/ul>\n<h2 id=\"3-mo%C5%BCe-troch%C4%99-advent-of-code-z-kotlinem-w-po%C5%82owie-lipcu-%F0%9F%8E%85\">3. Mo\u017ce troch\u0119 Advent of Code z Kotlinem w po\u0142owie lipcu?<\/h2>\nMo\u017ce nie jest to wielki news, ale i tak postanowili\u015bmy si\u0119 podzieli\u0107 faktem, \u017ce JetBrains na oficjaln\nym kotlinowym blogu postanowi\u0142o rozpocz\u0105\u0107 seri\u0119 zada\u0144 z Advent of Code w Kotlinie. &nbsp;Na razie jest to pierwsze zadanie, ale autorka ju\u017c zapowiedzia\u0142a ch\u0119\u0107 kontynuacji ca\u0142ej serii, wi\u0119c mamy nadzieje, \u017ce nied\u0142ugo pojawi\u0105 si\u0119 kolejne posty.\n\nAle czym ten ca\u0142y Advent of Code jest? Chyba nie ma lepszej osoby \u017ceby wyja\u015bni\u0107, ni\u017c autor samego przedsi\u0119wzi\u0119cia...\n\nhttps:\/\/www.youtube.com\/watch?v=CFWuwNDOnIo\n\n\u2026 przy czym rozumiemy, \u017ce nie ka\u017cdemu chce si\u0119 s\u0142ucha\u0107 40 minut prezentacji wi\u0119c TLDR: Jest to coroczny konkurs programistyczny, polegaj\u0105cy na rozwi\u0105zywaniu przez 24 dni zada\u0144 o coraz wy\u017cszym poziomie trudno\u015bci . O ile wiele os\u00f3b traktuje go mocno ambicjonalnie, to dla nas zawsze by\u0142 okazj\u0105 do przed\u015bwi\u0105tecznego rozruszania m\u00f3zgownicy (tak, prywatnie bawimy si\u0119 si\u0119 ju\u017c kt\u00f3ry\u015b rok z rz\u0119du). Bo pami\u0119tajcie, Advent Of Code to przede wszystkim jest dobra zabawa\n\nInicjatywa JetBrains z tego powodu strasznie nam si\u0119 podoba. Nauka przez zabaw\u0119 to zwykle najlepsza z metod, a mo\u017cliwo\u015b\u0107 zobaczenia, jak poszczeg\u00f3lne zadania rozwi\u0105za\u0107 w najbardziej idiomatyczny spos\u00f3b jest czym\u015b bardzo kusz\u0105cym. Nawet dla os\u00f3b (tak jak pisz\u0105cy te s\u0142owa), kt\u00f3re w\u0142a\u015bnie w Kotlinie zrealizowa\u0142y ca\u0142\u0105 poprzedni\u0105 edycj\u0119 - zawsze mo\u017cna sobie potraktowa\u0107 blog posty od JetBrains jako swoiste Kata i skorzysta\u0107 na braku goni\u0105cego limitu czasowego (a ten w Advent of Code czasem daje w ko\u015b\u0107).\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/image-5.png\" alt=\"\" width=\"404\" height=\"564\"><\/figure>\nDodatkowo, chcieliby\u015bmy przypomnie\u0107 wszystkim, kt\u00f3rzy do tej pory nie bawili si\u0119 w Advent of Code, \u017ce w zesz\u0142ym roku Vived <a href=\"https:\/\/adventofcode.com\/2020\/leaderboard\/private\/view\/451950\">uda\u0142o si\u0119 zebra\u0107 grup\u0119 ponad 80 os\u00f3b<\/a>, z kt\u00f3rymi wsp\u00f3lnie \u015bcigali\u015bmy si\u0119 na rozwi\u0105zywanie zada\u0144. Grup\u0119 chcemy powiedzie\u0107 do\u015b\u0107 mocarn\u0105, gdy\u017c prawie dwudziestu spo\u015br\u00f3d &nbsp;uczestnik\u00f3w wykona\u0142o wszystkie dwadzie\u015bcia zada\u0144 na obie gwiazdki. Ju\u017c w tej chwili chcieli\u015bmy za\u015b zaprosi\u0107 wszystkich do wsp\u00f3lnej zabawy w grudniu - obiecujemy by\u0107 z Wami od pierwszego dnia, mo\u017ce nawet przygotujemy w tym roku jakie\u015b nagrody.\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-2\">\u0179r\u00f3d\u0142a<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/07\/advent-of-code-in-idiomatic-kotlin\/?utm_source=pocket_mylist\">Solving Advent of Code Puzzles in Idiomatic Kotlin<\/a><\/li>\n \t<li><a href=\"https:\/\/www.youtube.com\/watch?v=CFWuwNDOnIo\">Advent of Code: Behind the Scenes (Programming Puzzles)<\/a><\/li>\n<\/ul>\n\n<hr>\n\n\u200cPami\u0119tajcie, \u017ceby spr\u00f3bowa\u0107 <a href=\"https:\/\/blog.vived.io\/keep-up-czyli-o-tym-jak-byc-na-biezaco-bez-uczucia-przytloczenia-contentem\/\"><strong>Vived<\/strong><\/a>, je\u015bli chcesz otrzymywa\u0107 tego typu tre\u015bci spersonalizowane pod Ciebie!\n<ul>\n \t<li><a href=\"https:\/\/apple.co\/3fB8Kcf\" rel=\"nofollow noopener\">App Store<\/a><\/li>\n \t<li><a href=\"https:\/\/bit.ly\/3m421dx\" rel=\"nofollow noopener\">Play Store<\/a><\/li>\n \t<li><a href=\"http:\/\/bit.ly\/2M7CeUN\">Wersja PWA<\/a><\/li>\n<\/ul>"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10109","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=10109"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10109\/revisions"}],"predecessor-version":[{"id":10564,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10109\/revisions\/10564"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}