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

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="" xmlns:xsi="" xsi:schemaLocation=""> <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="" xmlns:xsi="" xsi:schemaLocation=""> <id>customArchitype</id> <sources> <source>src/main/java/customArchitype/</source> </sources> <testSources> <source>src/test/java/customArchitype/</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
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: 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: 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
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, 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

JayDeBeApi 1.1.0

Mar 19 4:24pm Java News
The JayDeBeApi module allows you to connect from Python code to databases using Java JDBC . It provides a Python DB-API v2.0 to that database.
Read More

Aspects and Services - an Important Distinction?

Mar 19 1:33pm InfoQ
Arnon Rotem-Gal-Oz believes the view that something is either a monolith or a microservice is nonsense. He also believes that more and more implementations which claim to be microservices will not live up to all of the principles. However, he does not discount the need for semi-independently deployable software components and discusses an approach he has found useful, which he call Aspects. By Mark Little...
Read More

Spring Boot XML Configuration Example

Mar 19 11:47am
On this page we will provide spring boot XML configuration example. We will create a REST web service with XML configuration. We will import our XML file in java configuration. We need to use @ImportResource with @Configuration in our spring boot application.
Read More

Article: How to Make Different Types of JavaScript Lists? 4 Examples with Webix

Mar 19 10:39am InfoQ
Sergey Laptick shows how to create web components to display data in the form of different types of lists using the Webix UI Library. From simple lists, to advanced, interactive lists, Laptick discusses the core concepts behind Webix lists and how to create your own, customized list implementations. By Sergey Laptick...
Read More

h2o_pysparkling_2.1 2.1.1

Mar 19 1:45am 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

How Object Initialization Works [Videos]

Mar 19 1:01am DZone Java Zone
You may have gotten used to my habit of writing about some special, non-trivial Java feature or usage. This time it will be a little different, at least to start. This is a video tutorial about object initialization. We have an interface. Then we have an abstract class that implements the interface and a concrete class that extends the abstract class. They do nothing except write some strings to the console when they are executed so we can see what order they are executed. They have static initializer blocks, wherever it's possible, non-static initializer blocks, and constructors. By the way, do you know, and be honest with yourself, whether it's permitted to have a static initializer block inside an interface? If you know Java very well but you cannot answer that question with absolute certainty, it will not hurt to watch this 9-minute tutorial.
Read More

Presentation: The Most Important Things I Have Learnt This Year

Mar 18 11:18pm InfoQ
Simon Powers shares what he learned from various Agile speakers teaching, coaching and coaching at Adventures with Agile. By Simon Powers...
Read More

Presentation: Framing Our Potential for Failure

Mar 18 8:55pm InfoQ
Michelle Brush discusses modeling complex systems and architectural changes that could introduce new modes of failure, using examples from embedded systems to large stream processing pipelines. By Michelle Brush...
Read More

Hosting Alexa Skills on AWS is Almost Free Now

Mar 18 7:00pm InfoQ
Amazon has announced a program to subsidize the hosting of Alexa skills that use AWS Lambda and incur use charges beyond what is provided by the AWS free tier. Only developers having at least one skill live are eligible to apply. By Sergio De Simone...
Read More

Amazon Adds Time to Live (TTL) Support to AWS DynamoDB

Mar 18 3:23pm InfoQ
In a recent blog post, Amazon announced changes to its NoSQL database service, DynamoDB, that includes support for Time to Live (TTL) on data stored in the service. Deleting data, based upon time-based thresholds, provides opportunities for organizations to reduce storage costs for data that decreases in value over time. By Kent Weare...
Read More

Article: Teams and the Way They Work

Mar 18 8:12am InfoQ
The terms “self-organised” and “cross functional” are often used to describe a team. What does this mean, and how will you recognise if your team has these features. Great teams work with the uniqueness of each person’s skills, experiences and outlook – forging the motivation to achieve a shared goal, within the constraints in which the operate. By Simon Reindl...
Read More

Learning to Become Agile

Mar 18 6:20am InfoQ
The agile paradigm adapts processes to human nature, in contrast to the classical management approach which obliges team members to adjust to a particular development process. Bateson's learning model can help us to go from doing agile - following an agile method - to being agile - having your own agile identity and vision. By Ben Linders...
Read More

Java EE Security Early Draft Review Starts Now!

Mar 18 1:01am DZone Java Zone
The Java EE Security API just posted its first early draft review. Because of the now-accelerated Java EE 8 schedule, the rest of the steps towards finalization of the specification are going to happen very quickly. Java EE security is one of the most anticipated changes in Java EE 8. This is the case particularly because security is one of the last areas left to be revamped in the way most other Java EE APIs, such as EJB 3, have been changed radically. As a result, Java EE security is very highly dependent on things like vendor-specific GUI console wizards, vendor-specific configuration, or command-line administrative tools. Pluggability, extensibility, and customization are also currently challenging when the security features that already come with the application server are not sufficient. This is the main reason for the existence of third-party security frameworks in server-side Java, like Shiro and Keycloak. The Java EE Security API aims to solve these important issues and promote both simplicity and portability, particularly in the cloud.
Read More