Elon Musk acquires Twitter for roughly $44 billion

Douglas MacMillan, Faiz Siddiqu, Rachel Lerman, and Taylor Telford reported today in The Washington Post:

Elon Musk acquired Twitter for $44 billion on Monday, the company announced, giving the world’s richest person command of a highly influential social media site that serves as a platform for political leaders, a sounding board for experts across industries and an information hub for millions of everyday users.

The acquisition followed weeks of evangelizing on the necessity of “free speech,” as the Tesla CEO seized on Twitter’s role as the “de facto town square” and took umbrage with content moderation efforts he views as an escalation toward censorship. He said he sees Twitter as essential to the functioning of democracy and said the economics are not a concern.

There have been only a handful of world’s richest people in my lifetime. Of those, Elon Musk is my least favorite. While he has done some good for the world, I find his public persona exhausting. He acts like a juvenile troll who plays to the cheap seats. His credibility in geek circles as a real-life Tony Stark is almost completely unearned. He just seems irresponsible, childish, and awkward to me—the ultimate dog that caught the car.

Last week, I thought that Musk’s hostile takeover offer was mere trolling, or maybe a means to drive a pump-and-dump scam on the sizable share of Twitter stock that he recently purchased. Now that he and his backers have bought the company proves me wrong, at least in the short term. Still, I have no faith in him making Twitter more successful than it is now. It is a company that I think found its level and is destined to stay there. I think that Twitter’s board decided the company’s value would never—at least, within a reasonable timeframe—appreciate to the 20% over its stock price that Musk offered. In that position, I would have taken the buy-out, too.

I can’t even remember when I last logged into my Twitter account now, so the change in ownership will not directly affect me, but it will likely indirectly affect all of us in some way. Musk’s championing of “free speech” and openness on the platform sound like right-wing dog whistles to me, which makes me nervous (more nervous) about the future. In general, the best thing we can do collectively is leave Twitter and publish and correspond elsewhere—preferably on platforms that are not owned by amoral billionaires.

Feeling old

Playing basketball with my kids this weekend and moving a bunch of unwieldy deck planks around my property today made me feel old in ways that I was not expecting. I am not sure how to get back into shape at this point, because I have been away from strenuous exercise for so long, but know that I have to start out slowly.

I realize now that I’m writing my blog for my children. A body of work—even a body of an unimportant, inconsequential work—is a better thing to leave behind than nothing at all.

Jazz music is tolerated by my children

To my amazement, my kids seem to like jazz. By “like”, I mean don’t seem to mind, which I will consider a win. They don’t mind when I play John Coltrane (who is one of my favorite jazz musicians) on the kitchen smart speaker. They don’t blink an eye when albums like Jazz at the Pawnshop or Kind of Blue are playing. Today, I put on a Louis Armstrong playlist during breakfast, told my kids about him while I was playing, and my daughter expressed actually excitement about it. She told us that had learned a little bit about Louis Armstrong in school.

Playing jazz at some of our family mealtimes started accidentally. One evening I was too tired to think of anything to listen to while cooking dinner, so I told our Amazon Echo speaker to play “cool music”. I thought it would return a playlist of avant-garde pop music or underground dance- or world-music artists I haven’t heard off. Instead, to my surprise, Alexa cooly replied, “Now playing cool jazz on Apple Music.” I thought that was hilarious. I grew up thinking that cool jazz music was terrible, hopelessly lame easy-listening crap, which is the furthest thing from “cool” you could imagine. It turned out that my wife and I kind of liked the cool jazz playlist; it made for pleasant background music. More importantly, the kids didn’t ask for it to be turned off immediately.

Since that accidental discovery, the breadth of jazz that I put on for them has increased dramatically. I think this is a great development because I grew up in a house without music, and had to learn about all the different genres on my own. I am still trying to work on introducing my kids to classical music, but that has been a much harder sell.

Prepping my old MacBook Pro for my son

My five-year-old son is really into coding. He doesn’t know how to do anything yet, but he wants to learn. Currently he plays around with Swift Playgrounds a lot on his iPad (which is a little too old and slow to run it properly). He also orders his grandfather to program a collection of JavaScript games, utilities, and other doodads for him on a personal website. I’m going to start him on Scratch and Swift Playgrounds on the Mac. Because he is very interested in websites, I promised to introduce him to HTML and “Hello World!”-level JavaScript.

To get the ball rolling on this endeavor, I decided today that I will let him borrow (or use most of the time) my 15” 2013 retina MacBook Pro. It’s a little too big for him, screen-wise, but it’s the only machine I have. Tonight, I spent a half hour prepping it for him. Tomorrow, I plan to get NextDNS set up for web content filtering, and also to explore what other safeguards I can put on the machine to keep him out of trouble. He has a history, believe it or not, of setting up accounts on internet services and contacting the companies via web forms or email. I locked down his iPad, but he started to find ways around it today. I know I will have to keep a close watch of him.

I know he’s going to love using a real computer, not only for programming, but for Pages, Garage Band, and Photos as well. I hope that things go well.

A keynote address

This morning, my presentation group and I presented our InsurTech webinar for a third time. This time, our audience was a group of insurance regulators attending an in-person training seminar. We presented remotely to a large room that none of us ever saw. From our side, it was the same as presenting a webinar, except we got even less feedback from the audience until the Q&A period at the very end.

Because we were the last presentation of the entire seminar, I called it the keynote address, which my group appreciated. I’ll be sure to remember that term when it comes time to brag about it for my annual review.

📺 Netflix canceled my daughter’s favorite show, The Baby-Sitters Club. I haven’t broken the news to her yet, because it would crush her. Consequently, I don’t feel too bad that Netflix has been beaten up by Wall Street this week.

A hastily built presentation is better than nothing

Last year I told myself that if I have the opportunity to present to somebody, I will always create some visual aids to complement what I say. It’s an easy way to differentiate myself from my peers, who rarely make slide decks unless they are training clients. It also shows that I’m well-organized and a structured thinker.

I found out today that I can build a good-enough slide deck in about ten minutes and present it right afterward. Half an hour before a team teleconference today, I was asked to present on a technology topic to my team. I said yes, then dropped everything for about ten minutes to create a brief slideshow on a technical topic of my choosing. I decided to share with my group how I started using Python to automate data validation. Because I am the only Python user in the group—which is not a technical group—the idea was entirely new to them. This allowed me to keep my presentation brief and high-level, while still being informative.

I normally spend many hours working a slide deck. Much of that time spent brainstorming visual designs, arranging objects to build diagrams, and revising slides to make them more concise and more visually appealing. Today, I had no time for any of that. Instead, I turned to PowerPoint’s Design Ideas feature, which automatically formatted my text and the one image I imported (the Python logo) into six presentable slides. I selected a theme with a dark background and light text—which is the opposite of our company’s slide template—to make everything pop. Then I finished up by changing a couple of the PowerPoint SmartArt shapes from what Design Ideas had applied. The result was inferior to the slide decks I painstakingly assemble, but it was far better than nothing, and nothing was my competition, after all.

I hope that showing good presentation skills time after time will help me move up into a more senior position eventually. It’s just one thing I’m working on to get there.

📺 I started rewatching Barry in preparation for the season 3 premiere. It seems impossible that the last episode of season 2 to air was almost three years ago. 🤯

A Python Refactoring Day

I have spent practically all day coding, coding, coding. I am adding features to, and (more than anything) refactoring, the Python data validation program that I have been working on for my day job. The result isn’t perfect, but it is far better than where it was this morning.

First, I broke up my 600-line script into numerous module files. I was happy to learn how easy this is, but I am still a novice at what I can do with the Python package I have created. Having multiple files allowed me to refactor the major features of the application, and to identify the customization points I need to work on next, without getting lost in a single, enormous source code file.

Then, I started to delete stale code, refactor old but working code, and optimize the performance of the major data pipelines. It felt good to make everything streamlined.

Lastly, I did some testing. I don’t have proper unit tests, and still need to learn how to structure a Python package properly to allow for unit testing. That may be tomorrow’s task.

Chateau Picard

When I was a kid, I watched Star Trek: The Next Generation. One thing that I remember is that Captain Picard—in some future timeline, at least—retires to his family’s vineyard in France. It was a place that looked pleasant but terribly boring. It was far afield from the exotic, exciting locales that his starship captain career brought him to.

I always wondered why someone with such an exciting life would end up someplace so boring. Now that I’m older, I get it. I fantasize about spending my old age (which is still a long way off) with my wife in a pleasant, quiet, and otherwise unremarkable New England town—the kind of place that was abhorrently dull to me when I was younger.

Be excellent to each other

Tonight I had deep conversations with my wife and (later on) with my half-sister. They were rewarding, but they have exhausted the part of my brain that likes to write meaningful, or at least useful, blog posts. I guess my message to the world today is: be excellent to each other, even when it’s hard.

🎵 Betwixt

When I was in college at Brandeis University, a friend of a friend1 was in a band. A cool band. He played cello in Betwixt, which was, at the time, a critically-acclaimed Boston-based noise/art-rock band. They played a few shows on campus, and I’m pretty sure I saw them play in Boston at least once, too. It was always a blast to see them perform. Their onstage vibe was cool and sexy. The singer was always dancing and working the crowd, while the lead guitarist stood in the back doing everything he could to avoid playing a normal guitar line. His guitar, amp, and effects pedals were coerced into making the most unusual sounds, all rhythmically slotted into into cheerful, poppy tunes. All together, they blew my mind.

I found their music on Apple Music today and listened to their two albums, Moustache and The Salty Tang. It was a fun nostalgia trip.


  1. And fellow Brandeisian. ↩︎

I’m giving OneNote an honest try this time

I am giving Microsoft OneNote a try again at work.

This is surprising to me. I’m a plaintext lover who has taken notes in Sublime Text or Visual Studio Code for years. It seems crazy to move from simple-to-understand text files to a clunky, proprietary format stored in a monolithic database in a weird location on my system.

Furthermore, OneNote is the one corner of Microsoft Office that I have never liked. Its notebook metaphor, with its tabs and its pages, feels outdated. The way that the notes consist of floating text boxes that are bounded by visible rectangles, is visually clunky when compared to Apple Notes. Its rich-text editor is powerful but feels slow; using it feels like writing in Microsoft Word, which I never want to do1. It doesn’t even support Markdown, which is my preferred way of writing just about everything. I don’t use a Windows tablet or sync my work stuff to an iPad; if I did, I probably would have switched to OneNote already, just for its stylus support and drawing features.

Despite all my misgivings about it, I’m giving OneNote a real try right now for several reasons. First, I need to switch things up. Using Visual Studio Code for writing, task management, executing scripts, and coding is just too much. I have so many Visual Studio Code windows open that its hard to get to the right one. Also, Visual Studio Code is versatile, but it is not quick.

Second, my company constantly promotes OneNote constantly on both the intranet home page and on our company-mandated screensavers. Visually, I can’t escape its name or icon. I figured that I may as well try it. For all I know a ton of people who don’t have the same hang-ups about its design are using it and getting a lot out of it.

Third, I tend to stick as much to Microsoft software as possible on my Windows machines: I practically live in Excel, I edit in Word, I communicate in Outlook, browse the web in Edge, and write and code in Visual Studio Code2. I’m the kind of nut who wishes my company would switch from Webex to Microsoft Teams—despite people hating Microsoft Teams—because I want to be using more Microsoft software.

Lastly, and maybe most importantly in the long run, OneNote offers tight integration with Outlook. When looking at a calendar entry, I can click one toolbar button to immediately start taking notes in OneNote. Similarly, when reading an email, I can click one toolbar button to immediately import it into OneNote. Who knows, maybe even OneNote web clipper will be useful.

So I am going to give OneNote an honest try for the next week and see if I can stick with it. From a user-interface standpoint, I may be able to live with it. I switched the font from Calibri to Consolas, so it looks a bit more like my Visual Studio Code setup. I am learning to ignore the ever-expanding gray box that surrounds the text I write. More importantly, I found an option to put the page list on the left instead of the right, which brings it a step closer to the Mac and iOS three-pane interfaces that I vastly prefer to Microsoft’s brutalist designs.

The real test is not whether I learn to like it, but whether I start using it to take more notes and track more tasks.


  1. I very much like Word for formatting documents and editing them with Track Changes. I hate writing drafts in Word, though, most of the time, because all the formatting stuff is distracting. ↩︎

  2. I don’t use Visual Studio much anymore, but used to love it, despite its ugliness. ↩︎

🎙 The Most Thorough Case Against Crypto I’ve Heard

The best podcast episode I listened to today was the April 5th episode of The Ezra Klein Show:

Dan Olson is the creator of a two-hour-YouTube video, “Line Goes Up,” that has now been viewed nearly seven million times. “Line Goes Up” is the single most comprehensive critique of crypto that I’ve ever heard. And that’s because Olson isn’t just focused on cryptocurrencies as a technology or an asset class, but on the crypto universe as a distinct culture underpinned by a powerful ideology. It’s easy to think about the lingo, the acronyms and the myths associated with the crypto world as incidental to the value of cryptocurrencies and NFTs as assets. But for Olson, the culture and the currency are inextricably linked. And once you’ve made that connection, suddenly a lot of the problems, warning signs and potential dangers of crypto become visible in a new way.

The longer I look at crypto the more of a scam it seems to be. Dan Olson brings almost every argument I have read—or made myself—against crypto to the table, and pushes some of them further than I have thought.

One of Olson’s most interesting insights is that the pseudo-anonymity that crypto wallets will, counter-intuitively, reduce your financial price. This is because crypto wallets are pseudonymous1 rather than anonymous, and a blockchain, which stores transaction history for crypto wallets, is open. Therefore, if you know someone’s crypto wallet ID—because you paid them back for something with crypto—you could use that ID to look up all their prior transactions on the blockchain. You could get a good idea how much money they have or spend, and get a good idea about where they spend it, too.

I am concerned that governments eventually will instate their own cryptocurrencies, perhaps for nefarious purposes but more likely for stupid ones, and we will all be stuck using them (ahem, ride that rocket-ship to the moon2) despite all their downsides.


  1. Parties in transactions are identified by codes or hashes rather than by name. ↩︎

  2. This is crypto-slang, which all of us who browse Reddit or occasionally watch TV commercials probably know by now. ↩︎

📺 Friday Night Baseball

I watched about an hour of Apple TV+’s Friday Night Baseball last night.

The picture quality was fantastic, both in terms of sharpness and color. I think that the MLB service also has great picture quality, too, but Apple’s streams looked better to me than Thursday’s streams from MLB.tv. I liked the near lack of graphics and other nonsense on the screen.

The announcers were sporadically good, but sometimes they were so far off topic that they didn’t bother to call the game. At times they were so caught up in their own conversation that it reminded me of watching meaningless late-season games between teams with no chance of making the playoffs. I bet the announcers got a bunch of notes about this already and will try to stay more focused on the games going forward.

My daughter is turning 10 next month, and we are finally getting her some “older-kid” gifts. I just ordered her a pair of HomePod minis to use as a stereo pair in her room. I think she is going to love them. Someday she will play something other than Taylor Swift on them, too.

I am wondering if a wireless CarPlay adapter would be worth it. It seems intriguing, but maybe dealing with BlueTooth is more trouble than it’s worth.

My wife and I just ran lines with my daughter for a skit she is working on for her acting class. It was kind of hilarious to act with her. I am either a terrific actor or a terrible ham. I can’t tell which, but I think my wife thinks it is the latter. 😅

📺 Why does the premiere of Apple’s Friday Night Baseball have to coincide with the season finale of Severance?

Refactoring Python

I completed my Python program this morning, but could not resist refactoring it this evening. I cut my main method’s size in half, compartmentalized my code better in classes, and made the program structure more data-driven rather than process-driven.

The work should pay off for me, because I will have to make copies of my program and customize each copy for a different type of data valuation.

I probably over-engineered it, though; it went from 525 lines to 625 in the process.

Python for data validation

I spent a good chunk of time today creating a data validation program using Python. Python is a language I know (to some extent) but I barely use. Instead, I write scripts in PowerShell, create more complex programs in C#, and analyze data with SQL queries, Galvanize Analytics, or Power Query in Excel. My goal today was to find a way to validate a large number of .csv files, which have a great many columns and will be of questionable quality. My normal tools and languages would be either too cumbersome or too limited to do this, so I reached for Python.

Python is great at importing .csv files, parsing them, modifying them, and outputting a modified copy. Within a few minutes of research, I discovered a Python package called petl, which contains a ready-made data validation pipeline. I just needed to create validation functions, which are simple 1-3 line functions, and use them to define constraints, which are simply dictionaries. All those constraints get put into an array and passed to an already-written validation method.

Coding this program has been fun and remarkably efficient. It has been fun coding in Python again. I particularly love how packages can make the hard parts easy and leave me with more time to spend on my data work rather than on creating scaffolding for the program. I will have to look into more uses for Python going forward.

The reward for doing good work

At the start of my career I learned an important lesson: The reward for doing good work is always more work. That often works in your favor. As you advance in your career, you move from doing many simple, repetitive tasks to solving fewer, more complex, and more interesting problems. In general, my experience bears this out—but not always.

In my first real job, I was a software developer in a small group within a large company. I started out knowing very little about how to do my job other than the programming fundamentals I picked up in A.P. Computer Science. However, I was smart and driven; I worked very hard and eventually became the best and most knowledgable programmer in my group—at least when it came to web and database development. For my effort, I was award with promotions and raises 1, but the nature of my work actually got worse instead of better.

Because I was so good at figuring out how other people’s code worked, troubleshooting, and fixing the hardest-to-fix bugs, those became my primary responsibilities as a programmer. I was no longer writing small systems from scratch or developing clean architectures. Instead, I had two roles. First, I was the Sherlock Holmes of diagnosing and fixing coding problems for other members of my team. Second, I was in charge of the technical side of large software integration projects. These are projects that involve bringing in code from people outside the company and making it work on our company’s systems. In both of these roles, I spent many hours a day wrangling with other people’s messy, awful codebases. In the end, my projects were successful, which was rewarding, but a lot of the day-to-day work was mind-meltingly difficult and unsatisfying.

I had moved from performing lots of simple tasks well to solving more complex—but not more interesting—problems. Sometimes I think that work, programming, and life works out that way.


  1. Don’t get too excited. I was always underpaid in those roles. At the time, I liked what I was doing, and lacked the confidence and the vision to take the risks necessary to switch companies in pursuit of a higher salary. ↩︎

🎮 Children of Morta

Over the past week, I played through Children of Morta on my Nintendo Switch. It is a Roguelike game built around combat and dungeon crawling, with several gimmicks to keep it interesting. There is a strong story element and a very enthusiastic narrator; unfortunately, I didn’t think the story amounted to much in the end.

Overall, I enjoyed it. It reminded me a little bit of the Diablo games, though my memory of those games is quite hazy.

At first I found it nearly impossible to beat the first dungeon’s boss. I could reach the boss from my very first run, but I could not defeat it. I discovered that you have to grind and level up your characters’ stats. Once I did that many, many times, my characters were strong enough to kill that boss, and basically everything else that came afterward.

I very much appreciated that you did not have to mash the attack button endlessly during combat. Instead you rock the right analog stick in the direction you want to loose your arrows or swing your sword. It works very well, much like a twin-stick shooter.

While the game is fun, it gave me some frustrating moments, too. I experienced a game-breaking bug several times near the end of the game. Sound effects would loop and then cut out entirely; eventually the game would crash. I lost one of my runs entirely due to this bug. It hit me again during my fight with the final boss, which really put me on edge; fortunately, the game did not crash and I was able to complete it anyway.

My wife and I hired a cleaning service for the first time since the COVID pandemic started. Of course we spent most of today frantically cleaning the house to prepare for them. 😅