The Daily Parker

Politics, Weather, Photography, and the Dog

How to light $44 billion on fire

Elon Musk had a lot going for him when he started his first company: rich parents, being white in Apartheid South Africa, malignant narcissism, etc. Like other well-known billionaire charlatans, he has had his share of spectacular successes, and still decided to find his own little corner of the Peter Principle. So let it be with Twitter:

Some might say Elon Musk, who last week became Twitter’s official new owner, has buyer’s remorse. But that implies he had actually wanted the thing before he bought it. Back in April, the mercurial billionaire made an overpriced takeover bid, which he then tried to back out of.

Perhaps understandably: Twitter has been plagued by problems for years, of both the monetary and moral kinds. When Musk made his offer, tech stocks were already tanking, and it was clear he had neither a plan for fixing the company nor the inclination to fritter away a big chunk of his fortune figuring it out. After some legal back-and-forth, he reluctantly agreed to complete the $44 billion acquisition.

He has already begun pursuing a few controversial changes. They include charging users for their “blue check” verification badges, as well as developing a new paid-video feature, which will probably be used for “adult” material. But his most perplexing moves involve simultaneous plans to A) police content less, while B) increasing advertising revenue.

These objectives are somewhat at odds.

Mother Jones's Ali Breland wonders if Musk "made it his job to look dumb:"

[A]s has become increasingly obvious after Elon Musk’s acquisition of Twitter this week, getting rich does not make you deserving of praise. In fact, Elon Musk’s Twitter timeline is making one of the clearest cases that meritocracy is a myth. The reason Silicon Valley people, to their absolute chagrin, can’t be idolized like the maniacal bankers that came before them, is that they got rich by engineering the precise platforms that make them look awful.

The problem with the new tech sets’ desire to be heralded is that they got rich off tools for their own demise. There was a lengthy period in which Mark Zuckerberg was idolized. He achieved the national dream of going to Harvard, then eschewed it and conventional paths to wealth into a massively successful tech company and balked at a $1 billion offer to sell it years before it became profitable. The more Zuckerberg went out on his own platform though, posting videos of himself “smoking meats” and just generally being awkward and charisma-less, the harder it became to believe that his life is aspirational.

Marc Andreessen, who also invested in Twitter, albeit much earlier than Musk, could have ridden off into the metaphorical sunset looking like a genius for developing Mosaic and then Netscape, pioneering how we would all experience the internet. Instead, he showed us all of his mental shortcomings, by tweeting about the harms of anti-colonialism; liking tweets from people like date-rape apologist and conspiracy theorist Mike Cernovich; and being thin-skinned by blocking anyone who said anything slightly less than complimentary about him. Again: He did all of this on a platform he funded.

Elon Musk bought Twitter and Twitter makes people dislike Elon Musk. For once, the story of the stupidity of rich people—and how they got rich—is making sense to the masses. It just had to be written by the overlords themselves, in 280 characters or less.

Regardless of what happens with Twitter, I'm glad that the SNAFU of the US House of Representatives has at least forestalled an even bigger stupidity, year-round daylight saving time...

Threads to read

Here are some short thoughts that add up to longer thoughts today:

Finally, from 2021, the Calgary Real Estate Board (no kidding) extols the virtues of the conversation pit.

Happy November!

I've spent the morning playing matchmaker between disparate time-streams of data, trying to see what relationships (if any) exist between them. They all seem pretty cool to each other at the moment, which is sub-optimal from my perspective. If I can get a couple to get together amicably, then I can get baby time streams to analyze, which I need desperately.

Speaking of sub-optimal:

OK, back to work. Does anyone have an aphrodisiac for data streams?

Foggy Hallowe'en

A week after moving, I'm averaging 30 minutes more sleep and my Body Battery score is back to normal levels after two weeks of waking up like a zombie. I might even have all the boxes unpacked by this time next year.

Meanwhile, me shifting a couple tonnes of matter a few hundred meters did not affect the world's spin by any measurable amount:

Finally, the Tribune reviewed a new New York-style pizzeria in East Lakeview that...doesn't sound like it sells the greasy slices I used to get on Lexington after midnight. But I'll try it.

Schemes gang aft agley

I went to bed Sunday thinking I would move next Wednesday. Then I had a productive day at my downtown office yesterday. Then, as I was walking to the train, I got a note that despite me saying repeatedly, for the last six weeks, "I cannot move on the 24th," my buyers want to close on the 24th, because their painters will be here the morning of the 25th.

What a coincidence! My painters will be at my new place next Tuesday morning, and now they get the added fun of maneuvering around my furniture.

Sigh.

But Mousie, thou art no thy-lane,
In proving foresight may be vain...

Laptop for sale; gently used

One of Inner Drive Technology's old laptops—actually, the most recently purchased—can be yours along with a few accessories for only $300:

That's a Dell E6440 laptop with 12 GB of RAM and an Intel Core i7 2.4 GHz processor. It has a 97 W/h battery, and I'm including a docking station, 130 W power supply, and a DVI cable to connect the docking station with a monitor. It does not have a hard drive or software. (I originally had a 512 GB SSD. It'll take a standard 3½-inch laptop drive.)

But hey, $300? I've seen just the laptop advertised online for $200-250, so with all this extra stuff, why not?

As an added incentive, here's a photo of Cassie fast asleep on my lap Tuesday night:

Complete pile-up in my "to be read" stack

I've had a busy day. I finally solved the token-authentication problem I've been working on all week for my day job (only to discover another flavor of it after deploying to Azure), while dealing with a plumber ($1600 repair!), an HVAC inspector ($170 inspection!) and my buyer's mortgage appraiser (not my problem!). That left some reading to do tonight:

Finally, despite the crashing temperatures outside my window right now (down 5.5°C in the past 2 hours), Illinois had a pretty dry and mild start to autumn.

Quick note on debugging client authentication in .NET Core 6

I've spent about four hours doing a shit ton of A-B tests and a lot of Internet searching to figure out why I kept getting a specific error.

The app is a .NET Core 6 WebAssembly, and the app registration is set for "any organization," meaning anyone with a Microsoft ID (work, school, or XBox) can authenticate with the app.

The error began when I added a client certificate. The relevant section appSettings.config file looks like this:

{
	"AzureAD": {
		"Instance": "https://logon.microsoftonline.com",
		"Domain": "ourdomain.onmicrosoft.com",
		"ClientId": "our client ID",
		"TenantId": "organizations",
		"CallbackPath": "/signin-oidc",
		"SignedOutCallbackPath:": "/signout-oidc",
		"ClientCapabilities": [ "cp1" ],
		"ClientCertificates": [
			{
				"SourceType": "KeyVault",
				"KeyVaultUrl": "https://our-key-vault.vault.azure.net/",
				"KeyVaultCertificateName": "our-certificate-name"
			}
		]
	}
}

So far, all good. Except when I tested the code, I got this:

{
	"error": {
		"code": "Unauthorized",
		"message": "AKV10032: Invalid issuer. Expected one of https://sts.windows.net/tenant1guid/, https://sts.windows.net/tenant2guid, found https://sts.windows.net/tenant3guid"
	}
}

Our Key Vault lives in tenant1, and also has access to tenant2, but tenant3 is my login ID from my company's AD tenant.

Let me skip to the end, because I'd like to finish this fix today.

The solution was to go into launchSettings.json and add this:

{
	"profiles": {
		"App Name": {
			"AZURE_TENANT_ID": "tenant1guid"
		}
	}
}

Boom. Done. And if I ever need this information again, or anyone else does, I hope they find this blog entry.

Tick tick tick

I always find it interesting when a literary magazine takes on technology. In that spirit, the New Yorker does its best to explain the Network Time Protocol:

Today, we take global time synchronization for granted. It is critical to the Internet, and therefore to civilization. Vital systems—power grids, financial markets, telecommunications networks—rely on it to keep records and sort cause from effect. N.T.P. works in partnership with satellite systems, such as the Global Positioning System (G.P.S.), and other technologies to synchronize time on our many online devices. The time kept by precise and closely aligned atomic clocks, for instance, can be broadcast via G.P.S. to numerous receivers, including those in cell towers; those receivers can be attached to N.T.P. servers that then distribute the time across devices linked together by the Internet, almost all of which run N.T.P. (Atomic clocks can also directly feed the time to N.T.P. servers.) The protocol operates on billions of devices, coördinating the time on every continent. Society has never been more synchronized.

In N.T.P., [David] Mills built a system that allowed for endless tinkering, and he found joy in optimization. “The actual use of the time information was not of central interest,” he recalled. The fledgling Internet had few clocks to synchronize. But during the nineteen-eighties the network grew quickly, and by the nineties the widespread adoption of personal computers required the Internet to incorporate millions more devices than its first designers had envisioned. Coders created versions of N.T.P. that worked on Unix and Windows machines. Others wrote “reference implementations” of N.T.P.—open-source codebases that exemplified how the protocol should be run, and which were freely available for users to adapt. Government agencies, including the National Institute of Standards and Technology (nist) and the U.S. Naval Observatory, started distributing the time kept by their master clocks using N.T.P.

A loose community of people across the world set up their own servers to provide time through the protocol. In 2000, N.T.P. servers fielded eighteen billion time-synchronization requests from several million computers—and in the following few years, as broadband proliferated, requests to the busiest N.T.P. servers increased tenfold. The time servers had once been “well lit in the US and Europe but dark elsewhere in South America, Africa and the Pacific Rim,” Mills wrote, in a 2003 paper. “Today, the Sun never sets or even gets close to the horizon on NTP.” Programmers began to treat the protocol like an assumption—it seemed natural to them that synchronized time was dependably and easily available. Mills’s little fief was everywhere.

This being the New Yorker, one could describe the article as the author explaining how he met this programmer Mills and the politics around Mills' retirement from computing. It's better-written than the Wikipedia article, anyway.