mtbc: maze H (magenta-black)
Mark T. B. Carroll ([personal profile] mtbc) wrote2019-02-16 04:09 pm

Trying to get myriad tasks done

This month I haven't done well so far: I haven't achieved much and my workouts have become infrequent. I don't feel rotten, I just feel unwilling and often cold. Our house often isn't warm and when there is a chill wind outside and I have arrived back through rush-hour traffic from a full workday and have all manner of unfinished tasks, I really don't feel like dressing more lightly and going back out into the cold. In the US this would be easier: we'd probably have a full basement and no neighbors and I could just go downstairs to the cross-trainer anytime I felt like it and put music on too; someday I will move back there. It's easier if I feel rested and warmer. This lunchtime I exercised only after taking my time to wake up. I come downstairs and make a tea, a coffee and a tisane and feel my grogginess slip away as I drink them while I check news and e-mail. I attribute my initial grogginess more to not eagerly seizing my current life rather than simply getting older or whatever.

In particular, I wonder if my recent slowness has arisen partly from work. I have not been much of a fan of enterprise software frameworks. Recently I have been battling an upgrade of popular Java ones: Hibernate and Spring, with Hibernate Search atop Lucene. These frameworks are intended to make common tasks easy: one can see their appeal, especially in a world where the average programmer is only somewhat competent but is at least able to plug the pieces together. This is all very well when things work but when they don't it turns out that one now needs to understand a set of incompletely documented complex interacting systems. This month I have faced a couple of thorny instances of everything looking right but not behaving as desired. I have pored through source code, documentation, framework reference guides, release notes, bug reports, etc. looking for clues.

Yesterday afternoon at work I reached a good enough point to allow us to move forward. One issue was a complaint on trying to index an object: Access a Sealed WorkQueue which has not been sealed. To which I say, Huh? What's this work queue? What tries to access it? What sealed it? I am still not much clear on that but finally resorted to the unfortunate interim fix of not having Spring manage database sessions and transactions for the indexer, instead replacing it with a simple indexer stand-in that does all such management manually. The other issue (so far) was the analyzer (which tokenizes for the search index) not breaking apart words in certain fields. The configuration of the default analyzer via hibernate.search.analyzer appears not to apply for our @ClassBridge (for adjusting how the indexing happens) but setting the same analyzer manually in that annotation does seem to work. Figuring out that last part took some hours more than it ought because I made a silly mistake: I had tried logging the text that comes from a character stream without considering that in reading the data it no longer remains for its intended consumer downstream. It hasn't helped that this is server-side code and our build system is currently in the middle of major surgery that rather lengthens and complicates the edit-compile-test cycle for server work. That surgery has separately frustrated others in different ways with different software: Gradle and ZeroC's Ice. Over the rest of the month I hope that things will work more easily so that I can frequently make tangible progress instead of puzzling over new stubborn mysteries. If one doesn't know if a code change will work without trying it, that's a bad sign.

I need to get back to writing in languages like Haskell. With that it is a lot easier to write code that makes it clear what is going on: the code is far less cluttered with housekeeping and the language makes tasks easily broken into many simple steps. The abstractions cleanly build atop each other all the way up to what one actually needs. Once I know what I want the program to do I can quickly write working code. If I am not sure how it should work then I start by writing early steps to advance in helpful ways so that from where they take me the subsequent steps are clearer. With Haskell I am not thinking in terms of design patterns or frameworks or whatever because is it so easy to build pieces that do exactly what I need and no more: I can focus far more on the task at hand rather than the associated engineering. While it may not do much for my employability, my paid use of mainstream approaches throws into sharp relief why, where I have a choice, I do things differently.

At work the indexer problems put me squarely onto the critical path. To my credit, this is the fourth time that work has been attempted and I have now brought it rather further than we had managed before: there is light at the end of that tunnel now that enough hours have been sacrificed to whichever capricious god it is that stops software working. I have other urgent tasks to do, some small tasks that I should clearly just do and cross off the list, then other important tasks that are worth doing: I could easily use the next few months productively even without further priorities coming down from above.

My domestic to-do's are in a similar state. I have computer operating system overhaul work postponed from last year. However, as at work, urgent tasks are displace the important backlog. The end of winter brings gardening to-do's like pruning the crab-apple tree. I still need to file my FBAR with the US Treasury though it should be quick and easy from this point as I did collate and summarize what I think is all the required information and after the shutdown ended the Bureau of the Fiscal Service published the 2018Q4 exchange rates ones uses for the FBAR. Additionally, last week my composite 1099 was issued so I can now get my 2018 taxes done. Further, another time-sensitive issue is that of managing our investments which are mostly in US equities. I am holding my nerve for now but I don't trust the Trump administration's economists, China's ability to hold their current course nor Europe's prospects. The S&P 500 has had a great decade and I wonder when the music stops. I don't need to make as much profit as I could have: I won't be surprised if something happens this year to worry me enough to rebalance much further into corporate bonds or somesuch. In the meantime I shall pay more attention to relevant indicators. It is nice being in the UK: I consider only the NYSE and NASDAQ so after work once I have settled in the evening the trading day is still open. On a more urgent matter, in computing I also have server-side certificates to renew and install before the end of the month.

Some of my time has gone into helping my children with their math and science homework and revision. Just as I enjoy programming, I had forgotten how very much I enjoy that schoolwork. I had to remind myself how to do partial integrals and use the chain rule and whatnot but I have math textbooks and once I got into it then it was good fun. I also see de Moivre's theorem on the Advanced Higher Mathematics formula sheet so that is promising. For me this is now crossing a border into higher math where one goes beyond the application of learned algorithms and more into a rewarding realm of art and beauty. I wish I had time to learn more of my way into it: I was impressed, delighted and jealous when a friend pointed out a way to use eigenvalues and a dependency matrix to determine the complexity of recursive code. I am glad of having experienced even the laboratory side of A-level chemistry: I think that careful practical technique helped in later life for tasks like wound care.

I had made slow progress at home in reading non-fiction but have continued to make easy progress with fiction: I am now moving on from Tom Baker's Scratchman to the Strugatskys' Roadside Picnic which I don't recall having read before. I also watched and enjoyed Predestination (2014): I do appreciate a movie to which the creators gave careful thought and that requires some attention from the viewer; it was a surprise bonus to see among its cast the guy who plays Hitler in Preacher (2016).

A month ago we had largely recovered from our holiday colds and I had mentioned needing to file my FBAR and having enjoyed some programming (these days, coding) at work. I was also noting that I should be able to fit into my life all I want and need to do. The stressors of last year are past and I hope that as work improves so will my ability to perform domestic tasks over coming weeks. I prefer not to take time off work to catch up on them: small but positive net progress will suffice and the opposite would require further time off as backlog reaccumulated.

Post a comment in response:

This account has disabled anonymous posting.
(will be screened if not on Access List)
(will be screened if not on Access List)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org