read that sentence a second time
Tuesday, December 17 2013
The brutal cold continues, with a low this morning of a single Fahrenheit digit. (I saw 5 on outdoor thermometer when I got up this morning, but it could have been even lower than that.) It also snowed for much of the day, adding to an already (for this time of year) substantial standing accumulation. Though the snow actually seems to provide a noticeable increase in our house's ability to retain heat, firewood consumption in such low-temperature conditions is fierce, and even then it's hard to get the living room into the upper 60s. Meanwhile, the relatively small amount of hydronic heating surface area in the laboratory has made it a hard place to heat, even with nearly all of its outdoor-facing surfaces covered with an additional insulating blanket of snow. I keep a 300 watt parabolic heater on the back of my neck, but the biggest problem is my hands, the backs of which start feeling stiff and vulnerable to injury from even the slightest trauma. Unfortunately, I had to stay at my computer all day cramming in work before yet another meeting with a client tomorrow.
I stayed up until nearly 5:00am working on that Lightroom plugin that has cursed me since August. Most of my recent work has been on the website where nearly all of the interactivity takes place, though today I waded back into the Lua code to implemement some new features. In the course of this, I discovered that an important feature (the keywording of images based on data sent from the website) was failing. As nearly always happens in Lua on Lightroom, there were no errors, and I was forced to debug by inserting LrLogger:trace commands until I zeroed in on what the problem was. In this case, though, even that was not sufficient. The problem was happening in a block of code using a LrCatalog:withWriteAccessDo method, and so whenever there was any little trivial error within that block, all changes made within that block were rolled back. I wasn't clear on this initially, so I kept wondering why absolutely no changes that I was making produced any visible results. It's unimaginably difficult to debug a block of code with the expectation that some of the things done within it will stick if that isn't true when anything within that block that fails makes nothing within it succeed. (You'll probably have to read that sentence a second time.) The two wee hours of the next day are things that I'll never get back, but it taught me a valuable lesson: when something involving data is failing, have a look at the nature of that data. In this case there were a lot of duplicates resulting from buggy code written in PHP and MySQL, and evidently Lightroom's SDK throws errors when one tries to keyword a photograph multiple times using the same keyword.
For linking purposes this article's URL is:feedback
previous | next