Software Development
-
Virtualization Terms 2 --- It's all about the Hypervisor
Tags: Developer ToolsA hypervisor is a layer of software that creates one or more virtual hardware systems. This allows multiple system images (operating system instances) to run at the same time (Wikipedia). Understanding how the hypervisor is implemented will let you predict the relative performance overhead compared to other forms of virtualization. It will also help you understand the features and limitations of each form. The table below sorts the different forms of virtualization from the more concrete (closer to the hardware) to the more abstract (further away from the hardware).
-
Stupid UNIX Tricks #1 : LANG and shell scripts
Tags: DebuggingIf you’ve been using UNIX systems for a while (including Mac OS X, Linux or anything else remotely similar) you might know about the LANG environment variable. It’s used to select how your computer treats language-specific features. You can find out more than you ever wanted to know by looking here: http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html
-
Is shell history an anachronism?
Tags: Developer ToolsI work in an environment that has user home directories shared over NFS. I always thought that kind of made the normal shell history mechanism fall on it’s face. None of the shells I’ve seen will actually do the hard work of synchronizing the shell history file to collect data from multiple different hosts in one file. It even falls apart when you have multiple term windows open on one machine. Many years ago I realized I didn’t want my shells writing frequently to my home directory over NFS, so I relocated my history file to /tmp. This means I’ll get history restored when I log into the same machine (until it gets rebooted) but it’s put luck which session on the same machine saved it’s history last. Bash is my normal shell these days, and it has a lot of features to tweak and manipulate the history, but none of the features seem to deal with the inherent sync issues. I suspect everyone uses history within their current shell session, and nobody much cares if it is saved or not.
-
The everpresent 'util' module.
Tags: Developer ToolsEvery major library or application I write seems to have a module named “util” these days. I think it represents a kind of “impedance mismatch” between the platform I’m using (C runtime, C++ runtime, python standard libraries) and the platform I *wish* I were using.
-
On Iteration by Andrei Alexandrescu
Tags: Compilers - Developer ToolsI just finished reading a great article on iterators by Andrei Alexandrescu. Mr. Alexandrescu is a contributor to the D programming language. In this paper, he discusses the background of iterator implementations including C++ STL iterators, and then goes on to outline a new model for iterators. It’s very readable, I recommend it.