Sometimes bad things happen in a software project and you have to revert a change that has already been committed. There are several ways to do this with Git, including Git's slightly scary ability of changing history. I'll show you the techniques I found most useful.
Two years ago, I published a Maven archetype for Hadoop that turned out to be quite popular, judging from the comments I received and the access logs on my server. Today I've updated it to use the latest version of Hadoop and to build on Maven 3 without warnings.
There are millions of web applications on the Internet that are under constant development. Paying software developers to work on bug fixes and new features is quite expensive already, but what's often neglected is the cost for deployment and operation. Well-run organizations invest in their deployment and runtime infrastructure and …
Using CSV files in batch processing applications has many advantages, most prominently interoperability between programming languages and tools. One of its weaker points is data integrity though. The format has no way to declare data types or additional metadata other than assigning names to data fields using a header.
A lot of people use SSH to log into remote hosts. SSH is secure and works well, but if you have to access many hosts with long, well-chosen passwords there is a lot of typing to do just for authentication.
In this article I'll walk you through a basic public …
The interactive python interpreter is a highly useful tool. When writing python code, I always run it in a terminal to test things and to access the documentation. Unfortunately, the built-in line editing capabilities are limited: There's no history, tab-completion, or other advanced editing features that shells like bash provide …