What does America mean to me?

I find myself thinking this, on the fifth of July, after enduring with fusillade after fusillade of illegal fireworks, and thrum of dance music blaring from several neighbors’ backyard parties, and the thump, thump, thump of basslines permeating every barrier between them and my family until almost midnight last night. (Let’s just say my kids don’t sleep on July 4th.)

What does America mean to me?

It is a promise to do better, to try harder, to fight for justice and freedom, and to stand up again after being knocked down. It is a promise that is very, very hard to keep—one most often observed in its breach.

What has America actually been to me? All this noise around me, for years and years and years, drowning out the voices and the actions of serious, thoughtful people. I am one of the privileged few, but I too am lost and bewildered in my own country, by my own country.

America needs to be better, and for that, Americans need to act better. To start, we must demand better of each other.

What I’m looking for in an open source project repo

When the Micro.blog client apps were open-sourced, I reviewed the Github repos for the two I use most (the iOS app and the macOS app). I wondered if I could contribute something to the projects—probably something small, like more hardware keyboard shortcuts or an enhancement to how the post editor works. I wasn’t sure if that would be welcome, based on the brief “About the open source project…” verbiage in the REAMDE, and based on (1) the very old, but open, issues in the iOS repo, and (2) seeing no issues in the macOS repo.

I “know” Manton because I have been listening to his podcast with Daniel Jalkut for years (which is where I learned about Micro.blog), so I think of him as thoughtful, considerate, and certainly not as unfriendly. But I did not actually expect him to open source the apps when he did, and I figure that her has a business to run and may not be ready for a bunch of user requests on client apps that he may be happy enough with already. Manton saw my prior post about the apps and commented on it: “I wrote that README quickly and should expand on it…”

In true blogging fashion, I am responding to his comment with this blog post, with the aim to be helpful to Manton as he thinks about how to expand on the README he wrote.

What I look for in an open source project.

Two things, really. Can I report an issue? And, can I contribute?

Issues

Ideally the issues list will be kept current and will tie to development efforts (bug fixes and enhancements) going forward. Very old issues that the maintainer no longer wants worked on will be closed. Issues that the maintainer is interested in will be labeled “help wanted”, “good for beginners”, etc.

The maintainer should say in the README how user-reported issues will be addressed. It is OK to state that the maintainer does not plan to consider some or all feature requests from users. It is best to be open and realistic about how the project will operate.

Contributing

I always look for a CONTRIBUTING document or section in the README to learn whether or not the maintainer will accept pull requests, and if possible, how that process should work. Is opening an issue, then resolving it with a pull request later on, the right way or the wrong way to go about it? I have worked with maintainers who preferred that approach, to solicit conversation, and have worked with others who preferred the code change to come first and the discussion afterward.

Also, it is OK if the maintainer is not going to accept pull requests; I would rather know up front.

The future

I think it is perfectly OK if the way a project is maintained changes over time. Not every decision made on day one has to be carried out forever. As a potential contributor, I just like to know what I might expect if I approached the maintainer now.

Reading the news is a waste of time

On Thursday I configured NextDNS to block (for my personal devices only) news.google.com. Google News has been my Internet obsession since it debuted in 2002. It is not a healthy one. Whenever my mind gets lost for a second, I find myself opening a browser tab and checking Google News to see…what’s new, I guess. Sometimes I close Google News out of disgust or boredom and then, almost immediately, open it up again.

Why do I do this? What am I searching for? What is going on in my mind?

Reading the news seems like a worthwhile activity—something a thoughtful, intelligent person would do—but I am pretty sure that most of the time it isn’t. I think that news sites and cable networks exploit the part of our brains that are always scanning for threats and opportunities, as part of our survival instincts. In Paleolithic times, knowing if the tribe across the river is friendly or hostile, knowing where the good game is and where the predators are, and knowing what foods might kill you were all important to survival. All of that information is relevant and timely.

But that’s not what I get from Google News. I rarely learn about anything nearby that could possibly affect me. I usually learn about national affairs, faraway disasters, or (more recently) some else’s social media-published outrage about these things. It’s hard to say that provides me much benefit at all. So, for the time being, I’m turning it off. The news will still be there when I need it, but not packaged in such a way that hooks me and makes me feel virtuous for being hooked on it.

Some of my neighbors appear to have town-sized budgets for their Independence Day fireworks displays.

On open-sourcing the Micro.blog client apps

This week @manton open-sourced the iOS and macOS Micro.blog apps. I think that is a great move in general, but it is not one of the things I require in the software I use. I never felt that comfortable when, a while ago now, I read users’ blog posts expressing anger or dismay that the client apps were not open-sourced. (Let’s put aside, for now, that what makes Micro.blog work is the server-side code.)

As a paying customer, and as a developer myself, I don’t think Manton and his team are obligated to share their client source code with me. I don’t think anyone is. If they want to, that’s great—but it is no guarantee that the client app itself will be better, more secure, more feature-rich, or even have a future many years from now. Heck, it doesn’t even look likely that Micro.blog will accept pull requests, so it is unclear whether open-sourcing it will change its development direction or iteration time at all. I’m not complaining about that, though. Maintaining an open source project/community and running a successful blog hosting business are almost entirely orthogonal to each other. Open source doesn’t really give me added comfort that an app I love or depend on will be there for me forever, because nothing is forever, even open-source software projects.

As a computer user and enthusiast, I used to care a lot more that I do now about free, libre, and open-source software. My primary reason was that I thought I could trust it more than closed source software. It is harder to hide malware, tracking, and obvious security flaws when the code is publicly viewable. History has shown that not to be entirely true. Remember Heartbleed? That incident showed us that widely used libraries may be maintained by only one or two people, and their source code can contain bugs and security flaws that go unnoticed for years, because no one is actually looking at the source code.

My secondary reason for preferring open-source software was more theoretical, but larger in scope and more exciting to me: open-source software can be a more practical and a better use of humanity’s programming resources. That’s because one of the great, unfulfilled promises of computer science is the ability to solve a certain problem once and for all, for everybody. Open source utilities, like the Unix command line tools, and open-source libraries, like OpenSSL, theoretically could make this happen. But it didn’t happen, at least not fully. We spend a lot of time, collectively, solving the same software problems over and over again. We may approach these problems in new ways, with new languages, and on new platforms. But in the end, we are repeating ourselves. Imagine where we could be if we didn’t keep repeat ourselves!

I actually think that most of the repetition is the inevitable result of human nature. Humans are curious; we want to know how something works, and how to do it ourselves. Humans are also prideful: we think “I can do the same thing, but better.” Most importantly, humans need to learn; each of us is born knowing nothing, and must learn extensively from our forebears to push our collective knowledge out just a little further.

In the end, what is most useful to me about Micro.blog open-sourcing its codebase is that I can look at it and learn from it. That could be very helpful. Long ago, I was interested in creating a dead-simple iOS app (extension, widget, whatever) for Micropub posting. Eventually, well before this week, Micro.blog open-sourced its Snippets library, which would have made writing such an app much easier. Now, with the client app also open sourced, I could review its code to see (presumably) how to call, configure, and use the Snippets library in an iOS app. That is even more useful than the Snippets library alone.

Now that the Micro.blog client app source code is free and open, maybe I could use some of it to help me build that little utility app now. In the same vein, maybe someone else could use much more of that source code and build a better, more feature-rich client app based on it. Maybe the Micro.blog app is a solved problem, and no one has to solve it again (at least until Apple stops supporting the frameworks it is based on), and a hundred other Micropub-blogging-based small businesses could spring up, all using a common client app. Who knows? That possibility is a risk to Manton and Micro.blog, but it is also a gift to the greater world.

Thanks, @manton, @cheesemaker, and @jean (are there others at Micro.blog?) for all the work you do.

My carpal tunnel flared up so much today that I won’t be writing a proper blog post. 😕

On bullies, or why I have character

I often joke with people that I am not as nice as my wife is. It’s a self-deprecating remark, but I do mean it. I am a nice person, just not as nice as my wife is.

I’m not as nice because I was bullied for most of my childhood. I never got beaten up (though I did get into fights), and I was never afraid to go to school (though it was a gauntlet and a crucible), but I was picked on mercilessly, incessantly, and for everything—my name, my weight, my glasses, and most of all for being smart.

When I was a young adult, I would say that the bullying led me to develop character—and, man, I wish I didn’t have character! As a middle-aged adult, I find myself wondering what that bullying really taught me. I think, in a huge way, it taught me to distrust people—especially people my own age. It taught me not to take what people said to me at face value, because venomous words are often preceded by honeyed ones. It taught me that others may switch from allies to enemies when the social situation changes, like when the bullies enter the scene.

One of my triumphs in life was when I finally made the bullying stop. After years of trying different things—there is a lot of well-meaning advice for the bullied out there to follow—what finally made the bullying stop was a 30-second conversation I had with one of my bullies, in the back of a classroom on the first day of seventh grade. After being on the receiving end of some stupid taunt, I had had enough. I turned to the kid, looked him in the eye, and said to him: “You can say whatever you want to me. You can call me whatever names you want. But you can never hurt me. You can never change my mind about myself, no matter what you do.”

For some reason I still can’t figure out, the name calling, the taunting, and the scapegoating stopped overnight—not just from that one kid; from everybody. I didn’t become popular or anything, but I was mentally strong, and everyone knew it. The bullies just stopped bullying me. I was no longer a social pariah. I made a lot of new friends that year. Even some of the kids who picked on me even became my friends before the school year was through.

That single exchange, by itself, probably did not cause the bullying to stop. Asserting that I was mentally stronger than my bullies probably would not have worked unless it were really true. It was the last of a series of defenses I developed over the years. It was the strongest one, but I may not have developed it if I hadn’t developed others before it, like wit, determination, and resilience.

Bullying has shaped me to be someone who, as I have been told, does not suffer fools gladly. It has made me wary of people and likely to question others’ intentions, which is a great skill in political situations and in some professional situations, but it isn’t that useful for socializing at a picnic. It has also shaped me into someone who has tremendous sympathy for the downtrodden, quiet underdogs of the world. I can empathize with the pain of others. I know that true friends are rare and precious. I know that inner strength is hard won.

I also know that I am not as nice as other people, because other people were not as nice to me. So I try, really hard, to be nice, even when it is difficult, because people deserve better than I got when I was a kid.

The Cut

I have recently finished crafting a slideshow, and writing a talk to go with it, that is the best one I have ever done, probably by a mile. I spent hundreds of hours this year watching talks on YouTube (both good and bad ones), watching instructional videos on speaking and on creating effective visual presentations, and trying new slide design techniques (and throwing out all the things I tried that didn’t work). I tried really hard to push myself out of my PowerPoint design rut. I thought I was good at presenting before, but now I think I have really leveled up. I have internalized a lot of the lessons I learned this year.

The most visually impressive, most engaging, most well written talk that I have ever created is due to my bosses tomorrow. It is complete. It would make for a great 80 minute talk. But it has to be cut, and maybe cut down by half. It was momentarily agonizing to learn this today, but I am trying to think positively about it, because I have learned the right way to cut (iteratively, though rehearsals and timing of sections) and I know how to not cut the meat out of the presentation (because I wrote down the main idea of each section, so it wouldn’t get lost in an edit). I can do it. I just wish I didn’t have to.

No matter what, though, I’m going to be proud of what I built, and I’m going to seek out more opportunities to present in the future. I am good at it. I put in the work to be even better at it. And maybe with enough practice I can be great at it.

De-camped

One of the difficulties my family has had due to the pandemic is finding a suitable summer camp experience for my nine-year-old daughter. She loves camp, and there was no camp last year. This summer, we opted for what we thought was the safest camp option: a drama camp that promised to be outside only (under tents and such) or virtual if the weather was bad (presumably, if it rained).

Yesterday, a day before camp starts (which is today), the camp changed its terms. It would count heat and humidity as bad weather and would move camp indoors pretty much full time, based on the weather forecasts we have around here. The camp surveyed parents over the weekend and the majority of the parents presumably agreed to this. We, however, did not.

My wife is trying to find an alternative camp now, which is not easy last minute (at least around here). Camps start enrolling in October (which seems absolutely crazy to me). I hope she can work something out.

What I find frustrating about summer now (and this is in New Jersey, not exactly in the South) is that the heat, humidity, air quality, and afternoon thunderstorms make outdoor activities incredibly difficult. It seems like summer is not a good time for summer camp anymore, which doesn’t make sense.

I keep eyeing the AirPods Max listing on Amazon. The price is dropping below $500 now. They don’t seem perfect and I only tried them for a second but the noise cancellation puts the NC in my Beoplay H9 to shame.

I cleaned out my closet today, which is both exhilarating and depressing. So many clothes to get rid of! So many things held onto for too long. Now I have empty shelves and drawers and nothing to refill them with. May it stay that way, at least until I get an office job again.

We visited the beach tonight and really enjoyed it. Sunset is my favorite time there.

Trying to change my mindset

My work week has overflowed with head-desk moments, turnarounds, and setbacks. It has been frustrating beyond belief. It’s not often that I experience big parts of my work projects blowing up in my face, especially for unexpected reasons. Fortunately, all the problems I am facing are technology-related, not interpersonal, and can, I think, be solved by doing something I, by nature, kind of hate doing: asking for help.

I am trying to change my mindset from “I can’t do this anymore” to “I can do this. I may need help. And it may take longer than expected.” It sounds simple, but it really isn’t. For whatever reason, whatever I picked up from the self-help and coaching industries over the years taught me a misleading lesson about personal achievement, which basically boils down to “it’s mind over matter.” But sometimes, the problem really is matter—the external roadblocks, rather than the internal ones. At least, that’s what I think about this week’s challenge. If I can’t remove those roadblocks myself, then maybe someone else can help me.

All speech is persuasive speech

My wife teaches speech, debate, and dramatic arts to high school students. I love it when she asks me to help her with her lesson plans, because it gives me the chance to take a subject that she has to teach, however uninteresting it may seem (especially if you’ve taught it for 10+ years in a row), and blow it up into something that is the foundation of everything.

Here’s an exchange we had this spring:

Me: What’s the curriculum?

Her: Persuasive speech.

Me: All speech is persuasive speech.

Her: That’s not helpful.

Me: But it’s true!

I always encourage her to start new topics with audacious statements that demand defending. I’m not sure if she ever does, but I think it is important to tie everything you learn about writing and speaking with the fundamental forces that drive communication.

In another life, I would have ended up teaching English at some level, too. I think I would make an excellent high school teach for one or two very smart kids, and a potentially disastrous one for everyone else.

“Real artists ship”; or, at what point did I lose my nerve?

“Real artists ship.” Steve Jobs said that to motivate the Macintosh team in 1983. It’s a statement that reverberates in my mind and absolutely drives me crazy sometimes. Why? Because I have tons of code that I haven’t shipped. Hell, some of my best code hasn’t shipped.

At some point, I lost my nerve. I couldn’t finish the projects I started. I couldn’t make a small change to a UI because it would inevitably spiral out into something that would require a rewrite of the entire app. I let new components I created lie unused. I let the revisions and extensions I had written for my apps linger and die on the vine. I couldn’t integrate the pieces into a coherent whole.

I let myself become too tired or too distracted to focus on the problems in front of me. I couldn’t resolve the problems I had created for myself. I couldn’t think straight, and didn’t trust that I could do it anymore.

I realize now that I was bumping into my limits as a developer, which is scary and frustrating. I opted to run away from these limits rather than to either work past them or to accept them. I am trying to do better and not get bogged down in all the feelings I have developed about this over the past couple years.

In the past I have failed. But I am trying to work through it now, to push past the fear, to move from “I can’t do this” to “I can do this,” and to get through the hard parts of getting my best code shipped. I can do it this time, and I won’t give up. All it takes is will, grit, and patience.

I just had to reboot my iPad due to some wonkiness. I wonder when iOS/iPadOS 15 developer beta 2 will drop. I think we just passed over the historical median age of an iOS beta 1.

📺 My wife and I watched the first episode of Hacks tonight and thought it was a hoot. The writing is outrageous, the characters have no filter, and Jean Smart is a treasure.

🎧 I turned on the crazy hi-res audio settings on my Mac tonight. I want to justify why I have an expensive DAC. 😀

Why do we begin emails with “Dear so-and-so”?

I write a lot of email at work. Almost every one I write starts with “Hi, <name>.” It seems perfectly normal, until you realize that every email client already includes that in the “To” field above the body of the message. The reader knows her own name, and it is written on the screen in the “To” field next to her email address. Why do I write it again in the body of the email? Why do I do this 50 times every workday? Why do I do this even though I think it is redundant?

Simple: Because I think that everyone’s favorite word is their own name. Everyone likes to see it. It’s subtle flattery to include it atop the body of every email message. Whenever I think I should just stop my habit of typing it, I remind myself of this and keep going with it, because I think in the end it is worthwhile.

I finally got a Prime Day Deal, but it was from Best Buy

I picked up a Product (RED) Apple Watch 6 at Best Buy for my wife for a great price. Her Apple Watch 3 broke a couple weeks ago, and I ordered her an Apple Watch SE with a red band from Apple. It wasn’t supposed to be delivered until late July, which meant I was able to cancel it and pick up the Apple Watch 6 for her, tonight, for the same price as the Apple Watch SE, thanks to the insane Prime Days sale that other companies glom onto, too.

The red case on her new watch looks really good and matches her phone. The only weird thing is that its battery was completely dead when we opened the box. I bet the red ones did not sell well, which is why there was a fire sale today.

Ted Lasso Season 2: Is it going to be…too cute?

Ted Lasso season 2 has unexpectedly huge shoes to fill. I have not been heartened by either of the two previews, which I think are veering too far into the cute end of the show’s tone.

I loved the first season, and hope they can keep what make season 1 so engaging keep going. It wasn’t the cuteness of Ted’s cheery attitude. It was the overcoming of cynicism in everybody else that made it interesting. You need that cynicism to be there for there to be genuine tension between the characters.

The previews make the think that that tension is completely gone, at least among the main cast. I hope the writers came up with new ways to explore conflicts and create drama that don’t lean too much on tired TV tropes (new characters, character personality resets, and so on).

I just want it to be good. Ted would urge me to BELIEVE!

The bad guy thinks he’s the good guy

One of the best lessons that literature has taught me is that the bad guy thinks he’s the good guy. In more abstract terms, the villain thinks she is the hero of her own story. That is what drives villains, and that is what makes them dangerous.

Sometimes, as in real life, the villain may in fact be the hero of his own story, because the story as we know it isn’t over, and it isn’t about what we thought it was about. Any narrative can have a counter narrative. Every comedy might be someone else’s tragedy.

All of this is true in life as it is in art.

There are real villains in the real world, and we need real heroes to face them. But there are a lot of false villains in our lives that we also face. These false villains may be people we are mad at momentarily, people we are close to who frustrate us, people who shun us, people who are indifferent to us, and so on. These false villains may also be ourselves—the fears and doubts that hold us back, the shames we keep secret from ourselves, and the pasts that we cannot change.

We must be careful not to think of these false villains as the real ones. Not all stories need a hero to resolve them. When we play the hero, we may unknowingly be playing the villain instead.

I think this is the best Father’s Day I have ever had. I think the work I put into being a better dad has been paying off. I’m a little misty-eyed right now. 😀

As of right now, I am very glad that, twelve months ago, I bought the extra temples for my daughter’s eyeglasses. 😮‍💨

I don’t think my Father’s Day post made it to the M.B. timeline for some reason. Here it is.