{"id":10167,"date":"2021-03-16T13:36:42","date_gmt":"2021-03-16T12:36:42","guid":{"rendered":"https:\/\/vived.io\/jvm-tuesday-vol-29\/"},"modified":"2022-09-19T13:10:55","modified_gmt":"2022-09-19T11:10:55","slug":"jvm-tuesday-vol-29","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/","title":{"rendered":"JVM Tuesday vol. 29"},"content":{"rendered":"<h2 id=\"1-premiera-jdk-16\" data-num=1><a href=\"http:\/\/openjdk.java.net\/projects\/jdk\/16\/\">1. Premiera JDK 16<\/a><\/h2>\n<p>Mamy to !<\/p>\n<p>W dniu dzisiejszym, premier\u0119 ma (a raczej b\u0119dzie mie\u0107 w godzinach wieczornych) Java 16. Co prawda od czasu, gdy opisywali\u015bmy jej Release Candidate nie zmieni\u0142o si\u0119 za wiele, ale mamy dla Was niespodziank\u0119. Ot\u00f3\u017c postanowili\u015bmy z tej okazji przygotowa\u0107 dla Was pierwszy\u2026 podcast<\/p>\n<figure class=\"kg-card kg-embed-card\"><iframe loading=\"lazy\" src=\"https:\/\/w.soundcloud.com\/player\/?visual=true&amp;url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F1008983998&amp;show_artwork=true\" width=\"100%\" height=\"400\" frameborder=\"no\" scrolling=\"no\"><\/iframe><\/figure>\n<p>Wraz <a href=\"https:\/\/github.com\/pjanczyk\">Piotrkiem Janczykiem<\/a> z zespo\u0142u Vived porozmawiali\u015bmy o nowym wydaniu &#8211; czego si\u0119 mo\u017cna po nim spodziewa\u0107 oraz na jakie featury najbardziej czekamy. <a href=\"https:\/\/soundcloud.com\/user-407324123\/vived-keep-up-podcast-1-co-nowego-przynosi-jdk-16\">Zapraszamy do ods\u0142uchu<\/a>!<\/p>\n<p>Je\u017celi preferujecie form\u0119 tekstow\u0105, zapraszamy do jednej ze starych edycji, <a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-24\/\">gdzie przeszli\u015bmy przez wszystkie JEPy<\/a>. Dodatkowo, jako \u017ce w odcinku obiecali\u015bmy te\u017c podzieli\u0107 si\u0119 informacjami o planowanych zmianach w Kotlinie, cz\u0119stujcie si\u0119 <a href=\"https:\/\/github.com\/Kotlin\/KEEP\/blob\/master\/proposals\/jvm-records.md\">linkiem<\/a> o planowanej adopcji rekord\u00f3w w tym j\u0119zyku.<\/p>\n<h2 id=\"2-opublikowano-bete-spring-native\" data-num=2><a href=\"https:\/\/spring.io\/blog\/2021\/03\/11\/announcing-spring-native-beta\">2. Opublikowano bet\u0119 Spring Native<\/a><\/h2>\n<p>Przyznam szczerze, \u017ce by\u0142a to jedna z tych informacji, kt\u00f3rych z jednej strony si\u0119 nieco spodziewa\u0142em (w ko\u0144cu wsparcie w inkubacji by\u0142o od d\u0142u\u017cszego czasu) , z drugiej za\u015b wzi\u0119\u0142a mnie mocno z zaskoczenia, gdy\u017c oczekiwa\u0142em od Pivotala raczej wypuszczenia Spring Boot 2.5. Ot\u00f3\u017c w po\u0142owie zesz\u0142ego tygodnia tw\u00f3rcy najpopularniejszego Javowego frameworku og\u0142osili, \u017ce wsparcie ich rozwi\u0105zania dla GraalVM, osi\u0105gn\u0119\u0142o w\u0142a\u015bnie status bety.<\/p>\n<p>Ok, ale co konkretnie to oznacza? W do\u015b\u0107 d\u0142ugim, bardzo interesuj\u0105cym po\u015bcie, tw\u00f3rcy zdradzaj\u0105 szczeg\u00f3\u0142y rozwi\u0105zania.<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif\" alt=\"\" \/><figcaption>Obowi\u0105zkowo przy ka\u017cdym po\u015bcie o GraalVM nawi\u0105zanie do Monthy Pythona<\/figcaption><\/figure>\n<p>Po pierwsze, Spring Native b\u0119dzie m\u00f3g\u0142 by\u0107 releasowany jako pojedynczy plik wykonywalny, bez potrzeby posiadania zaembedowanego JVMa. Po drugie, jego czas startu robi wra\u017cenie &#8211; wed\u0142ug tego, co podaj\u0105 tw\u00f3rcy, dla typowej aplikacji nie powinien on przekracza\u0107 magicznej granicy &lt; 100ms (aczkolwiek liczby jak to liczby, b\u0119dzie trzeba je zweryfikowa\u0107 w praktyce). Nieodmiennie w wypadku rozwi\u0105za\u0144 opartych na GraalVM, jako docelowy spos\u00f3b u\u017cycia wskazywane s\u0105 kontenery, a tak\u017ce rozwi\u0105zania chmurowe takie jak cho\u0107by Spring Cloud Functions.<\/p>\n<p>Oczywi\u015bcie, w wypadku tak mocno opartego na adnotacjach rozwi\u0105zania jak Spring, niezb\u0119dne by\u0142o automatyczne wykrywanie zale\u017cno\u015bci wstrzykiwanych przez refleksje. Zapewni to specjalny tooling stworzony na potrzeby edycji natywnej, kt\u00f3ry wykrywa wszystkie \u201cbeany\u201d i wrzuca je do paczuszki. W sytuacjach podbramkowych, gdy potrzebujemy doda\u0107 do projektu klasy niezarz\u0105dzane bezpo\u015brednio przez Springa (jak np. drivery do baz danych wcze\u015bniej znajduj\u0105ce si\u0119 po prostu na classpath), mo\u017cemy u\u017cy\u0107 adnotacji @NativeHint. Musz\u0119 przyzna\u0107, \u017ce to w\u0142a\u015bnie ona budzi moje najwi\u0119ksze obawy. Mam jednak nadzieje, \u017ce rozwi\u0105zanie dostarczone przez Pivotala b\u0119dzie na tyle sprytne, \u017ce jej u\u017cycie ograniczone b\u0119dzie do minimum<\/p>\n<p>Jednocze\u015bnie nie ma r\u00f3\u017cy bez kolc\u00f3w i chc\u0105c korzysta\u0107 z nowej zabawki trzeba i\u015b\u0107 na pewne kompromisy. Korzystaj\u0105c ze Spring Native, b\u0119dziemy musieli pogodzi\u0107 si\u0119 z d\u0142u\u017cszymi czasami kompilacji oraz brakiem bardziej zaawansowanych optymalizacji, jakie daje JIT &#8211; musi nam wystarczy\u0107 kompilacja Ahead-of-Time.<\/p>\n<p>Na koniec metody wersjonowania &#8211; cykl \u017cycia Spring Native b\u0119dzie \u015bci\u015ble spi\u0119ty z releasami Spring Boota, a nowe wydania wersji natywnej b\u0119d\u0105 pojawia\u0107 si\u0119 wraz z ka\u017cdym update\u2019em do klasyka.<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbbc0753.gif\" alt=\"\" \/><figcaption>A w mi\u0119dzyczasie, dalej czekam na Spring Boot 2.5 &#8211; i doczeka\u0107 si\u0119 jako\u015b nie mog\u0119.<\/figcaption><\/figure>\n<h2 id=\"3-project-liliput-jvmowe-naglowki-na-diecie\" data-num=3><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-March\/005720.html\">3. Project Liliput &#8211; JVMowe nag\u0142\u00f3wki na diecie<\/a> \u200d\u2642\ufe0f<\/h2>\n<p>Wida\u0107, \u017ce po okresie stabilizacji Javy 16, prace nad dalszymi rozwini\u0119ciami j\u0119zyka ruszy\u0142y pe\u0142n\u0105 par\u0105, ostatnio bowiem mamy wr\u0119cz zatrz\u0119sienie nowych proposali. Przegl\u0105dem co ciekawszych zajmiemy si\u0119 pewnie w przysz\u0142ym tygodniu, a w mi\u0119dzyczasie za\u015b mamy dla Was bardzo wst\u0119pny zarys projektu Liliput.<\/p>\n<figure class=\"kg-card kg-image-card\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbcd98a5.gif\" alt=\"\" \/><\/figure>\n<p>Czym projekt Liliput jest, czy raczej \u201cma by\u0107\u201d? Ot\u00f3\u017c ma on za zadanie zmieni\u0107 jedn\u0105 z najbardziej \u201cinternalowych\u201d cz\u0119\u015bci JVMa &#8211; nag\u0142\u00f3wek obiekt\u00f3w. Sk\u0105d taka ch\u0119\u0107 zmiany? Liczby m\u00f3wi\u0105 same za siebie &#8211; ot\u00f3\u017c w 64-bitowej Javie, nag\u0142\u00f3wek obecnie zajmuje a\u017c 128 bit\u00f3w. Jest to jedna trzecia \u201cwagi\u201d przeci\u0119tnego obiektu. Od razu wi\u0119c wida\u0107, \u017ce ka\u017cda optymalizacja w tym zakresie mo\u017ce doprowadzi\u0107 do znacz\u0105cej poprawy zu\u017cycia pami\u0119ci przez aplikacje JVMowe, a tak\u017ce zmniejszy\u0107 presj\u0119 na Garbage Collectory.<\/p>\n<p>Oczywi\u015bcie, jakby zmiana by\u0142a prosta, ju\u017c dawno by si\u0119 odby\u0142a. Nag\u0142\u00f3wek jest u\u017cywany do r\u00f3\u017cnych cel\u00f3w, mi\u0119dzy innymi do przechowywania informacji o statusie synchronizacji obiektu &#8211; zawiera on m.in. dane na\u0142o\u017conego na obiekt \u201clocka\u201d. W tym stwierdzeniu objawia si\u0119 w\u0142a\u015bnie potencjalna szansa dla zaanga\u017cowanych w projekt in\u017cynier\u00f3w &#8211; jako pierwszy cel planuj\u0105 oni wzi\u0105\u0107 wprowadzone dopiero co Rekordy. Ich pola s\u0105 \u201cefektywnie-finalne\u201d, dzi\u0119ki czemu je\u015bli uda si\u0119 wprowadzi\u0107 planowany dynamiczny rozmiar nag\u0142\u00f3wka, b\u0119dzie mo\u017cna ograniczy\u0107 jego d\u0142ugo\u015b\u0107.<\/p>\n<p>Og\u00f3lnie musz\u0119 przyzna\u0107, \u017ce im bardziej wgryzam si\u0119 w to co dzieje si\u0119 w JVMie, tym wi\u0119cej we mnie Mechanical Sympathy do maszyny wirtualnej B\u0119d\u0119 z pewno\u015bci\u0105 informowa\u0107 Was o dalszym rozwoju prac &#8211; przy czym nale\u017cy pami\u0119ta\u0107, \u017ce Liliput jest na razie jedynie propozycj\u0105 i nic z niego mo\u017ce nie wyrosn\u0105\u0107.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>No i doczekali\u015bmy si\u0119! Od jutra u\u017cywa\u0107 b\u0119dzie mo\u017cna na produkcji JDK 16. Aczkolwiek nawet bez tego tydzie\u0144 przyni\u00f3s\u0142 te\u017c inne ciekawe og\u0142oszenia &#8211; Spring Native i propozycje rozpocz\u0119cia nowego projektu JDK &#8211; Project Liliput.<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259],"tags":[],"class_list":["post-10167","post","type-post","status-publish","format-standard","hentry","category-jvm-pl"],"acf":{"weekly_summary":true,"estimated_reading_time":"4"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>JVM Tuesday vol. 29 - Vived<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JVM Tuesday vol. 29 - Vived\" \/>\n<meta property=\"og:description\" content=\"No i doczekali\u015bmy si\u0119! Od jutra u\u017cywa\u0107 b\u0119dzie mo\u017cna na produkcji JDK 16. Aczkolwiek nawet bez tego tydzie\u0144 przyni\u00f3s\u0142 te\u017c inne ciekawe og\u0142oszenia - Spring Native i propozycje rozpocz\u0119cia nowego projektu JDK - Project Liliput.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-16T12:36:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:10:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"JVM Tuesday vol. 29\",\"datePublished\":\"2021-03-16T12:36:42+00:00\",\"dateModified\":\"2022-09-19T11:10:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/\"},\"wordCount\":864,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/\",\"url\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/\",\"name\":\"JVM Tuesday vol. 29 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif\",\"datePublished\":\"2021-03-16T12:36:42+00:00\",\"dateModified\":\"2022-09-19T11:10:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JVM Tuesday vol. 29\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\",\"name\":\"Artur Skowro\u0144ski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"caption\":\"Artur Skowro\u0144ski\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JVM Tuesday vol. 29 - Vived","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/","og_locale":"pl_PL","og_type":"article","og_title":"JVM Tuesday vol. 29 - Vived","og_description":"No i doczekali\u015bmy si\u0119! Od jutra u\u017cywa\u0107 b\u0119dzie mo\u017cna na produkcji JDK 16. Aczkolwiek nawet bez tego tydzie\u0144 przyni\u00f3s\u0142 te\u017c inne ciekawe og\u0142oszenia - Spring Native i propozycje rozpocz\u0119cia nowego projektu JDK - Project Liliput.","og_url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/","og_site_name":"Vived","article_published_time":"2021-03-16T12:36:42+00:00","article_modified_time":"2022-09-19T11:10:55+00:00","og_image":[{"url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif","type":"","width":"","height":""}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"JVM Tuesday vol. 29","datePublished":"2021-03-16T12:36:42+00:00","dateModified":"2022-09-19T11:10:55+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/"},"wordCount":864,"commentCount":0,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif","articleSection":["JVM"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/","url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/","name":"JVM Tuesday vol. 29 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif","datePublished":"2021-03-16T12:36:42+00:00","dateModified":"2022-09-19T11:10:55+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif"},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-29\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"JVM Tuesday vol. 29"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3","name":"Artur Skowro\u0144ski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","caption":"Artur Skowro\u0144ski"}}]}},"blocks_vived":[{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"<h2 id=\"1-premiera-jdk-16-\"><a href=\"http:\/\/openjdk.java.net\/projects\/jdk\/16\/\">1. Premiera JDK 16<\/a><\/h2>\nMamy to !\n\nW dniu dzisiejszym, premier\u0119 ma (a raczej b\u0119dzie mie\u0107 w godzinach wieczornych) Java 16. Co prawda od czasu, gdy opisywali\u015bmy jej Release Candidate nie zmieni\u0142o si\u0119 za wiele, ale mamy dla Was niespodziank\u0119. Ot\u00f3\u017c postanowili\u015bmy z tej okazji przygotowa\u0107 dla Was pierwszy\u2026 podcast\n<figure class=\"kg-card kg-embed-card\"><iframe src=\"https:\/\/w.soundcloud.com\/player\/?visual=true&amp;url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F1008983998&amp;show_artwork=true\" width=\"100%\" height=\"400\" frameborder=\"no\" scrolling=\"no\"><\/iframe><\/figure>\nWraz <a href=\"https:\/\/github.com\/pjanczyk\">Piotrkiem Janczykiem<\/a> z zespo\u0142u Vived porozmawiali\u015bmy o nowym wydaniu - czego si\u0119 mo\u017cna po nim spodziewa\u0107 oraz na jakie featury najbardziej czekamy. <a href=\"https:\/\/soundcloud.com\/user-407324123\/vived-keep-up-podcast-1-co-nowego-przynosi-jdk-16\">Zapraszamy do ods\u0142uchu<\/a>!\n\nJe\u017celi preferujecie form\u0119 tekstow\u0105, zapraszamy do jednej ze starych edycji, <a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-24\/\">gdzie przeszli\u015bmy przez wszystkie JEPy<\/a>. Dodatkowo, jako \u017ce w odcinku obiecali\u015bmy te\u017c podzieli\u0107 si\u0119 informacjami o planowanych zmianach w Kotlinie, cz\u0119stujcie si\u0119 <a href=\"https:\/\/github.com\/Kotlin\/KEEP\/blob\/master\/proposals\/jvm-records.md\">linkiem<\/a> o planowanej adopcji rekord\u00f3w w tym j\u0119zyku.\n<h2 id=\"2-opublikowano-bet-spring-native-\"><a href=\"https:\/\/spring.io\/blog\/2021\/03\/11\/announcing-spring-native-beta\">2. Opublikowano bet\u0119 Spring Native<\/a><\/h2>\nPrzyznam szczerze, \u017ce by\u0142a to jedna z tych informacji, kt\u00f3rych z jednej strony si\u0119 nieco spodziewa\u0142em (w ko\u0144cu wsparcie w inkubacji by\u0142o od d\u0142u\u017cszego czasu) , z drugiej za\u015b wzi\u0119\u0142a mnie mocno z zaskoczenia, gdy\u017c oczekiwa\u0142em od Pivotala raczej wypuszczenia Spring Boot 2.5. Ot\u00f3\u017c w po\u0142owie zesz\u0142ego tygodnia tw\u00f3rcy najpopularniejszego Javowego frameworku og\u0142osili, \u017ce wsparcie ich rozwi\u0105zania dla GraalVM, osi\u0105gn\u0119\u0142o w\u0142a\u015bnie status bety.\n\nOk, ale co konkretnie to oznacza? W do\u015b\u0107 d\u0142ugim, bardzo interesuj\u0105cym po\u015bcie, tw\u00f3rcy zdradzaj\u0105 szczeg\u00f3\u0142y rozwi\u0105zania.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif\" alt=\"\" \/>\n<figcaption>Obowi\u0105zkowo przy ka\u017cdym po\u015bcie o GraalVM nawi\u0105zanie do Monthy Pythona<\/figcaption><\/figure>\nPo pierwsze, Spring Native b\u0119dzie m\u00f3g\u0142 by\u0107 releasowany jako pojedynczy plik wykonywalny, bez potrzeby posiadania zaembedowanego JVMa. Po drugie, jego czas startu robi wra\u017cenie - wed\u0142ug tego, co podaj\u0105 tw\u00f3rcy, dla typowej aplikacji nie powinien on przekracza\u0107 magicznej granicy &lt; 100ms (aczkolwiek liczby jak to liczby, b\u0119dzie trzeba je zweryfikowa\u0107 w praktyce). Nieodmiennie w wypadku rozwi\u0105za\u0144 opartych na GraalVM, jako docelowy spos\u00f3b u\u017cycia wskazywane s\u0105 kontenery, a tak\u017ce rozwi\u0105zania chmurowe takie jak cho\u0107by Spring Cloud Functions.\n\nOczywi\u015bcie, w wypadku tak mocno opartego na adnotacjach rozwi\u0105zania jak Spring, niezb\u0119dne by\u0142o automatyczne wykrywanie zale\u017cno\u015bci wstrzykiwanych przez refleksje. Zapewni to specjalny tooling stworzony na potrzeby edycji natywnej, kt\u00f3ry wykrywa wszystkie \u201cbeany\u201d i wrzuca je do paczuszki. W sytuacjach podbramkowych, gdy potrzebujemy doda\u0107 do projektu klasy niezarz\u0105dzane bezpo\u015brednio przez Springa (jak np. drivery do baz danych wcze\u015bniej znajduj\u0105ce si\u0119 po prostu na classpath), mo\u017cemy u\u017cy\u0107 adnotacji @NativeHint. Musz\u0119 przyzna\u0107, \u017ce to w\u0142a\u015bnie ona budzi moje najwi\u0119ksze obawy. Mam jednak nadzieje, \u017ce rozwi\u0105zanie dostarczone przez Pivotala b\u0119dzie na tyle sprytne, \u017ce jej u\u017cycie ograniczone b\u0119dzie do minimum\n\nJednocze\u015bnie nie ma r\u00f3\u017cy bez kolc\u00f3w i chc\u0105c korzysta\u0107 z nowej zabawki trzeba i\u015b\u0107 na pewne kompromisy. Korzystaj\u0105c ze Spring Native, b\u0119dziemy musieli pogodzi\u0107 si\u0119 z d\u0142u\u017cszymi czasami kompilacji oraz brakiem bardziej zaawansowanych optymalizacji, jakie daje JIT - musi nam wystarczy\u0107 kompilacja Ahead-of-Time.\n\nNa koniec metody wersjonowania - cykl \u017cycia Spring Native b\u0119dzie \u015bci\u015ble spi\u0119ty z releasami Spring Boota, a nowe wydania wersji natywnej b\u0119d\u0105 pojawia\u0107 si\u0119 wraz z ka\u017cdym update\u2019em do klasyka.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbbc0753.gif\" alt=\"\" \/>\n\n<figcaption>A w mi\u0119dzyczasie, dalej czekam na Spring Boot 2.5 - i doczeka\u0107 si\u0119 jako\u015b nie mog\u0119.<\/figcaption><\/figure>\n<h2 id=\"3-project-liliput-jvmowe-nag-wki-na-diecie-\"><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-March\/005720.html\">3. Project Liliput - JVMowe nag\u0142\u00f3wki na diecie<\/a> \u200d\u2642\ufe0f<\/h2>\nWida\u0107, \u017ce po okresie stabilizacji Javy 16, prace nad dalszymi rozwini\u0119ciami j\u0119zyka ruszy\u0142y pe\u0142n\u0105 par\u0105, ostatnio bowiem mamy wr\u0119cz zatrz\u0119sienie nowych proposali. Przegl\u0105dem co ciekawszych zajmiemy si\u0119 pewnie w przysz\u0142ym tygodniu, a w mi\u0119dzyczasie za\u015b mamy dla Was bardzo wst\u0119pny zarys projektu Liliput.\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbcd98a5.gif\" alt=\"\" \/><\/figure>\nCzym projekt Liliput jest, czy raczej \u201cma by\u0107\u201d? Ot\u00f3\u017c ma on za zadanie zmieni\u0107 jedn\u0105 z najbardziej \u201cinternalowych\u201d cz\u0119\u015bci JVMa - nag\u0142\u00f3wek obiekt\u00f3w. Sk\u0105d taka ch\u0119\u0107 zmiany? Liczby m\u00f3wi\u0105 same za siebie - ot\u00f3\u017c w 64-bitowej Javie, nag\u0142\u00f3wek obecnie zajmuje a\u017c 128 bit\u00f3w. Jest to jedna trzecia \u201cwagi\u201d przeci\u0119tnego obiektu. Od razu wi\u0119c wida\u0107, \u017ce ka\u017cda optymalizacja w tym zakresie mo\u017ce doprowadzi\u0107 do znacz\u0105cej poprawy zu\u017cycia pami\u0119ci przez aplikacje JVMowe, a tak\u017ce zmniejszy\u0107 presj\u0119 na Garbage Collectory.\n\nOczywi\u015bcie, jakby zmiana by\u0142a prosta, ju\u017c dawno by si\u0119 odby\u0142a. Nag\u0142\u00f3wek jest u\u017cywany do r\u00f3\u017cnych cel\u00f3w, mi\u0119dzy innymi do przechowywania informacji o statusie synchronizacji obiektu - zawiera on m.in. dane na\u0142o\u017conego na obiekt \u201clocka\u201d. W tym stwierdzeniu objawia si\u0119 w\u0142a\u015bnie potencjalna szansa dla zaanga\u017cowanych w projekt in\u017cynier\u00f3w - jako pierwszy cel planuj\u0105 oni wzi\u0105\u0107 wprowadzone dopiero co Rekordy. Ich pola s\u0105 \u201cefektywnie-finalne\u201d, dzi\u0119ki czemu je\u015bli uda si\u0119 wprowadzi\u0107 planowany dynamiczny rozmiar nag\u0142\u00f3wka, b\u0119dzie mo\u017cna ograniczy\u0107 jego d\u0142ugo\u015b\u0107.\n\nOg\u00f3lnie musz\u0119 przyzna\u0107, \u017ce im bardziej wgryzam si\u0119 w to co dzieje si\u0119 w JVMie, tym wi\u0119cej we mnie Mechanical Sympathy do maszyny wirtualnej B\u0119d\u0119 z pewno\u015bci\u0105 informowa\u0107 Was o dalszym rozwoju prac - przy czym nale\u017cy pami\u0119ta\u0107, \u017ce Liliput jest na razie jedynie propozycj\u0105 i nic z niego mo\u017ce nie wyrosn\u0105\u0107.","innerContent":["<h2 id=\"1-premiera-jdk-16-\"><a href=\"http:\/\/openjdk.java.net\/projects\/jdk\/16\/\">1. Premiera JDK 16<\/a><\/h2>\nMamy to !\n\nW dniu dzisiejszym, premier\u0119 ma (a raczej b\u0119dzie mie\u0107 w godzinach wieczornych) Java 16. Co prawda od czasu, gdy opisywali\u015bmy jej Release Candidate nie zmieni\u0142o si\u0119 za wiele, ale mamy dla Was niespodziank\u0119. Ot\u00f3\u017c postanowili\u015bmy z tej okazji przygotowa\u0107 dla Was pierwszy\u2026 podcast\n<figure class=\"kg-card kg-embed-card\"><iframe src=\"https:\/\/w.soundcloud.com\/player\/?visual=true&amp;url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F1008983998&amp;show_artwork=true\" width=\"100%\" height=\"400\" frameborder=\"no\" scrolling=\"no\"><\/iframe><\/figure>\nWraz <a href=\"https:\/\/github.com\/pjanczyk\">Piotrkiem Janczykiem<\/a> z zespo\u0142u Vived porozmawiali\u015bmy o nowym wydaniu - czego si\u0119 mo\u017cna po nim spodziewa\u0107 oraz na jakie featury najbardziej czekamy. <a href=\"https:\/\/soundcloud.com\/user-407324123\/vived-keep-up-podcast-1-co-nowego-przynosi-jdk-16\">Zapraszamy do ods\u0142uchu<\/a>!\n\nJe\u017celi preferujecie form\u0119 tekstow\u0105, zapraszamy do jednej ze starych edycji, <a href=\"https:\/\/blog.vived.io\/jvm-tuesday-vol-24\/\">gdzie przeszli\u015bmy przez wszystkie JEPy<\/a>. Dodatkowo, jako \u017ce w odcinku obiecali\u015bmy te\u017c podzieli\u0107 si\u0119 informacjami o planowanych zmianach w Kotlinie, cz\u0119stujcie si\u0119 <a href=\"https:\/\/github.com\/Kotlin\/KEEP\/blob\/master\/proposals\/jvm-records.md\">linkiem<\/a> o planowanej adopcji rekord\u00f3w w tym j\u0119zyku.\n<h2 id=\"2-opublikowano-bet-spring-native-\"><a href=\"https:\/\/spring.io\/blog\/2021\/03\/11\/announcing-spring-native-beta\">2. Opublikowano bet\u0119 Spring Native<\/a><\/h2>\nPrzyznam szczerze, \u017ce by\u0142a to jedna z tych informacji, kt\u00f3rych z jednej strony si\u0119 nieco spodziewa\u0142em (w ko\u0144cu wsparcie w inkubacji by\u0142o od d\u0142u\u017cszego czasu) , z drugiej za\u015b wzi\u0119\u0142a mnie mocno z zaskoczenia, gdy\u017c oczekiwa\u0142em od Pivotala raczej wypuszczenia Spring Boot 2.5. Ot\u00f3\u017c w po\u0142owie zesz\u0142ego tygodnia tw\u00f3rcy najpopularniejszego Javowego frameworku og\u0142osili, \u017ce wsparcie ich rozwi\u0105zania dla GraalVM, osi\u0105gn\u0119\u0142o w\u0142a\u015bnie status bety.\n\nOk, ale co konkretnie to oznacza? W do\u015b\u0107 d\u0142ugim, bardzo interesuj\u0105cym po\u015bcie, tw\u00f3rcy zdradzaj\u0105 szczeg\u00f3\u0142y rozwi\u0105zania.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbb05358.gif\" alt=\"\" \/>\n<figcaption>Obowi\u0105zkowo przy ka\u017cdym po\u015bcie o GraalVM nawi\u0105zanie do Monthy Pythona<\/figcaption><\/figure>\nPo pierwsze, Spring Native b\u0119dzie m\u00f3g\u0142 by\u0107 releasowany jako pojedynczy plik wykonywalny, bez potrzeby posiadania zaembedowanego JVMa. Po drugie, jego czas startu robi wra\u017cenie - wed\u0142ug tego, co podaj\u0105 tw\u00f3rcy, dla typowej aplikacji nie powinien on przekracza\u0107 magicznej granicy &lt; 100ms (aczkolwiek liczby jak to liczby, b\u0119dzie trzeba je zweryfikowa\u0107 w praktyce). Nieodmiennie w wypadku rozwi\u0105za\u0144 opartych na GraalVM, jako docelowy spos\u00f3b u\u017cycia wskazywane s\u0105 kontenery, a tak\u017ce rozwi\u0105zania chmurowe takie jak cho\u0107by Spring Cloud Functions.\n\nOczywi\u015bcie, w wypadku tak mocno opartego na adnotacjach rozwi\u0105zania jak Spring, niezb\u0119dne by\u0142o automatyczne wykrywanie zale\u017cno\u015bci wstrzykiwanych przez refleksje. Zapewni to specjalny tooling stworzony na potrzeby edycji natywnej, kt\u00f3ry wykrywa wszystkie \u201cbeany\u201d i wrzuca je do paczuszki. W sytuacjach podbramkowych, gdy potrzebujemy doda\u0107 do projektu klasy niezarz\u0105dzane bezpo\u015brednio przez Springa (jak np. drivery do baz danych wcze\u015bniej znajduj\u0105ce si\u0119 po prostu na classpath), mo\u017cemy u\u017cy\u0107 adnotacji @NativeHint. Musz\u0119 przyzna\u0107, \u017ce to w\u0142a\u015bnie ona budzi moje najwi\u0119ksze obawy. Mam jednak nadzieje, \u017ce rozwi\u0105zanie dostarczone przez Pivotala b\u0119dzie na tyle sprytne, \u017ce jej u\u017cycie ograniczone b\u0119dzie do minimum\n\nJednocze\u015bnie nie ma r\u00f3\u017cy bez kolc\u00f3w i chc\u0105c korzysta\u0107 z nowej zabawki trzeba i\u015b\u0107 na pewne kompromisy. Korzystaj\u0105c ze Spring Native, b\u0119dziemy musieli pogodzi\u0107 si\u0119 z d\u0142u\u017cszymi czasami kompilacji oraz brakiem bardziej zaawansowanych optymalizacji, jakie daje JIT - musi nam wystarczy\u0107 kompilacja Ahead-of-Time.\n\nNa koniec metody wersjonowania - cykl \u017cycia Spring Native b\u0119dzie \u015bci\u015ble spi\u0119ty z releasami Spring Boota, a nowe wydania wersji natywnej b\u0119d\u0105 pojawia\u0107 si\u0119 wraz z ka\u017cdym update\u2019em do klasyka.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbbc0753.gif\" alt=\"\" \/>\n\n<figcaption>A w mi\u0119dzyczasie, dalej czekam na Spring Boot 2.5 - i doczeka\u0107 si\u0119 jako\u015b nie mog\u0119.<\/figcaption><\/figure>\n<h2 id=\"3-project-liliput-jvmowe-nag-wki-na-diecie-\"><a href=\"https:\/\/mail.openjdk.java.net\/pipermail\/discuss\/2021-March\/005720.html\">3. Project Liliput - JVMowe nag\u0142\u00f3wki na diecie<\/a> \u200d\u2642\ufe0f<\/h2>\nWida\u0107, \u017ce po okresie stabilizacji Javy 16, prace nad dalszymi rozwini\u0119ciami j\u0119zyka ruszy\u0142y pe\u0142n\u0105 par\u0105, ostatnio bowiem mamy wr\u0119cz zatrz\u0119sienie nowych proposali. Przegl\u0105dem co ciekawszych zajmiemy si\u0119 pewnie w przysz\u0142ym tygodniu, a w mi\u0119dzyczasie za\u015b mamy dla Was bardzo wst\u0119pny zarys projektu Liliput.\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0bbcd98a5.gif\" alt=\"\" \/><\/figure>\nCzym projekt Liliput jest, czy raczej \u201cma by\u0107\u201d? Ot\u00f3\u017c ma on za zadanie zmieni\u0107 jedn\u0105 z najbardziej \u201cinternalowych\u201d cz\u0119\u015bci JVMa - nag\u0142\u00f3wek obiekt\u00f3w. Sk\u0105d taka ch\u0119\u0107 zmiany? Liczby m\u00f3wi\u0105 same za siebie - ot\u00f3\u017c w 64-bitowej Javie, nag\u0142\u00f3wek obecnie zajmuje a\u017c 128 bit\u00f3w. Jest to jedna trzecia \u201cwagi\u201d przeci\u0119tnego obiektu. Od razu wi\u0119c wida\u0107, \u017ce ka\u017cda optymalizacja w tym zakresie mo\u017ce doprowadzi\u0107 do znacz\u0105cej poprawy zu\u017cycia pami\u0119ci przez aplikacje JVMowe, a tak\u017ce zmniejszy\u0107 presj\u0119 na Garbage Collectory.\n\nOczywi\u015bcie, jakby zmiana by\u0142a prosta, ju\u017c dawno by si\u0119 odby\u0142a. Nag\u0142\u00f3wek jest u\u017cywany do r\u00f3\u017cnych cel\u00f3w, mi\u0119dzy innymi do przechowywania informacji o statusie synchronizacji obiektu - zawiera on m.in. dane na\u0142o\u017conego na obiekt \u201clocka\u201d. W tym stwierdzeniu objawia si\u0119 w\u0142a\u015bnie potencjalna szansa dla zaanga\u017cowanych w projekt in\u017cynier\u00f3w - jako pierwszy cel planuj\u0105 oni wzi\u0105\u0107 wprowadzone dopiero co Rekordy. Ich pola s\u0105 \u201cefektywnie-finalne\u201d, dzi\u0119ki czemu je\u015bli uda si\u0119 wprowadzi\u0107 planowany dynamiczny rozmiar nag\u0142\u00f3wka, b\u0119dzie mo\u017cna ograniczy\u0107 jego d\u0142ugo\u015b\u0107.\n\nOg\u00f3lnie musz\u0119 przyzna\u0107, \u017ce im bardziej wgryzam si\u0119 w to co dzieje si\u0119 w JVMie, tym wi\u0119cej we mnie Mechanical Sympathy do maszyny wirtualnej B\u0119d\u0119 z pewno\u015bci\u0105 informowa\u0107 Was o dalszym rozwoju prac - przy czym nale\u017cy pami\u0119ta\u0107, \u017ce Liliput jest na razie jedynie propozycj\u0105 i nic z niego mo\u017ce nie wyrosn\u0105\u0107."]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10167","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=10167"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10167\/revisions"}],"predecessor-version":[{"id":10582,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10167\/revisions\/10582"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}