We need to change the way we talk about change management. New technologies, practices, and commercial pressures have made traditional change management approaches difficult to apply effectively. There is no tradeoff between rapid delivery and reliable operations.
The Java language cannot differentiate between public API and private stuff. A good example of this terrible temptation is the sun.reflect.Reflection.getCaller(int) method. The Dark Side can be seductive indeed!
We needed to solve two problems. First we needed a way to remember and enforce all the ways the search needed to behave. Second, we needed to fix the collaboration problem. As an engineer, the solution to the first problem was clear: automated testing. As a human being, the solution to the second problem was also clear: better collaboration processes and tools.
The default application generated by Play has examples of unit and integration tests, however it does not demonstrate how to integrate in any Behaviour Driven Development (BDD) frameworks.
I have met several prima donna developers, who were not even that good (see, now I am doing it myself ;-) ). This phenomenon is not limited to Java developers. It's everywhere. Frankly, it is making me sick.
Cloud DevOps and PaaS are paving a path towards teams adopting governance best practices. Teams often follow human nature and take the path of least resistance. DevOps automates activities, and with adequate up-front planning, DevOps can make ‘the right thing to do the easy thing to do’.
Recently Flo talked with Chris Coyier about Continuous Deployment and Automation on the ShopTalkShow Podcast. Many of you might know Chris also from the infamous css-tricks.com site.
When discussing functional programming we often talk about the machinery, and not the core principles. Functional programming is not about monads, monoids, or zippers. Using functions instead of simple values may seem counterintuitive at first, but it is actually a very powerful technique for generalizing code.
The next logical step in my journey across the Entity Framework v6 RC1 after having established a fairly robust data access approach was to imbue my solution with some more “smarts” when it came to entity validation.
It’s hard to have a conversation or hear a presentation these days about DevOps without hearing Netflix’s name being uttered: they’re a poster-child not only for employing DevOps principles. But how did they achieve this? Join us for a chat with members of Netflix’s Engineering Tools and Playback Reliability teams.
We use the IRC hook to receive notifications to the IRC channel (#joind.in on freenode) when interesting things happen on the GitHub repositories. We noticed recently that we were being notified about more types of things happening on some repositories compared to others, so I decided to investigate.
FluentAssertions is an alternative assertion library for unit tests, to use instead of the methods in Assert class that Microsoft provides. It has much better support for exceptions and some other stuff that improves readability and makes it easier to produce tests.
I decided that I just had to create my own little library to work with Git repositories. I call the result Silly Jgit. In this article, I will be walking through the code.
In this presentation I will describe my methods for creating change within and across organizations and provide specific examples of how to begin a meaningful shift towards making DevOps a standard practice within your organization.
Last week I was lucky enough to have ActiveState pay for me to travel to and attend DevOps Days Atlanta. I was also selected as speaker.
For modern web application development, having dozens of unit tests is not enough anymore. The actual code coverage of those tests would reveal if the application is thoroughly stressed or not. For tests written using the famous Jasmine test library, an easy way to have the coverage report is via Istanbul and Karma.
Like the iceberg that sunk the Titanic, a lot of your technical risk may be hidden or ignored until it is too late. You need to understand how big the risks are and take responsible steps to manage them.
Using @Autowired to inject Java Beans is trivial, but we can also use this annotation for java.util.List, or java.util.Map as well. How have I been taking advantage of this feature? There were cases where I needed to add a common logic in the framework module which would detect all Beans of a given type, even the ones defined in the specific module.
In the DataSift Operations team we try to automate as much as possible to leave us with more time for concentrating on more important tasks. I’d like to share some of the interesting snippets from our Opscode Chef recipes that might help you save some time too.
One blogger, going by just "James," hacked together a finite state machine with Puppet to model thermodynamic phase transitions.
The last two days were extremely interesting at the DevOps Days Conference in Tel Aviv. It was impressive to see the amount of professionals that attend and the amazing energies that supported a great open space sessions and networking.
We have been using Puppet 3 for a quite some time now, and one of the main reasons to upgrade from Puppet 2.x was the ability of using Hiera as a data backend for all the variables that customize the different VMs
Suppose that you have a Maven project and you want to download Node.js modules previously uploaded to NPM. One way of doing that without running node is by using the npm-maven-plugin
The concept of shifting left is not just about security from the start, it’s about shifting all activity to the left. It’s about shifting activity that falls under the purview of the DevOps “team”