Here's another terrific Tom Scott video, this time showcasing a shooting range in Switzerland where you shoot over a busy road. The technology behind the electronic targets is pretty neat. One more reason why Switzerland is one of the best places on Earth!

I didn't know this, but Judy Sheindlin (of Judge Judy fame) was interviewed back in 1993 on CBS' 60 Minutes. This interview is what essentially launched her career as a television judge. It's fascinating that her personality on television is essentially the same one she used in New York's family court system. It turns out that she's pretty much herself!

Barred Owl

Sep 30, 2021

I've longed to photograph (and even just see) an owl in the wild for a long time, but they are oh-so-elusive birds. We do hear barred owls behind our house regularly, but I never see them. However, just before sundown tonight, one started calling out. I ventured into the woods to find it and, fortunately, I was able to!

Barred owl

Office Chairs

Sep 23, 2021

I've been fortunate during this pandemic to be able to work from home the entire time. It has only recently occurred to me, however, that my current setup is lousy when it comes to comfort. My desk is the same one I've had since my college days, and the chair I use is a hand-me-down from my wife (which is a step up from the crappy cheap one I used to own). Why am I putting up with this?

My ideal desk would be a standing model, if for no other reason than to provide some height adjustability; my current desk is a fixed height, and it's rather low down in my opinion. The ideal chair, however, is harder for me to pin down. Should it have a head rest? Arm rests? Mesh or padded backing?

If you're reading this, what kind of chair do you use? Where can one go to try out office chairs before you buy? I don't recall seeing these in furniture stores, and office supply stores (as I recall) only carry the cheap stuff.

This follow-up video from Technology Connections on dishwasher soap is fascinating (the video is in response to a previous one on dishwasher detergent packs). It's over 45 minutes long, so you'll need to make time for it, but I give it a high recommendation. The previous one is also well worth a watch, though he provides a very quick overview of it in this video.

For over a decade now, I have logged my daily weight using Libra Weight Manager, a great little Android app. I last wrote about this in December of 2018, so it's high time for an update. Shown below is the latest graph (click to expand):

As you can see, I've gained weight substantially. In fact, I'm now the heaviest I've ever been! The graph starts heading up in 2018, which happened to be the year our first daughter was born, though I started gaining well before she arrived. At the beginning of the pandemic in 2020, my weight started to come back down, but has since done an about-face and is increasing again.

Stress likely corresponds (to a degree) with my weight drops. The lowest point on the graph is just before I got married, and the big dip at the beginning of 2020 is pandemic related. My nightly weakness is ice cream; I have some almost every night. This, and an increase in the snacking I do in the afternoon (thanks to working from home) are definite contributing factors. Eating at home has had benefits, however, as I'm eating better meals than I used to for lunch. Prior to working from home, I ate out nearly every day.

I need to turn things around again and lose some weight. I'd certainly feel better, both mentally and physically.

Back in November of 2019, I wrote about some deformable LED lights that I picked up on Amazon for our garage. This weekend, one of them died, after only about 21 months of occasional use. I have since picked up a newer variant that claims to have a 5-year warranty. The happy part is that I got a pack of 2 of these for much cheaper than I paid for one previously.

It's disappointing to me that I didn't even get 2 years out of those bulbs, despite their having a "2-year warranty." Lots of Amazon reviews for the old model point out that the warranty is bogus; no one is available at this "company" to take your information and replace the product. Given how many clones of these there are, I'm guessing they're all pretty much bogus Chinese listings. I am unable to find any UL-listed variants of these lights, which is also disappointing. I have read about some of these melting, especially the ones with plastic bodies. Both of the ones I own have aluminum bodies, which should help with temperature control, but I'd feel a lot better if the bulbs were certified in some way.

Ultimately, I'd love to install some of the consistently-well-reviewed Barrina LED fixtures in my garage, but that would involve some rewiring work that I'm not real keen on doing.

Projection Clock

Aug 23, 2021
Projection clock

My eyesight is pretty bad, which makes reading the time on the clock next to the bed a challenge at night. Since 2016, my wife and I have used a projection clock / radio combination, but it had a number of drawbacks:

  • The display uses bright blue numbers, which is hard to look at in the dark
  • The display is either too dim to read in the daytime (and just right at night), or it's just right in the daytime and too bright at night
  • The time from the projection feature is too small for my poor vision
  • The projection feature is also too dim to see in all but the darkest rooms
  • Our cats chewed up the tiny antenna on the radio, rendering it useless (not that we used it much anyways)

Frustrated with all of these features, I picked up this projection alarm clock from Amazon. It's terrific:

  • This clock uses red numbers, which are way easier to read at night
  • The primary display isn't too bright or dim (and you can control the brightness across 4 levels)
  • The projected time is larger than my previous clock
  • The brightness of the projected time is controllable; I use the brightest setting, which makes the numbers quite readable on the ceiling
  • There's no radio to fool with (or antenna for cats to chew)
  • It has a USB port to slow-charge your phone, which is nice but not something I plan to use

At only $25 (I got it on sale for $20), it's a nice improvement to our bedroom. The only drawback I can think of so far is that the clock is ridiculously light, making it easy to slide around on the bedside table.

Yellow-billed Cuckoo

Aug 10, 2021
Yellow-billed cuckoo

This morning I got really lucky and photographed the 37th different bird species I've seen in our backyard: a yellow-billed cuckoo. These birds are apparently notorious for being hard to see, though they are frequently heard due to their distinctive calls. A number of people in a North Carolina birding forum that I post to have heard them in the wild, but have never seen one. Lucky catch!

I spotted it out of the kitchen window this morning, had an idea as to what it might be, and grabbed my camera. I sat outside on our back deck for 5 or 10 minutes before it showed itself again. Though the photo isn't the greatest, I'm happy that I was able to get a snapshot of it.

One of the great thrills of birding is checking off birds on your life list. This "lifer" for me was a fun one to get, and gives me the bug even more to find (and photograph) new birds!

We use AG-Grid at work for several of our projects. Earlier this week, I ran into an interesting issue in some code being used to load data into the grid. The call was very simple:

agGrid.simpleHttpRequest({url: theURLToLoad })
    .then(function(data) {

This asynchronous call was failing and no error was being thrown (as we typically do elsewhere in our code). In looking around, I couldn't determine where the simpleHttpRequest call was defined. The AG-Grid documentation, which is generally pretty good, had no mention of it, save for its use in a few examples. After half an hour of digging, I decided to actually poke around in the AG-Grid source code. There I found the function's definition:

function simpleHttpRequest(params) {
    return new _utils__WEBPACK_IMPORTED_MODULE_0__["Promise"](function (resolve) {
        var httpRequest = new XMLHttpRequest();'GET', params.url);
        httpRequest.onreadystatechange = function () {
            if (httpRequest.readyState === 4 && httpRequest.status === 200) {

All this function is an incredibly light-weight wrapper around XMLHttpRequest. It provides absolutely no support for error handling, and is missing all the other hooks one would need to take full control over the request and its response. It frustrates me when packages do stuff like this. If you're going to show how to fetch remote data for your package, use the vanilla JavaScript features that are industry standard, not some custom wrapper.

Brave Mobile Browser

Aug 3, 2021

Over the past few weeks, I've switched my primary mobile browser (in Android) from Firefox to Brave (thanks for the suggestion, Kip!). So far, I'm very impressed with the app. The built-in ad blocker is impressively accurate, and the browser is incredibly fast. In fact, it feels faster to me than Chrome does (and it's night and day compared to Firefox). There are a few minor UI annoyances here and there, but nothing that ever gets in the way. I've also been impressed with the updates the development team pushes out (the browser only seems to get better with time). I recommend it.

Lately I've been thinking about image post-processing a fair amount. This is partly due to my shooting more photos, which subsequently need to be processed before I share them (I shoot in RAW). Post-processing is an area where I feel I have room to improve as a photographer. Most of the room for improvement comes down to the time I'm willing to put into the post-processing step. Often, I'm eager to share my photos, and will do only a small amount of editing to minimize the time necessary for that step. Investing time in this step, however, can often result in better photos. It's a deep rabbit hole, however, and I occasionally find myself asking "how far is too far?" when it comes to photo adjustments.

The tutorial videos I've seen online run the spectrum of possibilities. Some photographers treat their images very conservatively, making only the bare minimum changes to bring out the best of the photo. Others seemingly "run amok" with changes: from removing parts of the scene, to wildly adjusting the color of the lighting (often to make it appear that the photo was taken at a different time of day). Personally, I think I tend to lean towards the former thinking: adjusting only what's necessary.

I spent some time this afternoon making an alternate edit of a recent photo I took of a barn swallow at Lake Lynn in Raleigh, NC. Take a look at the following two images (click to enlarge):

The first image was my original "quick pass" at editing: global adjustments only. The second image was done with a little more care: I adjusted specific sections of the photo individually, spending more time in the process. I also adjusted the crop of the second image (the first's crop was a little off, in my opinion).

This particular bird was backlit in the photograph, making the side towards the camera much darker (as can be seen in the first image). I brightened that up considerably for the second image. Are the adjustments in the second image too much? Who's to say, really? It's an interesting problem to think about. Where is the line between reality and creative freedom?

My ultimate goal is to produce the best possible pictures I can. Much of that process begins with taking better photos to begin with, as post-processing can only help so much. Taking better photos requires practice which, happily, I'm getting more of with each passing day.

Merlin Sound ID

Jul 3, 2021

The Merlin bird identification app that I wrote about a while back has an incredible new feature: sound ID. Simply bring up the Merlin app, select "Sound ID", and capture the bird song you want to identify. As you record, possibilities for the target bird appear. A few nights ago, while on a walk, I recorded a sound I didn't know, and it suggested a gray catbird, which was spot on.

There's a nice article that provides some details on this new feature and how it works. This app is getting better and better with time, and I highly recommend it.

Overexposing Images

Jul 2, 2021

Here's a neat tip I recently picked up from a YouTube video. When shooting a subject against a bright background (e.g. shooting birds against a sky), move the exposure compensation on the camera up about a stop (or even more, if necessary). The photo below of a red-tailed hawk was shot with +1 exposure compensation, and it didn't take much tweaking in Lightroom to get a nice looking image. You can click the image to get a larger view of it.

Prior to learning this tip, I've ended up with a ton of disappointing birds in flight photos. No more!

Red-tailed hawk; +1 exposure compensation

Further Mouse Woes

Jun 30, 2021

Three months ago, I gave a quick review of the Logitech M585 Wireless Mouse. In the past couple of weeks, I've started having trouble with this mouse, so I can no longer recommend it. When my laptop first starts up, the mouse has trouble staying connected (I connect via their Unifying USB receiver). The connection drops out repeatedly causing the mouse to stutter. I tried switching to Bluetooth connectivity mode, but that experience was even worse! The lag when operating over Bluetooth was comically bad.

This connection issue persists for the first 10 minutes or so of my laptop usage. After that, things magically start working again. Rebooting doesn't seem to trigger the problem, interestingly enough. It only seems to appear on a cold boot.

To top matters off, I've already had a battery die on me with this mouse, and I've only owned it for about 7 months. The second battery I installed is also nearly dead, according to the Logitech software. I could go for a couple of years on a single battery using my previous Logitech mouse, so this is a real disappointment. Many Logitech mouse models have poor reviews at Amazon, indicating to me that they've clearly dropped the ball on their quality control.

I've ordered a Kensington wired mouse to replace this one, figuring that going back to a wired model will obviate these types of problems. Hopefully a different brand will provide me with an improved experience. I'll report back once I've received the new mouse (it should be here this weekend) and put it through its paces.