A few weeks ago a project of mine suddenly went offline. Fixing old code is always a humbling experience. Your own code, though … that’s humbling.
We’ve implemented some extensions to Git and Gerrit that check to make sure that commit records are structured as required, and reject those commits that are malformed.
I think that part of what makes someone a good developer is the ability to go through a codebase and figure out what is going on.
What is this “DevOps” thing that everyone from computer engineers to business leaders and recruiters are so enamored with? Is it a job title? A set of technical skills? A cultural shift? Or something else completely?
The application I’m working on now uses Spring both by parsing for XML Spring configuration files in pre-determined locations and by scanning annotations-based autowiring.
As development progresses we inevitably run into functionality gaps that are either deemed as enhancements.
The list of reasons why developers "toss stuff over the wall" is too large to tackle individually, but there are a few classics. "Tossing stuff over the wall" boils down to respect. Time is precious and when a QA analyst feels that his/her time was wasted, respect towards developers can be diminished.
A great number of people in the software field appear to think the primary benefit of unit tests is test coverage. But code coverage is not the point of unit tests. Code coverage is a side affect.
In the cloud you can turn on 100s or 1000s of servers at the click of a mouse, but what happens when you want to configure them? If you do it by hand it will take you months if not longer. That’s where Puppet comes in, an automation tool that allows you to configure and manage legions of servers.
I wanted to launch a small web application in stealth mode. I also wanted it to run completely on GitHub, using GitHub Pages. Here's how.
Today we will be looking at how to get the selected cells from a wxPython grid object. Most of the time, getting the section is easy, but when the user selects more then one cell, getting the selection becomes more complicated.
A friend of mine recently told me about the kind of problems he’s currently struggling with in the legacy application he’s maintaining. Here’s a sample piece of code to illustrate what I’m talking about:
DevOps is still misunderstood and has tremendous room for greater adoption still but let’s be clear about one very important thing: DevOps is not a replacement for operations!
Configuration in software provides a method to build systems that can adapt to different configurations. Configuration makes it possible to deliver such features without needing a change log in the application source code.
This blog is more of a tutorial where we describe the development of a simple data access module, more for fun and learning than anything else. All code can be found here for those who don’t want to type along.
The reviewer has been using Vagrant for a couple of years now, and believes that this is a good book for beginners. The book goes through most of the things you need to know to get your environment up and running.
ThoughtWorks Studios have just released a version of Snap-CI (last night) that automatically commissions pipelines if a branch is pushed up into GitHub.
If you think you’ve found a bug in Python, what’s next? I'll guide you through the process of submitting a patch, so you can avoid its pitfalls and find the shortest route to becoming a Python contributor!
Recently at work we’ve been on a “servicifying” kick, meaning we’re slowly converting our monolithic Django app into separate services. To start, this just means breaking up the existing runtime into pieces. Instead of one logical web process, we now have different ones for the web app, admin, login, apis, etc.
Wondering how much heap is used by Eclipse? Using the menu Window > Preferences there is a setting I can enable: “Show heap status“. With this, I see the current status of the heap in the lower right corner of Eclipse: The currently used amount of heap and the maximum of heap allocated.
There's a certain something in the air within the DevOps community right now. The movement is, to a certain extent, becoming a victim of its own success. For where there is buzz in tech, there is money. And where there is money, there are recruiters, there is marketing, there are misinformed and over-simplified tech articles and, let's face it, there are carpetbaggers galore.
Not all software we develop requires the same quality. It is not the same to develop software that will run only once, and will never need to be changed, that software that is expected to be used for years
Last time we developed brainfuck interpreter in Clojure. This time we will write a compiler. Compilation has two advantages over interpretation: the resulting program tends to be faster and source program is lost/obscured in binary.
As an architect you always have to stay open-minded, and be objective of any technology you happen to love.
Yesterday I gave a two-hour talk at Lambda Lounge Kraków on Pedestal (and some ClojureScript).