CI tools testing lab: Initial setup with Jenkins

226px-jenkins_logo-svg Gerrit, Jenkins and the Jenkins Gerrit Trigger Plugin make for a relatively easy way to setup an automated code review system. Using these components, you can have Jenkins run automates tests on code while it is being reviewed in Gerrit.

But as projects grow in complexity and amount of developers, some shortcomings of of this system become apparent as the reviewed code being tested in Jenkins stops reflecting the way it will actually look when merged into the main development branch. This is an issue we came across on oVirt’s CI system.

Looking for a solution, we found Zuul – a tool developed by the OpenStack community when they faced similar issues.

This post is a first in a series of posts describing how I’ve used Docker to build a lab setup on my laptop to try out Zuul and check out its various features.

Continue reading

For our profession to grow and mature, we must learn the story of Grace Hopper

Ada LovelaceWorking with computers, be it system administration, or software development, as a profession, is a young one. As such, it has many ailments of youth: there is a tendency to lose track of a proper work/life balance, there is rampant professional burnout, there is career euthanasia.

One of the most striking ailments of the computing profession is the lack gender diversity. I have no doubt that having more women practice this profession will benefit it greatly and enhance its contribution to humanity. The few women in this profession, I’ve had the pleasure of meeting in my career, were, with no exception, remarkable and brilliant. I believe improving gender diversity will go a long way in tending other ailments of the profession I’ve mentioned.

So what can we, as veteran practitioners of the computing profession, charged with educating the next generation of practitioners, do to improve sexual diversity on our profession? We can start be telling young people that some of the most important tricks of the trade were dreamed up by woman. We can tell them the story of Grace Hopper.

Released: BtSync App 0.1.0

Download: BtSync App v0.1.0 for Linux (x86, 64bit)  with BitTorrent Sync v1.4.103BtSync App is a Linux portable AppImage containing BitTorrent Sync bundled with a Linux desktop GUI.

BitTorrent Sync is a free peer-to-peer cross-platform file synchronization application from BitTorrent Inc.

Linux AppImages enable delivering Linux applications as single, self-contained, executable files that work across distributions.

The AppImage includes the Linux desktop GUI for BitTorrent sync, developed by YeaSoft for the Debian BitTorrent Sync packages.

This AppImage is an UNOFFICIAL package of BitTorrent Sync and is not a product of BitTorrent Inc.

This AppImage in all its different versions, can be found on this GitHub releases page.

The source code used to build this AppImage and further information can be found in my GitHub repository.

Dolly Zoom Tutorial for Timelapse Hyperlapse

This photography technique produces awesome results, maybe some of my photographer friends would like to try it?  What really impresses me about this, is that this is an art form that could only come into widespread use today, when video screens are ubiquitous and digital images are extremely cheap to make. Truly, a 21st century art.

D: A native-compiled programming language that has every conceivable feature

Didi programmingThe release of Google’s ‘Go’ language seems to have shaken the world of computer languages in general and native-compiled languages in particular. That world was exclusively dominated by C and C++, but now we’re seeing more and more new languages appear and gain programmer mind-share.

In recent years, it seems the progress of programming languages was happening mainly in the realms of interpreted languages and byte-code-compiled languages. Native-compiled languages looking to attract developers accustomed to the convenience of those languages must provide similarly convenient features. The D language is no exception for this rule, hence it provides the following features:

  • Type inference – So programmers don’t need to manually specify the type of each variable.
  • Automatic memory and resource management. D includes a garbage collector as well as a ‘scope’ statement that allows setting up code to always run when exiting the current scope (Looks and feels similar to the ‘trap’ statement of shell languages).
  • Built-in high-level data structures such as hashes and dynamic arrays.

Continue reading