> d.white@imperial.ac.uk |  | Duncan C. White, CSG Systems Manager / Technical Coordinator / Unix Systems Programmer, Computing Support Group, Department of Computing, Imperial College London. |
> |  | Hi there! Welcome to my Personal Pages, with information on my: Recent Announcements Career and Experience Thoughts on Practical Software Development Teaching Interests Other Interests Other Personal Pages Web Programs GPG Public Key

> ## Recent Stuff

> - June 2013: I've just finished a new article in my Practical Software Development pages: Article 5: Testing and Development: the Siamese Twins of PSD.
> - May/June 2013: I have just given two first year lectures on C Tools, building a toolbox of useful tools and the craft skills to use them effectively, making C programming easier. This year, it's two lectures not one, this enables me to fit Yacc and Lex in! The slides are done with LaTeX's Beamer presentation class with Ann Arbor themed decorations. LaTeX still rocks!
> - May 2013: I've just given a DoC Lunchtime seminar talk on Five Things You Never Knew about CSG.
> - February 2013: I've just added a new article (at long last) to my Thoughts on Practical Software Development web pages, this new article is: Article 4: Perlstub: Building a Tool, Extending your Editor.
> - December 2012: I've just finished giving my Perl short course again, for the benefit of Computing second year undergraduates. I have run this course, or it's predecessors, nearly every year since 1997. Here's the supporting web pages.
> - October 2012: I've just given my regular lecture to the first year Computing students on practical Tips and Techniques for using the Department's computing systems, focussing mainly on what you can do with the Linux shell, i.e. beneath the GUI. Here are the supporting web pages.
> - May 2012: I've just given (for the second time) my first year lecture on C Tools, building a toolbox of useful tools and the craft skills to use them effectively, making C programming easier. The slides are done with LaTeX's Beamer presentation class with Ann Arbor themed decorations. LaTeX still rocks!
> - December 2011: I've just finished giving my Perl short course again, for the benefit of Computing second year students. I have run this course, or it's predecessors, over 10 times since 1997. Here's the supporting web pages.
> - November 2011: I've just given my regular lecture to the first year Computing students on practical Tips and Techniques for using the Department's computing systems, focussing mainly on what you can do with the Linux shell, i.e. beneath the GUI. Here are the supporting web pages.
> - June 2011: I've just developed and given a brand new first year lecture on C Tools, building a toolbox of useful tools, and the craft skills to use them effectively, in order to make C programming easier. Here's the supporting web pages of the version - it's now two lectures, enabling me to fit Yacc and Lex in!
> - December 2010: I have just finished giving my Perl short course again, for the benefit of Computing second year students. I have run this course, or it's predecessors, over 10 times since 1997. Here's the supporting web pages.
> - November 2010: I've just given my regular lecture to the first year Computing students on practical Tips and Techniques for using the Department's computing systems, focussing mainly on what you can do with the Linux shell, i.e. beneath the KDE or Gnome GUI. Here are the supporting web pages.
> - June 2010: I love `LD_PRELOAD`: It's taken me a while but I've now taken the time to understand the principle of dynamic library interposition as described in this Sun Developers article, which works on Solaris and Linux, with a few small changes. To make the Sun Developer malloc_interposer example work on Linux, just do the following:
> 1. Edit the source code and add:

>        #define __USE_GNU

>    after including stdio.h.
> 2. Compile via:

>        gcc -o malloc_interposer.so -shared -fPIC malloc_interposer.c -ldl

> 3. Then carry on as the Sun Developer instructions say, ie.

>        setenv LD_PRELOAD $cwd/malloc_interposer.so

> 4. Run the application - every malloc() call will now print out its size.
> 5. Afterwards, don't forget to:

>        unsetenv LD_PRELOAD

> I've used this to build an experimental library to implement a per-directory umask.. more details later.

> - January 2010: I am now the CSG Systems Manager (that's the Computing Support Group at the Dept of Computing, Imperial College London).
> - 18th December 2009: I have finished my Perl short course again, for the benefit of Computing second year students. I have run this course, or it's predecessors, about 10 times since 1997. Here's the supporting web pages.
> - December 2009: long gap, been busy. Just watched Bryan Lunduke's excellent Why Desktop Linux Sucks presentation, he makes a number of very sensible points, well done to him for making them. I'm a long term Unix (Solaris and Linux) lover and M$ hater, and IMHO Linux both Rocks and Sucks (at different things)! His main underlying theme seems to be: after an initial period of experimentation, the Linux community needs to standardise on a single way of doing each thing, and then make it work in a rock solid way which doesn't break later under an upgrade. I agree 100%!

>   For example, software should only need to be built and packaged ONCE for all Linux distros, past present and future. But this requires a single packaging system (RPM or DEB, I know both, they're both fully functional, I don't care which is chosen) along with a standard set of package names, version numbers and library versions to hang dependencies on. This would make it easy for companies to port software to Linux, making Linux a single market. The dependency problem is as important as the packaging system, btw - noone seems to ever mention that! A corollary of this may well be that each new release of each (Ubuntu, Fedora, Redhat or whatever) distro would probably have to include old versions of each library packaged in the repo, where any number of versions of one library must be installable separately (without trampling on any other version that is installed). Backwards compatibility matters (albeit to some people more than others)!

> - November 2009: I gave my lecture (designed in 2006) to the first year Computing students on practical Tips and Techniques for using the Department's computing systems, focussing mainly on what you can do with the Linux shell, i.e. beneath the KDE or Gnome GUI. Here are the supporting web pages.
> - 19th December 2008: I have just finished giving my Perl short course again, for the benefit of Computing second year students. I have run this course, or it's predecessors, about 9 times since 1997. Here's the supporting web pages.
> - 29th November 2008: After struggling for a week, I've managed to expand an XFS filesystem beyond 16TB on a 64-bit Ubuntu Hardy machine. In case this helps anyone else, I describe it briefly here.
> - 14th November 2008: I've just been promoted to the CSG Technical Coordinator.
> - 11th November 2008: I gave my lecture (designed in 2006) to the first year Computing students on practical Tips and Techniques for using the Department's computing systems, focussing mainly on what you can do with the Linux shell, i.e. beneath the KDE GUI. Here are the supporting web pages.
> - 27th March 2008: Just set up www.devonwineweek.co.uk for my brother Roger and his colleagues at other Devon vineyards who organise the Devon Wine Week each year. Take a look at that and at my brother's vineyard website - www.yearlstone.co.uk.
> - 22nd March 2008: went on a fossil walk along the Jurassic coast from Charmouth to Lyme Regis, organised by Discovering Fossils and found an amazing fossil ammonite, 9 inches in diameter, called Liparoceras Cheltiense, or Lippy to his friends.
> - 14th December 2007: I have just finished giving my Perl short course again, for the benefit of Computing second year students. I have run this course, or it's predecessors, about 8 times since 1997. Here's the supporting web pages.
> - 6th November 2007: I gave a lecture that I designed in 2006 to the first year Computing students on practical Tips and Techniques for using the computing systems. Here are the supporting web pages.
> - 18th August 2007: while on holiday with friends in the English Lake District we walked up Helvellyn and swam in Grisedale Tarn.
> - May 2007: after spending some time recently thinking about the practical issues of software development, I've decided to start a series of pages about Thoughts on Practical Software Development.
> - December 2006: I was due to give my Perl short course again, unfortunately, I had a really bad cold that week, so my colleague Matt Johnson gave the vast majority of the course instead of me. I managed just the last lecture, coughing and sweating as I did it! Many thanks to Matt for stepping in at the last minute.
> - Sept 2006: Throughout the late part of the summer I built, configured and installed the Dept of Computing's new Anti-Spam system (Symantec's BrightMail product integrated into Exim), rolling it out on 1st October 2006.
> - August 2006: I built, configured and deployed the Dept of Computing's new Problem Tracking system (the open-source Open Ticket Request System, OTRS), rolling it out in September 2006.
> - Summer 2006: For the last 15 years, my brother Roger and his wife Juliet have owned Yearlstone vineyard in Devon. I set up the Yearlstone website for them in 2005 - please take a look, and plan to visit the Vineyard sometime.. In summer 2006, they were filmed by the BBC for the primetime BBC1 TV series The Great British Summer, presented by Alan Titchmarsh (who else) on Sunday evenings in November 2006. Juliet's clearly a star!
>   At the end of August 2007, their vineyard was featured on BBC1's Countryfile, with Lotte Duncan and famous wine drinker Oz Clarke sampling Yearlstone Fizz on the cafe terrace with it's amazing views over the lower Exe valley.
>   I've just set up (March 2008) www.devonwineweek.co.uk for my brother Roger and his colleagues at other Devon vineyards who organise the Devon Wine Week each year. Take a look at that - come and visit Devon that week!
> - January 2006: I gave a new and improved version of my Perl short course primarily for the benefit of Computing second year students. I have run this course, or it's predecessors, about 6 times since 1997.

> ## Career Summary

> - After obtaining a 2-1 Computer Science Degree from Imperial College in 1986, I worked at the Dept of Computing, Imperial College, London until September 1993, preparing and auto-marking computing exercises, evaluating teaching software and giving short lecture courses.
> - From October 1993 until April 2000, I worked as a Unix Systems Administrator at the University of Surrey, working (over the years) in various SysAdmin roles within the Department of Electronic & Electrical Engineering and then the Department of Mathematics and Computing. As well as many technical responsibilities, from 1997-2000 I was responsible for preparing, justifying, planning and spending an annual Computing Equipment budget of £50,000, and also had direct management responsibility for a small team.
> - In May 2000, I left the University of Surrey and accepted a job as a Senior Systems Programmer working in the Computing Support Group back at the Dept of Computing, Imperial College London. I specialise in Solaris and Linux support, C and Perl programming, and the web.
> - In October 2002, I was promoted to Deputy Manager of the Computing Support Group, adding some managerial responsibility to my systems programming role.
> - At Christmas 2002, I was given one of two Departmental Extra Mile awards (and bonus:-)) in reward for my continuing efforts in the Department.
> - From 1st September 2006, after a bruising and unpleasant restructuring process, I was demoted to being a mere Linux Systems Programmer.
> - In 2007, I considered leaving Imperial, and in particular was offered (but turned down!) the offer of a Unix Systems Administrator job with Google, when they decided after 5 months of interviews that the job was in Dublin rather than London! I applied again in 2008, but their plans changed so that fell through.
> - In Nov 2008, I was very pleased to be appointed to a new senior technical role created especially for me: the first CSG Technical Coordinator. I guess the Departmental Management do want to keep me after all; thanks to them for sorting this all out!
> - In summer 2009, the Dept embarked on another reorganisation of CSG, and made three colleagues redundant, and started giving away our network to the central College computing support. Makes me consider other opportunities once more..
> - In Jan 2010, with the departure of yet another colleague, I am now the CSG Systems Manager, and am now in effective charge of CSG on the last man standing principle.

> ## Experience

> - I have more than twenty five years experience of the Unix operating system, originally on Solaris (2.1 to 8) but more recently on Linux (primarily Ubuntu, but also on Debian, Redhat, SuSE and Mandrake). I've also used SunOS, BSD and even MacOS X.
> - I am a skilled C and Perl programmer, with an interest in constructing Graphical User Interfaces using X-Windows, especially with Motif and Perl/Tk. I am completely familiar with Unix software development tools (make, subversion and git, yacc/bison, lex/flex, debuggers, profilers etc). I am also knowledgable about SQL and relational databases, having worked with Oracle, Ingres, Sybase/Microsoft SQL server, MySQL and (most recently and extensively) Postgres.
> - I know many other computing languages, eg. Java, C++, Prolog, Pascal, Miranda etc to differing levels of competence and expertise. Although (because?) I currently maintain an Tomcat-based system, I haven't got very excited about Java! Based on all my programming experience, I've recently started writing some Thoughts on Practical Software Development.
> - I also have over fifteen years Unix Systems Administration experience, on Solaris, Linux, SunOS and BSD. I have supported users; performed OS installations (both by hand and using networked methods including Solaris Jumpstart, RedHat Kickstart and our own locally developed technique); have a good understanding of journalling filesystems (Veritas, UFS, XFS), software RAID (Solstice Disk Suite, Linux MD) and hardware RAID connected via SCSI or fibre-channel; volume management (Veritas Volume Manager, SDS, Linux LVM/EVMS).
> - I've installed and supported a wide variety of Unix application software; Built hundreds of software packages - Redhat Linux RPMs, Ubuntu DEBs and Solaris PKGs; Built a complete Solaris infrastructure from scratch; Maintained Solaris security (patching; upgrading; hardening); Troubleshooted Solaris systems; Implemented two complete tape backup and recovery systems; Been responsible for a variety of specialist servers - fileservers (NFS and Samba), mail servers (Smail, Exim), web servers (Apache, mod_perl and Tomcat), backup servers, CPU servers etc.
> - Between 1994-2000, while at the University of Surrey, alongside colleagues Bevis King and Mike Stonebank (now at Redhat), I set up the Elec Eng web-server, one of the first production web servers at Surrey. I wrote most of the CGI programs on these Web servers - in particular, the showstaff program mentioned in the links above. When I moved to the Maths and Computing Department (as it then was) I also created the first Maths and Computing Department website, and then split it into two after a major reorganisation. Over this time, I learned a lot about the Web, HTML and CGI programming, and have a lot of experience linking Oracle and Postgres databases to the Web via CGI scripts.
> - I have been using Larry Wall's brilliant Perl language for nearly twenty years, and now do most of my programming in it. In 1997, I developed and gave a short lecture course on Perl programming - this was expanded and repeated several times, most recently during early December 2012 when I reran it (primarily) for the benefit of DoC second year computing students. Here's the supporting web pages.
> - In 1999, I cowrote an article on Perl and Morphology - using Perl to generate inflections and derivations of English words - which was published in the Spring 2000 issue (#17) of the Perl Journal. This has now been republished in the O'Reilly book Games, Diversions and Perl Culture (Best of the Perl Journal volume 3).
> - In September 2000, I gave a presentation at The European Yet Another Perl Conference on Generating Abstract Art with Perl. Please feel free to read my presentation in Postscript form or PDF form. The programs discussed in this talk (and some others) can be found here at my Web Programs Page.
> - During 2003 and early 2004, I and my colleague Matt Johnson set up the new clustered SunSITE Northern Europe web/ftp/rsync mirroring service (a cluster of two Sunfire 280R servers with 2.1TB of useful data), which gave me the opportunity to get to grips with Veritas Clustering software and to use mod_perl in anger.
> - I have also performed various consultancy roles, using my Solaris, Linux, Motif and Perl skills. Most recently, I worked with a company in the music media field on a data munging project which delivered high quality results. I can't say much more than this, as a Non-Disclosure Agreement was involved.

> ## Teaching Interests

> - Between 1996-2000, while at the University of Surrey, I designed and taught a 25-lecture second year course called Computing Technology which was a practical introduction to Operating Systems, Computer Architecture, C Programming and Networks. Along with the lecture materials, I developed a series of support programs (including an assembler and Motif-based emulator for a teaching computer architecture called Kiss-2, which is also used by several other Computer Architecture courses at the University of Surrey).
> - Each December, I give my Perl short course (6 lectures), mainly for the benefit of Computing second year students. I have run this course, or it's predecessors, every year since 1997. Here's the supporting web pages for the most recent version.
> - Each November since 2006, I also give a regular lecture to our first year students covering many practical Tips and Techniques for using the DoC computing systems - here are the supporting web pages. This might be subtitled Beneath the GUI (where things get interesting).
> - June 2011: I've just developed and given a brand new first year lecture on C Tools, building a toolbox of useful tools, and the craft skills to use them effectively, in order to make C programming easier. Here's the supporting web pages of the version - it's now two lectures, enabling me to fit Yacc and Lex in!
> - I have also run short courses on the C Programming Language, Motif, Designing Web (HTML) Pages, Perl and it's use for CGI programming.

> ## Other Interests

> - My non-computing interests include swimming, walking (especially in mountains, lakes and other wild places!), music, plants and gardens.
> - For instance, here's an account of a recent trip, with friends, to Helvellyn in the English Lake District in August 2007.
> - In addition, I am a keen amateur geologist with interests in geology, paleontology and natural history. I'm a member of the Geologists Association and go regularly on geological field trips with the GA, and also with a mixed group of friends. I am especially interested in evolution and consciousness, and enjoy reading works about evolutionary biology by authors such as Stephen Jay Gould (now sadly deceased), Richard Dawkins and John Maynard-Smith (also sadly deceased). I am also a Friend of the Royal Botanic Gardens, Kew and of the Natural History Museum, London. Click here for some pictures of an amazing large ammonite I found near Lyme Regis in March 2008.
> - I am also particularly interested in science fiction, and have cowritten (with my friend Bevis King) web guides to Dr Who, Blakes 7, Star Trek: The Next Generation and Star Trek: Deep Space Nine. I also enjoy Enterprise, Star Trek: Voyagerand the wonderful British sci-fi comedy Red Dwarf, but haven't got around to writing guides for them (yet :-)). Josh Wheedon's wonderful Firefly series, sadly cancelled, and the spin off film Serenity are my latest sci-fi enthusiasms. Check out the Entertainment Corner for all the guides..
> - I also enjoy a bit of photography, but can't hack all that stuff with filters and manual exposures etc. Like most people these days, I now use a fully automatic digital camera (a Canon PowerShot A400), following an earlier Pentax Zoom 70 that died a sad death after a close encounter with a leaking water bottle. Here's one of my better piccies - feel free to grab it if you like it.

> ## Other Personal Pages

> Here are some of my other personal pages/projects:
> - My Datadec - ANSI C Recursive Data Type Generator. Take a look at this useful tool, and feel free to download it and use it yourself.
> - Take a look at my Web Programs page.
> - My automatic conversion of the Edupage newsletter to HTML ran from 1993-1999 before Edupage stopped doing the newsletter. A Perl script parsed an incoming Edupage newsletter via email and produced the HTML version automatically, updating an index page as well.
> - My collection of paleontology/geology resources found on the Web..
> - For the last 15 years, my brother Roger and his wife Juliet have owned Yearlstone vineyard in Devon. I set up the Yearlstone website for them in May 2005 - please take a look, and plan to visit it sometime.. In 2006, they were filmed by the BBC for the series The Great British Summer, which was shown on BBC1 on Sunday evenings in November 2006. At the end of August 2007, their vineyard was featured on BBC1's Countryfile, with Lotte Duncan and famous wine drinker Oz Clarke sampling Yearlstone Fizz on the cafe terrace with it's amazing views over the lower Exe valley. I've just set up (March 2008) www.devonwineweek.co.uk for my brother Roger and his colleagues at other Devon vineyards who organise the Devon Wine Week each year. Take a look at that - come and visit Devon that week!

> ## My GPG Public Key

> Here is my public key. I sign RPM packages and occasional emails with this:

>     -----BEGIN PGP PUBLIC KEY BLOCK-----
>     Version: GnuPG v1.0.6 (GNU/Linux)
>     Comment: For info see http://www.gnupg.org

>     mQGiBDwHrxcRBACo4o+PXVWnpsRxoEE5mTpDNRXA3DLqlyzG63HYDAflecM62PQ3
>     W+ErpGh/Zo2E4AqOgf7pB+5C+1OadESRHExoLhtCq8UHKBA+qkaueCICVq0sw2X9
>     76qmThQ79uoGTxTDabZXCgNiSgFNISaVt7TapJw1unDqEHozfsPMQCz8owCg/qgN
>     0Je7+kvuQ7HVVd0e5BQUiqUD/1rVHqPKf9fjFCbMf07FpEo/12cbBoLU9huAEEjf
>     j62T//aQ4tNHGkkhKY0Y3X2gJgJn6TGn4e1LJvyMZdRnPQ4PcL7klQCcF5xHay7n
>     P5Kah8tMGavi+9Hlf6ohvli9UgPnjwpvoy4FgrlYgkz7B162/BzhuOPShUPG1LrE
>     rtlRA/9y/Xo1YTilzOQN7JB6SGLeOAQnCtGJX+HAs0Vr/Fxqctq4YLkyWkJpS0qs
>     wr1DzS7JHsBRVr03xEaxkokF2wPzQHj3p2WNeMPqNglc7O62e20W6snkQhv25leh
>     pgOYk8rTeX0MIDXNmF45fVbu9VSi5eJ8Houv7XitMd1DMM5SYbQiRHVuY2FuIEMu
>     IFdoaXRlIDxkY3dAZG9jLmljLmFjLnVrPohXBBMRAgAXBQI8B68XBQsHCgMEAxUD
>     AgMWAgECF4AACgkQZ0ZZU1WypVTXcwCgnfGHqPoHvTbmecaVr7nvu0IlsOAAmgMs
>     SYCWyI+WRZ5CCq0o0P96glnRuQENBDwHrxkQBACTozk/Qhm5BIOs6meOc9CTQ9Ks
>     VgdiZiQqtf+RHvEjAG+deMKh86r/72D7FaaO6wsfuCq9sgwQX0NwAzklaDlb7+9u
>     4SSdYYsU3VWU9ZDhNf9sj8SlUvZJz8NazjdaDe8GEUs3ieV4FcqPACLTGVLRghGH
>     S6alltysHm6YzC8PQwADBQP9FkiV59J7a0GC2TQYwXirab1Sq29pFRGdwL9Lio6I
>     wj4ThroPIDwUKCCiJYgBTzL84znvxECMEBLbnQIeJNFRuf1o/5DsQQBYCPl4IMFK
>     ZXaCd+Y/bVgDmN9fu7FrHzkXxPRPD+urhaVYP2S22KseVGs6MHVvs6GA1j0nRPjw
>     V4OIRgQYEQIABgUCPAevGQAKCRBnRllTVbKlVHO3AKCUifhyS6hm9sBGYsU1vQEl
>     ZnpxTACg2GsTeviVZE9qU4/7Lf8WWSxjBRc=
>     =HurF
>     -----END PGP PUBLIC KEY BLOCK-----

> dcw@doc.ic.ac.uk Hits: | Updated: July 2012