trip logs / gnuovla

Trip Log 2013-01-24 h09 -- Hacking Under The Bridge

So, it's been a long time since the last post, with lots of hacking under the bridge.  This post lists some of the intervening and ongoing activities, as a partial justification for my lack of non-code output.  The truth is, I really don't have much to say!  The following are roughly in reverse chronological order. 

GNU Serveez is a labor of love for Guile.  My involvement started as a reaction to a post by Mike Gran where he announces a fork (perfectly sensible, as the last release, 0.1.7, was in 2009).  I worked feverishly on this in 2011 and part of 2012, hoping to incorporate some of Mike's work (ultimately failing in some ways and succeeding in others).  Only now does it bear fruit; very soon (perhaps tomorrow), there will be release 0.2.0.  More on Serveez after the release. 

IXIN is another undertaking that has been my focus for end of 2012.  It seems like the file format is stabilizing nicely, and soon it will enter its closing phase. 

Prior to IXIN, I spent a very enjoyable six weeks or so developing SGF Utils, in the process updating Guile-SDL to work with Guile 2.x.  (BTW, probably it is time to submit Guile-SDL for (consideration for) inclusion in the GNU project.)  One notable non-code artifact is the nice PNG on the GNUVOLA art page. 

A little before that, I rescued GNU Alive from imminent GNU delisting, WIKID from the Guile 1.4.x ghetto, and various other bits (via sporadic maintenance) from the ever-looming threat of bit-rot.  These bits include Guile 1.4.x itself, CMOD-PLAY (not yet released), and some Emacs Lisp hackery, as far as I can recall. 

One notable omission is GNU RCS, which got some love towards the middle of 2012 (release 5.8.1), but precious little afterwards.  This is because 5.8.1 was developed (and tagged) on a non-‘master’ branch (good) which shares ancestry with ‘master’ starting some 86 and 105 commits back from the tip of the branch and ‘master’, respectively (bad). 

I haven't figured out how to reconcile this branch and ‘master’ without harming the repo and without running afoul of the ‘receive.denyNonFastForwards’ presumably in place on the server.  I think the conscientious (and cautious) course of action would be to: 

However, to date, I lack the courage to dive in.  In any case, one lesson well-learned from this misadventure is the advisability of avoiding glib pushes to ‘master’.  For Serveez, all development was done on the ‘next’ branch, where screwups could be easily fixed (with the help of other ephemeral branches), and the push to ‘master’ was done only at the very end, after tagging.  Once this problem is resolved, I plan to switch RCS to this approach. 

The other large missing piece is Guile, itself.  I made some noise about getting “back in the saddle” and started to follow through, but have sadly not yet followed through on following through. 

In the next post, I will explain a little more about why so much why.  Until then, happy hacking! 

Copyright (C) 2013 Thien-Thi Nguyen