Home Office Ergonomics

When UMBC abruptly switched to full-time telecommuting back in March 2020 at the beginning of the pandemic, I had to make some adjustments to my home office setup. Prior to then, I never telecommuted, and our basement home office sat mostly unused. Our printer is there, and I used to have a desktop Linux server there as well, but I now use a laptop for most all of my computing needs at home, so I got rid of the computer in favor of a Raspberry Pi to run the printer and a couple of other things.

As I settled in to the new routine, I slowly morphed my home office into something that worked well for me ergonomically. I brought my iMac home from work, as well as a Varidesk to give me a sit/stand option. Several months later, I bought a Lifespan under-desk treadmill, which necessitated some additional changes. I had to prop the Varidesk up on 2x4s, because it didn’t have quite enough extension to account for the treadmill’s extra height. I also bought a Kinesys Freestyle 2 split keyboard so that I could get my hands a little farther apart, as it felt unsteady typing on a standard keyboard while walking. This setup served me pretty well for quite a while.

This spring, we got word that we could finally return to the office. Starting in July, I’ll be splitting my time about 50/50 between home and office. That means I need to get an ergonomic work environment set up in both locations, which means more changes. I’ll be taking the Varidesk back to the office, so I needed another sit/stand solution so that I could continue to work on the treadmill at home. I thought about purchasing an identical Varidesk, but quite frankly, with Varidesk, you pay a lot for the name. There are other products out there that are just as good quality for less money. Also, I wondered if maybe I could find something that wouldn’t require 2x4s to get it up to the proper height.

To make a long story short, I ended up buying a Flexispot M3. While the quality is by-and-large the same as the Varidesk, the Flexispot is built differently. It uses an ‘X’ shaped lifter system, vs the ‘Z’ lifter on the Varidesk. While the Varidesk surface moves toward you as you raise it, the Flexispot moves straight up and down. It seems a little bit more stable when fully extended, and perhaps more importantly, goes up a couple of inches higher, which means no more 2x4s.

The Flexispot has a larger top desk surface than the Varidesk, but a smaller keyboard tray. The keyboard tray also sits a little bit lower relative to the upper surface. The Varidesk’s tray was at about the perfect height for me, so I was a little bit worried that the Flexispot’s might be too low. I was also concerned that I might not have enough room for my mouse. The only way to find out is to try it, though, so I went ahead and set everything up and started my usual walk-and-work routine.

It turns out that my keyboard height concerns were well-founded. With the Flexispot fully raised, my screen was at the perfect height, but the keyboard felt too low. Surprisingly, though, in spite of the minimal space (there isn’t even enough surface for a standard sized mouse pad), I’ve had no problems using my Apple Magic Mouse. It turns out that the Magic Mouse only needs about an inch to inch-and-a-half in all directions to be fully usable. I’m able to work effectively with it, and have never had the issue where I run out of real estate and have to reposition the mouse.

I played around with the keyboard height for a little while, propping it up on 2x4s, loose-leaf binders, and whatever else I had on hand, just trying to figure out what would work. None of these MacGyver-esque hacks really worked all that well. When I tried to raise the keyboard up, I found that I lacked space to rest my palms, and also couldn’t see the top row of function keys, because they were hidden by the upper part of the desk. Eventually, I bought the VIP3 tenting accessory for my Kinesys keyboard. It includes integrated palm rests, as well as risers that raise the center edges of the keyboard halves, allowing for a more ergonomic wrist position. That got the keyboard up to a height where it felt comfortable to type. Also, the palm rests allowed me to slide the keyboard toward me far enough so that I could see the top row of keys.

This setup seems to work pretty well, but I’m at the top of the Flexispot’s height range, and to be honest, the keyboard still feels a tiny bit low when I wear shoes. Down the road, I may yet need to shim the desk up a little bit to get things perfect, but I’m going to try it this way for a while before making further adjustments. Overall, I am happy with the Flexispot M3, but do kind of wish the keyboard tray height could be adjusted, as it would eliminate this one issue.

I’m sure I’ll be writing about this some more once I’m back at the office and settling into my new routine.


I have not been motivated to post much here recently, because quite frankly, life has been kind of repetitive over the past few months. I wake up, eat breakfast, bike/walk/hike/run/climb/etc., work, sleep, repeat. Not much to write about, but there are signs that normalcy is slowly starting to return. In a few weeks, our entire family will be fully vaccinated against COVID. Work has told us that we can return “en masse” starting July 6. The weather is warming up, and we’ll soon be swimming, and sometime in the next week or two, I hope to take the kayak out for the first time in 2021.

The return to the office is going to be the biggest shake-up in my daily routine since we all became instant telecommuters in spring 2020. There are things I like about working from home, but I really need to get back to the office just for a change of scenery. I also have missed commuting by bike. I can’t say exactly how my weekly routine will eventually shake out, but I think I’m going to start by going to the office 2 days a week and working from home the other 3. One of the challenges is going to be getting a proper ergonomic workspace set up in both places. I’m going to take my VariDesk sit/stand desk back to the office, which means I’ll need to get a standing desk for home to use with my treadmill. I’ll probably also need a new iMac. Lots of stuff to think about, but I’ve still got several weeks.

The other big news is the emergence of the 2021 Brood X cicadas. It seemed like they got a slow start this year because the first half of May was so cool, but I don’t have an exact recollection of when they started emerging in 2004 (let alone 1987). However, they’re out now, and making their presence known. A lot of “early bird” Brood X stragglers emerged in 2017, and a geocaching.com log I wrote on 5/25/2017 mentions that they were quite loud in Columbia on that date. So, maybe they’re more-or-less on target after all. I have a lot of memories of periodical cicadas from 1987 and 2004. The cool thing about them is that they provide reference points for different stages of life. In 1970, I was an infant; in 1987, a teen; in 2004, a young parent; and this year, a middle-aged father of two teens, one about to start college. Next time around, in 2038, I’ll be retired, and my kids will be in their 30s.

I’ve read up a lot on perodical cicadas over the years, and know a lot more about them than I did last time they showed up. I’m trying to learn the differences between each of the 3 species. I have noticed that the so-called “pharaoh cicada” (Magicicada septendecim) begins singing earlier in the day than the other two species. My son likened the sound of these cicadas to the sound the rails make at a train station when a train is approaching. The other two species (M. cassinii and M. septendecula) sound somewhat similar to each other, and kind of like a cross between a weed-whacker and a garden-variety summer annual cicada. These two species seem to begin singing a bit later in the morning than M. septendecim — after the sun is up and the day is warming up. It is hard to believe that we only have about 6 weeks with these guys before they die off and the 2038 brood hatches and burrows underground. I will miss them when they’re gone, but look forward to seeing them again later in life.

Winter Routine

We’re coming up on a year since everything shut down in mid-March 2020, so this is the first January that I’ve been full-time working from home. For most of 2020, my morning routine several days a week was to take long bike rides before work. I would get out of the house at around 6:30am and ride for anywhere from 2 to 2.5 hours. I kind of suspected that the routine might change a bit come winter, and indeed, it has.

The first big change was in October, when I bought an under-desk treadmill. I had been considering getting one of these for a couple of years. I had been using a standing desk regularly at work, but quickly found that static standing didn’t work for me for long periods of time. I had to be moving around. While standing, I constantly found myself pacing around the office, wandering around the hall outside my office, etc. On the other hand, I could hike for hours and hours on end with minimal breaks. So, I figured that if there was a way to walk while working, I’d be able to stay on my feet and out of the chair for longer periods of time.

When the pandemic hit and I started working from home full-time, I found myself getting less exercise. My biking mileage didn’t drop, but it was all concentrated in the morning, vs. a morning and afternoon commute each day. On top of that, I found that I wasn’t getting out for afternoon walks as I used to do regularly at work, and with meetings shifting to Zoom/Webex, I wasn’t getting free exercise from walking between buildings for meetings, either. I needed something to fill the gap, and a treadmill seemed like the perfect answer: I could work and exercise at the same time. The treadmill has lived up to my expectations — I walk on it anywhere from 2 to 4 hours a day, and my average daily step count on work days has ballooned from under 10k to over 20k.

I kind of expected my biking mileage to drop in the winter, and it has, but not for the reasons I initially thought. I figured the cold temperatures would limit me to shorter rides, but so far, this has been another of Maryland’s famous warm, wet winters, and we haven’t really had a true cold snap yet. In actuality, running, hiking, and climbing have been reducing the frequency of my rides. Could be worse, I suppose. It will be interesting to see how my routine is affected if we ever get a true cold spell, or a significant snowstorm, but I’m not holding my breath for either of those things to happen this year.

Xmas Break

It’s that time of year again, when work shuts down at the end of December. Most years, this is a complete break from my daily routine, with a 2-week absence from the office, and all of the usual holiday gatherings and activities filling our family schedule. I always look forward to the holidays, but usually, by January, I’ve had my fill, and am ready for things to get back to normal. It’s definitely a tiring time of year to be an introvert. This year is going to be quite a departure, though. My office is right downstairs in the basement, so I’m not really physically leaving it. We’ll celebrate Christmas with a couple of really small family gatherings, but other than that, the calendar is clear. The “holidaze”, as I’m fond of calling them, aren’t going to seem much different from the daily grind this year, other than the fact that I’m not working — and even that isn’t guaranteed, as I’ll be visiting the “office” occasionally to get some time in on my treadmill desk.

After a couple of mild, dry winters, it looks like we’re in for a wet one this year. I’m not sure if we’ll get much snow, as we’ve been in a “flood and freeze” pattern thus far — warm weather, followed by flooding rains, then a deep freeze, then a warm-up, whereupon the cycle repeats. Occasionally, an ice storm creeps into the mix. We’re due for a snowy winter, so it will be interesting to see if this pattern continues into January.

I’ve gotten myself into a pretty good routine of climbing once a week at Earth Treks. This morning, I climbed 8 routes: a 5.7, 5.9, 5.10a, 5.10a, 5.9, 5.10b, 5.8, and 5.9. Two of these routes were new to me, and the rest I had climbed previously. Most had a moderate amount of overhang, but I did tackle one rather slabby 5.9. 8 is a pretty good number for me for the time I was there, and I cleaned all 8 routes, so I’d say it was a good day. I guess I’m slowly getting better at this. I’ve been alternating between my newly-resoled La Sportiva TC Pros and my Scarpa Force Vs. I like them both. In the gym, I haven’t noticed a ton of difference as far as climbing goes. The Scarpas have velcro closures, and are easier to put on and take off. The TC Pros are lace-ups, but are more comfortable than the Scarpas, so there’s less need to take them off in between climbs. I have yet to climb outdoors with the Scarpas, but it will be interesting to see how that goes. I suspect the Scarpas will end up being my gym shoes, and the TCs will be my outdoor shoes. But you never know.

Tomorrow, we’ll be in the flood phase of our flood-freeze weather cycle, but I’m hoping the deluge will hold off for an hour or two so I can get a run in. If not, I guess I’ll be running Christmas morning. It’s not like the kids get up early any more. 😃

T-Day Week

It’s a short work week, so I’m working on wrapping a few things up at work ahead of the Thanksgiving holiday. Next week, we have our second virtual Shibboleth training class of the year. These seem to be popular, as the last one sold out, and we’re pushing 30 registrants for this go-around. I think we’re pulling in a new audience that we wouldn’t ordinarily see at our in-person trainings. The online format has given us an opportunity to revamp our course and training materials, which was overdue, and we’ve identified some things along the way that we can use to eventually improve the in-person training as well. I still greatly prefer the in-person format (and the travel) but can definitely see us continuing to offer some online training even after in-person resumes.

Early this morning, I rode my regular pre-COVID commuting route out to UMBC and back, which I try to do every week or two. BGE has been replacing gas lines in Relay since late spring, and the workers have dug up and patched (literally) every single road in town. It’s still ongoing, but seems to be nearing completion. I suspect next spring will bring a massive repaving project. Should be nice once it’s all finally done, but in the meantime, I’m glad I don’t have to commute through there every day any more.

Speaking of commuting, two and a half years ago, I bought a new commuter bike. It is a Surly Disc Trucker. It served me well as a 3.5-season commuter bike, until I stopped commuting. Since then, it’s been my go-to bike for road riding, splitting duty with my venerable 2009 Masi single speed. Truth be told, it’s better suited for commuting and long-distance touring than it is for my typical 25-to-30-mile morning road rides. It’s quite the beast, with racks, lights, and full fenders, and it is a great rain bike. But, it’s heavy and kinda slow, and while I still ride in the rain occasionally, telecommuting has made it unnecessary, so I’ve been gravitating towards alternative ways to stay active on rainy days. Once I finally start going back to the office, it’ll be nice to use the Surly for its intended purpose again.


I don’t post much about work on my blog, unless you count the act of getting to and from work on my bike.  This past weekend, UMBC lost power for around 72 hours, and the IT support/admin guys in our area were scrambling around madly the entire weekend, almost 24/7, trying to keep key systems and infrastructure functioning so the University could continue to do business.  Having been a systems administrator for a good spell in the ’90s, I know firsthand what a thankless job it is.  Everyone takes computers and network infrastructure for granted, until it goes down.  When a systems admin does a good job, and everything is working normally, no one notices.  Admins rarely hear from anyone unless something is down or broken. Systems admins are kind of like the white-collar equivalent to the BGE guys who go around restoring power after an outage.  IT infrastructure has become as important as electricity: when it works, it’s taken for granted; when it doesn’t, the world grinds to a halt.

Back in my day, when we didn’t have things like whole-building generators, everything would have just gone down and stayed down during an extended power outage.  This past weekend, save for a few minor glitches, UMBC’s IT infrastructure stayed largely intact and functional.  That’s a testament both to the increased importance of our infrastructure vs. 20 years ago, and the herculean efforts of the support staff to keep everything running.

My role during all of this mess, was just to be available in case one of the services for which I serve as designated babysitter needed attention, as the admins shuffled around the physical hardware to deal with the power issues.  Again thanks to these guys, none of my stuff broke down, and everything pretty much worked as it always had.  If it weren’t for having an unexpected day off on Friday, and the text messages from our emergency alert system, I might not even have known that the power was out.  Remarkable.  If you see one of these guys, make sure to thank them and buy them a beverage of their choosing.

Saturday update

Got a start on winterizing the pool today, with occasional breaks to shoo Andrew off the pool cover.  I drained the water down below the tile line and added chlorine and algaecide.  The water was nice and clean even after a month of neglect.  Wonder if the algaecide I added last month helped.  Anyways, tomorrow I hope to get out earlier and get the bulk of the work done.  Not sure if I’ll get to blowing out the return lines.  We’ll see.

On the calendar front…  turns out Sunbird is not buggy after all as I had assumed yesterday.  Apple’s iCal exhibits similar behavior.  It appears that if I have events with RECURRENCE-ID properties, somewhere there needs to be an event that “defines” the recurrence with an RRULE or RDATE property.  Oracle Calendar’s output is missing this “defining” event.  I thought briefly about trying to “fix” the recurrences by adding RDATEs, etc. to the iCalendar output, but I think that’s more trouble than it’s worth.  I’m just going to try rewriting the recurring events as separate events, giving them unique IDs based on the start date of the event.  I’ll try it out Monday and see how it goes.

Calendaring revisited

It’s been a year or so since I gave up on my home-grown calendar sync setup.  It was nice for awhile, then we upgraded our Oracle Calendar server, it broke, I tried to fix it and didn’t get very far, and that was the end of that.  Well, as it happens, there’s been some recent interest in an Oracle-calendar-to-iCalendar gateway at work, so I decided to drag my old stuff out and try again.  And it turns out, things have improved in a year’s time.  First off, the Oracle Calendar SDK seems to be more reliable.  I used to get lots of internal library errors, particularly when trying to download large chunks of calendar data.  But that doesn’t seem to be happening now (I know, famous last words).  And on top of that, the iCalendar output is much cleaner.  For example, recurring events are now properly tagged with RECURRENCE-ID properties, so recurrences “just work” now without any extra work on my part.  There are still a few little quirky things, but by and large, it’s a huge improvement.

Also improved is Sunbird, Mozilla’s standalone calendar app.  It’s still a little rough around the edges, but it seems much more robust than previous versions.  I’d eventually like to use Sunbird as my main calendaring app everywhere, because it’s cross-platform and it allows interactive editing of subscribed WebDAV calendars (unlike Apple’s iCal).  The only stumbling block is my old, crusty Palm PDA, which only syncs with iCal.  Much as I’ve liked the Palm PDAs I’ve used over the years, I’m wondering if it isn’t time to start thinking about something different.  It’d be great to have something with functionality similar to Sunbird’s, in a PDA form factor.  Never going to get that with something that relies on desktop sync.

Retro coding

’tis been a while.. but I’m currently writing some code (the Student Parking Registration rewrite) that communicates directly with our system of record for SIS, the HP3000 mainframe. I haven’t done this for 6 or 7 years (although I’ve made tweaks here and there, this is the most I’ve done with it since 2000 or so). And I had forgotten how comically antiquated the whole process is. Now, I don’t write code on the HP (God forbid.. it’s all Cobol), but I do interact with a TCP/IP socket-based server that runs on the HP. And, I have to send data buffers over the socket in a format that the HP will understand. It’s reminiscent of FORTRAN, or Assembly Language, or something like it. The HP is very fussy about field width, positions of parameters within buffers, etc. If I’m off by a character, for example, subsequent fields all end up shifted over too far. Suffice it to say, it’s not much like the stuff I’m doing nowadays – Java, PHP, XML, etc. It’s quite nostalgic. It makes me want to go log into the VAX 4000 and run my old 4-bit assembly simulator.

Oh well.. back to work. I’d hate not to finish this, and have 13,000 students unable to be billed by Parking Services next fall. That might affect my next raise…

Kids are back

Just got back from my first outdoor run in what seems like forever, so I’m sure I’ll be nice and sore tomorrow. I’ve really fallen off with the biking (and exercising in general) recently, and I do hope to ride in several more times this year, but this is definitely the time of year when I start to transition from biking to running as my main form of exercise. Which reminds me that I need to pick up a new pair of shoes.

Work has been absolutely insane lately, as it always is this time of year (the kids are back). However this year has been rockier than recent years. myUMBC always gets pounded at the start of the fall semester, and this year we’ve had problems with almost all of our back end systems at one point or another: the HP3000, the Oracle database, and even our enterprise filesystem. myUMBC is kind of like a canary in a coal mine. It relies on a complex, fragile infrastructure of systems and services, and if any one of them goes down, myUMBC is usually the first thing to die. Here’s a rundown of emergency work performed in the last few days to try and keep myUMBC running:

  • Late-night database reconfiguration to make Oracle less of a dog
  • Shuffling Easipipe around to attempt to fix flakiness on the HP3000 (it didn’t work)
  • Reconfigured myUMBC web server to work around IE SSL weirdness
  • Turned off Tomcat clustering stuff that wasn’t working and was possibly screwing stuff up

Things seem to be improved today, with the HP3000 thing the only unresolved issue. We’re keeping our fingers crossed.

On the home front, we’ve got tulip poplar leaves all over the place. I would so love to cut those things down. I guess I shouldn’t complain too much, because they at least waited until the end of August. The drier the weather is, the earlier they start dropping leaves. We’re in a semi-drought now, although it didn’t start until mid-summer. If the entire summer had been dry, I probably would have been dealing with leaves in late July. I really need to get a leaf net for the pool.

And of course, the semi-drought likely will end tomorrow with the tropical system that’s supposed to pass through and give us more biblical flooding. It’s really feast-or-famine with rain around here these days, and it seems like it’s been that way for about a year now. Afterwards I guess I’ll have to mow again, which I haven’t done in quite awhile, and haven’t really missed.

If previous years are any indication, we’ve got at best another month of swimming left. And this year, we’ll be at the beach the last week of September (T-minus 3 weeks). So I guess we should toss Michael into the pool while the tossing’s good. On that note, I’m outta here for today.