The Daily Parker

Politics, Weather, Photography, and the Dog

Transitioning to a new environment in 15 easy steps

As readers have inferred, I've started a new position (more later), and with that I've got to set up a new work computer. I say "computer," but it's actually a MacBook Pro. All of my everything lives in the Microsoft universe. This has caused a slight problem trying to get access to my new company's source code in GitHub.

See, I've used Password Safe for years to manage all my passwords. By "all" I mean that I follow the standard industry practice of never re-using passwords, and generating strong passwords for each asset. This includes my GitHub account.

Today I finally got my existing GitHub account authorized to access the company's repositories. So all I have to do is log in to my GitHub account, and...wait...crap.

So how do I get my GitHub password? Here are the steps I tried:

  1. My safe file is on OneDrive, so I can get it off my phone and email it to my work address. No problem there.
  2. But PWSafe is a Windows application. There isn't a Mac version available through the same vendor.
  3. There is a Mac version through a different vendor—for $15. OK, let me rule out all the free options first.
  4. Aha! I have a virtual machine sitting in Microsoft Azure that I can spin up. It has access to OneDrive and it has a local copy of PWSafe already installed.
  5. Log into the Microsoft Azure portal.
  6. Spin up VM.
  7. Google how to connect to it from a Mac. (Microsoft has a client available through the iTunes store.)
  8. Go to the App Store on my Mac.
  9. Find the RDP client.
  10. Attempt to install the RDP client.
  11. Dammit. I have to set up a new Apple ID because my personal Apple ID is—you guessed it—in the safe.
  12. Set up a new Apple ID for work.
  13. Actually install the RDP client this time.
  14. Realize that the password for the VM is—you guessed it—in the safe.
  15. Shut down the VM for now.
  16. Jot down a note to add my GitHub account to LastPass so I can get into it from work.
  17. Jot down another note to add my VM credentials to LastPass.
  18. Get more tea.
  19. Blog about this.

Oh well. I have plenty to do this afternoon that doesn't involve writing software.

New digs

I missed posting two days in a row because I've just been swamped. I'll have more details later. For now, here's my new office view:

One of my smartass friends, who lives in Los Angeles, asked what that white stuff was. It's character, kid. It's character.

Standard, Core, and Framework

Let me elaborate on last night's post.

Microsoft has two flavors of .NET right now: the .NET Framework, which has been in production since February 2002, and .NET Core, which came out in June 2016. .NET Core implements the .NET Standard, which defines a set of APIs that any .NET application can use.

Here's the problem: The 18-year-old Framework has a lot more in it than the 2-year-old Standard specification or Core implementations. So while all .NET Standard and Core code works with the .NET Framework, not all Fx code works with Core.

Where this bit me over the weekend is dealing with Microsoft Azure Tables. I store almost all the data in Weather Now in Tables, because it's a lot of data that doesn't get read a lot—Tables' primary use case. There are .NET Standard implementations of Azure Storage Blob, Azure Queues, and Azure Files...but not Azure Tables. The latest implementation of Microsoft.Azure.CosmosDB.Table only supports the .NET Framework.

And that's a problem, because the new version of the Inner Drive Framework will follow .NET Standard 2.0 (or 3.0, if it comes out soon).

So yesterday I spent an hour going in circles before finally getting a definitive answer on this point.

Support for Azure Tables will happen soon enough, and I have a lot of documentation to write before the new Framework is ready for prime time. But I really wanted to tie a bow on it this weekend.

Waiting for an update

I'm mostly done with a major revision to the Inner Drive Framework, and I've discovered, to my horror, that one part can't be done yet. Microsoft Azure Table support doesn't work with .NET Standard yet.

This will make more sense at some point soon.

Stuff to read later

Of note:

Fun times!

Where to cry in an open-plan office

Another problem with open-plan office spaces, according to comedian JiJi Lee: it's hard to find a place to sob. She suggests some:

By your C.E.O.’s work station: Flatten hierarchies by sobbing in front of your company leader. Open offices were made to foster communication, so introduce yourself and say, “Hi, I'll never make as much money as you!”

The center of the office: The company doesn’t believe in walls, so why build one around your emotions? Let it go and play the “Frozen” soundtrack while you’re at it. Do a cartwheel that turns into a split and then cry onto Colleen’s emotional support dog. You have the space for it! After all, the company wanted to increase productivity and you’ve never been more efficient with your crying in your life.

The restroom: This is where everyone goes to cry. Anticipate long lines.

At least my office has a coat closet. But it's very small.

Lunchtime reading

I didn't have a moment to write any code from 9am until now, so my lunch will include doing the stuff I didn't do in all those meetings. At some point I'll get to these:

Now, back to writing code, as soon as I make yet another vet appointment for my bête noir.

Wow, who could have seen this coming?

New Republic's Alex Shepherd lays out how the Amazon HQ2 "sweepstakes" is a scam that will not do what Amazon claimed:

The company not only garnered free, widespread publicity, but also drove up its asking price, as some competitors raised their bids by billions. It’s possible that the plan all along was not to open a second headquarters, but to open two, smaller satellites. What’s unlikely, however, is that the deals being offered to Amazon will change significantly, even though the company is effectively halving their investment.

Amazon has already faced backlash for its handling of HQ2. The $1 trillion company is hardly in need of public handouts, and yet it has benefited greatly from taxpayer dollars in recent years. It may have sensed there would be further backlash over its decision, which would explain why the news broke on the eve of the midterm elections, effectively burying it. Unlike other localities, which made their offers public, not much is known about the bids from New York City and Virginia. But the public scrutiny of HQ2 will only intensify as the details—and the social consequences of HQ2—become clear.

Amazon likely chose Washington and New York for obvious reasons, making the pageantry surrounding the yearlong search for an HQ2 site all the more absurd. These are attractive places to work, and, as national hubs of politics and media respectively, they influence the national discussion. But they’re also among just a handful of major cities that could meet Amazon’s needs, in terms of infrastructure and talent. That was always true, and the company cleverly exploited it, using cities that never stood a chance to extract concessions from the few that did.

But all this was obvious from the start. And it does not make anyone look good.

Brian Kemp wants his own election to fail

By now you may have heard that Georgia Secretary of State Brian Kemp, who oversees elections in Georgia, and who is running for governor of Georgia this coming Tuesday, claims the Democratic Party hacked the voter registration database.

No. What happened is, when the state Democratic Party's voter protection director reached out to his office directly after being alerted to a gaping data vulnerability, he turned his own malfeasance into an attack on his opposition:

By the time Democrats reached out to the experts, Kemp’s office and the Federal Bureau of Investigation had already been alerted to the problem on Saturday morning by David Cross of the Morrison Foerster law firm. Cross is an attorney for one of the plaintiffs in a lawsuit against Kemp and other elections officials concerning cyber weaknesses in Georgia’s election system.

A man who claims to be a Georgia resident said he stumbled upon files in his My Voter Page on the secretary of state’s website. He realized the files were accessible. That man then reached out to one of Cross’s clients, who then put the source and Cross in touch on Friday.

The next morning, Cross called John Salter, a lawyer who represents Kemp and the secretary of state’s office. Cross also notified the FBI.

WhoWhatWhy, which exclusively reported on these vulnerabilities Sunday morning, had consulted with five computer security experts on Saturday to verify the seriousness of the situation. They confirmed that these security gaps would allow even a low-skilled hacker to compromise Georgia’s voter registration system and, in turn, the election itself. It is not known how long these vulnerabilities have existed or whether they have been exploited.

In this election and during the primaries, voters have reported not showing up in the poll books, being assigned to the wrong precinct, and being issued the wrong ballot.

All of that could be explained by a bad actor changing voter registration data.

Kemp's incompetence at securing voter registration data should be criminal. If he were a corporate executive, he could personally be sued in the EU and in other parts of the world for his negligence.

But, see, if you're running in a state where the majority of voters want your opponent to win, and you're a Republican, and you have the means and opportunity, you just bollocks up data security so badly that the entire registration process looks suspect. Then you either win, because the opposition can't vote, or you lose, and start bogus investigations to call the election's legitimacy into doubt.

This has been the Jim Crow strategy for a century and a half. That Kemp's opponent is an African-American woman with clear support from a majority of Georgians only makes Kemp's behavior more brazen.

The Republican Party can't win on the merits in most of the country, so they're throwing the game where they can. And the fact that their behavior undermines the legitimacy of elections in general is a feature, not a bug.

I've said this for 30 years: the Republican Party doesn't want to govern; they want to rule. And they are not going to give up their losing battle quietly. Nihilism doesn't care, after all.

Vote on Tuesday, if you haven't already. Enough of this shit. We have real problems to solve, and we need real people to solve them. Don't let the nihilists win.