In day to day life as a systems engineer there aren’t too many opportunities to build solutions based purely on theoretical studies or research papers. Entering the world of programming and software development though, a lot of new problems come up that you can find your own solution to.
You inevitably see a lot of unattended, unlocked computers around the place. Naturally the responsible thing to do when seeing such risky behavior is to help the victi.. uh, I mean “individual” understand the risky nature of such behavior.
Every week here and in our newsletter, we feature a new developer/blogger from the DZone community to catch up and find out what he or she is working on now and what's coming next. This week we're talking to Antonin Januska: web developer, designer, and writer.
Developers often tend to think that one coding convention is better than another in terms of readability. The fact of the matter is, there isn’t any proof that one convention gives better readability than another.
A fundamental requirement of Continuous Delivery is that the codebase must always be in a releasable state, with each successful pipeline commit resulting in an application binary ready for production use. How can an architecture evolve without impacting the flow of customer value or increasing the risk of production failure?
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.