Posts

How to use the Boost compiled libraries in Windows

Image
As stated on the boost.org Getting Started for Windows page, most Boost libraries are header-based that require no separate compilation. But there exist some Boost libraries that require a separate compilation in order to use them. This page essentially reiterates what is already explained in section 5.2.1 of the Getting Started page, but with additional screenshots to make it easier for newcomers. A previous post dealt with the separate compilation of Boost library binaries using BoostPro , but this package is no longer supported, alas.

Using depth first search to test graph connectivity in C++

Image
Problem description Given a directed or undirected graph, determine whether it is connected or not. Specifically is it possible for any pair of nodes to communicate with each other? This brief post reproduces this web page whereby the problem was to determine whether a graph is strongly connected or not. I use a slight modification of Graph so that the user can define whether the graph consists of directed or undirected edges. When setting the directed parameter to false, the Graph class assumes that the edges are undirected, and so adds an additional link in the opposite direction to maintain bi-connectivity between edges (links).

Implementing the Flow Deviation Algorithm in C++

Image
Introduction The flow deviation algorithm as developed by Leonard Kleinrock et al is an efficient means of assigning routes and flows for a given network topology so as to minimize the overall average delay. The problem consists of finding a set of routes for all communicating end nodes which minimize the delay without violating link capacity constraints. The Flow Deviation method works in a manner very similar to gradient methods for functions with continuous variables, whereby the concept of using gradients is replaced by the concept of "shortest path" flows.

Using Boost regular expressions as word finders

A sample demonstration of using the Boost libraries as a means of finding matching words in a large array table, that match the given lookup criteria. Suppose you are wrestling with a cryptic crossword and want to find all seven-letter words whose third letter is 'Y' and fifth letter is 'N', or better still, run a program that will find these words for you. The Boost regex_match algorithm can be easily used to determine whether a given regular expression matches all of a given character sequence, in the steps described as follows: 1. Define the regular expression In my simple example, I would like to find out all (case insensitive) words with seven characters and with third letter 'Y' / fifth letter 'N', so I define a boost::regex to do this: [code language="cpp"] static const boost::regex ex("..y.n.."); [/code] 2. Read the text file into a std::string There seem to be a plethora of dictionaries and word lists a...

When the NetBeans IDE cannot start a new project

Image
Some hints and tips on how to overcome an annoying little gotcha that causes the Linux-based NetBeans IDE to freeze when trying to create a new project: Instead of presenting the user with the options for creating a new project as shown in the screenshot below, the screen remains stuck with the egg timer, and does not allow the user to proceed:

How to Merge using TortoiseSVN

Image
To merge changes made in your branched project back into the trunk (re-integrate). For branching in TortoiseSVN see this previous post . So you've now made some changes to your branched project that have been debugged, tested, reviewed etc and checked in. Given that you and your team are happy with the branched changes, you now wish to re-integrate them back into your trunk.

How to Branch using Tortoise SVN

Image
Repository Conventions When using Subversion / TortoiseSVN I tend to use the 'conventional' repository layout by adding branches/tags/trunk directories to the root: (Please click on any images shown here to enlarge.)