A Look at IntelliJ IDEA's Support for Java 9 Modules

Mar 23 4:01pm DZone Java Zone
IntelliJ IDEA 2017.1 brings support for Java 9’s new modularity (Project Jigsaw). In this latest version, support includes code completion in the module-info.java file, and quick fixes for adding modules to your project. Let’s take a look at a basic example of a modular project. To start with, we just have an ordinary IntelliJ IDEA module that contains a simple “Hello World” type application.
Read More

Agile is King, but Continuous Integration is an Elusive Goal

Mar 23 3:49pm InfoQ
A recent survey led by Dimension Data on the testing trends in modern development teams shows that agile methods are widely adopted whereas only a few organizations reported the ability to deploy on a hourly-basis, an increasing goal amongst the respondents By Rui Miguel Ferreira...
Read More

Save $1,100 on the HP LaserJet Enterprise M506dh Printer By Using This Code - Deal Alert

Mar 23 2:44pm JavaWorld
HP is having a spring sale, and they've discounted the LaserJet Enterprise M506dh Printer by a whopping $1,100 if you use the special coupon code BMA165655 between now and 3/31. This HP Laser Monochrome Printer has a steadfast printing speed of up to 45 ppm -- perfect when you have a progressive printing system in mind. Its 1200x1200 dpi copy ensures sheer, precise copies in result. It’s an f2a71a#201 Automatic duplex printer that can absorb up to 250 sheets on its output bin, and does a 100-sheet on its multipurpose tray 1, while it can work suitably with 550-sheet on its 2 and 3 input trays. It can perform with 650 sheets on a standard paper input, and 250 standard paper output sheets. It can print out 150,000 pages on a monthly duty cycle. Use the coupon code BMA165655 to save big money for a limited time.To read this article in full or to leave a comment, please click here...
Read More

This Week in Spring: DDD, Spring Cloud Updates, and RabbitMQ

Mar 23 12:01pm DZone Java Zone
Welcome to another installment of This Week in Spring! This week I’m visiting with customers and am presenting at the first Devoxx US event in San Jose, California. If you’re around, don’t hesitate to stop by and say hi at the Pivotal booth in the expo hall. As usual, we’ve got a lot to cover so let’s get to it!...
Read More

Eclipse Newsletter - Internet of all the Things

Mar 23 11:57am Java News
This month, the Eclipse Newsletter is all about the Internet of Things . The articles feature various Eclipse IoT projects including, Eclipse Hono, Eclipse ioFog, Eclipse Kapua, and Eclipse Vorto.
Read More

Developing for the Microsoft Surface Hub

Mar 23 11:36am InfoQ
Microsoft has released a series of nine videos to explain how to design and develop applications for the Microsoft Surface Hub. These videos are intended for both developers and designers that are using the Universal Windows Platform (UWP). By Michael Stiefel...
Read More

53% off Jaybird X2 Sport Wireless Bluetooth Headphones - Deal Alert

Mar 23 9:46am JavaWorld
With a regular list price of $149.99, the current discount makes the Jaybird X2 Sport is now available with a 53\% discount for this deal. Features include: Premium Bluetooth Audio For Skip-Free Music Outdoors 8 Hours of Music + Calls With Complete Remote Controls Secure Over/Under-Ear Fit Options Lifetime Sweat proof Warranty Includes Comply Premium Sport Memory Foam Ear Tips, Patented Secure-Fit Ear Fins, Friction-Fit Silicone Sport Carrying Case, Silicone Ear Tips, Charging Cable & Cord Management Clips. Jump to Amazon now for additional details, and to explore buying options.To read this article in full or to leave a comment, please click here...
Read More

Lazy Loading With Vaadin 8

Mar 23 6:01am DZone Java Zone
One of my favorite new features in Vaadin 8 is the Grid::setDataProvider method, which makes it remarkably easy to implement lazy loading in Grids. In earlier versions of Vaadin, you had to implement a rather complex Container interface. Vaadin 8 not only removes this interface, but also provides a modern API that takes advantage of many Java 8 features. In this article, you will learn how to implement lazy loading to show a sortable list of people in a Grid component by simply providing two lambda expressions. You can find two “flavors” of the example application: One for people who use Spring (Spring Boot), and one for people who use Java EE (CDI and WildFly Swarm):...
Read More

Applying Hoshin Kanri at Toyota

Mar 23 5:57am InfoQ
Toyota uses Hoshin Kanri to give direction on where they want to improve using Lean IT. Employees at various levels can exchange ideas about Hoshin items, and potentially get them approved by higher management. This approach makes results stronger and increases buy- in from the employees who contribute upfront. By Ben Linders...
Read More

Dealing With Maven Dependencies When Switching to Git

Mar 23 3:01am DZone Java Zone
So we're moving to Git and we like git-flow. Now what? Let's test it all out! My team is great. They threw together a hit list of developer workflows in Confluence, all based on what we had been doing as a team and all of the weird things they thought we might have to do in the future. Then, in a project structure mirroring our own (but with no code in it — just a pom.xml), tried every workflow. Maven dependencies were about to prove themselves to be our biggest problem in all of this.
Read More

Object-Oriented Solutions: Accounts and Currencies

Mar 23 12:01am DZone Java Zone
This article is about a simplified version of real code running at a financial institution and how maintenance problems with this code can be avoided by using Object-Oriented Design. The purpose of the code is to represent retail money Accounts and enable transferring money, define recurring transfers and to support the usual functionality you find at any bank. First, there is an Account interface and a Money class:...
Read More

Presentation: SQL Server on Linux: Will it Perform or Not?

Mar 22 11:37pm InfoQ
Slava Oks talks about SQL Server’s platform agnostic architecture. Oks briefly goes over the history of the project, high-level architecture and dives into the core of I/O Manager, Memory Manager, and Scheduler. Every topic includes lessons learned and experiences behind the scenes. By Slava Oks...
Read More

Presentation: Security War Stories: The Battle for the Internet of Things

Mar 22 9:30pm InfoQ
Alasdair Allan focuses on the sort of security problems people face when building Internet of Things devices, and the underlying differences between the Internet of Things and the digital Internet that drive those security issues. By Alasdair Allan...
Read More

Distributed Scheduling and Servicing in Java

Mar 22 4:01pm DZone Java Zone
The usage of task schedulers is a pertinent necessity in enterprise solutions. There are numerous articles on the Internet discussing the usability of such services/libraries, so we won't explore that any further. Instead, we will try to address a recurring issue in scheduler-based solution design.
Read More

Java 9's other new enhancements, Part 4: Multi-release JAR files

Mar 22 2:40pm JavaWorld
JEP 238: Multi-Release JAR Files extends the JAR file format to allow multiple, Java-release-specific versions of class/resource files to coexist in the same archive. This upgrade makes it easier for third-party libraries and frameworks to use language and API features introduced in newer Java releases. This post introduces you to multi-release JAR files.Discovering multi-release JAR files Many third-party Java frameworks and libraries support several versions of the Java platform. For example, as of version 4.0, the Spring Framework supports Java 6, 7, and 8. Java frameworks and libraries often don't leverage the language or API features that are available in newer Java releases because of the difficulty in expressing conditional platform dependencies (which generally involves using reflection) or in distributing different library artifacts for different platform versions. For example, Spring 4.x doesn't use any Java 8 language features in its own code. However, it can autodetect and automatically activate many Java 8 API features.To read this article in full or to leave a comment, please click here...
Read More

W3C Web of Things Working Group Begins Work

Mar 22 1:10pm InfoQ
The recently chartered Web of Things Working Group at the W3C has begun its standardization work. The Working Group (WG) was born out of exploration previously done by the Web of Things Interest Group (IG). By Benjamin Young...
Read More

Java EE @ DevNexus 2017 [Slides]

Mar 22 12:01pm DZone Java Zone
DevNexus 2017 was held in historic Atlanta on February 22-24. For those of you not familiar with it, DevNexus is the most significant Java-centric conference in the southeastern US and now perhaps even at a national level. It was started by JBoss Java Champion Burr Sutter and organized by the Atlanta JUG (currently lead by Vincent Mayers, Gunnar Hillert, Pratik Patel, et al). I guess at this point I am somewhat of a DevNexus veteran myself. As usual, DevNexus attracted a bevy of world-class speakers including Ed Burns, David Blevins, Ivar Grimstad, Simon Ritter, Heather VanCura, Stephen Chin, Simon Maple, Geertjan Wielenga, Victor Orozco, Edson Yanaga, and Enrique Zamudio. This was another solid year for DevNexus. Java EE had a strong showing at the conference as usual, including my own sessions. I am very proud to say my company CapTech sponsored DevNexus for the very first time. We had a fully manned booth that saw very good traffic and we also sponsored a well-attended happy hour.
Read More

GitHub Steps Up to Recognizing Developers Creative Rights

Mar 22 11:00am InfoQ
GitHub’s Balanced Employee Intellectual Property agreement (BEIPA) is an attempt to strike a new balance to assign developers more rights on their intellectual creation outside of work. By making it an open source project, GitHub also hopes to make it reusable and open to outside contributions. By Sergio De Simone...
Read More

HelloFresh's Migration to a New API Gateway to Enable Microservices

Mar 22 10:15am InfoQ
HelloFresh recently migrated their applications to a new API gateway with zero downtime. Their Director of Engineering, Ítalo Lelis de Vietro, shared the challenges and the migration process in a recent article. By Hrishikesh Barua...
Read More

Android O: Notification Channels, Background Limits, PIP and More

Mar 22 9:30am InfoQ
Google has made available the Android O Preview to developers, admonishing them to test their applications on the new OS to be ready when this version of Android becomes publicly available. New in Android O: More Background limits, Notification channels, Picture-in-picture, Autofill, Adaptive icons, API changes and others. By Abel Avram...
Read More

Windows 10 Developers Encouraged to Upgrade to Visual Studio 2017

Mar 22 8:30am InfoQ
Following the formal release of Visual Studio 2017, Microsoft is strongly encouraging developers to upgrade to its latest development environment. Yet while the Creators Update SDK now requires VS2017, not some Windows 10 development workloads still require VS2015. By Jeff Martin...
Read More

Neural Network Programming with Java - Second Edition

Mar 22 8:22am Java News
This step-by-step guide will help you solve real-world problems and links neural network theory to their application This book is for Java developers who want to know how to develop smarter applications using the power of neural networks. Those who deal with a lot of complex data and want to use it efficiently in their day-to-day apps will find this book quite useful.
Read More

Spring WebFlux: First Steps

Mar 22 6:01am DZone Java Zone
Spring WebFlux is used for denoting the Reactive programming support in Spring's web layer. It provides support for both creating reactive, server-based web applications and also has client libraries to make remote REST calls. In this post, I will demonstrate a sample web application that makes use of Spring WebFlux. As detailed here, the WebFlux support in Spring 5+ supports two different programming styles — the traditional, annotation-based style and the new functional style. In this post, I will be sticking to the traditional annotation style and try to follow it up in another blog post detailing a similar application, but with endpoints defined in a functional style. My focus is going to be the programming model.
Read More

Rust, React, JavaScript, Python top Stack Overflow survey

Mar 22 6:00am News & Views
There may be a perception in some circles that software developers have been busy coding since childhood. But online programming community Stack Overflow in its recent developer survey found many coders have been coming aboard much later. The annual survey, which had 64,000 developers participating worldwide in January and February, uncovered a wide range of experience levels. Thanks to online courses and coding boot camps, adults with little to no programming experience can now more easily transition to a career as a developer, Stack Overflow said. Slightly more than 50 percent of respondents had been coding professionally for about five years or fewer, while just 7.5 percent were coding for 20 years or more.To read this article in full or to leave a comment, please click here...
Read More

Discover your application architecture with Plumbr

Mar 22 3:31am Plumbr – User Experience Monitoring for Java Applications
Adoption of the microservices has introduced several new problems to our field. One of such issues is the ever-growing and non-transparent complexity of your distributed deployment. Plumbr is now able to discover and visualize your microservices based deployments based on the data discovered during actual production traffic monitoring.
Read More

Using Java Streams and Collectors

Mar 22 3:01am DZone Java Zone
Java 8 provides Streams, which makes many Collection operations easy. Streaming items from a collector and filtering the data are trivial, as well as are sorting, searching, and computing aggregates. That is, if you are familiar with the many Collectors functions available. We present some of these functions here. Summing an Integer List Computing the sum total of numbers in a List? No longer do you need a loop, an iterator, or temporary variables. Assuming numbers contains a List of integers, the following neatly computes the result.
Read More

Devoxx US 2017: Day 1 Recap

Mar 22 12:25am InfoQ
Reviewing day 1 of Devoxx US. By Wesley Reisz...
Read More

When Is Self-Encapsulation Worth It?

Mar 22 12:01am DZone Java Zone
Data encapsulation is a central tenet in the object-oriented style. This says that the fields of an object should not be exposed publicly, instead all access from outside the object should be via accessor methods (getters and setters). There are languages that allow publicly accessible fields, but we usually caution programmers not to do this. Self-encapsulation goes a step further, indicating that all internal access to a data field should also go through accessor methods as well. Only the accessor methods should touch the data value itself. If the data field isn't exposed to the outside, this will mean adding additional private accessors. Here's an example of a reasonably encapsulated Java class Charge:...
Read More

Netflix Demonstrates Big Data Analytics Infrastructure

Mar 21 7:00pm InfoQ
At QCon San Francisco, engineers at Netflix discussed their big data strategy and analytics infrastructure. This included a summary of the scale of their data, their S3 data warehouse, and Genie, their big data federated orchestration system. By Andrew Morgan...
Read More

Java vs. Python: Which One Is Best for You? | @DevOpsSummit #APM #Java #Python

Mar 21 5:01pm Java News
Few questions in software development are more divisive or tribal than choice of programming language. Software developers often identify strongly with their tools of choice, freely mixing objective facts with subjective preference.
Read More

How to Create a Custom Maven Archetype

Mar 21 4:01pm DZone Java Zone
In this article, I will show you how to create your own Archetype in Maven so it can fit your company coding structure template. To do this, follow these steps: Create a Maven project using Eclipse to be used as your custom archetype. I named it customArchitype. Its pom.xml looks like: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>customArchitype</artifactId> <version>1.0.Example</version> </project> Then create a folder structure like META-INF/maven under src/main/resources. Now, your project structure should look like: src/main/resources/META-INF/maven After that, create a file called archetype.xml under the aforesaid folder. This file will look like the following: <archetype xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0 http://maven.apache.org/xsd/archetype-1.0.0.xsd"> <id>customArchitype</id> <sources> <source>src/main/java/customArchitype/CustomExample.java</source> </sources> <testSources> <source>src/test/java/customArchitype/CustomExampleTest.java</source> </testSources> </archetype>...
Read More

Platform9 Introduce 'Kube2Go' Alongside Managed Kubernetes and 'Fission' Serverless Framework

Mar 21 1:00pm InfoQ
Platform9 have released ‘Kube2Go’, a Kubernetes deployment service, which complements their recently launched multi-cloud managed Kubernetes offering and ‘Fission’ open source serverless framework that runs on top of Kubernetes. By Daniel Bryant...
Read More

Spring Boot Change Default Server Port

Mar 21 12:45pm ConcretePage.com
This page will walk through how to change spring boot default server port. When spring boot application starts, the embedded server such as Tomcat starts with a default port. The embedded tomcat starts with 8080 port as default. There are many ways to change default server port.
Read More

Composite Builds With Gradle and IntelliJ IDEA

Mar 21 12:01pm DZone Java Zone
One of the new features in IntelliJ IDEA 2017.1 is full support for Gradle Composite Builds. We were fortunate to have Stefan Oehme from Gradle presenting a webinar, showing what composite builds are, how they work and why you might want to use them. In the second part of the webinar, I (Trisha Gee) cover the support for Gradle composite builds in IntelliJ IDEA 2017.1. Take a look at the end of this post for the full video. Support for composite builds was first introduced in IntelliJ IDEA 2016.3. With this, you had the ability to add additional Gradle builds to your project, and configure them as a dependency for your composite build.  You can see this functionality at the start of the section showing the IntelliJ IDEA features, but let’s take a quick refresher course in what Gradle Composite Builds are.
Read More

WebStorm 2017.1 Adds Vue.js Support

Mar 21 10:08am InfoQ
WebStorm 2017.1 keeps the IDE topped off with the latest JavaScript features including support for Vue.js, Jest, Angular Language Service, StandardJS and emojis. By David Iffland...
Read More

Bugtraq: [Erpscan-16-041] Sap Netweaver Directory Creation Outside of the JVM

Mar 21 10:05am Java News
Application: SAP NetWeaver Versions Affected: SAP NetWeaver AS JAVA UMEADMIN component Vendor URL: http://SAP.com Bugs: Directory traversal Reported: 04.12.2015 Vendor response: 05.12.2015 Date of Public Advisory: 13.12.2016 Reference: SAP Security Note 2310790 Author: Mathieu Geli Description 1. ADVISORY INFORMATION Title: [ERPSCAN-16-041] SAP NETWEAVER DIRECTORY CREATION OUTSIDE OF THE JVM Advisory ID: [ERPSCAN-16-041] Risk: medium Advisory URL: https://erpscan.com/advisories/erpscan-16-041-sap-netweaver-directory-cr eation-outside-jvm/ Date published:13.12.2016 Vendors contacted: SAP 2. VULNERABILITY INFORMATION Class: Directory traversal Impact: deletion of critical file system content Remotely Exploitable: yes Locally Exploitable: no CVSS Information CVSS Base Score v3: 6.8 / 10 CVSS Base Vector: AV : Attack Vector Network AC : Attack Complexity Low PR : Privileges Required High UI ... (more)...
Read More

Lean and Agile Culture at the Finnish Broadcasting Company Yle

Mar 21 9:09am InfoQ
Scaling lean and agile is not a question of frameworks, it's about values, principles and mindset. At Yle the company management has been involved in the agile transformation by carrying out experiments, learning and doing; not by implementing frameworks. Magic happens when you work together with people in teams on all levels. By Ben Linders...
Read More

What Is a Spring Context?

Mar 21 6:01am DZone Java Zone
In this post, we will create a Spring context and get a bean object from it. What Is a Spring Context? Spring contexts are also called Spring IoC containers, which are responsible for instantiating, configuring, and assembling beans by reading configuration metadata from XML, Java annotations, and/or Java code in the configuration files.
Read More

How to find which statement failed in a JDBC Batch Update

Mar 21 5:16am Vlad Mihalcea's Blog
Introduction Yesterday, my Danish friend, Flemming Harms, asked my a very interesting question related to when a JDBC batch update fails. Basically, considering we are going to group several DML statements in a batch, we need a way to tell which statement is the cause of the failure. This post is going to answer this … Continue reading How to find which statement failed in a JDBC Batch Update →...
Read More

Java 8 Tutorials

Mar 21 3:38am Mkyong.com
Some Java 8 examples, hope you like it. Index Java 8 Lambda : Comparator example Java 8 forEach examples Java 8 Streams filter examples Java 8 – Stream Collectors groupingBy examples Java 8 – Filter a null value from a Stream Java 8 – Convert a Stream to List Java – How to convert Array […]...
Read More

h2o_pysparkling_2.1 2.1.2

Mar 21 3:37am Java News
In order to use PySparkling, it requires the following runtime python dependencies to be available on the system: requests , tabulate , six and future modules, all of which are available on PyPI: In order to use PySparkling in Databricks cloud, PySparkling module has to be added as a library to current cluster. PySparkling can be added as library in two ways.
Read More

Immutables in Java

Mar 21 12:01am DZone Java Zone
In this article from my free Java 8 course, I will be discussing immutables in Java. You can download the slides and the article as PDF here.
Read More

The Programmer's Way to Convert Excel to CSV (With UTF-8)

Mar 20 4:01pm DZone Java Zone
CSV stands for Comma-Separated-Values and is a very common format used for exchanging data between diverse applications. While the Excel Spreadsheet file format is complex (since it has to accommodate a lot more!), CSV is a simpler format representing just tabular data. In this article, we show you a way of exporting the data from an Excel spreadsheet to CSV. We use the Apache POI library for the purpose.
Read More

Building a Bank with Golang, Microservices and Containers: Matt Heath at QCon London

Mar 20 2:00pm InfoQ
At QCon London Matt Heath, Distributed Systems Engineer at Monzo Bank, presented “Building a Bank with Golang”. Key takeaways included: Golang’s focus on simplicity and readability in combination with excellent concurrency primitives make this a language well-suited for creating “high volume, low latency, distributed applications”. By Daniel Bryant...
Read More

Mini book: The Morning Paper Issue 4 - Computer Science Applied

Mar 20 1:10pm InfoQ
In this issue of The Morning Paper Quarterly Review Adrian Colyer looks at how simple testing can avoid catastrophic failures, symbolic reasoning vs. neural networks, how to infer a smartphone password via WiFi signals, how and why Facebook does load testing in production, and automated SLOs in enterprise clusters. By Adrian Colyer...
Read More

Podcast: Dave West on Craftsmanship, the Future of Scrum and Improving the Profession of Software Delivery

Mar 20 12:55pm InfoQ
In this podcast recorded at the Agile New Zealand conference in November 2016, Shane Hastie spoke to David West, CEO and Product Owner of Scrum.org, about the history of Scrum, the importance of empiricism and improving the profession of software delivery. By Dave West...
Read More

39% off Samsung Gear 360, 360-degree High-Res VR Camera - Deal Alert

Mar 20 12:36pm JavaWorld
The Gear 360 is smaller than a baseball, so you can just hold it and shoot. Or set it down on the included tripod and live in the moment. Look all around you -- that’s what you capture with the Gear 360. Every angle, all at once, every time. Play videos back, trim and instantly share your creation on YouTube, Facebook or Samsung VR. Right now the Gear 360 is significantly discounted from its typical list price of $350. With the current 39\% off deal you can get it now for just $214 on Amazon, where it averages 4 out of 5 stars (read recent reviews).  See the discounted Samsung Gear 360-degree camera now on Amazon.To read this article in full or to leave a comment, please click here...
Read More

Spring Tips: The Spring Web Flux Reactive Client

Mar 20 12:01pm DZone Java Zone
Hi Spring fans! In this installment, we’ll look at the reactive WebClient and WebTestClient in Spring Web Flux, the reactive web stack in Spring framework 5, due this summer.
Read More

NGINX Plus R12 Brings Master-Peer Configuration Sharing, Improved Scripting, and More

Mar 20 11:00am InfoQ
Nginx has announced release 12 of NGINX Plus, the paid version of the popular NGINX open source web server. NGINX Plus R12 brings a new configuration-sharing feature aimed to simplify clustering, official support for the nginScript language, and improvements in monitoring and instrumentation, caching, and reliability. By Sergio De Simone...
Read More

Yahoo Open Sources TensorFlowOnSpark

Mar 20 11:00am InfoQ
Yahoo open sources TensorFlowOnSpark, allowing Spark-native TensorFlow runtime and integration for distributed training and serving on Spark or Hadoop. By Dylan Raithel...
Read More

Article: Agile Scaling in Action

Mar 20 9:53am InfoQ
The biggest reason for adopting agile at scale is that despite the fantasy that a collection of agile teams will somehow organically integrate to deploy a program, that is not the reality. That’s why for larger dev/test outfits or projects, companies sometimes roll up individual agile teams into one agile environment at enterprise scale. Yousef presents lessons learned and words to the wise. By Yousef Awad...
Read More

The Difference Between Currying and Partially Applied Functions

Mar 20 6:01am DZone Java Zone
In this article, I want to show a real difference between curried functions and partially applied functions in Scala. This question is pretty common for those developers who started learning Scala without previous experience in functional programming. Moreover, this blog post may be useful even for experienced Scala developers because, based on my experience, I have had an incorrect understanding of the difference between the curried functions and partially applied functions. So here is the most classic example of misunderstanding in the question of currying and partially applied functions. I wrote that article ~9 months ago. Since then, I've dived deeper into Scala and figured out what a curried function is and what a partially applied function is.
Read More

3 Years of the Merit Money System, a Revolution on the Recognition Methods Proposed by Cludio Pires

Mar 20 6:00am InfoQ
Back to 2014, Cláudio Pires, a CEO in the healthcare business, has implemented an alternative employee recognition method, the Merit Money System. Three years later, InfoQ challenged him to talk about the wins, the pitfalls and the lessons learned so far. By Rui Miguel Ferreira...
Read More

The Open-Closed Principle is Often Not What You Think it Is

Mar 20 5:38am java – Java, SQL and jOOQ.
jOOQ is a library that loves making everything internal final and package private. We have tons of classes like these: The class implements the semantics of SQL string concatenation. Clearly, you shouldn’t need to tamper with it (or even know about it), because it is “protected” behind the corresponding public API in the DSL class:…Read more The Open-Closed Principle is Often Not What You Think it Is...
Read More

What Is a Java Formatter in Java Programming?

Mar 20 3:15am
Explore the Java Formatter class and observe some of its utility in everyday programming in Java.
Read More

Working With JUnitParams

Mar 20 3:01am DZone Java Zone
Do you write enough tests? Even if the answer is yes, there might be some scenarios where you could add a few more to cover extra possibilities. But do you really want to go through the effort of having to write out another test for the extra inputs you are going to test? JUnitParams provides a solution to this, allowing you to write fewer individual tests while keeping the coverage the same. It does so by defining parameters to pass into each test, and then you use these parameters to replace what would have originally been static values. In this post, I will show you a little tutorial on how to use JUnitParams.
Read More

Java Testing Weekly 12 / 2017

Mar 20 2:57am Petri Kainulainen
There are many software development blogs out there, but many of them don’t publish testing articles on a regular basis. Also, I have noticed that some software developers don’t read blogs written by software testers. That is a shame because I think that we can learn a lot from them. That is why I decided […]     ...
Read More

An Introduction to Functional Programming in Java 8 (Part 4): Splitter

Mar 20 12:01am DZone Java Zone
In the previous articles, we learned about the most basic ways to program functionally in Java. We used functions as Objects, Streams, and much more. Today, we want to create a useful example with them. You will train with the paradigms of the previous parts and learn how to optimize the runtime of your program.
Read More

Presentation: From Data Science to ProductionDeploy, Scale, Enjoy

Mar 19 11:04pm InfoQ
Sergii Khomenko introduces best practices of development, covers production deployments to the AWS stack, and using the serverless architecture for data applications. By Sergii Khomenko...
Read More