I feel like I need to write about a few things instead of spending
most of my time on e2 in the catbox. Yes, it's a daylog, so I reserve
the right to make it rambling, unconnected, and occasionally
incoherent. Caveat lector.
Kristen
Kristen left three weeks ago today to pursue her life back in the US,
in Oregon. I have been meaning to write my thoughts on the matter for
some time, since the day she left, but I always seemed to find
something better to do.
We haven't broken up, at least not in so many words, although I expect
something much like it will happen of its own accord. We have spoken
on the phone about every other day since she left, and I dramatically
have made her promise that she will not stand me up for our next date in four years, at a very specific place, at a very specific time. Until then, we'll see what happens,
but I fully intend to be there by all means possible, and four years
to plan ahead for it seem like enough to make sure that we can both be
there no matter the present circumstances.
There are no promises of fidelity, which would be a bit of an
unnatural pledge for both of us, considering both of our sexual
proclivities. I expect that with time the body's memory, always so
much stronger than the mind's, will slowly fade away and the contact
of a new person will no longer seem as invasive as it may seem now to
both of us. Regardless of the propensities of the body, I did
promise that I would not look for anyone else for at least three
respectful months, which seems close to my own natural rhythm for
these things. I know I have been accused of being overly sexual or
that I may seem that way in public catboxical discourse, but I should
make it clear, whether I'm believed or not, that never, not once, have
I ever had sex without making love at the same time, and that sex for
me is never from the waist down, but includes the rest of the body, in
particular the brain and the heart. Every woman I have been with has
been important; I have loved every one in her own way, and I still do
love everyone quietly, privately, personally, for I believe you never fall out of love with anyone.
This does mean that the promises of March 13, 2007 have been
rescinded by mutual agreement. Eventually Kristen said to me, why
would you want to come to Oregon? There's nothing for you here to do
besides being with me, and I don't want to be the only reason why you
would come. Go ahead with your plans to see more of the world.
And I agreed, even through my attempts to keep my side of the bargain
and promise that I would do my best to adapt to life in the US despite
my prejudices. At her own insistence that I should do what I think
best for myself, I finally gave up and agreed that going to Norway or
Russia is what I should be aiming for, and I am. Our love will have to
wait.
I believe in the best love stories. I'm
a deep romantic at heart, and may the day never come where cynicism,
especially romantic cynicism, gets the best of me. As I see it now,
both Kristen, my dear Kristenabella, and I need to go grow in our own
separate ways, and if it's meant to be, if it works, and I deeply want
to believe so, then four years are nothing, and it will work again
after that time. I have known of such love stories and happy
endings, and there's no reason why I can't have my own too.
I was afraid that I wouldn't cry the day she left Guanajuato, and I felt profoundly relieved when the
abdominal spasms of tears shook my entire body. I was taken by them
for a good hour, thinking of what we had shared, of the time we would
be apart, and of the promise of what we may be able to share once
again. You bleed just to know you're alive.
For the time being, deluser kristen.
Over the past few weeks, I have been busying myself with what feels
like a secret identity. I, the mild-mannered
mathematician playboy by day and in the public
eye, by night become the daring free software coder attempting to
bring quality software to users worldwide at great personal risk
simply because I think this is the right thing to do after all that
free software has done for me.
Did I mention that I enjoy being dramatic? Yet, this is a turn that I
really want to take with my life. I have grandiose dreams of doing
mathematics by day in order to earn a sustenance that will enable me
to code free software by night. Indeed, although a few lucky souls are
able to make money by coding for a free software job (let's not
forget, for instance, that most kernel hackers are employed by
the likes of giants like Novell, IBM, or Oracle specifically for
their work on the kernel), after hanging out with the
Debianistas, it seems that an overwhelming majority of free
software coders still have to make ends meet otherwise.
I have a bit of a fantastical appreciation for this dynamic. It makes
for good stories. It makes me feel part of this underground worldwide
community of individuals powered by ideals of freedom, community,
quality, and openness. We are few; we are scattered and
international. We speak many languages, both natural and coding, and
we often have our ideological differences, yet we're united by the
commitment of free software ideals and the way that information should
be shared amongst all humans. We're the rebels living in gritty Zion
trying to bring freedom from the machines to anyone else who may want
it. It feels good, and it feels right.
I have lived a very comfortable life. It's important that I say
this. I have never been hungry, unsheltered, unclothed, or unloved. I
have never been through a war, and nothing dreadful has ever happened
to me. I have had the opportunity to have the best education that
money can't buy, learning mathematics and fluently speaking more than
one language. I have been blessed, gifted. I belong to an exceedingly
small minority of the human race. Call it what you will, good luck
perhaps, although I prefer to think of it as receiving a lot of good
karma. I believe in karma not in any religious sense but as a vague
sociological construct. If you give, you'll somehow get back through
some path in the social network, simply because that's just the way
humans naturally are. I believe I have this karma debt to the world,
that I have to give something back, that all the good I have received
cannot be in vain, and I will not die happily if I feel that I have
done naught for this world except consume oxygen.
I want to save the world. The world is one messed-up
place, as I needn't remind you. I feel a need to do as much as I can
to make it better, but I don't see how I could impact most of its
problems in any significant way. Mathematics seems to be one way to do
it, if I can add to our knowledge of nature and the world in a useful
way, then I feel like I have accomplished a lifelong goal. This is why
I chose to work in applied mathematics after completing my undergrad
degree in pure maths, because I have a need to feel like I'm doing
good for others. But I ran into an obstacle: applied mathematics has a
very large component of working with a computer, and how could I in
good faith say I'm contributing to the betterment of this world and to
creating a greater wealth of information if my code can't be shared,
studied, modified, and used by everyone? Free software fits in very
naturally with my lifelong goals, you see.
The most wonderful thing, despite what detractors might say, is that
this idealism isn't empty idealism. Free software exists now,
and it works now. Oh, sure, there is much work to be done if
we are to fully attain its goals. Thankfully, there is almost just as
much work already behind us, and we are heading in the right
direction.
I have recently completed my first Debian packaging. I packaged
QtOctave, a Qt front-end to GNU Octave, in hopes of making
Octave more visually attractive to newcomers by making a GUI for it
easier to install. I'm currently waiting approval from Debian's
ftpmasters, although I have no reason to expect that they would reject
my submission (Debian is *very* strict about quality and enforces
packaging policies as rigidly as it can). It felt good, and if I hear
about people using it and sending me bug reports about how I can make
it better for them, it'll feel better. I'm also building on the work
of someone else; I didn't write the GUI, just packaged it. This makes
me very satisfied, and it's one thing I enjoy profusely about free
software: we keep building on each other's work to create a whole
greater than the sum of its parts, and our work is infinitely reusable
if done right. That most fundamental rule of economics, scarcity, is
violated here. How wonderful.
I like the thought of working with Debian. It's the largest binary
distribution out there with a good packaging scheme, meaning
it's very easy to install and update its packages, and it sticks very
close to free software principles. It's so good, that the fastest
growing and most popular GNU/Linux distribution is based on it,
Ubuntu. Ubuntu adds more user-friendliness to Debian's quantity and
quality, creating this greater whole I was just talking
about. Although I prefer to work with Debian because I feel more at
home with its policies and ideology, the thought that my work will
also be available to Ubuntu fills me with an overall satisfaction. Oh,
I have my disagreements with a few things that Debian does, and Ubuntu
still hasn't completely attained the degree of user-friendliness it
aims for; nothing is perfect. Regardless, I am very happy with both of
them as it is.
I plan on packaging more mathematical software for Debian because
voluntary work like this has the best results when you do what pleases
you the most. Motivation is everything; you have to work in what you
believe in. Money may provide artificial motivation, but it can't
usually buy your heart, and if your heart isn't in it, then the
quality of your work will show it. Thus, my next packaging targets, in
approximate order of how close I am to completion, are
-
surf: surf is a visualisation
tool for algebraic geometry and produces pretty pictures like
this one. It's
been mostly abandoned upstream by its original developers, so I want
to take it under my wing and adopt. It's the plotting engine for
Singular, which is still under active development.
-
Rubik: Well, this
one doesn't have a very unique name, and that may be because it's a
relatively simple tool from which I have nevertheless derived great
enjoyment (I'm going to try to change its name anyways). It's just a
Rubik's cube simulator, and a rather simple one at that. It does have
some very useful features like macros, so you can record a series of
moves and instantly see their effect and undo just as quickly. It's a
great tool for using and understanding Rubik's cube, albeit only its
3×3× version (perhaps I'll expand it to other cube sizes;
after all, cube-solving algorithms are also available out there). This
one wasn't free software until yesterday, after much lobbying
on my part. It's a very simple program under which underlie many
layers of complexity, much like the cube it simulates. It also has
very good documentation, and there's an accompanying text that uses
this program and Rubik's cube to bring group theory to a general
audience (the target audience is those with a high school level of
this mysterious "mathematical maturity"). I'm not sure I'll be allowed
to package this text, though.
-
LiDIA: A
C++ library for computational number theory. I only used it once
about four years ago for an undergrad summer project on number theory,
and I was generally impressed by it. Unlike other so-called C++ code
out there (printf and preproccesor macros do not a C++ program
make), LiDIA actually is written with good C++ practices in mind and
true object orientation. There is inheritance, polymorphism,
templates, namespacing, and all that good stuff. Plus, its algorithms
are top-notch; about four years ago when I was using it, it had the
best algorithms for elliptic curve cryptography available
anywhere. Unfortunately, like surf it's also been abandoned upstream,
but that doesn't detract from its quality in any way. It also wasn't
originally free software. After some nagging from my part, its
copyright holders decided to release it as free software, and now I
feel a bit of duty towards Debianising it in hopes of bringing it to a
wider audience.
-
Singular: A CAS specifically aimed at algebraic geometry and commutative
algebra. It's not entirely unique, but it is unique in the free
software world. I don't know much about it, except that packaging it
will be quite complex due to its intricate build process. This one was
almost free software except for some components. I also managed to
convince the authors to release those components, and now Singular is
100% free, so I also feel a sense of duty towards it.
-
SAGE: The granddaddy of all free
software CASes, SAGE actually is huge simply because it incorporates
an interface to all major CASes, both free and proprietary
(naturally, it only distributes the free ones with it). SAGE is more
than just a front-end to the rest of them; it also offers
functionality of its own such as plotting, and is written in that very
comfortable language, Python (for which,
reputedly you just have to write pseudocode and
then indent it properly). It looks like the most likely killer of the
three big M's and harmful addictions of the mathematical community,
Matlab, Maple, and Mathematica. It still isn't there yet,
although I get the feeling it's getting closer and closer. If Singular
would be hard to package, SAGE would be triply so, in terms of its
size and that it actually patches the software it includes with
itself, such as Maxima (general-purpose CAS), GNU Octave
(numerics), GAP (group theory) and Pari/GP
(number theory), and even Singular.
That should keep me busy for starters. There are also other
non-packaging tasks I want to indulge in, mostly related to Octave,
because we desperately need a replacement for Matlab, the de
facto industry standard. I want to improve Octave's Emacs mode
and its graphical abilities via Octaviz, an Octave interface to VTK,
the visualisation toolkit.
Some day I aspire to be a Debian developer, a double-D like our very
own jaybonci is (or was?). First I need to prove my abilities and
commitment, which seems fair. This world needs more actual free
mathematical software. Let's begin.