The Daily Parker

Politics, Weather, Photography, and the Dog

Gosh, where to begin?

Happy May Day! Or m'aidez? Hard to know for sure right now. The weather in Chicago is sunny and almost the right temperature, and I have had some remarkable productivity at work this week, so in that respect I'm pretty happy.

But I woke up this morning to the news that Ravinia has cancelled its entire 2020 season, including a performance of Bernstein's White House Cantata that featured my group, the Apollo Chorus of Chicago. This is the first time Ravinia has done so since 1935.

If only that were everything.

First, via Josh Marshall, former Obama Administration disaster-preparedness expert Jeremy Konydndyk lays out the facts about our plateau (60,000 excess weekly deaths) and how the Trump Administration continues to do nothing to help us slow Covid-19 deaths.

Next, all of this:

But some good news:

Finally, while alarming in its own right, the record water levels in Lake Michigan (4 months in a row now) have exposed some historic shipwrecks.

Max Boot states the obvious

The Washington Post columnist says he wanted to give President Trump some historical distance before pronouncing him "the worst president. Ever." Alas, events have overtaken desires:

His one major competitor for that dubious distinction remains Buchanan, whose dithering helped lead us into the Civil War — the deadliest conflict in U.S. history. Buchanan may still be the biggest loser. But there is good reason to think that the Civil War would have broken out no matter what. By contrast, there is nothing inevitable about the scale of the disaster we now confront.

The situation is so dire, it is hard to wrap your mind around it. The Atlantic notes: “During the Great Recession of 2007–2009, the economy suffered a net loss of approximately 9 million jobs. The pandemic recession has seen nearly 10 million unemployment claims in just two weeks.” The New York Times estimates that the unemployment rate is now about 13 percent, the highest since the Great Depression ended 80 years ago.

Countries as diverse as Taiwan, Singapore, Canada, South Korea, Georgia and Germany have done far better — and will suffer far less. South Korea and the United States discovered their first cases on the same day. South Korea now has 183 dead — or 4 deaths per 1 million people. The U.S. death ratio (25 per 1 million) is six times worse — and rising quickly.

Trump is characteristically working hardest at blaming others — China, the media, governors, President Barack Obama, the Democratic impeachment managers, everyone but his golf caddie — for his blunders. His mantra is: “I don’t take responsibility at all.” It remains to be seen whether voters will buy his excuses. But whatever happens in November, Trump cannot escape the pitiless judgment of history.

While James Buchanan can rest in peace now (despite still ranking 43rd* on the league table), the world still has to live with this dangerous cretin for another 290 days.

Meanwhile, "Uncle Bob" Martin wants everyone to remember that we software engineers are also heroes of this crisis. Without us, no one would be able to work from home, sequence the virus's RNA, or keep in touch with friends during the lockdown.

* Trump is the 44th person to serve as president, but the 45th president, because Grover Cleveland was both the 22nd and 24th president.

After all, who's really signing this contract, anyway?

An AI demonstration website will show you photos of people who don't exist:

You encounter so many people every day, online and off-, that it is almost impossible to be alone. Now, thanks to computers, those people might not even be real. Pay a visit to the website This Person Does Not Exist: Every refresh of the page produces a new photograph of a human being—men, women, and children of every age and ethnic background, one after the other, on and on forever. But these aren’t photographs, it turns out, though they increasingly look like them. They are images created by a generative adversarial network, a type of machine-learning system that fashions new examples modeled after a set of specimens on which the system is trained. Piles of pictures of people in, images of humans who do not exist out.

It’s startling, at first. The images are detailed and entirely convincing: an icy-eyed toddler who might laugh or weep at any moment; a young woman concerned that her pores might show; that guy from your office. The site has fueled ongoing fears about how artificial intelligence might dupe, confuse, and generally wreak havoc on commerce, communication, and citizenship.

Ian Bogost goes from this to a discussion of alienation in crowds, and the delights of urban civilization. But I'm still stuck on the face generator. I might want to meet this person, for example, but she isn't even imaginary:

Here's a video explaining how it works:

Twenty Years of Punz

Punzun Ltd.™, an Illinois corporation doing business as Inner Drive Technology™, turned 20 years old today. I actually dreamed up the name in my high-school algebra class on 20 March 1985, so the concept is almost (gulp!) 35 years old.

It's kind of cool having a corporation that could be in its second year of college if it were human.

(If you don't understand the name, say it out loud. Note that "Ltd." is an abbreviation for "Limited.")

Fast, Cheap, Good: pick two

I don't often use profanity on this blog, but this morning I am moved to call the Iowa Democratic Party's leaders a bunch of fucking morons. Last night we saw the results of the IDP picking "fast" and "cheap" for critical infrastructure in the most important election cycle in a generation. Now the national Party will go into New Hampshire with a black eye and no end of razzing from the Tweeter in Chief.

It's not just that the IDP chose "fast and cheap" instead of, you know, "good." It's also that everyone in the Democratic Party, from Puerto Rico to Nome, knows what a fucking big deal this election is. Presumably someone involved in this debacle might have done some contingency planning. Like, for example, having enough volunteers on the phones in case something happened with the app.

We've had years to prepare for last night's Iowa Caucuses. Perhaps not a full four years—they changed caucus rules a bit and added verification steps to prevent fraud—but certainly longer than two months. That's how long it took to write the mobile app the Party commissioned to make this the smoothest Caucuses ever, according to reports in NPR and the New York Times. That and $60,000, which gets you two junior developers and a journeyman team lead for two months, tops.

I've run multi-million-dollar software projects (including one in Des Moines 15 years ago), and my back-of-the-envelope estimate for an app to tabulate caucus results that needs to run perfectly on election night came to about $300,000 for a fast project (4-5 months) or $200,000 if it could take 9-10 months. A budget of $60,000 might, perhaps, cover just the coding, not UI testing, app distribution, security testing, project management, integration testing, API deployment, load testing, or testing the testing (i.e., test validation). And the $200k budget doesn't include $20,000 in infrastructure charges to ensure adequate capacity on election night.

In other words, any competent person would have chosen "fast and good" or "cheap and good."

Plus, media outlets also report that the IDP kept the app's origins and code a secret, in complete contravention of basic principles of secure software design. Had they put the code up for review on GitHub, outside reviewers could have caught any technical problems far, far earlier.

So once again, the state of Iowa, a technology hub renowned the world over as a serious rival to Palo Alto, New York, and Bangalore, demonstrated exactly why they need to conduct a primary election on the same day as a few other states a bit later on in the season.

This election is ours to lose. And with this own-goal, you, the Iowa Democratic Party, are fucking making it happen.

Why transparency matters

Yesterday I bemoaned not only our depression-inducing lack of sunlight (predicted return of the sun: Sunday, maybe), but also Senate Republicans' efforts to hide or ignore information relevant to the impeachment trial now underway.

Another story about how a lack of transparency causes damage has come to light. The Washington Post reports that the Saudi attack on Post owner Jeff Bezos' phone was helped to great extent by Apple's refusal to report security defects:

A security report last week alleged that Bezos, who also owns The Washington Post, received a WhatsApp message laden with code that secretly snatched reams of personal data from his iPhone X. The message allegedly came from Mohammed bin Salman, the crown prince of Saudi Arabia. Security researchers say Bezos probably fell victim to the iPhone’s Achilles’ heel: Its defenses are so difficult to penetrate that once sophisticated attackers are in, they can go largely undetected.

That is in part because Apple employs a secretive approach to finding and fixing security flaws, researchers say, something that has generated debate in the security community.

Security researchers say iPhones and Androids have different approaches to security. They say they generally believe there are more bugs and vulnerabilities in Android. That may be because there are so many different versions, or “forks,” of Android. Google allows its myriad handset makers and others to customize the operating system.

That results in two security philosophies. In Android’s case, the researchers said, the more people who look for bugs, the more secure a system becomes. But Apple’s strategy follows the idea that less visibility into the software means fewer bugs will be discovered in the first place, making the overall operating system more secure. It takes skill, resources or both to find those bugs, which means hackers will typically use them sparingly to protect them from discovery.

Bruce Schneier has argued in favor of transparency for years. This is why. And why I only use Android devices.

Technical debt as Tetris

Jonathan Boccara compares the two:

At the beginning of a Tetris game, you start with an empty game. It’s like the very beginning of a coding project when there is nothing yet.

Then blocks start to fall down. The way you position each block has an impact on the rest of the game. If you place blocks around without much reflexion, letting holes slip in, you’re making life harder for the rest of the game. And if you manage to build a clean, compact structure, then it will be more manageable later in the game.

The analogy with technical debt is that each new fix or development is like a new block coming in, which you need to integrate with the existing code. If you hack it in a quick and dirty way, it’s like leaving holes in the Tetris structure: you’re making life more difficult down the line.

And if you take the time to design a clean solution to integrate the fix or development, it’s like making sure you leave few holes in the Tetris game. This is less easy to achieve but it pays off in the long run.

I haven't thought of it that way before, but I like it.

Happy Y2K20!

Remember Y2K? Oh, boy, I do, especially as I had to spend part of New Year's Eve in a data center on 1 January 2000.

Apparently, some of the fixes people made to their software back then solved the problem...for a time:

Register reader, having sold a vehicle, filled out the requisite paperwork and sent it off to the agency, which is responsible for maintaining a database of drivers and vehicles in Blighty. An acknowledgement was received, which helpfully noted that it been printed in 1920.

Sadly, we doubt Doc Brown was involved in this one. A spokesperson for the agency told us that "it looked like a blip when printing the date on the letter", although we're mindful of the quick and dirty solution to the Y2K problem a large number of engineers opted for back in the day.

Rather than rewriting code to handle a four-digit year, many opted for a windowing approach, where systems would treat the 20 years from 00 to 19 as being from the 2000s.

New York parking meters stopped accepting card payments as the year turned, and some Electronic Logging Devices (ELD) sold by Trimble (formerly PeopleNet) threw a wobbly as 2020 arrived and a disconnect between GPS and server clocks left gear in a continuous reboot cycle.

In the case of the latter, it meant some US truck drivers were forced to switch to paper-based methods for logging until borked units could be dealt with.

A windowing approach also caused problems for a hardware manufacturer back in 2016...and will again in 2032, apparently...which will give them plenty to do before the 2038 problem ends civilization.

Same job, new title

For the past seven months I've worked as a contract development lead in Milliman's Cyber Risk Solutions group. Today I officially convert to a new full-time role as Director of Product Development for Cyber Risk Solutions.

We have a lot to do in 2020, and I'll post about it what I can. So far we've started building "a new generation risk platform which uses an ensemble of cutting edge techniques to integrate what is known, knowable and imaginable about complex risks in order help risk managers identify, assess and monitor dynamic, high velocity, complex risk such as cyber," as the partner in charge of my practice says. It's cool shit, I say. And I'm happy to make Milliman my permanent home.

The role now shifts a little bit from building out the minimum-viable product to building out the team. I'll still have to write a lot of software, but I'll also expand our partnerships with teams in London, Sydney, and Lyon, and will probably have to visit at least two of those places more than once in 2020. In fact, at minimum I'll be in the London office four times, probably six. The only one sad about this is Parker.

And as an example of how great the management team is, they're starting me today so that my benefits kick in tomorrow. That was a very cool gesture.

Watch this blog for more updates.

Sick day reading

I hate taking sick days, I really do. Fortunately, the Internet never takes one:

I'm now going to try to do a couple of hours of work, but really, I just want to go back to sleep.