{"id":137449,"date":"2019-05-24T18:33:25","date_gmt":"2019-05-24T10:33:25","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=54172"},"modified":"2019-05-24T18:33:25","modified_gmt":"2019-05-24T10:33:25","slug":"java-weekly-issue-282","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2019\/05\/24\/java-weekly-issue-282\/","title":{"rendered":"Java Weekly, Issue 282"},"content":{"rendered":"<p><strong>Here we go\u2026<\/strong><\/p>\n<h2><strong>1. Spring and Java<\/strong><\/h2>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/05\/16\/reactive-transactions-with-spring\"  rel=\"noopener noreferrer\">&gt;&gt; Reactive Transactions with Spring<\/a><\/strong> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<p>A couple of milestone releases that let you play with Spring Reactive&#8217;s transactional support, using either RDBC2 or MongoDB.<\/p>\n<h4><a href=\"https:\/\/vmlens.com\/articles\/cp\/why_volatile\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Why do we need the volatile keyword?<\/strong><\/a> [<span style=\"color: #993300;\">vmlens.com<\/span>]<\/h4>\n<p>And a reminder that there&#8217;s still a use case for volatile, even with the cache available in modern processors.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><a href=\"https:\/\/filippobuletto.github.io\/eclipse-shenandoah\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Run your Eclipse IDE with Shenandoah GC<\/strong><\/a> [<span style=\"color: #993300;\">filippobuletto.github.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/news\/2019\/05\/j2cl-java-javascript-transpiler\/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; J2CL: A Java-to-JavaScript Transpiler<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"http:\/\/orastack.com\/multiple_condition_queues_for_better_concurrency.html\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Multiple Condition Queues For Better Concurrency<\/strong><\/a> [<span style=\"color: #993300;\">orastack.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/rieckpil.de\/howto-remote-debug-spring-boot-applications-intellij-idea-eclipse\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; #HowTo: Remote Debug Spring Boot Applications (InteliJ IDEA + Eclipse)<\/strong><\/a> [<span style=\"color: #993300;\">rieckpil.de<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/info.michael-simons.eu\/2019\/05\/17\/separation-of-concerns-in-spring-applications\/\"  rel=\"noopener noreferrer\">&gt;&gt; Separation of Concerns in Spring Applications<\/a><\/strong> [<span style=\"color: #993300;\">info.michael-simons.eu<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/antoniogoncalves.org\/2019\/05\/20\/welcome-my-fascicle-on-jpa\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Welcome My Fascicle on JPA<\/strong><\/a> [<span style=\"color: #993300;\">antoniogoncalves.org<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/vladmihalcea.com\/hibernate-query-fail-on-pagination-over-collection-fetch\/\"  rel=\"noopener noreferrer\">&gt;&gt; How to detect HHH000104 issues with hibernate.query.fail_on_pagination_over_collection_fetch<\/a><\/strong> [<span style=\"color: #993300;\">vladmihalcea.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h4><strong>Webinars and presentations:<\/strong><\/h4>\n<ul>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/05\/22\/spring-tips-reactive-transactions\"  rel=\"noopener noreferrer\">&gt;&gt; Spring Tips: Reactive Transactions<\/a><\/strong> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.youtube.com\/watch?v=gj0yKmsKwvc\"  rel=\"noopener noreferrer\">&gt;&gt; Java and JavaFX Game Development<\/a><\/strong> [<span style=\"color: #993300;\">youtube.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/www.youtube.com\/watch?v=kpio9jFhpD8\"  rel=\"noopener noreferrer\">&gt;&gt; Java, Today and Tomorrow by Mark Reinhold<\/a><\/strong> [<span style=\"color: #993300;\">youtube.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h4><strong>Time to upgrade:<\/strong><\/h4>\n<ul>\n<li><a href=\"https:\/\/www.infoq.com\/news\/2019\/05\/openliberty-releases-19.4?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Open Liberty 19.0.0.4 Released with Support for Reactive Streams Operators 1.0 and JDK 12<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/spring.io\/blog\/2019\/05\/21\/spring-cloud-data-flow-2-1-ga-released\"  rel=\"noopener noreferrer\">&gt;&gt; Spring Cloud Data Flow 2.1 GA Released<\/a> <\/strong>[<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2019\/05\/15\/reactor-californium-sr8-is-out\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Reactor Californium-SR8 is out<\/strong><\/a> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2><strong>2. Technical and Musings<\/strong><\/h2>\n<h4><a href=\"https:\/\/martinfowler.com\/bliki\/TechnicalDebt.html\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; TechnicalDebt<\/strong><\/a> [<span style=\"color: #993300;\">martinfowler.com<\/span>]<\/h4>\n<p>A good write-up about dealing with &#8220;cruft&#8221; \u2014 the <strong>deficiencies in internal quality that make software systems harder to modify and extend<\/strong>.<\/p>\n<h4><strong><a href=\"http:\/\/blog.cleancoder.com\/uncle-bob\/2019\/05\/18\/737-Max-8.html\"  rel=\"noopener noreferrer\">&gt;&gt; 737 Max 8<\/a><\/strong> [<span style=\"color: #993300;\">blog.cleancoder.com<\/span>]<\/h4>\n<p>And a stern note that we programmers have a responsibility to foresee and prevent injury, loss, or death that might occur due to errors in our code.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><strong><a href=\"https:\/\/www.satisfice.com\/blog\/archives\/40351\"  rel=\"noopener noreferrer\">&gt;&gt; Why I Am a Tester<\/a><\/strong> [<span style=\"color: #993300;\">satisfice.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.scottlogic.com\/2019\/05\/11\/spacy-ner.html\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Natural Language Processing in Cloud<\/strong><\/a> [<span style=\"color: #993300;\">blog.scottlogic.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.codecentric.de\/en\/2019\/05\/configuring-kubernetes-login-keycloak\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Configuring Kubernetes login with Keycloak<\/strong><\/a> [<span style=\"color: #993300;\">blog.codecentric.de<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.frankel.ch\/exercises-programming-style\/2\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt;Exercises in Programming Style, stacking things up<\/strong><\/a> [<span style=\"color: #993300;\">blog.frankel.ch<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.tomitribe.com\/blog\/debug-mode-in-docker-for-tomcat-and-tomee\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Debug mode in Docker for Tomcat and TomEE<\/strong><\/a> [<span style=\"color: #993300;\">www.tomitribe.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><strong><a href=\"https:\/\/blog.codecentric.de\/en\/2019\/05\/ten-cognitive-biases-to-look-out-for-as-a-developer\/\"  rel=\"noopener noreferrer\">&gt;&gt; Ten cognitive biases to look out for as a developer<\/a><\/strong> [<span style=\"color: #993300;\">blog.codecentric.de<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/articles\/test-driven-design-java\/\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Test-Driven Development: Really, It\u2019s a Design Technique<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2><strong>3. Comics<\/strong><\/h2>\n<p>And my favorite Dilberts of the week:<\/p>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2019-05-22\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Wally Has Best Excuse<\/strong><\/a> [<span style=\"color: #993300;\">dilbert.com<\/span>]<\/h4>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2019-05-21\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Worthless Suggestions<\/strong><\/a> [<span style=\"color: #993300;\">dilbert.com<\/span>]<\/h4>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2019-05-16\"  rel=\"noopener noreferrer\"><strong>&gt;&gt; Blinking Tell<\/strong><\/a> [<span style=\"color: #993300;\">dilbert.com<\/span>]<\/h4>\n<h2><strong>4. Pick of the Week<\/strong><\/h2>\n<p>I recently discovered Codota &#8211; a really cool (and free) coding assistant with surprisingly strong suggestions &#8211; and explored it in a new video here:<\/p>\n<h4><strong><a href=\"https:\/\/youtu.be\/T_wTs95wsl4\">&gt;&gt; A First Experience Working with Codota &#8211; an AI Assistant that Actually Works<\/a> <\/strong>[<span style=\"color: #993300;\">youtube.com<\/span>]<\/h4>\n<p><span style=\"font-weight: 400;\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A sneak peek at the transactional support coming to Spring Reactive, and a solid piece on dealing with technical debt.&nbsp;<a href=\"https:\/\/www.baeldung.com\/java-weekly-282\" title=\"Java Weekly, Issue 282\">&gt;&gt;&gt;<\/a> <a href=\"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2019\/05\/24\/java-weekly-issue-282\/\">\u95b1\u8b80\u5168\u6587 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":142,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"slim_seo":[],"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[2,315,3665,2149,7],"tags":[398,402,397,414,413,410,409,407,408,11,406,399,400,394,318,375,558,560,555,561,553,554,562,524,10,401,396,381,403,412,411,395,405,404,457,454,316],"jetpack_publicize_connections":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p7prtj-zKV","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/137449"}],"collection":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/users\/142"}],"replies":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/comments?post=137449"}],"version-history":[{"count":1,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/137449\/revisions"}],"predecessor-version":[{"id":137450,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/137449\/revisions\/137450"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/media?parent=137449"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/categories?post=137449"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/tags?post=137449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}