Does anything melt faster than ice cream? An individual who I will not publicly shame here left the freezer open a crack for a few hours. Most everything was still frozen solid, but the ice cream was three gallons of ice cream soup. At least it’s still decent when it freezes again… (What, you don’t have three gallons of ice cream in your freezer? Maybe you don’t live near an awesome dairy that sells amazing vanilla ice cream in three-gallon buckets for $20.)
I started the process of returning my wireless router to the manufacturer this weekend. Last fall, my old wireless router died and I decided to spend a little extra to get better performance, especially streaming HD video on the other side of the house. I wasn’t prepared to invest in “mesh” – my house just isn’t big enough – but I did spend a bit extra on a TP-LINK Archer C2300. Maybe not enough extra, because it has been regularly overheating lately. It gets so hot that it reboots, frequently, unless I point a fan at it. So, for $15, they will send me a replacement and provide a shipping label for me to send this one back once I get it. Hopefully it all works out in the end and the new one doesn’t overheat as well…
We watched Lego Movie 2 last night. It had its moments, but not nearly enough of them. It’s never a good sign when you get 20 minutes into a movie and it feels like it’s been an hour. We got through it, at least.
I haven’t been blogging much lately, because all I wanna do is write some code. My work assignments are engaging enough that I’m still thinking about them when I’m not at work, and I’ve got at least three personal projects I’d love to work on, not the least of which is finally shipping version 2 of Facility. But more important life things have a way of crowding out extracurricular coding time.
I recently mentioned that I’ve been reading some of the most popular fantasy series. I didn’t make it through The Sword of Shannara trilogy, but I really enjoyed the Mistborn series by Brandon Sanderson. The Earthsea Cycle was pretty good. The Kingkiller Chronicle was unique, but I didn’t enjoy as much as I was supposed to. I liked the The Way of Kings, also by Brandon Sanderson, but the books in that series are really long and I haven’t yet found the time to read the next one. Finally, I just read The Black Prism, by Brent Weeks, which I enjoyed, and I’m sure I’ll continue the series at some point, though I prefer Sanderson. Anyway, that concludes a whirlwind tour of my experience so far with fantasy novels.
As I was saying, I didn’t read many fantasy novels as a kid. I read through Harry Potter when I was a young parent, but through the eyes of my adolescence, knowing how much I would have loved it. I read the Inkheart series at some point, which was okay. I eventually read and liked the Hunger Games series, mostly because it was crazy popular and I knew my oldest daughter would love it. I really loved The Wingfeather Saga, by Andrew Peterson, which I highly recommend. I also started The Green Ember series, which I didn’t like as much, but still want to finish some time. I’ve bought and read many of the Tolkien works that have been published since his death, which I think are great, but require high levels of Tolkien fandom to really appreciate. More recently I’ve been reading some of the most highly acclaimed fantasy series, but this post is getting long, so I’ll talk about that later.
I’ve always been somewhat interested in the fantasy genre, but I actually didn’t read much as a kid, so I mostly enjoyed it in movies and video games. I did read some fantasy novels when I was young, particularly The Chronicles of Narnia and The Hobbit. I finally got through The Lord of the Rings when I was a bit older (now my all-time favorite novel). I’ll talk about the books I’ve read since in a future post, but while we’re on the subject, when it comes to The Chronicles of Narnia, I’m on Team Publication Order. Isn’t everyone?
My email inbox has been a little less crowded since I started using Octobox. It presents all of my GitHub notifications in a handy user interface, making it easy to browse what’s new and archive it all when I’m done. I turned off my email notifications when I started using it, so I just have to remember to visit the Octobox website every so often to catch up.
I know this isn’t exactly profound, but I do love the look of a freshly cut, vibrantly green lawn. Mowing once or twice a week can get to be a pain, not to mention watering and edging and trimming and fertilizing and weed-killing and moss-killing. But it’s all worth it. I think.
I’m pretty excited about the upcoming Windows Terminal. The standard Windows command prompt is pretty terrible, so I’ve been using ConEmu, but I would love an official tabbed console that I don’t have to install. I’m not so excited that I’m going to build it from the source code, but I will gladly install the first preview that ships to the Microsoft Store. (I’m also eager to use it with the new Windows Subsystem for Linux that will be released this summer!)
Wow, I forgot how hard it is to prioritize blogging. Is this the beginning of the end? Too soon to tell.
I won my first tennis match today since my college days. That’s assuming I actually ever won a tennis match in my Calvin College P.E. class, which I certainly don’t remember doing. But today’s match was definitely my first win against a 15-year-old girl. #winning
I read and write code in a proportionally-spaced font rather than a fixed-width font whenever possible. I find that it reads more naturally and I like seeing more code per line. Fixed-width fonts are necessary for vertical alignment; fortunately for me, I dislike vertical alignment anywhere but indentation (it’s a pain to maintain and I don’t personally find that it usually makes the code easier to read). In Visual Studio I use Verdana 8pt (and the more compressed Tahoma 8pt for tool windows). Visual Studio Code doesn’t display it as crisply, so I use Verdana 13px there. When I must use a fixed-width font, I prefer Consolas.
One of my pet peeves with user interface implementations is showing zero results while loading. Basically, when user interface is first loading, or while the app is working on a requested operation, we should be careful to not give the impression that there are zero search results, or that they have no data, or that the operation failed, etc. Sometimes the operation takes a while, sometimes the browser is slow, et cetera, and we should not mislead the user while they wait. I understand why it’s often easier to write the code that way, and we might not even be able to see the misleading user interface on our fast development machines with high speed Internet connections, but we should take the time to get it right and avoid unnecessarily confusing or panicking the user.
If you know me well, you won’t be surprised that Due is the most important app on my iPhone. The killer feature of Due is its nagging persistence. It doesn’t just ding/buzz at me once; it bugs me every minute until I acknowledge it. Because I’m liable to completely miss the first alert, or ignore the second, but eventually I will attend to it. And if I’ve set an alarm, I need to attend to it. Basically, if I need to remember to do something at a certain time, it goes in Due, and if I forget to put it in Due, I’ll probably forget to do it. I can reduce the nag to 5 minutes or even 60 minutes for less pressing reminders. My family is especially grateful for the “Leave work” alarm that goes off at 4:27 PM every weekday; otherwise, who knows when I’d remember to head home…
My blog is a perfect place to admit that I prefer tabs, not spaces. The tab character is designed for indentation and avoids the possibility of partial indentation. Modern text editors correct for most of the issues with using spaces as indentation, so I’m honestly happy to adopt whatever standard my team prefers, but for my own code, I still love my tabs.
I’ve been using Microsoft Windows since I first installed it from MS-DOS. Which is to say, I’m a PC. (I loved those ads, which aired 2006–2009.) I had a Mac in my office once upon a time, but I think it disintegrated from disuse. I can’t really say anything bad about Macs because, well, I hardly ever use one. Though the reversed mouse wheel direction is comically frustrating for Windows users that sit down at a Mac. And I still think menus are better at the top of the window, not the top of the screen. And laptops should have touch screens. Of course, Windows has its own share of annoyances. To each his own.
Today I struggled a bit trying to use a GitHub personal access token to push a commit to a GitHub Enterprise repository. I managed to get it to work right before I left for the day, which is always nice.
I was glad to see that at least one of my ones of readers caught my reference to It’s All About the Pentiums by “Weird Al” Yankovic. The lyrics and video are a bit PG, but it went viral among computer nerds like myself back before going viral was a thing. It’s full of hilariously obsolete culture references, not the least of which is “I ain’t afraid of Y2K,” which, as it turned out, he had no need to be.
Microsoft recently shipped the latest version of Visual Studio and I’m looking forward to installing it. I suspect I’ve used every version of Visual Studio since the first, and Visual C++ before that, though my memory gets fuzzy going that far back. I’ve always been impressed at how well Microsoft has served its developers over the years, and I’m especially glad that they’ve embraced open source in recent years. There have been plenty of missteps along the way, but overall I’m glad that I’ve spent so much of my career steeped in Microsoft technologies.
If in Christ we have hope in this life only, we are of all people most to be pitied. But in fact Christ has been raised from the dead, the firstfruits of those who have fallen asleep. (1 Corinthians 15:19-20)
I lost my glasses today while I was at my daughter’s tennis match. I had swapped them for my sunglasses and hung them on my shirt collar. A bit later, I felt for them and they were gone. My glasses are not cheap, and they are not optional anymore, at least for reading and coding. I backtracked, figured out why I must have bent over and dropped them, and found them resting comfortably in the grass. So today I am thankful for small mercies.
Of the many things said to Jesus as recorded in the Gospels, three are especially meaningful to me. The last was spoken to him on the first Good Friday:
Are “life hacks” still a thing? Here’s mine: set out the vegetables before dinner is ready. Once dinner is on the table, it’s hard for the veggies to compete with carbs and fat. But before dinner, hunger is sufficient to make even healthy vegetables look enticing. Of course, if you put chips out before dinner as well, all bets are off.
I’ve always been a stickler for coding style. In fact, many (many) years ago, my boss deputized me as the code police and even gave me a sheriff’s badge. I have since mellowed considerably on the finer details, but I still insist on consistency. Like many software developers, I have a knack for noticing inconsistencies, to the point that they distract me when I’m trying to understand or modify code. I’ve still got my personal preferences, but I can cope with a codebase that deviates from them, at least if it does so consistently.
I don’t own many printed books, but one thing I’ve kept around is The Complete Calvin and Hobbes. I don’t know how long it had been since the last time, but I just read through it again and thoroughly enjoyed it. I loved reading newspaper comics growing up, and Calvin and Hobbes was easily my favorite. It’s been almost twenty-five years since Bill Watterson retired the strip, but his criticisms of modern society have only gotten more relevant. And, of course, it is hilarious.
When I’m writing code, I give myself plenty of time to think about naming. Good names are one of the best ways to produce code that can be read and understood. In fact, I’ve come to believe that good names make most code comments unnecessary. I try not to be unreasonable about it – not every name is worth pondering for 15 minutes. But I do take my time with names that can’t be easily changed – repository names, the public API of published libraries, web service APIs, etc.
It’s hard to predict what congregational music will resonate with a church, but we sang Behold Our God pretty enthusiastically today, especially at the chorus:
Behold our God seated on His throne
Come, let us adore Him
Behold our King! Nothing can compare
Come, let us adore Him!
In a rare intersection of code life and real life, I used my mad programming skills to solve an elementary school problem that my wife told me about (she’s a Kindergarten teacher). They want to rearrange the K–4 classes into 18 one-room schoolhouses where pairs of kids from each classroom leave for another classroom that has kids from every grade. It took me a bit longer than I’d hoped, but I wrote a little program that generates 18 pages with the names of the students that will come and go from each classroom. It was fun!
LINQPad is an indispensable tool for C# developers. It’s great for experimenting and for one-off data munging. I even used it this weekend to write a script for my wife: it reads data from a text file, runs a basic brute-force algorithm, and builds a Word document from the results. The premium version of LINQPad is totally worth it (especially if your employer foots the bill).
I’m not one for horror movies, but I took a chance on A Quiet Place, since I’d heard so many good things about it. I enjoyed it. Interesting, suspenseful, optimistic. A little unbelievable at times, but you get that. Didn’t linger on disturbing ideas or images. Recommended.
Tonight Julie and I will start season 8 of Blue Bloods, a TV show about the close-knit family of a police commissioner of New York City, his cop sons, and his prosecutor daughter. We like to wind down in the evening with one episode of television (we are decidedly not “binge watchers”) but it isn’t always easy to find a show we both enjoy. I’m always impressed at how many story threads get started, how many cast members get screen time, and how neatly everything gets wrapped up within 40 minutes, with the family all together for Sunday dinner at some point.
Workflowy is by far the website that I would miss the most if it was gone, both in my personal and my professional life. It is the perfect note-taking tool for my brain. I have always loved outlines and bullet lists, and Workflowy combines the two into an outstanding user interface for creating, editing, finding, marking as completed, and even sharing with others. Even if I didn’t need the features of Workflowy Pro, I’d pay for it anyway because it is the productivity tool I was always waiting for.
SmartGit has been one of my favorite development tools since we moved from Subversion to Git for source control. You’d think that someone who has been tinkering with computers for 35 years would be comfortable on the command line, but memorizing arcane command-line syntax is just not something that my brain is good at, so I love a good user interface, and SmartGit provides an excellent one for Git, supporting just about every feature of the
git command line tool, in a way that I can understand and remember.
I love hymns. Not primarily for the style of music – I can enjoy almost any style of music – but for the powerful spiritual messages they convey. Words set to music engage my mind and soul like nothing else. Today we sang When I Survey the Wondrous Cross, one of my favorite lenten hymns.
When I survey the wondrous cross on which the Prince of glory died, my richest gain I count but loss, and pour contempt on all my pride. … Were the whole realm of nature mine, that were a present far too small. Love so amazing, so divine, demands my soul, my life, my all.
I just added an Atom feed to this blog. Which makes this as good a time as any to mention Feedly, one of my favorite websites. Remember Google Reader and RSS feeds? Feedly filled the gaping hole that Google Reader left behind, and there are still plenty of blogs and websites out there that support RSS/Atom feeds. It’s a great way to keep tabs on a large number of websites without having to visit them all. One of these days, the number of websites with feeds that I want to follow might drop to the point where I don’t need it any more, but for now I find Feedly very useful.
Every blog needs a first post, so here’s mine. My crazy idea is to blog one paragraph a day. Hopefully keeping it to a paragraph will make such a thing actually possible, but we shall see.