Java 8 introduced the concept of collectors. Most of the time we barely use factory methods from Collectors class, e.g. collect(toList()), toSet() or maybe something more fancy like counting() or groupingBy().
We often forget the most of the value we get from tests come after we’ve written them. Sure, TDD helps design the code, but when everything works for the first time, our tests become the guardians of our code. Once in place, we can change the code, hopefully for the better, knowing that everything still works.
Strong management leads a company and DevOps requires leadership. It takes organizations saying that the increased cost and time right now will be worth it because it will help us move faster in the future. A core part is how to convey to leadership the value of DevOps.
Guava library from Google provided some support for functional programming idioms prior to JDK 8.
I have been using Guava for some of my projects
Due to use of Interfaces, Observable and Observers are loosely coupled. In future if we decide that User should not implement Observer Interface no code change is required in Observable class as it uses Observer Interface and not the concrete class.
Thucydides is an open source library designed to make practicing Behaviour Driven Development easier.
Except for various corner cases, build agents nowadays often run in a virtualized environment. With today’s technologies, a template-based build agent is not difficult to handle.
So you've been coding away merrily on a project and everything is going well until a bug appears. You reach into your developer's toolbox and pull out a debugger. It's great - you can set breakpoints, you can interrupt when there's an exception and you can inspect expressions at runtime.
This update contains improvements through the entire Docker ecosystem--and it's both impressive and hopeful to see this kind of broad attention within a minor update so close in time to a major release. Good on them.
Last time we looked at generators, and more specifically those generating an infinite sequence. We saw that there were several ways to achieve this
For episode 44, we sit down with Lanette Creamer, a proponent of context-driven and agile QA practices to discuss what “quality” means in a world moving toward DevOps practices. Lanette started in QA back when solving “the blank screen” involved “typing in win.exe” and has been testing everything.
Looking around the web for information on creating a new shell from Go, I kept finding the same answer: "You can't do it." Actually, you can do it, and it's not hard.
I’ve been using wxPython for quite a while now and I see certain questions come up on a fairly frequent basis. One of the popular ones is how to ask the user for their credentials before loading up the rest of the application.
Make sure you didn't miss anything with this list of the Best of the Week in the DevOps Zone (July 4 to July 10). This week's topics include continuous delivery patterns, web tests in NodeJS, Java 8 and Java EE 7, Rackspace's best practices, continuous integration and continuous delivery provisioning tools.
Then we hit this issue of how do you create a definition of DevOps that is not too far away from the folks doing the work, but is still meaningful to the whole organization. We even talked a bit about how the name “Dev” “Ops” may be causing confusion!
In Diagramming Spring MVC webapps, I presented an approach that allows you to create a fairly comprehensive model of a software system in code.
Thucydides plays nicely with BDD tools such as JBehave, and traditional tools like JUnit, to make writing automated acceptance tests easier, and to provide richer and more useful living documentation. In a series of two articles, we will look at the tight one and two-way integration that Thucydides offers with JIRA.
This is the first of a series of posts that is going to discuss the different faces of tests. Let’s start with validity. Admittedly, it’s not the first of attribute I thought about. What are the chances we’re going to write a wrong test?
Automate ENV preparation with Docker and Vagrant.
While it is possible to construct situations where double produces an error, it is also just as easy to construct situations were BigDecimal get an error.
Packaging and deploying an application consisting of Puppet manifests and Chef cookbooks (Docker container requests also). Easy integration with Jenkins; XL Deploy takes care of targeting the manifests/cookbooks at the appropriate hosts and all the orchestration of the invocations. Piece of cake!
Microservices are an architectural style where each service is implemented as an independent system. They can use their own persistence system (although it is not mandatory), deployment, language...
New vulnerabilities are frequently discovered in open source components previously thought to be safe, so to keep your applications from going sour, you should rely on automation to alert you when new risks are discovered in existing applications.
Here are a few quick tips to examine your existing code to identify reuse candidates: