I am grateful that I have meaningful work to do today. I hope I can get it all done.
VBA will never die
I spent all day coding in VBA for work. I’m creating Excel templates for data submissions. These templates need (at least I think they need) data validation routines that the people filling them out can run. Those routines will help prevent some data quality problems down the line.
The only tool for the job to code those routines is VBA, which is bar far the oldest language I code in on a regular basis. It is creaky, feature-limited, and its runtime is rather unstable. But if it works well enough for federal agencies (I have seen some data input forms in my time), it will work for me.
I used to think VBA was a trash language, and only trash code could be made from it. Once I learned I was stuck with it for certain tasks, though, I tried to make the most of it. Now I treat VBA like the proper object-oriented language it is. The result is that I have a lot more fun writing it, and I think that the code is easier to debug and modify in the future, too.
I keep my code clean. I keep methods as short as possible. I use long, descriptive names for methods, classes, and variables. I structure the code into classes extensively. I create classes for intermediate data structures to make other parts of my VBA code easier to understand. I refactor my code into numerous smaller classes when I find I am writing too many, or overly complex, private methods. I create and use factories to create and set up objects. I apply the principle of least privilege everywhere. I am pedantic about whether arguments are passed by reference or by value. I even use interfaces sometimes, too.
The result is code that is rigorously structured—perhaps hilariously so to the next person who will look at it. It is unlike any VBA code I have ever seen before, but it is probably a lot like many VB6 applications written in the early 2000s.
Chess against humans
Correspondence chess
Several days ago, @canion challenged me to a game of chess—basically correspondence chess—on chess.com. I’m pretty sure he is beating me right now, but we are just in the middle of the game, so we will have to play it out to be sure.
Simultaneous online play
Tonight I played a real-time game against someone else on chess.com for the first time. I won! Except for the one, slow game with @canion, I haven’t played against a real person in chess for about 20 years. Humans are less predictable than bots, which makes things interesting.
I also found the post-game statistics on the chess.com website to be very interesting. Apparently in my game tonight I made 4 mistakes and 8 blunders, and had 3 missed wins. That means I’m pretty bad at chess! That makes sense to me, considering I just re-started playing about a week ago. To get better, I should probably play more games and then analyze what went wrong in them to figure out what my weaknesses are.
In person play…someday soon
Today I ordered a chess set today—a nice, wooden set with weighted pieces that completely outclasses what we have know and the chess set I grew up with. The board has labeled ranks (1-8) and files (a-g), which will be great for teaching my family how to play. It folds in half and has internal storage for the pieces. It also has two extra queens. No chess set that I’ve ever seen had extra pieces to account for pawn promotion, so this set feels luxurious to me. I promised my wife I will use it to teach her how to play. My kids may be interested, too; I don’t look forward to losing to a four-year-old and a nine-year-old, though!
Long division
I’m pretty sure I re-learned long division tonight as I helped my daughter through her homework assignment.
That was a skill that bedeviled me when I took the GMAT twenty years ago. The GMAT, at that time at least, did not allow for the use of a calculator. To make it worse, none of the figures on the math problems divided evenly. Many of the math problems were painful to get through, not because I didn’t know the math, but because I could not remember how to calculate the final answers with long division. At the time, I was a recent college graduate, and I hadn’t done long division since the seventh grade. I’m pretty sure I got a bunch of questions wrong because I had forgotten how to perform long division. In the end, my math score paled in comparison to my language score, all due to me not remembering, or at least reviewing, long division.
I got A’s and A+’s all throughout business school. I concentrated in finance. Never once did I have to perform calculations without a calculator. Sometimes life—or at least the typical qualification exam—is not fair.
⌨️ Having trouble adapting to the Planck keyboard
I have been thinking that my goal to replace my work keyboard with the Planck EZ Glow—a 40-key ortholinear keyboard—has been a bust.
I tried to learn the Colemak-DH layout and customize the heck out of the board. I was fairly successful at both of those things, but not successful enough to feel comfortable typing in Colemak-DH all day long. I stumble on some of the letters, like B and K, and otherwise make a lot of mistakes. I also find the
Today I decided to change the layout back to the Planck EZ default, which is a QWERTY layout, and then tweak the “adjust” layer into a navigation layer. What I discovered is that my mind defaults to Colemak-DH when I use it, which means I can’t type in QWERTY on it anymore, and I can’t type on it well enough in Colemak-DH, either!
I am not ready to throw in the towel yet. I’m going to try to soldier on with QWERTY this week and see how it goes.
We lost power for the second night in a week. I’m not sure what’s going on. My kids do not think it is as fun as I did when I was young.
Another office setup revision
Late tonight I reconfigured my desk setup for the umpteenth time. The main reason is that my last setup revision, which moved my monitor forward and my keyboard and mouse to a pull-out drawer under the desk, left my headphone and stereo amps in a no-mans-land behind my monitor, completely out of reach.
My desk is strange, and I wish I had one or two normal, five-foot-wide rectangular desks in its place. I have a corner desk that is not nearly as wide as I would like, though it does connect to desktop areas of varying utility along each side. (Imagine a V-shaped desk, where the main seating area is at the apex of the V, with a secondary desk area on the left, and a cabinet on the right, all connected together.)
I am planning to add a second monitor to the main area that I use for work. Unfortunately, it is unclear how exactly it would fit comfortably there, but I went ahead and ordered a new monitor anyway. (Both monitors are/will be 4K 27-inch displays.) My plan is to orient it vertically (with a downward tilt so I can read it) to the right of my current monitor. It may look a little weird, and be less useful for me to use on that side, but I don’t have anywhere else to put it.
Oddly, for this setup I moved my work laptop onto the floor. It’s actually on a little five-inch-high shelf I made right that sits on on the floor under my desk, far enough from my chair that I cannot kick it. Fortunately, you can’t see it or the multitude of wires connecting to every side of it, unless you crawl under the desk. I’m sure I will have to do that occasionally to reboot the laptop, but that won’t be too often, and has always been a pain for me to do anyway.
I moved my headphone dac/amp stack right next to my Mac mini, which has its own setup to the left of my work computer’s monitor-and-keyboard setup. Because the path for headphone cords no longer crosses over my keyboard or mouse at either computer, I will be able use it again. (I haven’t been able to use it since the last revision to my desk setup.) I really look forward to that.
My two laptops (one a very old MacBook Pro, the other a relatively new Dell running Windows 11) are now in a drawer. I removed their chargers from their power strip, and they now reside neatly in labeled bags next to the laptops. I just don’t use them that much since I got my Mac mini, and I never plug them into a monitor. It just makes sense for me now to consider them as portable, and to pull them out when I need them and hide them the rest of the time.
Also as part of this revision, I put my high-speed Epson scanner away in a cabinet because I never use it. It’s s shame, because it is very fast. Unfortunately, it isn’t that useful for my scanning needs because I don’t have stacks of letter-size papers to scan. Instead, I usually have a bunch of irregularly sized papers that require a flatbed banner (which I have as part of my multifunction printer).
Now that I am done, I am happy again with it. Everything looks tidy and functional. Adding the second monitor to the work setup will be a challenge for another night.
A miracle
Digital media is a miracle. It is infinitely reproducible with no loss of quality. The internet and all the devices we have make sharing digital media less expensive, on a marginal basis, than was possible via any other technology that came before it. We have invented a way to make some resources—like art and entertainment—effectively unlimited and nearly free.
We take it for granted now, and moneyed interests are busy trying to dismantle it with blockchains as I write this, but I think we should all step back sometime and consider how incredible and wonderful it is. The miracle of digital media isn’t that it can be made finite; it is that it is infinite. We should embrace that miracle rather than try to replace it with something mundane.
Chess
Thanks to all the checkers games I have been playing with my kids, my mind has turned to the other, better game you can play with the same board: chess. I have been enjoying playing lots of games on Chess.com’s iPhone and iPad app, which is part of Apple Arcade. The chess app has an assortment of bots with various skill levels to play against. I quickly plowed through the beginner bots and the first three intermediates. I think that my chess, as someone who has not played chess in 20 years, is probably around 1,000 right now. (That’s the beginning of the “intermediate” level.) I would have to play some real opponents online to find out for sure, and I am not ready to do that yet. I still make too many mistakes, and win too many of my games by clearing the board almost entirely, which doesn’t seem right. I must need more study and practice.
Chess is the only board game I find addicting. It is so addictive to me that, when I first got really into it, I had to quit after a few months. When I was 21, I started playing chess via the ChessMaster game on my PC, which had an excellent teaching mode. I then started playing real people on a chess website that was popular back then. I played many, many games each day. I was pretty good. I would win most of the games I played, presumably against beginners and intermediate players like me, but sometimes I would get beaten soundly. Soon, I couldn’t stop thinking about chess and was playing chess games in my mind all the time. I was losing sleep and couldn’t concentrate on my studies. I had to stop cold turkey, and I never picked it up again until now.
I’m finding myself becoming addicted again. I’m playing games on my iPhone and my iPad whenever I have a few minutes to myself. I am watching YouTube videos for chess instruction. I am thinking of doing daily chess puzzles on my phone, too. So far chess has not taken invaded my thoughts or disturbed my sleep. Then again, I did play a couple games on my iPad instead of reading in bed last night. At any rate, it is fun, and I wish my wife knew how to play or was eager to lean.
web3
I advised a colleague today to research web3, because I think it may be the most interesting InsurTech technology of the year. I don’t think that glomming cryptocurrency and smart contracts onto the web is a good use of technology at all. The idea is especially dubious, and that is the reason it is interesting to me. I honestly think that web3, along with the cryptocurrencies that make it possible, are based on a long con.
Web3 appears to be something to make cryptocurrencies, which are useless—except as a speculative asset or a way to pay the criminals who ransomware-attacked you—useful. Web3 will require you to have a digital wallet to pay for and log into any website with a web3-type paywall. The rest of web3 is just another name for smart contracts, which—as far as I can tell—are an interesting idea that has not caught on very well in real-world applications.
Perhaps the scope of both my research and my imagination is too narrow, but I don’t think web3 is going anywhere outside the venture capital community, at least not for a very long time.
Double Commander
I am on a mission to replace Far Manager, which is a Windows file manager that I really love, and have used for over a year. Far Manager is a text mode file manager that has been in development since the 1990s. It is a lot like Norton Commander, which I used briefly in my DOS days. I like how fast the UI is, how easy it is to navigate the filesystem, and also how easy it is to read the file and folder names in text mode.
Unfortunately, it has a few drawbacks that have been driving me crazy. First, opening Visual Studio Code from it, which I have to do all the time, will often mess up the UI and require a restart. Second, the keyboard shortcuts—many of which I have memorized—are bonkers. The left and right shift keys act as completely different modifiers, and the left and right control keys act the same way. This is not a problem for my standard ANSI keyboard, but I am trying to move to an ortholinear keyboard which doesn’t have two shift keys or two control keys, so some of the functionality I rely on is inaccessible.
Today I found another orthodox (two-panel) file manager that runs on Windows, has a full graphical UI, and is very, very customizable. It’s called Double Commander. Life Far Manager, it is free, and it has the two-pane interface I love. Unlike Far Manager, you can customize nearly every part of the user interface, including all the keyboard shortcuts. I was able to pare down the default toolbars to a minimum, color the interface to have white text on a navy blue background, and learn the few keyboard shortcuts I need to know without any trouble. Prior to learning about it today, I thought I had tried all the orthodox file managers for Windows. Double Commander is my favorite of the bunch.
Since I started intermittent fasting a few days ago, hunger feels less like a had headache and more like disappointment. So far I am doing pretty well with no breakfast, a cheese omelet and coffee for lunch, and a low-carb (but certainly not no-carb) dinner.
🎬 Nobody
Nobody is a surprisingly good action movie. It nails everything there is to nail about the action genre. Specifically, the writing and editing are top notch. The story is set up with great efficiency, and every set-up is paired with a call-back later in the film, which is very satisfying to see. Also, Bob Odenkirk’s acting in it is fantastic.
I will admit that it does play a little like a mashup of The Accountant and John Wick, but I liked it better than either of those two movies that share its genre.
Checkers
My kids are really into playing checkers since winter break. I have played a lot of games with my son and daughter in the past week or so. To get a better handle on the rules and strategies, I also played some games alone on my iPhone (there is an Apple Arcade Checkers game).
Checkers is a game that, until last week, I had not played more than once or twice since I was five. I’m pretty sure I read the rules the first time about a week ago on my son’s checkers set. I never knew that you are forced to capture the opponent’s piece (or pieces) if the opportunity to capture them arises. I don’t think my father or grandfather knew that. I mostly remember card games becoming far more interesting to me soon after I learned how to play (or, actually, not how to play) checkers.
I have realized that the game is deeply flawed. Many games reach an endgame state with a few pieces left (mostly kings) and a wide open board. At that point, unless your opponent makes a mistake, it is impossible to win. Of course, kids and inexperienced players make mistakes, which makes the game more fun. I am teaching my son and daughter checkers strategy when I play with them, and intentionally making mistakes and showing them how the opportunities to jump multiple pieces occur.
I have starting hinting at my kids to play together, too, because they would be on more or less equal footing with each other. The idea hasn’t sunk in yet. Of course I will still play with them, but they have more time available to play.
I should never have bought my daughter an iPad with only 32 GB of storage on it.
I never imagined she would use it as a camera and fill it with photos and videos. iCloud Photo Library has been enabled from the start, and we have plenty of cloud storage space. Unfortunately, Photos will not free up space no matter what I do. If you delete a photo or video from Photos, it is deleted everywhere, so that is not an option.
Tonight, as I update iOS via tethering the iPad to my Mac, I am weighing my next move. Do I wipe the iPad and set it up as new, which would at least forestall the problem? Or do I simply turn off iCloud sync, wait a while for the photos on the device to be deleted, and then turn it back on? I can’t remember if I have tried the latter before. I think I may wipe the device because my daughter’s notes app has 39 notes and is taking up over a gigabyte of space, too. Strange things are afoot.
I have a big, scary pile of “important” papers in my office that I have started scanning and shredding this week. It’s something I don’t do often enough. I am finding papers from 2019 at the bottom of the pile. 😳
The Republic
Last night I started reading Plato’s Republic again. I have been unsuccessful finding a good book to read start-to-finish, and have had a desire to read something intelligent for a change. Naturally, I decided to return to first principles and go back to the dawn of modern Western thought.
I read through Book 1 last night and enjoyed it very much. I had read it—or at least large portions of it—when I was a freshman in college, in a very eye-opening seminar course on justice. I may go back to that syllabus and re-read more of the great works on it.
Work day two of my 16:8 (or no breakfast) fasting regimen has been a greater success than yesterday. I have been more alert and more productive at work, and have not been hungry since before lunch yesterday.
Still no snow where I live.
Intermittent fasting
I started 16:8 intermittent fasting a couple days ago. It basically means I skip breakfast, then eat a normal lunch, dinner, and maybe snacks, between noon and 8 PM. So far, during the tail end of my winter vacation, it has worked out all right. But today is my first day of work in almost two weeks, and I feel very rusty. I don’t know if I am hungry, or if being away from work for so long has slowed down my mental processes. I am looking forward to lunch soon and I hope it gets better.
An Omicron snow day
The Omicron wave has been a source of concern for my family and my town. School systems north of us have pre-emptively closed schools and have gone remote for the week. The school superintendents where I live are adamant that they cannot (or, really, will not) close schools unless (or until) there is a breakout in a particular school building. Because schools have been closed since December 24, there can be no outbreaks inside particular schools.
Early this morning, all the schools in my town were closed for a snow day. Snow is in the forecast, but it has not snowed yet. I think the superintendents took advantage of an iffy weather forecast to close the schools for the day, to push off the whatever outbreaks occur for another day. Parents in town seem to think that the closure has more to due to with teacher- and bus driver shortages than with the weather forecast.
🎉 Happy fifth anniversary to the Micro.blog community! I am very grateful that it exists.
“That which can be asserted without evidence can be dismissed without evidence.” —Christopher Hitchens
I saw my best friend for the first time since the pandemic started (since February 2020 really). It was great fun and I wish we had gotten together sooner.