Other Stuff

Here are some other things I have built in my spare time... mostly programming things.

Beamer Template - Latex

    I generally do all my presentations in Powerpoint, using the great plugin IguanaTex to add Latex code to the slides. That combo works extremely well, but recently I had to do one in beamer, so I created a Columbia University inspired theme. It took me some time to find how to change all the things I wanted, but I'm relatively happy with the result.

    You can get the complete pack here: 7z. There is an "example.tex" file inside that can help you understand how to use it, but it is very straight forward.

    Feel free to use it. It is freely distributed (and can be modified) under the GNU public license, but if you want to share it in your site, please link it to the original file (i.e. here). 

beamer Columbia template

Graph Algorithms in Python

When I started trying out Python, I thought the best way to start was by doing something fun... well at least "fun" for me...

On my first year of the PhD we saw a whole bunch of algorithms you could use over graphs to solve different kinds of things, so I decided to put all that together and build something resembling an "Algorithm Test Bed" that could be used in an Algorithms or Graph Theory course to show how things worked or to quickly prototype algorithms, as Python allows easy implementations.

The whole code is available at GitHub: Graph Board, so download it and try it out... and please send some comments if you find something not working or you want to add new algorithms to the library I have there. I have also added an extensive Wiki with loads of information on how to use it and what are the classes in it capable of. Currently the algorithm library that comes with the program contains several algorithms including:
  • Search/Sort methods: breath first search, depth first search, and topological sorting.
  • Minimum Spanning trees: Kruskal's and Prim's algorithms.
  • Colouring: brute force exact colouring and also approximate colouring methods (greedy, tabu-search, and tabu-precoloring search).
  • Shortest Path: DAG algorithm, Dijkstra's algorithm, Fifo-Labelling algorithm.
  • Max Flow: augmenting path and labelling algorithms.
  • Min Cut: simple min cut and global min cut algorithms.
  • Min Cost Flow: negative cycle cancelling and successive shortest path algorithms.
If you want to have any updates delivered to your feed reader, subscribe here: Project Updates

Mosaics with Matlab

Did you like the Photo Mosaic on the Home Page? Well... here I explain a little bit how to achieve it: Mosaics with Matlab.