Hacking SCM Creator and Redmine Git Hosting to Cooperate with one another

Edit June 6, 2012: SCM Creator has been updated to not conflict with Redmine Git Hosting.


Oftentimes it’s beneficial to use more than one type of version control system within a given organization—SVN and Git being the two most popular. For the purposes of Redmine, the Redmine Git Hosting plugin is significantly more useful for handling git repositories, as it can manage public keys and is able to serve git files via the Smart HTTP Protocol. However, for the other repository types, it is generally easier to use the SCM Creator plugin, which allows the project manager to control repository creation and deletion.

Previously, these plugins were incompatible, both overriding the same method. Moreover, SCM Creator has compatibility issues with Redmine 1.4.0+. Thanks to the work of its creator, Andriy Lesyuk, however, both of these issues have been resolved!
Read more on Hacking SCM Creator and Redmine Git Hosting to Cooperate with one another…

SVN Repository Management with Redmine on Ubuntu 12.04


Managing repository management is always a hassle for network administrators, as it usually involves going into into the shell to create the repository itself.

Redmine solves this problem using reposman.rb, which can be run regularly by a cronjob and thus automate repository creation. But this is still inconvenient—you still need to wait for the repository to be created, and you can only manage one type of SCM at once. Thus, we are going to install and configure the Redmine SCM Creator plugin to manage repository creation for us.

This tutorial is oriented primarily towards setting up SVN repository creation, as git repository management is better done by the Redmine Git Hosting plugin (Setup Guide). For instructions on how to set up Redmine, visit this tutorial before continuing on.
Read more on SVN Repository Management with Redmine on Ubuntu 12.04…

Redmine Git Hosting Setup on Ubuntu 12.04 LTS


Redmine Git Hosting is a plugin for Redmine authored by Eric Bishop, further extended by John Kubiatowicz, which integrates the Git SCM system into Redmine’s project management system. At the end of this guide, you will have a server which can, from the Redmine GUI,

  • Create git repositories for projects
  • Serve git repositories via SSH, GIT, and HTTP(S)
  • Add users to git repositories

This guide is a continuation of the one here, which shows how to install and configure Redmine in Ubuntu with Virtualmin.
Read more on Redmine Git Hosting Setup on Ubuntu 12.04 LTS…

Setting up a Virtualmin-controlled Ubuntu 12.04 LTS Precise Pangolin server on Linode


Linode is one of the best low-cost Virtual Private Server Hosts available, offering Xen VPS Hosting for a number of popular operating systems. With the release of Ubuntu 12.04 LTS, I felt that it was past time that I upgraded my webserver (the one that runs this website, actually!), and document the little tweaks that I discovered along the way.

What we’re setting up

  • Ubuntu 12.04 LTS
  • A standard LAMP Stack (Linux, Apache, MySQL, PHP)
  • BIND DNS resolution—combined with Virtualmin below, you’ll be able to manage your own domains!
  • Linode reverse-DNS resolution
  • Virtualmin / Webmin backend server management

Read more on Setting up a Virtualmin-controlled Ubuntu 12.04 LTS Precise Pangolin server on Linode…

Simple Arduino Robot Control

One of the simplest bits of functionality that is useful for small-scale robotics is the ability to control robots over the serial port, which can easily be made wireless using Pololu Wixels, XBee, bluetooth, or any other wireless serial connection. Since the Arduino Serial Monitor only sends out messages rather slowly, and it’s usually nice to have a fast response from computer to robot, I wrote a short Java application that handles the communication for you.

Read more on Simple Arduino Robot Control…

Arduino Quine

One of the things programmers tend to learn how to do in every language they know is how to write a quine – that is, a program that echoes its own source code out to the user, without reading the source code directly. This is an inherently recursive operation, so language-based tricks are needed to get it to work.

The Arduino is programmed in C++, however, there is no std::cout. Instead, user input is usually through the USART on the Arduino, and as such needs to initialize and print out from that port.

Traditionally, C/C++ quines are written using the preprocessor and the printf command, as it allows for simple replacement of strings with characters, thereby overcoming the recursive operation. As such, I use the sprintf command below (Arduino’s HardwareSerial doesn’t support formatted prints, sadly enough).

Read more on Arduino Quine…


The game robo.hack is the result of the last month’s worth of coding by myself, Karthik Viswanthan, and Virup Gubba. It is based on nethack, and should be relatively easy to learn.

Read more on robo.hack…