{"id":17374,"date":"2023-12-20T19:41:33","date_gmt":"2023-12-20T18:41:33","guid":{"rendered":"https:\/\/vived.io\/?p=17374"},"modified":"2023-12-21T00:35:36","modified_gmt":"2023-12-20T23:35:36","slug":"amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/","title":{"rendered":"Amazon Q AI z automatyczn\u0105 migracj\u0105 z JDK 1.8 &#8211; JVM Weekly vol. 158"},"content":{"rendered":"\n<h2 id=\"1-java-advent-calendar-o-jupyter-notebookach\" data-num=1>1. Java Advent Calendar o Jupyter Notebookach<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"583\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-7-1024x583.png\" alt=\"\" class=\"wp-image-17375\" style=\"width:590px;height:auto\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-7-1024x583.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-7-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-7-768x437.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-7-1536x875.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-7.png 1587w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Jestem wielkim fanem Kalendarzy Adwentowych i sta\u0142y si\u0119 one jednym z moich najbardziej wyczekiwanych aspekt\u00f3w okresu przed\u015bwi\u0105tecznego. O Advent of Code ju\u017c kiedy\u015b pisa\u0142em, ale tego typu inicjatyw jest wi\u0119cej. W \u015bwiecie Javy od lat istnieje cho\u0107by inicjatywa kalendarza adventowego Javy, gdzie codziennie publikowany jest nowy artyku\u0142 po\u015bwi\u0119cony jakiemu\u015b ciekawego aspektowi ekosystemu. Stwierdzi\u0142em, \u017ce warto o inicjatywie napisa\u0107, a przy okazji podzieli\u0107 si\u0119 moim ulubion\u0105 tegoroczn\u0105 publikacj\u0105 (przynajmniej do tej pory) &#8211; \u015bwietnym opracowaniem tematu Jupyter Notebook i jego wsparcia dla j\u0119zyk\u00f3w JVM.<\/p>\n\n\n\n<p>Dzie\u0144 10 tegorocznego kalendarza <a href=\"https:\/\/www.javaadvent.com\/2023\/12\/jupyter-notebooks-and-java.html\">JUPYTER NOTEBOOKS AND JAVA?<\/a> omawia integracj\u0119 Javy (cho\u0107 wspomniany jest te\u017c Kotlin) z Jupyter Notebookami, podkre\u015blaj\u0105c korzy\u015bci i potencja\u0142 tej kombinacji. Jupyter Notebooki to interaktywne \u015brodowisko obliczeniowe, kt\u00f3re umo\u017cliwia tworzenie i udost\u0119pnianie dokument\u00f3w zawieraj\u0105cych \u017cywy kod (kt\u00f3rym mo\u017cna si\u0119 bawi\u0107 i go edytowa\u0107), mo\u017cliwo\u015b\u0107 tworzenia r\u00f3wna\u0144, wizualizacji czy tekstu \u201cnarracyjnego\u201d &#8211; wszystkiego co konieczne jest przy wszelkiej ma\u015bci researchach (akademickich, ale nie tylko). Tradycyjnie Java nie by\u0142a uwa\u017cana za sprzyjaj\u0105c\u0105 \u201ceksploracyjnemu\u201d trybowi tworzenia kodu Notebook\u00f3w z powodu procesu kompilacji. Jednak\u017ce, nowe narz\u0119dzia takie jak JBang czy ulepszenia w samym OpenJDK upro\u015bci\u0142y eksperymentowanie w Javie, co umo\u017cliwia jej efektywniejsze u\u017cywania z Notebookach.<\/p>\n\n\n\n<p>Artyku\u0142 przedstawia r\u00f3\u017cne aspekty u\u017cywania Javy w Notebookach Jupytera. Przedstawia zalety interaktywnego trybu pracy, pozwalaj\u0105cego na wykonanie kodu w czasie rzeczywistym i dostosowywanie go, co jest odmian\u0105 od typowego sposobu rozwoju aplikacji w Javie. Tekst porusza r\u00f3wnie\u017c potencja\u0142 Javy w wizualizacji danych w Notebookach Jupyter, a tak\u017ce wygod\u0119 interfejs\u00f3w IDE opartych na lokalnie hostowanych aplikacji webowych. Co wa\u017cne, og\u0142oszono te\u017c powstanie organizacji githubowej <a href=\"https:\/\/github.com\/jupyter-java\">jupyter-java<\/a>. Ma ona na celu uproszczenie u\u017cywania Javy w \u015brodowiskach Jupyter, i dbanie o dalsze perspektywy tej integracji. Pierwsz\u0105 wydan\u0105 publikacj\u0105 jest <a href=\"https:\/\/github.com\/jupyter-java\/awesome-jupyter-java\">awesome-jupyter-java<\/a>, kt\u00f3ra stanowi zbi\u00f3r link\u00f3w, kt\u00f3re mog\u0105 przyda\u0107 si\u0119 ka\u017cdemu, kto chcia\u0142by zainteresowa\u0107 si\u0119 tematem.<\/p>\n\n\n\n<p>Og\u00f3lnie to tylko jedna z pere\u0142ek <a href=\"https:\/\/www.javaadvent.com\/calendar\">z tegorocznego kalendarza<\/a> &#8211; polecam ka\u017cdemu sprawdzi\u0107 samodzielnie, bo w\u015br\u00f3d 21 artyku\u0142\u00f3w (a mo\u017cna si\u0119 spodziewa\u0107 jeszcze kolejnych 3) powinno znale\u017a\u0107 si\u0119 co\u015b dla ka\u017cdego.<\/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=\"Kalendarz Adwentowy ft. Quebonafide #1 [Czes\u0142aw Mozil &amp; Grajkowie Przysz\u0142o\u015bci]\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/Yver6CWFTx8?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><figcaption class=\"wp-element-caption\">A \u017ceby si\u0119 zrobi\u0142o \u015bwi\u0105tecznie &#8211; piosenka \u201cKalendarz Adwentowy\u201d jednego z ciekawszych polskich artyst\u00f3w ostatniej dekady, Czes\u0142awa Mozila, znanego jako Czes\u0142aw \u015apiewa. Bardzo polecam <a href=\"https:\/\/www.youtube.com\/watch?v=Yver6CWFTx8&amp;list=PLjZYhLGQjuL_J8nKgXigzKNoSGF9gsyfN\">ca\u0142\u0105 p\u0142yt\u0119 z kt\u00f3rej pochodzi<\/a>, nawet je\u015bli nie znacie polskiego!<\/figcaption><\/figure>\n\n\n\n<h2 id=\"2-amazon-q-ai-wprowadza-automatyczna-migracja-z-jdk-1-8\" data-num=2>2. Amazon Q AI wprowadza automatyczn\u0105 migracja z JDK 1.8<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-9-1024x585.png\" alt=\"\" class=\"wp-image-17382\" style=\"width:698px;height:auto\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-9-1024x585.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-9-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-9-768x439.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-9-1536x878.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-9.png 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Zanim wr\u00f3cimy do \u015bwi\u0105tecznych motyw\u00f3w, to po drodze jedna pozosta\u0142o\u015b\u0107 po AWS Re:Invent. Doroczna konferencja Amazonu w zesz\u0142ym roku przynios\u0142a AWS Lambda SnapStart, redukuj\u0105cy Cold Start funkcji Lambda pisanych w Javie. Przyznam, \u017ce oryginalnie wydawa\u0142o mi si\u0119, \u017ce w tym roku nie by\u0142o za wiele Java-related og\u0142osze\u0144 poza wersji AWS SDK dla idiomatycznego Kotlina. Okaza\u0142o si\u0119 jednak, \u017ce jedna nowo\u015b\u0107 prawie przelecia\u0142a pod moim radarem, a jest niezwykle interesuj\u0105ca. Dotyczy bowiem popularnych ostatnio LLM i opublikowanego na konferencji nowego asystenta od Amazonu &#8211; Amazon Q.<\/p>\n\n\n\n<p>Amazon Q to AI asystent dost\u0119pne dla Visual Studio Code oraz IntelliJ dla u\u017cytkownik\u00f3w z licencj\u0105 CodeWhisperer Professional. Jedn\u0105 (i kluczow\u0105 z perspektywy tego akapitu) funkcj\u0105 Amazon Q jest <a href=\"https:\/\/aws.amazon.com\/q\/aws\/code-transformation\/\">Code Transformation<\/a>, umo\u017cliwiaj\u0105ca inteligentny masowy refaktoring, automatyzuj\u0105c powtarzalne zadania. Na razie jego mo\u017cliwo\u015bci s\u0105 relatywnie w\u0105skie, ale z naszej strony naprawd\u0119 interesuj\u0105ce &#8211; narz\u0119dzie to wspiera modernizacj\u0119 aplikacji Javowych, przekszta\u0142caj\u0105c kod z wersji Java 8 lub Java 11 na wersj\u0119 Java 17, czyli najnowszego LTS-a. Warto wspomnie\u0107, \u017ce narz\u0119dzie jest na razie w wersji Preview, co wi\u0105\u017ce si\u0119 z pewnymi ograniczeniach &#8211; na ten moment wspierane s\u0105 tylko projekty oparte o Mavena.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/ChatGPT.gif\" alt=\"\" class=\"wp-image-17400\" style=\"width:991px;height:auto\"\/><figcaption class=\"wp-element-caption\">Obrodzi\u0142o nam tym AI &#8211; w ko\u0144cu dopiero co mieli\u015bmy AI Asystenta od JetBrains.<\/figcaption><\/figure>\n\n\n\n<p>Dzia\u0142anie procesu opisuje tekst <a href=\"https:\/\/aws.amazon.com\/blogs\/aws\/upgrade-your-java-applications-with-amazon-q-code-transformation-preview\/\">Upgrade your Java applications with Amazon Q Code Transformation (preview)<\/a>, w kt\u00f3rym mo\u017cemy zapozna\u0107 si\u0119 ze sposobem dzia\u0142ania ca\u0142o\u015bci. Wida\u0107, \u017ce Amazon dobrze przemy\u015bla\u0142 sobie dzia\u0142anie i zadba\u0142 o to, \u017ceby w wygodny spos\u00f3b (troch\u0119 podobny do standardowego Review kodu) da\u0107 mo\u017cliwo\u015b\u0107 zatwierdzenia zmian cz\u0142owiekowi, co z pewno\u015bci\u0105 uspokoi u\u017cytkownik\u00f3w boj\u0105cych si\u0119 nadmiarowej magii.<\/p>\n\n\n\n<p>Aczkolwiek i tak pewnie odb\u0119dzie si\u0119 to zgodnie z zasad\u0105:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"990\" height=\"507\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-14.png\" alt=\"\" class=\"wp-image-17392\" style=\"width:535px;height:auto\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-14.png 990w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-14-300x154.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-14-768x393.png 768w\" sizes=\"auto, (max-width: 990px) 100vw, 990px\" \/><\/figure><\/div>\n\n\n<p>no, chyba \u017ce w\u0142\u0105czy si\u0119 nasza ludzka natura i na si\u0142\u0119 b\u0119dziemy starali si\u0119 znale\u017a\u0107 maszynie b\u0142\u0105d.<\/p>\n\n\n\n<p>To kto skacze na g\u0142\u00f3wk\u0119 i pr\u00f3buje u siebie pierwszy \ud83d\ude03? U mnie \u201cniestety\u201d wszystko na JDK 17, ale bardzo ch\u0119tnie zrealizuje z kim\u015b jakie\u015b POC.<\/p>\n\n\n\n<h2 id=\"3-nowe-zycie-klasycznej-appletowej-gry-dzieki-cheerpj\" data-num=3>3. Nowe \u017cycie klasycznej appletowej gry dzi\u0119ki CheerpJ<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13-1024x585.png\" alt=\"\" class=\"wp-image-17390\" style=\"width:728px;height:auto\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13-1024x585.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13-768x439.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13-1536x878.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13.png 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>To teraz zamknijmy nostalgicznie, \u015bwi\u0105tecznym akcentem.<\/p>\n\n\n\n<p>Chyba jestem ju\u017c w wieku, \u017ce w okresie Bo\u017cego Narodzenia macie potrzeb\u0119 wracania do emocji z dzieci\u0144stwa &#8211; a jestem w wieku, \u017ce moje mocne emocje z dzieci\u0144stwa bardzo wi\u0105\u017c\u0105 si\u0119 z grami komputerowymi. Przyk\u0142adowo, w zesz\u0142ym roku gra\u0142em w mojego ukochanego Warcrafta 3, kt\u00f3ry na szcz\u0119\u015bcie obecnie dost\u0119pny jest na wszystkie dost\u0119pne systemy i maszyny. Jednak nie o ka\u017cdej grze mo\u017cna tak powiedzie\u0107 &#8211; przyk\u0142adowo, okazuje si\u0119 \u017ce wiele oryginalnych technologii webowych ze wzgl\u0119du na wymagania bezpiecze\u0144stwo (pocz\u0105tki sieci by\u0142y dziurawe jak sito) czy po prostu porzucenie przez oryginalnych tw\u00f3rc\u00f3w jest trudne do replikacji na wsp\u00f3\u0142czesnych systemach operacyjnych. Sam mia\u0142em niedawno problemy z odpaleniem aplikacji napisanych we Flashu, a jak si\u0119 okazuje, pasjonaci staroci stworzonych jako Applety Javy te\u017c nie maj\u0105 dzisiaj lekkiego \u017cycia.<\/p>\n\n\n\n<p>Na szcz\u0119\u015bcie Digital Preservation ma swoich czempion\u00f3w i wiele pozytywnie zakr\u0119conych historii, jak ta dotycz\u0105ca Dragon Court.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"embed-responsive embed-responsive-16by9\"><iframe loading=\"lazy\" title=\"Dragon Court - Home of Dragon Guard\" width=\"500\" height=\"375\" src=\"https:\/\/www.youtube.com\/embed\/fc0vP7AJfhA?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>Dragon Court to gra, kt\u00f3ra wydana by\u0142a oko\u0142o 1997 roku i bazowa\u0142a na aplecie Java. Swego czasu zyska\u0142a olbrzymi\u0105 popularno\u015b\u0107, g\u0142\u00f3wnie dzi\u0119ki systemowi zach\u0119caj\u0105cemu do codziennego logowania, co mocno przywi\u0105za\u0142o do niej baz\u0119 u\u017cytkownik\u00f3w.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"898\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-15.png\" alt=\"\" class=\"wp-image-17394\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-15.png 640w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-15-214x300.png 214w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption class=\"wp-element-caption\">Je\u015bli zastanawiacie si\u0119 sk\u0105d tw\u00f3rcy gier mobilnych czerpi\u0105 inspiracje, macie \u017ar\u00f3d\u0142o. Nie trzeba nikomu dzi\u0119kowa\u0107.<\/figcaption><\/figure><\/div>\n\n\n<p>Jednak po usuni\u0119ciu wsparcia dla aplet\u00f3w Java w przegl\u0105darkach i zaniedbaniu przez oryginalnego tw\u00f3rc\u0119, gra sta\u0142a si\u0119 niegrywalna i przesz\u0142a do kategorii &#8222;abandonware&#8221;. Pr\u00f3by o\u017cywienia gry przez wieloletnich fan\u00f3w napotyka\u0142y na trudno\u015bci zwi\u0105zane z niekompletnymi materia\u0142ami \u017ar\u00f3d\u0142owymi i opiera\u0142y si\u0119 na wspomnieniach fan\u00f3w, co uniemo\u017cliwia\u0142o wiern\u0105 rekonstrukcj\u0119.<\/p>\n\n\n\n<p>Historia ma jednak happy end. Odrodzenie Dragon Court mo\u017cliwe sta\u0142o si\u0119 dzi\u0119ki wykorzystaniu CheerpJ, maszyny wirtualnej Java dla przegl\u0105darek, co umo\u017cliwi\u0142o uruchomienie gry w ich nowych wersjach. Projekt, nazwany <strong>Dragon Court: Revived<\/strong>, rozpocz\u0105\u0142 si\u0119 od odzyskania ostatniego znanego binarnego pliku gry z Internet Archive. Istotn\u0105 cz\u0119\u015bci\u0105 projektu by\u0142o dekompilacja oryginalnego pliku .jar, co pozwoli\u0142o na napraw\u0119 b\u0142\u0119d\u00f3w i dodanie nowych funkcji. U\u017cycie CheerpJ u\u0142atwi\u0142o tak\u017ce tworzenie nowych poprawek i ulepsze\u0144, takich jak wsparcie dla urz\u0105dze\u0144 dotykowych i zachowanie preferencji u\u017cytkownik\u00f3w w ciasteczkach. Jednak dzia\u0142anie fan\u00f3w nie ogranicza si\u0119 do technikali\u00f3w &#8211; obejmuje te\u017c tworzenie nowych tre\u015bci, zmiany balansu i poprawki jako\u015bci \u017cycia, co czyni Dragon Court: Revived niezwyk\u0142ym ho\u0142dem dla jego dziedzictwa, jednocze\u015bnie adaptuj\u0105c je dla wsp\u00f3\u0142czesnych graczy.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"2800\" height=\"1904\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-16.png\" alt=\"\" class=\"wp-image-17403\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-16.png 2800w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-16-300x204.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-16-1024x696.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-16-768x522.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-16-1536x1044.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-16-2048x1393.png 2048w\" sizes=\"auto, (max-width: 2800px) 100vw, 2800px\" \/><figcaption class=\"wp-element-caption\">Je\u015bli to jest to czego pragn\u0105 dzisiejsi gracze\u2026 cho\u0107 przyznam, \u017ce sam wsi\u0105kn\u0105\u0142em na 30 minut, wi\u0119c jaka\u015b magia w tym jest   \ud83d\ude00<\/figcaption><\/figure>\n\n\n\n<p>CheerpJ to og\u00f3lnie ciekawy projekt i od dawna szuka\u0142em okazji aby o nim wspomnie\u0107. Mamy do czynienia z implementacj\u0105 JVM, kt\u00f3ra umo\u017cliwia uruchamianie aplikacji bezpo\u015brednio w przegl\u0105darce internetowej, bez potrzeby instalacji dodatkowych wtyczek czy oprogramowania. CheerpJ konwertuje kod bajtowy Java na JavaScript, umo\u017cliwiaj\u0105c dzia\u0142anie aplikacj w \u015brodowisku przegl\u0105darki, co pozwala na ich dalsze u\u017cytkowanie i rozw\u00f3j, nawet je\u015bli oryginalne \u015brodowisko, dla kt\u00f3rego zosta\u0142y zaprojektowane, ju\u017c nie istnieje &#8211; jak to ma miejsce w przypadku applet\u00f3w i zwi\u0105zanych z nimi wtyczek. CheerpJ daje takim aplikacjom drugie \u017cycie i jest w tym co\u015b pi\u0119knego.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-8-1024x768.png\" alt=\"\" class=\"wp-image-17378\" style=\"width:991px;height:auto\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-8-1024x768.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-8-300x225.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-8-768x576.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-8-1536x1152.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-8-2048x1536.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">A \u017ceby zamkn\u0105\u0107 ca\u0142o\u015b\u0107 odpowiedni\u0105 klamr\u0105 &#8211; wczoraj w przyp\u0142ywie nostalgii kupi\u0142em sobie moje ukochane \u201cJedi Knight II: Jedi Outcast\u201d na Switcha. Czasem niekt\u00f3rych wspomnie\u0144 lepiej nie pr\u00f3bowa\u0107 odtwarza\u0107, bo si\u0119 mo\u017cna nieco rozczarowa\u0107\u2026<\/figcaption><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>No to co, widzimy si\u0119 ju\u017c&nbsp;w 2024! Mam nadzieje, \u017ce okres \u015bwi\u0105teczno-noworoczny sp\u0119dzicie tak jak sobie to wymarzyli\u015bcie \ud83c\udf84\ud83e\udd42. <\/p>\n\n\n\n<p>PS: Przysz\u0142y rok rozpoczniemy sobie od podsumowania 2023. Ju\u017c zacz\u0105\u0142em nad tym tekstem pracowa\u0107 i co Wam mog\u0119 powiedzie\u0107 &#8211; dzia\u0142o si\u0119!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Zapraszam do ostatniego wydania w tym roku! Ju\u017c jestem w \u015bwi\u0105tecznym nastroju, wi\u0119c nie b\u0119dzie brakowa\u0142o takich w\u0142a\u015bnie motyw\u00f3w.<\/p>\n","protected":false},"author":10,"featured_media":17398,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259,1],"tags":[],"class_list":["post-17374","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm-pl","category-no-category"],"acf":{"estimated_reading_time":"7","feature_image_blog":false,"weekly_summary":false,"push_notification_image":false,"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>Amazon Q AI z automatyczn\u0105 migracj\u0105 z JDK 1.8 - JVM Weekly vol. 158 - 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\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Amazon Q AI z automatyczn\u0105 migracj\u0105 z JDK 1.8 - JVM Weekly vol. 158 - Vived\" \/>\n<meta property=\"og:description\" content=\"Zapraszam do ostatniego wydania w tym roku! Ju\u017c jestem w \u015bwi\u0105tecznym nastroju, wi\u0119c nie b\u0119dzie brakowa\u0142o takich w\u0142a\u015bnie motyw\u00f3w.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-20T18:41:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-20T23:35:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Linkedin-post-1200x675-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\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\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"Amazon Q AI z automatyczn\u0105 migracj\u0105 z JDK 1.8 &#8211; JVM Weekly vol. 158\",\"datePublished\":\"2023-12-20T18:41:33+00:00\",\"dateModified\":\"2023-12-20T23:35:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/\"},\"wordCount\":1500,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Linkedin-post-1200x675-1.jpg\",\"articleSection\":[\"JVM\",\"No category\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/\",\"url\":\"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/\",\"name\":\"Amazon Q AI z automatyczn\u0105 migracj\u0105 z JDK 1.8 - JVM Weekly vol. 158 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Linkedin-post-1200x675-1.jpg\",\"datePublished\":\"2023-12-20T18:41:33+00:00\",\"dateModified\":\"2023-12-20T23:35:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Linkedin-post-1200x675-1.jpg\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Linkedin-post-1200x675-1.jpg\",\"width\":1200,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Amazon Q AI z automatyczn\u0105 migracj\u0105 z JDK 1.8 &#8211; JVM Weekly vol. 158\"}]},{\"@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":"Amazon Q AI z automatyczn\u0105 migracj\u0105 z JDK 1.8 - JVM Weekly vol. 158 - 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\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/","og_locale":"pl_PL","og_type":"article","og_title":"Amazon Q AI z automatyczn\u0105 migracj\u0105 z JDK 1.8 - JVM Weekly vol. 158 - Vived","og_description":"Zapraszam do ostatniego wydania w tym roku! Ju\u017c jestem w \u015bwi\u0105tecznym nastroju, wi\u0119c nie b\u0119dzie brakowa\u0142o takich w\u0142a\u015bnie motyw\u00f3w.","og_url":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/","og_site_name":"Vived","article_published_time":"2023-12-20T18:41:33+00:00","article_modified_time":"2023-12-20T23:35:36+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Linkedin-post-1200x675-1.jpg","type":"image\/jpeg"}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"Amazon Q AI z automatyczn\u0105 migracj\u0105 z JDK 1.8 &#8211; JVM Weekly vol. 158","datePublished":"2023-12-20T18:41:33+00:00","dateModified":"2023-12-20T23:35:36+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/"},"wordCount":1500,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Linkedin-post-1200x675-1.jpg","articleSection":["JVM","No category"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/","url":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/","name":"Amazon Q AI z automatyczn\u0105 migracj\u0105 z JDK 1.8 - JVM Weekly vol. 158 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Linkedin-post-1200x675-1.jpg","datePublished":"2023-12-20T18:41:33+00:00","dateModified":"2023-12-20T23:35:36+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Linkedin-post-1200x675-1.jpg","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/Linkedin-post-1200x675-1.jpg","width":1200,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/amazon-q-ai-z-automatyczna-migracja-z-jdk-1-8-jvm-weekly-vol-158\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Amazon Q AI z automatyczn\u0105 migracj\u0105 z JDK 1.8 &#8211; JVM Weekly vol. 158"}]},{"@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. Java Advent Calendar o Jupyter Notebookach<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">1. Java Advent Calendar o Jupyter Notebookach<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17375,"width":"590px","height":"auto","sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-7-1024x583.png\" alt=\"\" class=\"wp-image-17375\" style=\"width:590px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-7-1024x583.png\" alt=\"\" class=\"wp-image-17375\" style=\"width:590px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Jestem wielkim fanem Kalendarzy Adwentowych i sta\u0142y si\u0119 one jednym z moich najbardziej wyczekiwanych aspekt\u00f3w okresu przed\u015bwi\u0105tecznego. O Advent of Code ju\u017c kiedy\u015b pisa\u0142em, ale tego typu inicjatyw jest wi\u0119cej. W \u015bwiecie Javy od lat istnieje cho\u0107by inicjatywa kalendarza adventowego Javy, gdzie codziennie publikowany jest nowy artyku\u0142 po\u015bwi\u0119cony jakiemu\u015b ciekawego aspektowi ekosystemu. Stwierdzi\u0142em, \u017ce warto o inicjatywie napisa\u0107, a przy okazji podzieli\u0107 si\u0119 moim ulubion\u0105 tegoroczn\u0105 publikacj\u0105 (przynajmniej do tej pory) - \u015bwietnym opracowaniem tematu Jupyter Notebook i jego wsparcia dla j\u0119zyk\u00f3w JVM.<\/p>\n","innerContent":["\n<p>Jestem wielkim fanem Kalendarzy Adwentowych i sta\u0142y si\u0119 one jednym z moich najbardziej wyczekiwanych aspekt\u00f3w okresu przed\u015bwi\u0105tecznego. O Advent of Code ju\u017c kiedy\u015b pisa\u0142em, ale tego typu inicjatyw jest wi\u0119cej. W \u015bwiecie Javy od lat istnieje cho\u0107by inicjatywa kalendarza adventowego Javy, gdzie codziennie publikowany jest nowy artyku\u0142 po\u015bwi\u0119cony jakiemu\u015b ciekawego aspektowi ekosystemu. Stwierdzi\u0142em, \u017ce warto o inicjatywie napisa\u0107, a przy okazji podzieli\u0107 si\u0119 moim ulubion\u0105 tegoroczn\u0105 publikacj\u0105 (przynajmniej do tej pory) - \u015bwietnym opracowaniem tematu Jupyter Notebook i jego wsparcia dla j\u0119zyk\u00f3w JVM.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dzie\u0144 10 tegorocznego kalendarza <a href=\"https:\/\/www.javaadvent.com\/2023\/12\/jupyter-notebooks-and-java.html\">JUPYTER NOTEBOOKS AND JAVA?<\/a> omawia integracj\u0119 Javy (cho\u0107 wspomniany jest te\u017c Kotlin) z Jupyter Notebookami, podkre\u015blaj\u0105c korzy\u015bci i potencja\u0142 tej kombinacji. Jupyter Notebooki to interaktywne \u015brodowisko obliczeniowe, kt\u00f3re umo\u017cliwia tworzenie i udost\u0119pnianie dokument\u00f3w zawieraj\u0105cych \u017cywy kod (kt\u00f3rym mo\u017cna si\u0119 bawi\u0107 i go edytowa\u0107), mo\u017cliwo\u015b\u0107 tworzenia r\u00f3wna\u0144, wizualizacji czy tekstu \u201cnarracyjnego\u201d - wszystkiego co konieczne jest przy wszelkiej ma\u015bci researchach (akademickich, ale nie tylko). Tradycyjnie Java nie by\u0142a uwa\u017cana za sprzyjaj\u0105c\u0105 \u201ceksploracyjnemu\u201d trybowi tworzenia kodu Notebook\u00f3w z powodu procesu kompilacji. Jednak\u017ce, nowe narz\u0119dzia takie jak JBang czy ulepszenia w samym OpenJDK upro\u015bci\u0142y eksperymentowanie w Javie, co umo\u017cliwia jej efektywniejsze u\u017cywania z Notebookach.<\/p>\n","innerContent":["\n<p>Dzie\u0144 10 tegorocznego kalendarza <a href=\"https:\/\/www.javaadvent.com\/2023\/12\/jupyter-notebooks-and-java.html\">JUPYTER NOTEBOOKS AND JAVA?<\/a> omawia integracj\u0119 Javy (cho\u0107 wspomniany jest te\u017c Kotlin) z Jupyter Notebookami, podkre\u015blaj\u0105c korzy\u015bci i potencja\u0142 tej kombinacji. Jupyter Notebooki to interaktywne \u015brodowisko obliczeniowe, kt\u00f3re umo\u017cliwia tworzenie i udost\u0119pnianie dokument\u00f3w zawieraj\u0105cych \u017cywy kod (kt\u00f3rym mo\u017cna si\u0119 bawi\u0107 i go edytowa\u0107), mo\u017cliwo\u015b\u0107 tworzenia r\u00f3wna\u0144, wizualizacji czy tekstu \u201cnarracyjnego\u201d - wszystkiego co konieczne jest przy wszelkiej ma\u015bci researchach (akademickich, ale nie tylko). Tradycyjnie Java nie by\u0142a uwa\u017cana za sprzyjaj\u0105c\u0105 \u201ceksploracyjnemu\u201d trybowi tworzenia kodu Notebook\u00f3w z powodu procesu kompilacji. Jednak\u017ce, nowe narz\u0119dzia takie jak JBang czy ulepszenia w samym OpenJDK upro\u015bci\u0142y eksperymentowanie w Javie, co umo\u017cliwia jej efektywniejsze u\u017cywania z Notebookach.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Artyku\u0142 przedstawia r\u00f3\u017cne aspekty u\u017cywania Javy w Notebookach Jupytera. Przedstawia zalety interaktywnego trybu pracy, pozwalaj\u0105cego na wykonanie kodu w czasie rzeczywistym i dostosowywanie go, co jest odmian\u0105 od typowego sposobu rozwoju aplikacji w Javie. Tekst porusza r\u00f3wnie\u017c potencja\u0142 Javy w wizualizacji danych w Notebookach Jupyter, a tak\u017ce wygod\u0119 interfejs\u00f3w IDE opartych na lokalnie hostowanych aplikacji webowych. Co wa\u017cne, og\u0142oszono te\u017c powstanie organizacji githubowej <a href=\"https:\/\/github.com\/jupyter-java\">jupyter-java<\/a>. Ma ona na celu uproszczenie u\u017cywania Javy w \u015brodowiskach Jupyter, i dbanie o dalsze perspektywy tej integracji. Pierwsz\u0105 wydan\u0105 publikacj\u0105 jest <a href=\"https:\/\/github.com\/jupyter-java\/awesome-jupyter-java\">awesome-jupyter-java<\/a>, kt\u00f3ra stanowi zbi\u00f3r link\u00f3w, kt\u00f3re mog\u0105 przyda\u0107 si\u0119 ka\u017cdemu, kto chcia\u0142by zainteresowa\u0107 si\u0119 tematem.<\/p>\n","innerContent":["\n<p>Artyku\u0142 przedstawia r\u00f3\u017cne aspekty u\u017cywania Javy w Notebookach Jupytera. Przedstawia zalety interaktywnego trybu pracy, pozwalaj\u0105cego na wykonanie kodu w czasie rzeczywistym i dostosowywanie go, co jest odmian\u0105 od typowego sposobu rozwoju aplikacji w Javie. Tekst porusza r\u00f3wnie\u017c potencja\u0142 Javy w wizualizacji danych w Notebookach Jupyter, a tak\u017ce wygod\u0119 interfejs\u00f3w IDE opartych na lokalnie hostowanych aplikacji webowych. Co wa\u017cne, og\u0142oszono te\u017c powstanie organizacji githubowej <a href=\"https:\/\/github.com\/jupyter-java\">jupyter-java<\/a>. Ma ona na celu uproszczenie u\u017cywania Javy w \u015brodowiskach Jupyter, i dbanie o dalsze perspektywy tej integracji. Pierwsz\u0105 wydan\u0105 publikacj\u0105 jest <a href=\"https:\/\/github.com\/jupyter-java\/awesome-jupyter-java\">awesome-jupyter-java<\/a>, kt\u00f3ra stanowi zbi\u00f3r link\u00f3w, kt\u00f3re mog\u0105 przyda\u0107 si\u0119 ka\u017cdemu, kto chcia\u0142by zainteresowa\u0107 si\u0119 tematem.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Og\u00f3lnie to tylko jedna z pere\u0142ek <a href=\"https:\/\/www.javaadvent.com\/calendar\">z tegorocznego kalendarza<\/a> - polecam ka\u017cdemu sprawdzi\u0107 samodzielnie, bo w\u015br\u00f3d 21 artyku\u0142\u00f3w (a mo\u017cna si\u0119 spodziewa\u0107 jeszcze kolejnych 3) powinno znale\u017a\u0107 si\u0119 co\u015b dla ka\u017cdego.<\/p>\n","innerContent":["\n<p>Og\u00f3lnie to tylko jedna z pere\u0142ek <a href=\"https:\/\/www.javaadvent.com\/calendar\">z tegorocznego kalendarza<\/a> - polecam ka\u017cdemu sprawdzi\u0107 samodzielnie, bo w\u015br\u00f3d 21 artyku\u0142\u00f3w (a mo\u017cna si\u0119 spodziewa\u0107 jeszcze kolejnych 3) powinno znale\u017a\u0107 si\u0119 co\u015b dla ka\u017cdego.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=Yver6CWFTx8","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=Yver6CWFTx8\n<\/div><figcaption class=\"wp-element-caption\">A \u017ceby si\u0119 zrobi\u0142o \u015bwi\u0105tecznie - piosenka \u201cKalendarz Adwentowy\u201d jednego z ciekawszych polskich artyst\u00f3w ostatniej dekady, Czes\u0142awa Mozila, znanego jako Czes\u0142aw \u015apiewa. Bardzo polecam <a href=\"https:\/\/www.youtube.com\/watch?v=Yver6CWFTx8&amp;list=PLjZYhLGQjuL_J8nKgXigzKNoSGF9gsyfN\">ca\u0142\u0105 p\u0142yt\u0119 z kt\u00f3rej pochodzi<\/a>, nawet je\u015bli nie znacie polskiego!<\/figcaption><\/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=Yver6CWFTx8\n<\/div><figcaption class=\"wp-element-caption\">A \u017ceby si\u0119 zrobi\u0142o \u015bwi\u0105tecznie - piosenka \u201cKalendarz Adwentowy\u201d jednego z ciekawszych polskich artyst\u00f3w ostatniej dekady, Czes\u0142awa Mozila, znanego jako Czes\u0142aw \u015apiewa. Bardzo polecam <a href=\"https:\/\/www.youtube.com\/watch?v=Yver6CWFTx8&amp;list=PLjZYhLGQjuL_J8nKgXigzKNoSGF9gsyfN\">ca\u0142\u0105 p\u0142yt\u0119 z kt\u00f3rej pochodzi<\/a>, nawet je\u015bli nie znacie polskiego!<\/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. Amazon Q AI wprowadza automatyczn\u0105 migracja z JDK 1.8<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">2. Amazon Q AI wprowadza automatyczn\u0105 migracja z JDK 1.8<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17382,"width":"698px","height":"auto","sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-9-1024x585.png\" alt=\"\" class=\"wp-image-17382\" style=\"width:698px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-9-1024x585.png\" alt=\"\" class=\"wp-image-17382\" style=\"width:698px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zanim wr\u00f3cimy do \u015bwi\u0105tecznych motyw\u00f3w, to po drodze jedna pozosta\u0142o\u015b\u0107 po AWS Re:Invent. Doroczna konferencja Amazonu w zesz\u0142ym roku przynios\u0142a AWS Lambda SnapStart, redukuj\u0105cy Cold Start funkcji Lambda pisanych w Javie. Przyznam, \u017ce oryginalnie wydawa\u0142o mi si\u0119, \u017ce w tym roku nie by\u0142o za wiele Java-related og\u0142osze\u0144 poza wersji AWS SDK dla idiomatycznego Kotlina. Okaza\u0142o si\u0119 jednak, \u017ce jedna nowo\u015b\u0107 prawie przelecia\u0142a pod moim radarem, a jest niezwykle interesuj\u0105ca. Dotyczy bowiem popularnych ostatnio LLM i opublikowanego na konferencji nowego asystenta od Amazonu - Amazon Q.<\/p>\n","innerContent":["\n<p>Zanim wr\u00f3cimy do \u015bwi\u0105tecznych motyw\u00f3w, to po drodze jedna pozosta\u0142o\u015b\u0107 po AWS Re:Invent. Doroczna konferencja Amazonu w zesz\u0142ym roku przynios\u0142a AWS Lambda SnapStart, redukuj\u0105cy Cold Start funkcji Lambda pisanych w Javie. Przyznam, \u017ce oryginalnie wydawa\u0142o mi si\u0119, \u017ce w tym roku nie by\u0142o za wiele Java-related og\u0142osze\u0144 poza wersji AWS SDK dla idiomatycznego Kotlina. Okaza\u0142o si\u0119 jednak, \u017ce jedna nowo\u015b\u0107 prawie przelecia\u0142a pod moim radarem, a jest niezwykle interesuj\u0105ca. Dotyczy bowiem popularnych ostatnio LLM i opublikowanego na konferencji nowego asystenta od Amazonu - Amazon Q.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Amazon Q to AI asystent dost\u0119pne dla Visual Studio Code oraz IntelliJ dla u\u017cytkownik\u00f3w z licencj\u0105 CodeWhisperer Professional. Jedn\u0105 (i kluczow\u0105 z perspektywy tego akapitu) funkcj\u0105 Amazon Q jest <a href=\"https:\/\/aws.amazon.com\/q\/aws\/code-transformation\/\">Code Transformation<\/a>, umo\u017cliwiaj\u0105ca inteligentny masowy refaktoring, automatyzuj\u0105c powtarzalne zadania. Na razie jego mo\u017cliwo\u015bci s\u0105 relatywnie w\u0105skie, ale z naszej strony naprawd\u0119 interesuj\u0105ce - narz\u0119dzie to wspiera modernizacj\u0119 aplikacji Javowych, przekszta\u0142caj\u0105c kod z wersji Java 8 lub Java 11 na wersj\u0119 Java 17, czyli najnowszego LTS-a. Warto wspomnie\u0107, \u017ce narz\u0119dzie jest na razie w wersji Preview, co wi\u0105\u017ce si\u0119 z pewnymi ograniczeniach - na ten moment wspierane s\u0105 tylko projekty oparte o Mavena.<\/p>\n","innerContent":["\n<p>Amazon Q to AI asystent dost\u0119pne dla Visual Studio Code oraz IntelliJ dla u\u017cytkownik\u00f3w z licencj\u0105 CodeWhisperer Professional. Jedn\u0105 (i kluczow\u0105 z perspektywy tego akapitu) funkcj\u0105 Amazon Q jest <a href=\"https:\/\/aws.amazon.com\/q\/aws\/code-transformation\/\">Code Transformation<\/a>, umo\u017cliwiaj\u0105ca inteligentny masowy refaktoring, automatyzuj\u0105c powtarzalne zadania. Na razie jego mo\u017cliwo\u015bci s\u0105 relatywnie w\u0105skie, ale z naszej strony naprawd\u0119 interesuj\u0105ce - narz\u0119dzie to wspiera modernizacj\u0119 aplikacji Javowych, przekszta\u0142caj\u0105c kod z wersji Java 8 lub Java 11 na wersj\u0119 Java 17, czyli najnowszego LTS-a. Warto wspomnie\u0107, \u017ce narz\u0119dzie jest na razie w wersji Preview, co wi\u0105\u017ce si\u0119 z pewnymi ograniczeniach - na ten moment wspierane s\u0105 tylko projekty oparte o Mavena.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":17400,"width":"991px","height":"auto","sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/ChatGPT.gif\" alt=\"\" class=\"wp-image-17400\" style=\"width:991px;height:auto\"\/><figcaption class=\"wp-element-caption\">Obrodzi\u0142o nam tym AI - w ko\u0144cu dopiero co mieli\u015bmy AI Asystenta od JetBrains.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/ChatGPT.gif\" alt=\"\" class=\"wp-image-17400\" style=\"width:991px;height:auto\"\/><figcaption class=\"wp-element-caption\">Obrodzi\u0142o nam tym AI - w ko\u0144cu dopiero co mieli\u015bmy AI Asystenta od JetBrains.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dzia\u0142anie procesu opisuje tekst <a href=\"https:\/\/aws.amazon.com\/blogs\/aws\/upgrade-your-java-applications-with-amazon-q-code-transformation-preview\/\">Upgrade your Java applications with Amazon Q Code Transformation (preview)<\/a>, w kt\u00f3rym mo\u017cemy zapozna\u0107 si\u0119 ze sposobem dzia\u0142ania ca\u0142o\u015bci. Wida\u0107, \u017ce Amazon dobrze przemy\u015bla\u0142 sobie dzia\u0142anie i zadba\u0142 o to, \u017ceby w wygodny spos\u00f3b (troch\u0119 podobny do standardowego Review kodu) da\u0107 mo\u017cliwo\u015b\u0107 zatwierdzenia zmian cz\u0142owiekowi, co z pewno\u015bci\u0105 uspokoi u\u017cytkownik\u00f3w boj\u0105cych si\u0119 nadmiarowej magii.<\/p>\n","innerContent":["\n<p>Dzia\u0142anie procesu opisuje tekst <a href=\"https:\/\/aws.amazon.com\/blogs\/aws\/upgrade-your-java-applications-with-amazon-q-code-transformation-preview\/\">Upgrade your Java applications with Amazon Q Code Transformation (preview)<\/a>, w kt\u00f3rym mo\u017cemy zapozna\u0107 si\u0119 ze sposobem dzia\u0142ania ca\u0142o\u015bci. Wida\u0107, \u017ce Amazon dobrze przemy\u015bla\u0142 sobie dzia\u0142anie i zadba\u0142 o to, \u017ceby w wygodny spos\u00f3b (troch\u0119 podobny do standardowego Review kodu) da\u0107 mo\u017cliwo\u015b\u0107 zatwierdzenia zmian cz\u0142owiekowi, co z pewno\u015bci\u0105 uspokoi u\u017cytkownik\u00f3w boj\u0105cych si\u0119 nadmiarowej magii.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Aczkolwiek i tak pewnie odb\u0119dzie si\u0119 to zgodnie z zasad\u0105:<\/p>\n","innerContent":["\n<p>Aczkolwiek i tak pewnie odb\u0119dzie si\u0119 to zgodnie z zasad\u0105:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17392,"width":"535px","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-14.png\" alt=\"\" class=\"wp-image-17392\" style=\"width:535px;height:auto\"\/><\/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-14.png\" alt=\"\" class=\"wp-image-17392\" style=\"width:535px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>no, chyba \u017ce w\u0142\u0105czy si\u0119 nasza ludzka natura i na si\u0142\u0119 b\u0119dziemy starali si\u0119 znale\u017a\u0107 maszynie b\u0142\u0105d.<\/p>\n","innerContent":["\n<p>no, chyba \u017ce w\u0142\u0105czy si\u0119 nasza ludzka natura i na si\u0142\u0119 b\u0119dziemy starali si\u0119 znale\u017a\u0107 maszynie b\u0142\u0105d.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>To kto skacze na g\u0142\u00f3wk\u0119 i pr\u00f3buje u siebie pierwszy \ud83d\ude03? U mnie \u201cniestety\u201d wszystko na JDK 17, ale bardzo ch\u0119tnie zrealizuje z kim\u015b jakie\u015b POC.<\/p>\n","innerContent":["\n<p>To kto skacze na g\u0142\u00f3wk\u0119 i pr\u00f3buje u siebie pierwszy \ud83d\ude03? U mnie \u201cniestety\u201d wszystko na JDK 17, ale bardzo ch\u0119tnie zrealizuje z kim\u015b jakie\u015b POC.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">3. Nowe \u017cycie klasycznej appletowej gry dzi\u0119ki CheerpJ<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">3. Nowe \u017cycie klasycznej appletowej gry dzi\u0119ki CheerpJ<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17390,"width":"728px","height":"auto","sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13-1024x585.png\" alt=\"\" class=\"wp-image-17390\" style=\"width:728px;height:auto\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-13-1024x585.png\" alt=\"\" class=\"wp-image-17390\" style=\"width:728px;height:auto\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>To teraz zamknijmy nostalgicznie, \u015bwi\u0105tecznym akcentem.<\/p>\n","innerContent":["\n<p>To teraz zamknijmy nostalgicznie, \u015bwi\u0105tecznym akcentem.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Chyba jestem ju\u017c w wieku, \u017ce w okresie Bo\u017cego Narodzenia macie potrzeb\u0119 wracania do emocji z dzieci\u0144stwa - a jestem w wieku, \u017ce moje mocne emocje z dzieci\u0144stwa bardzo wi\u0105\u017c\u0105 si\u0119 z grami komputerowymi. Przyk\u0142adowo, w zesz\u0142ym roku gra\u0142em w mojego ukochanego Warcrafta 3, kt\u00f3ry na szcz\u0119\u015bcie obecnie dost\u0119pny jest na wszystkie dost\u0119pne systemy i maszyny. Jednak nie o ka\u017cdej grze mo\u017cna tak powiedzie\u0107 - przyk\u0142adowo, okazuje si\u0119 \u017ce wiele oryginalnych technologii webowych ze wzgl\u0119du na wymagania bezpiecze\u0144stwo (pocz\u0105tki sieci by\u0142y dziurawe jak sito) czy po prostu porzucenie przez oryginalnych tw\u00f3rc\u00f3w jest trudne do replikacji na wsp\u00f3\u0142czesnych systemach operacyjnych. Sam mia\u0142em niedawno problemy z odpaleniem aplikacji napisanych we Flashu, a jak si\u0119 okazuje, pasjonaci staroci stworzonych jako Applety Javy te\u017c nie maj\u0105 dzisiaj lekkiego \u017cycia.<\/p>\n","innerContent":["\n<p>Chyba jestem ju\u017c w wieku, \u017ce w okresie Bo\u017cego Narodzenia macie potrzeb\u0119 wracania do emocji z dzieci\u0144stwa - a jestem w wieku, \u017ce moje mocne emocje z dzieci\u0144stwa bardzo wi\u0105\u017c\u0105 si\u0119 z grami komputerowymi. Przyk\u0142adowo, w zesz\u0142ym roku gra\u0142em w mojego ukochanego Warcrafta 3, kt\u00f3ry na szcz\u0119\u015bcie obecnie dost\u0119pny jest na wszystkie dost\u0119pne systemy i maszyny. Jednak nie o ka\u017cdej grze mo\u017cna tak powiedzie\u0107 - przyk\u0142adowo, okazuje si\u0119 \u017ce wiele oryginalnych technologii webowych ze wzgl\u0119du na wymagania bezpiecze\u0144stwo (pocz\u0105tki sieci by\u0142y dziurawe jak sito) czy po prostu porzucenie przez oryginalnych tw\u00f3rc\u00f3w jest trudne do replikacji na wsp\u00f3\u0142czesnych systemach operacyjnych. Sam mia\u0142em niedawno problemy z odpaleniem aplikacji napisanych we Flashu, a jak si\u0119 okazuje, pasjonaci staroci stworzonych jako Applety Javy te\u017c nie maj\u0105 dzisiaj lekkiego \u017cycia.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na szcz\u0119\u015bcie Digital Preservation ma swoich czempion\u00f3w i wiele pozytywnie zakr\u0119conych historii, jak ta dotycz\u0105ca Dragon Court.<\/p>\n","innerContent":["\n<p>Na szcz\u0119\u015bcie Digital Preservation ma swoich czempion\u00f3w i wiele pozytywnie zakr\u0119conych historii, jak ta dotycz\u0105ca Dragon Court.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=fc0vP7AJfhA","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-4-3 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-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=fc0vP7AJfhA\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=fc0vP7AJfhA\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dragon Court to gra, kt\u00f3ra wydana by\u0142a oko\u0142o 1997 roku i bazowa\u0142a na aplecie Java. Swego czasu zyska\u0142a olbrzymi\u0105 popularno\u015b\u0107, g\u0142\u00f3wnie dzi\u0119ki systemowi zach\u0119caj\u0105cemu do codziennego logowania, co mocno przywi\u0105za\u0142o do niej baz\u0119 u\u017cytkownik\u00f3w.<\/p>\n","innerContent":["\n<p>Dragon Court to gra, kt\u00f3ra wydana by\u0142a oko\u0142o 1997 roku i bazowa\u0142a na aplecie Java. Swego czasu zyska\u0142a olbrzymi\u0105 popularno\u015b\u0107, g\u0142\u00f3wnie dzi\u0119ki systemowi zach\u0119caj\u0105cemu do codziennego logowania, co mocno przywi\u0105za\u0142o do niej baz\u0119 u\u017cytkownik\u00f3w.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17394,"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\/image-15.png\" alt=\"\" class=\"wp-image-17394\"\/><figcaption class=\"wp-element-caption\">Je\u015bli zastanawiacie si\u0119 sk\u0105d tw\u00f3rcy gier mobilnych czerpi\u0105 inspiracje, macie \u017ar\u00f3d\u0142o. Nie trzeba nikomu dzi\u0119kowa\u0107.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-15.png\" alt=\"\" class=\"wp-image-17394\"\/><figcaption class=\"wp-element-caption\">Je\u015bli zastanawiacie si\u0119 sk\u0105d tw\u00f3rcy gier mobilnych czerpi\u0105 inspiracje, macie \u017ar\u00f3d\u0142o. Nie trzeba nikomu dzi\u0119kowa\u0107.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Jednak po usuni\u0119ciu wsparcia dla aplet\u00f3w Java w przegl\u0105darkach i zaniedbaniu przez oryginalnego tw\u00f3rc\u0119, gra sta\u0142a si\u0119 niegrywalna i przesz\u0142a do kategorii \"abandonware\". Pr\u00f3by o\u017cywienia gry przez wieloletnich fan\u00f3w napotyka\u0142y na trudno\u015bci zwi\u0105zane z niekompletnymi materia\u0142ami \u017ar\u00f3d\u0142owymi i opiera\u0142y si\u0119 na wspomnieniach fan\u00f3w, co uniemo\u017cliwia\u0142o wiern\u0105 rekonstrukcj\u0119.<\/p>\n","innerContent":["\n<p>Jednak po usuni\u0119ciu wsparcia dla aplet\u00f3w Java w przegl\u0105darkach i zaniedbaniu przez oryginalnego tw\u00f3rc\u0119, gra sta\u0142a si\u0119 niegrywalna i przesz\u0142a do kategorii \"abandonware\". Pr\u00f3by o\u017cywienia gry przez wieloletnich fan\u00f3w napotyka\u0142y na trudno\u015bci zwi\u0105zane z niekompletnymi materia\u0142ami \u017ar\u00f3d\u0142owymi i opiera\u0142y si\u0119 na wspomnieniach fan\u00f3w, co uniemo\u017cliwia\u0142o wiern\u0105 rekonstrukcj\u0119.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Historia ma jednak happy end. Odrodzenie Dragon Court mo\u017cliwe sta\u0142o si\u0119 dzi\u0119ki wykorzystaniu CheerpJ, maszyny wirtualnej Java dla przegl\u0105darek, co umo\u017cliwi\u0142o uruchomienie gry w ich nowych wersjach. Projekt, nazwany <strong>Dragon Court: Revived<\/strong>, rozpocz\u0105\u0142 si\u0119 od odzyskania ostatniego znanego binarnego pliku gry z Internet Archive. Istotn\u0105 cz\u0119\u015bci\u0105 projektu by\u0142o dekompilacja oryginalnego pliku .jar, co pozwoli\u0142o na napraw\u0119 b\u0142\u0119d\u00f3w i dodanie nowych funkcji. U\u017cycie CheerpJ u\u0142atwi\u0142o tak\u017ce tworzenie nowych poprawek i ulepsze\u0144, takich jak wsparcie dla urz\u0105dze\u0144 dotykowych i zachowanie preferencji u\u017cytkownik\u00f3w w ciasteczkach. Jednak dzia\u0142anie fan\u00f3w nie ogranicza si\u0119 do technikali\u00f3w - obejmuje te\u017c tworzenie nowych tre\u015bci, zmiany balansu i poprawki jako\u015bci \u017cycia, co czyni Dragon Court: Revived niezwyk\u0142ym ho\u0142dem dla jego dziedzictwa, jednocze\u015bnie adaptuj\u0105c je dla wsp\u00f3\u0142czesnych graczy.<\/p>\n","innerContent":["\n<p>Historia ma jednak happy end. Odrodzenie Dragon Court mo\u017cliwe sta\u0142o si\u0119 dzi\u0119ki wykorzystaniu CheerpJ, maszyny wirtualnej Java dla przegl\u0105darek, co umo\u017cliwi\u0142o uruchomienie gry w ich nowych wersjach. Projekt, nazwany <strong>Dragon Court: Revived<\/strong>, rozpocz\u0105\u0142 si\u0119 od odzyskania ostatniego znanego binarnego pliku gry z Internet Archive. Istotn\u0105 cz\u0119\u015bci\u0105 projektu by\u0142o dekompilacja oryginalnego pliku .jar, co pozwoli\u0142o na napraw\u0119 b\u0142\u0119d\u00f3w i dodanie nowych funkcji. U\u017cycie CheerpJ u\u0142atwi\u0142o tak\u017ce tworzenie nowych poprawek i ulepsze\u0144, takich jak wsparcie dla urz\u0105dze\u0144 dotykowych i zachowanie preferencji u\u017cytkownik\u00f3w w ciasteczkach. Jednak dzia\u0142anie fan\u00f3w nie ogranicza si\u0119 do technikali\u00f3w - obejmuje te\u017c tworzenie nowych tre\u015bci, zmiany balansu i poprawki jako\u015bci \u017cycia, co czyni Dragon Court: Revived niezwyk\u0142ym ho\u0142dem dla jego dziedzictwa, jednocze\u015bnie adaptuj\u0105c je dla wsp\u00f3\u0142czesnych graczy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":17403},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-16.png\" alt=\"\" class=\"wp-image-17403\"\/><figcaption class=\"wp-element-caption\">Je\u015bli to jest to czego pragn\u0105 dzisiejsi gracze\u2026 cho\u0107 przyznam, \u017ce sam wsi\u0105kn\u0105\u0142em na 30 minut, wi\u0119c jaka\u015b magia w tym jest   \ud83d\ude00<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-16.png\" alt=\"\" class=\"wp-image-17403\"\/><figcaption class=\"wp-element-caption\">Je\u015bli to jest to czego pragn\u0105 dzisiejsi gracze\u2026 cho\u0107 przyznam, \u017ce sam wsi\u0105kn\u0105\u0142em na 30 minut, wi\u0119c jaka\u015b magia w tym jest   \ud83d\ude00<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>CheerpJ to og\u00f3lnie ciekawy projekt i od dawna szuka\u0142em okazji aby o nim wspomnie\u0107. Mamy do czynienia z implementacj\u0105 JVM, kt\u00f3ra umo\u017cliwia uruchamianie aplikacji bezpo\u015brednio w przegl\u0105darce internetowej, bez potrzeby instalacji dodatkowych wtyczek czy oprogramowania. CheerpJ konwertuje kod bajtowy Java na JavaScript, umo\u017cliwiaj\u0105c dzia\u0142anie aplikacj w \u015brodowisku przegl\u0105darki, co pozwala na ich dalsze u\u017cytkowanie i rozw\u00f3j, nawet je\u015bli oryginalne \u015brodowisko, dla kt\u00f3rego zosta\u0142y zaprojektowane, ju\u017c nie istnieje - jak to ma miejsce w przypadku applet\u00f3w i zwi\u0105zanych z nimi wtyczek. CheerpJ daje takim aplikacjom drugie \u017cycie i jest w tym co\u015b pi\u0119knego.<\/p>\n","innerContent":["\n<p>CheerpJ to og\u00f3lnie ciekawy projekt i od dawna szuka\u0142em okazji aby o nim wspomnie\u0107. Mamy do czynienia z implementacj\u0105 JVM, kt\u00f3ra umo\u017cliwia uruchamianie aplikacji bezpo\u015brednio w przegl\u0105darce internetowej, bez potrzeby instalacji dodatkowych wtyczek czy oprogramowania. CheerpJ konwertuje kod bajtowy Java na JavaScript, umo\u017cliwiaj\u0105c dzia\u0142anie aplikacj w \u015brodowisku przegl\u0105darki, co pozwala na ich dalsze u\u017cytkowanie i rozw\u00f3j, nawet je\u015bli oryginalne \u015brodowisko, dla kt\u00f3rego zosta\u0142y zaprojektowane, ju\u017c nie istnieje - jak to ma miejsce w przypadku applet\u00f3w i zwi\u0105zanych z nimi wtyczek. CheerpJ daje takim aplikacjom drugie \u017cycie i jest w tym co\u015b pi\u0119knego.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":17378,"width":"991px","height":"auto","sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-8-1024x768.png\" alt=\"\" class=\"wp-image-17378\" style=\"width:991px;height:auto\"\/><figcaption class=\"wp-element-caption\">A \u017ceby zamkn\u0105\u0107 ca\u0142o\u015b\u0107 odpowiedni\u0105 klamr\u0105 - wczoraj w przyp\u0142ywie nostalgii kupi\u0142em sobie moje ukochane \u201cJedi Knight II: Jedi Outcast\u201d na Switcha. Czasem niekt\u00f3rych wspomnie\u0144 lepiej nie pr\u00f3bowa\u0107 odtwarza\u0107, bo si\u0119 mo\u017cna nieco rozczarowa\u0107\u2026<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/12\/image-8-1024x768.png\" alt=\"\" class=\"wp-image-17378\" style=\"width:991px;height:auto\"\/><figcaption class=\"wp-element-caption\">A \u017ceby zamkn\u0105\u0107 ca\u0142o\u015b\u0107 odpowiedni\u0105 klamr\u0105 - wczoraj w przyp\u0142ywie nostalgii kupi\u0142em sobie moje ukochane \u201cJedi Knight II: Jedi Outcast\u201d na Switcha. Czasem niekt\u00f3rych wspomnie\u0144 lepiej nie pr\u00f3bowa\u0107 odtwarza\u0107, bo si\u0119 mo\u017cna nieco rozczarowa\u0107\u2026<\/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\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>No to co, widzimy si\u0119 ju\u017c&nbsp;w 2024! Mam nadzieje, \u017ce okres \u015bwi\u0105teczno-noworoczny sp\u0119dzicie tak jak sobie to wymarzyli\u015bcie \ud83c\udf84\ud83e\udd42. <\/p>\n","innerContent":["\n<p>No to co, widzimy si\u0119 ju\u017c&nbsp;w 2024! Mam nadzieje, \u017ce okres \u015bwi\u0105teczno-noworoczny sp\u0119dzicie tak jak sobie to wymarzyli\u015bcie \ud83c\udf84\ud83e\udd42. <\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>PS: Przysz\u0142y rok rozpoczniemy sobie od podsumowania 2023. Ju\u017c zacz\u0105\u0142em nad tym tekstem pracowa\u0107 i co Wam mog\u0119 powiedzie\u0107 - dzia\u0142o si\u0119!<\/p>\n","innerContent":["\n<p>PS: Przysz\u0142y rok rozpoczniemy sobie od podsumowania 2023. Ju\u017c zacz\u0105\u0142em nad tym tekstem pracowa\u0107 i co Wam mog\u0119 powiedzie\u0107 - dzia\u0142o si\u0119!<\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17374","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=17374"}],"version-history":[{"count":9,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17374\/revisions"}],"predecessor-version":[{"id":17414,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17374\/revisions\/17414"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/17398"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=17374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=17374"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=17374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}