Thursday, August 20, 2009

In late 2005, shortly after arriving at Girton College to begin my
undergraduate course in Engineering, I met a young lady who would
change my life forever. She was tall; she was slender; she was a
stunning brunette; she was intelligent; she was witty. She was the
most wonderful woman I had ever met.

She was also quite shy, which meant it took a long time --
months -- for me to win her trust. We chatted online most days
of the Christmas vacation, and in the Lent term we drank late night
cocoa together while commiserating about the length and difficulty of
our examples papers. Just after Easter in our first year at
Cambridge, we began going out. It was the 17th April 2006, and it was
the happiest day of my life.

We had a wonderful time together. I remember one evening in June
2006, after finishing our exams, we packed a dinner of boiled eggs,
rocket, cheshire cheese and crusty brown bread, cycled into the fens
to the north of Cambridge and enjoyed a relaxing picnic on the verge
outside the Queensholme Bloodstock Stables near Willingham. I
remember her laughing as she snapped a photograph of a big green
caterpillar crawling around in the grass near her lap.

I remember my 21st birthday, at her house in the Alps, with a
delicious carrot cake and beautiful, hot continental weather to travel
up a funicular railway and enjoy a meal overlooking the mountain
lakes.

I remember a second year in Cambridge, living next door to each
other on a corridor of our friends at Girton's Wolfson Court. I
remember fondue evenings followed by games of Mario Kart 64 in my
room, with people sitting on the bed and huddled on the floor to
gather round and watch. She always won, no matter how hard we tried!
I remember visiting her home again -- this time at the New Year
-- and travelling far into the highest mountains to find a resort
with ski-able snow. I remember carrying her new kayak to the river on
her 20th birthday in the pouring rain, and watching the fireworks with
her at the First and Third Trinity May Ball.

I asked her to marry me, and she said, "Yes." We went to a
jeweller together, and together we decided to have a beautiful ring
made to order: a sapphire flanked by two smaller diamonds. It was the
second happiest day of my life.

At College again in our third year, we lived next door to each
other again. I remember my happiness and her joy as I watched her win
all of her kayaking varsity events, and I remember her endless months
of struggling with mountains of horrendous maths problems. I remember
punting on the Cam, our finals behind us, and not a care in the world.
I remember her graduation, and looked forward to her being there at
mine.

But then things changed. In September 2008 she went to York, to do
a PGCE in secondary mathematics, while I remained in Cambridge,
plugging away at the final year of my MEng. And suddenly it was not
"we" who told the story any more, it was "she" and "I." I dutifully
dragged her bicycle and her clothes and her books up to York on the
train, longing to spend as much time as I could with the one I love.
She seemed unwilling to make the time to come down from York to visit
me, and when she came seemed to wish she hadn't. When I was there, it
was as if she resented my presence, as if I was intruding into her
privacy. Something had changed, and I was bewildered and
confused.

She spoke to me less and less on the telephone, and never seemed to
want to chat with me online. I was distraught. "What is going
wrong?" I wondered. "Was it something I have done? Was it something
I didn't do?" Yet I loved her still, with all my heart, and arranged
a surprise visit to her in York. It was a cold night in March, but
she was icy. It seemed like the relationship I cherished as much as
life itself was hanging by a tenterhook.

The final examinations of my MEng began on the 17th April 2009, and
it was on the 19th April I received the letter that I had expected but
which I hoped would never come. Just over three years after our
relationship had begun, it was over. It was the worst day of my
life.

That was four months ago, and now she is with a new man, or at
least, that is what her Facebook status says. Four devastating
months, in which my life has crumbled to pieces around my ears as if
struck by a tsunami; not only my future, but my past as well.

I looked forward to marrying her, starting a household together and
eventually starting a family together, and now that will never happen.
All my hopes, all my dreams are the wreckage of jagged splinters left
after the box of Christmas baubles is hurled down the stairs. My
heart is a broken mess of mingled sorrow, love, jealousy and
anger.

But worse, I find myself doubting whether the way I saw things was
in fact the way they really were. Towards the end of the
relationship, I was fooling myself when I told myself that she loved
me and that this was just a hiccough that could be put right by
showing her that I loved her. But for how long? How long did she
hide the way she felt about me? Did she do it out of some misplaced
wish to avoid "hurting my feelings," or because she was afraid of how
I might react? What did I do, or not do, or what about me was it that
drove her away from me? Is the truth of the matter that I
was too devoted, too trusting?

I fear -- I so dreadfully fear -- that even when our
friends were sending us cards to congratulate us on our engagement,
even then she was doubting whether I was the man for her, and she
didn't tell me. And that would mean that, for more than a year
and half of my life, the reality I perceived did not exist.
I was living in a dream world.

How I wish, how I so terribly desire for that dream world to be
real. Because, at the same time as I continue to love her wholly, I
know now that we will never -- can never -- be together
again. She has changed my life forever; but I hadn't expected it to
be like this.

My days are swifter than a weaver's shuttle, and are spent without
hope.

Friday, August 14, 2009

According to a new interim report from the US National Research Council, NASA's current near-Earth object surveys will not meet the congressionally mandated goal of discovering 90 percent of all objects over 140 meters in diameter by 2020. Funding for near-Earth object activities at NASA has been constrained, with most costs being met by funds from other programs.

What a surprise! Underfunded science programmes have difficulty meeting targets! In addition to complaining about funding, the full report (which is free to download) has some interesting information on the current technology and facilities used for detecting near-Earth objects.

Another of the report's findings was that:

The Arecibo Observatory telescope continues to play a unique role in characterization of NEOs, providing unmatched precision and accuracy in orbit determination and insight into size, shape, surface structure, multiplicity, and other physical properties for objects within its declination coverage and detection range.

I find this particularly interesting in the light of concerted efforts in recent years to shut the Arecibo facility down "to save money."

Congress should make up their minds: they can mandate and fund public research, or do neither.

Thursday, August 13, 2009

In the wake of the recently-release Digital Britain report, the
Department for Business, Innovation and Skills recently opened a
consultation on proposed legislation to combat illicit peer-to-peer
filesharing. I have published
my rather
lengthy response on my website.

I hereby disclaim all responsibility for permanent brain damage
caused by extreme boredom induced by reading the document linked
above.

Sunday, August 09, 2009

One of the items on the gEDA
"Todos" list as a prerequisite for the 1.6.0 release
has been a refactor of the gEDA build system. Instead of using
several distributed source archives (one for each major component),
it was decided to distribute the gaf suite as a single archive, with
one unified build system.

Why?

The advantages of this strategy were seen as follows:

The system would be less confusing for new testers or
"power" users who want to try out the latest changes in
git.

The whole suite could be built and tested before installing any
files. In the past, it's been necessary to install
the libgeda and symbols packages before any of the
other packages could be built.

It would reduce the labour involved in keeping the version
numbers, ChangeLogs, and required dependency checks
up-to-date. Maintaining multiple configure scripts in parallel is
labour intensive, and there is the ever-present risk of missing
one.

It would simplify the job of distribution packagers. In the RPM
case, it would only be necessary for a packager (like the maintainer
of the Fedora
Electronic Lab distribution, Chitlesh Goorah) to maintain a
single SPEC file, rather than nine.

It would simplify building using parallel make (see the -j
option to make), which can significantly speed up compiling
gEDA on machines with multiple or multi-core processors.

It would improve detection of targets requiring rebuilding.
This is particularly important for working on libgeda;
only changes which affect the public interface require a rebuild of
the applications, but it's often hard to keep track of what's
changed. What often happens with the 1.4.x build system is that
people end recompiling the applications completely just to make
sure, at a cost of time and energy.

Approach

The rework had been on the "Todos" list for several
months when I started looking into it at the beginning of June 2009
(just after handing in my MEng project), and some ideas came to
mind about how the current structure of the build system could be
improved.

One idea that crossed my mind extremely briefly was not to
use GNU Autoconf and Automake, but to adopt another build
infrastructure. Autotools was retained, because not only is it well
known by current gEDA developers, but it has worked well enough for
us in the past, and it doesn't require developers or users to
install yet another tool in order to be able to compile and install
gEDA.

I had recently been looking at the configure.ac file
for DTN2 (the
reference implementation for the Delay Tolerant Networking Bundling
Protocol), and I noticed that they used a very minimalist,
clearly-laid-out configure script will almost all of the configure
checks being described in separate m4 files, as self-contained
Autoconf macros. This appealed to me, because configure.ac
files are often very confusing to a newcomer, and this method
offered the potential to make it much, much clearer.

Problems encountered

There were two major problems encountered while carrying out the
work.

Firstly, internationalisation of desktop integration files
(.desktop files to appear in menus etc., and MIME-type info
files to make file browsers show the right icon. In previous
releases, intltool
has been used to do this, but intltool suffers from a major flaw: it
doesn't support more than one gettext domain in a single package, and
we would need to use at least three (one each for libgeda,
gschem and gattrib).

I was very surprised to find that there wasn't an existing solution
to this problem in widespread use. In the end, I had to actually
write my own tool from scratch to carry out this task, a 550-line
shell script called desktop-i18n.
Although enormously hacky, it works remarkably effectively!

The second major problem was in getting the testsuite to pass
without gEDA being installed. The number of issues encountered was
innumerable (one of my "favourite" examples was the way that
libgeda used to call exit(-1) if it couldn't find
the gEDA font, even in gnetlist which doesn't need to display
any text objects anyway). By a combination of actually fixing bugs
(few) and horrible nasty hacks (many), I eventually surmounted this
issue too. With this, there were more than a few occasions where I
felt like I was banging my head against a brick wall.

Results

On Friday 7th August I merged the "build-system" branch
into the main git repository, and the new build system seems to be a
genuine and successful enhancement (despite a few minor issues).
However, I can hardly believe how much work it took to do!