Archive: June, 2023

Networking code for the lighting

posted by Jeff | Sunday, June 25, 2023, 1:00 PM | comments: 0

Last weekend I wrote about trying to make lights move with home-grown code. That experiment went fairly well, but I didn't get much time to get back to it until Friday night. And by Saturday morning, I was a little discouraged. I had problems that made me feel like this simple thing wasn't as simple as I thought.

As I said, the premise is pretty straight forward. You just blast 512 bytes down the wire at a regular interval, and all the things listen and react. If I were outputting DMX right from the computer, that would be mostly true, but as I said, I couldn't make that work directly with the cheap USB controller that I have. I also have an Art-Net and sACN interface that takes the bits over ethernet and then puts them out over a DMX cable, and that I could get to work... mostly.

At first I got obsessed with the scalability of this, which was the wrong place to put energy. I would simulate a hundred universes (see previous post), and the lighting output was like a video game that dropped to an unusable low frame rate. I would never need this, but the problem was intriguing because it didn't seem like this should be hard. I started to look at the code of the sACN library that I was using, and it essentially used a binary writer to turn all of the bytes into one array. I'm not sure the way he's doing it is the most efficient.

But there were two other timing issues that were causing pain. The first is that I was allowing the sending code to pile up in its execution loop, meaning it would start the sending process again even if the previous run had not stopped. Not only does this consume more resources, but then it's possible that the packets actually leave the computer out of order, since the code is running in parallel. That was easy enough to fix, and immediately helped reduce the CPU load. I also realized that the input to change values, sliders on the screen, were potentially trying to update the data more often than the data was sent (40 times per second, if you were wondering). That just makes even more overhead, especially given the front-end I'm using.

And let me talk about that for a moment. I'm trying to use Blazor Server for this experiment. I've used Blazor for my music player and for my word game, but both of those are Blazor WebAssembly, meaning you have a compiled thing running in the browser and sending data back and forth to a server. The coding is similar for the UI, but the server version of this keeps all of the state on the server, and streams just the parts of the UI you need to the browser. The advantage of this is that you have direct access to server resources, like the network connection to lighting gear. The down side is there's a lot of overhead to maintain that browser state, though in this situation it would be unlikely that more than one person would need it at a time. And I like the idea of being able to operate a show from anything on the network with a browser. I'm not married to it though... all of the code that I've written could be glued to any UI technology, I just like what I'm using because it's platform agnostic, and can run anywhere (Windows, Mac, Linux).

So my "user interface" for all of this testing is three sliders on a page. One I have controlling the pan action on a light, one dims one of my tube lights, and a third acts as the main dimmer. I had all kinds of weird results with the main until I got the math right, but I'm super happy with the structure of the code. Once that was working predictably though, I ran into another problem. Sometimes the last packet sent out, say setting the dimming to full off or on, wouldn't be "heard" by the lights. I could see that it was sending out the 0 or 255 on the wire, and if I wiggled the fader slightly the lights would "catch up," but what's the deal?

For my initial implementation, I was sending data using the sACN protocol, because it's simpler than Art-Net. The multicast nature of it also seems to work well across my network, which has a goofy wireless hop through a WiFi extender I'm using as an access point for the wired DMX interface. This also means packet loss is more possible. The optional part of sACN is to send synchronization packets. What that means is that if you have light fixtures (or video walls) across multiple universes, you want them to apply the data all at the same time, so your strobe on one universe starts flashing at the same time as a strobe on another universe. I wasn't doing that since it was optional, but it appears to be desired by this interface I have. Once I started doing that, it reliably did whatever my faders asked, every time. At this point on Saturday night, my confidence returned.

So what would it take, I thought, to implement the Art-Net interface as well? I found a library for that as well, and stubbed out the code to use it. The interface is pretty simple, just a method to send a universe of data, another to send a sync packet, and another to send a polling signal (to let devices know that you're sending certain universes). Ten minutes later, I could see that I was flooding the network with data, but my interface wasn't listening. So I decided to point specifically to the interface's address, and bam!, it was working. Even more interesting, I was able to simulate a hundred universes and there was no degradation in performance at all. CPU usage was still robust, but no perf hit. I'll revisit that, and see how the two libraries are implementing the creation of the bytes.

I now understand a little more about how the two protocols work. sACN does multicasting, which means that it sends data to a specific IP for each universe, in a defined range. The listening devices then listen for the corresponding universes on those IP's. Each packet has a couple of bytes describing what universe to listen to for synchronization packets, so it will listen there as well. It's really elegant. Art-Net, on the other hand, does broadcasting, which means it sends out the data to every IP in the subnet range. And I think that's why I couldn't get it to work, because my laptop isn't on the subnet associated with Art-Net, which appears to default to 2.0.0.0/8.

Before I commit to building a real UI, I have one more experiment to try. I need to apply an "effect" to a number of fixtures and see if my data structure works with it. So for example, panning a light back and forth, or dimming off and on gradually. I think this is the same design pattern as the main fader. The short explanation is that when a fixture's parameter is calculated, an adjustment is applied. Changing the main fader value fires an event that performs that calc on any parameter that is subscribed to the event. It's a rare object-oriented programming win for me.


Some make furniture, I make software

posted by Jeff | Thursday, June 22, 2023, 4:00 PM | comments: 0

I have long admired the people who can build things with wood. Like, when you see a custom made table, or chair, and you can see the craftsmanship in the details and the finish, and admire how solid it is, that's really satisfying. I've often thought about digging in and learning how to make stuff like that, and start a shop full of saws and things. But when I look at what the people on the Internets do in their videos, they have more gear than I do video gear (and they probably have the video gear too to make the videos!). It's a lot of investment for something that I'm not sure I would stick with.

But the truth is that I really enjoy making software. Professionally, I'm more leading efforts like that, and often getting into the system design aspects without doing the coding. But then in my spare time, I do write code. Obviously there's the forum thing that has been with me for decades, along with the web sites. Then in more recent years, there was stuff that came almost out of necessity, like my own music cloud service, or my word game (that only lasted a year). Last year I made so many improvements to the forum that were a long time in coming, and there were days that I would just get lost in the process of writing code. Those are particularly rewarding because thousands of people exercise that code every single day.

One of the things that has steered me wrong in the last decade and change is that I've often, or mostly, approached new coding ideas as potentially a business. I even made the forums a business, though with no marketing, have only had one customer, and only briefly. That's not to say there wasn't some reward in that, because I found that building a monthly recurring billing system was pretty rewarding. But there are other things that I've had false starts with over the years where I thought, "I could make a buck with this!" That's not entirely surprising, because I accidentally made money with everything I started early in my career. The forums were literally sold for profit, and the sites started to make ad revenue almost at the start. And as the return from ad revenue continues to shrink, naturally I'd like to replace it.

But if I'm being real, making a buck is not really an intrinsic motivator. Like Sally Struthers once said, "Do you want to make more money? Sure we all do!" (Shit am I dating myself.) She's not wrong, but I don't think most people operate in a way where that's the thing itself that brings them joy. I have certainly conflated the making of softwares with making money I suppose because that's how I've made money for most of my life. But when I've actually enjoyed it, it has mostly been when I wasn't making money from it. That might be why I've shifted almost entirely to management.

In my last post, I wrote about messing with code to make lights move, and that's pretty neat. I even said, "I don't imagine that I would write my own lighting control software." But then last night, I took my prototype and rewrote almost all of it into something that better aligns with the way that real control software would work. So now I'm thinking, "Why wouldn't I write my own lighting control software, if only for the fun and challenge of it?" As with all fun things, I will not follow through if I get bored or distracted, but the problems are interesting and I think trying to figure how best to do this could be fun.

After all, some people make furniture, because they're good at it and enjoy it. I make things to, and sometimes all they require is a good laptop.


Coding to make lights move

posted by Jeff | Saturday, June 17, 2023, 12:16 AM | comments: 0

I'm not sure why exactly, but I got the urge to see if I could write a little code that would move my lights around. I guess I was thinking about it because the software that does this sort of thing is so expensive, especially (and understandably) if you want matching hardware with faders and encoder wheels.

DMX makes stuff do stuff. It's a super simple protocol. It sends a serial burst of packets, each with 512 bytes that correspond to "channels." A channel is just some parameter for the thing you want to make do stuff. On lights it could be the dimmer value, the pan or tilt position, color, etc., but it can also control things like smoke machines. You send these 512 bytes down the wire 40 times a second, and off you go. Best of all, these DMX cables are typically plain old XLR cables, like those you'd use for a microphone.

The days of lights that don't move or change color are long gone, so you aren't going to control 512 dimmers anymore. My moving lights have 14 channels each, so with two of them, I've already used 28 of the 512. There are some single fixtures that have several hundred channels even. Smart people have figured out how to get around this with protocols on top of the the protocols, with different wires. Every 512 channels is a "universe." Someone came up with Art-Net, a thing that can transmit about 32,000 universes over ethernet. Then another standard called sACN came along and can do about twice that. Some fixtures can just listen to the network directly, but for everything else, you just need a little box to listen and output the regular DMX signal over an XLR cable.

Knowing all of that, writing code to manipulate those values is straight forward. You just need an array of 512 bytes per universe you want to talk to, and set each byte to the level you want. That makes a packet of DMX levels. The less obvious part is how to send those packets over the network. I found a library that does it, but it hasn't been updated in awhile and there's a serious bug (I submitted a pull request!). Overall though, it's well-written, and I'm not interested in duplicating it. Once I had this, it was easy enough to bang out a few lines of code, and there it is, I could make the light dance. Cool!

What do I do with this? I don't know. I don't imagine that I would write my own lighting control software. Although I am super intrigued by the idea of making something like this browser based. I am all about less apps, more web. I'm going to study sACN a little more. The thing that's appealing in messing with this is the physical manifestation of actual real life devices doing things. Making stuff happen on a screen is all I've ever done, but this, it has real-life consequences!


Lighting on the mind

posted by Jeff | Wednesday, June 14, 2023, 9:11 PM | comments: 0

I'm in kind of a pause for my documentary at the moment. On the agenda is an interview with some folks that look at rum a little differently than I've seen so far, and I commissioned an animation (very expensive) to show how fermentation works. I've also got a backlog of things to work on for the forum, and kind of letting that marinate for now. That leaves me thinking about some of my other hobbies.

I'm waffling about seeing a couple of shows in the next few weeks, back to back, but it has me thinking about lighting. Last fall I bought a couple of fixtures to play with, and it turned out to be quite a rabbit hole. But there's only so much you can do with two fixtures.

The lights I bought are LED-based spots, and they use color wheels instead of colored LED's, so there are some limitations in terms of what colors they can produce. The tradeoff is that they can produce really sharp, focused beams, and use rotating gobos and a prism and such for some really awesome effects. For the money, they really do a lot. I still feel pretty good about the research and choice. The intensity of the white beams in particular is impressive.

To expand on that exploration, I probably have to buy some additional wash fixtures. These generally have RGBW LED's at the core, so they can display most any color, and have a series of lenses that can focus in and out to create soft-ish to spot-ish beams. The choices in this category are not as straight forward, because the brand I bought previously (Chauvet DJ) has nothing at a similar price point. No one really does. The stuff that you see at shows, those are often at minimum $5k per fixture, if not twice that. But as you may suspect, there are Chinese brands that do something similar for a fraction of the cost. It often comes down to whether or not you can trust their customer service in the event that you get a dud. It also often depends on their US divisions (see: anything made by DJI).

Aside from the fixtures, there's still the issue of control options. It's crazy how much MA Lighting, based in Germany, seems to dominate the entire industry. When they released the third version of their flagship product a few years ago, the pros generally felt that it was half-baked, but that appears to have been largely rectified. For example, this year's Eurovision contest, one of the most insane lighting rigs I've seen year after year, adopted their MA3 product. They make these elegant consoles that cost mid-five-figures, which is obviously not something I would spend money on. But they have a PC-driven product that varies in cost. You can buy a DMX interface for about $1,500 and run the rest on any touch screen computer, or even a "real" control surface to pair with a touch screen for around $7k. As much as this sounds insane, relative to what "pro" video gear costs, it's not unreasonable. It's just not in the range that I would want to spend, unless I started booking lighting director gigs, which I am absolutely not qualified for. There are people who make a living that way, bringing their console to plug into a network provided by the venue/tour/promoter. For fun thus far, I've been using a $20 USB-DMX interface and MA's legacy free, PC-based product that's somewhat limited in functionality.

This is all academic though. With our big summer trip, I can't really afford to even think about this on a cash basis for the moment. (Sort of... really that was paid for months ago, including the airfare.) This is even more the case as I look at ways to tighten up the movie. As much as I've been able to produce parts on my own, there are bits (like animation and music) that I can't do myself, and they're not free.

But I still have the lighting bug. It hasn't gone away.


Gaming helps me balance out

posted by Jeff | Tuesday, June 13, 2023, 1:10 AM | comments: 0

My recent messing with old school PC gaming has made me realize that I used to really enjoy losing myself for a few hours at a time playing games. For a long time, I've realized that one key to feeling content is to spread my time around, and especially in things that let me escape the less fun, more serious parts of life. Games do that.

The thing is, while I've owned a mess of consoles, I haven't really played much beyond the shooters and LEGO games that I knew I could rely on to be enjoyable. I've not taken a lot of chances. I'm out of luck with the LEGO stuff, for now, as the developer Travelers Tales lost the license. They had a solid formula, for sure. We've been without a new Halo shooter for some time. I liked the Tomb Raider reboot, but it's not clear when exactly that next title will be out. I liked the previous Star Wars third-person game, and the new one has solid reviews, so maybe that's one.

What I am completely neglecting is that I have Game Pass Ultimate, which means that I can play everything in that catalog, for Xbox and Windows as applicable. There are a few newer games that require the newer Xbox Series series (dumb names), but I'm not sure if I'm ready to spend $500 on a console that's already a few years old. And I stubbornly want the disc-based console because of the huge library I have of games that I'm sure I'll never play again.

While I've moved to the Mac Mini as my daily driver on the desktop, the Windows computer is still under the desk. Despite being 4-years-old, it does a pretty solid job with a lot of games in the Game Pass catalog. I played through LEGO Skywalker Saga again to 100% with all of the graphics settings up. While not a graphically demanding game, it helped to have spent $450 on the video card those years ago.

Mac support for games is getting better, and if this DirectX to Metal (Windows to Mac graphics API) bridge under development really works, that could be a game changer in bringing more games to the Mac. Make no mistake, the GPU power in all of these M1/M2 Macs is insane, and without huge power demands. That means legit laptop gaming. For now, there are a bunch of classic games that run great on the Mac, for a few bucks each, on GOG.

But what I should really be leaning into is the Game Pass stuff. They have so many huge games that I just need to try. There should be years worth of stuff to play there, and there's no risk in case it sucks. Some of it even runs via the cloud, which graphically isn't as clean, but it does work. There are so many RPG's, shooters, puzzle games and such. I tried Forza on my "old" computer, and it ran really well at a solid frame rate.

Of course, I'm not sure that I want to upgrade that computer, but I'm intrigued as ever by the new handhelds. Steam Deck is cool, but the game selection doesn't include a lot of things I would already have access to. This ROG Ally looks pretty amazing, since it's essentially a little Windows computer. That means Xbox Game Pass and EA I already have access to, plus a few Steam games I own. I have some from other stores as well, and it will run them all. And of course, you can plug it into your TV. It IS a console, too.

I'm playing through Dungeon Keeper on my MacBook Pro (runs on Mac), and Dungeon Keeper 2 on my old desktop (does not run on Mac). I'm having such a great time with those. I know I have one or both in the garage on a CD-ROM (which I need to throw away). Totally worth the ten bucks for both, even with the blocky graphics in the first one.

I just gotta stop playing them so late at night!


Change and age

posted by Jeff | Sunday, June 11, 2023, 11:59 PM | comments: 0

I saw an interview tonight with David Byrne, where he made a comment that I've been thinking a lot about lately. Anderson Cooper asked him if he had changed over the years, and Byrne said something to the effect of, yes of course, can you imagine never changing?

It's funny that we have various cliches about this, ranging from "people never change," to "the more things change, the more they stay the same." As I approach yet another milestone birthday, I think about all of the ways that I've changed, and the ways that I might change in the time that I have left. Just the other day, talking to a coworker, I made the almost defensive statement about not listening to music that I liked when I was in high school. Granted, I was coming of age in a volatile, and fast changing time for music, so I'm sure that's some of it, but I still seek new music and prefer it over "old" music. My tastes change.

I went through a period of stagnation in my early 30's. I stopped creating things, or at least, created a lot fewer things. I wasn't thinking about what was next. I had no sense of exploration, wonder or curiosity. I know now that some of this may have been my neurodivergent wiring, but I'm not that way now. My sense of purpose is different. I'm not sure I care what my identity is anymore, other than identifying with people who don't want to be put in a box. (It sounds like that has all become more complicated, but I'd like to think that disregard for identity is less complicated. I mean, half of America seems frightened by people they can't put in boxes, or literally behind walls.) All of this change and freedom to be what I am in the moment has been a lot of work to get to, but is it not the inevitable result of years of taking in new information?

There's no question in my mind that I've been very fortunate in my life to see a great many things, and meet a great many people. I may have observed some pretty terrible racism early in life, in my family no less, but I was a child of desegregation in 1979 Cleveland. Moving to the suburbs in high school opened my eyes to the different worlds that existed only miles apart, and going to college at a small D2 school in rural Ohio opened my eyes further. Professionally, I met smart people early on, in different fields, and in software, began to meet people from all over the world. I'd like to think that for a guy who didn't get off of the mainland until I was 28, or move out of state until eight years after that, I've seen a lot.

Admittedly, this sounds a little like I'm giving myself a little trophy, and maybe I am, but I do so to illustrate that I can't imagine not changing dramatically. I didn't know shit in my 20's. Or 30's. Maybe a little in the 40's (which aren't over yet, dammit). I accept that I probably have a great many blindspots still.

But this lived experience also makes me wonder how people can get so... stuck. People seem to cling to beliefs and values as sacred things that are not malleable. Why is that? All of what we believe is learned, so why do many people stop learning, and thus, cease to evolve their world view? My earlier comments about music are probably not fair, because you like what you like when it comes to art. Art can often be more valuable with age. And yes, I'm focusing on the people who get to old age who are hateful and dislike people who aren't like them. When your time left gets short, how do you still believe that those beliefs are worth the energy? How does that serve you?

I've changed a lot. Every single day, I'm given something that changes how I see the world, even if it's just a little bit.


The "sides" are not morally equivalent, and they never have been

posted by Jeff | Tuesday, June 6, 2023, 9:35 PM | comments: 0

I'm sure that I've touched on this before, but one of the things that comes up periodically in therapy is my general anger and anxiety about the social injustice in the world. You know, all of the "isms" and hate. Worse yet, it pains me to see that a lot of folks don't (or choose not to) understand that the world is not simply divided into two sides. For all of human history, there has always been the people fighting to be recognized as equal, valuable human beings, and the people who wish to oppress them.

I wonder if it's as bad in other countries, because it has never been good in this one. People have managed to pass laws that limit the ability of groups of people to be equal in society. At the country's founding, racism was codified into the Constitution, as was sexism. Before the ADA, there were laws to discriminate against the disabled. Laws prevented labor groups and the poor from having any power. Same-sex marriage was illegal only a few years ago. Most recently, it's a bizarre attack on the very humanity of transgender people, not to mention immigrants and refugees.

I don't know how to spell this out more clearly. One "side" just wants to fundamentally exist without being persecuted. There is nothing immoral about that, and it does not affect the other folks. The other side wants to make sure that "they" are not afforded that opportunity. The reasons are veiled at best, to "protect the children" or some other such nonsense. But the fundamental truth is that people of color and of the LGBTQ community are not interested in diminishing the existence of the other side. There is no moral equivalence here. We're not talking about some abstract fiscal or trade policy. It's not political, it's just hate. Wanting to exist is not hateful. Not wanting others to exist is hateful.

It's crazy to think that some people have to spend their entire lives exhausted, in some cases literally trying to survive. Do the people that expend all of that energy hating feel that exhaustion?

The optimist in me believes that this works out in the end. If I draw in my bubble enough, it already is working out. But we have to move through the world, and it's not all like that. I do think that the rate of change has been extraordinary in the last decade, relatively speaking. Unfortunately, the resistance to it has also been extreme. It's hard to maintain optimism in that context.


I want to be a home improvement builder guy

posted by Jeff | Friday, June 2, 2023, 10:58 PM | comments: 0

I will freely admit that I get kind of addicted to home improvement TV. When I moved to Orlando, in my first week, staying in a hotel, I watched HGTV pretty much non-stop. And in the streaming era, Discovery/HBO/Warner also has the Magnolia Network shows, the Chip-and-Joanna network, and it's stuff that's even better. My current crush is Lindsey Kurowski, who hosts Motel Rescue and her Inn The Works show. (I realize now that, if I'm looking peripherally, I might be into her because she vaguely shares some traits with Diana, and I seem to recall some Italian roots she mentioned in her show.)

In the general sense though, I'm living in an enormous house for which I am frankly ill equipped to maintain with the BDE of the archetype American male. Our house is only five years old, but outside of its structural integrity, it has problems. Last year's HVAC drain victory was a really big deal for me. Outside of our general lack of decor mojo, I'm dealing with the shittiest of builder-grade carpet that looks wrecked in just five years, a primary shower that is designed primarily to grow mold and thousands of square feet of walls in "Agreeable Gray." I fucking hate it.

But I'm not without my victories. I mounted Ikea cabinets to the wall in our living room when we moved in. I even installed surround speakers. The two thermostats were promptly replaced with Nest units. And while I didn't install it myself, there are 10kW of solar panels on the roof with a 13.5 kWh battery that has never been used. Lights all over the house turn on and off by shouting at smart speakers.

Now I've been focused in on our "butler's pantry." There's this little nook opposite of the pantry that had two options when we bought the house. The first option was to have it empty, without function, which seemed insane to me. The second option was to have it include a small sink, cabinets, wine rack and wine fridge. Pretentious as that felt, I couldn't imagine the space be left impotent. As time has passed, it has come to feel... inadequate.

First off, the wine rack is dead space. We don't drink enough red wine to need a rack. For the red wine that Diana drinks, we don't buy enough to need a rack. I'm a white-wine guy, so the fridge is fine. That leaves all of the space above as borderline useless.

What I would like to do is rip out the upper cabinet and put shelves, with LED lighting, here. Given my mixology habit, this is obvs. This isn't as easy as I would like, because you can't anchor into the side walls, as both have plumbing inside from upstairs. But you can anchor into the back wall, which is masonry and a few vertical wood slats on top. I've watched so many YouTube videos about how to do this. The only barrier is a couple grand in saws, tools and materials, but I would at least get to keep the tools. I need to get over this.

Regardless, I took the first step in making it all more functional. Some years ago, I saw a glass rinser at some bar, and it blew my mind. You take a glass, invert it, put it on the device and push down, and water sprays around the inside and cleans it. It's goddam magic. Last night, Amazon raging, I ordered the water fixture. Today at lunch, I bought the diamond-edged hole saw necessary to cut through my inch of quartz counter-top.

It took about an hour and change to cut through the quartz with the hole saw and my mid-range Dewalt cordless drill. The problem was that the counter is an inch thick, and really, the saw only gets to about 15/16" of depth. When progress ceased, I busted out my little hammer, and after a few taps, it pushed out the core I made, with a bit of a jagged edge from the underside. Whatever. Not the cleanest cut, but I made the hole.

After installing the new device, and getting the angle right so the water drained out properly, it was magical. Wait, an hour later, I realized that I only hand tightened the supply hose (it's a larger size at the fixture than at the connection to the wall, for which the kit provided a wrench). There was some leakage. But once I got this tightened and settled, everything seemed OK.

The result is amazing. Every beverage that I make for myself or others typically means shaking in a Boston shaker (the glass kind, ya bastards, so I can see the foam action) before pouring out to the target glass. And even then, sometimes the glass from which I'm drinking from requires a good clean-out. Oh, and also, we use water bottles a lot here at Puzzoni HQ. This device is life changing. I'm not even exaggerating.

This starts to give me a little confidence about building the shelves that I want. Sure, I need some saws, clamps and sanders that I don't have. But the only real "disposable" part is wood that I ruin. At worst, that's probably a hundred bucks in material. Relative to the probably $2k in tools that I would keep for a lifetime, that's not terrible. Maybe I can start to build custom furniture.

The bottom line is that maybe I've crossed the anti-confidence line toward doing what I would like. This is new territory for me. I'm terrified of things that could cut off my fingers off. But I've watched so many videos. It's time to start buying tools and see what I can do.

The core that I drilled out in the quartz:


Pride Month for a straight, white (autistic) guy

posted by Jeff | Friday, June 2, 2023, 9:29 PM | comments: 0

There was a thread on CoasterBuzz recently about the kind of weirdness around the fact that corporations can be all over Pride Month if it suits them financially. This is naturally specific to Disney, which is selling all kinds of merchandise and food items to celebrate the month. But they're also putting up murals and making a statement, which seems appropriate given the hostile climate from the governor. It's very fucked up that government is trying to punish a corporation for standing up to a marginalized group of people. Hardly First Amendment strong.

But I've also seen a flood of friends, what few my age are still using the Facebook, updating their profile photos with pride rainbows as of June 1. And by that, I mean the straight ones. I'm in that pool too, as I am every year. I even turn on the rainbow in front of the house. For other cultural phenomenon, it would feel like appropriation, but I hope this isn't like that. If I were to cut out the folks in my life who were any part of the LGBTQ community, I'd have half a life. That's no joke. I mean, I've had website for coaster nerds for two decades, which leans very heavily gay for whatever reason. It's as every bit as typical as autism is to me.

Sidebar: There is some limited research that suggests that people who identify as LGBTQ are more frequently autistic. And that makes a lot of sense to me, because if you're wired differently, it only makes sense that your definitions of sexuality, gender and identity are necessarily more fluid. In my case, I'm sexually straight, but I have acknowledged for years, even before my diagnosis, that there are a billion conventions that we assign to gender that are completely arbitrary societal constructs. I don't think that makes me part of the community per se, but it sure enables a ton of empathy.

But really, if you're decent human being who respects other human beings, you're an ally by default. It's not that you're trying to be some kind of gay savior (or race savior, or gender savior, etc.), you just get that the diversity is good, discrimination is bad, and love is love. It's so fucking basic. And this is a case where being basic is not a negative co-opted connotation.


A golden age for television

posted by Jeff | Thursday, June 1, 2023, 8:54 PM | comments: 0

I haven't had cable TV in many years, and the last time I had it, it was only because it was in a low-cost bundle with Internet. I think I used it to get weather coverage during Irma, until I realized I was better off just looking at the NHC/NOAA site every six hours (no morons standing outside in the wind). I say that to mean that there's very little to get excited about on old school network TV, and the cable networks seem to only make reality shows now. But streaming turned out to be something more important.

Netflix started streaming a long time ago, but for the longest time, most of what they had was ancient movies and some old TV shows. In 2013, House of Cards was I believe the first Internet-only show to win an Emmy, and they've had one or two big shows every year. Hulu initially had all of the big network shows other than CBS, and that made it a good transition service for cord cutting. Amazon started making their own stuff, none of it very good at first, but if you were already a Prime subscriber, it didn't matter. They finally started producing some original stuff, and in 2017 they scored their first Emmy for The Handmaid's Tale. HBO was already playing the hybrid game there, and they largely took the flagship show approach and translated it online. Disney finally got into it under the brand name (they have always owned some or most of Hulu) in 2019. Amazingly, they were recognized for shows like The Mandalorian right away, and the service I thought was just going to lean on its huge catalog made some really great new stuff for the Star Wars and Marvel universes. They've had some great documentaries under their National Geographic imprint as well. Apple came in swinging with a bunch of great shows, while Discovery Networks put their catalogs online for cheap (they're now combining with HBO), and NBC and CBS put up services that are, well, they have shows.

When you remove the scarcity problem, meaning a limited number of television networks, there are more opportunities for stuff to get made. And with all of these services competing, they needed to make new things that would really attract an audience. It was a perfect storm to make a ton of great shows. This week, we said goodbye to two of the best: The Marvelous Mrs. Maisel and Ted Lasso.

Maisel started in 2017, but I think we didn't start watching until the year after. The third season was released at the end of 2019, and I know we didn't start watching until the pandemic started. By then, we were totally sucked in. The imagery of New York in the late 50's, glamorous as it appeared, with "Midge" dressed in arguably the best costumes of any period show, was magnetic enough, but the entire cast was stellar in every way. The feminist themes were anywhere from subtle to obvious, but never preachy, and as relevant as ever (unfortunately). They managed to tie up the loose ends and end it with a very satisfying final season. Every episode just ended with a "wow."

Ted Lasso was the show that was perfect for its timing. Apple came out strong with show runner Bill Lawrence (Spin CityScrubsCougar Town) and paired him with insanely good writers that included Jason Sudeikis to bring what started as an NBC promo gag to life as a story. There's really only one bad guy in the whole show, and it's insanely positive. Maybe it's even idealistic, but I feel like it's something we all needed in 2000, and even today. This one also had a brilliant cast, and the writing is so, so good.

These two shows are the biggest standouts for me, but they sit in a crowded field of shows that I've really loved, including some of those Star Wars and Marvel shows. Ten years ago I was mostly watching The Voice and a lot of home improvement shows (still doing the latter) more as time wasters or background than anything else. I would watch a few network shows, but it was hard to stay into those long, 20+ episode seasons. I remember eventually tiring of things like This Is Us and The Blacklist. Heck, when they brought back 24, it wasn't even 24 episodes!

But I do have a running list of favorite shows, and Maisel and Ted Lasso join a short list that include The NewsroomSports Night and a few others. I think this era may be ending, as it seems everyone is pulling back right now on production as the streamers try to get to profitability. Hopefully we'll still see surprise hits, including some of the single run things like The Queen's Gambit. And hey, it's worth noting that even YouTube provides a distribution mechanism for some great things out there in terms of the science stuff that Discovery used to have, and it's where we watch all of the late-night shows, only during the day and only the segments we want to see.