Archive for January, 2013

Windows Terminal Server: “Too many connections”

January 16th, 2013 No comments

There is one backdoor which can be used. Since Windows 2003 there is a little known feature which helps in a “too many connections” situation. The Remote Desktop client offers an option which allows you to connect to the console. This gives you a 3rd connection. If someone is logged into the console you have to have the sufficient permissions then the session will be logged out and you can log in. If nobody is logged into the console it will let you log in.

Start -> Run -> CMD
cd Program FilesTerminal Services Client
mstsc -v:x.x.x.x /console

Version Numbering

January 16th, 2013 No comments

I like this:

major: Really a marketing decision. Are you ready to call the version 1.0? Does the company consider this a major version for which customers might have to pay more, or is it an update of the current major version which may be free? Less of an R&D decision and more a product decision.

minor: Starts from 0 whenever major is incremented. +1 for every version that goes public.

release: Every time you hit a development milestone and release the product, even internally (e.g. to QA), increment this. This is especially important for communication between teams in the organization. Needless to say, never release the same ‘release’ twice (even internally). Reset to 0 upon minor++ or major++.

build: Can be a SVN/Git version, I find that works best.

For larger projects with many components Semantic Versioning makes sense, though it less end-user friendly.

Categories: Development Tags: , , , , ,

LVM Tricks with a Little Help from kpartx

January 16th, 2013 No comments

Or perhaps it should be: how to retrieve an lvm partition from an xvda partition within an lvm partition.

Quite some time ago, I built a CentOS Xen DomU using lvm within an xvda partition. And the whole VM was hosted in yet another lvm partition. While lvm is easy to manage and physical backup and restore is straightforward, accessing the contents of the embedded partition without the VM running is tricky. Luckily, device mapping in Linux is very powerful and can be used recursively (not quite like Haskell or OCaml, but impressive none the less).

This recipe can be applied multiple times to dig deeper into your embedded file systems.

Add the device mappings (assuming the device created is /dev/xvda ):

kpartx -a /dev/VolGroupXX/LogVolxx

Kpartx is amazing as it will scan all your lvm volumes and create device mapper entries, which are required for the lvm tools to do their thing.

Scan for physical volumes:


The above should tell you the physical volumes with LVM partitions (the PV column) along with the volume groups on it (the VG column). Activate the volume group:

vgchange -ay {VG name from previous step}

If you have additional embedded LVM, run vgscan to discover these, and vgchange -ay as required. You may need to repeat the kpartx and pvscan too.

When you eventually get to the volume required, mount it with :

mount /dev/{VG name}/{LV name} /mnt/xxx ;

The folks at Citrix have more detail here, especially if you’re running Xen.

Disable IPv6 in RHEL/CentOS 6

January 16th, 2013 No comments


To disable IPv6 in RHEL/CentOS 6.x:

Edit /etc/sysconfig/network
Change the following:



Edit /etc/modprobe.conf
If not present, add the following:

alias net-pf-10 off

alias ipv6 off

Stop the ipv6tables service

service ip6tables stop

Disable the ipv6tables service

chkconfig ip6tables off

After rebooting, IPv6 will be disabled.

Categories: Linux Tags: , , , , , , , , ,

CentOS 6.2 and LXC

January 16th, 2013 No comments

Followed this recipe first, but got bogged down on the home-brew tools and very detailed guest config. However, this blog has the best description and config I’ve ever seen for bridge networking on CentOS – worked like a charm.
Finally got everything working with these (much simpler) instructions using a centos6 guest from the openvz template download site.

Categories: Linux Tags: , , , , , , , , ,

Growl 1.3+

January 16th, 2013 No comments

I like Growl notifications for automated builds (and not much else – does anyone really need more distractions from IM, Facebook, Twitter?).

As of version 1.3, Growl is only available through AppStore for $1.99, but the source is still available online. So if you happen to have XCode installed, the following instructions will get you running.

1) You need Mercurial to retrieve Growl source. To Install Mercurial: sudo easy_install pip && sudo pip install Mercurial

2) In a terminal window:

cd /tmp
hg clone
cd growl
open Growl.xcodeproj

3) In XCode, disable code signing.

4) Back in terminal:

xcodebuild -project Growl.xcodeproj -target -configuration Release
open build/Release

5) Copy to your Applications folder.

More detailed, illustrated instructions available at:

Categories: OS X Tags: , , , , , , ,