{"id":17321,"date":"2023-12-14T07:28:29","date_gmt":"2023-12-14T06:28:29","guid":{"rendered":"https:\/\/vived.io\/?p=17321"},"modified":"2023-12-14T07:40:51","modified_gmt":"2023-12-14T06:40:51","slug":"docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/","title":{"rendered":"Docker przejmuje tw\u00f3rc\u00f3w Testcontainers &#8211; JVM Weekly vol. 157"},"content":{"rendered":"\n<h2 id=\"1-docker-przejmuje-atomicjar\" data-num=1>1. Docker przejmuje AtomicJar<\/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\/2023\/12\/Group-773-1024x585.png\" alt=\"\" class=\"wp-image-17324\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Group-773-1024x585.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Group-773-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Group-773-768x439.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Group-773-1536x878.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Group-773.png 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>W \u015bwiecie Javowych bibliotek\/us\u0142ug rzadko kiedy dochodzi w dzisiejszych czasach do spektakularnych przej\u0119\u0107 (a jak ju\u017c to s\u0105 to raczej du\u017ce przej\u0119cia korporacyjne, jak ostatnio w wypadku VMWare), dlatego te\u017c ka\u017cde odbija si\u0119 mocnym echem. Nawet jednak w bardziej pod tym wzgl\u0119dem dynamicznym ekosystemie to, od kt\u00f3rego zaczniemy dzisiejsz\u0105 edycj\u0119 nie pozosta\u0142oby niezauwa\u017cone. Mamy bowiem do czynienia z sytuacj\u0105, w kt\u00f3rej oba podmioty s\u0105 wyj\u0105tkowo dobrze znane w szerokiej spo\u0142eczno\u015bci.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.atomicjar.com\/2023\/12\/atomicjar-is-now-part-of-docker\/\">Docker naby\u0142 bowiem AtomicJar, tw\u00f3rc\u0119 Testcontainers<\/a>, co jest znacz\u0105cym ruchem w sektorze technologii kontenerowych, zw\u0142aszcza dla programist\u00f3w JVM. Za\u0142o\u017cony w 2015 roku przez Richarda Northa, Testcontainers to biblioteka open-source, kt\u00f3ra upraszcza proces testowania w \u015brodowiskach Docker. Umo\u017cliwia \u0142atwe ustawianie i usuwanie skonteneryzowanych instancji baz danych i innych us\u0142ug, co doprowadzi\u0142o do jego szerokiego przyj\u0119cia w spo\u0142eczno\u015bci deweloper\u00f3w.<\/p>\n\n\n\n<p>AtomicJar, utworzony w 2021 roku przez oryginalnych tw\u00f3rc\u00f3w Testcontainers, mia\u0142 na celu rozszerzenie mo\u017cliwo\u015bci narz\u0119dzia, co zaowocowa\u0142o uruchomieniem Testcontainers Cloud. To rozszerzenie biblioteki Testcontainers zaprojektowane zosta\u0142o do wykorzystywania mocy infrastruktury chmurowej dla \u015brodowisk testowych &#8211; \u017ceby\u015bmy testuj\u0105c nasze Mikroserwisy nie musieli wszystkiego lokalnie. Pozwala bowiem deweloperom na wykorzystanie zasob\u00f3w chmury do tworzenia i zarz\u0105dzania jednorazowymi instancjami kontener\u00f3w Docker, na potrzeby zar\u00f3wno lokalnego developmentu jak i system\u00f3w CI\/CD. Pasuj\u0105 do siebie jak ula\u0142.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"422\" height=\"585\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13.jpeg\" alt=\"\" class=\"wp-image-17350\" style=\"width:508px;height:auto\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13.jpeg 422w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13-216x300.jpeg 216w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><figcaption class=\"wp-element-caption\">TestContainers Cloud: to ja jeszcze podrzuc\u0119 do chmury kilka Test Case&#8217;\u00f3w<\/figcaption><\/figure><\/div>\n\n\n<p>Nabycie przez Docker oznacza strategiczny ruch w celu bezpo\u015bredniej integracji mo\u017cliwo\u015bci Testcontainers, potencjalnie rozszerzaj\u0105c jego baz\u0119 u\u017cytkownik\u00f3w i pozwoli wej\u015b\u0107 na rynek Cloud Developer Environments. Docker od dawna postawi\u0142 na zarabianie na developer productivity (w ko\u0144cu zarabiaj\u0105 teraz na pobieraniu op\u0142at za Docker Desktop), wi\u0119c wydaje si\u0119 to by\u0107 naturalne rozwini\u0119cie tego kierunku. Konkurencja jest zaciek\u0142a &#8211; Cloud Developer Environments z pewno\u015bci\u0105 by\u0142y jednym z istotniejszych trend\u00f3w w 2023 i pojawi\u0142a si\u0119 olbrzymia ilo\u015b\u0107 nowych narz\u0119dzi, ale szersza adopcja dopiero przed nami. Ciekaw\u0105 publikacje i przegl\u0105d istniej\u0105cych rozwi\u0105za\u0144 mo\u017cecie <a href=\"https:\/\/newsletter.pragmaticengineer.com\/p\/cloud-development-environments\">przeczyta\u0107 na blogu George Orosza<\/a>.  <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"317\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Minions-Applause-GIF-Reaction-for-Congratulations-Well-Done-or-Excellent-Performance-Download-for-Free-and-Share-on-Facebook-Comment-or-WhatsApp-Messenger.gif\" alt=\"\" class=\"wp-image-17342\"\/><figcaption class=\"wp-element-caption\">Gratulacje dla zespo\u0142u AtomicJar &#8211; oby wi\u0119cej takich og\u0142osze\u0144 w naszym ekosystemie.<\/figcaption><\/figure><\/div>\n\n\n<h2 id=\"2-nowy-intellij-idea-ai-assistant-java-21-i-wiecej\" data-num=2>2. Nowy IntelliJ Idea &#8211; AI Assistant, Java 21 i wi\u0119cej<\/h2>\n\n\n\n<p>Zesz\u0142y tydzie\u0144 to te\u017c nowy IntelliJ. Jest to prawdopodobnie obok Springa najcz\u0119\u015bciej u\u017cywane przez Was narz\u0119dzie, dlatego roz\u0142o\u017cymy nowo\u015bci nowe wydanie &#8211; przychodzi z nim bowiem sporo ciekawych nowo\u015bci, w tym jedna d\u0142ugo oczekiwania nowo\u015b\u0107.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-3-1024x585.png\" alt=\"\" class=\"wp-image-17322\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-3-1024x585.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-3-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-3-768x439.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-3-1536x878.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-3.png 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">TLDR: Bezrobocie coraz bli\u017cej.<\/figcaption><\/figure><\/div>\n\n\n<p>Wydanie <a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/\">IntelliJ IDEA 2023.3 przynosi<\/a> bowiem dost\u0119pnego dla wszystkich zainteresowanych Asystent AI, kt\u00f3ry opu\u015bci\u0142 faz\u0119 testow\u0105. Oferuje on ulepszon\u0105 generacj\u0119 kodu bezpo\u015brednio w edytorze, kontekstow\u0105 czat AI do zapyta\u0144 zwi\u0105zanych z projektem oraz akcje AI \u015bwiadome projektu, wykorzystuj\u0105ce rozszerzony kontekst do uzyskania bardziej kompleksowych wynik\u00f3w. Wyobra\u017acie sobie taki ChatGPT wbudowany w Wasze IDE, z kilkoma dodatkowymi usprawniaczami dzi\u0119ki byciu mocno zintegrowanym z samym IDE &#8211; tak zwanymi AI Actions.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"601\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-4-1024x601.png\" alt=\"\" class=\"wp-image-17328\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-4-1024x601.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-4-300x176.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-4-768x450.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-4-1536x901.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-4-2048x1201.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Tutaj na screenie mo\u017cecie zobaczy\u0107 przyk\u0142ad &#8222;Code Review&#8221;<\/figcaption><\/figure><\/div>\n\n\n<p>Bawi\u0142em si\u0119 ca\u0142o\u015bci\u0105 w oparciu o pocz\u0105tkowe zadania z tegorocznego Advent of Code, i na pewno jest to bardzo przydatne narz\u0119dzie, z kt\u00f3rym osobi\u015bcie mam tylko jeden problem &#8211; pricing. 10$ jako dodatek do ju\u017c istniej\u0105cych op\u0142at licencyjnych to z jednej strony nie jest du\u017co (zw\u0142aszcza \u017ce asystenci AI naprawd\u0119 potrafi\u0105 zwi\u0119kszy\u0107 produktywno\u015b\u0107 przy wielu charakterach zada\u0144), z drugiej jednak za dodatkow\u0105 dych\u0119 mamy ju\u017c ChataGPT Premium, kt\u00f3ry ma znacznie szersze mo\u017cliwo\u015bci u\u017cycia. Musz\u0119 te\u017c przyzna\u0107, \u017ce gdzie AI Assistant rzeczywi\u015bcie jest bardzo wygodnie pointegrowany i kod kt\u00f3ry wypluwa rzeczywi\u015bcie przypomina m\u00f3j w\u0142asny (co nie zawsze jest znowu tak\u0105 zalet\u0105&#8230;), to ChatGPT-4 by\u0142 w stanie nieco zaj\u015b\u0107 nieco dalej w zadaniach (cho\u0107 tegoroczne s\u0105 ). Trzeba jednak pami\u0119ta\u0107, \u017ce to w\u0142a\u015bnie szeroki kontekst naszego codebase i sp\u00f3jno\u015b\u0107 podpowiedzi z nim, a tak\u017ce samo zintegrowanie w narz\u0119dzie s\u0105 tutaj najwi\u0119kszymi zaletami, a pod tym k\u0105tem nawet obecna pierwsza wersja sprawdza si\u0119 interesuj\u0105co.<\/p>\n\n\n\n<p>Przy czym to raczej OpenAI nale\u017ca\u0142oby oskar\u017cy\u0107 o dumpingowe ceny &#8211; dalej uwa\u017cam, \u017ce w stosunku do mo\u017cliwo\u015bci jakie daje ChatGPT jest po prostu \u015bmiesznie tani. Jako \u017ce wed\u0142ug FAQ rozwi\u0105zanie u\u017cywa w\u0142a\u015bnie OpenAI (cho\u0107 tw\u00f3rcy odgra\u017caj\u0105 si\u0119, \u017ce tworz\u0105 te\u017c w\u0142asne modele) to musi kosztowa\u0107, \u017ceby nie zbankrutowa\u0107 firmy matki.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"804\" height=\"1002\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-12.jpeg\" alt=\"\" class=\"wp-image-17349\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-12.jpeg 804w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-12-241x300.jpeg 241w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-12-768x957.jpeg 768w\" sizes=\"auto, (max-width: 804px) 100vw, 804px\" \/><figcaption class=\"wp-element-caption\">Takie cuda tylko w \u015bwiecie Startup\u00f3w, aczkolwiek te AI i tak nie maj\u0105 \u0142atwego \u017cycia i gin\u0105 jak muchy po ka\u017cdej konferencji kt\u00f3rego\u015b z BigTech\u00f3w. Modele AI s\u0105 po prostu bardzo drog\u0105 zabawk\u0105<\/figcaption><\/figure><\/div>\n\n\n<p>A, i pami\u0119tajcie \u017ceby rzuci\u0107 okiem na to, <a href=\"https:\/\/www.jetbrains.com\/help\/idea\/ai-assistant.html#how-we-handle-your-code-and-data\">jakie Wasze dane s\u0105 wysy\u0142ane<\/a>. JetBrains jest pod tym k\u0105tem do\u015b\u0107 transparentne.<\/p>\n\n\n\n<p>Nie tylko AI jednak cz\u0142owiek \u017cyje. Dlatego deweloperzy Java z pewno\u015bci\u0105 doceni\u0105 pe\u0142ne wsparcie dla Java 21. Ta aktualizacja obejmuje g\u0142\u00f3wne rozszerzenia z tej wersji, takie jak wirtualne w\u0105tki, Record Patterns i Pattern Matching w Switchach wyra\u017ce\u0144 switch. Wsparcie dosta\u0142y nawet feature z Preview, takie jak cho\u0107by Spring Templates.<\/p>\n\n\n\n<p>Kilka nowo\u015bci te\u017c pojawi\u0142o si\u0119 w \u015bwiecie Kotlinowym. Aktualizacja zawiera porady na start w przyk\u0142adowych projektach dla os\u00f3b nowych w Kotlinie, auto-konfiguracj\u0119 Kotlina w projektach Java Gradle (chwa\u0142a za to, u\u0142atwi to gradulan\u0105 migracje!) oraz i jeszcze mocniejsze \u201czbundlowanie\u201d plugin Kotlina z IntelliJ &#8211; sami stwierd\u017acie, czy jest to dla Was zaleta. Mnie za\u015b najbardziej cieszy chyba fakt, pe\u0142nego wsparcia dla wersji Bety kompilatora K2. Pojawia si\u0119 coraz wi\u0119cej \u201clessons learned\u201d z proces\u00f3w migracji popularnych projekt\u00f3w, i my\u015bl\u0119, \u017ce w kt\u00f3rej\u015b z nadchodz\u0105cych edycji dotkn\u0119 tego tematu.<\/p>\n\n\n\n<p>Poza AI, Java i Kotlin, IntelliJ IDEA 2023.3 to te\u017c kilka innych dodatk\u00f3w. Obejmuje to lepsze wsparcie dla Scali, ulepszone narz\u0119dzia baz danych oraz usprawnion\u0105 integracj\u0119 z Kubernetes i Terraform. Skupiono si\u0119 r\u00f3wnie\u017c na ulepszeniach interfejsu u\u017cytkownika i wydajno\u015bci, takich jak nowa opcja ukrywania g\u0142\u00f3wnego paska narz\u0119dzi oraz automatyczne pobieranie wsp\u00f3\u0142dzielonych indeks\u00f3w JDK. Za\u015b dodanie funkcji takich jak p\u0142ywaj\u0105cy pasek narz\u0119dzi, opcja Run to Cursor inlay w debuggerze i wszechstronny diff viewer to rzeczy na pierwszy rzut oka ma\u0142e, ale s\u0105 to dodatki z rodzaju takich, kt\u00f3re z pewno\u015bci\u0105 docenimy, gdy tylko b\u0119d\u0105 nam potrzebne.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"508\" height=\"472\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-6.png\" alt=\"\" class=\"wp-image-17336\" style=\"width:508px;height:auto\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-6.png 508w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-6-300x279.png 300w\" sizes=\"auto, (max-width: 508px) 100vw, 508px\" \/><figcaption class=\"wp-element-caption\">I jeszcze na koniec w temacie AI Assistanta i bezrobocia, #protip &#8211; po prostu uczcie si\u0119 pisa\u0107 lepsze prompty ni\u017c Wasz manager i jeste\u015bcie bezpieczni. <\/figcaption><\/figure><\/div>\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\/2023\/12\/image-5-1024x585.png\" alt=\"\" class=\"wp-image-17334\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-5-1024x585.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-5-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-5-768x439.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-5-1536x878.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-5.png 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>A na koniec kilka nowych wyda\u0144 wi\u0119c i ostatni w tym roku Release Radar. Mimo, \u017ce wydaje si\u0119, \u017ce wszyscy \u017cyjemy ju\u017c \u015bwi\u0119tami, to jednak niekt\u00f3rzy wyra\u017anie broni\u0105 si\u0119 przed Code Freeze.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/beehive-lab\/TornadoVM\/releases\/tag\/v1.0\">TornadoVM 1.0<\/a><\/h3>\n\n\n\n<p>TornadoVM to projekt, kt\u00f3ry poprawia wydajno\u015b\u0107 Javy, poprzez struktury do modelowania danych i automatyczne przyspieszenie operacji na wielordzeniowych procesorach, rozwi\u0105zuj\u0105c problem tak zwanego heterogenicznego przetwarzania w rozwoju oprogramowania. Daje nam wi\u0119c abstrakcje zar\u00f3wno na potrzeby CPU, jak i GPU czy FPGA, b\u0119d\u0105c kompatybilny z takimi rozwi\u0105zaniami jak OpenCL czy Nvidia PTX.<\/p>\n\n\n\n<p>Nareszcie doczekali\u015bmy si\u0119 za\u015b&nbsp;wersji TornadoVM 1.0 (cho\u0107 t\u0105 wersj\u0105 1.0 jako\u015b si\u0119 mocno nie chwal\u0105). Do kluczowych funkcji nale\u017c\u0105 nowe API dla alokacji obiekt\u00f3w i tablic poza stert\u0105 za pomoc\u0105 <code>MemorySegments<\/code> z projektu Panama, wsparcie dla operacji <code>cospi<\/code> i <code>sinpi<\/code>, rozszerzone typy danych wektorowych oraz ulepszona domy\u015blna kolejno\u015b\u0107 urz\u0105dze\u0144. Nowa wersja potrafi zintegrowa\u0107 si\u0119 z JDK 21 oraz Graal 23.1.0 (w tym wszystkimi j\u0119zykami opartymi o Truffle). Wydanie to adresuje tak\u017ce wiele b\u0142\u0119d\u00f3w, w tym problemy z urz\u0105dzeniami SPIR-V, a tak\u017ce lepsz\u0105 kompilacj\u0119 FPGA oraz wsparcia batchowego przetwarzania danych.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/docs.gradle.org\/8.5\/release-notes.html\">Gradle 8.6<\/a><\/h3>\n\n\n\n<p>Zdecydowanie najbardziej kluczowa nowo\u015b\u0107 przychodz\u0105ca z <a href=\"https:\/\/docs.gradle.org\/8.5\/release-notes.html\">Gradle 8.5 <\/a> to pe\u0142ne wsparcie dla Java 21, umo\u017cliwiaj\u0105c u\u017cytkownikom budowanie, testowanie i uruchamianie aplikacji z wykorzystaniem najnowszej wersji Java. Wydanie to skupia si\u0119 r\u00f3wnie\u017c na poprawie Kotlina DSL (w tym aspekcie pracy chyba nigdy nie zabraknie), a tak\u017ce na wsparciu katalog\u00f3w wersji w skryptach prekompilowanych. Dodatkowo przynosi ulepszenia w komunikatach b\u0142\u0119d\u00f3w, aktualizacje Javadoc oraz bardziej kompaktowy i klarowniejszy rozmiar pliku Gradle Wrapper.<\/p>\n\n\n\n<p>Jednak motywem przewodnim Gradle 8.5 to koncentracja na tworzeniu build\u00f3w i weryfikacji zale\u017cno\u015bci. Nowe <strong>Build Features API<\/strong> oferuje wi\u0119ksz\u0105 elastyczno\u015b\u0107 i kontrol\u0119, a tak\u017ce jest wed\u0142ug tw\u00f3rc\u00f3w znacznie wygodniejsze dla u\u017cytkownika ko\u0144cowego.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/in.relation.to\/2023\/12\/05\/hibernate-search-7-0-0-Final\/\">Hibernate Search 7.0<\/a><\/h3>\n\n\n\n<p>Hibernate Search to biblioteka do integracji Hibernate ORM z Apache Lucene lub Elasticsearch. Niedawno zosta\u0142a wydana jej <a href=\"https:\/\/in.relation.to\/2023\/12\/05\/hibernate-search-7-0-0-Final\/\">wersja 7.0<\/a>, kt\u00f3ra aktualizuje do JDK 11 i Hibernate ORM 6.4, zwi\u0119kszaj\u0105c kompatybilno\u015b\u0107 z Elasticsearch 8.10\/8.11 i OpenSearch 2.10\/2.11, oraz aktualizuj\u0105c do Lucene 9.8. Nowe funkcje obejmuj\u0105 Hibernate Search Bin-Of-Material dla \u0142atwiejszego zarz\u0105dzania zale\u017cno\u015bciami, eksperymentaln\u0105 kompatybilno\u015b\u0107 z Amazon OpenSearch Serverless i wsparcie dla ulepszonego wsparcia do Multi-Tenancy wprowadzonego w Hibernate ORM 6.4. Wydanie oznacza r\u00f3wnie\u017c przej\u015bcie na Jakarta EE, wraz z pe\u0142n\u0105 repakietyzacj\u0105 projektu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/quarkus.io\/blog\/quarkus-3-6-0-released\/\">Quarkus 3.6<\/a><\/h3>\n\n\n\n<p>Ostatnia nowo\u015b\u0107 b\u0119dzie naprawd\u0119 szybka.<\/p>\n\n\n\n<p>Quarkus 3.6.0 przynosi kilka ulepsze\u0144, koncentruj\u0105c si\u0119 na poprawach obs\u0142ugi zdarze\u0144 wysy\u0142anych przez serwer (SSE) w kliencie REST, oraz licznych ulepszeniach OpenID Connect i og\u00f3lnego bezpiecze\u0144stwa framework. Wydanie to obejmuje r\u00f3wnie\u017c przeniesienie <code>quarkus-jaeger<\/code> i <code>quarkus-smallrye-opentracing<\/code> do Quarkiverse.<\/p>\n\n\n\n<p>Quarkiverse to ekosystem rozszerze\u0144 dla Quarkus, platformy open-source do tworzenia i wdra\u017cania aplikacji mikroserwisowych w Javie. Quarkus zosta\u0142 zaprojektowany, aby by\u0107 lekki i szybki, co czyni go odpowiednim dla \u015brodowisk chmurowych i kontenerowych, przy r\u00f3wnoczesnej mo\u017cliwo\u015bci rozbudowy. Quarkiverse dzia\u0142a jako rodzaj &#8222;hubu&#8221; dla rozszerze\u0144 spo\u0142eczno\u015bci, kt\u00f3re nie s\u0105 bezpo\u015brednio cz\u0119\u015bci\u0105 g\u0142\u00f3wnego projektu Quarkus.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Docker przejmuje AtomicJar W \u015bwiecie Javowych bibliotek\/us\u0142ug rzadko kiedy dochodzi w dzisiejszych czasach do spektakularnych przej\u0119\u0107 (a jak ju\u017c to s\u0105 to raczej du\u017ce przej\u0119cia korporacyjne, jak ostatnio w wypadku VMWare), dlatego te\u017c ka\u017cde odbija si\u0119 mocnym echem. Nawet jednak w bardziej pod tym wzgl\u0119dem dynamicznym ekosystemie to, od kt\u00f3rego zaczniemy dzisiejsz\u0105 edycj\u0119 nie [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":17339,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259,1],"tags":[],"class_list":["post-17321","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm-pl","category-no-category"],"acf":{"estimated_reading_time":"8","feature_image_blog":false,"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Twitter-post-1200x628-3.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>Docker przejmuje tw\u00f3rc\u00f3w Testcontainers - JVM Weekly vol. 157 - 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\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker przejmuje tw\u00f3rc\u00f3w Testcontainers - JVM Weekly vol. 157 - Vived\" \/>\n<meta property=\"og:description\" content=\"1. Docker przejmuje AtomicJar W \u015bwiecie Javowych bibliotek\/us\u0142ug rzadko kiedy dochodzi w dzisiejszych czasach do spektakularnych przej\u0119\u0107 (a jak ju\u017c to s\u0105 to raczej du\u017ce przej\u0119cia korporacyjne, jak ostatnio w wypadku VMWare), dlatego te\u017c ka\u017cde odbija si\u0119 mocnym echem. Nawet jednak w bardziej pod tym wzgl\u0119dem dynamicznym ekosystemie to, od kt\u00f3rego zaczniemy dzisiejsz\u0105 edycj\u0119 nie [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-14T06:28:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-14T06:40:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Twitter-post-1200x628-3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"Docker przejmuje tw\u00f3rc\u00f3w Testcontainers &#8211; JVM Weekly vol. 157\",\"datePublished\":\"2023-12-14T06:28:29+00:00\",\"dateModified\":\"2023-12-14T06:40:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/\"},\"wordCount\":1644,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Twitter-post-1200x628-3.png\",\"articleSection\":[\"JVM\",\"No category\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/\",\"url\":\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/\",\"name\":\"Docker przejmuje tw\u00f3rc\u00f3w Testcontainers - JVM Weekly vol. 157 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Twitter-post-1200x628-3.png\",\"datePublished\":\"2023-12-14T06:28:29+00:00\",\"dateModified\":\"2023-12-14T06:40:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Twitter-post-1200x628-3.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Twitter-post-1200x628-3.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker przejmuje tw\u00f3rc\u00f3w Testcontainers &#8211; JVM Weekly vol. 157\"}]},{\"@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":"Docker przejmuje tw\u00f3rc\u00f3w Testcontainers - JVM Weekly vol. 157 - 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\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/","og_locale":"pl_PL","og_type":"article","og_title":"Docker przejmuje tw\u00f3rc\u00f3w Testcontainers - JVM Weekly vol. 157 - Vived","og_description":"1. Docker przejmuje AtomicJar W \u015bwiecie Javowych bibliotek\/us\u0142ug rzadko kiedy dochodzi w dzisiejszych czasach do spektakularnych przej\u0119\u0107 (a jak ju\u017c to s\u0105 to raczej du\u017ce przej\u0119cia korporacyjne, jak ostatnio w wypadku VMWare), dlatego te\u017c ka\u017cde odbija si\u0119 mocnym echem. Nawet jednak w bardziej pod tym wzgl\u0119dem dynamicznym ekosystemie to, od kt\u00f3rego zaczniemy dzisiejsz\u0105 edycj\u0119 nie [&hellip;]","og_url":"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/","og_site_name":"Vived","article_published_time":"2023-12-14T06:28:29+00:00","article_modified_time":"2023-12-14T06:40:51+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Twitter-post-1200x628-3.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\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"Docker przejmuje tw\u00f3rc\u00f3w Testcontainers &#8211; JVM Weekly vol. 157","datePublished":"2023-12-14T06:28:29+00:00","dateModified":"2023-12-14T06:40:51+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/"},"wordCount":1644,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Twitter-post-1200x628-3.png","articleSection":["JVM","No category"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/","url":"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/","name":"Docker przejmuje tw\u00f3rc\u00f3w Testcontainers - JVM Weekly vol. 157 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Twitter-post-1200x628-3.png","datePublished":"2023-12-14T06:28:29+00:00","dateModified":"2023-12-14T06:40:51+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Twitter-post-1200x628-3.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Twitter-post-1200x628-3.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/docker-przejmuje-tworcow-testcontainers-jvm-weekly-vol-157\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Docker przejmuje tw\u00f3rc\u00f3w Testcontainers &#8211; JVM Weekly vol. 157"}]},{"@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. Docker przejmuje AtomicJar<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">1. Docker przejmuje AtomicJar<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":17324,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Group-773-1024x585.png\" alt=\"\" class=\"wp-image-17324\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Group-773-1024x585.png\" alt=\"\" class=\"wp-image-17324\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W \u015bwiecie Javowych bibliotek\/us\u0142ug rzadko kiedy dochodzi w dzisiejszych czasach do spektakularnych przej\u0119\u0107 (a jak ju\u017c to s\u0105 to raczej du\u017ce przej\u0119cia korporacyjne, jak ostatnio w wypadku VMWare), dlatego te\u017c ka\u017cde odbija si\u0119 mocnym echem. Nawet jednak w bardziej pod tym wzgl\u0119dem dynamicznym ekosystemie to, od kt\u00f3rego zaczniemy dzisiejsz\u0105 edycj\u0119 nie pozosta\u0142oby niezauwa\u017cone. Mamy bowiem do czynienia z sytuacj\u0105, w kt\u00f3rej oba podmioty s\u0105 wyj\u0105tkowo dobrze znane w szerokiej spo\u0142eczno\u015bci.<\/p>\n","innerContent":["\n<p>W \u015bwiecie Javowych bibliotek\/us\u0142ug rzadko kiedy dochodzi w dzisiejszych czasach do spektakularnych przej\u0119\u0107 (a jak ju\u017c to s\u0105 to raczej du\u017ce przej\u0119cia korporacyjne, jak ostatnio w wypadku VMWare), dlatego te\u017c ka\u017cde odbija si\u0119 mocnym echem. Nawet jednak w bardziej pod tym wzgl\u0119dem dynamicznym ekosystemie to, od kt\u00f3rego zaczniemy dzisiejsz\u0105 edycj\u0119 nie pozosta\u0142oby niezauwa\u017cone. Mamy bowiem do czynienia z sytuacj\u0105, w kt\u00f3rej oba podmioty s\u0105 wyj\u0105tkowo dobrze znane w szerokiej spo\u0142eczno\u015bci.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/www.atomicjar.com\/2023\/12\/atomicjar-is-now-part-of-docker\/\">Docker naby\u0142 bowiem AtomicJar, tw\u00f3rc\u0119 Testcontainers<\/a>, co jest znacz\u0105cym ruchem w sektorze technologii kontenerowych, zw\u0142aszcza dla programist\u00f3w JVM. Za\u0142o\u017cony w 2015 roku przez Richarda Northa, Testcontainers to biblioteka open-source, kt\u00f3ra upraszcza proces testowania w \u015brodowiskach Docker. Umo\u017cliwia \u0142atwe ustawianie i usuwanie skonteneryzowanych instancji baz danych i innych us\u0142ug, co doprowadzi\u0142o do jego szerokiego przyj\u0119cia w spo\u0142eczno\u015bci deweloper\u00f3w.<\/p>\n","innerContent":["\n<p><a href=\"https:\/\/www.atomicjar.com\/2023\/12\/atomicjar-is-now-part-of-docker\/\">Docker naby\u0142 bowiem AtomicJar, tw\u00f3rc\u0119 Testcontainers<\/a>, co jest znacz\u0105cym ruchem w sektorze technologii kontenerowych, zw\u0142aszcza dla programist\u00f3w JVM. Za\u0142o\u017cony w 2015 roku przez Richarda Northa, Testcontainers to biblioteka open-source, kt\u00f3ra upraszcza proces testowania w \u015brodowiskach Docker. Umo\u017cliwia \u0142atwe ustawianie i usuwanie skonteneryzowanych instancji baz danych i innych us\u0142ug, co doprowadzi\u0142o do jego szerokiego przyj\u0119cia w spo\u0142eczno\u015bci deweloper\u00f3w.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>AtomicJar, utworzony w 2021 roku przez oryginalnych tw\u00f3rc\u00f3w Testcontainers, mia\u0142 na celu rozszerzenie mo\u017cliwo\u015bci narz\u0119dzia, co zaowocowa\u0142o uruchomieniem Testcontainers Cloud. To rozszerzenie biblioteki Testcontainers zaprojektowane zosta\u0142o do wykorzystywania mocy infrastruktury chmurowej dla \u015brodowisk testowych - \u017ceby\u015bmy testuj\u0105c nasze Mikroserwisy nie musieli wszystkiego lokalnie. Pozwala bowiem deweloperom na wykorzystanie zasob\u00f3w chmury do tworzenia i zarz\u0105dzania jednorazowymi instancjami kontener\u00f3w Docker, na potrzeby zar\u00f3wno lokalnego developmentu jak i system\u00f3w CI\/CD. Pasuj\u0105 do siebie jak ula\u0142.<\/p>\n","innerContent":["\n<p>AtomicJar, utworzony w 2021 roku przez oryginalnych tw\u00f3rc\u00f3w Testcontainers, mia\u0142 na celu rozszerzenie mo\u017cliwo\u015bci narz\u0119dzia, co zaowocowa\u0142o uruchomieniem Testcontainers Cloud. To rozszerzenie biblioteki Testcontainers zaprojektowane zosta\u0142o do wykorzystywania mocy infrastruktury chmurowej dla \u015brodowisk testowych - \u017ceby\u015bmy testuj\u0105c nasze Mikroserwisy nie musieli wszystkiego lokalnie. Pozwala bowiem deweloperom na wykorzystanie zasob\u00f3w chmury do tworzenia i zarz\u0105dzania jednorazowymi instancjami kontener\u00f3w Docker, na potrzeby zar\u00f3wno lokalnego developmentu jak i system\u00f3w CI\/CD. Pasuj\u0105 do siebie jak ula\u0142.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17350,"width":"508px","height":"auto"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13.jpeg\" alt=\"\" class=\"wp-image-17350\" style=\"width:508px;height:auto\"\/><figcaption class=\"wp-element-caption\">TestContainers Cloud: to ja jeszcze podrzuc\u0119 do chmury kilka Test Case'\u00f3w<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13.jpeg\" alt=\"\" class=\"wp-image-17350\" style=\"width:508px;height:auto\"\/><figcaption class=\"wp-element-caption\">TestContainers Cloud: to ja jeszcze podrzuc\u0119 do chmury kilka Test Case'\u00f3w<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nabycie przez Docker oznacza strategiczny ruch w celu bezpo\u015bredniej integracji mo\u017cliwo\u015bci Testcontainers, potencjalnie rozszerzaj\u0105c jego baz\u0119 u\u017cytkownik\u00f3w i pozwoli wej\u015b\u0107 na rynek Cloud Developer Environments. Docker od dawna postawi\u0142 na zarabianie na developer productivity (w ko\u0144cu zarabiaj\u0105 teraz na pobieraniu op\u0142at za Docker Desktop), wi\u0119c wydaje si\u0119 to by\u0107 naturalne rozwini\u0119cie tego kierunku. Konkurencja jest zaciek\u0142a - Cloud Developer Environments z pewno\u015bci\u0105 by\u0142y jednym z istotniejszych trend\u00f3w w 2023 i pojawi\u0142a si\u0119 olbrzymia ilo\u015b\u0107 nowych narz\u0119dzi, ale szersza adopcja dopiero przed nami. Ciekaw\u0105 publikacje i przegl\u0105d istniej\u0105cych rozwi\u0105za\u0144 mo\u017cecie <a href=\"https:\/\/newsletter.pragmaticengineer.com\/p\/cloud-development-environments\">przeczyta\u0107 na blogu George Orosza<\/a>.  <\/p>\n","innerContent":["\n<p>Nabycie przez Docker oznacza strategiczny ruch w celu bezpo\u015bredniej integracji mo\u017cliwo\u015bci Testcontainers, potencjalnie rozszerzaj\u0105c jego baz\u0119 u\u017cytkownik\u00f3w i pozwoli wej\u015b\u0107 na rynek Cloud Developer Environments. Docker od dawna postawi\u0142 na zarabianie na developer productivity (w ko\u0144cu zarabiaj\u0105 teraz na pobieraniu op\u0142at za Docker Desktop), wi\u0119c wydaje si\u0119 to by\u0107 naturalne rozwini\u0119cie tego kierunku. Konkurencja jest zaciek\u0142a - Cloud Developer Environments z pewno\u015bci\u0105 by\u0142y jednym z istotniejszych trend\u00f3w w 2023 i pojawi\u0142a si\u0119 olbrzymia ilo\u015b\u0107 nowych narz\u0119dzi, ale szersza adopcja dopiero przed nami. Ciekaw\u0105 publikacje i przegl\u0105d istniej\u0105cych rozwi\u0105za\u0144 mo\u017cecie <a href=\"https:\/\/newsletter.pragmaticengineer.com\/p\/cloud-development-environments\">przeczyta\u0107 na blogu George Orosza<\/a>.  <\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17342,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Minions-Applause-GIF-Reaction-for-Congratulations-Well-Done-or-Excellent-Performance-Download-for-Free-and-Share-on-Facebook-Comment-or-WhatsApp-Messenger.gif\" alt=\"\" class=\"wp-image-17342\"\/><figcaption class=\"wp-element-caption\">Gratulacje dla zespo\u0142u AtomicJar - oby wi\u0119cej takich og\u0142osze\u0144 w naszym ekosystemie.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Minions-Applause-GIF-Reaction-for-Congratulations-Well-Done-or-Excellent-Performance-Download-for-Free-and-Share-on-Facebook-Comment-or-WhatsApp-Messenger.gif\" alt=\"\" class=\"wp-image-17342\"\/><figcaption class=\"wp-element-caption\">Gratulacje dla zespo\u0142u AtomicJar - oby wi\u0119cej takich og\u0142osze\u0144 w naszym ekosystemie.<\/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. Nowy IntelliJ Idea - AI Assistant, Java 21 i wi\u0119cej<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">2. Nowy IntelliJ Idea - AI Assistant, Java 21 i wi\u0119cej<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zesz\u0142y tydzie\u0144 to te\u017c nowy IntelliJ. Jest to prawdopodobnie obok Springa najcz\u0119\u015bciej u\u017cywane przez Was narz\u0119dzie, dlatego roz\u0142o\u017cymy nowo\u015bci nowe wydanie - przychodzi z nim bowiem sporo ciekawych nowo\u015bci, w tym jedna d\u0142ugo oczekiwania nowo\u015b\u0107.<\/p>\n","innerContent":["\n<p>Zesz\u0142y tydzie\u0144 to te\u017c nowy IntelliJ. Jest to prawdopodobnie obok Springa najcz\u0119\u015bciej u\u017cywane przez Was narz\u0119dzie, dlatego roz\u0142o\u017cymy nowo\u015bci nowe wydanie - przychodzi z nim bowiem sporo ciekawych nowo\u015bci, w tym jedna d\u0142ugo oczekiwania nowo\u015b\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17322,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-3-1024x585.png\" alt=\"\" class=\"wp-image-17322\"\/><figcaption class=\"wp-element-caption\">TLDR: Bezrobocie coraz bli\u017cej.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-3-1024x585.png\" alt=\"\" class=\"wp-image-17322\"\/><figcaption class=\"wp-element-caption\">TLDR: Bezrobocie coraz bli\u017cej.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wydanie <a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/\">IntelliJ IDEA 2023.3 przynosi<\/a> bowiem dost\u0119pnego dla wszystkich zainteresowanych Asystent AI, kt\u00f3ry opu\u015bci\u0142 faz\u0119 testow\u0105. Oferuje on ulepszon\u0105 generacj\u0119 kodu bezpo\u015brednio w edytorze, kontekstow\u0105 czat AI do zapyta\u0144 zwi\u0105zanych z projektem oraz akcje AI \u015bwiadome projektu, wykorzystuj\u0105ce rozszerzony kontekst do uzyskania bardziej kompleksowych wynik\u00f3w. Wyobra\u017acie sobie taki ChatGPT wbudowany w Wasze IDE, z kilkoma dodatkowymi usprawniaczami dzi\u0119ki byciu mocno zintegrowanym z samym IDE - tak zwanymi AI Actions.<\/p>\n","innerContent":["\n<p>Wydanie <a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/\">IntelliJ IDEA 2023.3 przynosi<\/a> bowiem dost\u0119pnego dla wszystkich zainteresowanych Asystent AI, kt\u00f3ry opu\u015bci\u0142 faz\u0119 testow\u0105. Oferuje on ulepszon\u0105 generacj\u0119 kodu bezpo\u015brednio w edytorze, kontekstow\u0105 czat AI do zapyta\u0144 zwi\u0105zanych z projektem oraz akcje AI \u015bwiadome projektu, wykorzystuj\u0105ce rozszerzony kontekst do uzyskania bardziej kompleksowych wynik\u00f3w. Wyobra\u017acie sobie taki ChatGPT wbudowany w Wasze IDE, z kilkoma dodatkowymi usprawniaczami dzi\u0119ki byciu mocno zintegrowanym z samym IDE - tak zwanymi AI Actions.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17328,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-4-1024x601.png\" alt=\"\" class=\"wp-image-17328\"\/><figcaption class=\"wp-element-caption\">Tutaj na screenie mo\u017cecie zobaczy\u0107 przyk\u0142ad \"Code Review\"<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-4-1024x601.png\" alt=\"\" class=\"wp-image-17328\"\/><figcaption class=\"wp-element-caption\">Tutaj na screenie mo\u017cecie zobaczy\u0107 przyk\u0142ad \"Code Review\"<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Bawi\u0142em si\u0119 ca\u0142o\u015bci\u0105 w oparciu o pocz\u0105tkowe zadania z tegorocznego Advent of Code, i na pewno jest to bardzo przydatne narz\u0119dzie, z kt\u00f3rym osobi\u015bcie mam tylko jeden problem - pricing. 10$ jako dodatek do ju\u017c istniej\u0105cych op\u0142at licencyjnych to z jednej strony nie jest du\u017co (zw\u0142aszcza \u017ce asystenci AI naprawd\u0119 potrafi\u0105 zwi\u0119kszy\u0107 produktywno\u015b\u0107 przy wielu charakterach zada\u0144), z drugiej jednak za dodatkow\u0105 dych\u0119 mamy ju\u017c ChataGPT Premium, kt\u00f3ry ma znacznie szersze mo\u017cliwo\u015bci u\u017cycia. Musz\u0119 te\u017c przyzna\u0107, \u017ce gdzie AI Assistant rzeczywi\u015bcie jest bardzo wygodnie pointegrowany i kod kt\u00f3ry wypluwa rzeczywi\u015bcie przypomina m\u00f3j w\u0142asny (co nie zawsze jest znowu tak\u0105 zalet\u0105...), to ChatGPT-4 by\u0142 w stanie nieco zaj\u015b\u0107 nieco dalej w zadaniach (cho\u0107 tegoroczne s\u0105 ). Trzeba jednak pami\u0119ta\u0107, \u017ce to w\u0142a\u015bnie szeroki kontekst naszego codebase i sp\u00f3jno\u015b\u0107 podpowiedzi z nim, a tak\u017ce samo zintegrowanie w narz\u0119dzie s\u0105 tutaj najwi\u0119kszymi zaletami, a pod tym k\u0105tem nawet obecna pierwsza wersja sprawdza si\u0119 interesuj\u0105co.<\/p>\n","innerContent":["\n<p>Bawi\u0142em si\u0119 ca\u0142o\u015bci\u0105 w oparciu o pocz\u0105tkowe zadania z tegorocznego Advent of Code, i na pewno jest to bardzo przydatne narz\u0119dzie, z kt\u00f3rym osobi\u015bcie mam tylko jeden problem - pricing. 10$ jako dodatek do ju\u017c istniej\u0105cych op\u0142at licencyjnych to z jednej strony nie jest du\u017co (zw\u0142aszcza \u017ce asystenci AI naprawd\u0119 potrafi\u0105 zwi\u0119kszy\u0107 produktywno\u015b\u0107 przy wielu charakterach zada\u0144), z drugiej jednak za dodatkow\u0105 dych\u0119 mamy ju\u017c ChataGPT Premium, kt\u00f3ry ma znacznie szersze mo\u017cliwo\u015bci u\u017cycia. Musz\u0119 te\u017c przyzna\u0107, \u017ce gdzie AI Assistant rzeczywi\u015bcie jest bardzo wygodnie pointegrowany i kod kt\u00f3ry wypluwa rzeczywi\u015bcie przypomina m\u00f3j w\u0142asny (co nie zawsze jest znowu tak\u0105 zalet\u0105...), to ChatGPT-4 by\u0142 w stanie nieco zaj\u015b\u0107 nieco dalej w zadaniach (cho\u0107 tegoroczne s\u0105 ). Trzeba jednak pami\u0119ta\u0107, \u017ce to w\u0142a\u015bnie szeroki kontekst naszego codebase i sp\u00f3jno\u015b\u0107 podpowiedzi z nim, a tak\u017ce samo zintegrowanie w narz\u0119dzie s\u0105 tutaj najwi\u0119kszymi zaletami, a pod tym k\u0105tem nawet obecna pierwsza wersja sprawdza si\u0119 interesuj\u0105co.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Przy czym to raczej OpenAI nale\u017ca\u0142oby oskar\u017cy\u0107 o dumpingowe ceny - dalej uwa\u017cam, \u017ce w stosunku do mo\u017cliwo\u015bci jakie daje ChatGPT jest po prostu \u015bmiesznie tani. Jako \u017ce wed\u0142ug FAQ rozwi\u0105zanie u\u017cywa w\u0142a\u015bnie OpenAI (cho\u0107 tw\u00f3rcy odgra\u017caj\u0105 si\u0119, \u017ce tworz\u0105 te\u017c w\u0142asne modele) to musi kosztowa\u0107, \u017ceby nie zbankrutowa\u0107 firmy matki.<\/p>\n","innerContent":["\n<p>Przy czym to raczej OpenAI nale\u017ca\u0142oby oskar\u017cy\u0107 o dumpingowe ceny - dalej uwa\u017cam, \u017ce w stosunku do mo\u017cliwo\u015bci jakie daje ChatGPT jest po prostu \u015bmiesznie tani. Jako \u017ce wed\u0142ug FAQ rozwi\u0105zanie u\u017cywa w\u0142a\u015bnie OpenAI (cho\u0107 tw\u00f3rcy odgra\u017caj\u0105 si\u0119, \u017ce tworz\u0105 te\u017c w\u0142asne modele) to musi kosztowa\u0107, \u017ceby nie zbankrutowa\u0107 firmy matki.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17349},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-12.jpeg\" alt=\"\" class=\"wp-image-17349\"\/><figcaption class=\"wp-element-caption\">Takie cuda tylko w \u015bwiecie Startup\u00f3w, aczkolwiek te AI i tak nie maj\u0105 \u0142atwego \u017cycia i gin\u0105 jak muchy po ka\u017cdej konferencji kt\u00f3rego\u015b z BigTech\u00f3w. Modele AI s\u0105 po prostu bardzo drog\u0105 zabawk\u0105<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-12.jpeg\" alt=\"\" class=\"wp-image-17349\"\/><figcaption class=\"wp-element-caption\">Takie cuda tylko w \u015bwiecie Startup\u00f3w, aczkolwiek te AI i tak nie maj\u0105 \u0142atwego \u017cycia i gin\u0105 jak muchy po ka\u017cdej konferencji kt\u00f3rego\u015b z BigTech\u00f3w. Modele AI s\u0105 po prostu bardzo drog\u0105 zabawk\u0105<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A, i pami\u0119tajcie \u017ceby rzuci\u0107 okiem na to, <a href=\"https:\/\/www.jetbrains.com\/help\/idea\/ai-assistant.html#how-we-handle-your-code-and-data\">jakie Wasze dane s\u0105 wysy\u0142ane<\/a>. JetBrains jest pod tym k\u0105tem do\u015b\u0107 transparentne.<\/p>\n","innerContent":["\n<p>A, i pami\u0119tajcie \u017ceby rzuci\u0107 okiem na to, <a href=\"https:\/\/www.jetbrains.com\/help\/idea\/ai-assistant.html#how-we-handle-your-code-and-data\">jakie Wasze dane s\u0105 wysy\u0142ane<\/a>. JetBrains jest pod tym k\u0105tem do\u015b\u0107 transparentne.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nie tylko AI jednak cz\u0142owiek \u017cyje. Dlatego deweloperzy Java z pewno\u015bci\u0105 doceni\u0105 pe\u0142ne wsparcie dla Java 21. Ta aktualizacja obejmuje g\u0142\u00f3wne rozszerzenia z tej wersji, takie jak wirtualne w\u0105tki, Record Patterns i Pattern Matching w Switchach wyra\u017ce\u0144 switch. Wsparcie dosta\u0142y nawet feature z Preview, takie jak cho\u0107by Spring Templates.<\/p>\n","innerContent":["\n<p>Nie tylko AI jednak cz\u0142owiek \u017cyje. Dlatego deweloperzy Java z pewno\u015bci\u0105 doceni\u0105 pe\u0142ne wsparcie dla Java 21. Ta aktualizacja obejmuje g\u0142\u00f3wne rozszerzenia z tej wersji, takie jak wirtualne w\u0105tki, Record Patterns i Pattern Matching w Switchach wyra\u017ce\u0144 switch. Wsparcie dosta\u0142y nawet feature z Preview, takie jak cho\u0107by Spring Templates.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Kilka nowo\u015bci te\u017c pojawi\u0142o si\u0119 w \u015bwiecie Kotlinowym. Aktualizacja zawiera porady na start w przyk\u0142adowych projektach dla os\u00f3b nowych w Kotlinie, auto-konfiguracj\u0119 Kotlina w projektach Java Gradle (chwa\u0142a za to, u\u0142atwi to gradulan\u0105 migracje!) oraz i jeszcze mocniejsze \u201czbundlowanie\u201d plugin Kotlina z IntelliJ - sami stwierd\u017acie, czy jest to dla Was zaleta. Mnie za\u015b najbardziej cieszy chyba fakt, pe\u0142nego wsparcia dla wersji Bety kompilatora K2. Pojawia si\u0119 coraz wi\u0119cej \u201clessons learned\u201d z proces\u00f3w migracji popularnych projekt\u00f3w, i my\u015bl\u0119, \u017ce w kt\u00f3rej\u015b z nadchodz\u0105cych edycji dotkn\u0119 tego tematu.<\/p>\n","innerContent":["\n<p>Kilka nowo\u015bci te\u017c pojawi\u0142o si\u0119 w \u015bwiecie Kotlinowym. Aktualizacja zawiera porady na start w przyk\u0142adowych projektach dla os\u00f3b nowych w Kotlinie, auto-konfiguracj\u0119 Kotlina w projektach Java Gradle (chwa\u0142a za to, u\u0142atwi to gradulan\u0105 migracje!) oraz i jeszcze mocniejsze \u201czbundlowanie\u201d plugin Kotlina z IntelliJ - sami stwierd\u017acie, czy jest to dla Was zaleta. Mnie za\u015b najbardziej cieszy chyba fakt, pe\u0142nego wsparcia dla wersji Bety kompilatora K2. Pojawia si\u0119 coraz wi\u0119cej \u201clessons learned\u201d z proces\u00f3w migracji popularnych projekt\u00f3w, i my\u015bl\u0119, \u017ce w kt\u00f3rej\u015b z nadchodz\u0105cych edycji dotkn\u0119 tego tematu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Poza AI, Java i Kotlin, IntelliJ IDEA 2023.3 to te\u017c kilka innych dodatk\u00f3w. Obejmuje to lepsze wsparcie dla Scali, ulepszone narz\u0119dzia baz danych oraz usprawnion\u0105 integracj\u0119 z Kubernetes i Terraform. Skupiono si\u0119 r\u00f3wnie\u017c na ulepszeniach interfejsu u\u017cytkownika i wydajno\u015bci, takich jak nowa opcja ukrywania g\u0142\u00f3wnego paska narz\u0119dzi oraz automatyczne pobieranie wsp\u00f3\u0142dzielonych indeks\u00f3w JDK. Za\u015b dodanie funkcji takich jak p\u0142ywaj\u0105cy pasek narz\u0119dzi, opcja Run to Cursor inlay w debuggerze i wszechstronny diff viewer to rzeczy na pierwszy rzut oka ma\u0142e, ale s\u0105 to dodatki z rodzaju takich, kt\u00f3re z pewno\u015bci\u0105 docenimy, gdy tylko b\u0119d\u0105 nam potrzebne.<\/p>\n","innerContent":["\n<p>Poza AI, Java i Kotlin, IntelliJ IDEA 2023.3 to te\u017c kilka innych dodatk\u00f3w. Obejmuje to lepsze wsparcie dla Scali, ulepszone narz\u0119dzia baz danych oraz usprawnion\u0105 integracj\u0119 z Kubernetes i Terraform. Skupiono si\u0119 r\u00f3wnie\u017c na ulepszeniach interfejsu u\u017cytkownika i wydajno\u015bci, takich jak nowa opcja ukrywania g\u0142\u00f3wnego paska narz\u0119dzi oraz automatyczne pobieranie wsp\u00f3\u0142dzielonych indeks\u00f3w JDK. Za\u015b dodanie funkcji takich jak p\u0142ywaj\u0105cy pasek narz\u0119dzi, opcja Run to Cursor inlay w debuggerze i wszechstronny diff viewer to rzeczy na pierwszy rzut oka ma\u0142e, ale s\u0105 to dodatki z rodzaju takich, kt\u00f3re z pewno\u015bci\u0105 docenimy, gdy tylko b\u0119d\u0105 nam potrzebne.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17336,"width":"508px","height":"auto","sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-6.png\" alt=\"\" class=\"wp-image-17336\" style=\"width:508px;height:auto\"\/><figcaption class=\"wp-element-caption\">I jeszcze na koniec w temacie AI Assistanta i bezrobocia, #protip - po prostu uczcie si\u0119 pisa\u0107 lepsze prompty ni\u017c Wasz manager i jeste\u015bcie bezpieczni. <\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-6.png\" alt=\"\" class=\"wp-image-17336\" style=\"width:508px;height:auto\"\/><figcaption class=\"wp-element-caption\">I jeszcze na koniec w temacie AI Assistanta i bezrobocia, #protip - po prostu uczcie si\u0119 pisa\u0107 lepsze prompty ni\u017c Wasz manager i jeste\u015bcie bezpieczni. <\/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\">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":17334,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-5-1024x585.png\" alt=\"\" class=\"wp-image-17334\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-5-1024x585.png\" alt=\"\" class=\"wp-image-17334\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A na koniec kilka nowych wyda\u0144 wi\u0119c i ostatni w tym roku Release Radar. Mimo, \u017ce wydaje si\u0119, \u017ce wszyscy \u017cyjemy ju\u017c \u015bwi\u0119tami, to jednak niekt\u00f3rzy wyra\u017anie broni\u0105 si\u0119 przed Code Freeze.<\/p>\n","innerContent":["\n<p>A na koniec kilka nowych wyda\u0144 wi\u0119c i ostatni w tym roku Release Radar. Mimo, \u017ce wydaje si\u0119, \u017ce wszyscy \u017cyjemy ju\u017c \u015bwi\u0119tami, to jednak niekt\u00f3rzy wyra\u017anie broni\u0105 si\u0119 przed Code Freeze.<\/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\/beehive-lab\/TornadoVM\/releases\/tag\/v1.0\">TornadoVM 1.0<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/beehive-lab\/TornadoVM\/releases\/tag\/v1.0\">TornadoVM 1.0<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>TornadoVM to projekt, kt\u00f3ry poprawia wydajno\u015b\u0107 Javy, poprzez struktury do modelowania danych i automatyczne przyspieszenie operacji na wielordzeniowych procesorach, rozwi\u0105zuj\u0105c problem tak zwanego heterogenicznego przetwarzania w rozwoju oprogramowania. Daje nam wi\u0119c abstrakcje zar\u00f3wno na potrzeby CPU, jak i GPU czy FPGA, b\u0119d\u0105c kompatybilny z takimi rozwi\u0105zaniami jak OpenCL czy Nvidia PTX.<\/p>\n","innerContent":["\n<p>TornadoVM to projekt, kt\u00f3ry poprawia wydajno\u015b\u0107 Javy, poprzez struktury do modelowania danych i automatyczne przyspieszenie operacji na wielordzeniowych procesorach, rozwi\u0105zuj\u0105c problem tak zwanego heterogenicznego przetwarzania w rozwoju oprogramowania. Daje nam wi\u0119c abstrakcje zar\u00f3wno na potrzeby CPU, jak i GPU czy FPGA, b\u0119d\u0105c kompatybilny z takimi rozwi\u0105zaniami jak OpenCL czy Nvidia PTX.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nareszcie doczekali\u015bmy si\u0119 za\u015b&nbsp;wersji TornadoVM 1.0 (cho\u0107 t\u0105 wersj\u0105 1.0 jako\u015b si\u0119 mocno nie chwal\u0105). Do kluczowych funkcji nale\u017c\u0105 nowe API dla alokacji obiekt\u00f3w i tablic poza stert\u0105 za pomoc\u0105 <code>MemorySegments<\/code> z projektu Panama, wsparcie dla operacji <code>cospi<\/code> i <code>sinpi<\/code>, rozszerzone typy danych wektorowych oraz ulepszona domy\u015blna kolejno\u015b\u0107 urz\u0105dze\u0144. Nowa wersja potrafi zintegrowa\u0107 si\u0119 z JDK 21 oraz Graal 23.1.0 (w tym wszystkimi j\u0119zykami opartymi o Truffle). Wydanie to adresuje tak\u017ce wiele b\u0142\u0119d\u00f3w, w tym problemy z urz\u0105dzeniami SPIR-V, a tak\u017ce lepsz\u0105 kompilacj\u0119 FPGA oraz wsparcia batchowego przetwarzania danych.<\/p>\n","innerContent":["\n<p>Nareszcie doczekali\u015bmy si\u0119 za\u015b&nbsp;wersji TornadoVM 1.0 (cho\u0107 t\u0105 wersj\u0105 1.0 jako\u015b si\u0119 mocno nie chwal\u0105). Do kluczowych funkcji nale\u017c\u0105 nowe API dla alokacji obiekt\u00f3w i tablic poza stert\u0105 za pomoc\u0105 <code>MemorySegments<\/code> z projektu Panama, wsparcie dla operacji <code>cospi<\/code> i <code>sinpi<\/code>, rozszerzone typy danych wektorowych oraz ulepszona domy\u015blna kolejno\u015b\u0107 urz\u0105dze\u0144. Nowa wersja potrafi zintegrowa\u0107 si\u0119 z JDK 21 oraz Graal 23.1.0 (w tym wszystkimi j\u0119zykami opartymi o Truffle). Wydanie to adresuje tak\u017ce wiele b\u0142\u0119d\u00f3w, w tym problemy z urz\u0105dzeniami SPIR-V, a tak\u017ce lepsz\u0105 kompilacj\u0119 FPGA oraz wsparcia batchowego przetwarzania danych.<\/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:\/\/docs.gradle.org\/8.5\/release-notes.html\">Gradle 8.6<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/docs.gradle.org\/8.5\/release-notes.html\">Gradle 8.6<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zdecydowanie najbardziej kluczowa nowo\u015b\u0107 przychodz\u0105ca z <a href=\"https:\/\/docs.gradle.org\/8.5\/release-notes.html\">Gradle 8.5 <\/a> to pe\u0142ne wsparcie dla Java 21, umo\u017cliwiaj\u0105c u\u017cytkownikom budowanie, testowanie i uruchamianie aplikacji z wykorzystaniem najnowszej wersji Java. Wydanie to skupia si\u0119 r\u00f3wnie\u017c na poprawie Kotlina DSL (w tym aspekcie pracy chyba nigdy nie zabraknie), a tak\u017ce na wsparciu katalog\u00f3w wersji w skryptach prekompilowanych. Dodatkowo przynosi ulepszenia w komunikatach b\u0142\u0119d\u00f3w, aktualizacje Javadoc oraz bardziej kompaktowy i klarowniejszy rozmiar pliku Gradle Wrapper.<\/p>\n","innerContent":["\n<p>Zdecydowanie najbardziej kluczowa nowo\u015b\u0107 przychodz\u0105ca z <a href=\"https:\/\/docs.gradle.org\/8.5\/release-notes.html\">Gradle 8.5 <\/a> to pe\u0142ne wsparcie dla Java 21, umo\u017cliwiaj\u0105c u\u017cytkownikom budowanie, testowanie i uruchamianie aplikacji z wykorzystaniem najnowszej wersji Java. Wydanie to skupia si\u0119 r\u00f3wnie\u017c na poprawie Kotlina DSL (w tym aspekcie pracy chyba nigdy nie zabraknie), a tak\u017ce na wsparciu katalog\u00f3w wersji w skryptach prekompilowanych. Dodatkowo przynosi ulepszenia w komunikatach b\u0142\u0119d\u00f3w, aktualizacje Javadoc oraz bardziej kompaktowy i klarowniejszy rozmiar pliku Gradle Wrapper.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Jednak motywem przewodnim Gradle 8.5 to koncentracja na tworzeniu build\u00f3w i weryfikacji zale\u017cno\u015bci. Nowe <strong>Build Features API<\/strong> oferuje wi\u0119ksz\u0105 elastyczno\u015b\u0107 i kontrol\u0119, a tak\u017ce jest wed\u0142ug tw\u00f3rc\u00f3w znacznie wygodniejsze dla u\u017cytkownika ko\u0144cowego.<\/p>\n","innerContent":["\n<p>Jednak motywem przewodnim Gradle 8.5 to koncentracja na tworzeniu build\u00f3w i weryfikacji zale\u017cno\u015bci. Nowe <strong>Build Features API<\/strong> oferuje wi\u0119ksz\u0105 elastyczno\u015b\u0107 i kontrol\u0119, a tak\u017ce jest wed\u0142ug tw\u00f3rc\u00f3w znacznie wygodniejsze dla u\u017cytkownika ko\u0144cowego.<\/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:\/\/in.relation.to\/2023\/12\/05\/hibernate-search-7-0-0-Final\/\">Hibernate Search 7.0<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/in.relation.to\/2023\/12\/05\/hibernate-search-7-0-0-Final\/\">Hibernate Search 7.0<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Hibernate Search to biblioteka do integracji Hibernate ORM z Apache Lucene lub Elasticsearch. Niedawno zosta\u0142a wydana jej <a href=\"https:\/\/in.relation.to\/2023\/12\/05\/hibernate-search-7-0-0-Final\/\">wersja 7.0<\/a>, kt\u00f3ra aktualizuje do JDK 11 i Hibernate ORM 6.4, zwi\u0119kszaj\u0105c kompatybilno\u015b\u0107 z Elasticsearch 8.10\/8.11 i OpenSearch 2.10\/2.11, oraz aktualizuj\u0105c do Lucene 9.8. Nowe funkcje obejmuj\u0105 Hibernate Search Bin-Of-Material dla \u0142atwiejszego zarz\u0105dzania zale\u017cno\u015bciami, eksperymentaln\u0105 kompatybilno\u015b\u0107 z Amazon OpenSearch Serverless i wsparcie dla ulepszonego wsparcia do Multi-Tenancy wprowadzonego w Hibernate ORM 6.4. Wydanie oznacza r\u00f3wnie\u017c przej\u015bcie na Jakarta EE, wraz z pe\u0142n\u0105 repakietyzacj\u0105 projektu.<\/p>\n","innerContent":["\n<p>Hibernate Search to biblioteka do integracji Hibernate ORM z Apache Lucene lub Elasticsearch. Niedawno zosta\u0142a wydana jej <a href=\"https:\/\/in.relation.to\/2023\/12\/05\/hibernate-search-7-0-0-Final\/\">wersja 7.0<\/a>, kt\u00f3ra aktualizuje do JDK 11 i Hibernate ORM 6.4, zwi\u0119kszaj\u0105c kompatybilno\u015b\u0107 z Elasticsearch 8.10\/8.11 i OpenSearch 2.10\/2.11, oraz aktualizuj\u0105c do Lucene 9.8. Nowe funkcje obejmuj\u0105 Hibernate Search Bin-Of-Material dla \u0142atwiejszego zarz\u0105dzania zale\u017cno\u015bciami, eksperymentaln\u0105 kompatybilno\u015b\u0107 z Amazon OpenSearch Serverless i wsparcie dla ulepszonego wsparcia do Multi-Tenancy wprowadzonego w Hibernate ORM 6.4. Wydanie oznacza r\u00f3wnie\u017c przej\u015bcie na Jakarta EE, wraz z pe\u0142n\u0105 repakietyzacj\u0105 projektu.<\/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:\/\/quarkus.io\/blog\/quarkus-3-6-0-released\/\">Quarkus 3.6<\/a><\/h3>\n","innerContent":["\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/quarkus.io\/blog\/quarkus-3-6-0-released\/\">Quarkus 3.6<\/a><\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatnia nowo\u015b\u0107 b\u0119dzie naprawd\u0119 szybka.<\/p>\n","innerContent":["\n<p>Ostatnia nowo\u015b\u0107 b\u0119dzie naprawd\u0119 szybka.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Quarkus 3.6.0 przynosi kilka ulepsze\u0144, koncentruj\u0105c si\u0119 na poprawach obs\u0142ugi zdarze\u0144 wysy\u0142anych przez serwer (SSE) w kliencie REST, oraz licznych ulepszeniach OpenID Connect i og\u00f3lnego bezpiecze\u0144stwa framework. Wydanie to obejmuje r\u00f3wnie\u017c przeniesienie <code>quarkus-jaeger<\/code> i <code>quarkus-smallrye-opentracing<\/code> do Quarkiverse.<\/p>\n","innerContent":["\n<p>Quarkus 3.6.0 przynosi kilka ulepsze\u0144, koncentruj\u0105c si\u0119 na poprawach obs\u0142ugi zdarze\u0144 wysy\u0142anych przez serwer (SSE) w kliencie REST, oraz licznych ulepszeniach OpenID Connect i og\u00f3lnego bezpiecze\u0144stwa framework. Wydanie to obejmuje r\u00f3wnie\u017c przeniesienie <code>quarkus-jaeger<\/code> i <code>quarkus-smallrye-opentracing<\/code> do Quarkiverse.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Quarkiverse to ekosystem rozszerze\u0144 dla Quarkus, platformy open-source do tworzenia i wdra\u017cania aplikacji mikroserwisowych w Javie. Quarkus zosta\u0142 zaprojektowany, aby by\u0107 lekki i szybki, co czyni go odpowiednim dla \u015brodowisk chmurowych i kontenerowych, przy r\u00f3wnoczesnej mo\u017cliwo\u015bci rozbudowy. Quarkiverse dzia\u0142a jako rodzaj \"hubu\" dla rozszerze\u0144 spo\u0142eczno\u015bci, kt\u00f3re nie s\u0105 bezpo\u015brednio cz\u0119\u015bci\u0105 g\u0142\u00f3wnego projektu Quarkus.<\/p>\n","innerContent":["\n<p>Quarkiverse to ekosystem rozszerze\u0144 dla Quarkus, platformy open-source do tworzenia i wdra\u017cania aplikacji mikroserwisowych w Javie. Quarkus zosta\u0142 zaprojektowany, aby by\u0107 lekki i szybki, co czyni go odpowiednim dla \u015brodowisk chmurowych i kontenerowych, przy r\u00f3wnoczesnej mo\u017cliwo\u015bci rozbudowy. Quarkiverse dzia\u0142a jako rodzaj \"hubu\" dla rozszerze\u0144 spo\u0142eczno\u015bci, kt\u00f3re nie s\u0105 bezpo\u015brednio cz\u0119\u015bci\u0105 g\u0142\u00f3wnego projektu Quarkus.<\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17321","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=17321"}],"version-history":[{"count":17,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17321\/revisions"}],"predecessor-version":[{"id":17356,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17321\/revisions\/17356"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/17339"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=17321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=17321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=17321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}