Computational Engineering, Empirical Computer Science, Distributed Systems

Creating NFS-root VMWare Virtual Machines From the Linux Command Line

| Comments

In our department there’s a course that includes lab sections on programming fluid dynamics simulations in OpenFOAM, which isn’t supported by the University’s IT services. We’ve traditionally gotten around this by installing the required environment in a virtual machine image and running it with VMWare under MS Windows, but there are infrastructural headaches associated with this approach: the image is several gigabytes in size, and so distributing to all of the machines and importing it into VMWare manually on a large number of machines is time consuming and tedious. The research fellow who runs these lab sections asked me to help him come up with a solution to this problem, so my suggestion was to create some minimal virtual machine images that users could download and import into VMware quickly, and have the root file system shared out from a server over NFS. I’ve decided to document the process of creating these images here, on the off chance it might turn out to be useful to someone else. The commands documented below were run on an Ubuntu 12.10 system.

Creating Web Pages With Template Render

| Comments

I’m very fond of static website generators–they’re a lot faster than interpreted (php, ruby) or even most compiled (Java) based solutions. I’m using Octopress to manage this blog currently, it’s basically a set of customizations, style files, and build scripts that extend the capabilities of Jeckyll, a comprehensive platform in its own right. I’ve also tried out the node.js based Docpad and the pythonic Hyde and Pelican.

While these all do a fairly good job of managing a standard blogging sites, in my opinion they all suffer from trying to do a bit too much, to manage the whole job of website creation, which makes it difficult to decouple small, specific bits of functionality, like rendering just a few web pages from templates. Also, I never really got into the Jinja2 templating language: I don’t like the way that it (doesn’t) handle inline code, or the fact that every call to a macro has to be in the form of a block, or that every macro definition needs to do something with the content included in the block, even if you didn’t want to use that feature. I much prefer the style of Mako, but none of the popular static website generators seem to support it.

For the Department’s digital sign project, I just needed something that would rending a single, but fairly complicated, web page in a way that would be easy for me to customize, and I didn’t want to deal with the overhead of a lot of features aimed at things like blogging that I never intended to use. My first thought was to hack something together with Make and the mako-render script that came packaged with Ubuntu, but whereas the static website generators did more than I wanted, this seemed a little too simple. So, naturally, I decided to hack together something on my own.