Archive: June, 2021

The surprising rebound of ad revenue

posted by Jeff | Wednesday, June 30, 2021, 2:00 PM | comments: 2

Ad revenue from my sites has been taking a gradual dump for years, but last year in the pandemic it got particularly bad because no one was advertising, and traffic to the sites tanked because theme parks weren't exactly something people were interested in when they couldn't visit them. As I wrap up June, I'm shocked to see that the rebound has been extraordinary. After losing money most of last year, things are in the green again. It'll probably take a year to make up for the losses, at least, but it's going in the right direction. Back in the good old days, a decade ago, I could pay my mortgage with the ad revenue profit. We're not back in that territory, but were it not for the previous losses, at least I could make a car payment now.

The raw numbers for June are nuts. CoasterBuzz revenue was up 240% over June last year, attributed to only a 31% rise in page views, but revenue per page was up 160%. The PointBuzz numbers are a little harder to figure out, because last year I moved the forums on to the hosted service and didn't have all of the traffic instrumentation moved over. Revenue I can tell is up 100%, with revenue per page up 180% on 25% fewer page views. I can't exactly explain that one, but it partly has to do with the way forum pages are infinite scroll, and there are more posts being made without refreshing the pages.

For additional context, CB is up 100% in revenue, PB up 20%, compared to 2019 (the last "normal" year), on 26% and 34% fewer visits, respectively. That unequivocally demonstrates a significant change for what traffic is worth these days, and that's an unexpected trend.

To go way back, it's harder to compare because of differences in tooling. June 2021 for both sites is down around 70% in page views compared to 2010, but only down around 40% in visits, and 10% down in users. The page views is easy to explain, because back then there was no infinite scroll in the forums, so that number isn't useful at all. The visits and users are a better story, though it says that there aren't significantly fewer people, they're just coming back less often. Regardless, the revenue compared to 2010 is down 42% across both sites (I had a mix of five ad providers in those days). So depending on how you measure it, users are more valuable, visits are about the same. If you want to account for the biggest change, the traffic almost doesn't matter. Now, two-thirds of traffic comes from mobile devices, and in 2010, it was essentially zero. That is your big change in behavior.

Early last year, I invested a lot of time into getting all of the things on modern frameworks and technology, the biggest part of that being to migrate everything to .NET Core, so it could run on Linux, which is cheaper. I also enabled some redundancy, so everything runs on two nodes, so one could die and no one would ever know. It also means I'm totally "cloud enabled," so I could scale up and out if I needed to, to the extent that I doubt the site would go down under an unexpected "traffic event" or inbound links.

Unfortunately, that redundancy, largely in support of the hosted forum app I never had the money to market, isn't free, so the timing of it was pretty bad. That's why I lost money last year. I've got a fighting chance of making it back this year, but every month will have to be good to get there.

Aggregate normalcy

posted by Jeff | Friday, June 25, 2021, 5:40 PM | comments: 0

I find myself in a Friday night position that I haven't seen in a very long time. I got done with work, Diana has gone off to work at the performing arts center, I'll make some dinner for myself and Simon, and then, I dunno, we'll hang out. Tomorrow we'll visit a theme park. Last weekend we went bowling. My upcoming time off will not involve looking for the most isolated possible place to travel to. Basically, it could be any weekend in 2019.

For now, at least, I don't take this arrangement for granted. One year ago today, we were watching Covid cases and hospitalizations quickly get out of control here in Orange County. As you know, it got much worse, and the only reason it ever got better was vaccines. Meanwhile, we endured the most incapable national leadership in my lifetime, making the pandemic response worse, and eventually instigating insurrection and trying to overthrow our democracy. What a shit show.

Things still range from bad to worse in a lot of places, so I am happy to embrace and cherish the sense of normalcy that we're enjoying. There are still some gaps here and there, mostly the fact that we can't vaccinate the kids yet, and travel is still weird at best, but the baseline of seeing my darling wife able to work in her service job again, and the tourist lifeblood of our area starting to flow again is a big deal. Just walking into a restaurant or grocery store without a mask, not having to deal with that risk, is something I take seriously.

I hope to make this weekend count.

Brain dump: What does a decentralized Internet community look like?

posted by Jeff | Thursday, June 24, 2021, 11:08 PM | comments: 0

My last post got me to thinking about how things were in the early aughts, as far as Internet communities go. Before I get into the technology itself, there's an important take-away for me to consider. No modern social media platform has created a network of people that I've connected with like the communities I started in 1998 and 2000. Whether it was a bunch of people celebrating at a wedding, vacationing with friends or having a friend who actually builds roller coasters give a tour for my son, those networks from the "old" days have been exponentially more valuable than those made via the major platforms. That's not a humble brag, it's just the truth. Even the people I do interact with on the platforms came from those sites or real life communities like work or school.

How did Internet communities work in those days? It was a mess of stuff that barely worked together, but it did work. Forums were all the rage back then, and I learned during the pandemic how surprisingly enduring those communities can be. Individuals often had blogs, which we vaguely referred to as online journals or diaries in the early days. They all had comment systems, which would allow for "track back" links in comments when you referred to them in your own posts. In place of notifications, you usually had an email tell you that there was activity to go back and look at. Most people didn't own their own stuff, but things like Live Journal (which still exists), Tumblr (in 2007-ish) and various open source things made it possible to have these interactions across services that were not centrally owned like Facebook or the Twitter, with harmful algorithms designed to artificially keep you engaged. Everything had an RSS feed, so you could use any one of a ton of RSS readers to keep track of what was going on. It was chaotic, and it didn't work that well, but it was glorious.

The long-term problem that eventually reared its ugly head was that the Internet isn't free. Someone has to pay for hosting and bandwidth. I've always understood this, because I've been writing the checks for almost as long as the commercial Internet has been a thing. Depending on your age and experience, you still might not understand it. But it was shocking to me last year when people were losing their shit after watching The Social Dilemma. If you aren't paying for something, then you are the product. The early aughts led people to believe that everything is free, none of it has value, and the market responded by making you the product. Today we have Facebook, Twitter and YouTube because of it.

So to make things potentially decentralized, at the very least, you have to expect that people will either be willing to pay for something, or be exposed to advertising, hopefully in a less evil way than what the algorithmic social platforms do. I've never been that bothered by Google's ad targeting, because Google isn't also trying to get me to doom-scroll for hours down rabbit holes to show me more ads (but I do hate that they're essentially an advertising monopoly). Will people pay for something like this? I naively believe they will, but that's because I ask for people to give me money to help pay for CoasterBuzz, and some do. It's also what I do, and I happily give the New York Times money every month, and annually give cash to Vimeo even though I barely upload any video there.

How can you be decentralized but find your tribe? I don't know. My sites I suppose are "centralized," but they have always been niche communities for very specific interests. Having your own blog with comments on, and the track-backs, was like a big messy kind of social network. The problem is that the general pool of users today can't seem to do anything without an "app" even if you don't need an app. I know, I'm raging again about how the browser should be the app. I'm actually more optimistic about this than you'd think. If you are a professional white collar worker, you probably spend most of your day in a browser running Google or Microsoft apps. If we can get those same people to understand that's possible in the mobile world, that could be a good thing.

Then there's the issue of privacy. All of that chaos back in the day was cool, but there was no assumption of privacy. It's funny how Facebook has solved this problem, but because of their shitty algorithms, the people you actually want to see your stuff never do (enjoy these conspiracy theories instead). Giving permission to users to see certain things is hard enough of a problem to solve in a closed platform where you control everything, so I'm not even sure if it's possible in a decentralized way. Actually, I have some ideas about the way I would technically design it, but they all end up being computationally expensive and insanely redundant.

Would people spend $20 a year to have a somewhat constrained, private social network? I believe they would, but it's only valuable if the people that you care about are also there, and that's the hard part. If this fantasy alternative existed today, I'm not sure I'd go there without the network I have. The network itself, though, is not portable.

End brain dump. Thinking about where we were, where we are, and where we might go doesn't lead to any clear solutions. But it's fun to think about.

I have no idea who I'm writing for

posted by Jeff | Thursday, June 24, 2021, 8:34 PM | comments: 0

I've been blogging since before it was called blogging. Since I own the data and the software, I can go way back, and see how immature I was in my 20's. Or see how I predicted Yahoo's irrelevancy. I social media-ed before anyone called it social media. When Facebook went generally available beyond college students in 2006, I already had a site called CampusFish that allowed you write and post photos in albums, and even via MMS from your phone (as in flip phone, pre-smartphone). It even did post-back linking, the glorious, no-one-owns-it precursor to the walled gardens of modern social media. And I asked people to pay $12 lousy bucks per year for it, and about a dozen people did for a few years. I felt pioneering but with no business plan or specific intent other than to see if I could build this stuff.

Before I started CampusFish in 2003, I wrote a few times per month about my general observations on coaching volleyball, visiting amusement parks, and sometimes work. After CampusFish started, I still did the long-form writing, but also more drive-by and photos. I was writing for me, making a record of what was on my mind. The cadence got to be pretty intense by 2009, which makes sense since I got married, had an epic layoff, moved to Seattle with a pregnant lady and four cats and started working at Microsoft. Somewhere in that time, maybe the year after, I shut down CampusFish and moved here to my vanity domain, and since then, I started to write less. A lot of it was about parenting, projects that never made any money, parenting, work and more honest, vulnerable talk about mental health. I also started to write more about politics, not because I was enamored with anyone left-leaning, but because I couldn't believe we as a nation elected a horrible human being who turned out to be an autocratic nationalist with no interest in the Constitution.

But in recent years, I find myself wondering why I write anything at all. Well over a thousand people land here every month, and I have no idea what they're after or why they bother to read what I have. And they are reading stuff, as the 15% that are return visitors are spending 1 to 4 minutes here, on average. I'm not really writing for them, but I'm not even sure if I'm writing for me anymore. I write about stuff multiple times, and frankly, I don't want to hear myself talk about how screwed up healthcare in the US is for the hundredth time.

A friend of mine stopped maintaining his personal blog a few years ago, and now he just posts shit on Facebook, which makes me sad (for similar reasons as the commercialization of podcasts makes me sad). And the people that I care about that are still posting on Facebook are either gone behind the fucking algorithm or stopped using it. For me, I'm using it as a record of activity for me, and memories, and not much else these days. And I will be sad when even my fellow Gen-X'ers abandon it as well, because I don't know how I'll keep in touch with people from college, jobs and different cities that I lived in. I want to keep those connections so I can see them again when we visit, or when they eventually visit Orlando.

Not sure where I'm going with this, but I'm in a pretty solid cycle of starting to write something, and then abandoning it because I don't think anyone will want to read it, and the content doesn't serve me either. I love the blog format though, because while it's a little narcissistic, it's not like the train wreck of filtered duck-faced selfies that social media has become. But those sentences right there imply that I believe I'm better than all of that, and have something to say. The truth is, I'm not sure.

Maybe I need to get back to the care-free days of just posting random crap, and for that matter, make it possible to upload photos again for photo posts, from out in the world. Because when Facebook does finally die, I'll still have this.

Getting out of the pandemic holding pattern

posted by Jeff | Sunday, June 20, 2021, 4:28 PM | comments: 0

If there was anything I could say about the length of the pandemic, which frankly has different levels of "over" based on the vaccination of you and your family members and friends, it's that it was long enough that I learned what it really meant to have to wait for things. There were so many things that, as a practical matter of mitigating the spread of the disease, you had to put off. You did find the doable things pretty quickly, most of which involved outdoor activities, including, mercifully, trips to the beach. But longer travel was out. The uncertainty of it all also had people putting off big purchases or spending on leisure activities and eating out.

Now that things have gotten better with widespread, if incomplete, vaccination, some have already arrived at the point of what I call "rage spending," and all of that pent up demand is pushing the supply and demand curve into some interesting inflation patterns. Economists suspect it will be temporary, but we'll see. The travel industry is still not quite there, but with Europe opening back up and the cruise lines coming back in the fall, I'm sure people will be anxious to move about the world. I'd settle for seeing the Bahamas right now (or as I like to call it, East Florida).

Psychologically, I'm still stuck in this mode of waiting for something. I'm super focused on saving for retirement, I don't have anything I really want to rage spend on, I feel like I don't remember what I did in my spare time and I'm definitely waiting for the travel situation to improve. I guess I'm also waiting for Simon to be vaccine eligible. He's likely low-risk for his age, but the bouts of pneumonia, apparent allergies and such, I'm OK with being cautious. For all that longing for normalcy though, I'm still waiting for something even though things are kind of getting normal.

There are two routine things we did that aren't quite back yet: theatrical shows and cruising. We didn't get to the end of the 2019-20 Broadway season, and now I think it's the 2021-2022 season that goes deep into next year, but dammit, we will see The Prom this year. Cruise lines are all over the place, but if the protocols for Royal Caribbean are any indication (additional charges for the unvaccinated, separate dining times), I can only assume that it won't be "fun" again until more of the world is vaccinated.

I'd like to find ways to help others more, too, and I think a lot about that. As sensitive as I am to understand the value of self-care, life has certainly demonstrated that we have to play a role in moving the world forward. I'm not entirely sure what that looks like, but we'll figure something out.

If only the world would double-down on web standards

posted by Jeff | Friday, June 18, 2021, 8:00 PM | comments: 0

Google dropped version 91 of Chrome, and suddenly, my open source cloud music player, MLocker, stopped working on Android. It had been something of a precarious situation in the first place. It wouldn't reliably run on iOS browsers at all because of some stupid restriction they have around playing media without user input, and on Android, you do have to deliberately tell it not to do battery optimization. The underlying platform is .NET Blazor, which compiles down to WASM, web assembly.

Fortunately, it's not my shoddy coding, and an issue appeared on Github about it, and someone filed an issue with the Chromium team as well. Given my excitement about WASM bridging the gap between native apps and the web, this was wholly disappointing. I definitely have work to do on that project (there's a caching bug), but as a solution to never have to depend on third parties for music and playlists, this rules my world. I want it to work on my phone. That's why I invested the time.

Fortunately, it looks like a non-issue in v92 of Chrome, and it's on their radar as a regression. Honestly, I give them all the credit in the world that they're wanting to support the WASM standard at all, and do it right. But aside from Apple's bullshit, I still feel more strongly than ever that these web-based standards that work just as well as native app code for 95% of non-game situations should be the direction of software development. It's literally just a packaging issue. If these WASM apps were available via the app stores, people would not know the difference, and software people wouldn't have to worry about trying to support three or more platforms.

In the mean time, vendors like Microsoft are still trying to bridge the gap between the mobile, desktop and web platforms. Blazor and now MAUI are trying to reduce the amount of code used across these on the UI end, which is the final frontier, since library code can effectively be shared in .NET across all platforms. And it's like, yeah, if we solved the packaging problem for web-based UI on every platform, we would be done already.

We're in a better place than we were five years ago, but still have so far to go.

Good work vibes

posted by Jeff | Friday, June 18, 2021, 6:00 PM | comments: 0

Our work office reopened a couple of weeks ago, which is way up in One World Trade Center. Some of my coworkers that are based in New York have been going in a few times a week, and when I have calls with them, it's pretty cool to see the Statue of Liberty or the Brooklyn Bridge behind them. They really had not been there for very long prior to the pandemic, so it sounds like it's very novel for many of them, too. I can't wait to see it for myself, eventually.

There's an interesting vibe among the people at this job. Many of the core folks who joined early on are still there, and they're in a very small group of people that I know who were in a start-up and stayed with it all of the way through an IPO. I "know" maybe three people total who have made that journey outside of this company, because it's exceptionally rare. The cool thing is that they embody that start-up spirit, and at the same time, welcome the many people who came after. There's no new versus old school, and since the company embraced remote workers years ago, there isn't a New York versus the world vibe either. It's wonderfully collaborative, respectful and exciting. It's hard to grow fast and maintain that vibe.

I jokingly say that sometimes being in a job can be like being in a toxic relationship, but there's a lot of truth to that. And just like a toxic romantic relationship, you might be the last person to realize that you're in one. When I take inventory of my professional life, I'm surprised by how many jobs I've had where I felt like I had to justify my existence, or leaders emphasized all of the wrong things, or worse, pretended that everything was as it should be, in denial about what wasn't right. Thankful I'm not in that situation now.

I look back fondly at a few situations though. was a solid place, even if I did kind of outgrow it from a career development standpoint. In retrospect, we all know things now that we didn't know at the time, like, the dev team was all white dudes, the expensive deployment routine was expensive, and owning your data center is dumb. We all got along pretty well, the churn rate was pretty low and we enjoyed what we did. Working in the Server & Tools Online group at Microsoft might be my favorite thing ever. Just an entirely different level of people I worked with there, and I wonder how the world would look today if I could have moved to the product side of Codeplex. When I was at AgileThought, I had a couple of remarkable teams that I got to lead on projects that billed millions of dollars, and many years later, most of those folks are still my friends. Now I add Olo to the good work vibes club.

My feelings about work, and where it fits into my life and identity, have swung back and forth like a crazy pendulum, from something that I compartmentalize and don't care about, to something that is a primary part of me. I'm definitely closer to the latter right now, but that's not so bad when you dig it.

Film (and analog stuff) nostalgia as seen from a Gen-X'er

posted by Jeff | Tuesday, June 15, 2021, 11:49 PM | comments: 0

Destin from Smarter Every Day posted a video about a boutique film processing business. He gushes a lot about film, about how the physics and chemistry of it all, the mystery about what you got, make it interesting. He's not wrong about the interesting qualify of film, and the founder of the lab talks a bit about how a lot of analog things like vinyl records and such are "coming back."

The resurgence of various forms of analog media in the last decade or so has been interesting to see, and it seems like it's largely driven by millennials and younger. As a Gen-X person, I have kind of a mixed reaction to this. The younger folks aren't acting on nostalgia, because these were things that they didn't have in the first place. I wouldn't really write it off as hipster thing either. There's an inverse digital experience thing at play here, though some people, probably late 30's, are kind of in the middle. If you're old enough to remember, you probably don't miss it, but if you grew up with the Internet, there's something novel about life before smart phones.

Analog things have a certain tangible and physical quality to them that I admittedly miss. You can actually collect them. I had vinyl as a kid, but when teenage music obsession kicked in, I was all about the cassette tapes. They didn't have the huge album art, but they did have fold out liners. CD's (while technically digital) were even better, because the liner notes were far larger. And with things like Columbia House, we were able to get new CD's by mail, and everyone loves mail when you're in college. Well, we did, at least. These days, not only are few people buying digital music in a permanent way, buying MP3's, but they're using subscription services. They aren't really collecting anything, so I get why there's an appeal to collect vinyl.

Film based photography certainly has a similar appeal. The physical process of capturing an image on film gives you a tangible thing, both the negative developed film and the prints that you can hold. I get the print part more than anything. It took me a long time to stop getting prints of digital photos, and I didn't really stop until Facebook was generally available beyond college students. When the iPhone came out a year later, that really ended the prints for me. I haven't abandoned the technology of serious cameras though. Even in the "mirrorless" world, which is to say digital cameras that don't use the single-lens reflex mechanism, having a mechanical shutter and precisely manufactured glass leads to really amazing photos. Over the last 20 years, I've spent thousands of dollars on that kind of glass.

But while I appreciate the appreciation for the old tech, especially in photography, I can't say that I'm nostalgic for it at all. In high school I had virtually unlimited access to film for yearbook, as long as it was for the book. But in college, when I had my dad's classic Nikon F, every frame was like gold because the film and processing was crazy expensive and I had no money. Even as an adult, I'd rattle off a hundred shots on a vacation, and it would cost $50 by the time I was done, and I wasn't even sure if any of it was worth it until I got the prints back. That took a lot of the joy out of it. But when digital hit, all the things I wanted to experiment with became easy. I figured out how to shoot fireworks, use a flash effectively, use a flash off-camera... and it was all "free" without film. I'm often one to embrace constraints as they force creativity, but this was one I was happy to be free from.

Video cameras had a more subtle consumer impact, but even Super 8 film was expensive to shoot on and process. It doesn't seem like there's as much nostalgia for that, and the remarkable thing is that I actually own a 4K video camera that's good enough quality that Netflix says it's OK to shoot content on it. These are amazing times, as that kind of equipment used to cost tens of thousands of dollars! Going the other direction in age, there are a lot of directors who won't shoot movies digitally, a grumpy curmudgeon sentiment I don't get at all, especially since they're not going to edit on film.

It's all fascinating to me that people hang on to this stuff. I'm not mocking them, but I suppose that having lived in the era that these were state-of-the-art technologies, I definitely find the modern convenience of the new stuff to be superior. I loved my typewriter in middle school, but once you use word processing software, you don't want to go back. Like I said, I do miss the collection aspect of it, and I've got hundreds of CD's in boxes still that have moved 6,000 miles with me. I'm not even sure they still work!

Better batteries

posted by Jeff | Monday, June 14, 2021, 9:46 PM | comments: 0

While I'm excited to see the great battery life I'm getting out of my new laptop, I'm conversely sad about what I'm getting out of my phone right now. I have a Pixel 4 that's about 20-months-old, and it's not doing great. There's a good chance that it has something to do with having it in my pocket for a half-hour in the hot tub of the VRBO we rented in January. That the phone survived at all seems like a small miracle. But there was also the disappointment of my three-year-old laptop that I replaced. It's weird, because the original iPhone from 2007 I could go without charging over a few days, though admittedly, this is from the days when we were still mostly using phones for, you know, calling people and texting.

I hate the idea of creating electronic waste, but most things that we've retired in recent years have gone back to be recycled by the manufacturer. Loose lithium-ion batteries are surprisingly hard to recycle, like camera batteries or AA's. Best Buy used to have a drop-off bin, but they stopped doing that.

Despite my recent battery drama, the truth is that batteries are getting way better, faster than I expected. While it's frustrating how few are user-replaceable in consumer devices, in most cases they're getting better. Heck, I've got 150 kWh of batteries in the garage right now, and it's remarkable how well they age. Our Model 3 has lost only a few miles of range in three years and 25k miles, and still charges impressively fast at superchargers when needed. I think the magic there is that the computer spends a lot of time conditioning the battery when it's plugged in, which is 75% of the time on days we're using it, but more like 95% on days when we're just running errands. When I think about that compared to the big dumb nickel-metal-hydride battery in my 2010 Prius (and I loved that car, before it was destroyed by a careless driver in Tennessee), that's a lot of progress in a decade. There has been so much refinement in lithium-ion batteries, much of it driven by the auto industry, specifically Tesla. Power density, durability, weight and charging speed have all improved.

As for my phone, the battery size was always a little small, but at this point, I need to make it work for another four or five months, until the next wave of phones hit. I'm kind of loyal to the Google at this point, because their flavor of Android is the cleanest (though Samsung is way better than they used to be) and their photo science is arguably the best for the money.

Five years after Pulse

posted by Jeff | Sunday, June 13, 2021, 9:31 AM | comments: 0

Five years ago, a makeshift memorial formed in downtown Orlando in front of the Dr. Phillips Center, following the death of 49 innocent people at Pulse. There was no shortage of people in our work and social circles that went to Pulse from time to time, and it took a few days before they were all accounted for. While I was relieved about my friends, I was deeply sad for our community and the families that lost someone to this senseless violence.

The sadness turned into anger over time. I'm still angry, about the irrational hate directed not just at the LGBTQ community, but toward all people who seek equality. Florida is an embarrassment, recently passing anti-trans and voter suppression legislation.

Those seeking equality aren't looking for an advantage, they're looking for the same baseline that everyone should enjoy. That isn't something to fear. Five years later, we haven't come very far in dispensing with hate, and in some ways, we've gone backwards. I want to be hopeful, but it's hard.

Love is love. Let's do better.

Restoring healthy habits is hard

posted by Jeff | Thursday, June 10, 2021, 10:40 PM | comments: 0

There was a piece in the New York Times a few days ago about how messed up everyone is in terms of sleep. One of the biggest reasons for sleep issues is anxiety, and you know, we've had some things to be anxious about in the last year. If the pandemic and the deaths of hundreds of thousands of people wasn't enough, we had a fascist autocrat who tried to overthrow an election, insurrection, an uncertain economy and job market... and then I'll add in the parenting difficulties and a challenging job.

A lot of things have gotten better certainly, and we're doing things as we did B.C. (before Covid). Date nights, eating out, theme parks and the usual Central Florida activities. For me personally, my sleep is still wildly inconsistent, and some of it is anxiety. A lot of it though is that I can't really settle back into healthy habits. I did OK during the bulk of 2020. I wanted to slam cocktails every Friday night for awhile, but that didn't last through July, because my body was pissed. I did OK with eating too, until roughly the holidays, and I kind of lost control.

Trying to understand what makes it so hard to commit to healthy routines and habits has always eluded me. It's different for everyone. Some of it is chemical, of course, when it comes to food. Sugar tastes good, after all. Honestly, I'm better off there than I used to be. I generally don't drink more than 6 ounces of soda a day, down from probably 24 maybe two years ago and replaced with soda water or ice water. But sometimes, give me a rice bowl full of curry and I have no self-control.

I do OK with food limits outside of the seasonal relapses, but physical activity is always hard for me to do. I just hate exercise for the sake of exercise. But walking a couple of miles every morning doesn't take a lot of time, it just takes a good night of sleep, which creates a cyclical problem. I need sleep success to get up and walk, but a good walk would probably lead to better sleep. Since we've been visiting the parks again, a day where I knock out 6 to 8 miles, I sleep great. The walking works great for me to keep my weight in a healthy spot. I'm also not sure what my natural cycle really is, which the article above says is important. I might be a night person who sleeps in, but that's not compatible with work, and I like to spend time with Diana in the evenings.

The last part of the equation is certainly that I don't set very good work boundaries. I'm anxious to get to it in the morning, and prepare for whatever is coming that day. Even when I'm getting up earlier, I tend to want to sit down instead of walk. That has to change. Fortunately, since getting a standing desk, I am not sitting quite as much, though the more meetings I have it seems the less motivated I am to get up. One of my coworkers literally has a treadmill under his desk, and he's in great shape. Not sure I can go that far.

I'll get there eventually. Like anything, it's a process of prioritization, and I'm doing that poorly at the moment. And don't get me started on the people who think you're just weak of have personality flaws. Those people are not helpful. We all have our shit to deal with.

Is society still beating up the "smart kids?"

posted by Jeff | Monday, June 7, 2021, 10:28 PM | comments: 0

I saw a T-shirt once that said, "The nerd you beat up in high school reads your e-mail," or something like that. I thought it was comical, because as I was graduating high school, I don't think we fully appreciated the role that computers would play in our lives, let alone that we'd carry them around and stare at them constantly. I think the spirit of the shirt was more about the fact that it was never cool to be smart, but the smart kids grew up to eclipse everyone else in terms of "success" or wealth or whatever.

Is it intelligence that really separated the nerds from everyone else? I don't think that's what it was. While I appreciate more than ever the developmental differences between humans, I think that curiosity and a desire to separate fact from fiction is what makes you "smart." I've certainly met very wise people who could barely send an e-mail, successful in most conventional ways, just as I've met people who are the opposite. Maybe I'm conflating wisdom and being smart. My only real point is that I don't think it's straight up intelligence.

Critical thinking, however, is a huge factor, and frankly I think that all people are capable of it. I believe that it is a learned behavior, but it's likely a choice, too. What I find so odd though is that our society seems to not only devalue those who engage in critical thinking, but treat critical thinking as some kind of weakness, or domain of the elite.

How the hell did we get here? As a kid, I revered scientists, doctors, teachers, engineers. They were the people that carried our society forward, and they inspired me to want to do something like they did. (Until puberty, when I decided to be a DJ, but I eventually came around on that.)

Perhaps the worst part is that society seems to have abandoned critical thinking, and those who engage in it, and replaced it with willful ignorance and cognitive dissonance, led by ideologues and demagogues. If you look at the best people in history that moved us forward, they were the critical thinkers. The worst of the worst? The ideologues and demagogues. Every time.

We've gotta stop doing this. We're still stuffing the nerds in lockers, and they're reading your e-mail. How do you think that's going to work out?

Tourist air conditioning

posted by Jeff | Sunday, June 6, 2021, 7:40 PM | comments: 0

When I started coming down to Orlando in my early 30's for theme park trips, I instantly felt happiness when I would walk from the hot outdoors into some over-air conditioned place. At the top of these memories is arriving at the Royal Pacific Resort at Universal. Coming in, feeling that blast of cold air... it felt like vacation. It makes me smile just thinking about it.

Now that I'm local, "normal" temperatures are all different. We keep the house at 75 during the day, and 72 at night. 70 or lower is "jacket weather." Any time we have highs around 80 and a nice breeze, that's perfect weather. Granted, June to September is when we also have high humidity, and it's the part of the year we would rather be inside. The myth that it's always humid is a lot like the one that says it's always raining in Seattle. It's a seasonal situation. Just last week, we were in the upper 80's but the humidity was under 40% (for reference, the inside of your house is probably 50%-ish).

Air conditioning in the summer is insanely cold in tourist spots. The theme parks are notorious for this, especially in attraction buildings, but even restaurants and hotels are like this. I should do a comparison with, say, the average Target or restaurant in non-tourist areas. If my observation is incorrect, maybe it's just my frame of reference to my happyjoy feelings.

I had the crazy cold AC feeling twice today while my family visited Animal Kingdom, and it made me smile.

Review: Microsoft Surface Laptop 4 (13.5", 2021)

posted by Jeff | Friday, June 4, 2021, 10:00 AM | comments: 0

I wrote a review a little over three years ago when I bought an HP Spectre x360 laptop. I was compelled to do so because it was the first non-Apple computer I bought since they flipped to Intel CPU's back in 2006. Not quite two years ago, I built a Windows desktop as well. There's a lot of excitement about Apple's M1 CPU's, as well there should be, but native app support is mostly beta (looking at you, Adobe), and I don't have a lot of confidence that running Windows VM's (and in turn Linux containers) is where it would need to be. Pricing wise, the M1 MacBook Pros are in the same price point with similar RAM and storage, but you're still stuck with those useless touch bars and terrible keyboards.

What's the motivation to replace my three-year-old laptop? From a performance standpoint, it still is pretty solid. The biggest issue is that the battery life was getting pretty bad, often less than four hours with a developer load. If I'm being honest, I could have replaced that inexpensively, and maybe I still will. It also can get pretty hot when compiling or doing CPU intensive things, which is not ideal for lap use. There were other minor annoyances, like fan noise when it got hot, or a nagging touchpad driver issue where it wouldn't remember my preferred scroll direction. Overall, I did love the HP even with the quirks, and at $1,400, it was a really great value, especially compared to comparably equipped Macs at the time.

Let's be real though, the pandemic is receding and after the last year I want to rage spend on something. I feel guilt about electronic waste, but computers and cameras are the things that I create with, and I like nice tools. I didn't want to spend more than $2k, and wanted something that would again last at least three years. It really came down to three choices. The newer iteration of the HP was one, which still looks great and is well equipped. The next was Dell's XPS, which is a triumph in design. The last choice was the Surface Laptop 4. All have the most current, 11th generation i7 CPU's and 16 gigs of RAM, and were priced about the same. The HP and Dell at that price had the higher resolution screens, and in fact the Dell even used an OLED screen, though these both come at the expense of battery life. They also have Thunderbolt connections, which I used exactly zero times on my last HP, while the Surface Laptop did not. However, the Surface Laptop also had longer battery life with the conventional screen, which I realized is the same pixel density as my desktop monitors, where I see no pixels. It also had the Alcantara covering on the keyboard, which I totally love in "ice blue." Also, Microsoft's hardware driver support is perfect, and there's absolutely no bloatware to uninstall. On paper, the Microsoft product is not the best, but I love the way it feels and looks, so that's what I chose. The Dell might be better, but my weird texture feeling habits wanted the Alcantara. I ended up getting it from B&H which means I saved on sales tax and came in $300 under budget.

Microsoft has been doing a great job with packaging, which is to say it's attractive and doesn't get too ridiculous with plastic. The only other things in the box are a few small paper bits with the warranty, and the power supply. They're still hanging on to this magnetic Surface plug thing, which I've never been that crazy about because since it's round, you have to twirl it to sit right. The magnet will still hold it without it being connected. That's worse here because the bottom of the laptop is tapered inward, so the angle is awkward. But if you really hate it, the good news is that you can also charge through the USB-C port, but then you can't use it for peripherals.

Lifting it up, it's about 2.8 pounds, same as my HP. When you open it, that blue-ish Alcantara is just fantastic. It has an almost oily feel to it at first, but once you've handled it for a week or two, it feels more like proper fake suede. I definitely preferred HP's keyboard layout, and would argue it's the best, with dedicated home/end, page up/down buttons down the right side, and a dedicated insert button. If you're a software developer using a richly featured development app, you know there are countless keyboard shortcuts, some involving insert. The surface puts those buttons along the top, shared with the function keys, so it takes some adjustment in muscle memory to get them right. Insert is shared with delete, so you have to hold the fn key to use it. The keyboard is a little mushy in the middle, which I only notice if I'm really banging on it, but otherwise it's totally the right amount of key travel. It's almost as good as a Lenovo keyboard. The touchpad is enormous, has a satisfying real click, and being surrounded by Alcantara is surprisingly useful in just feeling around it.

The screen at full-brightness is an assault on your retinas in normal interior situations, but it's helpful if you're outside. I find that 50 or 60% is comfortable inside. There are no pixels to be seen. It's one of the best touch screens that I've seen on a laptop, as it doesn't flex much or feel cheap. Bezel haters might not like that there are bezels, especially compared to the XPS, but if you do touch it a lot, smaller bezels usually result in more false edge touches. The important thing here though is that they're not using the 16:9 aspect ratio, which is great for movie watching, but shitty for anything document driven, whether it's web browsing, word processing or writing code. I didn't realize what a drag that was on my last laptop until I landed on this one. The 3:2 is fantastic.

Boot time is fast, resuming from sleep is nearly instant, and the Windows Hello feature, where it reads my face, is so much faster than it was on my HP. Running software with the 11th-gen i7 and 16 gigs of RAM is easy, even with my typical developer load. That means Visual Studio, Chrome, SQL Server, various Docker containers running and other things. I've yet to feel it get truly hot, only slightly warm. The only time that I've heard the fans come on is when installing Visual Studio. This is a vast improvement over the old HP. Performance feels snappy, even with Visual Studio and Resharper. I'm surprised at how robust Photoshop feels, too.

It took awhile to get an accurate feel for battery life, and while it does vary, it's extremely predictable. The aforementioned developer load can pretty consistently get 8 hours if the screen brightness is in that mid-range. But even at full brightness, I was able to get 6 hours. For more typical web and document work, I expect around 12 hours. I haven't tried video work, but I wouldn't expect great battery performance on any computer.

Overall, I've really enjoyed using this computer. The design is solid, it's light and it performs extremely well. I'm confident this one will go at least three years as well.

Universal healthcare is about the best thing that could happen for capitalism

posted by Jeff | Thursday, June 3, 2021, 8:46 PM | comments: 0

The economic recovery is coming on strong right now as we attempt to emerge from the pandemic here in the US, but it's an uneven recovery with seemingly contradicting signals. But if surviving the most serious health crisis in a hundred years wasn't reason enough to look at the issue of how healthcare is paid for in the US, then looking at all of the ways it would strengthen our capitalist system is. Yes, I'm writing about this again.

But socialism! they say. I've covered that, and it's ridiculous to single out healthcare, the one thing paid for by most of the developed world outside of the US by government, as something materially different from safety services, schools, military, etc. Read that rant if you're stuck there.

Here's the problem: A lack of access to healthcare, or more specifically the ability to pay for it, bankrupts people, it causes them to not seek preventative care, and these poorer outcomes are a financial drag on society in every way. From the perspective of employers, they would rather not be in the business of providing health insurance at all. Even if they don't meaningfully subsidize it, it still costs them time and money to administer, and they would rather keep people at a part-time level and not have that expense (this is certainly aggravating the labor shortage right now).

And how many people simply couldn't risk not having health insurance, so they don't attempt to start a small business, or participate in a gig economy? Right here, that's me. I have, three times in my life, been in a position where I could try to spin up a legitimate business, and sustain that for 18 months easily, but I've got a family with needs. Simon's medications alone cost $100 per month, and that's after the insurance. It would be in the hundreds without insurance. It's prohibitively expensive for individuals to buy insurance without a group, unless you're poor enough to qualify for big subsides under the ACA.

Absolutely no one likes working with health insurance companies. Employers hate it, doctors hate it, and it certainly sucks as an individual. Even in the best possible scenario, where the employer pays for it entirely and there are no deductibles or co-pays (my situation when I worked at Microsoft a decade ago), dealing with the billing and unsettled charges is a constant shit show. And then I worked for an insurance company, and saw the inefficiency and waste up close. These companies add no value.

Does this mean that insurance companies would largely go out of business? Probably. Does it have to be paid for? Yes, but the per capita cost under the current system is the highest in the world, 50% higher than second place (Switzerland) and more than twice what third place Norway spends. It can't be worse or less efficient. We spend 2.5x what the UK does, and we would theoretically have the advantage of economy of scale for our own national health service. Ask someone in Norway if they would like to abandon their healthcare system and adopt ours. No seriously, I have, they think we're fucking nuts.

I don't know what the path is, but the current path sucks. Put away all of this ideological bullshit about your freedom and government overreach, because right now, you're owned by the system and getting nothing for it with lower life expectancy (we rank 40th in the world... USA! USA!) and our infant mortality rates are more than twice of those in the aforementioned Sweden and Norway.

Therapy bursts

posted by Jeff | Wednesday, June 2, 2021, 8:53 PM | comments: 0

I just finished a burst of continuous therapy, which is to say I had it several weeks in a row. This happens now and then, when I go months in between, and I feel like I'm just not operating efficiently. I liken concentrated psychotherapy to when you have dull pains that you need to treat and rehabilitate. In this case, I've been feeling kind of mentally spent for a combination of reasons, and talking through that with a professional, understanding the causes and what I can do to cope, is the outcome that I'm after. It's also helpful because the therapist I've been seeing for years is too busy to see clients, operating a larger wellness practice that includes the new therapist. Fortunately, she seems to have figured me out pretty quickly.

For this series, a lot of my "spentness" is rooted in parenting challenges and just the overall mental cost of the last year. Lots of bonus issues, too. I have an intense and challenging job, but as long as I'm (mostly) getting the outcomes I hope for, it doesn't factor into the fatigue as much. It contributes, because you can only do so much in a day, but it's everything else that adds up.

There are a few takeaways and actionable things to do. The first is that the parenting will never be all wins, and I have to accept that we do an awful lot of the right stuff. It's not easy, but we're operating as well as can be expected. Diana and I spend entirely too much time feeling bad about taking time for us, and that has to change. There are a ton of tactical things we can do differently, many of which we learn with his therapist. It's an ongoing journey, and there really isn't a destination.

There's a lot more to tell, but I'm not going to share it broadly. The short story is that I have a lot of self-awareness that I didn't have a few weeks ago, and I can work with that. Working to be a better human being is hard. Already though, I'm feeling a little less spent, and happier than I was. I can see now that I've been in a bit of a funk.

This is the part where I am endlessly frustrated that most people don't have access to mental healthcare, and if they do, it's often stigmatized as something you only need if you're broken and less of a human being. We really need to change that.

Crusty code

posted by Jeff | Tuesday, June 1, 2021, 12:07 AM | comments: 0

If I were to list the reasons that I can still maintain CoasterBuzz and PointBuzz, it's not the part where I fanatically tried to make the performance of those sites high. The top reason is that, after 20 plus years, I've never let them get too crusty. The amount of change in the underlying technologies is pretty staggering, with endless frameworks and platforms along the way. I never thought it would all run on Linux now, let alone on virtualized everything.

I took a break at the start of the year from recreational coding. I haven't written code at work in quite a few years now, and really it has been intermittent at best in the last ten years, because I've done more managing and "architecting" (whatever that even means anymore in software development) than anything else. But I actually enjoy it when I'm not being held to some kind of delivery, and I do think it lends credibility to you in the eyes of people you lead.

This year, I'd like to finally shake the forums free of their ancient jQuery dependencies, which is obtainable now because Bootstrap, the base style framework I use, has also ditched it. Later this year, .NET, the platform I've been leaning on for the backend for most of the years (with many frameworks on top of that), will turn to v6, a consolidated, run-everywhere version, and I'd like to get everything up to speed there. Most of what the sites ran on two decades ago has long since been deprecated and isn't supported, and I've seen at many jobs what happens when you don't keep up. The code gets super crusty, and no one wants to update or maintain it. I did go almost four years between updates to PointBuzz once, and that was pretty painful.

For all of the change, there is one strange thing that has never changed: I've been using SQL Server as my database the whole time. It has changed over the years, but the data itself has barely changed. There are other persistence technologies at play since then, of course, including Redis, ElasticSearch, Azure queues and storage, and probably other things, but there's still SQL under there. It's pretty flat in terms of schema, so that may be why it has mostly aged well.

That said, we went through a period in .NET circles where we tried to use object-relational mapping frameworks to abstract away all of the SQL. For me, it started with flirtation, something called LINQ to SQL, which translated method chains into queries. There were others, too, including NHibernate (we inherited its use on the MSDN Forums at Microsoft, and it was a mess). The thing that really started to catch on though was Entity Framework, I think in 2010-ish. And within a year, they added what they called "code first" support, meaning that you could define your entities in code, then let EF turn it into a database schema, along with magical schema updating.

Here's the problem with ORM's: They're leaky abstractions. There just isn't a universe where you can get away with not understanding what's going on under the covers. If that weren't enough, the various control libraries that started springing up "worked" with EF to do things that maybe you didn't expect. I inherited a project once where one of these tables aggregated totals three different ways, which resulted in total scans of the database every single time someone viewed the page, which is bad. But the biggest problem is that these frameworks inevitably produce queries that are inefficient when your data set gets large. For that reason, you end up trying to tweak your code to get the underlying queries to be better formed, which leaves you in the place where you're better off just using SQL directly, which has barely changed in decades.

Getting back to my sites, CoasterBuzz is using EF to this day, and I hate it. The worst part is that when .NET went full open source, with the "Core" moniker the last half-dozen years, EF changed significantly and in breaking ways. I played along and figured out all of the things that broke. What a waste of time. There is so much awkwardness in the code. My little project this weekend was to purge it all, and I got about 80% of the way there.

There is a useful level of object mapping though. For a number of years I've been using Dapper in various projects, which maps your query results to objects, and objects to parameters. I even adopted it in the forums a couple of years ago. I love me some Dapper.

I wanted to get the crusty stuff out so I can enable a few new things, and this will make life easier.