Archive: August, 2020

The importance of zoos and aquariums

posted by Jeff | Monday, August 31, 2020, 7:14 PM | comments: 0

One of the many treasures that have come with Disney+ is Secrets of The Zoo, which was shot over three seasons at the Columbus Zoo (fourth coming soon). It's an amazing zoo, I've been there, and it also has a huge 10,000 acre open environment about an hour to the east where they have a number of pack and herd animals, many of them endangered. One thing I like about the show is that it's not shy about showing the ups and downs for the keeper and veterinarian staff. The births and deaths are all there, as well as the stories of the humans that care for the many critters.

There are still a great many people who protest zoological institutions, usually because they believe that they exist solely for the purpose of making money. Of course, most of them are not for-profit in the first place, but even those that are for-profit, such as SeaWorld or Disney's Animal Kingdom, play a huge role in conservation, scientific observation and public education. The conservation effort in particular is well coordinated across institutions, in the US via the Association of Zoos and Aquariums (AZA).

Humans are notoriously skeptical of things they can't see (aside from religion), and this is especially true when it comes to the environment and its inhabitants. Having these animals where people can see them, especially children, raises awareness in a very tangible way. It's the reason people know about elephant and whale poaching, a shrinking panda population, the injury of manatees from boats, etc. Having grown up next to the Cleveland Zoo, and with the former SeaWorld of Ohio, they fundamentally informed my world view about the importance of looking after these species.

I would further opine that because humans are largely responsible for the destruction of the habitats of endangered species, it only makes sense that we take responsibility by looking out for these same species. While the feds keep cutting funding for programs under the Endangered Species Act, the role of private institutions is becoming more critical.

I'm proud to support the zoos in all of the markets where I've lived. They're critically important to the natural world.


All-Linux, all modern Azure migration results

posted by Jeff | Friday, August 28, 2020, 6:35 PM | comments: 0

Last weekend I moved the last bits of my sites off of Windows-based Azure app services, and all of the background stuff now runs on Azure Functions. Now that nearly a week has passed, I have some real metrics about what that means.

First off, I moved the forums from PointBuzz off of the main app and into the hosted POP Forums product earlier this year. The hosted product runs on two Azure B1 Linux app service instances, with the cheapest possible Redis instance to connect them. The forums use Redis more as a service bus (I know, potentially an anti-pattern) to copy cached data between the instances, kind of as a two-level cache, so I don't need a huge durable cache for this. I didn't invent this, it's what StackOverflow does. Meanwhile, the databases used in hosted forums are a SQL elastic pool running as "standard 50 DTU's," which is a crazy amount of compute given how much the app has been optimized over the years. Average CPU utilization for the app instances has been under 1%, RAM has been steady around 75% of 1.5 gigs (each instance), and they're serving around a peak of 20 pages per second. That's not a huge load at all, but it means that I could see a 100x increase and still be pretty safe, especially if I scaled up.

The elastic SQL pool is all of the databases on all of the sites, which is currently 13 databases that include CoasterBuzz, PointBuzz, this blog, test sites and other things I'm forgetting. Average "CPU" is under 3%, which is a relief because I used to see all kinds of weird spikes when I was using my own "search engine" to index the various forums. Again, plenty of room to grow and scale up if I had to. Having moved the search to ElasticSearch, which is running in Azure (not in the same region) by Elastic itself, queries are coming back in under 50ms on average across the sites, which is solid, and a bargain considering that I'm paying about $15 a month. Again, I'm at bargain basement scale.

The move last weekend was to get out of a Windows app service plan, bringing my cost from about $75 per month to $25. Everything now is running on .NET Core, which is generally faster than the full .NET Framework. Using only a single B2 instance, CoasterBuzz (including forums, busiest of the sites) and PointBuzz (not including forums, which is running in the hosted app), are averaging at most about 7% CPU and consistent page rendering well under 50ms. RAM usage is about 80% of the 3.5 gigs, but that makes sense because the local cache will use as much as it can until it starts evacuating aged cache entries. The big difference is the page rendering times, which for PointBuzz was consistently about 50ms. I wish I would have been more deliberate about benchmarks. But whatever, the point is it performs better at a third of the cost.

The forums, both the hosted app and CoasterBuzz, utilize Azure Functions to process all of the asynchronous stuff, specifically sending out email, search indexing, calculating point awards, cleaning up user session data and closing old topics twice a day (I don't use that last one). This "serverless" arrangement is crazy, because the total cost of this is going to average... a few cents per month. That's nuts, to be able to spin something up that is mostly idle but still does stuff thousands of times per day.

The biggest cost I have is by far the database pool, which by itself costs about $120 per month. The hosted forum app services (two B1 instances) and the other app service with everything else (a single B2) cost about $25 a month at the moment. The rest, storage, bandwidth and other stuff add up to around $210 per month, which still feels like a lot, but it comes with all of this redundancy and performance. It's a lot of cloud greatness for what it is. The hard thing right now is that ad revenue is just shit.


Annoying Windows quirks

posted by Jeff | Friday, August 28, 2020, 5:10 PM | comments: 0

I don't primarily use a Mac in any capacity anymore, a point I reached a little over a year ago when I built a PC. I flipped to a Windows laptop about two and a half years ago. That all happened after more than a decade on Macs. Overall, I'm happy with both computers. Having spent a fair amount of time writing code this year (because, you know, I'm obviously not traveling), I am particularly and overwhelmingly satisfied with my desktop. The only time I've ever used all of the memory (32 gigs) was when I had Visual Studio and Photoshop and Premier Pro open at the same time. Because why not?

But there are some lingering things that are quirky that annoy me, and they're the kinds of things that I would never encounter on the Macs. For example, the fans on my video card seem to not respect the settings I've made through EVGA's app... sometimes. Shortly after I built the machine, I kept noticing this light grinding sound, which at first I thought was the water cooling system starting and stopping. But then I took off the side panel and noticed it was the fans on the video card coming on periodically. They're really quiet, so I just assume they stay on. So I downloaded the app that EVGA made, and set the fans to run at 50% all of the time, instead of "auto," and the GPU idles at a comfortable 31 degrees, peaking around 60-something when under load. But the problem is that sometimes it boots and doesn't respect the setting unless I run the app, and that's annoying. It's just not annoying enough to figure out why it happens.

When I bought my new video camera, I started using Adobe Premier Pro again, so I plugged in my Shuttle Xpress, a puck-shaped controller to scan through video and set in/out points while editing. If you grew up editing tape, you need this thing. I didn't make the connection at the time, but the computer stopped going to sleep at that point, or even turning off the monitors. Something about that controller, or the driver, pings the computer every two or three seconds, so the computer thinks there's a user touching it all of the time. That was hard to figure out until I found a script that showed the current idle time. I started it, and watched as I unplugged stuff, and sure enough, the Shuttle was the thing.

My laptop has seen a number of Windows 10 updates since I bought it, and now, the touchpad driver doesn't exactly load right until I open the control panel app for it. The reason this matters is because I can't undo the muscle memory of two decades of touch pads: You two-finger scroll in the opposite direction that you would a tablet, which is to say the same way you use a wheel on a mouse. You two-finger drag down to scroll down, because you're not physically touching the screen. Well, everyone defaults the "wrong" way for this now. There's probably a registry setting for this, but I can't find it. I found it on my work laptop (a Lenovo), but the only solution yet on my personal laptop (an HP) is to open the settings.

My desktop also believes that my internal, 2 gig M.2 SSD is removable media. It sits on a PCIe card inside. I can't figure out how to make Windows not see it that way. It technically doesn't matter, but Windows shows the drive in a little group separate of your internal drives, and it bothers me.

This kind of weirdness was never a thing on my Macs, but to be fair, there was a time when you could multiply this times ten. It's better, but they've still got a ways to go.


Why isn't racism the most vile thing to you?

posted by Jeff | Friday, August 28, 2020, 5:00 PM | comments: 0

There aren't many things that I find more vile than racism. Really any of the "-isms" are like nails on a chalkboard to me, whether it's racism, misogyny, homophobia, xenophobia, etc. If you fundamentally don't like a group of people who are in some way different from you, that's just the worst you can be. So when people are standing up and saying, "This has to change," why would you push back against that?

I can't entirely accept that environment plays a part in this. Growing up in the days of integration, to today when my social and professional circles are diverse, I can see why I would find racism so absurd and rage-inducing. Even as the white guy in the room, you're talking about marginalizing the people that I love and respect. It's not a struggle to see why I would stand with the people tired of being marginalized. But even environment isn't the whole story. When, as a child, my grandfather or uncle would make racist jokes, it made me deeply uncomfortable, and I would say as much by the time I was a teenager. Even as a child, I knew right from wrong.

Part of it is certainly that there's a luxury, yeah, a privilege, to being white. You could observe that racism isn't your problem. Race has certainly played no part in my success or failure, ever. It never will. It won't affect my child either. I firmly believe that this is where a sense of morality and obligation to community comes in. "Those people" are your community... why would you not advocate on their behalf? I don't think it's a hard leap to walk in the shoes of someone concerned that they're two and a half times more likely to die at the hands of law enforcement for the color of their skin. It's a thing when your house is worth 40% more if it doesn't appear too "black." These aren't imaginary things. I feel that some people aren't even willing to acknowledge that racism exsits.

There is no more important thing. We can differ and "agree to disagree" as people like to say when they cop out of engaging in the discussion, when it comes to things like fiscal and foreign policy, or who pays for healthcare. But not this. There may be two sides to the issue, but only one is morally correct. Furthermore, if you truly love America and its values, you have to believe that racism is at its core anti-American. I would make a similar argument about any claim to Christianity, but I'm not one to define faith for you. The most fundamental Christian values include compassion and peace toward your fellow humans.

Being against racism is not a left or right issue, but it is the issue, and America's greatest failure. We can't let it persist for another 300 years.


Playing the long game

posted by Jeff | Thursday, August 27, 2020, 6:00 PM | comments: 0

I had a great talk with my boss this week about playing the "long game" when it comes to the kind of work managers do. Despite being more manager than maker for much of the last decade, I often have a hard time getting to Friday and feeling like, "What did I deliver?" When you're in the weeds as a software developer, it's different, because you write code, it goes into production, and you can pat yourself on the back. This is also the case when you're doing consulting work, which I've been in and out of for my entire professional life. When you're leading people, you're engaged in some combination of enabling, blocking and tackling, tweaking processes and helping people level up in their abilities. Meanwhile, you're always gaming toward something that manifests itself over time, whether it be larger company goals, cultural changes, delivery of a project, etc.

So when he talked about always looking at the future, I realized that is something that all of the leaders I've respected tend to do. I remember my first boss at Microsoft was like this, years into trying to change the engineering culture into something that was more agile and responsive to customer needs (when the company was definitely not at the time). His advice was similar, as I recall him telling me that you just have to be patient to get to the place you know you need to go.

How am I doing? When I look at this year so far, and previous gigs, I've been pretty good about keeping my eye on the long game, despite having some anxiety over an apparently lack of weekly "delivery." I'm definitely not very patient the way my MSFT manager was, but I've made meaningful progress on my goals this year, hit all of them last year (and set up the org to hit the next set of goals), and the job before that is still doing pretty well on the foundation I laid. I feel like I've gone to the appropriate level in the weeds, most of the time. That feels pretty good. I've never been a Type-A personality, but it doesn't mean I don't enjoy a little validation now and then.

It turns out there are a lot of things in life that are not simply about the moment. Your physical and mental health are things you work on for the haul. I have to remind myself daily that parenting challenges are not solved in a day. Careers are built over time. Fortunes too, if that's what's important to you.


Good therapy

posted by Jeff | Thursday, August 27, 2020, 12:30 PM | comments: 0

I had a really good session with my therapist this week. It's really the best arrangement I've had, because I can generally think of some high level topics going in, and within a few minutes we have a pretty solid agenda. She's efficient about moving through the topics, and not necessarily reaching resolution, but sparking the wider body of work that has to occur to improve life.

It hasn't been like that with all therapists. A friend once told me, wisely, that if therapy isn't working for you, you need a different therapist. I believe that's true. Some people get you better than others, and you're better at communicating with some better than others. When you have that, it's like magic, especially if you've been doing it for a long time.

While I did have a good session, I'm mostly writing about how valuable seeing a therapist can be in the general sense. If you can afford it, or if it's covered by your insurance, trust me when I say that it's a valuable experience. You don't need to have something "wrong" in your life, it just helps you figure out you. We can all be better at life. I first started seeing one in college, but stopped until Steph and I split, about a decade later. Since that time it has been intermittent, but I started to be more consistent about five years ago or so, going at least every other month. The topics are all the usual things... childhood damage, parenting, relationships, career satisfaction, and the fundamental discussions of purpose.

The two things that suck about seeing a therapist is that not everyone can. There are often a lot of underutilized county resources, but people don't know about them. Insurance rarely covers it. It's often something that only people of means can do, and that isn't good. There also continues to be some silly stigma about mental health in general, that you only need to do it if you're "broken." People who think that are ignorant.


Purge urge

posted by Jeff | Tuesday, August 25, 2020, 9:51 PM | comments: 0

One of the leading indicators that Diana is enduring excessive stress or anxiety is that she gets into extreme fits of organizing and cleaning. I guess it's kind of a charm, but I find myself asking, "What's wrong," if it isn't already obvious. For her, I think it's the classic thing where you try to exert come control when you feel like you don't otherwise have any. For me, it's something else.

I've been on this kick the last few days of purging things. It started simple enough. I have a desk drawer that was full of old cables and things that I would never likely need again. There were things like a 15-foot VGA cable, countless Apple "dock connectors" that fit only the old iPad no on uses, USB A to B cables that I don't think fit anything I actually own anymore, and various short-run RG-6 cables with F connectors left by cable installers from the six moves we made inside of eight years. Something in my head realized that the things on my desk that we still use frequently, like memory card readers and mobile batteries, could find a home inside the drawer if it wasn't occupied by things I'll never use or need. So I chucked them.

Admittedly, part of the problem is that I hate the idea of these things landing in a landfill, and often the cost of recycling them is extreme enough that it's not worth trying to figure that out. There is an entire plastic tub of things like this in the garage, sitting below a tub of amusement park PR artifacts, posters and boxes from my current PC build, and I have no idea what's in there. I purged some of it years ago, when I found things like ISA cards for computers and SCSI cables.

Still, the things on my desk are now in the drawer. Then I turned attention to the file cabinet, where there were undoubtedly all kinds of ancient treasures that moved with me across 6,000 miles. Before everything went paperless, I filed away everything. So sure enough, I had checking account statements from the early oughts. I found a cut debit card from Bank One with Stephanie's photo on it (Bank One was eventually absorbed by Chase). Unfortunately, since I've had the same checking account for roughly 25 years, I had to shred all of that because the account number was on every page, coupled with every address I've had in that time. That was a bit laborious.

I generally keep gadget boxes for moving, because as I mentioned, I've moved a lot. But now there are some gadget boxes that will not likely ever see the products that were in them. I'm never going to take the WiFi switch in my kitchen with me. Who knows what else is in my cabinet, but I'm sure I can throw some of it away. I bet I have cell phone boxes from phones I traded in years ago. They've gotta go. I will, however, keep the big TV boxes in the garage. One of those is the reason I still have the same TV I bought 10 years ago.

I admit that I kept a lot of crap with me for a lot of years, but by the time I made that sixth move, I was traveling much lighter than I used to. Life is easier with less crap.


MAGA vs. BLM hats

posted by Jeff | Monday, August 24, 2020, 12:00 PM | comments: 0

There was a lot of noise about something that didn't actually happen regarding Goodyear and its dress code requirements. The allegation was that the company explicitly prohibited "make America Great again" clothing but allowed "black lives matter." The company said that the presentation slide wasn't real, but that the company did have a policy prohibiting political candidate clothing, and the previous slogan is obviously part of Trump's campaign.

Regardless, let's explore this. The president famously denies that "MAGA" is coded racism, which is wholly absurd for anyone who observes common sense, but he simultaneously believes that "BLM" is in fact some coded phrase that is diametrically opposed to the idea of making a nation great. If anything in the universe reinforced his dog whistle, it's this.

We've been over the fact that BLM is not a call for trivializing white people, and that the reason it exists at all is that black people are consistently more likely to be injured or killed by law enforcement, or incarcerated disproportionately to white people. Since 2015, the number per capita of black people killed by police is 2.5 times higher than that of white people. This is objectively true. If your response to BLM is "all lives matter," you aren't listening. No one is suggesting otherwise, but the crisis is with the minority population. BLM is a call for equality and justice under the law, and if you truly believe that the law is important, you must conclude that equality is a cause to champion.

If you embrace MAGA, what time exactly do you want to return to when America was great? Just moving backward in history from today, was it when gay people couldn't be married? When segregation saturated our society? Jim Crow laws? Japanese internment? Women couldn't vote? Irish immigrants and Catholics were discriminated against? Slavery? I'd love to hear what made the US great previously. It's obvious that MAGA is a call to people who embraced the racism and segregation. You'll never hear that crowd referencing the space program or building the railroads or stories of immigrants bootstrapping their new lives in New York City. And by the way, that kind of nationalism, romanticizing a fictional past, is right out of the fascist playbook.

You can try to rationalize it all you want, but MAGA is symbolic of hate, and it would be even if it was just by association to a racist president. Just as you may refuse to see why the phrase "black lives matter" is literally a fight for life, and be empathetic toward the people it affects, "make America great again" is deeply painful to the same people who have no memory of that greatness, only oppression. To refuse that acknowledgment is to exercise privilege that you were born in to.

So if you insist on making this just about a difference in opinion, no, it's not that. It's never OK to embrace a racist opinion. There is no moral equivalence here. One is a movement to restore an order that oppressed much of the population, the other seeks equality.


Covid catch-up

posted by Jeff | Sunday, August 23, 2020, 7:15 PM | comments: 0

I haven't written about the pandemic in awhile, and honestly, I'd rather not. But I've had some things on my mind and I need to expunge them so I can free up some brain space for something else.

The story locally is improving, with our infection rate (R0) the lowest it has been since February, a little below 0.9. Unfortunately that's not as reassuring when there are more cases in play, because our daily count in Orange County is still four times higher than it was at the start of June. Anything below 1.0 at least means that it's not exponential. When we do go out into the world for things, people generally seem to be playing along with the cultural norm, masks and reasonable distancing and such. Personal behavior I've observed (mostly via Facebook) is not very consistent, so I'm not sure what to expect, especially with some kids going back to school. My concern is that people will get complacent because they still don't understand that exposure risk is a combination of duration, current infection rates coupled with case counts and environment. Things are still far worse than they were in May and June, but we can still do stuff if we continue to mitigate. People in rural areas are still, apparently not rolling with that reality.

That's probably the biggest surprise, is that with adjustments, you can still do stuff. I mean, Disney seems to have figured out how to open the parks without being unsafe. It seems like a terrible experience, with the masks and plexiglass everywhere, but it is safe. Unfortunately, the things that we enjoy the most are pretty much going to be among the last things that we can go back to, including live theater, cruising and me going to New York for work. OK, the last one hasn't even been a thing yet, but right now there are no plans to open the office back up in One World Trade Center. Who knows when Broadway will come back.

I've had enough friends get sick at this point that I'm pretty sure I want to work extra to avoid it. It's not even that Diana and Simon are high risk, it's that perfectly healthy low risk people are on their backs for three to six weeks. I can barely deal with three days of conventional flu, but all of this other bullshit that comes with Covid is pretty terrible. A friend of mine up north was basically down for three weeks with a mix of symptoms, then another three weeks of constant fatigue, headaches and a GI that was in constant distress. I haven't known anyone personally die, but so far one friend lost his father, another lost one of his local police officers and a school athletic director.

The thing that makes me the most sad isn't even the relative isolation and halt to our favorite activities. It's the respect that I've lost for so many people that I thought were... better. Nobody wants this, obviously, but by observing the gathering evidence that shows us how to mitigate the spread, we can in fact limit the damage to each other and the economy. It still won't be normal, but we can keep it from being a catastrophe. Yet, some people don't want any part in being logical or listening to experts. They honestly believe that the gradual understanding by experts is itself a failure, and after all, they can Google things and know better. I don't even understand how anyone can make it political. A virus doesn't see party lines, but as we head toward 200,000 dead, there are still some who believe none of it is real. If it were a person causing the deaths, imagine how differently they would react. It's always easier when you have someone to blame.

We've had some solid and respectful discussion about this on CoasterBuzz of all places. One of the things that comes up every few weeks is someone from the above category, and they insist with all of the big dick energy they can muster that they're not going to fear this. It's an odd choice of words. I don't fear a bus, but I'm not going to step in front of one. In Covid times, I'm not going to enter a sauna with ten strangers, for my safety and their own. I'm not afraid of the sauna or the people, I just know that, based on objectively observable evidence, that it's a bad idea. You're not less of a person or a coward because you can identify a risky behavior and avoid it. But these are the same idiots who were chest thumping about getting a haircut (and conveniently complaining about public protest weeks later).

As for us, yeah, psychologically there are certainly some challenges. July and August are shitty months to be outside doing stuff anyway, because that's our "winter" here in Central Florida as far as I'm concerned. By the end of June, I was content to be inside. But what I miss is having parties, friends coming in from all over the country to visit (mostly theme parks, but us too), and of course the aforementioned cruises. We were supposed to go to Alaska this summer, host friends from Norway and have an epic summer party. But even the simple things, like date nights and meeting up with a friend or two at a resort bar, it's weird to not have any of that. School is the new challenge, and we're only two weeks into that.

So here's to hoping that these vaccine trials are yielding positive results, and the investment to mass produce them actually works out. I can suck it up and deal with the weirdness for another four to six months, but beyond that, it's going to get harder.

This won't last forever, treat your sadness with a smile
We can't have what's next 'til we hang inside for a while


The last nail in the Windows hosting coffin

posted by Jeff | Sunday, August 23, 2020, 1:20 AM | comments: 0

I decommissioned the Windows-based app service plan in Azure that was home to my sites since I moved them in 2014. All of the sites are now running on Linux-based app services. It also means that I have nothing left running old school .NET Framework, as it's all .NET Core. Core stuff runs on both Windows and Linux. I've been trying to get to this spot for a bunch of reasons:

  • All of the Linux pricing is significantly cheaper with more RAM and CPU time. I don't totally understand that since, you know, Microsoft owns Azure and owns Windows, but OK.
  • Anecdotally, everything runs faster on Linux. I moved my build and deployment pipelines last year to the Linux flavor (where I could), and they're all faster. It definitely builds, deploys and starts faster.
  • Getting to .NET Core 3.1 already gets you a magical performance boost. Most everything now is rendered in under 20ms, and most of that time is getting data across the wire from SQL or Redis or whatever.

As I mentioned last weekend, the last step in this journey was to port all of the PointBuzz stuff to Core. At the start of the year, we moved the forums out to the hosted POP Forums, leaving the rest of the site in a place where Walt and I can easily modify it. When I ported CoasterBuzz a couple of years ago, I made the mistake of trying to use the Core version of Entity Framework, the ORM. That was a terrible idea because it works differently enough that it hurt. Also, EF sucks. It's a leaky abstraction that you have to use just right or suffer performance issues, and it leaks into all areas of your app. So I threw all of that away and just used Dapper with some basic SQL. I converted most everything in an evening last week. The last task was just to get some of the CSS fixed, since it was built with an old version of Bootstrap.

Again, there are some pretty great cost wins here, and just using Linux app services, I'll reduce my bill by $50/month. Now, if I want to spend the same money, I can get insane performance over what I had, but that doesn't seem necessary. Everything I have online is silly fast already. 

None of this means that I'm now some kind of ninja at the command line. That it's Linux under the hood means almost nothing to me, because this is all platform-as-a-service. I know that there are subtle differences in how things are configured, and that under the hood, Linux app services are actually running as containers. Even the deployment stuff is pretty much the same.

Things have come a long way since the days when I had a server under my desk connected to a T-1 at my house.


I'm collecting video content

posted by Jeff | Saturday, August 22, 2020, 2:20 PM | comments: 0

I've already had my video camera for about six weeks, but mostly have just played around with some time lapses, slow motion and lighting tests (and a distant rocket launch). So far, I'm pretty excited about what it's capable of capturing. It's fairly forgiving of poor exposure, and the raw capability, which is overkill generally, is pretty amazing. But in the short term, I'm already starting to collect content for all kinds of silly nonsense to put on the Internets.

Literally, I'm going to bring back SillyNonsense.com, a domain I've had for almost 20 years. It's where this blog began its life, before they called it a blog. I don't know what all we'll put on there, but it's fun to make stupid little videos about all kinds of things, and we're going to do that. So far, we know we'll do some drinks, probably some cooking, Lego reviews, product reviews, stupid cat tricks, and who knows what else. We have some ideas about how we can make it a little more meaningful, too.

Today I'm time-lapsing the build of the Lego Assembly Square. I kind of missed out on a bunch of the town building sets, as they're discontinued. There are only four currently available. I already have the Corner Garage, and it's super cool. Eventually, I'll have that stuff online somewhere.

This is my Covid thing, I want to make more stuff. I've got time for it.


Remote school and special needs

posted by Jeff | Thursday, August 20, 2020, 10:30 AM | comments: 0

I'm not sure why school has been more disastrous than it was in the spring, when they were all winging it, but it is for us. As a percentage, I haven't had to be involved in that much of it, but enough to see how terrible it is. I don't know how Diana will survive it. Under normal circumstances, Simon has two teachers, a special education teacher, a staffing specialist, sometimes a psychologist, and a pretty great principal looking out for him. Very little of that translates well to the virtual world.

It starts with the IT problem. While I can appreciate a well-oiled machine at work, where we've all used this stuff for years, that's not the case for school. Now layer in a kid who finds comfort in the order of working technology. When something goes wrong, like a meeting drops, or worse he can't get into one for some permissions reason, he flips out. Last week, there were notifications that kept appearing over the text box for chat, which was infuriating for him. When he accidentally closed the window, I witnessed a meltdown unlike anything I've seen in probably a year. And mind you, this was just some trivia, for fun. I couldn't get him back after that, and my reaction to his reaction was also fairly visceral and not constructive.

The other thing we struggle with is keeping him plugged in. When his mind wanders, as it often does with ADHD, he'll miss some vital verbal instructions, and then panic when he doesn't understand what he's supposed to do. In a classroom setting, this becomes obvious, but not at all here. Diana can't sit with him the entire time.

There are purely mechanical brain wiring issues that we've seen in a way that we couldn't appreciate though when he was physically in school. The more we see instances of multiple choice, for example, he simply can't move on if he doesn't know the answer. It seems impossible, but guessing is something he seems almost incapable of. I think a part of it is that he doesn't understand the consequence of being wrong. He doesn't understand that being wrong is part of the learning process, that to get something correct means understanding when it's wrong.

The part with the consequence is not new, as he struggles with this in all aspects of life. Cause and effect as a broad concept seems hard for him. When he misbehaves and is punished, he doesn't make the connection of why there's a consequence. So if we take away video games, for example, his brain doesn't go to, "I should not do that again," it's, "How do I reverse the situation and get back the privilege I lost?" This one is tough. When he is disciplined, he shouts and insists that we're making him angry, again, not understanding that it was his actions that got us here.

For me at least, the biggest problem is trying to balance accommodation with accountability. There are legitimate reasons that we will help him out at times, admittedly often for our own convenience, because you have to pick your battles. You want to help "fix" his problems, but that can come at the expense of him learning to do things himself. For example, I wouldn't help him get the last bit of toothpaste out of a tube, and me not helping, or suggesting he just get a new one, led to an epic meltdown. The situation was avoidable, sure, but at what point am I reinforcing reliance for relatively simple issues of self-care?

I don't like myself or being a parent in these situations. This is the stuff I'm seeing a therapist for. It's hard to cut yourself slack when you have a finite amount of time to help your little human grow up to be functional and successful. In the short term, you just want your kid to be happy.


Another sick cat, and growing kittens

posted by Jeff | Tuesday, August 18, 2020, 8:40 PM | comments: 0

Even before we lost Emma, we got on the list for the kittens, in part because Oliver has lacked a serious playmate since Gideon died. We developed this grand plan, hoping to heal the pride a bit. Now, Oliver is sick.

When the kittens came home, he was kind of salty toward the kittens, even though they desperately wanted him to be a cuddle buddy. I thought he was just being difficult, but we noticed that he wasn't eating particularly well. At first we thought it was just the different mix of things since Emma, who was on special food, and the the kittens were eating what the breeder had been giving them. But it turns out he wasn't eating anything we gave him, so it wasn't an issue of him being picky. Then he had diarrhea for a few days, and was barfing up his thyroid meds along with everything else. He lost a lot of pounds, really fast.

The vet did blood work which was mostly normal, and my former girlfriend vet believes it's likely IBD or small cell lymphoma, common for his age. Getting a definitive diagnosis for that would involve some pretty expensive tests. If it's the lymphoma, his long-term prognosis is probably not great, while the IBD is treatable with steroids. The 'roids may help initially in either case. Right now we're trying to ascertain how he's feeling right now, because he's so lethargic. He's drinking pretty well today, and ate a little without barfing the last two days.

If I've learned anything after seeing four cats go in my adult life, it's that you kind of "know" where they're at and when to keep trying and when to do the humane thing for them. Oliver is not quite 14, but already older than Gideon was. Diana and I don't feel optimistic, because he's changed so much, so quickly. We'll get him back to the vet and see if there's a workable drug treatment assuming the IBD first. As quickly as he's deteriorated, I suspect he'll let us know pretty quickly if the drugs work. It's hard, because unlike Emma, who obviously expended all nine of her lives, Oliver is supposed to be the father figure for the kittens for a few more years. Maybe we're just being naive.

Meanwhile, Finn and Poe are visibly larger after just two and a half weeks. Even more odd, Finn is a little bigger already. Ragdolls are a big breed, which is why we wanted them, but I'd like them to be little at least for a little while! The little fatties can put away a half-can of food in no time, and want more. They are crazy high energy, and maintain it for long parts of the day. They also exhibit many of the stereotypical behaviors for the breed. They follow you around like a dog and make eye contact with you.

These kittens were perfectly timed. Just two weeks in, and they've given us a lot of love and joy in a short time. They're both charming and have their own personalities. Finn is a troublemaker and early morning cuddler, while Poe secretly instigates the wildest play time and is the more dog-like of the two.

Weird times in the Puzzoni pride. Oliver is getting lots of extra love.


Migrating cloud stuff

posted by Jeff | Sunday, August 16, 2020, 9:20 PM | comments: 0

I went on a real tear last night getting to a good place with the blog app project, to the point that I was able to migrate the ancient podcast site with very little effort. The old thing was running on ASP.NET v2 from 2005-ish. I literally don't remember how that worked. The new version is the same engine as this blog, with a different skin, and all of the underlying podcasts are in blob storage. The only "problem" is that Apple doesn't like podcasts being redirected (I do this because I want to count the download), but whatever. They haven't delisted it.

This got me to thinking... what other crusty junk do I have out there? I moved off of a dedicated server in the spring of 2014, but I haven't really had to do much of anything since then. Because everything is virtual, the underlying hardware just kind of gets better without me doing anything. But the software has changed a ton, as the old .NET Framework is on its way to retirement, and the newer multi-platform, crazy good performance flavor is stable and amazing. In fact, instead of being named "Core," it'll just be .NET. The big magic is that since it all runs on Linux and in containers and such, even on Microsoft's own Azure, it's cheaper. Or if I don't want cheaper, I can get essentially twice the virtual resources for the same price. (I want cheaper.)

So today, I started moving stuff on to the newer Linux stuff, which involves a lot of deleting things and provisioning things and pointing DNS to new places. With all of the smaller things, I did have one old thing I needed to convert, which was the short-link server cstr.bz, which I use for CoasterBuzz Twitter post links. That didn't take long, fortunately. CoasterBuzz is already written for Core, so I don't need to do anything there, but I also need to move that in the off-hours because it's too busy. Automation helped me with other things, where I just had to point deployment to the new things and they were good to go. Obviously the hosted forum app is already on Linux resources. Six months in, zero downtime.

Basically, the last thing that I need to change code to move is PointBuzz, and that's going to suck a little. It uses the old MVC framework, which isn't too hard to migrate, but there's a ton of old Entity Framework in there, which does not migrate easily, and sucks anyway. I regret using that crap. It's a leaky abstraction that bleeds across boundaries and it's never efficient.

The one thing that's still a pain is certificates. As Google wants everything to be secure, you can't not have them. But you also shouldn't have to pay for them or have to manually update them. There are some open source projects that assist with this to an extent, but they're brittle and hard to setup. Doing manual certs is easy, but they're only good for three months. I hope this gets easier over the next year.

On the bright side, we still can't do the fun things like leave the country, so I suppose this is how I'll spend weekends for awhile.


So many open source projects

posted by Jeff | Saturday, August 15, 2020, 4:19 PM | comments: 0

In the category of "too many ideas," I've been writing code for a bunch of projects I've had in flight. Maybe I do this to counter the chaos in the world, but it feels good to sit down and make things. Today I sat down and cranked out almost an entire feature on one of the projects, which is unusual because I don't usually have the patience for that. Part of the reason that I do it is that there aren't other projects out there that do exactly what I want, so I do my own thing. The big change in my direction is that I give more of it away and open source it now, and look for the basic abstract implementation and then consume that in the specific ways I want. Here's the quick run down of what I've got in flight.

POP Blog

It should hardly come as a surprise that this is a thing. This was born out of this very blog, but I have three real needs for it right now. The first is obviously the blog. The second is that I need to replace the CoasterBuzz Podcast site, because it's based on ancient frameworks that aren't supported anymore. I might not be doing the show, but I want to keep it available. I also want to move it to a Linux-based container because it's cheaper that way. The third thing is the eventual return of SillyNonsense, which I think is like a YouTube channel for whatever silly nonsense that we decide we want to make a show about.

The new parts of the project are to add the podcast file management, which is what I did today. I still have to implement the RSS sauce, but that shouldn't be very hard. The big value here is that the project compiles to a library that I can reuse in all three arrangements. Each site references the packages and just overrides the layout template and style, and each magically looks like its own site. I don't need to maintain three code bases. I quietly flipped this blog on to it a few nights ago.

POP Forums

I've admittedly neglected this one for a bit. Like the blog, it mostly exists now as a library that I can consume with CoasterBuzz and the commercially hosted version. I haven't done a release since the end of last year, and the last thing holding this one up is some error handling on the admin side. It's stupid fast and can scale to an extent that's higher than I can (affordably) readily prove. All of the telemetry on PointBuzz, which is using the hosted version, puts the rendering times generally under 50ms, and that's on a fairly base level database and low-end app servers. When I get this release done, I'll start thinking about how to modernize the front end, somehow without sacrificing its amazing Google juice. Those pages index so well.

I honestly got a little burned out running up to the release of the hosted version, so I needed to step away from it. Also, when I did launch it, I didn't market it at all because Covid, so I'm still the only customer. Instead of spending money to market it, I'd really like to find a good candidate to just give it away to for free, some tech-savvy audience, but I haven't spent much time thinking about what that would look like.

Music Locker

This one is more of a science project at this point, but I think it's totally doable if I just sit down for a weekend and try to bang it out. As I mentioned before, the nonsense of the commercial services is getting old, and I'm tired of moving my collection and playlists every few years. Google forcing everyone over to YouTube Music is a backwards move, and even though Google is responding to the criticism, I'm not confident that they'll make it equivalent to the old service.

So far, what I've done is found that it's easy enough to upload a file, look at its metadata, and store that metadata and the file itself. Beyond that, you're just referencing ordered lists of those entries. The persistence of it all is remarkably easy. Building a web interface for it will probably be medium-easy. Making a mobile app for it, I'm not sure, because I haven't done that in years, but I doubt it will be ridiculously hard. What I'm still hoping is that Google backs down on forcing a subscription for the basic functionality, in which case I'll never do this, but I'm not going to hold my breath.


A shit show of a week

posted by Jeff | Friday, August 14, 2020, 8:58 PM | comments: 0

I'm kind of tired of people on the Internets suggesting that others are not entitled to declaring that they've had a difficult go of things. So with that in mind, I'm going to complain about this week.

First off, school started this week, and to say it didn't go particularly well doesn't quite capture it. As I said before, I don't blame the teachers or the district, it is what it is. But I think Simon had a meltdown four of the five days, and generally over things that were relatively inconsequential to his education, but of the utmost importance to his differently wired brain. Diana took the brunt of it, and I don't envy her. She even ended up being tech support for figuring out how to effectively use Teams for the whole class. Then today, while she took Oliver to the vet, Simon accidentally closed teams during the "fun" trivia about otters segment, when he was trying to dismiss the notifications appearing over the chat window, and missing this caused the most epic meltdown I've seen in months. While I was still trying to work. I've never felt as ineffective as a parent as I have this week.

And oh yeah, Oliver, our eldest cat, has been shedding pounds, barfing and having diarrhea. At first we thought maybe he was just being a picky eater, as he liked the food we were giving Emma before she died. But he's skinny in an unhealthy way, and he used to be a total fat ass. The kittens have been amazing these first two weeks, but Oliver was supposed to be the big brother and father figure. If he goes downhill, that will be devastating.

There are little things, too. The printer finally stopped working in a permanent fashion, right in time for school to start. It's not even the fact that I had to shell out $300 for a new one, it's the fact that I don't want to put 40 pounds of electronic waste in a landfill. Smaller things like forgetting to get another bar of soap for the shower, or partially burning some food, also troubled me.

Death feels like it's everywhere. It's the ongoing Covid death or something more specific like the lighting designer who did Hamilton. Or it's someone you knew in real life. One of my former co-workers from the Insurance.com days, Sam Belden, died this week. It's not that Sam and I were best friends or anything, as we last worked together 12 years ago. But we've certainly conversed virtually over that time for years, and would occasionally talk about 80's progressive rock or late 90's alternative. He was part of the team that was among the best group of technologists I ever worked with. Crazy smart guy. He was only 50. I'm sad for the ICOM family.

Work, and I'm thankful to even have a job in these times, has been the most stable thing. But even the regular challenges felt harder this week.

Thank God for the kittens. We're two weeks in with these new editions, and they've brought joy when it's hard not be sad. I've noticed though that they've already grown in two weeks, and I kinda want them to stay small longer.

I imagine next week will be better, but things really piled up this week.


Five years gasoline free

posted by Jeff | Thursday, August 13, 2020, 7:25 PM | comments: 0

Five years ago today, we took delivery of a Tesla Model S, to compliment the Nissan Leaf we were already leasing. That was the end of our reliance on gasoline powered cars. We've since replaced those with a newer Leaf, and a Model 3 (pictured). We've put more than 80,000 miles on those cars.

Three years ago I wrote about the questions that people frequently ask about having an EV, and they're all still true today. The Model 3 is actually more efficient than the S was, so we're paying around 3 cents per mile in fuel. If I actually drove 1,000 miles per month, it would cost me $30. The newer Leaf seems to be about the same.

The biggest thing that has changed for me in the last few years is that I actually enjoy driving. I was commuting about 75% of the time at my previous job. I don't care for commuting, but I'd be lying if I said I didn't enjoy some of the open road opportunities closer to home. Launching off of a red light, even to 40 mph, never gets old. Confidently merging feels great. Cornering hard and enjoying the performance with no particular driving skill required is fun.

The other big change since 2015 is the cost. A long-range EV, which at the time was only the Model S, started at $80,000. Now, a Model 3 starts at $38,000 for about the same range. That's a decrease of more than 50% in five years.

We added solar to our house two years ago, so a portion of our power is as clean as it comes. Even our grid power is down to 8% coal, and up 2% in solar, and most of it is natural gas. It's encouraging to see a lot of solar projects in our area, and neighbor Walt Disney World is powering about half of the property on solar now.

GM has since stumbled with its EV, underselling the Bolt, and abandoning the Volt. Nissan's newer Leaf is fantastic, though I'm not sure how it's selling. Other than that, Porsche has a serious EV, but no one other than Tesla is pursing the long-distance, lower-cost market, so they own it. Demand is still exceeding supply for them, and the company is now more valuable than the next three auto companies combined. It's a crazy world. I'm still scratching my head about why Toyota didn't go full EV on the Prius. Huge missed opportunity.

I still can't believe that electric cars are real, and they're better. It all seems so obvious now. Aside from the crazy people who think that EV's are some political thing, most everyone I know is interested, and most just unaware that they're more convenient than they know.


You're doing democracy wrong

posted by Jeff | Thursday, August 13, 2020, 12:00 PM | comments: 0

One of the side effects of sports rivalry politics is that Americans have largely resigned the democratic process to be about who wins an election. This has become even more apparent now that we know who the candidates for president are. The refrain is already getting old:

"We have two choices and neither one of them is good."

Putting aside for a moment the fact that there is no moral equivalence argument to make here, because choosing between an autocratic fascist and literally anyone else is not a difficult choice, it seems that we forget that the election is only the first part. The second part is keeping the elected person accountable.

Cool, so Crazy Uncle Joe isn't your first choice in presidential candidates. Yeah, same here, but if he wins the election, that's just the start. Once someone does attain the office, the democratic process is to hold that person accountable. We do this through free speech and freedom of the press. Have you written your Congresscritters? Ever email your city council or mayor? Representative government is not a spectator sport.

There is no such thing as a candidate that will align with everything that you believe. And really, what's so great about your opinion? Or mine? The system isn't always ideal, so we hopefully start with a moral foundation, then look for common ground on policy. And then we let them know how they're doing, and remove them when they fail. If you vote the party line at all costs and ignore failure, you're doing it wrong.


A little mess is good

posted by Jeff | Wednesday, August 12, 2020, 11:50 PM | comments: 0

I like that Diana and I are, generally speaking, reasonably neat people. Maybe the right words are that we're not clutter people. I've had friends at various points where I would visit them and find that they had piles of stuff everywhere, and that kind of chaos messes with me. I'm not judging them, but I have some sense of order that I need. It's not really even that extreme.

Today I noticed that we have what I would describe as "a little mess." I also think that it's indicative of something good happening. In my office, I have gear and gadgets lying around, and even a tripod in the dining room. Diana's secondary sewing machine has made it to the dining room table, and I see little balls of thread here and there. Simon has fragments of Lego in various places. Charging cables are not put away. This state is the result of the fact that we're doing stuff. We're making things. We don't live in a museum. A little bit of a mess is a house being lived in.

This is what I love about my little family. Yeah, a basket of laundry may sit unfolded for a day or two, there's definitely dust gathering under the coffee table, and sometimes, the next meal is under way before the dishwasher gets empty. We can all roll with that. We're not slobs, and we've been known to spontaneously break out the vacuum when cat litter has managed to track about, but the chores are rarely urgent. Work, parenting and the world happens, and as long as everyone eats and remains (relatively) clean, we don't stress about what has to be done next.


Am I ASD and ADHD? Does it matter?

posted by Jeff | Wednesday, August 12, 2020, 3:00 PM | comments: 0

I'm a parent of a child who has Autism Spectrum Disorder (ASD) and Attention Deficit Hyperactivity Disorder (ADHD). The two often go together. I spend time trying to decipher how Simon thinks, and I tend to do it the only way I think I can, which is through empathy and my own experience. It's not a very scholarly way to go about it. I've kind of walked around whether or not I have these same conditions in various blog posts, but I feel like I need to be more specific and talk it out. While that sounds like me taking my kid's challenges and making it about me, I think I need to go through this exercise to get to a place where I can be more effective at helping him, because I'm definitely not at the moment.

Let me roll back to my childhood first. In the early 80's, and I suspect the 90's, kids were not routinely screened for or diagnosed with autism. Part of the reason is that autism was more narrowly defined, and if you weren't like "Ray" in Rainman, it wasn't autism. The world is older and wiser now, and that's why the wide range of things that may constitute autism are defined as a spectrum disorder. Have autism diagnoses increased in frequency? Of course they have, because the definition has changed. ADHD has followed a similar trajectory, because for a long time, what we now call ADHD was written off as a personality flaw, or worse, poor parenting.

The more I learned about Simon's challenges, from age 3 and on, the more I started to identify things that have given meaning and understanding to the things about childhood that were not great memories. In exploring these with a therapist, she believes that I probably have both conditions, but as she's a therapist and not a clinical diagnostician or doctor, technically she can't make that call. On the ASD side, I can recall at least a dozen vivid memories of situations that I could not logically reconcile and caused what I would describe as meltdown behavior. Even in early adulthood, I can recall situations where I would disregard certain social contracts in ways that I likely appeared "weird" to others. For the ADHD, it explains how I went from honors student to failing a quarter of American Literature in high school, because I couldn't commit to the work. Studying chemistry was the worst. It continued in college, where I'm surprised that I never actually failed a single class, but got damn close. The issue was never ability, because things I liked and wanted to do always would lead to success. Homework, when I just wanted to find free pizza and someone to makeout with? Good luck getting that done.

Where am I now? In an ideal world, ASD and ADHD require people to develop coping strategies and make adjustments that allow them to work more seamlessly in society and with its generally accepted contracts. Sometimes ASD can completely prevent the manifestation of creativity, but it can also super-charge it. Sometimes ADHD can prevent a person from finishing anything, but it can also enable a person to context switch and make short-term decisions like a boss. But again, getting there takes practice and patience. If I dig into what I'm really good at, I'm good at things because of my wiring, not in spite of it.

Does it matter if I am these things? Yes. Parental empathy aside, I want to know and understand myself. I'm not looking for a scapegoat or excuse for things that haven't worked out in my life, but knowing and accepting them enable me with a point from which I can move forward. Feeling bad about yourself is exhausting, but self-awareness as a basis for humility and empathy, to me, is a formula for being a great human being. I'm not broken, I just have a different interface to the world. I want to continue to adapt it to make it work for me, and for the world.


Nerds are going to save your ass again

posted by Jeff | Tuesday, August 11, 2020, 8:36 PM | comments: 0

When I was a kid, being a nerd was not something to celebrate. As an adult, it seems to me that the nerds are the ones making the breakthroughs, advancing science, building entirely new industries, and definitely making the most bank. I wish I would have known that was the case in high school, when I was socially disregarded.

Nerds make the software that you use every single day. They're the reason you can keep a connected super computer in your pocket. They invented the brilliant gigantic TV you watch. They're the reason that clean water comes out of your faucet and your shit reliably exits the house. They made it possible for your food to be of the highest quality, as well as the ability for someone to deliver it to you fast and efficiently. They're the reason that your life expectancy will be greater than that of your parents.

But what nerds don't generally do is lead in the political sense. I can speculate all kinds of reasons for this, not the least of which is the aforementioned disregard. I think the more likely reason is that we know better than to put ourselves into that kind of situation. I don't know very many nerds that are particularly partisan, and it seems like you need to pick a team to run for office. If nerds are thinkers, subscribing to an inflexible ideology seems like a pretty bad way to roll.

Now the nerds are working their asses off to figure out what the solution is to a global pandemic. They're working on vaccines, they're modeling exit strategies. They're compiling statistics and looking for trends in data. In short, while selfish people showing wanton disregard for the mitigation strategies that will minimize the damage, nerds will are working to save your ass.

So thank a nerd.


School is a train wreck, but it's not the district's fault

posted by Jeff | Monday, August 10, 2020, 10:30 PM | comments: 0

Today was the first day of school here in Orange County, remotely, and by most accounts, it sounds like it was largely a train wreck. For Simon, even a virtual first day was going to be stressful, but he takes on the additional burden of being troubled by kids who don't mute and technology that fails. Diana had to distract him with other things several times while they worked out the kinks.

Parents in particular are angry, some are shouting "in person at all costs!" and still others are struggling to make anything work while working. The truth is that there are no good options in a country with no vaccine, no testing and certainly no contact tracing. None of this is the school district's fault, or the teachers. I think it's important that we give everyone at the local level a little grace, because they're doing the best they can, and without any money to do it. There is no playbook for this.

On the other hand, in Florida we can certainly blame the state, which has famously pretended the pandemic was no big deal, and worse, tied the hands of the districts until as recently as a few weeks ago, when they could have been making better plans months ago. And of course, the federal response has been an even bigger shit show. The failure of leadership has been deadly and dramatic at all levels except the local level, where they've done the best they could with nothing extra.

Venting aside, raging against the machines won't improve anything now, so we're probably better off finding ways to help our teachers tomorrow. If there's a societal fault to the pandemic in America, it's one of selfishness, so let's not keep doing that. We all have to give a little, look out for each other, and generally accept that convenience as we know it will mean something different for awhile.

I think it was Kennedy who said, "Ask not what your school can do for you, but what you can do for your school."


Presentations as performance art

posted by Jeff | Friday, August 7, 2020, 10:21 PM | comments: 0

I had a pretty big presentation to make at work to 40 or so people this week. Most of them I had never met, and they included everyone up the chain. It went really well, with great follow ups from a number of people. I haven't had that experience in years, which is an interesting thing to write about another time, but the particularly strange part of it was the positive feedback on style. That got me thinking a little more deeply about how I approach presentation.

I've been getting up in front of people and presenting stuff for basically my entire professional life. I think I'm at a dozen or so conference-like presentations and countless events within my various jobs. I really enjoy doing it, though I'm not sure exactly why. I'll get back to that. Let me unpack first by looking at the experience.

My first week of college, I got to be on the radio. I was both fearless and terrible at it, but within a few weeks, I quickly tried to understand how to emulate what I had been hearing on radio for my whole life, without making it into a caricature. The first thing was to realize that my "natural" tone was a little deadpan, but maybe I could use that. The next thing was the realization that sounding like you were having fun was a lot easier if you were actually having fun. My first program director in a real job emphasized this too. He described a guy who he worked with that was the saddest son-of-a-bitch he ever knew, but when he keyed on that mic, his face looked like a circus clown. So the first rule of performance was basically that acting is the key to good performance. If I go back and listen to those old air checks, I can hear it... I was having fun, even if I might have been faking it.

I never got really deep into visual performance, but I did that too. I remember my freshman year I went out to cover a house fire for our news show. Again, "reporting" was largely a function of emulating what I had seen on TV, so I did that. But it was depressing as hell, and if sadness came through in my stand-up, it's because it was really sad. I knew that day I never wanted that job. But after college, doing government TV, I did a lot of stand-ups, because there was no one else to do it. Again, I enjoyed it, even if I wasn't very good at it.

I was four years out of school when I flipped to this software thing, and while I grasped the promise of the Internet early on, my first big job after that was at a media company where people had no idea what to do with the online world. I found myself pitching things to old school print publishers and editors on a regular basis. Powerpoint was already a thing, but because few people had laptops, not many people used it. You had to rely on your in-person sell. Selling was familiar to me, because that's the only way you could land radio gigs. Again, I really enjoyed it, and started to win hearts and minds. Presenting to business folk was not that different from broadcast media. To my great surprise, these were still valuable skills even with the career pivot.

Many years later I would start presenting at conferences and user groups and such. While I enjoyed the performance aspect of it, what I really started to concentrate on was how to communicate with the greatest clarity things that I had learned, that were hopefully valuable to others. This has formed much of my professional m.o. for a number of years: I've learned a ton from others, and I believe there's a moral obligation to pass knowledge on.

I haven't presented anything since Codemash in January (it's a really great conference, by the way, and easily the best run of any you'll ever attend). This time, at our growing company, I was presenting some things that I had implemented with my team and stakeholders around some light project management, with the hope that others would find value in the solutions to problems that I observed. I don't think I was inventing anything truly novel, but maybe how I applied it was valuable. I've been meaning to do a presentation on presenting for literally years across many jobs, and never did it. So here's what I think I do:

  • First pass: Make a deck that outlines everything you want to get out. Nothing is off the table, just get it out.
  • Nobody wants to read all of that shit, so don't be precious about it. Start cutting all of the stuff that strays too far from the core things you want to address. If there are more than three or four big objectives, it's too many.
  • Each frame has to tell a story... verbally. Your outline as written has to be reduced to bullet points, not what you're going to say. Otherwise, you could just write a blog post.
  • Your first rehearsal pass should try to riff on those points. By the second or third try, you'll know what to cut and start feeling what you'll actually say. Watch the time.
  • Is it boring? Try a little humor. I hesitate to advise this. You might not be very funny. I'm not very funny, but I seem able to get away with one attempt at humor each time I present.
  • Rehearse it again. It's too long, I promise.
  • Riff again, don't read. Watch your time.

I have a method, but I don't know if it works for others. When I really think about it, what I do is rooted in my radio days. Each time I had to talk, I figured out in advance what I had to do next. ID, recap the song, self-identify, do the weather, tease and move on to the break. If I did this twice, or three times when I was only doing it on weekends, I could generally nail it with no mistakes. A presentation to others has more content to cover, but you've got more than a song to figure it out. You can do it!

Why would I enjoy this? I'm not entirely sure. As a person who has always straddled the introvert-extrovert line (this is apparently an ambivert), I wouldn't say that I crave attention. If anything, I'm probably too indifferent about being perceived. Chalk it up to my likely ASD. What it probably gets back to is the joy I feel from coaching. I still think one of my greatest human achievements is wrangling a bunch of teenage girls to embrace a volleyball system that led them to unlikely middling success, and while I enjoyed it, I don't think I can really take credit for it. So the idea that I can enable people by successfully transmitting knowledge to others, that thrills me. That they can even enjoy the presentation of that knowledge is gold validation.

I can't imagine any real connection to people who actually act, but there's a part of me that wonders if I could do that. Until then, I will enjoy the opportunity to present stuff to others, in the hope that I'm giving them something useful.


You can't be a switched-on power advocate at all times

posted by Jeff | Wednesday, August 5, 2020, 8:20 PM | comments: 0

The explosions in Beirut yesterday elicited immediate feelings of sadness and concern, and I'll be honest, the second feeling was, "Now this?"

I am generally an empathetic human being, and I've learned over the years that I am deeply emotional, if not always having the right skills to process the emotions. I guess I'm saying that I'm probably not that different from most people. At some point in my life, as I'm sure others have, I noticed the way that some people were treated differently, had a more difficult life or otherwise needed help, and being an empathetic human being, felt some moral obligation to help others. Again, probably not unusual. Over the years I've tried to advocate for people in the obvious ways, wanting to counter racism or push for equal rights for the LGBTQ community, etc. I am wholly unremarkable in this progression.

Then Covid-19 happened, and then in the middle of that systemic racism came to the front of the conversation, where it should have already been. Meanwhile, rampant unemployment and fiscal carnage is happening everywhere, and we're all trying to find some kind of "normal" and control in the chaos. It's a lot to deal with.

I'm here to say that you don't have to deal with it all, 24/7. You sure as hell don't have to maintain an appearance that you're doing it 24/7 on social media. (I don't understand the desire or source of energy to maintain any persona on social media, but that's a different post.) You don't have to feel bad about not being plugged in at all times. In fact, I would argue that it's kind of arrogant and a little narcissistic to suggest that you've got the answers and you're going to change the world at all costs. You don't likely have the mental bandwidth to do that. It's OK to tap-out now and then and let someone else take it. The shit shows will be there when you're ready to jump back in and engage.

It wasn't just my feelings of exhaustion that got me thinking about this, I noticed the same predictable pattern on social media, especially on the Twitter. A bad thing happens and everyone posts in solidarity for a few days about it. While this generally builds awareness and cultural empathy, it's only a first step. Action is what moves things toward resolution of problems. Yes, it's great that we can all agree that #BlackLivesMatter, but we have to follow that up with action by engaging with government, especially at the local level, advocating for voting rights, thoroughly researching who we vote for, donate to appropriate organizations, etc. And by the way, no one expects that you should be doing those things 24/7 either.

You're a good, empathetic human being. Do what you can.


When low-tech grounds your electric space car

posted by Jeff | Tuesday, August 4, 2020, 8:39 PM | comments: 0

I was super excited to be driving on a short road trip to Naples and back to pick up the kittens. I jumped in the car two days before to fish something out, when I noticed a bunch of warning messages. Specifically, the 12V battery was going to imminently fail. Unfortunately, Tesla didn't have a replacement available, and I didn't feel comfortable going three hours away not knowing if it would make it. We had to get a super-shitty rental to make the trip.

If I'm being honest, the failure probably has nothing to do with the car being an EV or a Tesla. Florida is notorious for killing 12V car batteries in the heat and humidity, and mine has been mostly sitting in the garage for months. The only real issue is that this particular battery is somewhat exotic. It's an AGM battery, common to RV's and boats, but this one has a particularly large capacity. It was covered under warranty and was in stock in less than a day. I'm not that worried about the cost of the rental, I'm just bummed I missed out on the chance to drive the car. I never enjoyed driving until we went all-EV.

So what's the story? Tesla uses 12V batteries to do two important things. They power the computer, which essentially never turns off, and plays an even bigger role now with Sentry Mode, which uses the bazillion cameras to record the surroundings when people get close. (Some calculate the cost of Sentry Mode at 1 mile of range per hour.) The way I understand it, the other thing it does is power the relays that close when the main power train battery is ready to move the car and power the air conditioning. The clicking you hear under the car when you get in is just that. The two places in the car where first responders can cut a wire to prevent high voltage from being in undesirable places actually cuts the wire to the relay. That's kind of neat.

Since EV's don't have an alternator to charge up the 12V battery, they're recharged by the main battery periodically, in some way that algorithmically attempts to preserve the integrity of the 12V. There's some speculation that the thing gets charge cycled a lot, especially since Sentry Mode became a thing, and that's causing these to die at a faster than the normal rate. Indeed, a friend's died outright without warning recently, also a bit over two years. Seems plausible, but the Florida conditions also seem likely. At the very least, there's anecdotal evidence that the software predicting battery death has become more liberal in warning you, maybe because they've had to tow a lot of cars. What's annoying is that all of this amazing technology is beholden to a part that has been around for decades.

It was covered by warranty, but I would've been content to just buy a battery from a local parts store if possible. It would have cost the same as the rental. And if Tesla had one on hand, even better, same day problem solved. It's super easy to replace and very accessible. Tesla's weakest link is service, which has never been able to come up with demand. They've always committed to not making service a profit center. It sounds like they're getting better though, and much of what they do is done by mobile service, where they come to you. Also encouraging, I saw a dude when I picked up the car loading windshields into a Safelite van. I had to get mine replaced after a massive rock induced crack broke mine, and it took five days over a weekend at the service center, which isn't ideal. I need to get it replaced again eventually, as I'm now sporting three significant chips.

All things considered though, it's still the best car I've ever had, and it's fun as ever to drive. I find this especially true since we don't do a ton of traveling these days.


Beating the Covid 19 (pounds)

posted by Jeff | Monday, August 3, 2020, 10:10 PM | comments: 0

Generally avoiding people, it's not the social distance that has been hard, it's the high potential for weight gain. Then we entered swamp-ass season, when I want to be outside even less. I was pretty worried that my general weight trajectory would be up, despite the doctor's orders to lose weight and get my slightly high cholesterol and blood pressure back down. I'm not gonna lie, the "freshman 15" was a certainty, but the "Covid 19" looked even more likely.

Look, I hate exercise for the sake of exercise. That's never going to change for me. So my usual strategy is to keep moving as much as I can, even though I have a job that encourages the opposite. Fortunately, there were some changes that have helped me not only avoid extra weight, but very slowly lose it. First off, I'm not working at a job with a chef that cooks several times a week, and I'm not eating out. A year and a half of that scene, with stress, put me up 11 pounds. Then I transitioned myself off of soda, trying the various flavored carbonated water products, until I was down to about 6 to 8 ounces a day (down from at least 24). I also got back into the rhythm of not eating after 7, mostly. I've tried to not eat before 11, but I'm less consistent about that.

The short story is that I'm definitely consuming fewer calories than I'm burning, which is a small miracle considering I'm not moving enough and I'm not counting calories in any way. It's the most control I've had over eating in a long time, which I attribute to therapy, my variation on meditation, keeping my hands busy on a ton of different things and generally processing stress. The anxiety is still challenging, but it doesn't make me want to eat.

In recent weeks, I've avoided drinking a bunch on Friday nights, which became pretty routine for us. Swamp-ass season will end soon, and we'll start having days again where a brisk walk or bike ride a day is easy. I'm getting better about moving around a bit between meetings, too, and to somewhere not the fridge. I could pretty easily get back to my "volleyball weight" by the end of the year without a ton of hard work, which is good because I'm super lazy. I've come to realize that the challenge isn't so much the activity, but the eating habits. That's where I have to get it to stick.

Mentally, I can roll with this weirdness for another six months, maybe. I sure miss Epcot lunches though.


Introducing Finn and Poe

posted by Jeff | Sunday, August 2, 2020, 8:05 PM | comments: 0

We've added a couple of little critters to our family. I'd like to introduce Finn and Poe, named after the buddies in the last Star Wars trilogy that helped take down the First Order. They'll be three months old tomorrow.

I mentioned that these two guys were on the way about two weeks ago, and then we very quickly lost Emma just a week ago, much sooner than expected. I guess the timing is good, because their arrival is a useful distraction from our loss. Honestly everyone can use something positive, and two kittens sure are that. I haven't had a kitten in about 18 years. Marrying in to three cats that were already a few years old, I knew it would be a long time. In fact, provided these guys live a long and healthy life, realistically, we'll have kittens one more time in our lives.

We have a lot of experience with cats, because between the two of us, we've had more than a dozen. We've observed that brother cats tend to be cuddle buddies, girl cats seem to love their humans but not other cats. We really like big cats, the bigger the better. That's what we loved about Gideon. My brother-in-law Joe has this beautiful cat Louie, a ragdoll, which I absolutely adore. He's huge, and as is typical for the breed, pretty docile and relatively agreeable to being picked up. I think I annoy him, but he takes it anyway. I've wanted a cat like him ever since I met him, about a dozen years ago.

The breed has only been around for about sixty years, an off-shoot of Birmans. The more that I learned about them, the more surprised I was that the usual breeder nonsense about personality seemed to be true. They grow big, and they're tolerant cuddlers. They're not hypoallergenic, but they don't have an undercoat so they don't generate a ton of dander, which is a plus for all three of us. I think it took some time for us to get used to the idea of not adopting a shelter cat (like all of our previous cats), but there's some appeal to knowing a bit more of what you're likely to get. I'm horribly allergic to very specific cats, though I'm not sure which, so not having that crap shoot was also appealing. (I'll never forget encountering such a cat on a house shopping tour some years ago, and I was miserable the rest of the day.)

The breeder was located just outside of Naples, about three hours away. Her pricing seemed pretty fair, and she was taking care of the neutering and the initial round of vaccines. Apparently boys are in lower demand, so we didn't have to wait very long. I was relieved to see she had a very clean environment, and the boys were in perfect health and super playful from the start. They slept almost the entire drive home. We isolated them to our bedroom and bathroom, and they used the litter box immediately (at the same time), but were not anxious to eat.

Poe seems like the more adventurous one, and warmed up to us almost immediately. He's high energy, and immediately made a game out of running behind the curtains. He's also a climber, figuring out how to jump on the trunk next to the bed, then the bed. Then he just jumped on to the side and clawed his way up the blankets. No fear in that one.

Finn is a troublemaker. He's the one who will tackle Poe, carry off toys and try to mess with wires. When he plays, he likes to nibble and sometimes the claws come out when he's excited. He's also surprisingly more cautious, and still a little apprehensive at times with Simon. He's a little clumsy too, in the adorable way that kittens often are.

They do like sleeping together, and by late last night, they were out cold. Until 6:30 this morning, anyway. Fortunately they discovered the cat tree and spent a good portion of the morning there. Today's experiment was to let them look around the house and meet Oliver. Oliver can be weird, because he's always wanted a cuddle buddy, the way Gideon was, but Emma would always reject him. He directed some hissing at the boys, but they were not totally put off by it. In fact, I can see that Finn really wants to be his friend. He approached him low and laid down next to him, in one of those nature documentary moves where the new animal sends signals to say, "I'm not the alpha, I come in peace." I think Oliver will warm up to them eventually. He might be an old man, but he still often has the temperament of a kitten (honestly I think he's cognitively a little underdeveloped). The boys really want to be his friend.

Simon is really impatient, but he's also struggled to have the still body control necessary to not freak out cats, and he doesn't read their response very well. Cosmo and Gideon never wanted anything to do with him, Oliver kind of tolerates him, and Emma was the only one that really paid attention to him. That's why it was so hard for him to see her go. She would "groom" him by licking him on the head, which unfortunately means he thinks that getting right up in a cat's grill is what they want (they don't). He wanted them to be his best friends instantly, but any animal needs time to warm up to humans. He'll get there, he just needs coaching. The whole point of these kittens is to finally have pets that know all of us from the start.

I'm excited to expand the pride. Losing Gideon and Emma was tough, and I didn't even have as much of a connection to them since they weren't "my" cats. I'm glad I married a cat person.


Hating on billionaires is not constructive

posted by Jeff | Sunday, August 2, 2020, 11:41 AM | comments: 0

I'm generally pretty clear about my distaste for sports rivalry politics, the phenomenon where you pick a team and stick with it regardless of policy or moral failings. While I often associate this with the right, and the cult of personality for Trump, it certainly happens on the other side as well. In fact, progressives get really latched on to CEO salaries and tend to demonize the billionaires. While I think their intent isn't the worst thing, I think they're going about it all wrong. There's too much nuance to simply declare the billionaires the bad guys. The rich may enjoy the result of income inequality, but I don't believe that they're at fault for it.

Take for example Jeff Bezos, the guy who runs Amazon. Let's be clear, they're treating warehouse workers poorly and they deserve more, especially in light of the fact that the company's gross margin is absurdly high at 40%. However, it's not Bezos' salary that's the problem. His comp has been about $81k per year for the last two decades, plus the cost of his security detail. He's rich because he owns 16% of the company, so his compensation is a non-factor. The comp shouldn't be the issue. He hasn't even taken a stock grant.

He's also hated for the theoretical amount he pays in income taxes, along with the company itself. These are fair complaints, but it's pretty weird to lay the blame at his feet. He doesn't write the laws, and he and Amazon haven't broken any when it comes to taxes. You can blame that entirely on Congress, not to mention the municipalities that were prepared to suck up to the company with wholly absurd tax incentives to open facilities in their borders. Some incentives to stimulate job growth are one thing, but some cities when too far.

So what are the real problems? Here's what I think, in no particular order:

  • First, the most obvious thing, if the rich should shoulder more responsibility, that means they have to exist. Things like universal healthcare and a balanced budget are not easily obtained without the input of the people who make the most. We just have to adjust how much they contribute.
  • There is a general attitude by boards that executives deserve a big pay day even if they fail. That's screwed up. You shouldn't get fired and walk away with 8- or 9-figure packages. That doesn't mean that those running huge, profitable enterprises should not be well compensated, nor does it mean that it comes at the expense of others down the reporting line. I imagine you could legislate this, but I think the markets have been too casual to view investments as worthy despite the willingness to contractually reward failure.
  • Corporate tax structure basically needs to be rewritten. If you have a small army of people to figure it out, you can avoid paying taxes no matter how profitable you are. To fix this problem, you need to get money out of politics, and stop pretending that corporate lobbying is free speech. Right now, the feds get 6% of the revenue from corporate taxes, and that's absurd.
  • Similarly, individual income tax law has to be revised. As a percentage of income, I pay less now that I did when I made less. It's natural to make more money as you get older and progress through your career, but that you can find more ways to avoid taxes is more than a little strange. I don't think you necessarily have to get the rich paying dramatically more as a percentage, but it definitely shouldn't be less.
  • Labor protection has to actually be enforced. Look, I'll be the first to say that unions yield mixed results, depending on the situation, but anti-union behavior has to prosecuted, and laws have to be strengthened. Some companies (like Amazon) deal with unions the way that politicians fan the flames of racism, with half-truths and implied threats.
  • Consumers have to stop rewarding bullshit. People shop at Walmart to save a few bucks, but it comes at the expense of lower employee pay and a market dynamic that crushes manufacturer competition by forcing the lowest cost goods to market, usually from China. You want an example? The example of Vlasic pickles shows what I'm talking about. There's a cost to your community, and the nation, when you shop at Walmart. Consumers need to understand these trade-offs.
  • Understand that economic prosperity is not a zero-sum game. As much as I'm annoyed by the right's scapegoating of brown people for every problem, the left blaming the wealthy isn't helpful. Yes, trickle-down economics is bullshit, we all know that. But the little guy isn't kept down by the financial success of the rich. A robust economy can have rich people and a solid middle class if some of the above issues can be resolved. My own fiscal condition is not diminished by minorities, and it won't be by the rich either.
  • We have to outlaw the traps that push people into poverty. How pay day loans are not illegal in every state is beyond me. Predatory lending in general has to stop.
  • It's worth noting that the wealthy typically play a big role in philanthropic efforts. Bill Gates plans to give all of his money away. Had we listened to him years ago, we might have been better prepared for the pandemic. His foundation's efforts have saved over 100 million lives.

Is it morally icky that people can make that much money? I don't know, maybe. I just don't buy in to the narrative that they're all evil and believe they must oppress others to stay there. I haven't met all rich people, but those that I've gotten to know are some of the most generous people I know. Income inequality is very real, yes, but it's not the people at the top who are the problem, it's the system. Let's fix the system, not demonize those who legally use it.