
One problem lately, at both home and at work, is that many tasks turn into something rather worse than I might have hoped. For instance, just now I thought I would look at installing qtox on OpenBSD except that I got mired in a horrible mess of aclocal and Automake versions and whatnot and then our broadband PPP connection hiccuped twice while I was doing it and tipped me over into giving up. (At first I thought the powerline ethernet adapters were at fault but I then checked the router logs.)
At work I have been wrestling with tricky lightly documented code at the core of the server that is wrapped up tightly in Hibernate and Spring: for the most part I am not quite sure what is happening, what should happen, nor why. Among the many times I thought, oh, maybe it will work now
only to find in time that my attempt wasn't yet good enough, there have been multiple occasions where it turned out I ran into another bug in Hibernate: it is poorly documented, riddled with longstanding bugs, and popular in the industry. At least somebody else fixed OpenStack when the instance I was using for testing fell victim to the OOM killer.
My problem tasks are not just with computers: for example, my last couple of trips to the doctor and the garage and whatnot were for issues that I think still remain essentially unresolved. Also, I just tried to arrange some child's swimming lessons only to find that the schedule has changed to now make them incompatible with where they go to school, and I tried to arrange some extra science lessons in St Andrews only to find that the teaching schedule conflicts with prior commitments. I do try to execute useful actions but little has gone easily in recent weeks.
A reason why in the longer term I need to get back to writing my own software, using languages like Erlang and Haskell, is mental hygiene. Wrestling legacy code in enterprise software stacks is just horrible. My inclination toward tractable, simple elegance in windowing platforms extends further into other areas of computing, though I still make far too little time to effect substantial progress in that direction. My current work does bring the occasional more pleasant taste: for example, I get a lot of the PostgreSQL tasks writing SQL and PL/pgSQL and that at least is well-documented and quite clean to work with. I can't help but wonder if I would have been happier in some alternative career programming microcontrollers for advanced prostheses and suchlike. But, languages like Haskell bring me good surprises: I think, hmm, I could express a solution like this, but what will the compiler think?
and it works! As opposed to the bad surprises from libraries like Hibernate where if I do something a little differently, let alone ambitiously, I risk suffering another unanticipated pitfall.