Many programmers have a hard time writing good unit-tests for code that involves time. For example, how do you test time-outs, or periodic clean-up jobs? If you structure the code the right way, much of the complexity disappears. Here is an example of a technique that lets you test time-related code with ease.
So I have been pondering an enhancement required on the Tyrus project that would allow a user to broadcast to a subset of client connected to a URL across a cluster of machines.
I’m in the process of setting up a new VPS for myself. So I have settled on UFW for the time being. Sadly, it seems to completely fail in this OpenVZ environment due to numerous modules that cannot be inserted into the running kernel. IS there anything better?
I wrote a blog titled "Why blocking is bad in Akka remoting … really bad." To my surprise people actually read my blog (crazy, I know!). One of those people was none other than Dr. Roland Kuhn, Akka Tech Lead at Typesafe. Yep, Mr. Akka himself read my blog and sent me an e-mail.
If you’re a developer, this post probably isn’t for you as we don’t dig into the code level nitty gritty, but it will give you a high level overview of logs, where they come from and how they get sent to a third party service.
Are you a Java programmer having wrist pain from typing a lot? Does your mind keep swinging from loving to hating Java? Do you want to become more productive without leaving your world of Java? If so, this article is for you. Learn how you can become more productive by slowly transitioning to Groovy.
In common with most development projects these days, I'm using git more and more. It's interesting though that the way that I use this tool just keeps on changing and evolving even after about 4 years of regular use. Today I thought I'd share a new habit that I've developed: using git's ability to stage changes interactively.
Every developer needs to be aware of what those non-functional requirements are and why operations personnel and help desk personnel are customers that are just as important as the end-users.
Einstein supposedly claimed that “if he had one hour to save the world he would spend fifty-five minutes defining the problem and only five minutes finding the solution.” Legacy code requires that kind of imagination.
If you’re still plagued by having to use Ruby 1.9.3 and you may be using, idk, Vagrant or any other type of testing environment, or just your own machine, you may have encountered the following error...
Brian talks with Mohit Lad (@mohitlad, CEO/Co-Founder of Thousand Eyes) about cloud applications, monitoring-as-a-service, the evolution of cloud tools and important considerations for developers and IT to consider when using SaaS-based management.
Humility is not a very common trait with software architects. After having worked with a few awful architects and recently with a very pleasant one, I’ve compiled a few of my experiences in the way every architect loves: As a set of rules.
When I sat down to add grunt-exec to my gruntfile.js script everything worked during my test runs, but when I went to launch the real console application I quickly realized that something was not right.
A short story about the complexity of magical frameworks and dependency injection with a happy ending, featuring Resteasy, CDI, and JBoss.
The worst bug I’ve ever tracked down and fixed was a system freeze hidden in some 300.000 lines of code. It was only experienced when the device was left untouched for about an hour (typically a lunch break) while mounted in a grader and connected to a high precision GPS. I only had a few days to find and solve it.
The Python packages in the official Ubuntu archives generally don't go back all that far, but people might still need to develop and test against these old Python interpreters. Felix Krull maintains a PPA (package archive) of older Python versions that are easy to install on Ubuntu.
A few days ago I was teaching our Win32 Concurrent Programming course and showed students an experiment with the std::thread class introduced in C++ 11. You can find the whole benchmark here. The heart of the code is the parallelize_count function, below:
Going through the list of Java 8 features, Generalized Target-Type Inference struck me as a particularly interesting, lesser-known gem. It looks as though the Java language designers will ease some of the pain that we’ve been having with generics in the past (Java 5-7).
Despite its extensive documentation, getting GeoDjango installed and configured can be a pain. Here are my notes for future reference:
A structural peek under the bonnet of a great piece of software.
We are constantly seeing articles about DevOps and the goal of improving communication between Dev and IT Operations. The underlying message is a good one: “let's all work together.” While everyone would like to work together, in theory, the adoption of DevOps has been slower than most would like.
There are two basic strategies for executing the deployment. You can either have a worker on the deployment target (an agent) or not. Both strategies have the concept of a central deployment server that acts as a controller determining when and how deployments occur.
Exceptions are a way of life when you are building any solution, you do your very best to prevent them or handle them well should they occur, but real life (and real users) always throws a spanner in the works. Raygun is a new framework and complete reporting suite aimed at helping out in the world of error reporting.
A couple of days ago I was curious when different versions of Neo4j had been released and although the release notes page was helpful I thought I’d find more detailed information if I looked up the git tags.
A PyMongo user asked me a good question today: if you want read-your-writes consistency, is it better to do acknowledged writes with a connection pool (the default), or to do unacknowledged writes over a single socket?