[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Back in the Pond

From: David Kastrup
Subject: Back in the Pond
Date: Thu, 19 Jan 2017 11:18:36 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux)

Hi fellow ponders,

it would appear that my excursion into a regular workplace ended up
somewhat shortlived.  Long story short, I was not able to convincingly
make a weekly commute, part home-office, and very Windows-centric
workflows (and using rather unflexible version control) and a focus on
shortlived code (rather than the multiple-decade timespan projects that
LilyPond, TeX, and Emacs sport) combine with a competitive amount of
immediately visible productivity.

This was actually not as much an opportunity I had myself actively
sought out but rather an interview a friend of mine had arranged because
my finances were not really working out with LilyPond.

I don't quite know where to go from here, so I'm pretty sure to be
around at least for February back in the Pond, and I'll probably take a
look at what options we have to divert donations through the FSF.  They
take a 10 percent cut, but they also handle credit card processing and
other stuff, and of course there would be no need to notify people in
case I left again: the project obviously could somewhat comfortably
revert to making use of money independently in order to pay for some
long-standing coding projects.

Of course, going via the FSF and a project-specific fund would mean that
we would need some sort of mechanism to actually decide what to use the
money for.

I have been not overly successful in providing regular accountability to
my personal supporters, so it remains to be seen how I would fare with
more visible requirements to reports.

While my short excursion into more regular work places has provided a
short breath of relief financially, those were also offset by a number
of acquisitions made both for immediate needs connected with having to
maintain two households as well as making some long-required or desired
acquisitions not previously deemed affordable.

The long and the short of it is that I'll not be able to, say, hold out
half a year until other financial arrangements catch hold.  And I don't
really have a view on how much of a positive difference routing part of
LilyPond financing through the FSF could have.

So for the short time range, I am again dependent on support by other
LilyPond lovers.

Sorry for turning on dime again here.

So what's next on my agenda?  Finishing some started work that was more
or less stepped in mid-stride by my excursion into the regular
workplace.  One somewhat long-standing goal was to remove LilyPond's own
implementation of a Rational data type and replace it by one based on
Guile's arbitrary-precision arithmetic.

This is a multistep endeavor.

Step 1 is putting the data structures of the Midi backend under Guile
garbage collection control (so far, they are just allocated in C++ and
never released.  It doesn't make much of an impact because the Midi data
is so much less than what is used for visual typesetting, but it's
disconcerting a bit).

This is necessary because various timing data is stored in the Midi data
structures, and using Guile rationals for that requires tieing the data
structures into Guile's garbage collection.

Next step is making all musical Moment data structures (optionally tied
into Guile/SCM already as Simple_smob) and the occurences of the
Rational data type (so far not tied to Guile at all) properly
garbage-collected.  Then the Rational data type needs to be replaced by
a C++ wrapper for Guile's SCM data type (in order not to have to rewrite
a lot of code, the Rational data type itself and its conversion
functions would likely remain but be reimplemented in terms of Guile

That would likely cater for most problems of becoming
arbitrary-precision (with "arbitrary" actually meaning a few million
digits).  For the overwhelming number of scores, this should not make
much of a difference.  I expect a bit of performance impact.

But nothing comparable to the Guile 2 transition (if and when we go that
route eventually).  With regard to Guile 2, we'll need to figure out a
viable programming and communication strategy and also decide whether we
rather make Guile 1.8 work privately for us.

That will also have an influence on deciding how to progress technically
with our MusicXML support.

I am glad that I'll be able to provide technical support and expertise
at least for a while and thus hopefully help Graham pick up the reins of
the overall project governance a bit better.

At the very least, I'll be able to get a bit on my ongoing work queue
flushed out which was left in a dissatisfactorily unfinished state by my
departure and which would likely have taken half to a year to clear in
most parts while having a regular main job.

And, of course, this is an opportunity to try putting out the 2.20
release finally.  I'll take stock of how to deal with our showstoppers
in that area soonish if Graham does not beat me to it: it's one of those
tasks which have so many open ends that I easily lose focus, and much of
it is trying to figure out the status of previous unfinished
contributions from others, something I am notoriously bad at.

At any rate, I'm back for a while to comment on stuff and to get work
finished and, depending on how LilyPond's financial future and targets
work out (and your possibly private support of my work), perhaps even
for longer again.  If and when I take up applying for work positions,
I'll likely do so in closer vicinity to my home, possibly reducing the
amount of commute problems and the level of exhaustion I have to deal

But at any rate, I hope to be on board at least for making LilyPond 2.20
a thing.

David Kastrup

reply via email to

[Prev in Thread] Current Thread [Next in Thread]