{"id":41583,"date":"2018-12-21T16:20:55","date_gmt":"2018-12-21T08:20:55","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=47031"},"modified":"2018-12-21T16:20:55","modified_gmt":"2018-12-21T08:20:55","slug":"java-weekly-issue-260","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2018\/12\/21\/java-weekly-issue-260\/","title":{"rendered":"Java Weekly, Issue 260"},"content":{"rendered":"<p><strong>Here we go\u2026<\/strong><\/p>\n<h2><strong>1. Spring and Java<\/strong><\/h2>\n<h4><a href=\"https:\/\/spring.io\/blog\/2018\/12\/12\/how-fast-is-spring\"  rel=\"noopener\"><strong>&gt;&gt; How Fast is Spring?<\/strong><\/a> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<p>An overview recent optimizations around startup time and heap usage in Spring Boot 2.1 and Spring 5.1, plus a handful of tips to <strong>make your apps start and run faster<\/strong>.<\/p>\n<h4><a href=\"https:\/\/medium.com\/@NetflixTechBlog\/netflix-oss-and-spring-boot-coming-full-circle-4855947713a0\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Netflix OSS and Spring Boot \u2014 Coming Full Circle<\/strong><\/a> [<span style=\"color: #993300;\">medium.com<\/span>]<\/h4>\n<p>After years of building its infrastructure in-house, <strong>Netflix is fully embracing Spring Boot<\/strong>.<\/p>\n<h4><a href=\"https:\/\/thoughts-on-java.org\/hibernate-tips-apply-distinct-to-jpql-but-not-sql-query\/\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Hibernate Tips: How To Apply DISTINCT to Your JPQL But Not Your SQL Query<\/strong><\/a> [<span style=\"color: #993300;\">thoughts-on-java.org<\/span>]<\/h4>\n<p>A quick look at using Hibernate&#8217;s <em>QueryHints<\/em> to <strong>make DISTINCT queries more efficient<\/strong>.<\/p>\n<h4><a href=\"https:\/\/vladmihalcea.com\/bind-custom-hibernate-parameter-type-jpa-query\/\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0How to bind custom Hibernate parameter types to JPA queries<\/strong><\/a> [<span style=\"color: #993300;\">vladmihalcea.com<\/span>]<\/h4>\n<p>A good write-up on <strong>using custom types in Hibernate entities and queries<\/strong>, with a complete example in PostgreSQL. Very cool.<\/p>\n<h4><a href=\"https:\/\/blog.frankel.ch\/even-odd-coroutines\/\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Even and odd with coroutines<\/strong><\/a> [<span style=\"color: #993300;\">blog.frankel.ch<\/span>]<\/h4>\n<p>And a nice piece\u00a0<strong>comparing two approaches to a concurrent algorithm<\/strong> \u2014 one using Kotlin coroutines and another using Java threads.<\/p>\n<h4><strong>Also worth reading:<\/strong><\/h4>\n<ul>\n<li>\n<h4><a href=\"https:\/\/thoughts-on-java.org\/access-strategies-in-jpa-and-hibernate\/\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Access Strategies in JPA and Hibernate \u2013 Which is better, field or property access?<\/strong><\/a> [<span style=\"color: #993300;\">thoughts-on-java.org<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"http:\/\/mail.openjdk.java.net\/pipermail\/jdk-dev\/2018-December\/002405.html\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0JDK 12 is now in Rampdown Phase One<\/strong><\/a> [<span style=\"color: #993300;\">mail.openjdk.java.net<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h4><strong>Webinars and presentations:<\/strong><\/h4>\n<ul>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2018\/12\/19\/spring-tips-reactive-sql-data-access-with-spring-data-r2dbc\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Spring Tips: Reactive SQL Data Access with Spring Data R2DBC<\/strong><\/a> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/spring-kotlin\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Springing into Kotlin: How to Make the Magic Even More Magical<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/genetic-programming-overview\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Genetic Programming in the Real World: A Short Overview<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.scottlogic.com\/2018\/12\/14\/automation-and-bots-for-open-source.html\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Tools, Bots and Automation for better Open Source Projects<\/strong><\/a> [<span style=\"color: #993300;\">blog.scottlogic.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/migration-cloud-scalability-resilience\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Buckets, Funnels, Mobs and Cats or: How We Learned to Love Scaling Apps to the Cloud<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/rabbitmq-reactor-spring-cloud\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Modern Messaging with RabbitMQ, Spring Cloud and Reactor<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/netflix-play-api\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Netflix Play API &#8211; An Evolutionary Architecture<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/stripe-technical-debt\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Paying Technical Debt at Scale &#8211; Migrations @Stripe<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/crdt-production\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0CRDTs in Production<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/netflix-migration-resilience\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Building Resilience in Production Migrations<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/presentations\/slack-scalability-2018\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Scaling Slack &#8211; The Good, the Unexpected, and the Road Ahead<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<p><strong>Time to upgrade:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"http:\/\/in.relation.to\/2018\/12\/12\/hibernate-orm-540-final-out\/\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Hibernate ORM 5.4.0.Final released<\/strong><\/a> [<span style=\"color: #993300;\">in.relation.to<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"http:\/\/in.relation.to\/2018\/12\/18\/hibernate-ogm-5-4-1-Final-released\/\"  rel=\"noopener\"><strong>&gt;&gt; Hibernate OGM 5.4.1.Final release<\/strong><\/a> [<span style=\"color: #993300;\">in.relation.to<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2018\/12\/14\/spring-credhub-2-0-0-rc1-released\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Spring CredHub 2.0.0.RC1 released<\/strong><\/a> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/spring.io\/blog\/2018\/12\/12\/spring-cloud-greenwich-rc1-available-now\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Spring Cloud Greenwich.RC1 available now<\/strong><\/a> [<span style=\"color: #993300;\">spring.io<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.10\/\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Eclipse 4.10 &#8211; New and Noteworthy<\/strong><\/a> [<span style=\"color: #993300;\">eclipse.org<\/span>]<\/h4>\n<\/li>\n<\/ul>\n<h2><strong>2. Technical and Musings<\/strong><\/h2>\n<h4><a href=\"http:\/\/blog.cleancoder.com\/uncle-bob\/2018\/12\/17\/FPvsOO-List-processing.html\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0FP vs. OO List Processing<\/strong><\/a> [<span style=\"color: #993300;\">blog.cleancoder.com<\/span>]<\/h4>\n<p>An interesting Clojure example of a functional algorithm with\u00a0<strong>recursive loops and tail-call optimization<\/strong>.<\/p>\n<h4><a href=\"https:\/\/www.infoq.com\/articles\/cross-functional-operations-team\"  rel=\"noopener\"><strong>&gt;&gt; How to Make Cross-Functional Operations a Team Effort<\/strong><\/a>\u00a0[<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<p>A study of cross-functional teams reveals that <strong>lack of collaboration can cost companies thousands of dollars per day<\/strong>. Here&#8217;s a look at how to remedy the situation.<\/p>\n<h4><a href=\"https:\/\/builttoadapt.io\/tk-65faab4cb826\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Keeping the Lines Open<\/strong><\/a> [<span style=\"color: #993300;\">builttoadapt.io<\/span>]<\/h4>\n<p>A great write-up on <strong>why communication and camaraderie are necessary for a distributed team<\/strong>.<\/p>\n<p><strong>Also worth reading:<\/strong><\/p>\n<ul>\n<li>\n<h4><a href=\"https:\/\/www.infoq.com\/news\/2018\/12\/git-2.20-released\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Git 2.20 Brings Improved Workflows and Performance<\/strong><\/a> [<span style=\"color: #993300;\">infoq.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/blog.codecentric.de\/en\/2018\/12\/ctop-monitor-docker-containers\/\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0ctop \u2013 manage and monitor your Docker containers<\/strong><\/a> [<span style=\"color: #993300;\">blog.codecentric.de<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/advancedweb.hu\/2018\/12\/18\/lambda_cf_template\/\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0The anatomy of a CloudFormation template with a simple Lambda function<\/strong><\/a> [<span style=\"color: #993300;\">advancedweb.hu<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/words.steveklabnik.com\/why-is-clojure-so-stable\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Clojure\u2019s stability: lessons learned<\/strong><\/a> [<span style=\"color: #993300;\">words.steveklabnik.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/medium.com\/netflix-techblog\/implementing-the-netflix-media-database-53b5a840b42a\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Implementing the Netflix Media Database<\/strong><\/a> [<span style=\"color: #993300;\">medium.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/codewithoutrules.com\/2018\/12\/12\/tests-are-not-enough\/\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Tests Won&#8217;t Make Your Software Correct<\/strong><\/a> [<span style=\"color: #993300;\">codewithoutrules.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/waynebeaton.wordpress.com\/2018\/12\/19\/eclipse-development-process-2018\/\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Eclipse Development Process 2018<\/strong><\/a> [<span style=\"color: #993300;\">waynebeaton.wordpress.com<\/span>]<\/h4>\n<\/li>\n<li>\n<h4><a href=\"https:\/\/www.tomitribe.com\/blog\/how-to-get-started-contributing-to-tomee-or-any-open-source-project\/\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0How to Get Started Contributing to TomEE or any Open Source Project<\/strong><\/a> [<span style=\"color: #993300;\">tomitribe.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\/2018-12-19\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Soaring with the Eagles<\/strong><\/a> [<span style=\"color: #993300;\">dilbert.com<\/span>]<\/h4>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2018-12-17\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0The Candy Honor System<\/strong><\/a> [<span style=\"color: #993300;\">dilbert.com<\/span>]<\/h4>\n<h4><a href=\"https:\/\/dilbert.com\/strip\/2018-12-16\"  rel=\"noopener\"><strong>&gt;&gt;\u00a0Following Up<\/strong><\/a> [<span style=\"color: #993300;\">dilbert.com<\/span>]<\/h4>\n<h2><strong>4. Pick of the Week<\/strong><\/h2>\n<h4><a href=\"https:\/\/pxlnv.com\/blog\/bullshit-web\/\"><strong>&gt;&gt;\u00a0The Bullshit Web<\/strong><\/a> [<span style=\"color: #993300;\">pxlnv.com<\/span>]<\/h4>\n<p><span style=\"font-weight: 400;\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A solid post on Spring performance optimizations, and a couple of good write-ups on Hibernate and JPA.&nbsp;<a href=\"https:\/\/www.baeldung.com\/java-weekly-260\" title=\"Java Weekly, Issue 260\">&gt;&gt;&gt;<\/a> <a href=\"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/2018\/12\/21\/java-weekly-issue-260\/\">\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,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,590,457,454,316],"jetpack_publicize_connections":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p7prtj-aOH","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/41583"}],"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=41583"}],"version-history":[{"count":1,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/41583\/revisions"}],"predecessor-version":[{"id":41584,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/posts\/41583\/revisions\/41584"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/media?parent=41583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/categories?post=41583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-json\/wp\/v2\/tags?post=41583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}