{"id":13915,"date":"2023-01-19T13:28:01","date_gmt":"2023-01-19T12:28:01","guid":{"rendered":"https:\/\/vived.io\/?p=13915"},"modified":"2023-02-03T10:39:33","modified_gmt":"2023-02-03T09:39:33","slug":"jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/","title":{"rendered":"Jak wej\u015b\u0107 w \u015bwiat Javy w 2023? &#8211; JVM Weekly #121"},"content":{"rendered":"\n<h2 id=\"1-zestaw-rad-jak-zautomatyzowac-wykrywanie-podatnosci-w-projekcie\" data-num=1>1. Zestaw rad, jak zautomatyzowa\u0107 wykrywanie podatno\u015bci w projekcie<\/h2>\n\n\n\n<p>Bezpiecze\u0144stwo to temat tak szeroki, jak i cz\u0119sto zaniedbywany, co ostatecznie ko\u0144czy si\u0119 p\u0142aczem, zgrzytaniem z\u0119b\u00f3w i sekcjami w newsletterach typu tego, kt\u00f3ry w\u0142a\u015bnie czytacie. Dlatego te\u017c pocz\u0105tkiem 2023 chcia\u0142em podrzuci\u0107 Wam publikacje <a href=\"https:\/\/lmyslinski.com\/posts\/the-ultimate-java-cve-guide\/\">The ultimate guide to Java Security Vulnerabilities (CVE)<\/a> stanowi\u0105c\u0105 \u015bwietny poradnik, jak pracowa\u0107 z szeroko rozumianymi narz\u0119dziami SecOps w Javie.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/cve-1.jpg\" alt=\"\" width=\"625\" height=\"427\"\/><figcaption class=\"wp-element-caption\">I od razu podkradam mu powy\u017csze z\u0142oto. Szklanka zawsze do po\u0142owy pe\u0142na!<\/figcaption><\/figure><\/div>\n\n\n<p>\u0141ukasz My\u015bli\u0144ski opublikowa\u0142 ko\u0144cem poprzedniego roku poradnik, w ramach kt\u00f3rego opisa\u0142 ekosystem narz\u0119dzi, kt\u00f3rego programi\u015bci mog\u0105 u\u017cywa\u0107 do sprawdzenia swojego &#8222;\u0142a\u0144cuchu dostaw&#8221; zale\u017cno\u015bci. Takich tekst\u00f3w w sieci nie brakuje, cz\u0119sto s\u0105 pisane przez cho\u0107by tw\u00f3rc\u00f3w pojawiaj\u0105cych si\u0119 w artykule narz\u0119dzi, ale tutaj zalet\u0105 jest Java-Centryczno\u015b\u0107. Wiele z porad jest po prostu bardzo \u0142atwa do przeniesienia i dzia\u0142aj\u0105ca ze znanym, istniej\u0105cym ekosystemem narz\u0119dzi. Dlatego polecam lektur\u0119, zw\u0142aszcza je\u017celi czeka was nied\u0142ugo jaki\u015b audyt, recertyfikacja ISO lub po prostu chcecie sprawdzi\u0107, czy nie macie u siebie jakich\u015b przeoczonych dziur.<\/p>\n\n\n\n<p>Do powy\u017cszej listy, ja bym od siebie podrzuci\u0142 jeszcze <a href=\"https:\/\/github.com\/mercedes-benz\/sechub\">SecHub<\/a> &#8211; narz\u0119dzie Open-Source, stworzone przez Mercedes i napisane w Javie, pozawalaj\u0105ce zagregowa\u0107 pod wsp\u00f3ln\u0105 parasolk\u0105 wiele skaner\u00f3w bezpiecze\u0144stwa online. B\u0119d\u0119 przygl\u0105da\u0142 si\u0119 rozwojowi ca\u0142o\u015bci, bo to co do tej pory zosta\u0142o pokazane ma spory potencja\u0142.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/lmyslinski.com\/posts\/the-ultimate-java-cve-guide\/\">The ultimate guide to Java Security Vulnerabilities (CVE)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/mercedes-benz\/sechub\">SecHub<\/a><\/li>\n<\/ul>\n\n\n\n<h2 id=\"2-natywne-obrazy-graalvm-uruchomione-na-procesorach-risc-v\" data-num=2>2. Natywne obrazy GraalVM uruchomione na procesorach RISC-V<\/h2>\n\n\n\n<p>Ten news jest nieco mniejszy, ale jako\u015b tak \u0142adnie wpisuje mi si\u0119 w ostatnie zmiany w JDK, \u017ce stwierdzi\u0142em, i\u017c podziel\u0119 si\u0119 z Wami faktem, \u017ce Natywne Obrazy GraalVM mo\u017cna odpali\u0107 na architekturze RISC-V, o czym <a href=\"https:\/\/medium.com\/graalvm\/graalvm-native-image-meets-risc-v-899be38eddd9\">poinformowa\u0142 Sacha Coppey, pracuj\u0105cy w Oracle Labs<\/a>.<\/p>\n\n\n\n<p>Czym RISC-V nie jest gotowym procesorem, a raczej modelem programowym procesora (z angielskiego ISA) opartego o filozofi\u0119 dostarczania \u015bci\u015ble wyspecjalizowanego zestawu instrukcji (reduced instruction set computer \u2013 RISC w\u0142a\u015bnie). Cytuj\u0105c Wikipedi\u0119:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>W kontra\u015bcie do wi\u0119kszo\u015bci ISA, RISC-V mo\u017ce by\u0107 swobodnie u\u017cywany w dowolnym celu, umo\u017cliwiaj\u0105c ka\u017cdemu projektowanie, produkcj\u0119 i sprzeda\u017c czip\u00f3w i oprogramowania RISC-V. Chocia\u017c nie jest pierwsz\u0105 otwart\u0105 architektur\u0105 ISA ma du\u017ce znaczenie, poniewa\u017c zosta\u0142 zaprojektowany z my\u015bl\u0105 o nowoczesnych skomputeryzowanych urz\u0105dzeniach, takich jak ogromne chmury obliczeniowe, wysokiej klasy telefony kom\u00f3rkowe i najmniejsze systemy wbudowane.<\/p>\n<\/blockquote>\n\n\n\n<p>Z mojej perspektywy ciekawy jest sam proces, kt\u00f3ry tego typu operacj\u0119 umo\u017cliwi\u0142, przypomina on bowiem o wszechstronno\u015bci ca\u0142ego projektu. Sam kompilator GraalVM nie pozwala bowiem na tworzenie binarek do tej architektury, ale architektura projektu jest na tyle elastyczna, \u017ce mo\u017cliwe jest wpi\u0119cie kompilatora u\u017cywanego przez LLVM &#8211; uniwersalnego kompilatora, u\u017cywanego przez szereg r\u00f3\u017cnych j\u0119zyk\u00f3w. Je\u017celi jeste\u015bcie ciekawi, czym jest LLVM, polecam publikacj\u0119 <a href=\"https:\/\/www.infoworld.com\/article\/3247799\/what-is-llvm-the-power-behind-swift-rust-clang-and-more.html\">What is LLVM? The power behind Swift, Rust, Clang, and more<\/a>. A moim zdaniem warto, bo m\u00f3wimy tutaj o jednym z najwa\u017cniejszych klock\u00f3w \u015bwiata programowania, kt\u00f3ry jednak nie jest znany szerokim mas\u0105 programist\u00f3w. Moim zdaniem warto mie\u0107 chocia\u017c \u015bwiadomo\u015b\u0107 jego istnienia.<\/p>\n\n\n\n<p>Og\u00f3lnie JDK coraz bardziej lubi si\u0119 z RISC-V, w ko\u0144cu to w\u0142a\u015bnie wsparcie dla tych procesor\u00f3w pojawi\u0142o si\u0119 dopiero co w JDK 19 jesieni\u0105 zesz\u0142ego roku.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/image-5-1024x1024.png\" alt=\"\" class=\"wp-image-13926\" width=\"512\" height=\"512\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/image-5-1024x1024.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/image-5-300x300.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/image-5-150x150.png 150w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/image-5-768x768.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/image-5.png 1400w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><figcaption class=\"wp-element-caption\">Ciekawe, jak og\u00f3lnie wygl\u0105da adopcja tamtego jedynego stabilnego feature releasu.<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/medium.com\/graalvm\/graalvm-native-image-meets-risc-v-899be38eddd9\">GraalVM Native Image meets RISC-V<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.infoworld.com\/article\/3247799\/what-is-llvm-the-power-behind-swift-rust-clang-and-more.html\">What is LLVM? The power behind Swift, Rust, Clang, and more<\/a><\/li>\n<\/ul>\n\n\n\n<h2 id=\"3-jak-odpowiedzielibyscie-na-pytanie-jak-zostac-programista-javy-w-2023\" data-num=3>3. Jak odpowiedzieliby\u015bcie na pytanie, jak zosta\u0107 programist\u0105 Javy w 2023?<\/h2>\n\n\n\n<p>Mam wra\u017cenie, \u017ce bior\u0105c pod uwag\u0119 zakres tematyczny tego newslettera, raczej nie mam w\u015br\u00f3d publiki za wielu os\u00f3b, kt\u00f3re dopiero zaczynaj\u0105 przygod\u0119 z Jav\u0105 (je\u015bli si\u0119 myl\u0119, napiszcie prosz\u0119 jak wytrzymali\u015bcie wstawk\u0119 o wsparciu RISC-V w GraalVM). Na pewno jednak wielu z nas ma m\u0142odszych znajomych (cho\u0107 pewnie nie tylko), kt\u00f3rzy pytaj\u0105, jak w og\u00f3le rozpocz\u0105\u0107 przygod\u0119 z t\u0105 ca\u0142\u0105 Jav\u0105. Mnie si\u0119 to czasem zdarza, i przyznam, \u017ce odpowied\u017a nie jest zawsze taka oczywista&#8230; zapomnia\u0142 w\u00f3\u0142 jak ciel\u0119ciem by\u0142, i naprawd\u0119 ci\u0119\u017cko nakre\u015bli\u0107 sp\u00f3jn\u0105, logiczn\u0105 \u015bcie\u017ck\u0119 kt\u00f3r\u0105 taka osoba mia\u0142aby pod\u0105\u017ca\u0107.<\/p>\n\n\n\n<p>Dlatego te\u017c zawsze z wielk\u0105 rado\u015bci\u0105 przytulam teksty, kt\u00f3re mog\u0119 podrzuci\u0107 jako takie &#8222;pierwsze kroki&#8221;. A tak\u0105 w\u0142a\u015bnie publikacj\u0119 w zesz\u0142ym tygodniu przygotowa\u0142 Gunnar Morling. <a href=\"https:\/\/www.morling.dev\/blog\/getting-started-with-java-development-2023\/\">Getting Started With Java Development in 2023 \u2014 An Opinionated Guide<\/a> z miejsca wyl\u0105dowa\u0142o w czo\u0142\u00f3wce mojego prywatnym rankingu ulubionych pozycji dla nowicjuszy. Jego \u015bwie\u017co\u015b\u0107 (nie bez kozery ma 2023 w nazwie) ma te\u017c ciekawy efekt uboczny &#8211; je\u017celi pracujecie w projekcie, kt\u00f3ry utkn\u0105\u0142 np. na Javie 8 i jakiej\u015b starej wersji Springa, publikacja pozwoli Wam na od\u015bwie\u017cenie sobie wiedzy i rozpatrzenie si\u0119, co mog\u0142o Was omin\u0105\u0107.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/image-6.png\" alt=\"\" class=\"wp-image-13929\" width=\"350\" height=\"438\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/image-6.png 700w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/image-6-240x300.png 240w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><figcaption class=\"wp-element-caption\">Dlatego te\u017c w zasadzie polecam cho\u0107by spojrze\u0107 na ca\u0142o\u015b\u0107 ka\u017cdemu.<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.morling.dev\/blog\/getting-started-with-java-development-2023\/\">Getting Started With Java Development in 2023 \u2014 An Opinionated Guide<\/a><\/li>\n<\/ul>\n\n\n\n<h2 id=\"4-release-radar\" data-num=4>4. Release Radar<\/h2>\n\n\n\n<p>A na sam koniec, kilka ciekawych releas\u00f3w z ostatnich tygodni.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Kotlin 1.8<\/h3>\n\n\n\n<p>Tak, wiem, pisa\u0142em o nim dopiero co w zesz\u0142ym tygodniu jako o wydaniu widmo, a ono jak na z\u0142o\u015b pojawi\u0142o si\u0119 dok\u0142adnie tego samego dnia co m\u00f3j rant. W dalszym ci\u0105gu jest to fakt godny odnotowania, poniewa\u017c dzi\u0119ki oficjalnej premierze dostali\u015bmy standardowy zestaw materia\u0142\u00f3w towarzysz\u0105cych, jak np. <a href=\"https:\/\/www.youtube.com\/watch?v=cLyTx5wSPbg\">wprowadzenie wideo do nowej wersji j\u0119zyka<\/a>, kt\u00f3re jak zawsze bardzo polecam.<\/p>\n\n\n\n<p>Wi\u0119cej moich przemy\u015ble\u0144 <a href=\"https:\/\/vived.substack.com\/p\/kotlin-18-is-a-phantom-release-jvm\">znajdziecie w poprzedniej edycji<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mockito 5.0<\/h3>\n\n\n\n<p>Drugim z ciekawych releas\u00f3w z pocz\u0105tku roku to Mockito 5.0. Jest to release nietuzinkowy, poniewa\u017c obrazuje on to, \u017ce wszelkiej ma\u015bci migracje na nowe wersje Javy nie zawsze b\u0119d\u0105 takie bezproblemowe.<\/p>\n\n\n\n<p>Mockito do bowiem do\u015b\u0107 nietypowy projekt &#8211; jako, \u017ce generuje ono Mocki obiekt\u00f3w, wielokrotnie musi obchodzi\u0107 modyfikatory dost\u0119pu istniej\u0105ce w Javie, czasem u\u017cywaj\u0105c mechanizm\u00f3w takich jak refleksja, w niekt\u00f3rych przypadkach za\u015b schodz\u0105c jeszcze g\u0142\u0119biej &#8211; do internali JVM. Te ostatnie za\u015b nie s\u0105 stabilnym API i zmieniaj\u0105 si\u0119 pomi\u0119dzy poszczeg\u00f3lnymi wersjami. Czasem rzeczona modyfikacje s\u0105 przezroczyste, ale nie zawsze jest mo\u017cliwe. Bardzo utrudnione jest te\u017c r\u00f3wnoleg\u0142e wspieranie wielu wersji JDK, bo ka\u017cda z nich wymaga\u0107 mo\u017ce innego mechanizmu.<\/p>\n\n\n\n<p>W zwi\u0105zku z tym w Mockito 5.0 postanowiono pozby\u0107 si\u0119 wsparcia dla starszych JDK, minimaln\u0105 wspieran\u0105 wersj\u0105 czyni\u0105c JDK 11. R\u00f3wnolegle jednak, tw\u00f3rcy na przestrzeni ostatnich wersji musieli stworzy\u0107 nowy spos\u00f3b mockowania podklas, poniewa\u017c z ka\u017cdym kolejnym wydaniem stare rozwi\u0105zania, ze wzgl\u0119du na mocniejsze limitowanie dost\u0119pu do internali JDK w kolejnych edycjach, stawa\u0142y si\u0119 coraz bardziej ograniczone. Wraz z wersj\u0105 5.0, <code>mockito-inline<\/code> &#8211; nowy mechanizm &#8211; sta\u0142 si\u0119 wreszcie rozwi\u0105zaniem domy\u015blnym<\/p>\n\n\n\n<p>Ca\u0142a sytuacja jest mi bliska z dw\u00f3ch powod\u00f3w. Po pierwsze, jestem (z dum\u0105!) cz\u0142onkiem <a href=\"https:\/\/github.com\/ArturSkowronski\">GitHubowej organizacji Mockito<\/a>, pracowa\u0142em kiedy\u015b z jego tw\u00f3rcami nad ich innym Open-Source &#8211; <a href=\"https:\/\/github.com\/mockito\/shipkit\">shipkit<\/a>, kt\u00f3ry niestety jest ju\u017c od pewnego czasu martwy (ale dalej cudowne do\u015bwiadczenie, dzi\u0119kuj\u0119 za mo\u017cliwo\u015b\u0107 \ud83e\udd29). Dodatkowo, sam natkn\u0105\u0142em si\u0119 historycznie na problemy z internalami Mockito, <a href=\"https:\/\/medium.com\/smart-up\/we-tried-groovy-ee-and-what-we-learned-from-it-5b78c8f963de\">kt\u00f3re mia\u0142em okazj\u0119 opisa\u0107 w moim pierwszym tek\u015bcie po\u015bwi\u0119conym JVM-owi<\/a><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"498\" height=\"280\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/yeah-i-member-memberberries.gif\" alt=\"\" class=\"wp-image-13916\"\/><figcaption class=\"wp-element-caption\">Pi\u0119kne wspominki &#8211; zrobi\u0142em si\u0119 na stare lata sentymentalny.<\/figcaption><\/figure><\/div>","protected":false},"excerpt":{"rendered":"<p>Rok dopiero nabiera rozp\u0119du, dlatego w dzisiejszym wydaniu mam dla was poza newsami kilka d\u0142u\u017cszych tekst\u00f3w, kt\u00f3re jednak mog\u0105 si\u0119 Wam przyda\u0107. Nie zabraknie te\u017c ciekawych releas\u00f3w.<\/p>\n","protected":false},"author":10,"featured_media":13934,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[23],"tags":[],"class_list":["post-13915","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm"],"acf":{"estimated_reading_time":"6","feature_image_blog":{"ID":14335,"id":14335,"title":"ArturSkowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2","filename":"ArturSkowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2.png","filesize":2212898,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/ArturSkowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2.png","link":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/arturskowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2-2\/","alt":"","author":"10","description":"","caption":"","name":"arturskowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2-2","status":"inherit","uploaded_to":13915,"date":"2023-02-03 09:37:40","modified":"2023-02-03 09:37:40","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/vived.io\/wp-includes\/images\/media\/default.png","width":1536,"height":1024,"sizes":{"thumbnail":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/ArturSkowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2-150x150.png","thumbnail-width":150,"thumbnail-height":150,"medium":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/ArturSkowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2-300x200.png","medium-width":300,"medium-height":200,"medium_large":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/ArturSkowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2-768x512.png","medium_large-width":768,"medium_large-height":512,"large":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/ArturSkowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2-1024x683.png","large-width":1024,"large-height":683,"1536x1536":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/ArturSkowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2.png","1536x1536-width":1536,"1536x1536-height":1024,"2048x2048":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/ArturSkowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2.png","2048x2048-width":1536,"2048x2048-height":1024,"gform-image-choice-sm":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/ArturSkowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2.png","gform-image-choice-sm-width":300,"gform-image-choice-sm-height":200,"gform-image-choice-md":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/ArturSkowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2.png","gform-image-choice-md-width":400,"gform-image-choice-md-height":267,"gform-image-choice-lg":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/ArturSkowronski_doors_to_narnia_4b91cb4d-e3d8-4c75-858e-119b61b57ec2.png","gform-image-choice-lg-width":600,"gform-image-choice-lg-height":400}},"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/JVM-Weekly-1200x628_V2-4.png","feature_image_visible":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Jak wej\u015b\u0107 w \u015bwiat Javy w 2023? - JVM Weekly #121 - 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\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jak wej\u015b\u0107 w \u015bwiat Javy w 2023? - JVM Weekly #121 - Vived\" \/>\n<meta property=\"og:description\" content=\"Rok dopiero nabiera rozp\u0119du, dlatego w dzisiejszym wydaniu mam dla was poza newsami kilka d\u0142u\u017cszych tekst\u00f3w, kt\u00f3re jednak mog\u0105 si\u0119 Wam przyda\u0107. Nie zabraknie te\u017c ciekawych releas\u00f3w.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-19T12:28:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-03T09:39:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/JVM-Weekly-1200x628_V2-4.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"Jak wej\u015b\u0107 w \u015bwiat Javy w 2023? &#8211; JVM Weekly #121\",\"datePublished\":\"2023-01-19T12:28:01+00:00\",\"dateModified\":\"2023-02-03T09:39:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/\"},\"wordCount\":1258,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/JVM-Weekly-1200x628_V2-4.png\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/\",\"url\":\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/\",\"name\":\"Jak wej\u015b\u0107 w \u015bwiat Javy w 2023? - JVM Weekly #121 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/JVM-Weekly-1200x628_V2-4.png\",\"datePublished\":\"2023-01-19T12:28:01+00:00\",\"dateModified\":\"2023-02-03T09:39:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/JVM-Weekly-1200x628_V2-4.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/JVM-Weekly-1200x628_V2-4.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jak wej\u015b\u0107 w \u015bwiat Javy w 2023? &#8211; JVM Weekly #121\"}]},{\"@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":"Jak wej\u015b\u0107 w \u015bwiat Javy w 2023? - JVM Weekly #121 - 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\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/","og_locale":"pl_PL","og_type":"article","og_title":"Jak wej\u015b\u0107 w \u015bwiat Javy w 2023? - JVM Weekly #121 - Vived","og_description":"Rok dopiero nabiera rozp\u0119du, dlatego w dzisiejszym wydaniu mam dla was poza newsami kilka d\u0142u\u017cszych tekst\u00f3w, kt\u00f3re jednak mog\u0105 si\u0119 Wam przyda\u0107. Nie zabraknie te\u017c ciekawych releas\u00f3w.","og_url":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/","og_site_name":"Vived","article_published_time":"2023-01-19T12:28:01+00:00","article_modified_time":"2023-02-03T09:39:33+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/JVM-Weekly-1200x628_V2-4.png","type":"image\/png"}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"Jak wej\u015b\u0107 w \u015bwiat Javy w 2023? &#8211; JVM Weekly #121","datePublished":"2023-01-19T12:28:01+00:00","dateModified":"2023-02-03T09:39:33+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/"},"wordCount":1258,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/JVM-Weekly-1200x628_V2-4.png","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/","url":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/","name":"Jak wej\u015b\u0107 w \u015bwiat Javy w 2023? - JVM Weekly #121 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/JVM-Weekly-1200x628_V2-4.png","datePublished":"2023-01-19T12:28:01+00:00","dateModified":"2023-02-03T09:39:33+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/JVM-Weekly-1200x628_V2-4.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/JVM-Weekly-1200x628_V2-4.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/jak-wejsc-w-swiat-javy-w-2023-jvm-weekly-121\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Jak wej\u015b\u0107 w \u015bwiat Javy w 2023? &#8211; JVM Weekly #121"}]},{"@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>1. Zestaw rad, jak zautomatyzowa\u0107 wykrywanie podatno\u015bci w projekcie<\/h2>\n","innerContent":["\n<h2>1. Zestaw rad, jak zautomatyzowa\u0107 wykrywanie podatno\u015bci w projekcie<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Bezpiecze\u0144stwo to temat tak szeroki, jak i cz\u0119sto zaniedbywany, co ostatecznie ko\u0144czy si\u0119 p\u0142aczem, zgrzytaniem z\u0119b\u00f3w i sekcjami w newsletterach typu tego, kt\u00f3ry w\u0142a\u015bnie czytacie. Dlatego te\u017c pocz\u0105tkiem 2023 chcia\u0142em podrzuci\u0107 Wam publikacje <a href=\"https:\/\/lmyslinski.com\/posts\/the-ultimate-java-cve-guide\/\">The ultimate guide to Java Security Vulnerabilities (CVE)<\/a> stanowi\u0105c\u0105 \u015bwietny poradnik, jak pracowa\u0107 z szeroko rozumianymi narz\u0119dziami SecOps w Javie.<\/p>\n","innerContent":["\n<p>Bezpiecze\u0144stwo to temat tak szeroki, jak i cz\u0119sto zaniedbywany, co ostatecznie ko\u0144czy si\u0119 p\u0142aczem, zgrzytaniem z\u0119b\u00f3w i sekcjami w newsletterach typu tego, kt\u00f3ry w\u0142a\u015bnie czytacie. Dlatego te\u017c pocz\u0105tkiem 2023 chcia\u0142em podrzuci\u0107 Wam publikacje <a href=\"https:\/\/lmyslinski.com\/posts\/the-ultimate-java-cve-guide\/\">The ultimate guide to Java Security Vulnerabilities (CVE)<\/a> stanowi\u0105c\u0105 \u015bwietny poradnik, jak pracowa\u0107 z szeroko rozumianymi narz\u0119dziami SecOps w Javie.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":625,"height":427},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/cve-1.jpg\" alt=\"\" width=\"625\" height=\"427\"\/><figcaption class=\"wp-element-caption\">I od razu podkradam mu powy\u017csze z\u0142oto. Szklanka zawsze do po\u0142owy pe\u0142na!<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/cve-1.jpg\" alt=\"\" width=\"625\" height=\"427\"\/><figcaption class=\"wp-element-caption\">I od razu podkradam mu powy\u017csze z\u0142oto. Szklanka zawsze do po\u0142owy pe\u0142na!<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>\u0141ukasz My\u015bli\u0144ski opublikowa\u0142 ko\u0144cem poprzedniego roku poradnik, w ramach kt\u00f3rego opisa\u0142 ekosystem narz\u0119dzi, kt\u00f3rego programi\u015bci mog\u0105 u\u017cywa\u0107 do sprawdzenia swojego \"\u0142a\u0144cuchu dostaw\" zale\u017cno\u015bci. Takich tekst\u00f3w w sieci nie brakuje, cz\u0119sto s\u0105 pisane przez cho\u0107by tw\u00f3rc\u00f3w pojawiaj\u0105cych si\u0119 w artykule narz\u0119dzi, ale tutaj zalet\u0105 jest Java-Centryczno\u015b\u0107. Wiele z porad jest po prostu bardzo \u0142atwa do przeniesienia i dzia\u0142aj\u0105ca ze znanym, istniej\u0105cym ekosystemem narz\u0119dzi. Dlatego polecam lektur\u0119, zw\u0142aszcza je\u017celi czeka was nied\u0142ugo jaki\u015b audyt, recertyfikacja ISO lub po prostu chcecie sprawdzi\u0107, czy nie macie u siebie jakich\u015b przeoczonych dziur.<\/p>\n","innerContent":["\n<p>\u0141ukasz My\u015bli\u0144ski opublikowa\u0142 ko\u0144cem poprzedniego roku poradnik, w ramach kt\u00f3rego opisa\u0142 ekosystem narz\u0119dzi, kt\u00f3rego programi\u015bci mog\u0105 u\u017cywa\u0107 do sprawdzenia swojego \"\u0142a\u0144cuchu dostaw\" zale\u017cno\u015bci. Takich tekst\u00f3w w sieci nie brakuje, cz\u0119sto s\u0105 pisane przez cho\u0107by tw\u00f3rc\u00f3w pojawiaj\u0105cych si\u0119 w artykule narz\u0119dzi, ale tutaj zalet\u0105 jest Java-Centryczno\u015b\u0107. Wiele z porad jest po prostu bardzo \u0142atwa do przeniesienia i dzia\u0142aj\u0105ca ze znanym, istniej\u0105cym ekosystemem narz\u0119dzi. Dlatego polecam lektur\u0119, zw\u0142aszcza je\u017celi czeka was nied\u0142ugo jaki\u015b audyt, recertyfikacja ISO lub po prostu chcecie sprawdzi\u0107, czy nie macie u siebie jakich\u015b przeoczonych dziur.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Do powy\u017cszej listy, ja bym od siebie podrzuci\u0142 jeszcze <a href=\"https:\/\/github.com\/mercedes-benz\/sechub\">SecHub<\/a> - narz\u0119dzie Open-Source, stworzone przez Mercedes i napisane w Javie, pozawalaj\u0105ce zagregowa\u0107 pod wsp\u00f3ln\u0105 parasolk\u0105 wiele skaner\u00f3w bezpiecze\u0144stwa online. B\u0119d\u0119 przygl\u0105da\u0142 si\u0119 rozwojowi ca\u0142o\u015bci, bo to co do tej pory zosta\u0142o pokazane ma spory potencja\u0142.<\/p>\n","innerContent":["\n<p>Do powy\u017cszej listy, ja bym od siebie podrzuci\u0142 jeszcze <a href=\"https:\/\/github.com\/mercedes-benz\/sechub\">SecHub<\/a> - narz\u0119dzie Open-Source, stworzone przez Mercedes i napisane w Javie, pozawalaj\u0105ce zagregowa\u0107 pod wsp\u00f3ln\u0105 parasolk\u0105 wiele skaner\u00f3w bezpiecze\u0144stwa online. B\u0119d\u0119 przygl\u0105da\u0142 si\u0119 rozwojowi ca\u0142o\u015bci, bo to co do tej pory zosta\u0142o pokazane ma spory potencja\u0142.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/lmyslinski.com\/posts\/the-ultimate-java-cve-guide\/\">The ultimate guide to Java Security Vulnerabilities (CVE)<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/lmyslinski.com\/posts\/the-ultimate-java-cve-guide\/\">The ultimate guide to Java Security Vulnerabilities (CVE)<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/github.com\/mercedes-benz\/sechub\">SecHub<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/github.com\/mercedes-benz\/sechub\">SecHub<\/a><\/li>\n"]}],"innerHTML":"\n<ul>\n\n<\/ul>\n","innerContent":["\n<ul>",null,"\n\n",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. Natywne obrazy GraalVM uruchomione na procesorach RISC-V<\/h2>\n","innerContent":["\n<h2>2. Natywne obrazy GraalVM uruchomione na procesorach RISC-V<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ten news jest nieco mniejszy, ale jako\u015b tak \u0142adnie wpisuje mi si\u0119 w ostatnie zmiany w JDK, \u017ce stwierdzi\u0142em, i\u017c podziel\u0119 si\u0119 z Wami faktem, \u017ce Natywne Obrazy GraalVM mo\u017cna odpali\u0107 na architekturze RISC-V, o czym <a href=\"https:\/\/medium.com\/graalvm\/graalvm-native-image-meets-risc-v-899be38eddd9\">poinformowa\u0142 Sacha Coppey, pracuj\u0105cy w Oracle Labs<\/a>.<\/p>\n","innerContent":["\n<p>Ten news jest nieco mniejszy, ale jako\u015b tak \u0142adnie wpisuje mi si\u0119 w ostatnie zmiany w JDK, \u017ce stwierdzi\u0142em, i\u017c podziel\u0119 si\u0119 z Wami faktem, \u017ce Natywne Obrazy GraalVM mo\u017cna odpali\u0107 na architekturze RISC-V, o czym <a href=\"https:\/\/medium.com\/graalvm\/graalvm-native-image-meets-risc-v-899be38eddd9\">poinformowa\u0142 Sacha Coppey, pracuj\u0105cy w Oracle Labs<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Czym RISC-V nie jest gotowym procesorem, a raczej modelem programowym procesora (z angielskiego ISA) opartego o filozofi\u0119 dostarczania \u015bci\u015ble wyspecjalizowanego zestawu instrukcji (reduced instruction set computer \u2013 RISC w\u0142a\u015bnie). Cytuj\u0105c Wikipedi\u0119:<\/p>\n","innerContent":["\n<p>Czym RISC-V nie jest gotowym procesorem, a raczej modelem programowym procesora (z angielskiego ISA) opartego o filozofi\u0119 dostarczania \u015bci\u015ble wyspecjalizowanego zestawu instrukcji (reduced instruction set computer \u2013 RISC w\u0142a\u015bnie). Cytuj\u0105c Wikipedi\u0119:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/quote","attrs":[],"innerBlocks":[{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W kontra\u015bcie do wi\u0119kszo\u015bci ISA, RISC-V mo\u017ce by\u0107 swobodnie u\u017cywany w dowolnym celu, umo\u017cliwiaj\u0105c ka\u017cdemu projektowanie, produkcj\u0119 i sprzeda\u017c czip\u00f3w i oprogramowania RISC-V. Chocia\u017c nie jest pierwsz\u0105 otwart\u0105 architektur\u0105 ISA ma du\u017ce znaczenie, poniewa\u017c zosta\u0142 zaprojektowany z my\u015bl\u0105 o nowoczesnych skomputeryzowanych urz\u0105dzeniach, takich jak ogromne chmury obliczeniowe, wysokiej klasy telefony kom\u00f3rkowe i najmniejsze systemy wbudowane.<\/p>\n","innerContent":["\n<p>W kontra\u015bcie do wi\u0119kszo\u015bci ISA, RISC-V mo\u017ce by\u0107 swobodnie u\u017cywany w dowolnym celu, umo\u017cliwiaj\u0105c ka\u017cdemu projektowanie, produkcj\u0119 i sprzeda\u017c czip\u00f3w i oprogramowania RISC-V. Chocia\u017c nie jest pierwsz\u0105 otwart\u0105 architektur\u0105 ISA ma du\u017ce znaczenie, poniewa\u017c zosta\u0142 zaprojektowany z my\u015bl\u0105 o nowoczesnych skomputeryzowanych urz\u0105dzeniach, takich jak ogromne chmury obliczeniowe, wysokiej klasy telefony kom\u00f3rkowe i najmniejsze systemy wbudowane.<\/p>\n"]}],"innerHTML":"\n<blockquote class=\"wp-block-quote\"><\/blockquote>\n","innerContent":["\n<blockquote class=\"wp-block-quote\">",null,"<\/blockquote>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Z mojej perspektywy ciekawy jest sam proces, kt\u00f3ry tego typu operacj\u0119 umo\u017cliwi\u0142, przypomina on bowiem o wszechstronno\u015bci ca\u0142ego projektu. Sam kompilator GraalVM nie pozwala bowiem na tworzenie binarek do tej architektury, ale architektura projektu jest na tyle elastyczna, \u017ce mo\u017cliwe jest wpi\u0119cie kompilatora u\u017cywanego przez LLVM - uniwersalnego kompilatora, u\u017cywanego przez szereg r\u00f3\u017cnych j\u0119zyk\u00f3w. Je\u017celi jeste\u015bcie ciekawi, czym jest LLVM, polecam publikacj\u0119 <a href=\"https:\/\/www.infoworld.com\/article\/3247799\/what-is-llvm-the-power-behind-swift-rust-clang-and-more.html\">What is LLVM? The power behind Swift, Rust, Clang, and more<\/a>. A moim zdaniem warto, bo m\u00f3wimy tutaj o jednym z najwa\u017cniejszych klock\u00f3w \u015bwiata programowania, kt\u00f3ry jednak nie jest znany szerokim mas\u0105 programist\u00f3w. Moim zdaniem warto mie\u0107 chocia\u017c \u015bwiadomo\u015b\u0107 jego istnienia.<\/p>\n","innerContent":["\n<p>Z mojej perspektywy ciekawy jest sam proces, kt\u00f3ry tego typu operacj\u0119 umo\u017cliwi\u0142, przypomina on bowiem o wszechstronno\u015bci ca\u0142ego projektu. Sam kompilator GraalVM nie pozwala bowiem na tworzenie binarek do tej architektury, ale architektura projektu jest na tyle elastyczna, \u017ce mo\u017cliwe jest wpi\u0119cie kompilatora u\u017cywanego przez LLVM - uniwersalnego kompilatora, u\u017cywanego przez szereg r\u00f3\u017cnych j\u0119zyk\u00f3w. Je\u017celi jeste\u015bcie ciekawi, czym jest LLVM, polecam publikacj\u0119 <a href=\"https:\/\/www.infoworld.com\/article\/3247799\/what-is-llvm-the-power-behind-swift-rust-clang-and-more.html\">What is LLVM? The power behind Swift, Rust, Clang, and more<\/a>. A moim zdaniem warto, bo m\u00f3wimy tutaj o jednym z najwa\u017cniejszych klock\u00f3w \u015bwiata programowania, kt\u00f3ry jednak nie jest znany szerokim mas\u0105 programist\u00f3w. Moim zdaniem warto mie\u0107 chocia\u017c \u015bwiadomo\u015b\u0107 jego istnienia.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Og\u00f3lnie JDK coraz bardziej lubi si\u0119 z RISC-V, w ko\u0144cu to w\u0142a\u015bnie wsparcie dla tych procesor\u00f3w pojawi\u0142o si\u0119 dopiero co w JDK 19 jesieni\u0105 zesz\u0142ego roku.<\/p>\n","innerContent":["\n<p>Og\u00f3lnie JDK coraz bardziej lubi si\u0119 z RISC-V, w ko\u0144cu to w\u0142a\u015bnie wsparcie dla tych procesor\u00f3w pojawi\u0142o si\u0119 dopiero co w JDK 19 jesieni\u0105 zesz\u0142ego roku.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":13926,"width":512,"height":512,"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\/01\/image-5-1024x1024.png\" alt=\"\" class=\"wp-image-13926\" width=\"512\" height=\"512\"\/><figcaption class=\"wp-element-caption\">Ciekawe, jak og\u00f3lnie wygl\u0105da adopcja tamtego jedynego stabilnego feature releasu.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/image-5-1024x1024.png\" alt=\"\" class=\"wp-image-13926\" width=\"512\" height=\"512\"\/><figcaption class=\"wp-element-caption\">Ciekawe, jak og\u00f3lnie wygl\u0105da adopcja tamtego jedynego stabilnego feature releasu.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/medium.com\/graalvm\/graalvm-native-image-meets-risc-v-899be38eddd9\">GraalVM Native Image meets RISC-V<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/medium.com\/graalvm\/graalvm-native-image-meets-risc-v-899be38eddd9\">GraalVM Native Image meets RISC-V<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/www.infoworld.com\/article\/3247799\/what-is-llvm-the-power-behind-swift-rust-clang-and-more.html\">What is LLVM? The power behind Swift, Rust, Clang, and more<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/www.infoworld.com\/article\/3247799\/what-is-llvm-the-power-behind-swift-rust-clang-and-more.html\">What is LLVM? The power behind Swift, Rust, Clang, and more<\/a><\/li>\n"]}],"innerHTML":"\n<ul>\n\n<\/ul>\n","innerContent":["\n<ul>",null,"\n\n",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3. Jak odpowiedzieliby\u015bcie na pytanie, jak zosta\u0107 programist\u0105 Javy w 2023?<\/h2>\n","innerContent":["\n<h2>3. Jak odpowiedzieliby\u015bcie na pytanie, jak zosta\u0107 programist\u0105 Javy w 2023?<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Mam wra\u017cenie, \u017ce bior\u0105c pod uwag\u0119 zakres tematyczny tego newslettera, raczej nie mam w\u015br\u00f3d publiki za wielu os\u00f3b, kt\u00f3re dopiero zaczynaj\u0105 przygod\u0119 z Jav\u0105 (je\u015bli si\u0119 myl\u0119, napiszcie prosz\u0119 jak wytrzymali\u015bcie wstawk\u0119 o wsparciu RISC-V w GraalVM). Na pewno jednak wielu z nas ma m\u0142odszych znajomych (cho\u0107 pewnie nie tylko), kt\u00f3rzy pytaj\u0105, jak w og\u00f3le rozpocz\u0105\u0107 przygod\u0119 z t\u0105 ca\u0142\u0105 Jav\u0105. Mnie si\u0119 to czasem zdarza, i przyznam, \u017ce odpowied\u017a nie jest zawsze taka oczywista... zapomnia\u0142 w\u00f3\u0142 jak ciel\u0119ciem by\u0142, i naprawd\u0119 ci\u0119\u017cko nakre\u015bli\u0107 sp\u00f3jn\u0105, logiczn\u0105 \u015bcie\u017ck\u0119 kt\u00f3r\u0105 taka osoba mia\u0142aby pod\u0105\u017ca\u0107.<\/p>\n","innerContent":["\n<p>Mam wra\u017cenie, \u017ce bior\u0105c pod uwag\u0119 zakres tematyczny tego newslettera, raczej nie mam w\u015br\u00f3d publiki za wielu os\u00f3b, kt\u00f3re dopiero zaczynaj\u0105 przygod\u0119 z Jav\u0105 (je\u015bli si\u0119 myl\u0119, napiszcie prosz\u0119 jak wytrzymali\u015bcie wstawk\u0119 o wsparciu RISC-V w GraalVM). Na pewno jednak wielu z nas ma m\u0142odszych znajomych (cho\u0107 pewnie nie tylko), kt\u00f3rzy pytaj\u0105, jak w og\u00f3le rozpocz\u0105\u0107 przygod\u0119 z t\u0105 ca\u0142\u0105 Jav\u0105. Mnie si\u0119 to czasem zdarza, i przyznam, \u017ce odpowied\u017a nie jest zawsze taka oczywista... zapomnia\u0142 w\u00f3\u0142 jak ciel\u0119ciem by\u0142, i naprawd\u0119 ci\u0119\u017cko nakre\u015bli\u0107 sp\u00f3jn\u0105, logiczn\u0105 \u015bcie\u017ck\u0119 kt\u00f3r\u0105 taka osoba mia\u0142aby pod\u0105\u017ca\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dlatego te\u017c zawsze z wielk\u0105 rado\u015bci\u0105 przytulam teksty, kt\u00f3re mog\u0119 podrzuci\u0107 jako takie \"pierwsze kroki\". A tak\u0105 w\u0142a\u015bnie publikacj\u0119 w zesz\u0142ym tygodniu przygotowa\u0142 Gunnar Morling. <a href=\"https:\/\/www.morling.dev\/blog\/getting-started-with-java-development-2023\/\">Getting Started With Java Development in 2023 \u2014 An Opinionated Guide<\/a> z miejsca wyl\u0105dowa\u0142o w czo\u0142\u00f3wce mojego prywatnym rankingu ulubionych pozycji dla nowicjuszy. Jego \u015bwie\u017co\u015b\u0107 (nie bez kozery ma 2023 w nazwie) ma te\u017c ciekawy efekt uboczny - je\u017celi pracujecie w projekcie, kt\u00f3ry utkn\u0105\u0142 np. na Javie 8 i jakiej\u015b starej wersji Springa, publikacja pozwoli Wam na od\u015bwie\u017cenie sobie wiedzy i rozpatrzenie si\u0119, co mog\u0142o Was omin\u0105\u0107.<\/p>\n","innerContent":["\n<p>Dlatego te\u017c zawsze z wielk\u0105 rado\u015bci\u0105 przytulam teksty, kt\u00f3re mog\u0119 podrzuci\u0107 jako takie \"pierwsze kroki\". A tak\u0105 w\u0142a\u015bnie publikacj\u0119 w zesz\u0142ym tygodniu przygotowa\u0142 Gunnar Morling. <a href=\"https:\/\/www.morling.dev\/blog\/getting-started-with-java-development-2023\/\">Getting Started With Java Development in 2023 \u2014 An Opinionated Guide<\/a> z miejsca wyl\u0105dowa\u0142o w czo\u0142\u00f3wce mojego prywatnym rankingu ulubionych pozycji dla nowicjuszy. Jego \u015bwie\u017co\u015b\u0107 (nie bez kozery ma 2023 w nazwie) ma te\u017c ciekawy efekt uboczny - je\u017celi pracujecie w projekcie, kt\u00f3ry utkn\u0105\u0142 np. na Javie 8 i jakiej\u015b starej wersji Springa, publikacja pozwoli Wam na od\u015bwie\u017cenie sobie wiedzy i rozpatrzenie si\u0119, co mog\u0142o Was omin\u0105\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":13929,"width":350,"height":438,"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\/01\/image-6.png\" alt=\"\" class=\"wp-image-13929\" width=\"350\" height=\"438\"\/><figcaption class=\"wp-element-caption\">Dlatego te\u017c w zasadzie polecam cho\u0107by spojrze\u0107 na ca\u0142o\u015b\u0107 ka\u017cdemu.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/image-6.png\" alt=\"\" class=\"wp-image-13929\" width=\"350\" height=\"438\"\/><figcaption class=\"wp-element-caption\">Dlatego te\u017c w zasadzie polecam cho\u0107by spojrze\u0107 na ca\u0142o\u015b\u0107 ka\u017cdemu.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/www.morling.dev\/blog\/getting-started-with-java-development-2023\/\">Getting Started With Java Development in 2023 \u2014 An Opinionated Guide<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/www.morling.dev\/blog\/getting-started-with-java-development-2023\/\">Getting Started With Java Development in 2023 \u2014 An Opinionated Guide<\/a><\/li>\n"]}],"innerHTML":"\n<ul><\/ul>\n","innerContent":["\n<ul>",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>4. Release Radar<\/h2>\n","innerContent":["\n<h2>4. Release Radar<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A na sam koniec, kilka ciekawych releas\u00f3w z ostatnich tygodni.<\/p>\n","innerContent":["\n<p>A na sam koniec, kilka ciekawych releas\u00f3w z ostatnich tygodni.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>Kotlin 1.8<\/h3>\n","innerContent":["\n<h3>Kotlin 1.8<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tak, wiem, pisa\u0142em o nim dopiero co w zesz\u0142ym tygodniu jako o wydaniu widmo, a ono jak na z\u0142o\u015b pojawi\u0142o si\u0119 dok\u0142adnie tego samego dnia co m\u00f3j rant. W dalszym ci\u0105gu jest to fakt godny odnotowania, poniewa\u017c dzi\u0119ki oficjalnej premierze dostali\u015bmy standardowy zestaw materia\u0142\u00f3w towarzysz\u0105cych, jak np. <a href=\"https:\/\/www.youtube.com\/watch?v=cLyTx5wSPbg\">wprowadzenie wideo do nowej wersji j\u0119zyka<\/a>, kt\u00f3re jak zawsze bardzo polecam.<\/p>\n","innerContent":["\n<p>Tak, wiem, pisa\u0142em o nim dopiero co w zesz\u0142ym tygodniu jako o wydaniu widmo, a ono jak na z\u0142o\u015b pojawi\u0142o si\u0119 dok\u0142adnie tego samego dnia co m\u00f3j rant. W dalszym ci\u0105gu jest to fakt godny odnotowania, poniewa\u017c dzi\u0119ki oficjalnej premierze dostali\u015bmy standardowy zestaw materia\u0142\u00f3w towarzysz\u0105cych, jak np. <a href=\"https:\/\/www.youtube.com\/watch?v=cLyTx5wSPbg\">wprowadzenie wideo do nowej wersji j\u0119zyka<\/a>, kt\u00f3re jak zawsze bardzo polecam.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wi\u0119cej moich przemy\u015ble\u0144 <a href=\"https:\/\/vived.substack.com\/p\/kotlin-18-is-a-phantom-release-jvm\">znajdziecie w poprzedniej edycji<\/a>.<\/p>\n","innerContent":["\n<p>Wi\u0119cej moich przemy\u015ble\u0144 <a href=\"https:\/\/vived.substack.com\/p\/kotlin-18-is-a-phantom-release-jvm\">znajdziecie w poprzedniej edycji<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>Mockito 5.0<\/h3>\n","innerContent":["\n<h3>Mockito 5.0<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Drugim z ciekawych releas\u00f3w z pocz\u0105tku roku to Mockito 5.0. Jest to release nietuzinkowy, poniewa\u017c obrazuje on to, \u017ce wszelkiej ma\u015bci migracje na nowe wersje Javy nie zawsze b\u0119d\u0105 takie bezproblemowe.<\/p>\n","innerContent":["\n<p>Drugim z ciekawych releas\u00f3w z pocz\u0105tku roku to Mockito 5.0. Jest to release nietuzinkowy, poniewa\u017c obrazuje on to, \u017ce wszelkiej ma\u015bci migracje na nowe wersje Javy nie zawsze b\u0119d\u0105 takie bezproblemowe.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Mockito do bowiem do\u015b\u0107 nietypowy projekt - jako, \u017ce generuje ono Mocki obiekt\u00f3w, wielokrotnie musi obchodzi\u0107 modyfikatory dost\u0119pu istniej\u0105ce w Javie, czasem u\u017cywaj\u0105c mechanizm\u00f3w takich jak refleksja, w niekt\u00f3rych przypadkach za\u015b schodz\u0105c jeszcze g\u0142\u0119biej - do internali JVM. Te ostatnie za\u015b nie s\u0105 stabilnym API i zmieniaj\u0105 si\u0119 pomi\u0119dzy poszczeg\u00f3lnymi wersjami. Czasem rzeczona modyfikacje s\u0105 przezroczyste, ale nie zawsze jest mo\u017cliwe. Bardzo utrudnione jest te\u017c r\u00f3wnoleg\u0142e wspieranie wielu wersji JDK, bo ka\u017cda z nich wymaga\u0107 mo\u017ce innego mechanizmu.<\/p>\n","innerContent":["\n<p>Mockito do bowiem do\u015b\u0107 nietypowy projekt - jako, \u017ce generuje ono Mocki obiekt\u00f3w, wielokrotnie musi obchodzi\u0107 modyfikatory dost\u0119pu istniej\u0105ce w Javie, czasem u\u017cywaj\u0105c mechanizm\u00f3w takich jak refleksja, w niekt\u00f3rych przypadkach za\u015b schodz\u0105c jeszcze g\u0142\u0119biej - do internali JVM. Te ostatnie za\u015b nie s\u0105 stabilnym API i zmieniaj\u0105 si\u0119 pomi\u0119dzy poszczeg\u00f3lnymi wersjami. Czasem rzeczona modyfikacje s\u0105 przezroczyste, ale nie zawsze jest mo\u017cliwe. Bardzo utrudnione jest te\u017c r\u00f3wnoleg\u0142e wspieranie wielu wersji JDK, bo ka\u017cda z nich wymaga\u0107 mo\u017ce innego mechanizmu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W zwi\u0105zku z tym w Mockito 5.0 postanowiono pozby\u0107 si\u0119 wsparcia dla starszych JDK, minimaln\u0105 wspieran\u0105 wersj\u0105 czyni\u0105c JDK 11. R\u00f3wnolegle jednak, tw\u00f3rcy na przestrzeni ostatnich wersji musieli stworzy\u0107 nowy spos\u00f3b mockowania podklas, poniewa\u017c z ka\u017cdym kolejnym wydaniem stare rozwi\u0105zania, ze wzgl\u0119du na mocniejsze limitowanie dost\u0119pu do internali JDK w kolejnych edycjach, stawa\u0142y si\u0119 coraz bardziej ograniczone. Wraz z wersj\u0105 5.0, <code>mockito-inline<\/code> - nowy mechanizm - sta\u0142 si\u0119 wreszcie rozwi\u0105zaniem domy\u015blnym<\/p>\n","innerContent":["\n<p>W zwi\u0105zku z tym w Mockito 5.0 postanowiono pozby\u0107 si\u0119 wsparcia dla starszych JDK, minimaln\u0105 wspieran\u0105 wersj\u0105 czyni\u0105c JDK 11. R\u00f3wnolegle jednak, tw\u00f3rcy na przestrzeni ostatnich wersji musieli stworzy\u0107 nowy spos\u00f3b mockowania podklas, poniewa\u017c z ka\u017cdym kolejnym wydaniem stare rozwi\u0105zania, ze wzgl\u0119du na mocniejsze limitowanie dost\u0119pu do internali JDK w kolejnych edycjach, stawa\u0142y si\u0119 coraz bardziej ograniczone. Wraz z wersj\u0105 5.0, <code>mockito-inline<\/code> - nowy mechanizm - sta\u0142 si\u0119 wreszcie rozwi\u0105zaniem domy\u015blnym<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ca\u0142a sytuacja jest mi bliska z dw\u00f3ch powod\u00f3w. Po pierwsze, jestem (z dum\u0105!) cz\u0142onkiem <a href=\"https:\/\/github.com\/ArturSkowronski\">GitHubowej organizacji Mockito<\/a>, pracowa\u0142em kiedy\u015b z jego tw\u00f3rcami nad ich innym Open-Source - <a href=\"https:\/\/github.com\/mockito\/shipkit\">shipkit<\/a>, kt\u00f3ry niestety jest ju\u017c od pewnego czasu martwy (ale dalej cudowne do\u015bwiadczenie, dzi\u0119kuj\u0119 za mo\u017cliwo\u015b\u0107 \ud83e\udd29). Dodatkowo, sam natkn\u0105\u0142em si\u0119 historycznie na problemy z internalami Mockito, <a href=\"https:\/\/medium.com\/smart-up\/we-tried-groovy-ee-and-what-we-learned-from-it-5b78c8f963de\">kt\u00f3re mia\u0142em okazj\u0119 opisa\u0107 w moim pierwszym tek\u015bcie po\u015bwi\u0119conym JVM-owi<\/a><\/p>\n","innerContent":["\n<p>Ca\u0142a sytuacja jest mi bliska z dw\u00f3ch powod\u00f3w. Po pierwsze, jestem (z dum\u0105!) cz\u0142onkiem <a href=\"https:\/\/github.com\/ArturSkowronski\">GitHubowej organizacji Mockito<\/a>, pracowa\u0142em kiedy\u015b z jego tw\u00f3rcami nad ich innym Open-Source - <a href=\"https:\/\/github.com\/mockito\/shipkit\">shipkit<\/a>, kt\u00f3ry niestety jest ju\u017c od pewnego czasu martwy (ale dalej cudowne do\u015bwiadczenie, dzi\u0119kuj\u0119 za mo\u017cliwo\u015b\u0107 \ud83e\udd29). Dodatkowo, sam natkn\u0105\u0142em si\u0119 historycznie na problemy z internalami Mockito, <a href=\"https:\/\/medium.com\/smart-up\/we-tried-groovy-ee-and-what-we-learned-from-it-5b78c8f963de\">kt\u00f3re mia\u0142em okazj\u0119 opisa\u0107 w moim pierwszym tek\u015bcie po\u015bwi\u0119conym JVM-owi<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":13916,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/yeah-i-member-memberberries.gif\" alt=\"\" class=\"wp-image-13916\"\/><figcaption class=\"wp-element-caption\">Pi\u0119kne wspominki - zrobi\u0142em si\u0119 na stare lata sentymentalny.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/yeah-i-member-memberberries.gif\" alt=\"\" class=\"wp-image-13916\"\/><figcaption class=\"wp-element-caption\">Pi\u0119kne wspominki - zrobi\u0142em si\u0119 na stare lata sentymentalny.<\/figcaption><\/figure>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/13915","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=13915"}],"version-history":[{"count":11,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/13915\/revisions"}],"predecessor-version":[{"id":14340,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/13915\/revisions\/14340"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/13934"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=13915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=13915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=13915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}