Suggestions For Improving Your Research Process

Below is a presentation I gave today to a group of Honors students at Victoria University's School of Architecture and Design. The presentation covers what I have learnt during my time doing my PhD and the mistakes I made, especially around the research process.

The primary message of the presentation is that research is by no means easy and when things get difficult you need to focus on MUPPET:

Motivate - Eureka moments only take you so far.

Undertake - Write something every (other) day.

Plan - Conciously identify your rainbow (objective), horse (process) and cart (interest).

Ponder - Understand how your actions relate to the research.

Exchange - Talk to everyone (relevant) about your research.

Test - Continually evaluate what you have done and where you are going.


VMWare Server 2.0 optimisations

VMWare Server 2.0 is emerging as a capable, zero cost alternative to VMWare ESX when used in combination with Ubuntu Server 8.04LTS. Unfortunately "out of the box" performance can be a little disappointing, especially when running guest Windows virtual machines. What follows are a few system tweaks that can improve performance without hampering overall system stability. I have not come up with these myself, instead they are pruned from the following pages:

Kernel parameters

In addition to the default Ubuntu Server kernel parameters, the following should be appended to the end of /etc/sysctl.conf.


Once added reboot the server to ensure their application is successful and permanent.

Create an in-memory temp drive

In the host's /tmp directory create a new directory named vmware (e.g. /tmp/vmware). This will be used as the mount point for a tmpfs (in-memory) partition for storing VM related, temporary files.

Edit /etc/fstab and add the /tmp/vmware partition to your list of mount points:

tmpfs /tmp/vmware tmpfs defaults,size=100% 0 0

Now if you execute the following command the tmpfs filesystem will be mounted at /tmp/vmware:

sudo mount /tmp/vmware

If successful, reboot the Ubuntu server to ensure the tmpfs partition is mounted at boot time.

VMWare Server configuration

Edit the /etc/vmware/config file and ensure the following configuration declarations are set:

prefvmx.minVmMemPct = "100"
prefvmx.useRecommendedLockedMemSize = "TRUE"
mainMem.partialLazySave = "TRUE"
mainMem.partialLazyRestore = "TRUE"
tmpDirectory = "/tmp/vmware"
mainMem.useNamedFile = "FALSE"
sched.mem.pshare.enable = "FALSE"
MemTrimRate = "0"
MemAllowAutoScaleDown = "FALSE"

These configuration declarations instruct VMWare Server to keep all virtual machines in memory and not to write unused blocks to disk. It also sets the temporary directory to the newly created tmpfs partition at /tmp/vmware.
Restart the VMWare Server process (sudo /etc/init.d/vmware restart) or reboot the server for these changes to take effect. The net result should be notably smoother virtual machine performance, especially when it comes to Windows guests.

Virtual machine tips

  • Always use fully allocated disk images.
  • Do not use snapshots as they are approximately 20% slower.
  • Always install the VMWare Tools package.
  • If running Linux make sure the kernel is compiled for running within a VM, or is using the correct boot time parameters.


Be2camp presentation on architectural micro-blogging

Below is the slide presentation I will (hopefully) present at tonight's Be2camp North un-conference. Basically the presentation graphically summarises my recent blog post on the use of micro-blogging within architectural collaboration.

The conference is in Liverpool and I am in New Zealand, so if the technology gods are not in a good mood things may go pear shaped very quickly...


Using micro-blogging to record architectural design conversation alongside the BIM

The majority of professionals within the architecture, engineering and construction (AEC) industry use the telephone and email to collaborate on immediate design problems. Unfortunately there is a disconnection between this communication and the underlying Building Information Model (BIM) where the agreed upon architectural solution is recorded. As a consequence it is difficult for a person interacting solely with the BIM to take part or learn from this external conversation because they are often oblivious to it taking place. Micro-blogging is an emerging, Internet-based communication medium that may provide the common thread to tie these disparate sources of project information together. It will achieve this through enabling the issues and outcomes discussed during architectural conversations to be quickly recorded by any member of the project team. Those working on the BIM will be able to actively monitor and search across these conversations to keep up to date with the project’s state and help solve new design problems.

Unlike blogging and instant messaging, micro-blogging can communicate simple messages between groups of people using mobile phones or any Internet connected device. These conversations are published online so they can be referenced in further design discussion, or indexed for searching alongside other sources of project information. For adoption to occur the technology must be integrated within the BIM toolset so that being part of this conversation is a natural extension of the digital workspace. Current micro-blogging services such as Twitter, lack this integration and have not (yet) been tailored to meet the specific demands of architectural collaboration. A focused implementation would likely improve architectural collaboration because micro-blogging embodies many of the principles of the Project Information Cloud. Its qualities of simplicity, ubiquity, decentralisation, modularity, awareness, context sensitivity and evolving semantics make it a promising collaboration medium, and one that could move the AEC industry towards the goal of hyperlinked practice.

Google O3D may finally bring 3D to the Web

Today Google released a very early preview of O3D, a cross-platform, open source plug-in that enables OpenGL accelerated graphics within Web browsers. Delivering 3D graphics within browsers is not a new thing, (remember VRML?) but what makes this initiative promising is that it works on all platforms and is backed by Google. Performance-wise O3D seems very snappy when compared to alternatives such as Flash 3D. As a result some of the initial demonstrations are very impressive, and it hints at a future where Google Earth and SketchUp leave their desktop roots behind to become pure web applications.

Fixing yum's "Metadata file does not match checksum" error

Centos is a "free" distribution of Red Hat Enterprise Linux which I enjoy using. Whilst it does not have Debian's apt-get for package management it does have yum, which is not as fast but still works pretty well in most circumstances. Unfortunately today I ran into a problem in a clean install of Centos 5.3 where yum was returning the following error:

Error Message: Metadata file does not match checksum

A quick look around "the Google" turned up the relatively simple solution; at the terminal execute as root:

yum clean all
yum makecache
yum update

This process will take a little time, but the end result should be a nice, clean yum repository cache, complete with no annoying meta-data errors.


Autodesk Dragonfly emerges from its larvae

Project Dragonfly is an Autodesk Labs technology preview of a web-based, simple to use architectural planning tool. It represents a step towards a future where CAD and BIM model editors are not considered bloated, complex, or desktop-bound. Whilst the current functionality of the tool is limited, it is technically impressive, and the underlying concept hints that Autodesk’s broader web strategy (as discussed in ‘Autodesk Beyond Desktop CAD & BIM’) is proceeding at a slow, but steady pace.

Fixing a stalled OSX software update

When I recently run Software Update on my MacBook Air I found it would stall at about the 10% mark during the "Checking for new software" phase. Below is a screenshot of what I mean by this:

A check of Activity Monitor showed that the problem was not caused by any network issue, in fact Software Update was not even trying to connect to the Internet. Fortunately this Apple support discussion page lead to the answer.

The problem appears to be caused by a corrupted, user-level software update cache file. To resolve delete the Cache.db file from your Library/Caches/ directory. Once trashed repeat the software update process and all should be back to normal.

The discussion thread also discussed an interesting command line tool for performing OSX software updates. To perform a software update from the command line execute the following command (your password is required for sudo privileges):

sudo softwareupdate -i -a

This will run a fully automatic software update process, and once complete prompt you to restart the computer if required. Whilst a niche tool, it is a handy command to know about when performing remote OSX administration:


BIMserver and the potential of server-side BIM

We are now at a stage where a computer's speed and network connection are no longer significant process bottlenecks in digital architectural design. As a consequence the need for efficient digital collaboration tools within the architecture, engineering and construction (AEC) industry is a growing requirement. The BIMserver project from TNO and the University of Eindhoven is exploring how collaborative design can be improved through the combination of Building Information Model (BIM) and open source server technologies. Unlike conventional, workstation-based CAD software, BIMserver stores BIM data within a dedicated server where it can be accessed by all members of the design team simultaneously. Whilst conceptually not a new idea, the project is the first to move beyond the research lab and be promoted as software (almost) ready for production deployment within AEC organisations.

What is a BIM server?

BIM in its most general sense is a collection of 2D, 3D and textual data that when assembled within a computer’s memory creates an accurate and detailed representation of an architectural project. Like its predecessor CAD, BIM data is typically stored in a digital file (or files) where it is accessed directly by complex, workstation-based applications such as Revit and Microstation. In contrast a BIM server stores all design data internally and exposes its information to client applications through a series of well controlled and documented interfaces. This has a number of practical and technical advantages, the most significant being all client applications read from, and write to, the same digital model. In comparison when using a file-based BIM it is up to each participant to ensure they are working on the latest revision of the project’s files. Additionally by centralising the flow of data a BIM server enables near real-time collaboration as changes to the model are reflected on all clients each time their view of the data is refreshed from the server.

Another important characteristic of a BIM server is that the building model exists as a live entity, distinct from the client applications that interact with it. This means client applications are simpler to write because they do not need to know how to comprehend an entire digital model, they simply need to ask the BIM server for the subset of information that concerns them. For example using a traditional file-based BIM an application that counts the number of doors in a design needs to parse the file, construct an in-memory model, and then count the door instances. In comparison a BIM server handles the parsing of the digital model, all the client application needs to do is construct a query that asks how many doors the design has. Another benefit of a live BIM is that the server can automatically respond to outside events such as scheduled processes or changes to data hosted by external services. For example the BIM server could monitor the pricing and availability of materials used in the design and automatically update the model to reflect these variations. The end result is that instead of being viewed as a static, “dumb” file, the migration of the Building Information Model into a server would create a far more dynamic and accessible project resource.

Safari 4 on Windows looks good

It is really nice to see Apple have dropped the unsightly bushed metal look in their latest Safari 4 beta on Windows. Whilst that aesthetic worked fine in OSX, in a Windows world next to "traditional" applications it came across as being really unsightly. Let's hope this is a sign iTunes will take on more of a native Windows aesthetic in a future release.

However what is really crazy is how much Safari 4 looks and behaves like Google Chrome on Windows. Apple's developers have spent the last few months "borrowing" many of Chrome's features, such as the top-sites view and browser tabs on top, but on Windows they have gone a step further with the menu system itself. This is not a bad thing as the result looks nice, but beyond the little Google logo in the top right, your average Windows user is going to have a hard time telling the difference between the two browsers.

Now if only the Apple engineers would implement process isolation for each tab or window like in Chrome. It is hugely annoying to have all the Safari windows disappear just because somebody at Adobe cannot write a stable Flash plug-in.