{"id":18001,"date":"2024-04-18T11:42:28","date_gmt":"2024-04-18T09:42:28","guid":{"rendered":"https:\/\/vived.io\/?p=18001"},"modified":"2024-04-22T08:48:37","modified_gmt":"2024-04-22T06:48:37","slug":"nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/","title":{"rendered":"Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu &#8211; JVM Weekly vol. 171"},"content":{"rendered":"\n<h2 id=\"1-jak-netflix-uzywa-javy-w-2024\" data-num=1>1. Jak Netflix u\u017cywa Javy w 2024?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Untitled-21-1024x585.jpg\" alt=\"\" class=\"wp-image-18006\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Untitled-21-1024x585.jpg 1024w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Untitled-21-300x171.jpg 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Untitled-21-768x439.jpg 768w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Untitled-21-1536x878.jpg 1536w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Untitled-21.jpg 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Kojarzycie ByteByteGo? Pewnie tak, bo najpopularniejszy substackowy newsletter na \u015bwiecie, omawiaj\u0105cy tematy i trendy w projektowaniu system\u00f3w na du\u017c\u0105 skal\u0119, autorstwa tw\u00f3rc\u00f3w bestsellerowej serii ksi\u0105\u017cek &#8222;System Design Interview&#8221;. Osobi\u015bcie jestem wielkim fanem, nawet nie tylko ze wzgl\u0119du na wiedz\u0119, kt\u00f3ra jest tam prezentowana (bo pokrywane s\u0105 jednak w wi\u0119kszo\u015bci dosy\u0107 &#8222;laboratoryjne&#8221; przypadki architektur), ale ze wzgl\u0119du na form\u0119. Ca\u0142o\u015b\u0107 jest bardzo przyst\u0119pna i mocno wizualna, w zwi\u0105zku z tym nawet w zagadnieniach, w kt\u00f3rych w miar\u0119 si\u0119 orientuje lubi\u0119 zajrze\u0107, co zosta\u0142o przez nich opisane. Dlatego kiedy opublikowali tekst <a href=\"https:\/\/blog.bytebytego.com\/p\/evolution-of-java-usage-at-netflix\">Evolution of Java Usage at Netflix<\/a> stwierdzi\u0142em, \u017ce jest to idealna wr\u0119cz okazja, \u017ceby si\u0119 ByteByteGo z Wami podzieli\u0107.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"843\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-7.png\" alt=\"\" class=\"wp-image-18002\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-7.png 500w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-7-178x300.png 178w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><figcaption class=\"wp-element-caption\">Cho\u0107 robi\u0105c to czuje si\u0119 malutki jak na powy\u017cszym obrazku jednak.<\/figcaption><\/figure><\/div>\n\n\n<p>O samym Netflixie zawsze kr\u0105\u017cy\u0142o wiele mit\u00f3w, bo pewnie w formatywnym dla wielu z nas okresie to w\u0142a\u015bnie z ich rozwi\u0105za\u0144, takich jak RxJava, Nebula czy Hystrix, uczyli\u015bmy si\u0119 (w tym na b\u0142\u0119dach) jak podchodzi\u0107 do architektury Microserwisowej, sam pami\u0119tam moj\u0105 fascynacj\u0119 nimi gdzie\u015b w okolicach 2016 roku. Jednak ju\u017c w Maju 2022 Paul Bekker t\u0142umaczy\u0142 na Twitterze, \u017ce tak naprawd\u0119 RxJava to ju\u017c, co opisywa\u0142em w <a href=\"https:\/\/vived.substack.com\/p\/jvm-weekly-4-kotlin-17-netflix-doesnt\">JVM Weekly #4<\/a> (ale ten czas leci). Ten sam Paul w zesz\u0142ym roku na konferencjach Spring One i Infoq opowiada\u0142 o ewolucje nie tylko netflixowego podej\u015bcia do Javy, ale te\u017c architektury &#8211; sam\u0105 prezentacje mo\u017cecie zobaczy\u0107 tutaj:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"embed-responsive embed-responsive-16by9\"><iframe loading=\"lazy\" title=\"The Golden Path to SpringOne: How Netflix Really Uses Java Today with Paul Bakker\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/5dpLVvRpPPs?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p>Wracaj\u0105c do <a href=\"https:\/\/blog.bytebytego.com\/p\/evolution-of-java-usage-at-netflix\">publikacji ByteByteGo<\/a>, ta wyra\u017anie bazuje na rzeczonej prezentacji Paula, omawiaj\u0105c ewolucj\u0119 podej\u015bcia do Javy w Netflix i prezentuj\u0105c, jak dynamicznie zmienia\u0142a si\u0119 architektura firmy, aby sprosta\u0107 rosn\u0105cym wymaganiom technologicznym i operacyjnym. Netflix dalej zdecydowanie stawia na Java, jednak z biegiem lat, stack Java w Netflix przeszed\u0142 znacz\u0105ce zmiany, odchodz\u0105c od monolitycznej architektury w kierunku bardziej zdecentralizowanej i elastycznej architektury mikroserwisowej. Artyku\u0142 opisuje przej\u015bcie od u\u017cycia skrypt\u00f3w Groovy w ramach wzorca backend dla frontendu (BFF) &#8211; dalej pami\u0119tam czasy, gdy Netflix promowa\u0142 <a href=\"https:\/\/netflix.github.io\/falcor\/\">w\u0142asne rozwi\u0105zanie Falcor<\/a> &#8211; do wprowadzenia GraphQL Federation, co stanowi\u0142o odpowied\u017a na potrzeb\u0119 bardziej efektywnego zarz\u0105dzania zapytaniami i danymi. Ta zmiana pozwoli\u0142a na znaczne zmniejszenie redundancji API i nadmiarowego pobierania danych, co jest kluczowe przy obs\u0142udze r\u00f3\u017cnorodnych urz\u0105dze\u0144 ko\u0144cowych klient\u00f3w (a Netflix ma tych klient\u00f3w zatrz\u0119sienie).<\/p>\n\n\n\n<p>Ponadto, artyku\u0142 porusza kwesti\u0119 ewolucji wersji Java w Netflix, przechodz\u0105c od Java 8 do nowszych wersji jak Java 17 i 21, co przyczyni\u0142o si\u0119 do lepszego wykorzystania procesora i redukcji koszt\u00f3w operacyjnych &#8211; og\u00f3lnie warto. Firma te\u017c wystandaryzowa\u0142a si\u0119 w ko\u0142o Spring Boota, przy r\u00f3wnoczesnym wykorzystania zalet szerokiej spo\u0142eczno\u015bci open-source. Og\u00f3lnie je\u015bli lubicie podejmowa\u0107 decyzje technologiczne na bazie tego, co BigTechy pokazuj\u0105 na konferencjach (nie polecam) &#8211; ca\u0142o\u015b\u0107 jest naprawd\u0119 ciekawa. Nawet je\u015bli zdroworozs\u0105dkowo nie u\u017cyjecie zawartych w tek\u015bcie lekcji, to ca\u0142o\u015b\u0107 poka\u017ce jak taka ewolucja przebiega w du\u017cej organizacji.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"192\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/giphy.gif\" alt=\"\" class=\"wp-image-18008\" style=\"width:606px;height:auto\"\/><figcaption class=\"wp-element-caption\">A pozostaj\u0105c w temacie rzeczy, kt\u00f3re Netflix porzuca &#8211; przyznam szczerze, \u017ce korci mnie zrobienie przegl\u0105du tego, co og\u00f3lnie dzieje si\u0119 w projektach RX-owych po tym, jak sza\u0142 min\u0105\u0142. Mo\u017ce w jakiej\u015b wolnej chwili pope\u0142ni\u0119 tak\u0105 specjaln\u0105 edycj\u0119.<\/figcaption><\/figure><\/div>\n\n\n<h2 id=\"2-nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu\" data-num=2>2. Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-8-1024x585.png\" alt=\"\" class=\"wp-image-18011\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-8-1024x585.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-8-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-8-768x439.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-8-1536x878.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-8.png 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Tytu\u0142 obecnej sekcji (i ca\u0142ej edycji) mo\u017ce jest odrobink\u0119 naci\u0105gni\u0119ty, ale nie mog\u0142em sobie darowa\u0107. Wychowa\u0142em si\u0119 w przekonaniu, \u017ce Java nie nadaje si\u0119 w \u017cadnym razi do gier. Dlatego uwielbiam ka\u017cd\u0105 sytuacj\u0119, gdy mog\u0119 u\u015bwiadomi\u0107 wszystkim, \u017ce Minecraft, pozostaj\u0105cy jedn\u0105 z najpopularniejszych gier na \u015bwiecie dzia\u0142a na JVM. Dumny ekosystem dba o sw\u00f3j klejnot koronny, a ten mu si\u0119 odwdzi\u0119cza jak mo\u017ce. Jednak zanim dojdziemy do Minecrafta, w tej sekcji po\u015bwi\u0119conej nowym projektom zajmiemy si\u0119 powa\u017cnym tematem, dla powa\u017cnych ludzi &#8211; bezpiecze\u0144stwem.<\/p>\n\n\n\n<p>Troch\u0119 kontekstu: Java Cryptography Architecture (JCA) i Java Cryptography Extension (JCE) s\u0105 dwoma g\u0142\u00f3wnymi bibliotekami kryptograficznymi w Javie, kt\u00f3re wsp\u00f3\u0142pracuj\u0105 w celu zapewnienia szerokiego zakresu funkcji kryptograficznych. JCA, b\u0119d\u0105ca cz\u0119\u015bci\u0105 Cor\u0119 API Javy, oferuje podstawowe funkcjonalno\u015bci kryptograficzne, natomiast JCE rozszerza te mo\u017cliwo\u015bci, wprowadzaj\u0105c zaawansowane operacje kryptograficzne. Ta ostatnia biblioteka by\u0142y kiedy\u015b przedmiotem ameryka\u0144skich regulacji eksportowych, nie mog\u0142a wi\u0119c sta\u0107 si\u0119 oficjaln\u0105 cz\u0119\u015bci\u0105 JDK, ale z czasem ograniczenia te zosta\u0142y z\u0142agodzone, co pozwoli\u0142o na ich wsp\u00f3ln\u0105 integracj\u0119 z Java SE. Z tego wzgl\u0119du rozgraniczenie mi\u0119dzy nimi nie jest ju\u017c tak wyra\u017ane, przysz\u0142e zmiany w regulacjach mog\u0105 ponownie wp\u0142yn\u0105\u0107 na ich dost\u0119pno\u015b\u0107 i funkcjonalno\u015b\u0107 &#8211; a \u017ce \u017cyjemy w dosy\u0107 niespokojnych czasach, to ja bym traktowa\u0142 to ryzyko jako niezerowe.<\/p>\n\n\n\n<p>Przejd\u017amy jednak do g\u0142\u00f3wnej zapowiedzi. <a href=\"https:\/\/mail.openjdk.org\/pipermail\/announce\/2024-March\/000347.html\">Projekt Brisbane<\/a>, bo o nim mowa, to inicjatywa maj\u0105ca na celu stworzenia implementacji JCE zgodnego ze standardem FIPS 140, przeznaczonego specjalnie dla regulowanych \u015brodowisk w Stanach Zjednoczonych. Projekt planuje wykorzysta\u0107 Foreign Function &amp; Memory API do stworzenia rappera nad bibliotek\u0105 OpenSSL, kt\u00f3ra zosta\u0142a zweryfikowana zgodnie z norm\u0105 FIPS 140, zapewniaj\u0105c jej poprawne u\u017cycie. Brisbane zamierza w ten spos\u00f3b dostarczy\u0107 rozwi\u0105zanie kryptograficzne spe\u0142niaj\u0105ce rygorystyczne wymagania bezpiecze\u0144stwa, jednocze\u015bnie integruj\u0105c si\u0119 p\u0142ynnie z aplikacjami JVM-owymi.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"519\" height=\"522\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-9.png\" alt=\"\" class=\"wp-image-18013\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-9.png 519w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-9-298x300.png 298w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-9-150x150.png 150w\" sizes=\"auto, (max-width: 519px) 100vw, 519px\" \/><figcaption class=\"wp-element-caption\">A z Pythona si\u0119 \u015bmiejemy.<\/figcaption><\/figure><\/div>\n\n\n<p>FIPS 140 (Federal Information Processing Standard Publication 140) to standard rz\u0105dowy USA, kt\u00f3ry ustanawia wymagania bezpiecze\u0144stwa dla modu\u0142\u00f3w kryptograficznych u\u017cywanych w federalnych systemach informatycznych. Dzi\u0119ki zgodno\u015bci ze standardami FIPS 140, OpendJDK (bo kompatybilno\u015b\u0107 z FIPS 140 by\u0142a ju\u017c dost\u0119pna wcze\u015bniej min. w ramach Oracle Cloud) b\u0119dzie mog\u0142a by\u0107 u\u017cywana w \u015brodowiskach wymagaj\u0105cych najwy\u017cszego poziomu ochrony danych, takich jak wra\u017cliwe operacje sektor\u00f3w rz\u0105dowego i finansowego.<\/p>\n\n\n\n<p>No dobra, ale teraz pora przej\u015b\u0107 do wyja\u015bnienia, o co chodzi mi z tym przytoczonym wcze\u015bniej Minecraftem. <a href=\"https:\/\/openjdk.org\/projects\/wakefield\/\">Projekt Wakefield<\/a> to inicjatywa maj\u0105ca na celu integracj\u0119 obs\u0142ugi linuxowego serwera wy\u015bwietlania Wayland w JDK. Wayland ma zast\u0105pi\u0107 przestarza\u0142y protok\u00f3\u0142 serwera wy\u015bwietlania pulpitu X11, opracowany w latach 80., nowoczesnym podej\u015bciem umo\u017cliwiaj\u0105cym renderowanie po stronie klienta oraz systemem okien tak zwanego pulpitu kompozytowego, staj\u0105c si\u0119 domy\u015bln\u0105 technologi\u0105 serwera wy\u015bwietlania na licznych dystrybucjach Linuxa, takich jak RHEL 8, OL 8 i Ubuntu 21.04. Projekt Wakefield ma dwa g\u0142\u00f3wne cele: kr\u00f3tko- do \u015brednioterminowe rozwi\u0105zanie dla JDK dzia\u0142aj\u0105cego na Waylandzie w trybie kompatybilno\u015bci X11 oraz \u015brednio- do d\u0142ugoterminowe rozwi\u0105zanie, polegaj\u0105ce na uruchomieniu JDK jako natywnego klienta Wayland. Drugi cel jest g\u0142\u00f3wnym celem projektu, jednak jego realizacja jest znacznie bardziej skomplikowana i zajmie wiele lat, dlatego niezb\u0119dne jest r\u00f3wnie\u017c osi\u0105gni\u0119cie kr\u00f3tkoterminowego celu.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"embed-responsive embed-responsive-16by9\"><iframe loading=\"lazy\" title=\"OpenJDK Project Wakefield - The Wayland Desktop for JDK on Linux\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/5gfZDx6IOD4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p>Znaczenie Wayland dla Javy, szczeg\u00f3lnie w kontek\u015bcie gier (w tym Minecrafcie), bo te wymagaj\u0105 solidnej wydajno\u015bci graficznej i kompatybilno\u015bci systemowej. Minecraft, wraz z innymi grami opartymi na Javie, opiera si\u0119 na stabilnej i wydajnej architekturze serwera wy\u015bwietlania, aby zapewni\u0107 odpowiedni\u0105 p\u0142ynno\u015b\u0107. Przenosz\u0105c Jav\u0119 do natywnego \u015brodowiska Wayland, deweloperzy mog\u0105 wykorzysta\u0107 lepsze mo\u017cliwo\u015bci Waylanda w zakresie obs\u0142ugi renderowania po stronie klienta i kompozycji, co potencjalnie zwi\u0119ksza wydajno\u015b\u0107 graficzn\u0105 na systemach Linux, co zapewni zapewnienia, \u017ce popularne aplikacje Javy, takie jak Minecraft, nadal b\u0119d\u0105 dzia\u0142a\u0142y optymalnie na tych platformach, bez polegania na przestarza\u0142ych lub mniej wydajnych protoko\u0142ach oraz warstwach kompatybilno\u015bci.<\/p>\n\n\n\n<p>I Minecraft si\u0119 odwdzi\u0119cza. Wprowadzenie najnowszego snapshotu Minecrafta, oznaczonego numerem 24W14A, wprowadza istotne zmiany techniczne, kt\u00f3re mog\u0105 znacz\u0105co przyczyni\u0107 si\u0119 do dalszej popularno\u015bci nowych wyda\u0144 JDK. Od nowej aktualizacji, Minecraft (w swojej edycji Javowej) wymaga bowiem zainstalowania Java 21, korzystaj\u0105c z dystrybucji Java od Microsoftu (czy kto\u015b si\u0119 dziwi?). Dodatkowo, gra teraz obs\u0142uguje tylko 64-bitowe systemy operacyjne (bo i dla przypomnienia &#8211; JDK te\u017c nied\u0142ugo <a href=\"https:\/\/openjdk.org\/jeps\/449\">pozb\u0119dzie si\u0119 trybu 32-bitowego<\/a>).<\/p>\n\n\n\n<p>Mo\u017ce si\u0119 okaza\u0107, \u017ce to jedno z najwi\u0119kszych pojedynczych wydarze\u0144 promuj\u0105cych adopcje nowego LTSa.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"694\" height=\"652\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-14.png\" alt=\"\" class=\"wp-image-18023\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-14.png 694w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-14-300x282.png 300w\" sizes=\"auto, (max-width: 694px) 100vw, 694px\" \/><figcaption class=\"wp-element-caption\">Mimo, \u017ce sam fanem Minecrafta nie jestem (czekam a\u017c mi c\u00f3rka podro\u015bnie i b\u0119d\u0119 gra\u0142 razem z ni\u0105), to \u015bwi\u0119ta wojna o to, kt\u00f3ra wersja Minecrafta jest najlepsza zawsze mnie bawi\u0142a <\/figcaption><\/figure><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"3-release-radar\" data-num=3>3. Release Radar<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-17-1024x585.png\" alt=\"\" class=\"wp-image-18034\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-17-1024x585.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-17-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-17-768x439.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-17-1536x878.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-17.png 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/devblogs.microsoft.com\/java\/java-on-azure-tooling-update-march-2024\/\">6-Month Roadmap for Java on Azure Tools<\/a><\/h3>\n\n\n\n<p>Jako, \u017ce by\u0142o o Microsofcie, to zaczniemy sobie od publikacji p\u00f3\u0142rocznej roadmapy dla Java on Azure Tooling, przedstawioej przez Jialuo Gana. Ca\u0142o\u015b\u0107 daje nam wgl\u0105d w plany Microsoftu i tylko podkre\u015bla, jak strategicznym obszarem sta\u0142a si\u0119 dla firmy Java.<\/p>\n\n\n\n<p>Istotne aktualizacje obejmuj\u0105 integracj\u0119 z najnowszymi us\u0142ugami Azure, takimi jak Azure Functions, Azure Web App i Azure Cosmos DB, z konkretnymi ulepszeniami takimi jak wsparcie Flex Consumption oraz aktualizacje wersji \u015brodowiska wykonawczego Java. Dodatkowo, k\u0142adziony jest du\u017cy nacisk na budowanie aplikacji natywnych dla chmury za pomoc\u0105 us\u0142ug konteneryzowanych, takich jak Azure Container Apps (ACA) i Azure Kubernetes Service (AKS).Planowane s\u0105 dalsze ulepszenia, maj\u0105ce na celu pomoc programistom w tworzeniu inteligentnych aplikacji przy u\u017cyciu us\u0142ugi Azure OpenAI, z wsparciem dla nowych modeli takich jak Completions i DALL-E (tutaj chyba brak zaskocze\u0144).<\/p>\n\n\n\n<p>Trwaj\u0105 r\u00f3wnie\u017c prace nad integracj\u0105 Azure SDK Build Tool z zestawem narz\u0119dzi Azure i wtyczk\u0105 Maven, maj\u0105ce na celu pomoc programistom w zapewnieniu poprawnego u\u017cycia Azure SDK i zarz\u0105dzaniu zale\u017cno\u015bciami, co nie zawsze by\u0142o takie oczywiste. W tym samym celu usprawniono r\u00f3wnie\u017c dost\u0119pne mechanizmy autoryzacji. Obok ulepsze\u0144 technicznych, zesp\u00f3\u0142 Azure zobowi\u0105za\u0142 si\u0119 do aktualizacji dokumentacji i zmniejszenia liczby b\u0142\u0119d\u00f3w.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1020\" height=\"765\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-15.png\" alt=\"\" class=\"wp-image-18026\" style=\"width:597px;height:auto\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-15.png 1020w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-15-300x225.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-15-768x576.png 768w\" sizes=\"auto, (max-width: 1020px) 100vw, 1020px\" \/><figcaption class=\"wp-element-caption\">Nie ka\u017cdy bohater nosi peleryn\u0119.<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/devblogs.microsoft.com\/java\/java-on-visual-studio-code-update-march-2024\/\">Visual Studio Code March Update<\/a><\/h3>\n\n\n\n<p>W ostatniej edycji do\u015b\u0107 szeroko rozpisywa\u0142em si\u0119 o tym, jak u\u017cytecznym narz\u0119dziem dla programist\u00f3w Java sta\u0142o si\u0119 Visual Studio Cod\u0119, przygl\u0105dnijmy si\u0119 wi\u0119c nowo\u015bciom, jakie jego tw\u00f3rcy maj\u0105 dla programist\u00f3w Javy.<\/p>\n\n\n\n<p>W marcowej aktualizacji Visual Studio Code dla Java wprowadzono szereg nowych funkcji dla Spring Boot. Znacz\u0105c\u0105 nowo\u015bci\u0105 jest opcja podgl\u0105du refaktoryzacji dost\u0119pna podczas aktualizacji wersji, kt\u00f3ra pozwala na automatyczne uaktualnienie projekt\u00f3w do najnowszej wersji Spring Boot z mo\u017cliwo\u015bci\u0105 podgl\u0105du zmian przed ich zastosowaniem. Dodano tak\u017ce mo\u017cliwo\u015b\u0107 bezpo\u015bredniego dodawania starter\u00f3w Spring Boot poprzez plik pom.xml, co u\u0142atwia zarz\u0105dzanie zale\u017cno\u015bciami. Ponadto, u\u017cytkownicy mog\u0105 teraz na bie\u017c\u0105co zmienia\u0107 poziomy logowania w dzia\u0142aj\u0105cej aplikacji dzi\u0119ki nowej komendzie w palecie narz\u0119dzi, co jest skuteczne tylko podczas bie\u017c\u0105cej sesji uruchomieniowej.<\/p>\n\n\n\n<p>Nowo\u015bci\u0105 w stabilnej wersji Visual Studio Code jest r\u00f3wnie\u017c mo\u017cliwo\u015b\u0107 przeprowadzenia test\u00f3w z pokryciem &#8211; wcze\u015bniej by\u0142o to dost\u0119pne tylko w wersji Insider. Funkcja ta, wspierana przez bibliotek\u0119 Jacoco i najnowsze API do pokrycia test\u00f3w, pozwala na szczeg\u00f3\u0142ow\u0105 analiz\u0119 pokrycia kodu bezpo\u015brednio w edytorze. Aby korzysta\u0107 z tych wszystkich nowo\u015bci, nale\u017cy zainstalowa\u0107 najnowsz\u0105 wersj\u0119 Extension Pack for Java, a cz\u0119\u015b\u0107 z powy\u017cszych nowo\u015bci dotycz\u0105cych Springa wymaga zainstalowanie wyspecjalizowanej dla niego paczuszki.<\/p>\n\n\n\n<p>A jak ju\u017c o IDE mowa&#8230;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/04\/intellij-idea-2024-1\/\">Intellij Idea 2024.1<\/a><\/h3>\n\n\n\n<p>Zwykle IntelliJ IDEA dostaje w tym przegl\u0105dzie swoj\u0105 w\u0142asn\u0105 sekcje, ale jako, \u017ce o niekt\u00f3rych zmianach wspomina\u0142em ju\u017c przy okazji poprzednich przegl\u0105d\u00f3w, dzisiaj b\u0119dzie nieco kr\u00f3cej, co nie znaczy \u017ce nie ma nic ciekawego do opisania. Nowa wersja \u015brodowisko IDE w pe\u0142ni wspiera bowiem najnowsze funkcje Javy 22, <a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/03\/java-22-and-intellij-idea\/\">co opisane zosta\u0142o w ca\u0142ym po\u015bwi\u0119conym temu po\u015bcie<\/a>. Inne usprawnienia specyficzne dla Javy obejmuj\u0105 wprowadzenie wstrzykiwania j\u0119zyk\u00f3w do szablon\u00f3w string\u00f3w, nowe inspekcje i szybkie poprawki. Dodatkowo, poprawiono UX pracy z bibliotekami wielowersyjnymi JAR.<\/p>\n\n\n\n<p>Dla programist\u00f3w Kotlin i Scala, IntelliJ IDEA 2024.1 wprowadza znacz\u0105ce ulepszenia. \u015arodowisko IDE zawiera nowy tryb Kotlin K2, wykorzystuj\u0105cy wbudowany kompilator Kotlin K2 do poprawy analizy kodu Kotlin, oraz domy\u015blnie stosuje oficjalny przewodnik stylu Kotlin jako opcj\u0119 formatowania. Dla Scala, wsparcie dla Scala 3 zosta\u0142o ulepszone, w tym lepsze rozpoznawanie mieszanych modyfikator\u00f3w, poprawiona obs\u0142uga wci\u0119\u0107 i ulepszona obs\u0142uga debuggera. Dodatkowo, IntelliJ IDEA ulepszy\u0142o obs\u0142ug\u0119 statycznych import\u00f3w w Kotlinie i doda\u0142o nowe mo\u017cliwo\u015bci pracy ze Scala, takie jak ulepszone Scaladoc i wyskakuj\u0105ce okienka z dokumentacj\u0105.<\/p>\n\n\n\n<p>Poza funkcjami specyficznymi dla j\u0119zyka, IntelliJ IDEA Ultimate 2024.1 oferuje szereg aktualizacji maj\u0105cych na celu popraw\u0119 og\u00f3lnego produktywno\u015bci u\u017cytkownika. IDE usprawni\u0142o klienta HTTP, integruje wsparcie dla OpenRewrite (ostatnio o tym projekcie <a href=\"https:\/\/airhacks.fm\/#episode_290\">Adam Bien w swoim podca\u015bcie rozmawia\u0142 z Jonathanem Schneiderem<\/a>, polecam) do refaktoryzacji oraz wprowadza aktualizacje wsparcia dla Terraform. Narz\u0119dzia obs\u0142ugi baz danych r\u00f3wnie\u017c zosta\u0142y znacznie ulepszone o takie opcje jak filtrowanie lokalne w edytorze danych, usprawnione wykonanie zapyta\u0144 i ulepszone wsparcie dla modu\u0142\u00f3w Redis. Ponadto, IntelliJ wprowadzi\u0142o ulepszenia w systemach kontroli wersji z nowymi trybami przegl\u0105du kodu dla GitHub i GitLab oraz szeregiem innych ulepsze\u0144 VCS.<\/p>\n\n\n\n<p>A jak ju\u017c wspomnieli\u015bmy K2&#8230;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/JetBrains\/kotlin\/releases\/tag\/v2.0.0-RC1\">Kotlin 2.0 RC<\/a><\/h3>\n\n\n\n<p>W Kotlin 2.0 w\u0142a\u015bnie wkroczy\u0142a w faz\u0119 Release Candidate, kt\u00f3rej to kolejne iteracje b\u0119d\u0105 stopniowo umo\u017cliwia\u0142y dost\u0119p do kolejnych funkcjonalno\u015bci. Daje Wam zna\u0107 g\u0142\u00f3wnie informacyjnie, ale wszystko wskazuje na to, \u017ce tw\u00f3rcy j\u0119zyka Kotlin szykuj\u0105 co\u015b wyj\u0105tkowego na zbli\u017caj\u0105c\u0105 si\u0119 KotlinConf 2024.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"480\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-11-1024x480.png\" alt=\"\" class=\"wp-image-18017\" style=\"width:773px;height:auto\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-11-1024x480.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-11-300x141.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-11-768x360.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-11-1536x720.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-11-2048x960.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Na co bardzo licz\u0119, bo na KotlinConf si\u0119 w tym roku wybieram. Spodziewajcie si\u0119 relacji, a bardzo ch\u0119tnie zbije te\u017c pi\u0105tk\u0119 z kim\u015b, kto te przegl\u0105y czyta.<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.i-programmer.info\/news\/80-java\/17099-eclipse-jkube-116-goes-ga.html\">JKube 1.16<\/a><\/h3>\n\n\n\n<p>JKube to narz\u0119dzie u\u0142atwiaj\u0105ce integracj\u0119 projekt\u00f3w Java z Kubernetes, automatyzuj\u0105ce proces tworzenia zar\u00f3wno plik\u00f3w Dockerfile, jak i generuj\u0105c potrzebne manifesty Kubernetes. Zintegrowane z Mavenem i Gradle, umo\u017cliwia \u0142atwe wdra\u017canie, zarz\u0105dzanie i debugowanie aplikacji w \u015brodowisku Kubernetes. JKube eliminuje konieczno\u015b\u0107 r\u0119cznej konfiguracji Docker i Kubernetes, wspiera zaawansowane funkcje Kubernetes jak health checks czy autoscaling, ale te\u017c tworzenia obraz\u00f3w kontener\u00f3w za pomoc\u0105 strategii budowania Docker, S2I lub Jib.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"543\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-12-1024x543.png\" alt=\"\" class=\"wp-image-18019\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-12-1024x543.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-12-300x159.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-12-768x408.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-12.png 1268w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Je\u015bli nie znacie JIBa, to lata temu <a href=\"https:\/\/medium.com\/github-all-stars\/github-all-stars-4-googlecontainertools-jib-841196f759a3\">rozpracowywa\u0142em spos\u00f3b dzia\u0142ania pierwszej wersji projektu<\/a> &#8211; jak kiedy\u015b pojawi\u0105 mi si\u0119 wolne przebiegi to ch\u0119tnie bym do tego wr\u00f3ci\u0142).<\/figcaption><\/figure>\n\n\n\n<p>W najnowszej wersji JKube, 1.16, u\u017cytkownicy dostali now\u0105 strategi\u0119 budowania obraz\u00f3w kontener\u00f3w za pomoc\u0105 Cloud Native Buildpacks, co pozwala na przekszta\u0142cenie kodu \u017ar\u00f3d\u0142owego w gotowy do uruchomienia obraz aplikacji &#8211; ostatnio wspomina\u0142em o tym standardzie w kontek\u015bcie nowej wersji GraalVM. Dodano tak\u017ce now\u0105 funkcj\u0119 lintowania wykres\u00f3w Helm, kt\u00f3r\u0105 mo\u017cna uruchomi\u0107 za pomoc\u0105 prostego polecenia Maven lub Gradle, aby zbada\u0107 wygenerowane wykresy Helmowe pod k\u0105tem ewentualnych problem\u00f3w. Zaktualizowano r\u00f3wnie\u017c obrazy bazowe i wprowadzono rekomendowane etykiety Kubernetes, co razem z poprawkami b\u0142\u0119d\u00f3w i drobnymi usprawnieniami czyni z JKube jeszcze bardziej u\u017cyteczne narz\u0119dzie&#8230;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"674\" height=\"687\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-16.png\" alt=\"\" class=\"wp-image-18032\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-16.png 674w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-16-294x300.png 294w\" sizes=\"auto, (max-width: 674px) 100vw, 674px\" \/><figcaption class=\"wp-element-caption\">&#8230;zw\u0142aszcza dla os\u00f3b, kt\u00f3re nie chc\u0105 doktoryzowa\u0107 si\u0119 z coraz bardziej skomplikowanych nowych wersji Kubernetesa.<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.jobrunr.io\/en\/blog\/2024-04-09-jobrunr-and-jobrunr-pro-v7\/\">JobRunr<\/a><\/h3>\n\n\n\n<p>Prywata: Mimo, \u017ce Quartz pozostaje chyba najpopularniejszym rozwi\u0105zaniem do schedulingu zada\u0144 w tle, to moj\u0105 ulubion\u0105, rekomendowan\u0105 biblioteka pozostaje JobRunr, kt\u00f3ry \u0142atwo integruje si\u0119 z popularnymi frameworkami Java i obs\u0142uguje r\u00f3\u017cne metody zarz\u0105dzania trwa\u0142o\u015bci\u0105 zada\u0144. Dodatkowo, opr\u00f3cz mo\u017cliwo\u015b\u0107 zarz\u0105dzania bardziej skomplikowanymi harmonogramami i elastyczno\u015b\u0107, JobRunr zapewnia r\u00f3wnie\u017c szczeg\u00f3\u0142owe monitorowanie i zarz\u0105dzanie stanami zada\u0144 za pomoc\u0105 kompleksowego pulpitu nawigacyjnego, co przy bardziej skomplikowanych systemach jest naprawd\u0119 nieocenione. Dlatego te\u017c wydanie jego nowego wydania bardzo mnie prywatnie cieszy.<\/p>\n\n\n\n<p>Wersja 7.0.0 JobRunr i JobRunr Pro wprowadza szereg bardzo ciekawych nowo\u015bci. Zacznijmy od wersji bazowej, kt\u00f3ra przynosi wsparcie dla Wirtualnych W\u0105tk\u00f3w i konfigurowalne okresy zamykania serwera zada\u0144. Dodatkowe ulepszenia obejmuj\u0105 optymalizacj\u0119 przetwarzania zada\u0144 za pomoc\u0105 wielu w\u0105tk\u00f3w, lepsze zarz\u0105dzanie migracjami bazy danych oraz lepsze informowanie je\u015bli chodzi o w\u0105skich gard\u0142ach je\u015bli chodzi o wydajno\u015b. Aktualizacja poprawia r\u00f3wnie\u017c wydajno\u015b\u0107 systemu poprzez wprowadzenie identyfikator\u00f3w UUID opartych na czasie dla identyfikacji zada\u0144.<\/p>\n\n\n\n<p>Ciekawe rzeczy pojawiaj\u0105 si\u0119 te\u017c w wersji Pro celuj\u0105cej w firmy Enterprise, kt\u00f3ra wprowadza mas\u0119 nowo\u015bci do pulpitu nawigacyjnego &#8211; wsparcie OpenId, czy te\u017c opcje zgodno\u015bci z GDPR\/HIPAA umo\u017cliwiaj\u0105ce ukrywanie wra\u017cliwych danych zada\u0144. &#8222;Profesjonalni&#8221; u\u017cytkownicy otrzymali r\u00f3wnie\u017c zaawansowane mo\u017cliwo\u015bci ograniczania przepustowo\u015bci przetwarzania zada\u0144 oraz mo\u017cliwo\u015b\u0107 dostosowania tabel z zadaniami poprzez dodatkowe kolumny i konfigurowaln\u0105 widoczno\u015b\u0107, co przyda si\u0119 sytuacji, gdy chcemy nasz scheduling pointegrowa\u0107 z innymi systemami firmowymi.<\/p>\n\n\n\n<p>To nie wszystkie zmiany, bo tych jest naprawd\u0119 du\u017co. Je\u017celi wi\u0119c u\u017cywacie JobRunr, zach\u0119cam do przegl\u0105dni\u0119cia <a href=\"https:\/\/www.jobrunr.io\/en\/blog\/2024-04-09-jobrunr-and-jobrunr-pro-v7\/\">Release Notes<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-13-1024x575.png\" alt=\"\" class=\"wp-image-18021\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-13-1024x575.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-13-300x168.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-13-768x431.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-13.png 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>PS: Dzisiaj wysz\u0142o d\u0142ugo, ale to dlatego, \u017ce tydzie\u0144 temu by\u0142em na ostatniej prostej przygotowywania mojego nowego konferencyjnego talka <strong>Digging for Truffles &#8211; Unveiling the Mysteries of GraalVM&#8217;s Least Understood Component<\/strong> na potrzeby konferencji 4Developers. Je\u017celi b\u0119d\u0119 mia\u0142 go okazj\u0119 gdzie\u015b opowiada\u0107 za granic\u0105, na pewno b\u0119d\u0119 informowa\u0107<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tak to jest&#8230; zawsze jak nie ma mnie tydzie\u0144, to nazbiera si\u0119 temat\u00f3w i kolejna edycja jest baaardzo d\u0142uga. Mi\u0142ej lektury\/<\/p>\n","protected":false},"author":10,"featured_media":18037,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259],"tags":[],"class_list":["post-18001","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm-pl"],"acf":{"estimated_reading_time":"14","feature_image_blog":false,"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780-2.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>Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu - JVM Weekly vol. 171 - 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\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu - JVM Weekly vol. 171 - Vived\" \/>\n<meta property=\"og:description\" content=\"Tak to jest... zawsze jak nie ma mnie tydzie\u0144, to nazbiera si\u0119 temat\u00f3w i kolejna edycja jest baaardzo d\u0142uga. Mi\u0142ej lektury\/\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-18T09:42:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-22T06:48:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.vived.io\/wp-content\/uploads\/2024\/04\/Group-780-2-1024x560.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"560\" \/>\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\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu &#8211; JVM Weekly vol. 171\",\"datePublished\":\"2024-04-18T09:42:28+00:00\",\"dateModified\":\"2024-04-22T06:48:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/\"},\"wordCount\":2878,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780-2.png\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/\",\"url\":\"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/\",\"name\":\"Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu - JVM Weekly vol. 171 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780-2.png\",\"datePublished\":\"2024-04-18T09:42:28+00:00\",\"dateModified\":\"2024-04-22T06:48:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780-2.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780-2.png\",\"width\":1976,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu &#8211; JVM Weekly vol. 171\"}]},{\"@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":"Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu - JVM Weekly vol. 171 - 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\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/","og_locale":"pl_PL","og_type":"article","og_title":"Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu - JVM Weekly vol. 171 - Vived","og_description":"Tak to jest... zawsze jak nie ma mnie tydzie\u0144, to nazbiera si\u0119 temat\u00f3w i kolejna edycja jest baaardzo d\u0142uga. Mi\u0142ej lektury\/","og_url":"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/","og_site_name":"Vived","article_published_time":"2024-04-18T09:42:28+00:00","article_modified_time":"2024-04-22T06:48:37+00:00","og_image":[{"width":1024,"height":560,"url":"https:\/\/blog.vived.io\/wp-content\/uploads\/2024\/04\/Group-780-2-1024x560.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\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu &#8211; JVM Weekly vol. 171","datePublished":"2024-04-18T09:42:28+00:00","dateModified":"2024-04-22T06:48:37+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/"},"wordCount":2878,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780-2.png","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/","url":"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/","name":"Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu - JVM Weekly vol. 171 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780-2.png","datePublished":"2024-04-18T09:42:28+00:00","dateModified":"2024-04-22T06:48:37+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780-2.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780-2.png","width":1976,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/nowe-projekty-w-jdk-czyli-jak-minecraft-pcha-jave-do-przodu-jvm-weekly-vol-171\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu &#8211; JVM Weekly vol. 171"}]},{"@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 class=\"wp-block-heading\">1. Jak Netflix u\u017cywa Javy w 2024?<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">1. Jak Netflix u\u017cywa Javy w 2024?<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":18006,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Untitled-21-1024x585.jpg\" alt=\"\" class=\"wp-image-18006\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Untitled-21-1024x585.jpg\" alt=\"\" class=\"wp-image-18006\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Kojarzycie ByteByteGo? Pewnie tak, bo najpopularniejszy substackowy newsletter na \u015bwiecie, omawiaj\u0105cy tematy i trendy w projektowaniu system\u00f3w na du\u017c\u0105 skal\u0119, autorstwa tw\u00f3rc\u00f3w bestsellerowej serii ksi\u0105\u017cek \"System Design Interview\". Osobi\u015bcie jestem wielkim fanem, nawet nie tylko ze wzgl\u0119du na wiedz\u0119, kt\u00f3ra jest tam prezentowana (bo pokrywane s\u0105 jednak w wi\u0119kszo\u015bci dosy\u0107 \"laboratoryjne\" przypadki architektur), ale ze wzgl\u0119du na form\u0119. Ca\u0142o\u015b\u0107 jest bardzo przyst\u0119pna i mocno wizualna, w zwi\u0105zku z tym nawet w zagadnieniach, w kt\u00f3rych w miar\u0119 si\u0119 orientuje lubi\u0119 zajrze\u0107, co zosta\u0142o przez nich opisane. Dlatego kiedy opublikowali tekst <a href=\"https:\/\/blog.bytebytego.com\/p\/evolution-of-java-usage-at-netflix\">Evolution of Java Usage at Netflix<\/a> stwierdzi\u0142em, \u017ce jest to idealna wr\u0119cz okazja, \u017ceby si\u0119 ByteByteGo z Wami podzieli\u0107.<\/p>\n","innerContent":["\n<p>Kojarzycie ByteByteGo? Pewnie tak, bo najpopularniejszy substackowy newsletter na \u015bwiecie, omawiaj\u0105cy tematy i trendy w projektowaniu system\u00f3w na du\u017c\u0105 skal\u0119, autorstwa tw\u00f3rc\u00f3w bestsellerowej serii ksi\u0105\u017cek \"System Design Interview\". Osobi\u015bcie jestem wielkim fanem, nawet nie tylko ze wzgl\u0119du na wiedz\u0119, kt\u00f3ra jest tam prezentowana (bo pokrywane s\u0105 jednak w wi\u0119kszo\u015bci dosy\u0107 \"laboratoryjne\" przypadki architektur), ale ze wzgl\u0119du na form\u0119. Ca\u0142o\u015b\u0107 jest bardzo przyst\u0119pna i mocno wizualna, w zwi\u0105zku z tym nawet w zagadnieniach, w kt\u00f3rych w miar\u0119 si\u0119 orientuje lubi\u0119 zajrze\u0107, co zosta\u0142o przez nich opisane. Dlatego kiedy opublikowali tekst <a href=\"https:\/\/blog.bytebytego.com\/p\/evolution-of-java-usage-at-netflix\">Evolution of Java Usage at Netflix<\/a> stwierdzi\u0142em, \u017ce jest to idealna wr\u0119cz okazja, \u017ceby si\u0119 ByteByteGo z Wami podzieli\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":18002,"sizeSlug":"full","linkDestination":"none","align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-7.png\" alt=\"\" class=\"wp-image-18002\"\/><figcaption class=\"wp-element-caption\">Cho\u0107 robi\u0105c to czuje si\u0119 malutki jak na powy\u017cszym obrazku jednak.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-7.png\" alt=\"\" class=\"wp-image-18002\"\/><figcaption class=\"wp-element-caption\">Cho\u0107 robi\u0105c to czuje si\u0119 malutki jak na powy\u017cszym obrazku jednak.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>O samym Netflixie zawsze kr\u0105\u017cy\u0142o wiele mit\u00f3w, bo pewnie w formatywnym dla wielu z nas okresie to w\u0142a\u015bnie z ich rozwi\u0105za\u0144, takich jak RxJava, Nebula czy Hystrix, uczyli\u015bmy si\u0119 (w tym na b\u0142\u0119dach) jak podchodzi\u0107 do architektury Microserwisowej, sam pami\u0119tam moj\u0105 fascynacj\u0119 nimi gdzie\u015b w okolicach 2016 roku. Jednak ju\u017c w Maju 2022 Paul Bekker t\u0142umaczy\u0142 na Twitterze, \u017ce tak naprawd\u0119 RxJava to ju\u017c, co opisywa\u0142em w <a href=\"https:\/\/vived.substack.com\/p\/jvm-weekly-4-kotlin-17-netflix-doesnt\">JVM Weekly #4<\/a> (ale ten czas leci). Ten sam Paul w zesz\u0142ym roku na konferencjach Spring One i Infoq opowiada\u0142 o ewolucje nie tylko netflixowego podej\u015bcia do Javy, ale te\u017c architektury - sam\u0105 prezentacje mo\u017cecie zobaczy\u0107 tutaj:<\/p>\n","innerContent":["\n<p>O samym Netflixie zawsze kr\u0105\u017cy\u0142o wiele mit\u00f3w, bo pewnie w formatywnym dla wielu z nas okresie to w\u0142a\u015bnie z ich rozwi\u0105za\u0144, takich jak RxJava, Nebula czy Hystrix, uczyli\u015bmy si\u0119 (w tym na b\u0142\u0119dach) jak podchodzi\u0107 do architektury Microserwisowej, sam pami\u0119tam moj\u0105 fascynacj\u0119 nimi gdzie\u015b w okolicach 2016 roku. Jednak ju\u017c w Maju 2022 Paul Bekker t\u0142umaczy\u0142 na Twitterze, \u017ce tak naprawd\u0119 RxJava to ju\u017c, co opisywa\u0142em w <a href=\"https:\/\/vived.substack.com\/p\/jvm-weekly-4-kotlin-17-netflix-doesnt\">JVM Weekly #4<\/a> (ale ten czas leci). Ten sam Paul w zesz\u0142ym roku na konferencjach Spring One i Infoq opowiada\u0142 o ewolucje nie tylko netflixowego podej\u015bcia do Javy, ale te\u017c architektury - sam\u0105 prezentacje mo\u017cecie zobaczy\u0107 tutaj:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=5dpLVvRpPPs","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=5dpLVvRpPPs\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=5dpLVvRpPPs\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wracaj\u0105c do <a href=\"https:\/\/blog.bytebytego.com\/p\/evolution-of-java-usage-at-netflix\">publikacji ByteByteGo<\/a>, ta wyra\u017anie bazuje na rzeczonej prezentacji Paula, omawiaj\u0105c ewolucj\u0119 podej\u015bcia do Javy w Netflix i prezentuj\u0105c, jak dynamicznie zmienia\u0142a si\u0119 architektura firmy, aby sprosta\u0107 rosn\u0105cym wymaganiom technologicznym i operacyjnym. Netflix dalej zdecydowanie stawia na Java, jednak z biegiem lat, stack Java w Netflix przeszed\u0142 znacz\u0105ce zmiany, odchodz\u0105c od monolitycznej architektury w kierunku bardziej zdecentralizowanej i elastycznej architektury mikroserwisowej. Artyku\u0142 opisuje przej\u015bcie od u\u017cycia skrypt\u00f3w Groovy w ramach wzorca backend dla frontendu (BFF) - dalej pami\u0119tam czasy, gdy Netflix promowa\u0142 <a href=\"https:\/\/netflix.github.io\/falcor\/\">w\u0142asne rozwi\u0105zanie Falcor<\/a> - do wprowadzenia GraphQL Federation, co stanowi\u0142o odpowied\u017a na potrzeb\u0119 bardziej efektywnego zarz\u0105dzania zapytaniami i danymi. Ta zmiana pozwoli\u0142a na znaczne zmniejszenie redundancji API i nadmiarowego pobierania danych, co jest kluczowe przy obs\u0142udze r\u00f3\u017cnorodnych urz\u0105dze\u0144 ko\u0144cowych klient\u00f3w (a Netflix ma tych klient\u00f3w zatrz\u0119sienie).<\/p>\n","innerContent":["\n<p>Wracaj\u0105c do <a href=\"https:\/\/blog.bytebytego.com\/p\/evolution-of-java-usage-at-netflix\">publikacji ByteByteGo<\/a>, ta wyra\u017anie bazuje na rzeczonej prezentacji Paula, omawiaj\u0105c ewolucj\u0119 podej\u015bcia do Javy w Netflix i prezentuj\u0105c, jak dynamicznie zmienia\u0142a si\u0119 architektura firmy, aby sprosta\u0107 rosn\u0105cym wymaganiom technologicznym i operacyjnym. Netflix dalej zdecydowanie stawia na Java, jednak z biegiem lat, stack Java w Netflix przeszed\u0142 znacz\u0105ce zmiany, odchodz\u0105c od monolitycznej architektury w kierunku bardziej zdecentralizowanej i elastycznej architektury mikroserwisowej. Artyku\u0142 opisuje przej\u015bcie od u\u017cycia skrypt\u00f3w Groovy w ramach wzorca backend dla frontendu (BFF) - dalej pami\u0119tam czasy, gdy Netflix promowa\u0142 <a href=\"https:\/\/netflix.github.io\/falcor\/\">w\u0142asne rozwi\u0105zanie Falcor<\/a> - do wprowadzenia GraphQL Federation, co stanowi\u0142o odpowied\u017a na potrzeb\u0119 bardziej efektywnego zarz\u0105dzania zapytaniami i danymi. Ta zmiana pozwoli\u0142a na znaczne zmniejszenie redundancji API i nadmiarowego pobierania danych, co jest kluczowe przy obs\u0142udze r\u00f3\u017cnorodnych urz\u0105dze\u0144 ko\u0144cowych klient\u00f3w (a Netflix ma tych klient\u00f3w zatrz\u0119sienie).<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ponadto, artyku\u0142 porusza kwesti\u0119 ewolucji wersji Java w Netflix, przechodz\u0105c od Java 8 do nowszych wersji jak Java 17 i 21, co przyczyni\u0142o si\u0119 do lepszego wykorzystania procesora i redukcji koszt\u00f3w operacyjnych - og\u00f3lnie warto. Firma te\u017c wystandaryzowa\u0142a si\u0119 w ko\u0142o Spring Boota, przy r\u00f3wnoczesnym wykorzystania zalet szerokiej spo\u0142eczno\u015bci open-source. Og\u00f3lnie je\u015bli lubicie podejmowa\u0107 decyzje technologiczne na bazie tego, co BigTechy pokazuj\u0105 na konferencjach (nie polecam) - ca\u0142o\u015b\u0107 jest naprawd\u0119 ciekawa. Nawet je\u015bli zdroworozs\u0105dkowo nie u\u017cyjecie zawartych w tek\u015bcie lekcji, to ca\u0142o\u015b\u0107 poka\u017ce jak taka ewolucja przebiega w du\u017cej organizacji.<\/p>\n","innerContent":["\n<p>Ponadto, artyku\u0142 porusza kwesti\u0119 ewolucji wersji Java w Netflix, przechodz\u0105c od Java 8 do nowszych wersji jak Java 17 i 21, co przyczyni\u0142o si\u0119 do lepszego wykorzystania procesora i redukcji koszt\u00f3w operacyjnych - og\u00f3lnie warto. Firma te\u017c wystandaryzowa\u0142a si\u0119 w ko\u0142o Spring Boota, przy r\u00f3wnoczesnym wykorzystania zalet szerokiej spo\u0142eczno\u015bci open-source. Og\u00f3lnie je\u015bli lubicie podejmowa\u0107 decyzje technologiczne na bazie tego, co BigTechy pokazuj\u0105 na konferencjach (nie polecam) - ca\u0142o\u015b\u0107 jest naprawd\u0119 ciekawa. Nawet je\u015bli zdroworozs\u0105dkowo nie u\u017cyjecie zawartych w tek\u015bcie lekcji, to ca\u0142o\u015b\u0107 poka\u017ce jak taka ewolucja przebiega w du\u017cej organizacji.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":18008,"width":"606px","height":"auto","sizeSlug":"full","linkDestination":"none","align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/giphy.gif\" alt=\"\" class=\"wp-image-18008\" style=\"width:606px;height:auto\"\/><figcaption class=\"wp-element-caption\">A pozostaj\u0105c w temacie rzeczy, kt\u00f3re Netflix porzuca - przyznam szczerze, \u017ce korci mnie zrobienie przegl\u0105du tego, co og\u00f3lnie dzieje si\u0119 w projektach RX-owych po tym, jak sza\u0142 min\u0105\u0142. Mo\u017ce w jakiej\u015b wolnej chwili pope\u0142ni\u0119 tak\u0105 specjaln\u0105 edycj\u0119.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/giphy.gif\" alt=\"\" class=\"wp-image-18008\" style=\"width:606px;height:auto\"\/><figcaption class=\"wp-element-caption\">A pozostaj\u0105c w temacie rzeczy, kt\u00f3re Netflix porzuca - przyznam szczerze, \u017ce korci mnie zrobienie przegl\u0105du tego, co og\u00f3lnie dzieje si\u0119 w projektach RX-owych po tym, jak sza\u0142 min\u0105\u0142. Mo\u017ce w jakiej\u015b wolnej chwili pope\u0142ni\u0119 tak\u0105 specjaln\u0105 edycj\u0119.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">2. Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">2. Nowe Projekty w JDK, czyli jak Minecraft pcha Jav\u0119 do przodu<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":18011,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-8-1024x585.png\" alt=\"\" class=\"wp-image-18011\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-8-1024x585.png\" alt=\"\" class=\"wp-image-18011\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tytu\u0142 obecnej sekcji (i ca\u0142ej edycji) mo\u017ce jest odrobink\u0119 naci\u0105gni\u0119ty, ale nie mog\u0142em sobie darowa\u0107. Wychowa\u0142em si\u0119 w przekonaniu, \u017ce Java nie nadaje si\u0119 w \u017cadnym razi do gier. Dlatego uwielbiam ka\u017cd\u0105 sytuacj\u0119, gdy mog\u0119 u\u015bwiadomi\u0107 wszystkim, \u017ce Minecraft, pozostaj\u0105cy jedn\u0105 z najpopularniejszych gier na \u015bwiecie dzia\u0142a na JVM. Dumny ekosystem dba o sw\u00f3j klejnot koronny, a ten mu si\u0119 odwdzi\u0119cza jak mo\u017ce. Jednak zanim dojdziemy do Minecrafta, w tej sekcji po\u015bwi\u0119conej nowym projektom zajmiemy si\u0119 powa\u017cnym tematem, dla powa\u017cnych ludzi - bezpiecze\u0144stwem.<\/p>\n","innerContent":["\n<p>Tytu\u0142 obecnej sekcji (i ca\u0142ej edycji) mo\u017ce jest odrobink\u0119 naci\u0105gni\u0119ty, ale nie mog\u0142em sobie darowa\u0107. Wychowa\u0142em si\u0119 w przekonaniu, \u017ce Java nie nadaje si\u0119 w \u017cadnym razi do gier. Dlatego uwielbiam ka\u017cd\u0105 sytuacj\u0119, gdy mog\u0119 u\u015bwiadomi\u0107 wszystkim, \u017ce Minecraft, pozostaj\u0105cy jedn\u0105 z najpopularniejszych gier na \u015bwiecie dzia\u0142a na JVM. Dumny ekosystem dba o sw\u00f3j klejnot koronny, a ten mu si\u0119 odwdzi\u0119cza jak mo\u017ce. Jednak zanim dojdziemy do Minecrafta, w tej sekcji po\u015bwi\u0119conej nowym projektom zajmiemy si\u0119 powa\u017cnym tematem, dla powa\u017cnych ludzi - bezpiecze\u0144stwem.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Troch\u0119 kontekstu: Java Cryptography Architecture (JCA) i Java Cryptography Extension (JCE) s\u0105 dwoma g\u0142\u00f3wnymi bibliotekami kryptograficznymi w Javie, kt\u00f3re wsp\u00f3\u0142pracuj\u0105 w celu zapewnienia szerokiego zakresu funkcji kryptograficznych. JCA, b\u0119d\u0105ca cz\u0119\u015bci\u0105 Cor\u0119 API Javy, oferuje podstawowe funkcjonalno\u015bci kryptograficzne, natomiast JCE rozszerza te mo\u017cliwo\u015bci, wprowadzaj\u0105c zaawansowane operacje kryptograficzne. Ta ostatnia biblioteka by\u0142y kiedy\u015b przedmiotem ameryka\u0144skich regulacji eksportowych, nie mog\u0142a wi\u0119c sta\u0107 si\u0119 oficjaln\u0105 cz\u0119\u015bci\u0105 JDK, ale z czasem ograniczenia te zosta\u0142y z\u0142agodzone, co pozwoli\u0142o na ich wsp\u00f3ln\u0105 integracj\u0119 z Java SE. Z tego wzgl\u0119du rozgraniczenie mi\u0119dzy nimi nie jest ju\u017c tak wyra\u017ane, przysz\u0142e zmiany w regulacjach mog\u0105 ponownie wp\u0142yn\u0105\u0107 na ich dost\u0119pno\u015b\u0107 i funkcjonalno\u015b\u0107 - a \u017ce \u017cyjemy w dosy\u0107 niespokojnych czasach, to ja bym traktowa\u0142 to ryzyko jako niezerowe.<\/p>\n","innerContent":["\n<p>Troch\u0119 kontekstu: Java Cryptography Architecture (JCA) i Java Cryptography Extension (JCE) s\u0105 dwoma g\u0142\u00f3wnymi bibliotekami kryptograficznymi w Javie, kt\u00f3re wsp\u00f3\u0142pracuj\u0105 w celu zapewnienia szerokiego zakresu funkcji kryptograficznych. JCA, b\u0119d\u0105ca cz\u0119\u015bci\u0105 Cor\u0119 API Javy, oferuje podstawowe funkcjonalno\u015bci kryptograficzne, natomiast JCE rozszerza te mo\u017cliwo\u015bci, wprowadzaj\u0105c zaawansowane operacje kryptograficzne. Ta ostatnia biblioteka by\u0142y kiedy\u015b przedmiotem ameryka\u0144skich regulacji eksportowych, nie mog\u0142a wi\u0119c sta\u0107 si\u0119 oficjaln\u0105 cz\u0119\u015bci\u0105 JDK, ale z czasem ograniczenia te zosta\u0142y z\u0142agodzone, co pozwoli\u0142o na ich wsp\u00f3ln\u0105 integracj\u0119 z Java SE. Z tego wzgl\u0119du rozgraniczenie mi\u0119dzy nimi nie jest ju\u017c tak wyra\u017ane, przysz\u0142e zmiany w regulacjach mog\u0105 ponownie wp\u0142yn\u0105\u0107 na ich dost\u0119pno\u015b\u0107 i funkcjonalno\u015b\u0107 - a \u017ce \u017cyjemy w dosy\u0107 niespokojnych czasach, to ja bym traktowa\u0142 to ryzyko jako niezerowe.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Przejd\u017amy jednak do g\u0142\u00f3wnej zapowiedzi. <a href=\"https:\/\/mail.openjdk.org\/pipermail\/announce\/2024-March\/000347.html\">Projekt Brisbane<\/a>, bo o nim mowa, to inicjatywa maj\u0105ca na celu stworzenia implementacji JCE zgodnego ze standardem FIPS 140, przeznaczonego specjalnie dla regulowanych \u015brodowisk w Stanach Zjednoczonych. Projekt planuje wykorzysta\u0107 Foreign Function &amp; Memory API do stworzenia rappera nad bibliotek\u0105 OpenSSL, kt\u00f3ra zosta\u0142a zweryfikowana zgodnie z norm\u0105 FIPS 140, zapewniaj\u0105c jej poprawne u\u017cycie. Brisbane zamierza w ten spos\u00f3b dostarczy\u0107 rozwi\u0105zanie kryptograficzne spe\u0142niaj\u0105ce rygorystyczne wymagania bezpiecze\u0144stwa, jednocze\u015bnie integruj\u0105c si\u0119 p\u0142ynnie z aplikacjami JVM-owymi.<\/p>\n","innerContent":["\n<p>Przejd\u017amy jednak do g\u0142\u00f3wnej zapowiedzi. <a href=\"https:\/\/mail.openjdk.org\/pipermail\/announce\/2024-March\/000347.html\">Projekt Brisbane<\/a>, bo o nim mowa, to inicjatywa maj\u0105ca na celu stworzenia implementacji JCE zgodnego ze standardem FIPS 140, przeznaczonego specjalnie dla regulowanych \u015brodowisk w Stanach Zjednoczonych. Projekt planuje wykorzysta\u0107 Foreign Function &amp; Memory API do stworzenia rappera nad bibliotek\u0105 OpenSSL, kt\u00f3ra zosta\u0142a zweryfikowana zgodnie z norm\u0105 FIPS 140, zapewniaj\u0105c jej poprawne u\u017cycie. Brisbane zamierza w ten spos\u00f3b dostarczy\u0107 rozwi\u0105zanie kryptograficzne spe\u0142niaj\u0105ce rygorystyczne wymagania bezpiecze\u0144stwa, jednocze\u015bnie integruj\u0105c si\u0119 p\u0142ynnie z aplikacjami JVM-owymi.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":18013,"sizeSlug":"full","linkDestination":"none","align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-9.png\" alt=\"\" class=\"wp-image-18013\"\/><figcaption class=\"wp-element-caption\">A z Pythona si\u0119 \u015bmiejemy.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-9.png\" alt=\"\" class=\"wp-image-18013\"\/><figcaption class=\"wp-element-caption\">A z Pythona si\u0119 \u015bmiejemy.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>FIPS 140 (Federal Information Processing Standard Publication 140) to standard rz\u0105dowy USA, kt\u00f3ry ustanawia wymagania bezpiecze\u0144stwa dla modu\u0142\u00f3w kryptograficznych u\u017cywanych w federalnych systemach informatycznych. Dzi\u0119ki zgodno\u015bci ze standardami FIPS 140, OpendJDK (bo kompatybilno\u015b\u0107 z FIPS 140 by\u0142a ju\u017c dost\u0119pna wcze\u015bniej min. w ramach Oracle Cloud) b\u0119dzie mog\u0142a by\u0107 u\u017cywana w \u015brodowiskach wymagaj\u0105cych najwy\u017cszego poziomu ochrony danych, takich jak wra\u017cliwe operacje sektor\u00f3w rz\u0105dowego i finansowego.<\/p>\n","innerContent":["\n<p>FIPS 140 (Federal Information Processing Standard Publication 140) to standard rz\u0105dowy USA, kt\u00f3ry ustanawia wymagania bezpiecze\u0144stwa dla modu\u0142\u00f3w kryptograficznych u\u017cywanych w federalnych systemach informatycznych. Dzi\u0119ki zgodno\u015bci ze standardami FIPS 140, OpendJDK (bo kompatybilno\u015b\u0107 z FIPS 140 by\u0142a ju\u017c dost\u0119pna wcze\u015bniej min. w ramach Oracle Cloud) b\u0119dzie mog\u0142a by\u0107 u\u017cywana w \u015brodowiskach wymagaj\u0105cych najwy\u017cszego poziomu ochrony danych, takich jak wra\u017cliwe operacje sektor\u00f3w rz\u0105dowego i finansowego.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>No dobra, ale teraz pora przej\u015b\u0107 do wyja\u015bnienia, o co chodzi mi z tym przytoczonym wcze\u015bniej Minecraftem. <a href=\"https:\/\/openjdk.org\/projects\/wakefield\/\">Projekt Wakefield<\/a> to inicjatywa maj\u0105ca na celu integracj\u0119 obs\u0142ugi linuxowego serwera wy\u015bwietlania Wayland w JDK. Wayland ma zast\u0105pi\u0107 przestarza\u0142y protok\u00f3\u0142 serwera wy\u015bwietlania pulpitu X11, opracowany w latach 80., nowoczesnym podej\u015bciem umo\u017cliwiaj\u0105cym renderowanie po stronie klienta oraz systemem okien tak zwanego pulpitu kompozytowego, staj\u0105c si\u0119 domy\u015bln\u0105 technologi\u0105 serwera wy\u015bwietlania na licznych dystrybucjach Linuxa, takich jak RHEL 8, OL 8 i Ubuntu 21.04. Projekt Wakefield ma dwa g\u0142\u00f3wne cele: kr\u00f3tko- do \u015brednioterminowe rozwi\u0105zanie dla JDK dzia\u0142aj\u0105cego na Waylandzie w trybie kompatybilno\u015bci X11 oraz \u015brednio- do d\u0142ugoterminowe rozwi\u0105zanie, polegaj\u0105ce na uruchomieniu JDK jako natywnego klienta Wayland. Drugi cel jest g\u0142\u00f3wnym celem projektu, jednak jego realizacja jest znacznie bardziej skomplikowana i zajmie wiele lat, dlatego niezb\u0119dne jest r\u00f3wnie\u017c osi\u0105gni\u0119cie kr\u00f3tkoterminowego celu.<\/p>\n","innerContent":["\n<p>No dobra, ale teraz pora przej\u015b\u0107 do wyja\u015bnienia, o co chodzi mi z tym przytoczonym wcze\u015bniej Minecraftem. <a href=\"https:\/\/openjdk.org\/projects\/wakefield\/\">Projekt Wakefield<\/a> to inicjatywa maj\u0105ca na celu integracj\u0119 obs\u0142ugi linuxowego serwera wy\u015bwietlania Wayland w JDK. Wayland ma zast\u0105pi\u0107 przestarza\u0142y protok\u00f3\u0142 serwera wy\u015bwietlania pulpitu X11, opracowany w latach 80., nowoczesnym podej\u015bciem umo\u017cliwiaj\u0105cym renderowanie po stronie klienta oraz systemem okien tak zwanego pulpitu kompozytowego, staj\u0105c si\u0119 domy\u015bln\u0105 technologi\u0105 serwera wy\u015bwietlania na licznych dystrybucjach Linuxa, takich jak RHEL 8, OL 8 i Ubuntu 21.04. Projekt Wakefield ma dwa g\u0142\u00f3wne cele: kr\u00f3tko- do \u015brednioterminowe rozwi\u0105zanie dla JDK dzia\u0142aj\u0105cego na Waylandzie w trybie kompatybilno\u015bci X11 oraz \u015brednio- do d\u0142ugoterminowe rozwi\u0105zanie, polegaj\u0105ce na uruchomieniu JDK jako natywnego klienta Wayland. Drugi cel jest g\u0142\u00f3wnym celem projektu, jednak jego realizacja jest znacznie bardziej skomplikowana i zajmie wiele lat, dlatego niezb\u0119dne jest r\u00f3wnie\u017c osi\u0105gni\u0119cie kr\u00f3tkoterminowego celu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=5gfZDx6IOD4","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=5gfZDx6IOD4\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=5gfZDx6IOD4\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Znaczenie Wayland dla Javy, szczeg\u00f3lnie w kontek\u015bcie gier (w tym Minecrafcie), bo te wymagaj\u0105 solidnej wydajno\u015bci graficznej i kompatybilno\u015bci systemowej. Minecraft, wraz z innymi grami opartymi na Javie, opiera si\u0119 na stabilnej i wydajnej architekturze serwera wy\u015bwietlania, aby zapewni\u0107 odpowiedni\u0105 p\u0142ynno\u015b\u0107. Przenosz\u0105c Jav\u0119 do natywnego \u015brodowiska Wayland, deweloperzy mog\u0105 wykorzysta\u0107 lepsze mo\u017cliwo\u015bci Waylanda w zakresie obs\u0142ugi renderowania po stronie klienta i kompozycji, co potencjalnie zwi\u0119ksza wydajno\u015b\u0107 graficzn\u0105 na systemach Linux, co zapewni zapewnienia, \u017ce popularne aplikacje Javy, takie jak Minecraft, nadal b\u0119d\u0105 dzia\u0142a\u0142y optymalnie na tych platformach, bez polegania na przestarza\u0142ych lub mniej wydajnych protoko\u0142ach oraz warstwach kompatybilno\u015bci.<\/p>\n","innerContent":["\n<p>Znaczenie Wayland dla Javy, szczeg\u00f3lnie w kontek\u015bcie gier (w tym Minecrafcie), bo te wymagaj\u0105 solidnej wydajno\u015bci graficznej i kompatybilno\u015bci systemowej. Minecraft, wraz z innymi grami opartymi na Javie, opiera si\u0119 na stabilnej i wydajnej architekturze serwera wy\u015bwietlania, aby zapewni\u0107 odpowiedni\u0105 p\u0142ynno\u015b\u0107. Przenosz\u0105c Jav\u0119 do natywnego \u015brodowiska Wayland, deweloperzy mog\u0105 wykorzysta\u0107 lepsze mo\u017cliwo\u015bci Waylanda w zakresie obs\u0142ugi renderowania po stronie klienta i kompozycji, co potencjalnie zwi\u0119ksza wydajno\u015b\u0107 graficzn\u0105 na systemach Linux, co zapewni zapewnienia, \u017ce popularne aplikacje Javy, takie jak Minecraft, nadal b\u0119d\u0105 dzia\u0142a\u0142y optymalnie na tych platformach, bez polegania na przestarza\u0142ych lub mniej wydajnych protoko\u0142ach oraz warstwach kompatybilno\u015bci.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>I Minecraft si\u0119 odwdzi\u0119cza. Wprowadzenie najnowszego snapshotu Minecrafta, oznaczonego numerem 24W14A, wprowadza istotne zmiany techniczne, kt\u00f3re mog\u0105 znacz\u0105co przyczyni\u0107 si\u0119 do dalszej popularno\u015bci nowych wyda\u0144 JDK. Od nowej aktualizacji, Minecraft (w swojej edycji Javowej) wymaga bowiem zainstalowania Java 21, korzystaj\u0105c z dystrybucji Java od Microsoftu (czy kto\u015b si\u0119 dziwi?). Dodatkowo, gra teraz obs\u0142uguje tylko 64-bitowe systemy operacyjne (bo i dla przypomnienia - JDK te\u017c nied\u0142ugo <a href=\"https:\/\/openjdk.org\/jeps\/449\">pozb\u0119dzie si\u0119 trybu 32-bitowego<\/a>).<\/p>\n","innerContent":["\n<p>I Minecraft si\u0119 odwdzi\u0119cza. Wprowadzenie najnowszego snapshotu Minecrafta, oznaczonego numerem 24W14A, wprowadza istotne zmiany techniczne, kt\u00f3re mog\u0105 znacz\u0105co przyczyni\u0107 si\u0119 do dalszej popularno\u015bci nowych wyda\u0144 JDK. Od nowej aktualizacji, Minecraft (w swojej edycji Javowej) wymaga bowiem zainstalowania Java 21, korzystaj\u0105c z dystrybucji Java od Microsoftu (czy kto\u015b si\u0119 dziwi?). Dodatkowo, gra teraz obs\u0142uguje tylko 64-bitowe systemy operacyjne (bo i dla przypomnienia - JDK te\u017c nied\u0142ugo <a href=\"https:\/\/openjdk.org\/jeps\/449\">pozb\u0119dzie si\u0119 trybu 32-bitowego<\/a>).<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Mo\u017ce si\u0119 okaza\u0107, \u017ce to jedno z najwi\u0119kszych pojedynczych wydarze\u0144 promuj\u0105cych adopcje nowego LTSa.<\/p>\n","innerContent":["\n<p>Mo\u017ce si\u0119 okaza\u0107, \u017ce to jedno z najwi\u0119kszych pojedynczych wydarze\u0144 promuj\u0105cych adopcje nowego LTSa.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":18023,"sizeSlug":"full","linkDestination":"none","align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-14.png\" alt=\"\" class=\"wp-image-18023\"\/><figcaption class=\"wp-element-caption\">Mimo, \u017ce sam fanem Minecrafta nie jestem (czekam a\u017c mi c\u00f3rka podro\u015bnie i b\u0119d\u0119 gra\u0142 razem z ni\u0105), to \u015bwi\u0119ta wojna o to, kt\u00f3ra wersja Minecrafta jest najlepsza zawsze mnie bawi\u0142a <\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-14.png\" alt=\"\" class=\"wp-image-18023\"\/><figcaption class=\"wp-element-caption\">Mimo, \u017ce sam fanem Minecrafta nie jestem (czekam a\u017c mi c\u00f3rka podro\u015bnie i b\u0119d\u0119 gra\u0142 razem z ni\u0105), to \u015bwi\u0119ta wojna o to, kt\u00f3ra wersja Minecrafta jest najlepsza zawsze mnie bawi\u0142a <\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/separator","attrs":[],"innerBlocks":[],"innerHTML":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","innerContent":["\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">3. Release Radar<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">3. Release Radar<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":18034,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-17-1024x585.png\" alt=\"\" class=\"wp-image-18034\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-17-1024x585.png\" alt=\"\" class=\"wp-image-18034\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/devblogs.microsoft.com\/java\/java-on-azure-tooling-update-march-2024\/\">6-Month Roadmap for Java on Azure Tools<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/devblogs.microsoft.com\/java\/java-on-azure-tooling-update-march-2024\/\">6-Month Roadmap for Java on Azure Tools<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Jako, \u017ce by\u0142o o Microsofcie, to zaczniemy sobie od publikacji p\u00f3\u0142rocznej roadmapy dla Java on Azure Tooling, przedstawioej przez Jialuo Gana. Ca\u0142o\u015b\u0107 daje nam wgl\u0105d w plany Microsoftu i tylko podkre\u015bla, jak strategicznym obszarem sta\u0142a si\u0119 dla firmy Java.<\/p>\n","innerContent":["\n<p>Jako, \u017ce by\u0142o o Microsofcie, to zaczniemy sobie od publikacji p\u00f3\u0142rocznej roadmapy dla Java on Azure Tooling, przedstawioej przez Jialuo Gana. Ca\u0142o\u015b\u0107 daje nam wgl\u0105d w plany Microsoftu i tylko podkre\u015bla, jak strategicznym obszarem sta\u0142a si\u0119 dla firmy Java.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Istotne aktualizacje obejmuj\u0105 integracj\u0119 z najnowszymi us\u0142ugami Azure, takimi jak Azure Functions, Azure Web App i Azure Cosmos DB, z konkretnymi ulepszeniami takimi jak wsparcie Flex Consumption oraz aktualizacje wersji \u015brodowiska wykonawczego Java. Dodatkowo, k\u0142adziony jest du\u017cy nacisk na budowanie aplikacji natywnych dla chmury za pomoc\u0105 us\u0142ug konteneryzowanych, takich jak Azure Container Apps (ACA) i Azure Kubernetes Service (AKS).Planowane s\u0105 dalsze ulepszenia, maj\u0105ce na celu pomoc programistom w tworzeniu inteligentnych aplikacji przy u\u017cyciu us\u0142ugi Azure OpenAI, z wsparciem dla nowych modeli takich jak Completions i DALL-E (tutaj chyba brak zaskocze\u0144).<\/p>\n","innerContent":["\n<p>Istotne aktualizacje obejmuj\u0105 integracj\u0119 z najnowszymi us\u0142ugami Azure, takimi jak Azure Functions, Azure Web App i Azure Cosmos DB, z konkretnymi ulepszeniami takimi jak wsparcie Flex Consumption oraz aktualizacje wersji \u015brodowiska wykonawczego Java. Dodatkowo, k\u0142adziony jest du\u017cy nacisk na budowanie aplikacji natywnych dla chmury za pomoc\u0105 us\u0142ug konteneryzowanych, takich jak Azure Container Apps (ACA) i Azure Kubernetes Service (AKS).Planowane s\u0105 dalsze ulepszenia, maj\u0105ce na celu pomoc programistom w tworzeniu inteligentnych aplikacji przy u\u017cyciu us\u0142ugi Azure OpenAI, z wsparciem dla nowych modeli takich jak Completions i DALL-E (tutaj chyba brak zaskocze\u0144).<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Trwaj\u0105 r\u00f3wnie\u017c prace nad integracj\u0105 Azure SDK Build Tool z zestawem narz\u0119dzi Azure i wtyczk\u0105 Maven, maj\u0105ce na celu pomoc programistom w zapewnieniu poprawnego u\u017cycia Azure SDK i zarz\u0105dzaniu zale\u017cno\u015bciami, co nie zawsze by\u0142o takie oczywiste. W tym samym celu usprawniono r\u00f3wnie\u017c dost\u0119pne mechanizmy autoryzacji. Obok ulepsze\u0144 technicznych, zesp\u00f3\u0142 Azure zobowi\u0105za\u0142 si\u0119 do aktualizacji dokumentacji i zmniejszenia liczby b\u0142\u0119d\u00f3w.<\/p>\n","innerContent":["\n<p>Trwaj\u0105 r\u00f3wnie\u017c prace nad integracj\u0105 Azure SDK Build Tool z zestawem narz\u0119dzi Azure i wtyczk\u0105 Maven, maj\u0105ce na celu pomoc programistom w zapewnieniu poprawnego u\u017cycia Azure SDK i zarz\u0105dzaniu zale\u017cno\u015bciami, co nie zawsze by\u0142o takie oczywiste. W tym samym celu usprawniono r\u00f3wnie\u017c dost\u0119pne mechanizmy autoryzacji. Obok ulepsze\u0144 technicznych, zesp\u00f3\u0142 Azure zobowi\u0105za\u0142 si\u0119 do aktualizacji dokumentacji i zmniejszenia liczby b\u0142\u0119d\u00f3w.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":18026,"width":"597px","height":"auto","sizeSlug":"full","linkDestination":"none","align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-15.png\" alt=\"\" class=\"wp-image-18026\" style=\"width:597px;height:auto\"\/><figcaption class=\"wp-element-caption\">Nie ka\u017cdy bohater nosi peleryn\u0119.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-15.png\" alt=\"\" class=\"wp-image-18026\" style=\"width:597px;height:auto\"\/><figcaption class=\"wp-element-caption\">Nie ka\u017cdy bohater nosi peleryn\u0119.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/devblogs.microsoft.com\/java\/java-on-visual-studio-code-update-march-2024\/\">Visual Studio Code March Update<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/devblogs.microsoft.com\/java\/java-on-visual-studio-code-update-march-2024\/\">Visual Studio Code March Update<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W ostatniej edycji do\u015b\u0107 szeroko rozpisywa\u0142em si\u0119 o tym, jak u\u017cytecznym narz\u0119dziem dla programist\u00f3w Java sta\u0142o si\u0119 Visual Studio Cod\u0119, przygl\u0105dnijmy si\u0119 wi\u0119c nowo\u015bciom, jakie jego tw\u00f3rcy maj\u0105 dla programist\u00f3w Javy.<\/p>\n","innerContent":["\n<p>W ostatniej edycji do\u015b\u0107 szeroko rozpisywa\u0142em si\u0119 o tym, jak u\u017cytecznym narz\u0119dziem dla programist\u00f3w Java sta\u0142o si\u0119 Visual Studio Cod\u0119, przygl\u0105dnijmy si\u0119 wi\u0119c nowo\u015bciom, jakie jego tw\u00f3rcy maj\u0105 dla programist\u00f3w Javy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W marcowej aktualizacji Visual Studio Code dla Java wprowadzono szereg nowych funkcji dla Spring Boot. Znacz\u0105c\u0105 nowo\u015bci\u0105 jest opcja podgl\u0105du refaktoryzacji dost\u0119pna podczas aktualizacji wersji, kt\u00f3ra pozwala na automatyczne uaktualnienie projekt\u00f3w do najnowszej wersji Spring Boot z mo\u017cliwo\u015bci\u0105 podgl\u0105du zmian przed ich zastosowaniem. Dodano tak\u017ce mo\u017cliwo\u015b\u0107 bezpo\u015bredniego dodawania starter\u00f3w Spring Boot poprzez plik pom.xml, co u\u0142atwia zarz\u0105dzanie zale\u017cno\u015bciami. Ponadto, u\u017cytkownicy mog\u0105 teraz na bie\u017c\u0105co zmienia\u0107 poziomy logowania w dzia\u0142aj\u0105cej aplikacji dzi\u0119ki nowej komendzie w palecie narz\u0119dzi, co jest skuteczne tylko podczas bie\u017c\u0105cej sesji uruchomieniowej.<\/p>\n","innerContent":["\n<p>W marcowej aktualizacji Visual Studio Code dla Java wprowadzono szereg nowych funkcji dla Spring Boot. Znacz\u0105c\u0105 nowo\u015bci\u0105 jest opcja podgl\u0105du refaktoryzacji dost\u0119pna podczas aktualizacji wersji, kt\u00f3ra pozwala na automatyczne uaktualnienie projekt\u00f3w do najnowszej wersji Spring Boot z mo\u017cliwo\u015bci\u0105 podgl\u0105du zmian przed ich zastosowaniem. Dodano tak\u017ce mo\u017cliwo\u015b\u0107 bezpo\u015bredniego dodawania starter\u00f3w Spring Boot poprzez plik pom.xml, co u\u0142atwia zarz\u0105dzanie zale\u017cno\u015bciami. Ponadto, u\u017cytkownicy mog\u0105 teraz na bie\u017c\u0105co zmienia\u0107 poziomy logowania w dzia\u0142aj\u0105cej aplikacji dzi\u0119ki nowej komendzie w palecie narz\u0119dzi, co jest skuteczne tylko podczas bie\u017c\u0105cej sesji uruchomieniowej.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nowo\u015bci\u0105 w stabilnej wersji Visual Studio Code jest r\u00f3wnie\u017c mo\u017cliwo\u015b\u0107 przeprowadzenia test\u00f3w z pokryciem - wcze\u015bniej by\u0142o to dost\u0119pne tylko w wersji Insider. Funkcja ta, wspierana przez bibliotek\u0119 Jacoco i najnowsze API do pokrycia test\u00f3w, pozwala na szczeg\u00f3\u0142ow\u0105 analiz\u0119 pokrycia kodu bezpo\u015brednio w edytorze. Aby korzysta\u0107 z tych wszystkich nowo\u015bci, nale\u017cy zainstalowa\u0107 najnowsz\u0105 wersj\u0119 Extension Pack for Java, a cz\u0119\u015b\u0107 z powy\u017cszych nowo\u015bci dotycz\u0105cych Springa wymaga zainstalowanie wyspecjalizowanej dla niego paczuszki.<\/p>\n","innerContent":["\n<p>Nowo\u015bci\u0105 w stabilnej wersji Visual Studio Code jest r\u00f3wnie\u017c mo\u017cliwo\u015b\u0107 przeprowadzenia test\u00f3w z pokryciem - wcze\u015bniej by\u0142o to dost\u0119pne tylko w wersji Insider. Funkcja ta, wspierana przez bibliotek\u0119 Jacoco i najnowsze API do pokrycia test\u00f3w, pozwala na szczeg\u00f3\u0142ow\u0105 analiz\u0119 pokrycia kodu bezpo\u015brednio w edytorze. Aby korzysta\u0107 z tych wszystkich nowo\u015bci, nale\u017cy zainstalowa\u0107 najnowsz\u0105 wersj\u0119 Extension Pack for Java, a cz\u0119\u015b\u0107 z powy\u017cszych nowo\u015bci dotycz\u0105cych Springa wymaga zainstalowanie wyspecjalizowanej dla niego paczuszki.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A jak ju\u017c o IDE mowa...<\/p>\n","innerContent":["\n<p>A jak ju\u017c o IDE mowa...<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/04\/intellij-idea-2024-1\/\">Intellij Idea 2024.1<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/04\/intellij-idea-2024-1\/\">Intellij Idea 2024.1<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zwykle IntelliJ IDEA dostaje w tym przegl\u0105dzie swoj\u0105 w\u0142asn\u0105 sekcje, ale jako, \u017ce o niekt\u00f3rych zmianach wspomina\u0142em ju\u017c przy okazji poprzednich przegl\u0105d\u00f3w, dzisiaj b\u0119dzie nieco kr\u00f3cej, co nie znaczy \u017ce nie ma nic ciekawego do opisania. Nowa wersja \u015brodowisko IDE w pe\u0142ni wspiera bowiem najnowsze funkcje Javy 22, <a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/03\/java-22-and-intellij-idea\/\">co opisane zosta\u0142o w ca\u0142ym po\u015bwi\u0119conym temu po\u015bcie<\/a>. Inne usprawnienia specyficzne dla Javy obejmuj\u0105 wprowadzenie wstrzykiwania j\u0119zyk\u00f3w do szablon\u00f3w string\u00f3w, nowe inspekcje i szybkie poprawki. Dodatkowo, poprawiono UX pracy z bibliotekami wielowersyjnymi JAR.<\/p>\n","innerContent":["\n<p>Zwykle IntelliJ IDEA dostaje w tym przegl\u0105dzie swoj\u0105 w\u0142asn\u0105 sekcje, ale jako, \u017ce o niekt\u00f3rych zmianach wspomina\u0142em ju\u017c przy okazji poprzednich przegl\u0105d\u00f3w, dzisiaj b\u0119dzie nieco kr\u00f3cej, co nie znaczy \u017ce nie ma nic ciekawego do opisania. Nowa wersja \u015brodowisko IDE w pe\u0142ni wspiera bowiem najnowsze funkcje Javy 22, <a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/03\/java-22-and-intellij-idea\/\">co opisane zosta\u0142o w ca\u0142ym po\u015bwi\u0119conym temu po\u015bcie<\/a>. Inne usprawnienia specyficzne dla Javy obejmuj\u0105 wprowadzenie wstrzykiwania j\u0119zyk\u00f3w do szablon\u00f3w string\u00f3w, nowe inspekcje i szybkie poprawki. Dodatkowo, poprawiono UX pracy z bibliotekami wielowersyjnymi JAR.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dla programist\u00f3w Kotlin i Scala, IntelliJ IDEA 2024.1 wprowadza znacz\u0105ce ulepszenia. \u015arodowisko IDE zawiera nowy tryb Kotlin K2, wykorzystuj\u0105cy wbudowany kompilator Kotlin K2 do poprawy analizy kodu Kotlin, oraz domy\u015blnie stosuje oficjalny przewodnik stylu Kotlin jako opcj\u0119 formatowania. Dla Scala, wsparcie dla Scala 3 zosta\u0142o ulepszone, w tym lepsze rozpoznawanie mieszanych modyfikator\u00f3w, poprawiona obs\u0142uga wci\u0119\u0107 i ulepszona obs\u0142uga debuggera. Dodatkowo, IntelliJ IDEA ulepszy\u0142o obs\u0142ug\u0119 statycznych import\u00f3w w Kotlinie i doda\u0142o nowe mo\u017cliwo\u015bci pracy ze Scala, takie jak ulepszone Scaladoc i wyskakuj\u0105ce okienka z dokumentacj\u0105.<\/p>\n","innerContent":["\n<p>Dla programist\u00f3w Kotlin i Scala, IntelliJ IDEA 2024.1 wprowadza znacz\u0105ce ulepszenia. \u015arodowisko IDE zawiera nowy tryb Kotlin K2, wykorzystuj\u0105cy wbudowany kompilator Kotlin K2 do poprawy analizy kodu Kotlin, oraz domy\u015blnie stosuje oficjalny przewodnik stylu Kotlin jako opcj\u0119 formatowania. Dla Scala, wsparcie dla Scala 3 zosta\u0142o ulepszone, w tym lepsze rozpoznawanie mieszanych modyfikator\u00f3w, poprawiona obs\u0142uga wci\u0119\u0107 i ulepszona obs\u0142uga debuggera. Dodatkowo, IntelliJ IDEA ulepszy\u0142o obs\u0142ug\u0119 statycznych import\u00f3w w Kotlinie i doda\u0142o nowe mo\u017cliwo\u015bci pracy ze Scala, takie jak ulepszone Scaladoc i wyskakuj\u0105ce okienka z dokumentacj\u0105.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Poza funkcjami specyficznymi dla j\u0119zyka, IntelliJ IDEA Ultimate 2024.1 oferuje szereg aktualizacji maj\u0105cych na celu popraw\u0119 og\u00f3lnego produktywno\u015bci u\u017cytkownika. IDE usprawni\u0142o klienta HTTP, integruje wsparcie dla OpenRewrite (ostatnio o tym projekcie <a href=\"https:\/\/airhacks.fm\/#episode_290\">Adam Bien w swoim podca\u015bcie rozmawia\u0142 z Jonathanem Schneiderem<\/a>, polecam) do refaktoryzacji oraz wprowadza aktualizacje wsparcia dla Terraform. Narz\u0119dzia obs\u0142ugi baz danych r\u00f3wnie\u017c zosta\u0142y znacznie ulepszone o takie opcje jak filtrowanie lokalne w edytorze danych, usprawnione wykonanie zapyta\u0144 i ulepszone wsparcie dla modu\u0142\u00f3w Redis. Ponadto, IntelliJ wprowadzi\u0142o ulepszenia w systemach kontroli wersji z nowymi trybami przegl\u0105du kodu dla GitHub i GitLab oraz szeregiem innych ulepsze\u0144 VCS.<\/p>\n","innerContent":["\n<p>Poza funkcjami specyficznymi dla j\u0119zyka, IntelliJ IDEA Ultimate 2024.1 oferuje szereg aktualizacji maj\u0105cych na celu popraw\u0119 og\u00f3lnego produktywno\u015bci u\u017cytkownika. IDE usprawni\u0142o klienta HTTP, integruje wsparcie dla OpenRewrite (ostatnio o tym projekcie <a href=\"https:\/\/airhacks.fm\/#episode_290\">Adam Bien w swoim podca\u015bcie rozmawia\u0142 z Jonathanem Schneiderem<\/a>, polecam) do refaktoryzacji oraz wprowadza aktualizacje wsparcia dla Terraform. Narz\u0119dzia obs\u0142ugi baz danych r\u00f3wnie\u017c zosta\u0142y znacznie ulepszone o takie opcje jak filtrowanie lokalne w edytorze danych, usprawnione wykonanie zapyta\u0144 i ulepszone wsparcie dla modu\u0142\u00f3w Redis. Ponadto, IntelliJ wprowadzi\u0142o ulepszenia w systemach kontroli wersji z nowymi trybami przegl\u0105du kodu dla GitHub i GitLab oraz szeregiem innych ulepsze\u0144 VCS.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A jak ju\u017c wspomnieli\u015bmy K2...<\/p>\n","innerContent":["\n<p>A jak ju\u017c wspomnieli\u015bmy K2...<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/JetBrains\/kotlin\/releases\/tag\/v2.0.0-RC1\">Kotlin 2.0 RC<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/JetBrains\/kotlin\/releases\/tag\/v2.0.0-RC1\">Kotlin 2.0 RC<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W Kotlin 2.0 w\u0142a\u015bnie wkroczy\u0142a w faz\u0119 Release Candidate, kt\u00f3rej to kolejne iteracje b\u0119d\u0105 stopniowo umo\u017cliwia\u0142y dost\u0119p do kolejnych funkcjonalno\u015bci. Daje Wam zna\u0107 g\u0142\u00f3wnie informacyjnie, ale wszystko wskazuje na to, \u017ce tw\u00f3rcy j\u0119zyka Kotlin szykuj\u0105 co\u015b wyj\u0105tkowego na zbli\u017caj\u0105c\u0105 si\u0119 KotlinConf 2024.<\/p>\n","innerContent":["\n<p>W Kotlin 2.0 w\u0142a\u015bnie wkroczy\u0142a w faz\u0119 Release Candidate, kt\u00f3rej to kolejne iteracje b\u0119d\u0105 stopniowo umo\u017cliwia\u0142y dost\u0119p do kolejnych funkcjonalno\u015bci. Daje Wam zna\u0107 g\u0142\u00f3wnie informacyjnie, ale wszystko wskazuje na to, \u017ce tw\u00f3rcy j\u0119zyka Kotlin szykuj\u0105 co\u015b wyj\u0105tkowego na zbli\u017caj\u0105c\u0105 si\u0119 KotlinConf 2024.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":18017,"width":"773px","height":"auto","sizeSlug":"large","linkDestination":"none","align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-11-1024x480.png\" alt=\"\" class=\"wp-image-18017\" style=\"width:773px;height:auto\"\/><figcaption class=\"wp-element-caption\">Na co bardzo licz\u0119, bo na KotlinConf si\u0119 w tym roku wybieram. Spodziewajcie si\u0119 relacji, a bardzo ch\u0119tnie zbije te\u017c pi\u0105tk\u0119 z kim\u015b, kto te przegl\u0105y czyta.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-11-1024x480.png\" alt=\"\" class=\"wp-image-18017\" style=\"width:773px;height:auto\"\/><figcaption class=\"wp-element-caption\">Na co bardzo licz\u0119, bo na KotlinConf si\u0119 w tym roku wybieram. Spodziewajcie si\u0119 relacji, a bardzo ch\u0119tnie zbije te\u017c pi\u0105tk\u0119 z kim\u015b, kto te przegl\u0105y czyta.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.i-programmer.info\/news\/80-java\/17099-eclipse-jkube-116-goes-ga.html\">JKube 1.16<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.i-programmer.info\/news\/80-java\/17099-eclipse-jkube-116-goes-ga.html\">JKube 1.16<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>JKube to narz\u0119dzie u\u0142atwiaj\u0105ce integracj\u0119 projekt\u00f3w Java z Kubernetes, automatyzuj\u0105ce proces tworzenia zar\u00f3wno plik\u00f3w Dockerfile, jak i generuj\u0105c potrzebne manifesty Kubernetes. Zintegrowane z Mavenem i Gradle, umo\u017cliwia \u0142atwe wdra\u017canie, zarz\u0105dzanie i debugowanie aplikacji w \u015brodowisku Kubernetes. JKube eliminuje konieczno\u015b\u0107 r\u0119cznej konfiguracji Docker i Kubernetes, wspiera zaawansowane funkcje Kubernetes jak health checks czy autoscaling, ale te\u017c tworzenia obraz\u00f3w kontener\u00f3w za pomoc\u0105 strategii budowania Docker, S2I lub Jib.<\/p>\n","innerContent":["\n<p>JKube to narz\u0119dzie u\u0142atwiaj\u0105ce integracj\u0119 projekt\u00f3w Java z Kubernetes, automatyzuj\u0105ce proces tworzenia zar\u00f3wno plik\u00f3w Dockerfile, jak i generuj\u0105c potrzebne manifesty Kubernetes. Zintegrowane z Mavenem i Gradle, umo\u017cliwia \u0142atwe wdra\u017canie, zarz\u0105dzanie i debugowanie aplikacji w \u015brodowisku Kubernetes. JKube eliminuje konieczno\u015b\u0107 r\u0119cznej konfiguracji Docker i Kubernetes, wspiera zaawansowane funkcje Kubernetes jak health checks czy autoscaling, ale te\u017c tworzenia obraz\u00f3w kontener\u00f3w za pomoc\u0105 strategii budowania Docker, S2I lub Jib.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":18019,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-12-1024x543.png\" alt=\"\" class=\"wp-image-18019\"\/><figcaption class=\"wp-element-caption\">Je\u015bli nie znacie JIBa, to lata temu <a href=\"https:\/\/medium.com\/github-all-stars\/github-all-stars-4-googlecontainertools-jib-841196f759a3\">rozpracowywa\u0142em spos\u00f3b dzia\u0142ania pierwszej wersji projektu<\/a> - jak kiedy\u015b pojawi\u0105 mi si\u0119 wolne przebiegi to ch\u0119tnie bym do tego wr\u00f3ci\u0142).<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-12-1024x543.png\" alt=\"\" class=\"wp-image-18019\"\/><figcaption class=\"wp-element-caption\">Je\u015bli nie znacie JIBa, to lata temu <a href=\"https:\/\/medium.com\/github-all-stars\/github-all-stars-4-googlecontainertools-jib-841196f759a3\">rozpracowywa\u0142em spos\u00f3b dzia\u0142ania pierwszej wersji projektu<\/a> - jak kiedy\u015b pojawi\u0105 mi si\u0119 wolne przebiegi to ch\u0119tnie bym do tego wr\u00f3ci\u0142).<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W najnowszej wersji JKube, 1.16, u\u017cytkownicy dostali now\u0105 strategi\u0119 budowania obraz\u00f3w kontener\u00f3w za pomoc\u0105 Cloud Native Buildpacks, co pozwala na przekszta\u0142cenie kodu \u017ar\u00f3d\u0142owego w gotowy do uruchomienia obraz aplikacji - ostatnio wspomina\u0142em o tym standardzie w kontek\u015bcie nowej wersji GraalVM. Dodano tak\u017ce now\u0105 funkcj\u0119 lintowania wykres\u00f3w Helm, kt\u00f3r\u0105 mo\u017cna uruchomi\u0107 za pomoc\u0105 prostego polecenia Maven lub Gradle, aby zbada\u0107 wygenerowane wykresy Helmowe pod k\u0105tem ewentualnych problem\u00f3w. Zaktualizowano r\u00f3wnie\u017c obrazy bazowe i wprowadzono rekomendowane etykiety Kubernetes, co razem z poprawkami b\u0142\u0119d\u00f3w i drobnymi usprawnieniami czyni z JKube jeszcze bardziej u\u017cyteczne narz\u0119dzie...<\/p>\n","innerContent":["\n<p>W najnowszej wersji JKube, 1.16, u\u017cytkownicy dostali now\u0105 strategi\u0119 budowania obraz\u00f3w kontener\u00f3w za pomoc\u0105 Cloud Native Buildpacks, co pozwala na przekszta\u0142cenie kodu \u017ar\u00f3d\u0142owego w gotowy do uruchomienia obraz aplikacji - ostatnio wspomina\u0142em o tym standardzie w kontek\u015bcie nowej wersji GraalVM. Dodano tak\u017ce now\u0105 funkcj\u0119 lintowania wykres\u00f3w Helm, kt\u00f3r\u0105 mo\u017cna uruchomi\u0107 za pomoc\u0105 prostego polecenia Maven lub Gradle, aby zbada\u0107 wygenerowane wykresy Helmowe pod k\u0105tem ewentualnych problem\u00f3w. Zaktualizowano r\u00f3wnie\u017c obrazy bazowe i wprowadzono rekomendowane etykiety Kubernetes, co razem z poprawkami b\u0142\u0119d\u00f3w i drobnymi usprawnieniami czyni z JKube jeszcze bardziej u\u017cyteczne narz\u0119dzie...<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":18032,"sizeSlug":"full","linkDestination":"none","align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-16.png\" alt=\"\" class=\"wp-image-18032\"\/><figcaption class=\"wp-element-caption\">...zw\u0142aszcza dla os\u00f3b, kt\u00f3re nie chc\u0105 doktoryzowa\u0107 si\u0119 z coraz bardziej skomplikowanych nowych wersji Kubernetesa.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-16.png\" alt=\"\" class=\"wp-image-18032\"\/><figcaption class=\"wp-element-caption\">...zw\u0142aszcza dla os\u00f3b, kt\u00f3re nie chc\u0105 doktoryzowa\u0107 si\u0119 z coraz bardziej skomplikowanych nowych wersji Kubernetesa.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.jobrunr.io\/en\/blog\/2024-04-09-jobrunr-and-jobrunr-pro-v7\/\">JobRunr<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.jobrunr.io\/en\/blog\/2024-04-09-jobrunr-and-jobrunr-pro-v7\/\">JobRunr<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Prywata: Mimo, \u017ce Quartz pozostaje chyba najpopularniejszym rozwi\u0105zaniem do schedulingu zada\u0144 w tle, to moj\u0105 ulubion\u0105, rekomendowan\u0105 biblioteka pozostaje JobRunr, kt\u00f3ry \u0142atwo integruje si\u0119 z popularnymi frameworkami Java i obs\u0142uguje r\u00f3\u017cne metody zarz\u0105dzania trwa\u0142o\u015bci\u0105 zada\u0144. Dodatkowo, opr\u00f3cz mo\u017cliwo\u015b\u0107 zarz\u0105dzania bardziej skomplikowanymi harmonogramami i elastyczno\u015b\u0107, JobRunr zapewnia r\u00f3wnie\u017c szczeg\u00f3\u0142owe monitorowanie i zarz\u0105dzanie stanami zada\u0144 za pomoc\u0105 kompleksowego pulpitu nawigacyjnego, co przy bardziej skomplikowanych systemach jest naprawd\u0119 nieocenione. Dlatego te\u017c wydanie jego nowego wydania bardzo mnie prywatnie cieszy.<\/p>\n","innerContent":["\n<p>Prywata: Mimo, \u017ce Quartz pozostaje chyba najpopularniejszym rozwi\u0105zaniem do schedulingu zada\u0144 w tle, to moj\u0105 ulubion\u0105, rekomendowan\u0105 biblioteka pozostaje JobRunr, kt\u00f3ry \u0142atwo integruje si\u0119 z popularnymi frameworkami Java i obs\u0142uguje r\u00f3\u017cne metody zarz\u0105dzania trwa\u0142o\u015bci\u0105 zada\u0144. Dodatkowo, opr\u00f3cz mo\u017cliwo\u015b\u0107 zarz\u0105dzania bardziej skomplikowanymi harmonogramami i elastyczno\u015b\u0107, JobRunr zapewnia r\u00f3wnie\u017c szczeg\u00f3\u0142owe monitorowanie i zarz\u0105dzanie stanami zada\u0144 za pomoc\u0105 kompleksowego pulpitu nawigacyjnego, co przy bardziej skomplikowanych systemach jest naprawd\u0119 nieocenione. Dlatego te\u017c wydanie jego nowego wydania bardzo mnie prywatnie cieszy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wersja 7.0.0 JobRunr i JobRunr Pro wprowadza szereg bardzo ciekawych nowo\u015bci. Zacznijmy od wersji bazowej, kt\u00f3ra przynosi wsparcie dla Wirtualnych W\u0105tk\u00f3w i konfigurowalne okresy zamykania serwera zada\u0144. Dodatkowe ulepszenia obejmuj\u0105 optymalizacj\u0119 przetwarzania zada\u0144 za pomoc\u0105 wielu w\u0105tk\u00f3w, lepsze zarz\u0105dzanie migracjami bazy danych oraz lepsze informowanie je\u015bli chodzi o w\u0105skich gard\u0142ach je\u015bli chodzi o wydajno\u015b. Aktualizacja poprawia r\u00f3wnie\u017c wydajno\u015b\u0107 systemu poprzez wprowadzenie identyfikator\u00f3w UUID opartych na czasie dla identyfikacji zada\u0144.<\/p>\n","innerContent":["\n<p>Wersja 7.0.0 JobRunr i JobRunr Pro wprowadza szereg bardzo ciekawych nowo\u015bci. Zacznijmy od wersji bazowej, kt\u00f3ra przynosi wsparcie dla Wirtualnych W\u0105tk\u00f3w i konfigurowalne okresy zamykania serwera zada\u0144. Dodatkowe ulepszenia obejmuj\u0105 optymalizacj\u0119 przetwarzania zada\u0144 za pomoc\u0105 wielu w\u0105tk\u00f3w, lepsze zarz\u0105dzanie migracjami bazy danych oraz lepsze informowanie je\u015bli chodzi o w\u0105skich gard\u0142ach je\u015bli chodzi o wydajno\u015b. Aktualizacja poprawia r\u00f3wnie\u017c wydajno\u015b\u0107 systemu poprzez wprowadzenie identyfikator\u00f3w UUID opartych na czasie dla identyfikacji zada\u0144.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ciekawe rzeczy pojawiaj\u0105 si\u0119 te\u017c w wersji Pro celuj\u0105cej w firmy Enterprise, kt\u00f3ra wprowadza mas\u0119 nowo\u015bci do pulpitu nawigacyjnego - wsparcie OpenId, czy te\u017c opcje zgodno\u015bci z GDPR\/HIPAA umo\u017cliwiaj\u0105ce ukrywanie wra\u017cliwych danych zada\u0144. \"Profesjonalni\" u\u017cytkownicy otrzymali r\u00f3wnie\u017c zaawansowane mo\u017cliwo\u015bci ograniczania przepustowo\u015bci przetwarzania zada\u0144 oraz mo\u017cliwo\u015b\u0107 dostosowania tabel z zadaniami poprzez dodatkowe kolumny i konfigurowaln\u0105 widoczno\u015b\u0107, co przyda si\u0119 sytuacji, gdy chcemy nasz scheduling pointegrowa\u0107 z innymi systemami firmowymi.<\/p>\n","innerContent":["\n<p>Ciekawe rzeczy pojawiaj\u0105 si\u0119 te\u017c w wersji Pro celuj\u0105cej w firmy Enterprise, kt\u00f3ra wprowadza mas\u0119 nowo\u015bci do pulpitu nawigacyjnego - wsparcie OpenId, czy te\u017c opcje zgodno\u015bci z GDPR\/HIPAA umo\u017cliwiaj\u0105ce ukrywanie wra\u017cliwych danych zada\u0144. \"Profesjonalni\" u\u017cytkownicy otrzymali r\u00f3wnie\u017c zaawansowane mo\u017cliwo\u015bci ograniczania przepustowo\u015bci przetwarzania zada\u0144 oraz mo\u017cliwo\u015b\u0107 dostosowania tabel z zadaniami poprzez dodatkowe kolumny i konfigurowaln\u0105 widoczno\u015b\u0107, co przyda si\u0119 sytuacji, gdy chcemy nasz scheduling pointegrowa\u0107 z innymi systemami firmowymi.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>To nie wszystkie zmiany, bo tych jest naprawd\u0119 du\u017co. Je\u017celi wi\u0119c u\u017cywacie JobRunr, zach\u0119cam do przegl\u0105dni\u0119cia <a href=\"https:\/\/www.jobrunr.io\/en\/blog\/2024-04-09-jobrunr-and-jobrunr-pro-v7\/\">Release Notes<\/a>.<\/p>\n","innerContent":["\n<p>To nie wszystkie zmiany, bo tych jest naprawd\u0119 du\u017co. Je\u017celi wi\u0119c u\u017cywacie JobRunr, zach\u0119cam do przegl\u0105dni\u0119cia <a href=\"https:\/\/www.jobrunr.io\/en\/blog\/2024-04-09-jobrunr-and-jobrunr-pro-v7\/\">Release Notes<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/separator","attrs":[],"innerBlocks":[],"innerHTML":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","innerContent":["\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":18021,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-13-1024x575.png\" alt=\"\" class=\"wp-image-18021\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-13-1024x575.png\" alt=\"\" class=\"wp-image-18021\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>PS: Dzisiaj wysz\u0142o d\u0142ugo, ale to dlatego, \u017ce tydzie\u0144 temu by\u0142em na ostatniej prostej przygotowywania mojego nowego konferencyjnego talka <strong>Digging for Truffles - Unveiling the Mysteries of GraalVM's Least Understood Component<\/strong> na potrzeby konferencji 4Developers. Je\u017celi b\u0119d\u0119 mia\u0142 go okazj\u0119 gdzie\u015b opowiada\u0107 za granic\u0105, na pewno b\u0119d\u0119 informowa\u0107<\/p>\n","innerContent":["\n<p>PS: Dzisiaj wysz\u0142o d\u0142ugo, ale to dlatego, \u017ce tydzie\u0144 temu by\u0142em na ostatniej prostej przygotowywania mojego nowego konferencyjnego talka <strong>Digging for Truffles - Unveiling the Mysteries of GraalVM's Least Understood Component<\/strong> na potrzeby konferencji 4Developers. Je\u017celi b\u0119d\u0119 mia\u0142 go okazj\u0119 gdzie\u015b opowiada\u0107 za granic\u0105, na pewno b\u0119d\u0119 informowa\u0107<\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/18001","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=18001"}],"version-history":[{"count":7,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/18001\/revisions"}],"predecessor-version":[{"id":18041,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/18001\/revisions\/18041"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/18037"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=18001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=18001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=18001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}